{"version":3,"file":"main.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAA4D;AACX;AACO;AACA;AACN;IAkBrC,YAAY,SAAZ,YAAY;IA4PvB,uBAAuB;IAEvB,mBAAmB;IACnB,YAAmB,WAAwB,EAAU,YAA6B,EAAU,SAAuB;QAAhG,gBAAW,GAAX,WAAW,CAAa;QAAU,iBAAY,GAAZ,YAAY,CAAiB;QAAU,cAAS,GAAT,SAAS,CAAc;QA9PnH,YAAY;QACZ,cAAS,GAAG;YACV,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,8DAAU,EAAE;YACjC,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,sEAAkB,EAAE;YACnD,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,wEAAoB,EAAE;YACnD,EAAE,IAAI,EAAE,yBAAyB,EAAE,GAAG,EAAE,yEAAqB,EAAE;YAC/D,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,EAAE,qEAAiB,EAAE;YACzD,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,uEAAmB,EAAE;YACtD,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,8DAAU,EAAE;YAC1C,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,6DAAS,EAAE;YACzC,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,2EAAuB,EAAE;YAC3D,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,qEAAiB,EAAE;YAC/C,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,qEAAiB,EAAE;YAC3C,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,iEAAa,EAAE;YACvC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,6DAAS,EAAE;YAC/B,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,6DAAS,EAAE;YACxC,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,6DAAS,EAAE;YACxC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,8DAAU,EAAE;YACjC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,8DAAU,EAAE;YACjC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,8DAAU,EAAE;YAC1C,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,mEAAY,EAAE;YACrC,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,mEAAY,EAAE;YAC9C,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,mEAAY,EAAE;YAC9C,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,mEAAY,EAAE;YAChD,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,8DAAU,EAAE;YACjC,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,8DAAU,EAAE;YACzC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,8DAAU,EAAE;YAC1C,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,8DAAU,EAAE;YAC1C,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,8DAAU,EAAE;YAC1C,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,8DAAU,EAAE;YAC5C,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,8DAAU,EAAE;YAC1C,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,8DAAU,EAAE;YAC1C,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,8DAAU,EAAE;YACjC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,8DAAU,EAAE;YACtC,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,8DAAU,EAAE;YAC5C,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,+DAAW,EAAE;YACnC,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,+DAAW,EAAE;YAC5C,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,+DAAW,EAAE;YAC5C,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,+DAAW,EAAE;YAC9C,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,mEAAe,EAAE;YAC3C,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,mEAAe,EAAE;YACpD,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,mEAAe,EAAE;YACpD,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,mEAAe,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,+DAAW,EAAE;YACnC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,+DAAW,EAAE;YACnC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,+DAAW,EAAE;YACpC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,8DAAU,EAAE;YACjC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,8DAAU,EAAE;YAC1C,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,+DAAW,EAAE;YACnC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,8DAAU,EAAE;YACjC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,iEAAa,EAAE;YACvC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,oEAAgB,EAAE;YAC7C,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,oEAAgB,EAAE;YAC7C,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,6DAAS,EAAE;YAC/B,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,kEAAc,EAAE;YACzC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,gEAAY,EAAE;YACrC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,iEAAa,EAAE;YACvC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,kEAAc,EAAE;YACzC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,oEAAgB,EAAE;YAC7C,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,oEAAgB,EAAE;YAC7C,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,oEAAgB,EAAE;YACrD,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,sEAAkB,EAAE;YACxD,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,uEAAmB,EAAE;YAC1D,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,uEAAmB,EAAE;YAC1D,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,qEAAiB,EAAE;YACrD,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,qEAAiB,EAAE;YACvD,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,uEAAmB,EAAE;YACnD,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,oEAAgB,EAAE;YAC7C,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,8DAAU,EAAE;YACjC,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,qEAAiB,EAAE;YAC/C,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,8DAAU,EAAE;YACjC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,gEAAY,EAAE;YACrC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,mEAAe,EAAE;YAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,oEAAgB,EAAE;YAC7C,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,8DAAU,EAAE;YACjC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,kEAAc,EAAE;YACzC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,mEAAe,EAAE;YAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,oEAAgB,EAAE;YAC7C,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,8DAAU,EAAE;YACjC,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,0EAAsB,EAAE;YACzD,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,6EAAyB,EAAE;YAC/D,EAAE,IAAI,EAAE,yBAAyB,EAAE,GAAG,EAAE,iFAA6B,EAAE;YACvE,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,yEAAqB,EAAE;YACvD,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,EAAE,+EAA2B,EAAE;YACnE,EAAE,IAAI,EAAE,yBAAyB,EAAE,GAAG,EAAE,iFAA6B,EAAE;YACvE,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,6EAAyB,EAAE;YAC/D,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,0EAAsB,EAAE;YACzD,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,yEAAqB,EAAE;YACvD,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,4EAAwB,EAAE;YAC7D;gBACE,IAAI,EAAE,8BAA8B;gBACpC,GAAG,EAAE,sFAAkC;aACxC;YACD,EAAE,IAAI,EAAE,yBAAyB,EAAE,GAAG,EAAE,iFAA6B,EAAE;YACvE;gBACE,IAAI,EAAE,6BAA6B;gBACnC,GAAG,EAAE,qFAAiC;aACvC;YACD;gBACE,IAAI,EAAE,4BAA4B;gBAClC,GAAG,EAAE,oFAAgC;aACtC;YACD;gBACE,IAAI,EAAE,2BAA2B;gBACjC,GAAG,EAAE,mFAA+B;aACrC;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,qEAAiB,EAAE;YAC/C,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,EAAE,+EAA2B,EAAE;YACnE,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,uEAAmB,EAAE;YACnD,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,yEAAqB,EAAE;YACvD,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,4EAAwB,EAAE;YAC7D,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,0EAAsB,EAAE;YACzD,EAAE,IAAI,EAAE,wBAAwB,EAAE,GAAG,EAAE,gFAA4B,EAAE;YACrE,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,wEAAoB,EAAE;YACrD,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,oEAAgB,EAAE;YAC7C,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,uEAAmB,EAAE;YACnD,EAAE,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,kFAA8B,EAAE;YACzE,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,0EAAsB,EAAE;YACzD,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,0EAAsB,EAAE;YACzD,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,0EAAsB,EAAE;YACzD,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,wEAAoB,EAAE;YACrD,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,8EAA0B,EAAE;YACjE,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,yEAAqB,EAAE;YACvD,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,6EAAyB,EAAE;YAC/D,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,EAAE,+EAA2B,EAAE;YACnE,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,6EAAyB,EAAE;YAC/D,EAAE,IAAI,EAAE,wBAAwB,EAAE,GAAG,EAAE,gFAA4B,EAAE;YACrE,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,0EAAsB,EAAE;YACzD,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,2EAAuB,EAAE;YAC3D,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,sEAAkB,EAAE;YACjD,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,yEAAqB,EAAE;YACvD,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,4EAAwB,EAAE;YAC7D,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,uEAAmB,EAAE;YACnD,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,wEAAoB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,uEAAmB,EAAE;YACnD,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,sEAAkB,EAAE;YACjD,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,8EAA0B,EAAE;YACjE,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,wEAAoB,EAAE;YACrD,EAAE,IAAI,EAAE,2BAA2B,EAAE,GAAG,EAAE,mFAA+B,EAAE;YAC3E,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,2EAAuB,EAAE;YAC3D,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,8DAAU,EAAE;YACjC,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,8EAA0B,EAAE;YACjE,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,0EAAsB,EAAE;YACzD,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,2EAAuB,EAAE;YAC3D,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,yEAAqB,EAAE;YACvD,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,qEAAiB,EAAE;YAC/C,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,wEAAoB,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,uEAAmB,EAAE;YACnD,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,8EAA0B,EAAE;YACjE,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,uEAAmB,EAAE;YACnD,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,uEAAmB,EAAE;YACnD,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,wEAAoB,EAAE;YACrD,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,0EAAsB,EAAE;YACzD,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,yEAAqB,EAAE;YACvD,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,+DAAW,EAAE;YACnC,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,4EAAwB,EAAE;YAC7D,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,wEAAoB,EAAE;YACrD,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,sEAAkB,EAAE;YACjD,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,sEAAkB,EAAE;YACjD,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,wEAAoB,EAAE;YACrD,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,wEAAoB,EAAE;YACrD,EAAE,IAAI,EAAE,wBAAwB,EAAE,GAAG,EAAE,gFAA4B,EAAE;YACrE,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,wEAAoB,EAAE;YACrD,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,0EAAsB,EAAE;YACzD,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,4EAAwB,EAAE;YAC7D,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,4EAAwB,EAAE;YAC7D,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,qEAAiB,EAAE;YAC/C,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,sEAAkB,EAAE;YACjD;gBACE,IAAI,EAAE,0CAA0C;gBAChD,GAAG,EAAE,kGAA8C;aACpD;YACD,EAAE,IAAI,EAAE,wBAAwB,EAAE,GAAG,EAAE,gFAA4B,EAAE;YACrE,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,4EAAwB,EAAE;YAC7D,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,0EAAsB,EAAE;YACzD;gBACE,IAAI,EAAE,4BAA4B;gBAClC,GAAG,EAAE,oFAAgC;aACtC;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,0EAAsB,EAAE;YACzD,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,EAAE,+EAA2B,EAAE;YACnE,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,yEAAqB,EAAE;YACvD,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,sEAAkB,EAAE;YACjD,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,8EAA0B,EAAE;YACjE,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,2EAAuB,EAAE;YAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,oEAAgB,EAAE;YAC7C,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,4EAAwB,EAAE;YAC7D,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,qEAAiB,EAAE;YAC/C,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,6EAAyB,EAAE;YAC/D;gBACE,IAAI,EAAE,+BAA+B;gBACrC,GAAG,EAAE,uFAAmC;aACzC;YACD;gBACE,IAAI,EAAE,4BAA4B;gBAClC,GAAG,EAAE,oFAAgC;aACtC;YACD,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,EAAE,+EAA2B,EAAE;YACnE;gBACE,IAAI,EAAE,+BAA+B;gBACrC,GAAG,EAAE,uFAAmC;aACzC;YACD,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,4EAAwB,EAAE;YAC7D;gBACE,IAAI,EAAE,4BAA4B;gBAClC,GAAG,EAAE,oFAAgC;aACtC;YACD,EAAE,IAAI,EAAE,yBAAyB,EAAE,GAAG,EAAE,iFAA6B,EAAE;YACvE,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,oEAAgB,EAAE;YAC7C,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,0EAAsB,EAAE;YACzD,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,+DAAW,EAAE;YACnC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,oEAAgB,EAAE;YAC7C,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,yEAAqB,EAAE;YACvD,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,2EAAuB,EAAE;YAC3D,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,0EAAsB,EAAE;YACzD,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,0EAAsB,EAAE;YACzD,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,yEAAqB,EAAE;YACvD,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,kEAAc,EAAE;YACzC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,oEAAgB,EAAE;YAC7C,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,qEAAiB,EAAE;YAC/C,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,0EAAsB,EAAE;YACzD,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,sEAAkB,EAAE;YACjD,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,oEAAgB,EAAE;YAC7C,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,iEAAa,EAAE;YACvC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,oEAAgB,EAAE;YAC3C,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,sEAAkB,EAAE;YACjD,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,oEAAgB,EAAE;YAC7C,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,+DAAW,EAAE;YACnC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,+DAAW,EAAE;YACnC,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,wEAAoB,EAAE;YACrD,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,6DAAS,EAAE;YAC/B,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,kEAAc,EAAE;YACzC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,iEAAa,EAAE;YACvC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,gEAAY,EAAE;YACrC,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,qEAAiB,EAAE;YAC/C,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,kEAAc,EAAE;YACzC,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,mEAAe,EAAE;YACnD,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,gEAAY,EAAE;YACrC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,gEAAY,EAAE;YACrC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,mEAAe,EAAE;YAC3C,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,yEAAqB,EAAE;YACxD,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,oEAAgB,EAAE;YAC7C,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,kEAAc,EAAE;YACzC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,gEAAY,EAAE;YACrC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,+DAAW,EAAE;YACnC,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,qEAAiB,EAAE;YAC/C,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,kEAAc,EAAE;YACzC,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,0EAAsB,EAAE;YACzD,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,uEAAmB,EAAE;SACpD,CAAC;QAMA,qBAAqB;QACrB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,oEAAoE;QACpE,2EAA2E;QAC3E,oBAAoB;QACpB,2DAA2D;QAC3D,oDAAoD;QACpD,wBAAwB;QACxB,iDAAiD;QACjD,oDAAoD;QACpD,6CAA6C;QAC7C,oDAAoD;QACpD,iEAAiE;QACjE,oEAAoE;QACpE,qBAAqB;QACrB,wBAAwB;QACxB,qEAAqE;QACrE,uBAAuB;QACvB,oDAAoD;QACpD,iDAAiD;QACjD,mDAAmD;QACnD,mDAAmD;QACnD,uCAAuC;QACvC,uBAAuB;QACvB,YAAY;QACZ,QAAQ;QACR,MAAM;IACR,CAAC;IAED,YAAY,CAAC,IAAY,EAAE,UAAkB;QAC3C,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC;IAChG,CAAC;IAED,WAAW,KAAU,CAAC;;;;;;;AAtSX,YAAY;IALxB,wDAAS,CAAC;QACT,QAAQ,EAAE,UAAU;QACpB,qEAAmC;;KAEpC,CAAC;GACW,YAAY;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBgB;AACyB;AACR;AACqB;AACjB;AACJ;AACX;AACgB;AACF;AACN;AACC;AACT;AAC0D;AAC9C;AACb;AACJ;IA0B7B,SAAS,SAAT,SAAS;;AAAT,SAAS;IAxBrB,uDAAQ,CAAC;QACR,YAAY,EAAE,CAAC,wDAAY,EAAE,kHAAyB,CAAC;QACvD,OAAO,EAAE;YACP,oEAAa;YACb,uDAAW;YACX,yDAAY;YACZ,oEAAc;YACd,+DAAmB;YACnB,0FAAuB;YACvB,wEAAqB;YACrB,wEAAkB;YAClB,kFAA4B,CAAC,gBAAgB,EAAE;gBAC7C,OAAO,EAAE,6EAAsB;aAChC,CAAC;YACF,kEAAa;YACb,2EAAyB,EAAE;YAC3B,kFAA4B,CAAC,gBAAgB,EAAE;gBAC7C,OAAO,EAAE,6EAAsB;aAChC,CAAC;YACF,yDAAY;YACZ,qDAAU;SACX;QACD,SAAS,EAAE,CAAC,wDAAY,CAAC;KAC1B,CAAC;GACW,SAAS;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzCtB,qCAAqC;AACM;AAKmB;AACE;AACN;AACQ;AACqB;AACgB;AACf;AACX;AAEtE,SAAS,wBAAwB,CAAC,QAAsB,EAAE,KAAsB,EAAE,KAAY;IACjG,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpG,CAAC;IAGY,wBAAwB,SAAxB,wBAAwB;IACjC,aAAa,CAAC,SAAsB,EAAE,YAAoC,EAAE,YAAiC,EACzG,SAA+B;QAC/B,MAAM,WAAW,GAAG,gGAAsC,EAAE,CAAC;QAC7D,IAAI,WAAW,EAAE;YACb,IAAI,gGAA0C,EAAE,EAAE;gBAC9C,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,EAAE;oBAC/B,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC7C,OAAO,KAAK,CAAC;iBAChB;qBAAM;oBACH,4FAAsC,CAAC,KAAK,CAAC,CAAC;oBAC9C,4FAAkC,CAAC,IAAI,CAAC,CAAC;iBAC5C;aACJ;iBAAM;gBACH,4FAAkC,CAAC,IAAI,CAAC,CAAC;gBACzC,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,EAAE;oBAC/B,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC7C,OAAO,KAAK,CAAC;iBAChB;aACJ;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;;AAtBQ,wBAAwB;IADpC,yDAAU,EAAE;GACA,wBAAwB;AAAA;AAyB9B,MAAM,MAAM,GAAW;IAC1B,EAAE,IAAI,EAAE,4BAA4B,EAAE,SAAS,EAAE,kGAAkB,EAAE;IACrE,EAAE,IAAI,EAAE,8BAA8B,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,qNAA6D,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE;IACzJ,EAAE,IAAI,EAAE,8BAA8B,EAAE,SAAS,EAAE,gGAAmB,EAAE;IACxE,EAAE,IAAI,EAAE,oCAAoC,EAAE,SAAS,EAAE,kHAAyB,EAAE;IACpF,EAAE,IAAI,EAAE,gCAAgC,EAAE,SAAS,EAAE,sFAAoB,EAAE;IAC3E,EAAE,SAAS,EAAE,yEAAY,EAAE,OAAO,EAAE,wBAAwB,EAAE;IAC9D,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,uEAAW,EAAE,aAAa,EAAE,CAAC,wBAAwB,CAAC,EAAE;CACpF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;ACrDF;AACA;AACA;AACA;IAMaI,iBAAiB,SAAjBA,iBAAiB;;IAG1B,qBAAgB,EAAhB;EAgEH;;EA7DGC,QAAQ;IAAA;;IACJF,6FAAA,CAAwC,IAAxC;IACA,KAAKK,aAAL,CAAmBC,IAAnB,CAAwBN,4FAAA,CAAuCS,CAAC,IAAG;MAC/D,KAAKC,MAAL,GAAcD,CAAd;MACA,KAAKE,UAAL,GAAkBF,CAAlB;MACA,IAAIG,QAAQ,GAAGd,sEAAf;;MACA,IAAIW,CAAJ,EAAO;QACHG,QAAQ,GAAGd,sEAAX;QACAW,CAAC,CAACM,WAAF,CAAcjB,sEAAd;MACH;;MACDE,qFAAA,CAAgCS,CAAhC;;MACA,IAAIT,qFAAA,OAAsCY,QAA1C,EAAoD;QAChDZ,iFAAA,CAA4BY,QAA5B;MACH;IACJ,CAZuB,CAAxB;IAaA,KAAKP,aAAL,CAAmBC,IAAnB,CAAwBN,sFAAA;MAAA,kKAAiC,WAAOmB,IAAP,EAAe;QACpE,MAAMC,MAAM,GAAG,EAAf;QACA,IAAIC,IAAI,GAAG,KAAI,CAACV,UAAhB;;QAEA,IAAIQ,IAAI,IAAI,IAAZ,EAAkB;UACdC,MAAM,CAAC,WAAD,CAAN,GAAsBD,IAAI,CAACG,KAAL,GAAa,IAAnC;UACAF,MAAM,CAAC,aAAD,CAAN,GAAwB,MAAxB;UACAA,MAAM,CAAC,cAAD,CAAN,GAAyB,MAAzB;;UAEA,IAAIG,UAAU,GAAG,KAAI,CAACZ,UAAL,CAAgBa,WAAhB,CAA4BC,IAA5B,CAAkCC,KAAD,IAAWP,IAAI,CAACG,KAAL,GAAaI,KAAK,CAACC,SAAnB,IAAgCR,IAAI,CAACG,KAAL,IAAcI,KAAK,CAACE,OAAhG,CAAjB;;UACA,IAAIL,UAAJ,EAAgB;YACZF,IAAI,GAAGE,UAAP;YACAF,IAAI,CAACN,WAAL,CAAiBjB,sEAAjB;;YACA,IAAI,CAACyB,UAAU,CAACM,QAAZ,IAAwBN,UAAU,CAACM,QAAX,CAAoBC,MAApB,IAA8B,CAA1D,EAA6D;cACzD,IAAIC,OAAO,GAAG,IAAIhC,sEAAJ,EAAd;cACAgC,OAAO,CAACC,WAAR,GAAsB,SAAtB;cACAT,UAAU,CAACM,QAAX,CAAoBvB,IAApB,CAAyByB,OAAzB;YACH;;YACD/B,2FAAA,CAAsCuB,UAAtC;UACH,CATD,MAUK;YACDvB,2FAAA,CAAsC,IAAtC;UACH;QACJ,CAnBD,MAmBO;UACHoB,MAAM,CAAC,OAAD,CAAN,GAAkB,MAAlB;UACApB,2FAAA,CAAsC,IAAtC;QACH;;QACD,IAAI,KAAI,CAACU,MAAL,IAAeW,IAAnB,EAAyB;UACrBrB,uFAAA,CAAkCqB,IAAlC;QACH;;QACD,KAAI,CAACX,MAAL,GAAcW,IAAd;QACAD,MAAM,CAAC,QAAD,CAAN,GAAmB,MAAnB;QACA,KAAI,CAACc,YAAL,GAAoBd,MAApB;MACH,CAjCuB;;MAAA;QAAA;MAAA;IAAA,IAAxB;EAkCH;;EAEDe,WAAW;IACP,KAAK9B,aAAL,CAAmB+B,OAAnB,CAA2BC,CAAC,IAAIA,CAAC,CAACC,WAAF,EAAhC;IACAtC,6FAAA,CAAwC,KAAxC;EACH;;EAEDuC,YAAY;IACR,IAAI,KAAK7B,MAAL,IAAe,CAAC,KAAKA,MAAL,CAAY8B,QAAhC,EAA0C;MACtCxC,qFAAA,CAAgC,KAAKW,UAArC;IACH;EACJ;;AAlEyB;AAAjBV,iBAAiB,sDAJ7BJ,wDAAS,CAAC;EACP4C,QAAQ,EAAE,qBADH;EAEPC,UAAAA,iEAAAA;AAFO,CAAD,CAIoB,GAAjBzC,iBAAiB,CAAjB;;;;;;;;;;;;;;;;;;;;;;;;;;ACTb;AAUA;AACA;AACA;IAOagD,oBAAoB,SAApBA,oBAAoB;EAyG/BC,YAAoBC,KAApB,EAAqDC,yBAArD,EACsBC,sBADtB,EACmE;IAD/C;IAAiC;IAC/B;IAzGtB,qBAAgB;MACd3C,MAAM,EAAE,IADM;MAEd4C,IAAI,EAAE,IAFQ;MAGdC,aAAa,EAAE,IAHD;MAIdC,cAAc,EAAE,IAJF;MAKdC,IAAI,EAAE,IALQ;MAMdC,KAAK,EAAE,IANO;MAOdC,KAAK,EAAE,IAPO;MAQdC,QAAQ,EAAE,IARI;MASdC,SAAS,EAAE,IATG;MAUdC,OAAO,EAAE;IAVK,CAAhB,CAyGmE,CA7FnE;;IACA,kBAAa,EAAb;IACA,gBAAW,EAAX;IAGA,qBAAgB,EAAhB;IAqBU,mBAAc,IAAIlB,uDAAJ,EAAd;IAGD,sBAA2B,EAA3B;IAYT,qBAAgB,EAAhB;EAoDuE;;EAtF9D,IAALmB,KAAK;IACP,OAAO,KAAKC,UAAZ;EACD;;EACQ,IAALD,KAAK,CAACE,GAAD,EAAI;IACX,KAAKC,QAAL,GAAgBD,GAAhB;IACA,KAAKE,oBAAL,GAA4BC,IAA5B,CAAiC,MAAK;MACpC,KAAKJ,UAAL,GAAkB,KAAKE,QAAL,CAAcG,MAAd,CAAsB3C,KAAD,IAAWA,KAAK,CAAC4C,OAAtC,EAA+CC,IAA/C,CAAoD,CAACC,CAAD,EAAIC,CAAJ,KAAS;QAC7E,IAAID,CAAC,CAACE,KAAF,GAAUD,CAAC,CAACC,KAAhB,EAAuB;UACrB,OAAO,CAAP;QACD;;QACD,IAAIF,CAAC,CAACE,KAAF,GAAUD,CAAC,CAACC,KAAhB,EAAuB;UACrB,OAAO,CAAC,CAAR;QACD;;QACD,OAAO,CAAP;MACD,CARiB,CAAlB;MASA,KAAKC,WAAL,CAAiBC,IAAjB,CAAsBX,GAAtB;MACA,KAAKd,KAAL,CAAW0B,aAAX;IACD,CAZD;EAaD;;EAQDC,QAAQ,CAACzD,IAAD,EAAK;IACXA,IAAI,CAAC0D,QAAL,GAAgB,IAAhB;EACD;;EAEDC,QAAQ,CAAC3D,IAAD,EAAK;IACXA,IAAI,CAAC0D,QAAL,GAAgB,KAAhB;EACD;;EAGDE,YAAY;IACV,IAAI,KAAKf,QAAT,EAAmB;MACjB,KAAKC,oBAAL,GAA4BC,IAA5B,CAAiC,MAAK;QACpC,KAAKJ,UAAL,GAAkB,KAAKE,QAAL,CAAcG,MAAd,CAAsB3C,KAAD,IAAWA,KAAK,CAAC4C,OAAtC,EAA+CC,IAA/C,CAAoD,CAACC,CAAD,EAAIC,CAAJ,KAAS;UAC7E,IAAID,CAAC,CAACE,KAAF,GAAUD,CAAC,CAACC,KAAhB,EAAuB;YACrB,OAAO,CAAP;UACD;;UACD,IAAIF,CAAC,CAACE,KAAF,GAAUD,CAAC,CAACC,KAAhB,EAAuB;YACrB,OAAO,CAAC,CAAR;UACD;;UACD,OAAO,CAAP;QACD,CARiB,CAAlB;QASA,KAAKvB,KAAL,CAAW0B,aAAX;MACD,CAXD;IAYD;EACF;;EACDV,oBAAoB;IAClB,OAAO,IAAIe,OAAJ,CAAaC,OAAD,IAAY;MAC7B,IAAI,KAAKjB,QAAL,IAAiB,KAAKlD,YAA1B,EAAwC;QACtC,IAAIoE,UAAU,GAAG,CAAjB;QACA,IAAIC,QAAQ,GAAG,CAAf;QACA,KAAKnB,QAAL,CAAc9B,OAAd,CAAuBf,IAAD,IAAS;UAC7B,IAAIA,IAAI,IAAIA,IAAI,CAACiE,aAAjB,EAAgC;YAC9B,IAAIC,EAAE,GAAGlE,IAAI,CAACiE,aAAd;;YACA,IAAIC,EAAE,CAACC,GAAH,IAAU,KAAKC,aAAL,CAAmBF,EAAE,CAACC,GAAtB,KAA8B,IAA5C,EAAkD;cAChD,KAAKC,aAAL,CAAmBF,EAAE,CAACC,GAAtB,IAA6B,KAA7B;YACD;;YACD,IAAID,EAAE,CAACG,eAAP,EAAwB;cACtBrE,IAAI,CAACiD,OAAL,GAAeiB,EAAE,CAACG,eAAH,CAAmB,KAAK1E,YAAxB,CAAf;YACD;;YACD,IAAIuE,EAAE,CAACI,oBAAP,EAA6B;cAC3BP,UAAU,IAAI,CAAd;cAEAG,EAAE,CAACI,oBAAH,CAAwB,KAAK3E,YAA7B,EAA2CoD,IAA3C,CAAiD1C,KAAD,IAAU;gBACxDL,IAAI,CAACiD,OAAL,GAAe5C,KAAf;gBACA2D,QAAQ,IAAI,CAAZ;;gBACA,IAAID,UAAU,IAAIC,QAAlB,EAA4B;kBAC1BF,OAAO,CAAC,IAAD,CAAP;gBACD;cACF,CAND;YAOD;UACF;QACF,CArBD;;QAsBA,IAAIC,UAAU,IAAI,CAAlB,EAAqB;UACnBD,OAAO,CAAC,IAAD,CAAP;QACD;MACF;IACF,CA9BM,CAAP;EA+BD;;EAIDjF,QAAQ;IACN,KAAK0F,WAAL;IACA,KAAKvF,aAAL,CAAmB,uBAAnB,IAA8CL,mGAAA,CAA8C,MAAK;MAC/F,KAAKiF,YAAL;IACD,CAF6C,CAA9C;IAGA,KAAK5E,aAAL,CAAmB,SAAnB,IAAgC0C,0FAAA,CAAuC,MAAK;MAC1E,KAAKkC,YAAL;IACD,CAF+B,CAAhC;IAGA,KAAK5E,aAAL,CAAmB,cAAnB,IAAqCL,0FAAA,CAAsCqB,IAAD,IAAS;MACjF,KAAKL,YAAL,GAAoBK,IAApB;MACA,KAAK4D,YAAL;IACD,CAHoC,CAArC;EAID;;EAEDc,WAAW,CAACC,OAAD,EAAuB;IAChC,IAAGA,OAAO,CAAC,OAAD,CAAV,EAAqB;MACnB,MAAMC,MAAM,GAAG,CAAC,GAAGD,OAAO,CAAC,OAAD,CAAP,CAAiBE,YAArB,CAAf;;MACA,IAAID,MAAM,CAAC,CAAD,CAAN,CAAUT,GAAV,IAAiB,MAAjB,IAAyB,KAAKW,aAAL,CAAmBrE,MAAnB,IAA6B,CAA1D,EAA6D;QAC3D,KAAKsE,iBAAL,CAAuBH,MAAvB;MACD;IACF;EAEF;;EAEDG,iBAAiB,CAACH,MAAD,EAAO;IACtB,IAAGA,MAAM,IAAIA,MAAM,CAACnE,MAAP,GAAgB,CAA7B,EAAgC;MAC9B,KAAKqE,aAAL,GAAqBF,MAAM,CAACI,GAAP,CAAW,CAACC,CAAD,EAAIC,KAAJ,KAAcA,KAAzB,CAArB;MACA,KAAKpD,KAAL,CAAW0B,aAAX;IACD;EACF;;EACD1C,WAAW;IACT,KAAKyD,WAAL;EACD;;EACDA,WAAW;IACT,IAAI,KAAKvF,aAAT,EAAwB;MACtBmG,MAAM,CAACC,IAAP,CAAY,KAAKpG,aAAjB,EAAgC+B,OAAhC,CAAyCsE,GAAD,IAAQ;QAC9C,KAAKrG,aAAL,CAAmBqG,GAAnB,EAAwBpE,WAAxB;MACD,CAFD;IAGD;EACF;;EACDqE,iBAAiB,CAACC,KAAD,EAAQvF,IAAR,EAAY;IAC3BuF,KAAK,CAACC,QAAN,CAAevB,aAAf,GAA+BjE,IAA/B;EACD;;AArJ8B;;;;;;;;;;;;UAmB9BwB,gDAAKA;;;UAoBLC,iDAAMA;;;UAGND,gDAAKA;;;AA1CKI,oBAAoB,sDALhCpD,wDAAS,CAAC;EACT4C,QAAQ,EAAE,wBADD;EAETC,UAAAA,oEAFS;;AAAA,CAAD,CAKuB,GAApBO,oBAAoB,CAApB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBb;AACA;AAYA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAKa0E,8BAA8B,SAA9BA,8BAA8B;AAA9BA,8BAA8B,uDAH1CX,yDAAS,CAAC;EACPvE,QAAQ,EAAE;AADH,CAAD,CAGiC,GAA9BkF,8BAA8B,CAA9B;AAAAA;IAIAC,6BAA6B,SAA7BA,6BAA6B;AAA7BA,6BAA6B,uDAHzCZ,yDAAS,CAAC;EACPvE,QAAQ,EAAE;AADH,CAAD,CAGgC,GAA7BmF,6BAA6B,CAA7B;AAAAA;IAOAC,cAAc,SAAdA,cAAc;EAoNvB3E,YAAoBC,KAApB,EAAsD2E,OAAtD,EAAoFC,MAApF,EAA4GC,SAA5G,EAAiJ3E,sBAAjJ,EAA+L;IAA3K;IAAkC;IAA8B;IAAwB;IAAqC;IAhNjJ,aAAQ;MACJ4E,OAAO,EAAE;IADL,CAAR;IAKA,kBAAa,EAAb;IACA,sBAAiB,OAAjB;IACA,yBAAoB,OAApB;IACA,0BAAqB,IAArB;IACA,mBAAc,EAAd;IACA,uBAAkB,OAAlB;IACA,0BAAqB,OAArB;IACA,kBAAa,EAAb;IACA,uBAAkB,EAAlB;IACA,2BAAsB,IAAtB;IACA,yBAAoB,EAApB,CAiM+L,CAhM/L;;IACA,kBAAa,EAAb;IAEA,uBAAkB,IAAlB;IAaU,mBAAc,IAAIrF,wDAAJ,EAAd,CAgLqL,CA1D/L;;IACA,qBAAgB,KAAhB;IAWU,sBAAiB,IAAIA,wDAAJ,EAAjB,CA8CqL,CA7C/L;;IACA,oBAAe,KAAf;IACA,yBAAoB,CAApB;IACA,yBAAoB,CAApB;IACA,0BAAqB,CAArB;IACA,qBAAgB,KAAhB;IACA,uBAAkB,KAAlB;IACA,6BAAwB,IAAxB;IAEA,yBAAoB,KAApB;IACA,+BAA0B,EAA1B;IACA,0BAAqB,EAArB,CAkC+L,CAjC/L;;IACA,4BAAuB,EAAvB;IAWU,6BAAwB,IAAIA,wDAAJ,EAAxB;IAmBA,0BAAqB,IAAIA,wDAAJ,EAArB,CAEqL,CAyC/L;;IACA,mBAAsB,EAAtB;IA0EA,2BAAsB,KAAtB,CApH+L,CAoI/L;IACA;;IACA,qBAAgB,KAAhB;IACA,sBAAiB,IAAjB;IACA,qBAAgB,IAAhB;IA0CA,0BAAqB,KAArB;IAjLI,KAAKsF,eAAL,GAAuBd,0EAAvB;IAEA,KAAKe,uBAAL,GAA+Bf,0EAA/B;IACA,KAAKgB,QAAL,GAAgB,IAAhB;IACAZ,6FAAA,CAAoC,MAAK;MACrC,KAAKU,eAAL,GAAuBd,0EAAvB;MACA,KAAKe,uBAAL,GAA+Bf,0EAA/B;MACA,KAAKkB,YAAL;IACH,CAJD;IAKAvF,0FAAA,CAAuC,MAAK;MACxC,KAAKI,KAAL,CAAW0B,aAAX;IACH,CAFD;EAGH;;EAxMQ,IAALd,KAAK;IACL,OAAO,KAAKC,UAAZ;EACH;;EACQ,IAALD,KAAK,CAACE,GAAD,EAAI;IACT,KAAKD,UAAL,GAAkBC,GAAlB;IACA,KAAKqE,YAAL;IACA,KAAKC,aAAL,GAAqB,KAArB;IACA,KAAKC,cAAL,CAAoB,CAApB;IACA,KAAKC,aAAL,CAAmB,CAAnB;IACA,KAAK9D,WAAL,CAAiBC,IAAjB,CAAsBX,GAAtB;EACH,CAnCsB,CAqCvB;;;EACAqE,YAAY;IACR,KAAKI,eAAL,GAAuB,EAAvB;IACA,KAAKC,UAAL,GAAkB,EAAlB;IACA,KAAKC,WAAL,GAAmB,EAAnB;IACA,KAAKC,UAAL,GAAkB,EAAlB;IACA,IAAIC,YAAY,GAAa,EAA7B;IACAA,YAAY,CAACC,QAAb,GAAwB,EAAxB;IACAD,YAAY,CAACE,KAAb,GAAqB,KAAKhB,SAAL,CAAeiB,OAAf,CAAuB,gBAAvB,CAArB;;IACA,IAAI,KAAKjF,UAAT,EAAqB;MACjB,KAAK,IAAIkF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKlF,UAAL,CAAgBlC,MAApC,EAA4CoH,CAAC,EAA7C,EAAiD;QAC7C,QAAQ,KAAKlF,UAAL,CAAgBkF,CAAhB,EAAmBC,QAA3B;UACI,KAAK7B,oFAAL;YACI,KAAKqB,UAAL,CAAgBrI,IAAhB,CAAqB,KAAK0D,UAAL,CAAgBkF,CAAhB,CAArB;YACA;;UACJ,KAAK5B,qFAAL;YACI,KAAKsB,WAAL,CAAiBtI,IAAjB,CAAsB,KAAK0D,UAAL,CAAgBkF,CAAhB,CAAtB;YACA;;UACJ,KAAK5B,oFAAL;YACI,KAAKuB,UAAL,CAAgBvI,IAAhB,CAAqB,KAAK0D,UAAL,CAAgBkF,CAAhB,CAArB;YACA,IAAI7H,IAAI,GAAa,EAArB;YACAA,IAAI,CAACkI,IAAL,GAAY,KAAKvF,UAAL,CAAgBkF,CAAhB,CAAZ;YACA7H,IAAI,CAACmI,IAAL,GAAY,KAAKxF,UAAL,CAAgBkF,CAAhB,EAAmBO,IAA/B;YACApI,IAAI,CAAC2H,KAAL,GAAa,KAAKhF,UAAL,CAAgBkF,CAAhB,EAAmBQ,OAAhC;YACArI,IAAI,CAACsI,UAAL,GAAkB,IAAlB;YACAtI,IAAI,CAACuI,IAAL,GAAY,QAAZ;YACAd,YAAY,CAACC,QAAb,CAAsBzI,IAAtB,CAA2Be,IAA3B;YACA;;UACJ;YACI,KAAKwH,UAAL,CAAgBvI,IAAhB,CAAqB,KAAK0D,UAAL,CAAgBkF,CAAhB,CAArB;YACA;QAnBR;MAqBH;IACJ;;IACD,KAAKR,eAAL,CAAqBpI,IAArB,CAA0BwI,YAA1B;IACA,KAAKe,iBAAL;IAEA,IAAIC,WAAW,GAAGC,YAAY,CAACC,OAAb,CAAqB,yBAArB,CAAlB;;IACA,IAAIF,WAAJ,EAAiB;MACb,IAAIG,MAAM,GAAGC,IAAI,CAACC,KAAL,CAAWL,WAAX,CAAb;;MACA,KAAK,IAAIZ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGe,MAAM,CAACnI,MAA3B,EAAmCoH,CAAC,EAApC,EAAwC;QACpC,IAAIkB,KAAK,GAAGH,MAAM,CAACf,CAAD,CAAlB;QACA,IAAImB,KAAK,GAAG,KAAKxB,UAAL,CAAgBpH,IAAhB,CAAsBC,KAAD,IAAWA,KAAK,CAAC4I,EAAN,IAAYF,KAAK,CAACE,EAAlD,CAAZ;;QACA,IAAID,KAAJ,EAAW;UACPJ,MAAM,CAACf,CAAD,CAAN,GAAYmB,KAAZ;QACH;;QACD,IAAI,KAAKE,kBAAL,CAAwBH,KAAK,CAACE,EAA9B,CAAJ,EAAuC;UACnC,IAAIE,KAAK,CAACC,OAAN,CAAc,KAAKF,kBAAL,CAAwBH,KAAK,CAACE,EAA9B,CAAd,CAAJ,EAAsD;YAClD,IAAIF,KAAK,CAACM,QAAV,EAAoB;cAChB,IAAIC,GAAG,GAAG,KAAKJ,kBAAL,CAAwBH,KAAK,CAACE,EAA9B,EAAkC7I,IAAlC,CAAwCmJ,MAAD,IAAYV,IAAI,CAACW,SAAL,CAAeD,MAAM,CAACF,QAAtB,KAAmCR,IAAI,CAACW,SAAL,CAAeT,KAAK,CAACM,QAArB,CAAtF,CAAV;;cACA,IAAIC,GAAJ,EAAS;gBACLV,MAAM,CAACf,CAAD,CAAN,GAAYyB,GAAZ;cACH;YACJ;UACJ,CAPD,MAOO;YACHV,MAAM,CAACf,CAAD,CAAN,GAAY,KAAKqB,kBAAL,CAAwBH,KAAK,CAACE,EAA9B,CAAZ;UACH;QACJ;;QACD,IAAIL,MAAM,CAACf,CAAD,CAAN,CAAU4B,IAAV,IAAkB,UAAtB,EAAkC;UAC9Bb,MAAM,CAACf,CAAD,CAAN,CAAU5E,OAAV,GAAoB,KAAKyG,2BAAL,CAAiCd,MAAM,CAACf,CAAD,CAAvC,CAApB;QACH;MACJ;;MACD,KAAKL,UAAL,GAAkBoB,MAAlB;IACH;EAEJ;;EACDJ,iBAAiB;IACb,IAAImB,MAAM,GAAa,EAAvB;IACAA,MAAM,CAACjC,QAAP,GAAkB,EAAlB;IACAiC,MAAM,CAAChC,KAAP,GAAe,KAAKhB,SAAL,CAAeiB,OAAf,CAAuB,kBAAvB,CAAf;;IAEA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKf,uBAAL,CAA6BrG,MAAjD,EAAyDoH,CAAC,EAA1D,EAA8D;MAC1D,IAAIjF,GAAG,GAAG,KAAKkE,uBAAL,CAA6Be,CAA7B,CAAV;;MACA,IAAI,KAAK6B,2BAAL,CAAiC9G,GAAjC,CAAJ,EAA2C;QACvCA,GAAG,CAAC6G,IAAJ,GAAW,UAAX;QACA,IAAIzJ,IAAI,GAAa,EAArB;QACAA,IAAI,CAACkI,IAAL,GAAYtF,GAAZ;QACA5C,IAAI,CAACmI,IAAL,GAAYvF,GAAG,CAACwF,IAAhB;QACApI,IAAI,CAAC2H,KAAL,GAAa/E,GAAG,CAACgH,OAAjB;QACA5J,IAAI,CAACsI,UAAL,GAAkB,IAAlB;QACAtI,IAAI,CAACuI,IAAL,GAAY3F,GAAG,CAAC6G,IAAhB;;QACA,IAAI7G,GAAG,CAACiH,cAAJ,KAAuB,CAACjH,GAAG,CAACkH,QAAL,IAAiBlH,GAAG,CAACkH,QAAJ,CAAarJ,MAAb,IAAuB,CAA/D,CAAJ,EAAuE;UACnEmC,GAAG,CAACiH,cAAJ,CAAmBjH,GAAnB;QACH;;QACD,IAAIA,GAAG,CAACkH,QAAJ,IAAgBlH,GAAG,CAACkH,QAAJ,CAAarJ,MAAb,GAAsB,CAA1C,EAA6C;UACzCT,IAAI,CAAC0H,QAAL,GAAgB,KAAKqC,qBAAL,CAA2BnH,GAAG,CAACkH,QAA/B,CAAhB;QACH;;QACDH,MAAM,CAACjC,QAAP,CAAgBzI,IAAhB,CAAqBe,IAArB;MACH;IACJ;;IACD,KAAKqH,eAAL,CAAqBpI,IAArB,CAA0B0K,MAA1B;EACH;;EACOI,qBAAqB,CAACrH,KAAD,EAAM;IAC/B,IAAI3C,MAAM,GAAe,EAAzB;;IACA,IAAI,KAAKiK,QAAT,EAAmB;MACf,KAAK,IAAInC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGnF,KAAK,CAACjC,MAA1B,EAAkCoH,CAAC,EAAnC,EAAuC;QACnC,IAAIjF,GAAG,GAAGF,KAAK,CAACmF,CAAD,CAAf;;QACA,IAAIjF,GAAG,CAACqG,EAAJ,IAAU,OAAV,IAAqBrG,GAAG,CAACqG,EAAJ,IAAU,WAA/B,IAA8CrG,GAAG,CAACqG,EAAJ,IAAU,SAAxD,IAAqE,KAAKS,2BAAL,CAAiC9G,GAAjC,CAAzE,EAAgH;UAC5GA,GAAG,CAAC6G,IAAJ,GAAW,UAAX;UACA,IAAIzJ,IAAI,GAAa,EAArB;UACAA,IAAI,CAACkI,IAAL,GAAYtF,GAAZ;UACA5C,IAAI,CAACmI,IAAL,GAAYvF,GAAG,CAACwF,IAAhB;UACApI,IAAI,CAAC2H,KAAL,GAAa/E,GAAG,CAACgH,OAAjB;UACA5J,IAAI,CAACsI,UAAL,GAAkB,IAAlB;UACAtI,IAAI,CAACuI,IAAL,GAAY3F,GAAG,CAAC6G,IAAhB;;UACA,IAAI7G,GAAG,CAACiH,cAAJ,KAAuB,CAACjH,GAAG,CAACkH,QAAL,IAAiBlH,GAAG,CAACkH,QAAJ,CAAarJ,MAAb,IAAuB,CAA/D,CAAJ,EAAuE;YACnEmC,GAAG,CAACiH,cAAJ,CAAmBjH,GAAnB;UACH;;UACD,IAAIA,GAAG,CAACkH,QAAJ,IAAgBlH,GAAG,CAACkH,QAAJ,CAAarJ,MAAb,GAAsB,CAA1C,EAA6C;YACzCT,IAAI,CAAC0H,QAAL,GAAgB,KAAKqC,qBAAL,CAA2BnH,GAAG,CAACkH,QAA/B,CAAhB;UACH;;UACD/J,MAAM,CAACd,IAAP,CAAYe,IAAZ;QACH;MACJ;IACJ;;IACD,OAAOD,MAAP;EACH;;EAIW,IAARiK,QAAQ;IACR,OAAO,KAAKC,aAAZ;EACH;;EACW,IAARD,QAAQ,CAACpH,GAAD,EAAI;IACZ,KAAKqH,aAAL,GAAqBrH,GAArB;IACA,KAAKqE,YAAL;IAEA,KAAKiD,cAAL,CAAoB3G,IAApB,CAAyBX,GAAzB;EACH;;EAiBkB,IAAfiE,eAAe;IACf,OAAO,KAAKsD,oBAAZ;EACH;;EACkB,IAAftD,eAAe,CAACjE,GAAD,EAAI;IACnB,KAAKuH,oBAAL,GAA4BvH,GAA5B;IACA,KAAKsG,kBAAL,GAA0B,EAA1B;IACA,KAAKkB,eAAL,CAAqBxH,GAArB;IACA,KAAKyH,qBAAL,CAA2B9G,IAA3B,CAAgCX,GAAhC;EACH;;EAEDwH,eAAe,CAACxH,GAAD,EAAI;IACf,IAAIA,GAAG,IAAIA,GAAG,CAACnC,MAAJ,GAAa,CAAxB,EAA2B;MACvB,KAAK,IAAIoH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGjF,GAAG,CAACnC,MAAxB,EAAgCoH,CAAC,EAAjC,EAAqC;QACjC,IAAI7H,IAAI,GAAG4C,GAAG,CAACiF,CAAD,CAAd;;QACA,IAAI,CAAC,KAAKqB,kBAAL,CAAwBlJ,IAAI,CAACiJ,EAA7B,CAAL,EAAuC;UACnC,KAAKC,kBAAL,CAAwBlJ,IAAI,CAACiJ,EAA7B,IAAmCjJ,IAAnC;QACH,CAFD,MAEO;UACH,KAAKkJ,kBAAL,CAAwBlJ,IAAI,CAACiJ,EAA7B,IAAmC,CAAC,KAAKC,kBAAL,CAAwBlJ,IAAI,CAACiJ,EAA7B,CAAD,EAAmCjJ,IAAnC,CAAnC;QACH;;QAED,IAAIA,IAAI,CAAC8J,QAAL,IAAiB9J,IAAI,CAAC8J,QAAL,CAAcrJ,MAAd,GAAuB,CAA5C,EAA+C;UAC3C,KAAK2J,eAAL,CAAqBpK,IAAI,CAAC8J,QAA1B;QACH;MACJ;IACJ;EACJ;;EAoBDQ,eAAe;IACX;IACA,KAAKlD,aAAL,CAAmB,CAAnB;EACH;;EAIDmD,YAAY,CAACC,GAAD,EAAMC,IAAN,EAAU;IAClB,KAAKC,iBAAL,GAAyBD,IAAzB;;IACA,IAAID,GAAG,IAAI,OAAOA,GAAG,CAACX,cAAX,KAA8B,UAAzC,EAAqD;MACjDW,GAAG,CAACX,cAAJ,CAAmBW,GAAnB;IACH;EACJ;;EACD3L,QAAQ;IACJ,KAAKmD,sBAAL,CAA4B2I,qBAA5B,CAAkDxL,SAAlD,CAA4DkB,KAAK,IAAG;MAChE,KAAKuK,WAAL,GAAmBvK,KAAnB;IACH,CAFD;EAGH;;EACKwK,cAAc;IAAA;;IAAA;MAChB,IAAI,KAAI,CAACH,iBAAT,EAA4B;QACxB,IAAI,OAAO,KAAI,CAACA,iBAAL,CAAuBI,eAA9B,KAAkD,UAAtD,EAAkE;UAC9D,aAAa,KAAI,CAACJ,iBAAL,CAAuBI,eAAvB,EAAb;QACH;MACJ;;MACD,OAAO,IAAP;IANgB;EAOnB,CA5PsB,CA+PvB;;;EACAC,gBAAgB,CAAC1K,KAAD,EAAa;IACzB,KAAK2B,sBAAL,CAA4BgJ,kBAA5B,CAA+C3K,KAA/C;EACH;;EAED+G,aAAa,CAACS,CAAD,EAAE;IACX,KAAKP,UAAL,CAAgBvG,OAAhB,CAAwBC,CAAC,IAAIA,CAAC,CAACiK,QAAF,GAAa,KAA1C;IACA,KAAKzD,UAAL,CAAgBzG,OAAhB,CAAwBC,CAAC,IAAIA,CAAC,CAACiK,QAAF,GAAa,KAA1C;IACA,KAAKC,eAAL,GAAuB,KAAvB;IACA,KAAKC,iBAAL,GAAyB,IAAzB;IACA,KAAKC,cAAL,GAAsB,IAAtB;IACA,KAAKC,qBAAL,GAA6B,IAA7B;;IACA,IAAI,KAAKC,YAAL,KAAsB,KAAKC,iBAAL,IAA0B1D,CAA1B,IAA+BA,CAAC,IAAI,IAA1D,CAAJ,EAAqE;MACjE,KAAKyD,YAAL,GAAoB,KAApB;MACA,KAAKE,iBAAL,GAAyB,IAAzB;MACA,KAAKD,iBAAL,GAAyB,IAAzB;MACA,KAAKE,kBAAL,GAA0B,KAAKC,cAA/B;MACA,KAAKA,cAAL,GAAsB,KAAtB;MACA,KAAKC,iBAAL,GAAyB,KAAzB;IACH,CAPD,MAOO;MACH,KAAKL,YAAL,GAAoB,IAApB;MACA,KAAKC,iBAAL,GAAyB1D,CAAzB;MACA,MAAM+D,KAAK,GAAG,KAAKtE,UAAL,CAAgBO,CAAhB,CAAd;MACA,IAAG+D,KAAH,EAAUA,KAAK,CAACX,QAAN,GAAiB,IAAjB;;MACV,IAAIW,KAAK,EAAEC,OAAX,EAAoB;QAChB,KAAKL,iBAAL,GAAyB,IAAI/F,iEAAJ,CAAoBmG,KAAK,CAACC,OAA1B,CAAzB;MACH,CAFD,MAEO;QACH,KAAKL,iBAAL,GAAyB,IAAzB;MACH;;MACD,KAAKE,cAAL,GAAsB,KAAKD,kBAA3B;MACA,KAAKE,iBAAL,GAAyB,OAAzB;IACH;;IAED,KAAKG,eAAL,GAAuB,IAAvB;IACA,KAAKhK,KAAL,CAAW0B,aAAX;IACA,KAAKuI,kBAAL,CAAwBxI,IAAxB;EACH;;EACDyI,eAAe,CAACzG,KAAD,EAAM;IACjB,KAAKmG,cAAL,GAAsBnG,KAAK,CAAC0G,SAAN,CAAgBC,KAAhB,GAAwB,IAA9C;IACA,KAAKH,kBAAL,CAAwBxI,IAAxB;EACH,CAvSsB,CAwSvB;EACA;;;EACA4D,cAAc,CAACU,CAAD,EAAE;IACZ,KAAKN,WAAL,CAAiBxG,OAAjB,CAAyBC,CAAC,IAAIA,CAAC,CAACiK,QAAF,GAAa,KAA3C;;IACA,IAAI,KAAK/D,aAAL,KAAuB,KAAKiF,kBAAL,IAA2BtE,CAA3B,IAAgCA,CAAC,IAAI,IAA5D,CAAJ,EAAuE;MACnE,KAAKX,aAAL,GAAqB,KAArB;MACA,KAAKkF,kBAAL,GAA0B,IAA1B;MACA,KAAKD,kBAAL,GAA0B,IAA1B;MACA,KAAKE,mBAAL,GAA2B,KAAKC,eAAhC;MACA,KAAKA,eAAL,GAAuB,KAAvB;MACA,KAAKC,kBAAL,GAA0B,KAA1B;IACH,CAPD,MAOO;MACH,KAAKrF,aAAL,GAAqB,IAArB;MACA,KAAKiF,kBAAL,GAA0BtE,CAA1B;MACA,MAAM+D,KAAK,GAAG,KAAKrE,WAAL,CAAiBM,CAAjB,CAAd;;MACA,IAAI+D,KAAJ,EAAW;QACPA,KAAK,CAACX,QAAN,GAAiB,IAAjB;;QACA,IAAIW,KAAK,CAACC,OAAV,EAAmB;UACf,KAAKO,kBAAL,GAA0B,IAAI3G,iEAAJ,CAAoBmG,KAAK,CAACC,OAA1B,CAA1B;QACH,CAFD,MAEO;UACH,KAAKO,kBAAL,GAA0B,IAA1B;QACH;MACJ,CAPD,MAOO;QACH,KAAKA,kBAAL,GAA0B,IAA1B;MACH;;MAED,KAAKE,eAAL,GAAuB,KAAKD,mBAA5B;MACA,KAAKE,kBAAL,GAA0B,OAA1B;IACH;;IACD,KAAKzK,KAAL,CAAW0B,aAAX;IACA,KAAKuI,kBAAL,CAAwBxI,IAAxB;EACH;;EAEiB,IAAdiJ,cAAc;IACd,OAAO,KAAKC,mBAAZ;EACH;;EACiB,IAAdD,cAAc,CAACnM,KAAD,EAAM;IACpB,KAAKoM,mBAAL,GAA2BpM,KAA3B;IACA,KAAKyB,KAAL,CAAW0B,aAAX;EACH;;EACDkJ,kBAAkB,CAACnH,KAAD,EAAM;IACpB,KAAKiH,cAAL,GAAsB,IAAtB;EACH;;EACDG,gBAAgB,CAACpH,KAAD,EAAM;IAClB,KAAK+G,eAAL,GAAuB/G,KAAK,CAAC0G,SAAN,CAAgBC,KAAhB,GAAwB,IAA/C;IACA,KAAKM,cAAL,GAAsB,KAAtB;IACA,KAAKT,kBAAL,CAAwBxI,IAAxB;EACH;;EAMDqJ,aAAa,CAAC/E,CAAD,EAAE;IACXgF,OAAO,CAACC,GAAR,CAAY,KAAZ,EAAmBjF,CAAnB;IACA,KAAKiE,eAAL,GAAuB,KAAvB;;IACA,IAAI,CAAC,KAAKiB,iBAAV,EAA6B;MACzB,KAAK3B,cAAL,GAAsB,IAAtB;MACA,KAAK9D,UAAL,CAAgBvG,OAAhB,CAAwBC,CAAC,IAAIA,CAAC,CAACiK,QAAF,GAAa,KAA1C;MACA,KAAKzD,UAAL,CAAgBzG,OAAhB,CAAwBC,CAAC,IAAIA,CAAC,CAACiK,QAAF,GAAa,KAA1C;MACA,KAAKM,iBAAL,GAAyB,IAAzB;MACA,KAAKF,qBAAL,GAA6B,IAA7B;MACA,KAAKH,eAAL,GAAuB,KAAvB;MACA,KAAK8B,aAAL,GAAqB,KAArB;;MACA,IAAI,KAAK1B,YAAL,KAAsB,KAAKH,iBAAL,IAA0BtD,CAA1B,IAA+BA,CAAC,IAAI,IAA1D,CAAJ,EAAqE;QACjE,KAAKyD,YAAL,GAAoB,KAApB;QACA,KAAKE,iBAAL,GAAyB,IAAzB;QACA,KAAKL,iBAAL,GAAyB,IAAzB;MACH,CAJD,MAIO;QACH,KAAKG,YAAL,GAAoB,IAApB;QACA,KAAKH,iBAAL,GAAyBtD,CAAzB;QACA,MAAM+D,KAAK,GAAG,KAAKpE,UAAL,CAAgBK,CAAhB,CAAd;QACA,KAAKoF,aAAL,GAAqBrB,KAArB;QACAA,KAAK,CAACX,QAAN,GAAiB,IAAjB;;QACA,IAAIW,KAAK,CAACnC,IAAN,IAAc,UAAlB,EAA8B;UAC1B,KAAKyB,eAAL,GAAuB,IAAvB;;UACA,IAAIU,KAAK,CAAC9B,QAAN,IAAkB8B,KAAK,CAAC9B,QAAN,CAAerJ,MAAf,GAAwB,CAA9C,EAAiD;YAC7C,KAAK4K,qBAAL,GAA6BO,KAAK,CAAC9B,QAAnC;YACA,KAAKkD,aAAL,GAAqB,IAArB;UACH,CAHD,MAGO;YACH,KAAK5B,cAAL,GAAsB,IAAI3F,iEAAJ,CAAoBmG,KAAK,CAACC,OAA1B,CAAtB;UACH;QACJ,CARD,MAQO;UACH,IAAID,KAAK,CAACC,OAAV,EAAmB;YACf,KAAKL,iBAAL,GAAyB,IAAI/F,iEAAJ,CAAoBmG,KAAK,CAACC,OAA1B,CAAzB;UACH,CAFD,MAEO;YACH,KAAKL,iBAAL,GAAyB,IAAzB;UACH;QACJ;MACJ;;MACD,KAAK1J,KAAL,CAAW0B,aAAX;MACA,KAAKuI,kBAAL,CAAwBxI,IAAxB;IACH;EACJ;;EAED2J,kBAAkB,IAEjB;;EACDC,cAAc,CAACpE,KAAD,EAAM;IAChB,IAAI,KAAKvB,UAAL,CAAgB4F,OAAhB,CAAwBrE,KAAK,CAACb,IAA9B,KAAuC,CAAC,CAA5C,EAA+C;MAC3C,KAAKV,UAAL,CAAgBvI,IAAhB,CAAqB8J,KAAK,CAACb,IAA3B;IACH;;IACDQ,YAAY,CAAC2E,OAAb,CAAqB,yBAArB,EAAgDxE,IAAI,CAACW,SAAL,CAAe,KAAKhC,UAApB,CAAhD;IACA,KAAK8F,kBAAL,GAA0B,KAA1B;IACA,KAAKxL,KAAL,CAAW0B,aAAX;EACH;;EACD+J,gBAAgB,CAACxE,KAAD,EAAM;IAClB,IAAI,KAAKvB,UAAL,CAAgB4F,OAAhB,CAAwBrE,KAAK,CAACb,IAA9B,KAAuC,CAAC,CAA5C,EAA+C;MAC3C,KAAKV,UAAL,CAAgBvI,IAAhB,CAAqB8J,KAAK,CAACb,IAA3B;IACH;;IACDQ,YAAY,CAAC2E,OAAb,CAAqB,yBAArB,EAAgDxE,IAAI,CAACW,SAAL,CAAe,KAAKhC,UAApB,CAAhD;IACA,KAAK8F,kBAAL,GAA0B,KAA1B;IACA,KAAKxL,KAAL,CAAW0B,aAAX;EACH;;EACDgK,cAAc;IACV,KAAKT,iBAAL,GAAyB,CAAC,KAAKA,iBAA/B;EACH;;EACDU,eAAe,CAAC1E,KAAD,EAAM;IACjB,IAAI7D,KAAK,GAAG,KAAKsC,UAAL,CAAgB4F,OAAhB,CAAwBrE,KAAxB,CAAZ;;IACA,IAAI7D,KAAK,GAAG,CAAC,CAAb,EAAgB;MACZ,KAAKsC,UAAL,CAAgBkG,MAAhB,CAAuB,KAAKlG,UAAL,CAAgB4F,OAAhB,CAAwBrE,KAAxB,CAAvB,EAAuD,CAAvD;IACH;;IACDL,YAAY,CAAC2E,OAAb,CAAqB,yBAArB,EAAgDxE,IAAI,CAACW,SAAL,CAAe,KAAKhC,UAApB,CAAhD;EACH,CAnasB,CAoavB;;;EACAmG,kBAAkB;IACd,KAAKhL,UAAL,CAAgB5B,OAAhB,CAAwBC,CAAC,IAAG;MACxB,IAAI,OAAOA,CAAC,CAAC4M,YAAT,KAA0B,UAA9B,EAA0C;QACtC,MAAMC,OAAO,GAAG7M,CAAC,CAAC4M,YAAF,EAAhB;QACA,KAAKE,gBAAL,CAAsB9M,CAAtB,EAAyB6M,OAAzB;MACH;;MACD,IAAI,OAAO7M,CAAC,CAAC+M,iBAAT,KAA+B,UAAnC,EAA+C;QAC3C/M,CAAC,CAAC+M,iBAAF,CAAqBnL,GAAD,IAAQ;UACxB,KAAKkL,gBAAL,CAAsB9M,CAAtB,EAAyB4B,GAAzB;QACH,CAFD;MAGH;IACJ,CAVD;EAWH;;EAEOkL,gBAAgB,CAACE,GAAD,EAAMH,OAAN,EAAa;IACjCG,GAAG,CAAC/K,OAAJ,GAAc4K,OAAd;;IACA,IAAIG,GAAG,CAAC/C,QAAJ,IAAgB,CAAC+C,GAAG,CAAC/K,OAAzB,EAAkC;MAC9B+K,GAAG,CAAC/C,QAAJ,GAAe,KAAf;;MACA,QAAQ+C,GAAG,CAAClG,QAAZ;QACI,KAAK7B,oFAAL;UACI,KAAKmB,aAAL,CAAmB,IAAnB;UACA;;QACJ,KAAKnB,qFAAL;UACI,KAAKkB,cAAL,CAAoB,IAApB;UACA;;QACJ,KAAKlB,oFAAL;UACI,KAAK2G,aAAL,CAAmB,IAAnB;UACA;MATR;IAWH;EACJ;;EAEDtH,iBAAiB,CAACC,KAAD,EAAM;IACnB,IAAIA,KAAK,CAACC,QAAN,IAAkB,KAAKyH,aAAvB,IAAwC,KAAKA,aAAL,CAAmB5D,QAA/D,EAAyE;MACrE9D,KAAK,CAACC,QAAN,CAAe6D,QAAf,GAA0B,KAAK4D,aAAL,CAAmB5D,QAA7C;IACH;EACJ;;EAED4E,SAAS;IACL;EACH,CA7csB,CA+cvB;;;EACAvE,2BAA2B,CAAC1J,IAAD,EAAK;IAC5B,IAAIkO,IAAI,GAAG9H,sFAAA,EAAX;;IACA,IAAI8H,IAAJ,EAAU;MACN,IAAIA,IAAI,CAACE,eAAT,EAA0B;QACtB,OAAO,IAAP;MACH,CAFD,MAEO;QACH,IAAIpO,IAAI,CAACqO,QAAT,EAAmB;UACf,OAAQrI,kFAAA,CAA0BhG,IAAI,CAACqO,QAAL,CAAcE,IAAxC,EAA8CvO,IAAI,CAACqO,QAAL,CAAcG,KAA5D,CAAR;QACH,CAFD,MAEO;UACH,OAAO,IAAP;QACH;MACJ;IACJ;;IACD,OAAO,KAAP;EACH;;EAEDC,eAAe;IACX,KAAK/H,MAAL,CAAYgI,QAAZ,CAAqB,EAArB,EACK3L,IADL,CACWhD,MAAD,IAAW;MACjB4O,MAAM,CAACC,IAAP,CAAY,4BAAZ,EAA0C,QAA1C;IACH,CAHD;EAIH;;AAresB;;;;;;;;;;;;;;;;UACtBlJ,wDAAYA;IAAAmJ,OAACvI,8BAAD,EAAiC;MAAEwI,IAAI,EAAElJ,uDAAWA;IAAnB,CAAjC;;;UACZF,wDAAYA;IAAAmJ,OAACtI,6BAAD,EAAgC;MAAEuI,IAAI,EAAElJ,uDAAWA;IAAnB,CAAhC;;;UAsBZpE,iDAAKA;;;UAYLC,kDAAMA;;;UAwHND,iDAAKA;;;UAULC,kDAAMA;;;UAeND,iDAAKA;;;UAULC,kDAAMA;;;UAmBNA,kDAAMA;;;AAlNE+E,cAAc,uDAL1BhI,yDAAS,CAAC;EACP4C,QAAQ,EAAE,kBADH;EAEPC,UAAAA,8DAFO;;AAAA,CAAD,CAKiB,GAAdmF,cAAc,CAAd;AAAAA;IAyeSuI,cAAc,SAAdA,cAAc,SAAS1I,mFAAT,CAAqB;EAGrDxH,QAAQ;IACJ,MAAMA,QAAN;IACA,MAAMmQ,IAAI,GAAG7I,iGAAA,EAAb;;IACA,IAAI6I,IAAI,KAAK,SAAT,IAAsBA,IAAI,KAAK,QAA/B,IAA2CA,IAAI,KAAK,UAApD,IAAkEA,IAAI,KAAK,QAA3E,IAAuFA,IAAI,KAAK,QAAhG,IAA4GA,IAAI,KAAK,UAAzH,EAAqI;MACjI,KAAKhQ,aAAL,CAAmBC,IAAnB,CAAwBN,4FAAA,CAAwCuQ,MAAD,IAAW;QACtE,KAAKC,aAAL,GAAqBD,MAArB;QACA,KAAK7P,MAAL,GAAcqC,oFAAA,CAAiCwN,MAAjC,CAAd;QACA,KAAKG,WAAL;QACA,KAAKvN,KAAL,CAAW0B,aAAX;MACH,CALuB,CAAxB;IAMH;EACJ;;EAED6L,WAAW,IACV;;AAjBoD;AAAnCN,cAAc,uDADnCpJ,yDAAS,EAC0B,GAAdoJ,cAAc,CAAd;;;;;;;;;;;;;;;;;;;;AClhB8F;AAChD;IAI9C,gBAAgB,SAAhB,gBAAgB;IA+KlC,YAAY,KAAwB;QApK1B,oBAAe,GAAG,IAAI,uDAAY,EAAO;QACnD,YAAY;QAEZ,sBAAsB;QACtB,sBAAiB,GAAiB,mFAAsB,CAAC;QAS/C,uBAAkB,GAAG,IAAI,uDAAY,EAAgB;QAarD,wBAAmB,GAAG,IAAI,uDAAY,EAAO;QAc7C,sBAAiB,GAAG,IAAI,uDAAY,EAAU;QAa9C,sBAAiB,GAAG,IAAI,uDAAY,EAAU;QAqB9C,qBAAgB,GAAG,IAAI,uDAAY,EAAO;QAoB1C,6BAAwB,GAAG,IAAI,uDAAY,EAAO;QAalD,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QAY5C,mBAAc,GAAG,IAAI,uDAAY,EAAU;QACrD,YAAY;QAEZ,kBAAkB;QAClB,kBAAa,GAAG,KAAK,CAAC;QAUZ,mBAAc,GAAG,IAAI,uDAAY,EAAW;QACtD,YAAY;QAEZ,kBAAkB;QAClB,kBAAa,GAAG,KAAK,CAAC;QASZ,mBAAc,GAAG,IAAI,uDAAY,EAAW;QAa5C,kBAAa,GAAG,IAAI,uDAAY,EAAU;QACpD,YAAY;QACZ,kBAAa,GAAG,EAAE;QAClB,aAAQ,GAAG,KAAK,CAAC;QAiBP,iBAAY,GAAG,IAAI,uDAAY,EAAO;QAMtC,0BAAqB,GAAG,IAAI,uDAAY,EAAO;QApBrD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;QA7KG,SAAS;QACT,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACpD,CAAC;QAOG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAiB;QAC9B,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;QAOG,aAAa;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;QAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC3D,CAAC;QAQG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAW;QACvB,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;QAMG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAW;QACvB,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAMG,UAAU;QACV,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACxD;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC;SACvD;aAAM;YACH,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;SAC9B;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAIG,kBAAkB;QAClB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACxD;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,kBAAkB,CAAC,GAAG;QACtB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC;SACvD;aAAM;YACH,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;SAC9B;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAMG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAMG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAW;QACpB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;QAOG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAY;QACrB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAOG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAY;QACrB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;QAOG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAW;QACnB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;IASD,eAAe;QACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;IACD,WAAW;QACP,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;gBACrC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;aACzC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAGD,cAAc;QACV,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAGD,uBAAuB,CAAC,KAAK;QACzB,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,aAAa,CAAC,KAAK;QACf,IAAI,KAAK,EAAE;YACP,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;aAC1B;SACJ;IACL,CAAC;IAED,IAAI,SAAS;QACT,OAAO;YACH,QAAQ,EAAE,MAAM;YAChB,aAAa,EAAE,MAAM;YACrB,WAAW,EAAE,MAAM;SACtB;IACL,CAAC;IAID,UAAU,CAAC,EAAE;QACT,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,MAAM,CAAC;gBACR,KAAK,EAAE,EAAE;gBACT,YAAY,EAAE,IAAI,CAAC,iBAAiB;gBACpC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,MAAM,EAAE,IAAI;aACf,CAAC,CAAC;SACN;IACL,CAAC;;;;;;wBApOA,gDAAK;8BAQL,iDAAM;2BAKN,gDAAK;iCAQL,iDAAM;4BAKN,gDAAK;kCAQL,iDAAM;0BAMN,gDAAK;gCAQL,iDAAM;0BAIN,gDAAK;gCASL,iDAAM;yBAIN,gDAAK;+BAiBL,iDAAM;iCAEN,gDAAK;uCAkBL,iDAAM;2BAIN,gDAAK;iCASL,iDAAM;uBAIN,gDAAK;6BAQL,iDAAM;uBAKN,gDAAK;6BASL,iDAAM;uBAKN,gDAAK;6BAQL,iDAAM;sBAKN,gDAAK;4BAQL,iDAAM;2BAoBN,iDAAM;oCAMN,iDAAM;;AApMW,gBAAgB;IADrC,wDAAS,EAAE;GACU,gBAAgB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLqF;AACjE;AACU;AACC;AAGD;AACV;AACM;AAEP;IAQ5C,kBAAkB,SAAlB,kBAAmB,SAAQ,iEAAgB;IAyNpD,YAAY,KAAwB;QAChC,KAAK,CAAC,KAAK,CAAC,CAAC;QA/LP,0BAAqB,GAAG,IAAI,uDAAY,EAAO;QAe/C,kBAAa,GAAG,IAAI,uDAAY,EAAO;QAevC,eAAU,GAAG,IAAI,uDAAY,EAAO;QAC9C,YAAY;QACZ,qBAAqB;QACrB,iBAAY,GAAG,EAAE,CAAC;QAiBlB,YAAY;QACZ,oBAAoB;QACpB,oBAAe,GAAE,IAAI,sEAAU,EAAE,CAAC;QAgBlC,YAAY;QACZ,SAAS;QACT,sBAAiB,GAAG,IAAI,sEAAU,EAAE,CAAC;QAgBrC,YAAY;QACZ,qBAAqB;QACrB,qBAAgB,GAAG,IAAI,4DAAK,EAAE,CAAC;QAsC/B,yBAAoB,GAAG,KAAK,CAAC;QAO7B,oBAAe,GAAG,KAAK,CAAC;QA8BxB,iBAAY,GAAG,KAAK,CAAC;QACrB,kBAAa,GAAG,KAAK,CAAC;QACtB,mBAAc,GAAG,KAAK,CAAC;QACvB,oBAAe,GAAG,KAAK,CAAC;QAgBxB,uBAAkB,GAAG,IAAI,CAAC;QAUtB,IAAI,CAAC,YAAY,GAAG,8EAA4B,CAAC,uEAAW,CAAC,CAAC;QAC9D,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9C,IAAI,KAAK,EAAE;gBACP,IAAI,CAAC,YAAY,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,oFAAwB,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzF,IAAI,CAAC,aAAa,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,oFAAwB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5F,IAAI,CAAC,cAAc,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,oFAAwB,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC/F,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,oFAAwB,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;gBAClG,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,YAAY,EAAE;oBAChF,IAAI,EAAE,GAAG,oFAAwB,CAAC,KAAK,CAAC,SAAS,CAAC;oBAClD,IAAI,EAAE,GAAG,oFAAwB,CAAC,KAAK,CAAC,UAAU,CAAC;oBACnD,IAAI,EAAE,GAAG,oFAAwB,CAAC,KAAK,CAAC,WAAW,CAAC;oBACpD,IAAI,EAAE,GAAG,oFAAwB,CAAC,KAAK,CAAC,YAAY,CAAC;oBACrD,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAG,EAAE,CAAC,EAAE;wBACxB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;qBAChC;yBAAM;wBACH,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;4BAClC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;4BAC7B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;4BAC9C,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;4BACjD,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;yBACjE;6BAAM;4BACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;yBAC/B;qBACJ;iBACJ;gBACD,IAAI,KAAK,CAAC,YAAY,EAAE;oBACpB,IAAI,EAAE,GAAG,8EAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC;oBACvD,IAAI,EAAE,GAAG,8EAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC;oBACxD,IAAI,EAAE,GAAG,8EAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC;oBAC1D,IAAI,EAAE,GAAG,8EAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC;oBAC3D,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;wBACzB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;qBACrC;yBAAM;wBACH,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;4BACxC,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;4BAClC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC;yBAE1D;6BAAM;4BACH,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;yBACpC;qBACJ;iBACJ;gBACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;aAC9B;QACL,CAAC,CAAC;IACN,CAAC;QAlQG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAMG,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;QAChC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC3D,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAQG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAQG,IAAI;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,CAAC,GAAG;QACR,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAOD,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,KAAK;QACjB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAE9B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,kBAAkB;QACd,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;QAC5D,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;QAC7D,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;QAC9D,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAID,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,KAAK;QAChB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAE7B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,WAAW;QACP,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC7F,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAID,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,KAAK;QAClB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAE/B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,aAAa;QACT,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAChG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAC7F,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACjG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAC9F,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAID,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,KAAK;QACjB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAE9B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,YAAY;QACR,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,GAAG,wEAAc,CAAC,uEAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC7F,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,KAAK,GAAG,wEAAc,CAAC,uEAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC9F,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,KAAK,GAAG,wEAAc,CAAC,uEAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC/F,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,KAAK,GAAG,wEAAc,CAAC,uEAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAChG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IACD,YAAY;IAEZ,IAAI,OAAO;QACP,IAAI,MAAM,GAAG,EAAE;QACf,MAAM,CAAC,wBAAwB,CAAC,GAAG,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACpG,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,IAAI,QAAQ;QACR,IAAI,MAAM,GAAG,EAAE;QACf,MAAM,CAAC,yBAAyB,CAAC,GAAG,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACtG,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,IAAI,UAAU;QACV,IAAI,MAAM,GAAG,EAAE;QACf,MAAM,CAAC,2BAA2B,CAAC,GAAG,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC1G,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,IAAI,WAAW;QACX,IAAI,MAAM,GAAG,EAAE;QACf,MAAM,CAAC,4BAA4B,CAAC,GAAG,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC5G,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,KAAK;QACrB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;IACtC,CAAC;IAED,2BAA2B,CAAC,KAAK;QAC7B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACvB,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACzB,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,sEAAU,EAAE,CAAC;gBACrD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC;gBAChE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC;gBACnE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,GAAG,wEAAc,CAAC,oEAAa,CAAC,SAAS,CAAC,CAAC,CAAC;gBACnF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAGhF,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,GAAG,wEAAc,CAAC,uEAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC7F,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC9D,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;gBAE3D,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,KAAK,GAAG,wEAAc,CAAC,uEAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC9F,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC/D,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;gBAE5D,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,KAAK,GAAG,wEAAc,CAAC,uEAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC/F,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;gBAChE,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;gBAE7D,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,KAAK,GAAG,wEAAc,CAAC,uEAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBAChG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;gBACjE,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC9D,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;aAC5B;SACJ;IACL,CAAC;IAKD,IAAI,cAAc;QACd,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACpD,QAAQ,IAAI,CAAC,kBAAkB,EAAE;gBAC7B,KAAK,MAAM;oBACP,OAAO,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC;gBAC9C,KAAK,OAAO;oBACR,OAAO,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;gBAC/C,KAAK,QAAQ;oBACT,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;gBAChD,KAAK,KAAK;oBACN,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;aAChD;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,KAAK;QACnB,IAAI,IAAI,CAAC,kBAAkB,IAAI,KAAK,EAAE;YAClC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;SACnC;aAAM;YACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAClC;IACL,CAAC;IAiDD,QAAQ;QACJ,qCAAqC;QACrC,uCAAuC;IAC3C,CAAC;IAED,OAAO,CAAC,EAAE;QACN,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IACD,cAAc;QACV,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IACD,eAAe;QACX,QAAQ,IAAI,CAAC,kBAAkB,EAAE;YAC7B,KAAK,MAAM;gBACP,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG,IAAI,sEAAU,EAAE,CAAC;gBACtD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,MAAM;YACV,KAAK,OAAO;gBACR,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,IAAI,sEAAU,EAAE,CAAC;gBACvD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,MAAK;YACT,KAAK,QAAQ;gBACT,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,IAAI,sEAAU,EAAE,CAAC;gBACxD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,MAAK;YACT,KAAK,KAAK;gBACN,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,sEAAU,EAAE,CAAC;gBACrD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,MAAK;SACZ;QACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,oBAAoB;QAChB,QAAQ,IAAI,CAAC,kBAAkB,EAAE;YAC7B,KAAK,MAAM;gBACP,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,MAAM;YACV,KAAK,OAAO;gBACR,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,MAAK;YACT,KAAK,QAAQ;gBACT,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC5B,MAAK;YACT,KAAK,KAAK;gBACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,MAAK;SACZ;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;;;;;;sBAtTA,gDAAK;8BAYL,gDAAK;oCAUL,iDAAM;sBAKN,gDAAK;4BAUL,iDAAM;mBAKN,gDAAK;yBAUL,iDAAM;;AAzDE,kBAAkB;IAN9B,wDAAS,CAAC;QACP,QAAQ,EAAE,+BAA+B;QACzC,qFAAmD;QAEnD,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;AClBiE;AACtC;AACD;IAQ5C,qBAAqB,SAArB,qBAAsB,SAAQ,iEAAgB;IAEvD,gBAAgB,CAAC,IAAI;QACjB,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACb,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;aAC1B;YACD,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;gBACzB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;aACvB;YACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;gBACxB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;aACtB;YACD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBACnB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;aACjB;YACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;gBACrB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;aACnB;YACD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;gBACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;aACvB;YACD,IAAI,CAAC,kBAAkB,GAAG,oEAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;SAElD;aAAM;YACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAClC;IACL,CAAC;IACD,cAAc;QACV,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;;AA/BQ,qBAAqB;IANjC,wDAAS,CAAC;QACP,QAAQ,EAAE,yBAAyB;QACnC,+EAA6C;QAE7C,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACV8D;AACvC;IAkB5C,kBAAkB,SAAlB,kBAAmB,SAAQ,iEAAgB;;;QA0B1C,0BAAqB,GAAG,IAAI,uDAAY,EAAO;QAe/C,kBAAa,GAAG,IAAI,uDAAY,EAAO;QAevC,eAAU,GAAG,IAAI,uDAAY,EAAO;QAGpC,YAAO,GAAG,IAAI,uDAAY,EAAO;IAK/C,CAAC;QA3DO,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAMG,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;QAChC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC3D,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAQG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAQG,IAAI;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,CAAC,GAAG;QACR,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAMD,OAAO,CAAC,EAAE;QACN,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;;;sBA3DA,gDAAK;8BAYL,gDAAK;oCAUL,iDAAM;sBAKN,gDAAK;4BAUL,iDAAM;mBAKN,gDAAK;yBAUL,iDAAM;sBAGN,iDAAM;;AA3DE,kBAAkB;IAhB9B,wDAAS,CAAC;QACP,QAAQ,EAAE,sBAAsB;QAChC,4EAA0C;QAE1C,mCAAmC;QACnC,sBAAsB;QACtB,oBAAoB;QACpB,uBAAuB;QACvB,oBAAoB;QACpB,YAAY;QACZ,kBAAkB;QAClB,8DAA8D;QAC9D,uDAAuD;QACvD,OAAO;QACP,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACnB2D;AACjC;IAO5C,oBAAoB,SAApB,oBAAqB,SAAQ,iEAAgB;IA6CtD,YAAY,KAAwB;QAChC,KAAK,CAAC,KAAK,CAAC,CAAC;QA/BP,oBAAe,GAAG,IAAI,uDAAY,EAAO;QAczC,wBAAmB,GAAG,IAAI,uDAAY,EAAO;QAc7C,qBAAgB,GAAG,IAAI,uDAAY,EAAO;IAIpD,CAAC;QA5CG,SAAS;QACT,IAAI,OAAO,IAAI,CAAC,kBAAkB,KAAK,SAAS,EAAE;YAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC;SAClC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;QAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAOG,aAAa;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;QAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAOG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IASD,QAAQ,CAAC,EAAE;QACP,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACpB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;;;;;;wBAlDA,gDAAK;8BAaL,iDAAM;4BAIN,gDAAK;kCAUL,iDAAM;sBAIN,gDAAK;+BAUL,iDAAM;;AA3CE,oBAAoB;IALhC,wDAAS,CAAC;QACP,QAAQ,EAAE,wBAAwB;QAClC,wEAAsC;;KAEzC,CAAC;GACW,oBAAoB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRkF;AAE/B;AACb;AACX;AAEF;AACM;AACkB;AACzB;IAQ5C,uBAAuB,SAAvB,uBAAwB,SAAQ,iEAAgB;;;QACjD,kBAAa,GAAmB,EAAE,CAAC,CAAC,8BAA8B;QAahE,kBAAa,GAAG,IAAI,uDAAY,EAAU;QAa1C,eAAU,GAAG,IAAI,uDAAY,EAAU;QACjD,YAAY;QACZ,mBAAmB;QACnB,mBAAc,GAAW,OAAO,CAAC;QAUvB,oBAAe,GAAG,IAAI,uDAAY,EAAU;QACtD,YAAY;QAEZ,kBAAkB;QAClB,kBAAa,GAAY,KAAK,CAAC;QAQ/B,YAAY;QACZ,gBAAgB;QAChB,gBAAW,GAAY,KAAK,CAAC;QA6B7B,iBAAY,GAAG,KAAK,CAAC;QAuCrB,cAAS,GAAG,EAAE,CAAC;QACf,eAAU,GAAG,KAAK,CAAC;IA+GvB,CAAC;QApOO,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAW;QACnB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;QAOG,IAAI;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,CAAC,GAAW;QAChB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;QAOG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAW;QACrB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;IAOD,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAY;QACrB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAID,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,GAAY;QACnB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,YAAY;IAEZ,IAAI,KAAK;QACL,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,IAAI,CAAC,kBAAkB,YAAY,8DAAM,IAAI,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE;gBACzE,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;oBAC1M,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;iBACrE;aACJ;iBAAM,IAAI,IAAI,CAAC,kBAAkB,YAAY,kEAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE;gBACpF,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;oBAC9E,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;iBAClD;gBACD,OAAO,IAAI,CAAC;aACf;iBAAM;gBACH,OAAO,IAAI,CAAC,kBAAkB,CAAC;aAClC;SACJ;aAAM;YACH,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IAID,QAAQ;QACJ,mCAAmC;QACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACtE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAChE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,WAAW;QACP,qCAAqC;QACrC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,qBAAqB,CAAC,SAAS;QAC3B,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SAC3B;aAAM;YACH,IAAI,SAAS,EAAE;gBACX,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACvB;YACD,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,yEAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,EAAE;gBACnD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;aACtB;YACD,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gBAC9D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IAED,WAAW,CAAC,EAAE;QACV,gGAA2B,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAID,aAAa,CAAC,GAAG;QACb,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,GAAG,EAAE;YACN,IAAI,IAAI,CAAC,kBAAkB,YAAY,8DAAM,IAAI,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE;gBACzE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAC3D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBAC7D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;gBAC9D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBAC5D,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;aAC5B;iBAAM,IAAI,IAAI,CAAC,kBAAkB,YAAY,kEAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE;gBACpF,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,EAAE,CAAC;gBACpC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;aAC5B;iBAAM;gBACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,4DAAK,EAAE,CAAC;aACzC;YACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,eAAe,EAAE,CAAC;SAC1B;IACL,CAAC;IAED,eAAe;QACX,MAAM,KAAK,GAAG,EAAE,CAAC;QAEjB,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,KAAK,CAAC,MAAM,CAAC,GAAG,yEAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,QAAQ,GAAG,yEAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SACxD;QACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,aAAa,CAAC,IAAI,EAAE,KAAK;QACrB,IAAI,IAAI,EAAE;YACN,IAAI,KAAK,EAAE;gBACP,MAAM,EAAE,GAAG,IAAI,oFAAiB,EAAE,CAAC;gBACnC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBACd,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;iBACpB;gBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACxB;iBAAM;gBACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;aACpB;SACJ;IACL,CAAC;IAED,aAAa,CAAC,KAAK;QACf,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBAC1B,QAAQ,IAAI,CAAC,SAAS,EAAE;oBACpB,KAAK,QAAQ;wBAAE,IAAI,CAAC,kBAAkB,GAAG,IAAI,8DAAM,EAAE,CAAC;wBAAC,MAAM;oBAC7D,KAAK,UAAU;wBAAE,IAAI,CAAC,kBAAkB,GAAG,IAAI,kEAAQ,EAAE,CAAC;wBAAC,MAAM;oBACjE,KAAK,OAAO;wBAAE,IAAI,CAAC,kBAAkB,GAAG,IAAI,4DAAK,EAAE,CAAC;wBAAC,MAAM;iBAC9D;aACJ;YACD,IAAI,IAAI,CAAC,kBAAkB,YAAY,8DAAM,IAAI,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE;gBACzE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC5D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBAC9D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBAC/D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAC7D,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;aAC5B;iBAAM,IAAI,IAAI,CAAC,kBAAkB,YAAY,kEAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE;gBACpF,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,+EAAkB,CAAC;gBAClD,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,EAAE,CAAC;gBACpC,MAAM,EAAE,GAAG,IAAI,oFAAiB,EAAE,CAAC;gBACnC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;gBACjB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACxC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;aAC5B;iBAAM,IAAI,IAAI,CAAC,kBAAkB,YAAY,4DAAK,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,EAAE;gBAC9E,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;aACnC;YAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACxB;aAAM;YACH,IAAI,IAAI,CAAC,kBAAkB,YAAY,8DAAM,IAAI,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE;gBACzE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAC3D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBAC7D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;gBAC9D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBAC5D,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;aAC5B;iBAAM,IAAI,IAAI,CAAC,kBAAkB,YAAY,kEAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE;gBACpF,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,EAAE,CAAC;gBACpC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;aAC5B;iBAAM;gBACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;aAClC;YAED,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SACzB;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,UAAU,CAAC,KAAK;QACZ,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,kBAAkB,YAAY,8DAAM,IAAI,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE;YACzE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC3D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAC9D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC5D,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;SAC5B;aAAM,IAAI,IAAI,CAAC,kBAAkB,YAAY,kEAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE;YACpF,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,EAAE,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;SAC5B;aAAM;YACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAClC;QACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;;;sBApOA,gDAAK;4BASL,iDAAM;mBAIN,gDAAK;yBASL,iDAAM;wBAIN,gDAAK;8BASL,iDAAM;;AAxCE,uBAAuB;IANnC,wDAAS,CAAC;QACP,QAAQ,EAAE,2BAA2B;QACrC,iFAA+C;QAE/C,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,uBAAuB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBsG;AACrG;AACqB;AACD;IAO5C,oBAAoB,SAApB,oBAAqB,SAAQ,iEAAgB;;;QAQ5C,gBAAW,GAAsB,IAAI,uDAAY,EAAE;QAEpD,oBAAe,GAAY,IAAI;QA6BxC,OAAE,GAAG,oDAAS,EAAE;QAChB,kBAAkB;QAClB,kBAAa,GAAG,KAAK,CAAC;QAUZ,mBAAc,GAAG,IAAI,uDAAY,EAAW;QAa5C,yBAAoB,GAAG,IAAI,uDAAY,EAAU;QAcjD,0BAAqB,GAAG,IAAI,uDAAY,EAAU;QAclD,4BAAuB,GAAG,IAAI,uDAAY,EAAU;QAC9D,YAAY;QACZ,mBAAmB;QACnB,mBAAc,GAAY,IAAI,CAAC;QAUrB,oBAAe,GAAG,IAAI,uDAAY,EAAW;QACvD,YAAY;QACZ,qBAAqB;QACrB,qBAAgB,GAAY,KAAK,CAAC;QAUxB,sBAAiB,GAAG,IAAI,uDAAY,EAAW;QAa/C,sBAAiB,GAAG,IAAI,uDAAY,EAAU;QAmBxD,YAAY;QACZ,qBAAqB;QACrB,qBAAgB,GAAU,EAAE,CAAC;QAWnB,sBAAiB,GAAG,IAAI,uDAAY,EAAS;QAiB7C,qBAAgB,GAAG,IAAI,uDAAY,EAAS;QAE5C,oBAAe,GAAG,IAAI,uDAAY,EAAU;IAY1D,CAAC;IAjMG,eAAe;QACX,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,EAAE;YAC1E,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;IACP,CAAC;IAKD,cAAc;QACV,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,WAAW,EAAE;YAC7C,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,IAAI,GAAG,IAAI,CAAC;gBAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC9C,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBAChC,IAAI,KAAK,CAAC,KAAK,EAAE;wBACb,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;4BAC9B,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,kBAAkB;wBAC3H,CAAC,CAAC;wBACF,IAAI,IAAI,EAAE;4BACN,MAAM;yBACT;qBACJ;iBACJ;gBACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aACzB;iBAAM;gBACH,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;oBACvC,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,kBAAkB;gBAC3H,CAAC,CAAC;gBACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aACzB;SAEJ;IACL,CAAC;QAOG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAY;QACrB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;QAOG,cAAc;QACd,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IACD,IAAI,cAAc,CAAC,GAAW;QAC1B,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;QAC/B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC7D,CAAC;QAQG,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,GAAW;QAC3B,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;QAChC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC/D,CAAC;QAQG,iBAAiB;QACjB,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACvC,CAAC;IACD,IAAI,iBAAiB,CAAC,GAAW;QAC7B,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAC;QAClC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACnE,CAAC;QAOG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAY;QACtB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;QAOG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAY;QACxB,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;QAOG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAW;QACvB,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;QAOG,cAAc;QACd,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QAClB,iCAAiC;QACjC,6CAA6C;QAC7C,GAAG;QACH,YAAY;QACZ,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC7B,CAAC,CAAC;QACF,GAAG;QACH,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;IACnC,CAAC;QAKG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAU;QACtB,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAOG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAQ;QACnB,IAAI,CAAC,gBAAgB,GAAG,8EAA4B,CAAC,GAAG,CAAC,CAAC;QAC1D,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;QAC9B,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAMD,iBAAiB,CAAC,EAAE;QAChB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACpB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,iBAAiB,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;;;0BAzLA,iDAAM;8BAEN,gDAAK;uBAgCL,gDAAK;6BASL,iDAAM;6BAIN,gDAAK;mCASL,iDAAM;8BAKN,gDAAK;oCASL,iDAAM;gCAKN,gDAAK;sCASL,iDAAM;wBAIN,gDAAK;8BASL,iDAAM;0BAIN,gDAAK;gCASL,iDAAM;0BAIN,gDAAK;gCASL,iDAAM;6BAIN,gDAAK;0BAkBL,gDAAK;gCAUL,iDAAM;yBAIN,gDAAK;+BAaL,iDAAM;8BAEN,iDAAM;;AAtLE,oBAAoB;IANhC,wDAAS,CAAC;QACP,QAAQ,EAAE,wBAAwB;QAClC,8EAA4C;QAE5C,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,oBAAoB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACViG;AACzE;IAU5C,oBAAoB,SAApB,oBAAqB,SAAS,iEAAgB;IAwCvD,YAAY,KAAwB;QAChC,KAAK,CAAC,KAAK,CAAC,CAAC;QAxCjB,oBAAe,GAAG,KAAK,CAAC;QAMvB,mBAAmB;QACnB,mBAAc,GAAW,OAAO,CAAC;QAavB,oBAAe,GAAG,IAAI,uDAAY,EAAU;QAc7C,oBAAe,GAAG,IAAI,uDAAY,EAAO;QAGzC,qBAAgB,GAAG,IAAI,uDAAY,EAAO;IAIpD,CAAC;IAxCD,eAAe;QACX,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAKI,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAW;QACrB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;QAOE,SAAS;QACT,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;QAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAUD,QAAQ;QACJ,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,KAAK,EAAE,CAAC;SACnB;IACL,CAAC;IACD,aAAa,CAAC,EAAE;QACZ,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACpB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;;;;;;wBA3CC,gDAAK;8BAYL,iDAAM;wBAIP,gDAAK;8BAUL,iDAAM;+BAGN,iDAAM;;AAtCE,oBAAoB;IANhC,wDAAS,CAAC;QACP,QAAQ,EAAE,wBAAwB;QAClC,wEAAsC;QAEtC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,oBAAoB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACXkF;AAC9D;AACqC;AACjC;IAO5C,yBAAyB,SAAzB,yBAA0B,SAAQ,iEAAgB;IAC3D,YAAmB,KAAwB,EAAU,MAAiB;QAClE,KAAK,CAAC,KAAK,CAAC,CAAC;QADE,UAAK,GAAL,KAAK,CAAmB;QAAU,WAAM,GAAN,MAAM,CAAW;IAEtE,CAAC;IAED,YAAY;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4FAAkB,EAAE;YACnD,UAAU,EAAE,+BAA+B;YAC3C,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;SACzD,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACvC,IAAI,MAAM,EAAE;gBACR,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;aACpC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS;QACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACnC,CAAC;;;;;;AAnBQ,yBAAyB;IALrC,wDAAS,CAAC;QACP,QAAQ,EAAE,6BAA6B;QACvC,mFAAiD;QACjD,eAAe,EAAE,yEAA8B;KAClD,CAAC;GACW,yBAAyB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACV6E;AAC9D;AACgD;AAC7B;AAChB;AAC2B;AACJ;AACA;AACF;AACR;AACZ;IAQ5C,0BAA0B,SAA1B,0BAA2B,SAAQ,kEAAgB;IAiG5D,YAAoB,MAAiB,EAAE,KAAwB,EAAU,cAAmC;QACxG,KAAK,CAAC,KAAK,CAAC,CAAC;QADG,WAAM,GAAN,MAAM,CAAW;QAAoC,mBAAc,GAAd,cAAc,CAAqB;QAhG5G,aAAQ,GAAG,EAAE,CAAC;QACd,mBAAc,GAAG,EAAE,CAAC;QACpB,mBAAmB;QACnB,mBAAc,GAAG,EAAE,CAAC;QAyBpB,YAAY;QACZ,yBAAyB;QACzB,yBAAoB,GAAG,EAAE,CAAC;QAoBhB,0BAAqB,GAAG,IAAI,wDAAY,EAAO;QACzD,YAAY;QACZ,mBAAmB;QACnB,mBAAc,GAAG,8FAA6B,CAAC;QAWrC,oBAAe,GAAG,IAAI,wDAAY,EAAO;QACnD,YAAY;QAEZ,mBAAmB;QACnB,sBAAiB,GAAG,qFAAoB,CAAC;QAW/B,uBAAkB,GAAG,IAAI,wDAAY,EAAO;QAc5C,yBAAoB,GAAG,IAAI,wDAAY,EAAO;QACxD,YAAY;QACZ,UAAK,GAAG,KAAK,CAAC;QAIV,IAAI,CAAC,aAAa,CAAC,0BAA0B,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YACzF,IAAI,CAAC,EAAE;gBACH,MAAM,OAAO,GAAG,8GAA+C,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACzF,IAAI,OAAO,EAAE;oBACT,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,wFAAwB,CAAC,CAAC;iBAC1E;aACJ;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YACrE,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACzB,MAAM,OAAO,GAAG,8GAA+C,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACzF,IAAI,OAAO,EAAE;oBACT,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,wFAAwB,CAAC,CAAC;iBAC1E;aACJ;QACL,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,oEAAmB,KAAK,KAAK,CAAC;QAC3C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,qFAAoC,CAAC,CAAC,GAAG,EAAE,EAAE;YACrE,IAAI,CAAC,KAAK,GAAG,GAAG,KAAK,KAAK,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;QAlHG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;IAC9B,CAAC;QAKG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACxC;QACD,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC7C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YAC3B,CAAC,CAAC;SACL;IACL,CAAC;QAMG,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;YAChC,MAAM,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACpB,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACb,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;SAC9D;IACL,CAAC;QAQG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;QASG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;QAQG,cAAc;QACd,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QAClB,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;QAC/B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC7D,CAAC;IA6BD,cAAc,CAAC,eAAe;QAC1B,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,UAAU;QACN,MAAM,IAAI,GAAG;YACT,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,SAAS,EAAE,IAAI,CAAC,cAAc;YAC9B,YAAY,EAAE,IAAI,CAAC,iBAAiB;YACpC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAC,KAAI,CAAC,kBAAkB;SAC7E,CAAC;QACF,kHAA8B,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;YACvC,IAAI,CAAC,EAAE;gBACH,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,OAAO,CAAC;gBAChC,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAC3B;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC;IACD,gBAAgB;QACZ,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,MAAM,MAAM,GAAG,IAAI,0EAAqB,EAAE,CAAC;YAC3C,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,8FAA6B,CAAC,CAAC;YACnE,IAAI;gBACA,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aAC/D;YAAC,MAAM;gBACJ,IAAI,IAAI,CAAC,kBAAkB,EAAE;oBACzB,MAAM,OAAO,GAAG,8GAA+C,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBACzF,IAAI,OAAO,EAAE;wBACT,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,wFAAwB,CAAC,CAAC;qBAC1E;yBAAM;wBACH,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;wBACzB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;qBAClC;iBACJ;aACJ;YACD,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC/B;aAAM;YACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAClC;IACL,CAAC;IACD,oBAAoB;QAChB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO;YACxD,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,mBAAmB,KAAK,UAAU,EAAE;YAC1E,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;SACxD;IACL,CAAC;;;;;;;;wBAvKA,iDAAK;2BAUL,iDAAK;8BAkBL,iDAAK;oCAkBL,kDAAM;wBAKN,iDAAK;8BASL,kDAAM;2BAMN,iDAAK;iCASL,kDAAM;6BAKN,iDAAK;mCASL,kDAAM;;AA9FE,0BAA0B;IANtC,yDAAS,CAAC;QACP,QAAQ,EAAE,8BAA8B;QACxC,qFAAmD;QAEnD,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,0BAA0B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClBgF;AACnC;AAC1B;AACa;AACP;AACP;IAS5C,0BAA0B,SAA1B,0BAA2B,SAAQ,iEAAgB;;;QAYlD,kBAAa,GAAG,IAAI,uDAAY,EAAU;QAa1C,eAAU,GAAG,IAAI,uDAAY,EAAU;QACjD,YAAY;QAEZ,kBAAkB;QAClB,kBAAa,GAAY,KAAK,CAAC;QAQ/B,YAAY;QACZ,gBAAgB;QAChB,gBAAW,GAAY,KAAK,CAAC;QAoC7B,cAAS,GAAG,EAAE,CAAC;IAmDnB,CAAC;QA1HO,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAW;QACnB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;QAOG,IAAI;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,CAAC,GAAW;QAChB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAOD,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAY;QACrB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAID,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,GAAY;QACnB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,YAAY;IACZ,aAAa,CAAC,GAAG;QACb,IAAI,CAAC,GAAG,EAAE;YACN,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB;IACL,CAAC;IACD,QAAQ;QACJ,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9C,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACjC,CAAC,CAAC;QACF,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACxC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACjC,CAAC,CAAC;QACF,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACjC,CAAC;IACD,qBAAqB;QACjB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,QAAQ,GAAG,iFAAuB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAChE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACxB;IACL,CAAC;IACD,WAAW,CAAC,EAAE;QACV,gGAA2B,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,eAAe;QACX,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,MAAM,QAAQ,GAAG,iFAAuB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAClE,IAAI,QAAQ,EAAE;gBACV,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,KAAK,+EAAkB,EAAE;oBACrD,MAAM,GAAG,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;oBACzC,IAAI,GAAG,EAAE;wBACL,SAAS,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;qBAC3B;iBACJ;qBAAM;oBACH,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;iBACtC;aACJ;SACJ;QACD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,aAAa,CAAC,KAAK;QACf,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;YACtD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YAClD,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC9C,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;SAC5B;aAAM;YACH,IAAI,QAAQ,GAAG,iFAAuB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAChE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClC,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG,IAAI,4DAAK,EAAE,CAAC;gBACjD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,IAAI,4DAAK,EAAE,CAAC;gBAC/C,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,EAAE,CAAC;gBACpC,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,8EAAiB,CAAC;gBACjD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;aAC5B;YACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SACzB;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,UAAU;QACN,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG,IAAI,CAAC;QAC1C,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,IAAI,CAAC;QACxC,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;;;sBA1HA,gDAAK;4BASL,iDAAM;mBAIN,gDAAK;yBASL,iDAAM;;AAzBE,0BAA0B;IANtC,wDAAS,CAAC;QACP,QAAQ,EAAE,8BAA8B;QACxC,oFAAkD;QAElD,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,0BAA0B;AAAA;;;;;;;;;;;;;;;;;;;;;;ACd4B;AACV;IAO5C,kBAAkB,SAAlB,kBAAmB,SAAQ,iEAAgB;;;QACpD,cAAS,GAAG,EAAE,CAAC;IAQnB,CAAC;IAPG,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,SAAS;IACzB,CAAC;IACD,IAAI,IAAI,CAAC,KAAK;QACV,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;;AARQ,kBAAkB;IAL9B,wDAAS,CAAC;QACP,QAAQ,EAAE,sBAAsB;QAChC,4EAA0C;QAC1C,eAAe,EAAE,yEAA8B;KAClD,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;;;ACRiE;AACvC;IAO5C,uBAAuB,SAAvB,uBAAwB,SAAQ,iEAAgB;;;QAK/C,iBAAY,GAAG,IAAI,uDAAY,EAAO;IACpD,CAAC;IALG,QAAQ,CAAC,EAAE;QACP,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACpD,CAAC;;;2BACA,iDAAM;;AALE,uBAAuB;IALnC,wDAAS,CAAC;QACP,QAAQ,EAAE,2BAA2B;QACrC,iFAA+C;QAC/C,eAAe,EAAE,yEAA8B;KAClD,CAAC;GACW,uBAAuB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACR+E;AAC/C;AAGX;AAElD,MAAM,6BAA6B;;IAW7B,4BAA4B,SAA5B,4BAA6B,SAAQ,iEAAgB;IA0G9D,YAAY,KAAwB;QAChC,KAAK,CAAC,KAAK,CAAC,CAAC;QA1GjB,oBAAe,GAAG,MAAM,CAAC;QAqBf,gBAAW,GAAG,IAAI,uDAAY,EAAO;QAC/C,YAAY;QACZ,wBAAwB;QACxB,wBAAmB,GAAG,KAAK,CAAC;QAUlB,yBAAoB,GAAG,IAAI,uDAAY,EAAO;QACxD,YAAY;QAEZ,aAAQ,GAAG,IAAI,sEAAU,EAAE,CAAC;QAkB5B,oBAAe,GAAG,IAAI,sEAAU,EAAE,CAAC;QAYnC,kBAAa,GAAG,IAAI,sEAAU,EAAE,CAAC;QAYjC,mBAAc,GAAG,IAAI,sEAAU,EAAE,CAAC;QASlC,sBAAiB,GAAG,IAAI,sEAAU,EAAE,CAAC;QAkQ3B,iBAAY,GAAG,IAAI,uDAAY,EAAO;QA/O5C,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,IAAI,8EAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,8EAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,8EAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,8EAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE;oBAC1K,IAAI,CAAC,UAAU,GAAG,QAAQ;oBAC1B,IAAI,CAAC,8EAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,8EAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;wBACnF,8EAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,8EAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;wBACrE,8EAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,8EAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC;wBACnE,8EAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,8EAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;wBAC3E,IAAI,CAAC,UAAU,GAAG,OAAO;wBACzB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC;wBAC7B,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,UAAU,CAAC;qBACtC;oBACD,IAAI,8EAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;wBACrC,8EAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,8EAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC;wBACnE,8EAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,8EAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;wBACrE,8EAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,8EAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;wBACxE,IAAI,CAAC,UAAU,GAAG,KAAK;wBACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;qBAC1B;iBACJ;qBAAM;oBACH,IAAI,CAAC,UAAU,GAAG,MAAM;iBAC3B;aACJ;iBAAM;gBACH,IAAI,8EAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,8EAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,8EAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,8EAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE;oBACxJ,IAAI,CAAC,UAAU,GAAG,QAAQ;oBAC1B,IAAI,CAAC,8EAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,8EAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;wBACzE,8EAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,8EAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;wBAC3D,8EAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,8EAAkB,CAAC,GAAG,CAAC,MAAM,CAAC;wBAC7D,8EAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,8EAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;wBAC/D,IAAI,CAAC,UAAU,GAAG,OAAO;wBACzB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC;wBACxB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC;qBAC9B;oBACD,IAAI,8EAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE;wBACjC,8EAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,8EAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;wBAC3D,8EAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,8EAAkB,CAAC,GAAG,CAAC,KAAK,CAAC;wBAC5D,8EAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,8EAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;wBAC/D,IAAI,CAAC,UAAU,GAAG,KAAK;wBACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;qBACtB;iBACJ;qBAAM;oBACH,IAAI,CAAC,UAAU,GAAG,MAAM;iBAC3B;aACJ;QACL,CAAC,CAAC;IACN,CAAC;IAvJD,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,KAAK;QAChB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACjB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAKG,KAAK;QACL,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IACD,IAAI,KAAK,CAAC,GAAG;QACT,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAMG,cAAc;QACd,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QAClB,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;QAC/B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAKD,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD,IAAI,GAAG,CAAC,KAAK;QACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC;YACtD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,KAAK,CAAC;SAC3D;aAAM;YACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC;YACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC;YAClD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC;YACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC;SACvD;IACL,CAAC;IAED,IAAI,UAAU;QACV,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE;YAC/D,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;SACvC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,KAAK;QAChB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC;IACvD,CAAC;IAED,IAAI,QAAQ;QACR,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAC/D,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;SACtC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK;QACd,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC;IACxD,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,KAAK;QACf,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC;QACrD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAC1D,CAAC;IAED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,KAAK;QAClB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC;QACzD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,KAAK,CAAC;IAC5D,CAAC;IAED,QAAQ,CAAC,IAAI,EAAE,KAAK;QAChB,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;SAC3B;IACL,CAAC;IAkDD,KAAK;QACD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IACD,KAAK;QACD,IAAI,CAAC,GAAG,GAAG,IAAI,sEAAU,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,sEAAU,EAAE,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,IAAI,sEAAU,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI,sEAAU,EAAE,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,IAAI,sEAAU,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;oBACjC,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,IAAI,sEAAU,EAAE,CAAC;iBACtD;gBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;oBAClC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,IAAI,sEAAU,EAAE,CAAC;iBACvD;gBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;oBACrC,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,IAAI,sEAAU,EAAE,CAAC;iBAC1D;gBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;oBACpC,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG,IAAI,sEAAU,EAAE,CAAC;iBACzD;aACJ;iBAAM;gBACH,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE;oBAC7B,IAAI,CAAC,kBAAkB,CAAC,GAAG,GAAG,IAAI,sEAAU,EAAE,CAAC;iBAClD;gBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;oBAC9B,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,sEAAU,EAAE,CAAC;iBACnD;gBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE;oBAC/B,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,IAAI,sEAAU,EAAE,CAAC;iBACpD;gBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;oBAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,IAAI,sEAAU,EAAE,CAAC;iBACrD;aACJ;SACJ;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IACD,UAAU,CAAC,GAAG;QACV,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;YACxB,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,IAAI,GAAG,IAAI,sEAAU,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAGtB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;SACjC;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,IAAI;QACN,IAAI,IAAI,IAAI,IAAI,EAAE;YACd,QAAQ,IAAI,CAAC,UAAU,EAAE;gBACrB,KAAK,MAAM,CAAC,CAAC,MAAM;gBACnB,KAAK,KAAK;oBACN,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;oBACpB,MAAM;gBACV,KAAK,OAAO;oBACR,IAAI,IAAI,CAAC,cAAc,EAAE;wBACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;wBAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;qBACzC;yBAAM;wBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;wBACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;qBAChC;oBACD,MAAM;gBACV,KAAK,QAAQ;oBACT,MAAM;aACb;SACJ;aAAM,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;YAChC,IAAI,IAAI,IAAI,MAAM,EAAE;gBAChB,IAAI,CAAC,KAAK,EAAE,CAAC;aAChB;iBAAM;gBACH,QAAQ,IAAI,CAAC,UAAU,EAAE;oBACrB,KAAK,MAAM;wBACP,IAAI,IAAI,IAAI,KAAK,EAAE;4BACf,IAAI,CAAC,GAAG,GAAG,IAAI,sEAAU,EAAE;yBAC9B;wBACD,MAAM;oBACV,KAAK,KAAK;wBACN,IAAI,IAAI,IAAI,OAAO,EAAE;4BACjB,IAAI,IAAI,CAAC,cAAc,EAAE;gCACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;gCACjD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC;6BAC1D;iCAAM;gCACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI;gCAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG;6BAC9C;yBACJ;wBACD,MAAM;oBACV,KAAK,OAAO;wBACR,sBAAsB;wBACtB,gCAAgC;wBAChC,2DAA2D;wBAC3D,iEAAiE;wBACjE,cAAc;wBACd,wDAAwD;wBACxD,qDAAqD;wBACrD,OAAO;wBACP,GAAG;wBACH,MAAM;oBACV,KAAK,QAAQ;wBACT,IAAI,IAAI,IAAI,OAAO,EAAE;4BACjB,IAAI,IAAI,CAAC,cAAc,EAAE;gCACrB,IAAI,CAAC,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;oCAC3H,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;oCAC3G,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE;oCACnH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;oCACjD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC;iCAC1D;qCAAM;oCACH,IAAI,CAAC,KAAK,EAAE;iCACf;6BAEJ;iCAAM;gCACH,IAAI,CAAC,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oCACjH,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;oCACrG,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;oCACvG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI;oCAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG;iCAC9C;qCAAM;oCACH,IAAI,CAAC,KAAK,EAAE;iCACf;6BACJ;yBAEJ;wBACD,IAAI,IAAI,IAAI,KAAK,EAAE;4BACf,IAAI,IAAI,CAAC,cAAc,EAAE;gCACrB,IAAI,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE;oCACzD,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;oCAC3G,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC;oCAC7G,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE;oCAChH,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;iCAC9C;qCAAM;oCACH,IAAI,CAAC,KAAK,EAAE;iCACf;6BAEJ;iCAAM;gCACH,IAAI,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE;oCACtD,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;oCACrG,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;oCACnG,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,8EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;oCACxG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;iCAC1C;qCAAM;oCACH,IAAI,CAAC,KAAK,EAAE;iCACf;6BACJ;yBACJ;wBACD,MAAM;iBACb;aACJ;YAED,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,EAAE;aAE9B;YACD,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,EAAE;aAE7B;YACD,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,EAAE;aAE/B;YACD,IAAI,IAAI,CAAC,UAAU,IAAI,QAAQ,EAAE;aAEhC;SACJ;QACD,4BAA4B;QAE5B,iaAAia;QACja,+jBAA+jB;QAC/jB,+DAA+D;QAC/D,qEAAqE;QACrE,WAAW;QACX,6ZAA6Z;QAC7Z,qDAAqD;QACrD,WAAW;QACX,OAAO;QACP,UAAU;QACV,6XAA6X;QAC7X,2gBAA2gB;QAC3gB,0DAA0D;QAC1D,6DAA6D;QAC7D,WAAW;QACX,yXAAyX;QACzX,qDAAqD;QACrD,WAAW;QACX,OAAO;QACP,GAAG;IACP,CAAC;IAID,cAAc;QACV,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAChB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IACD,KAAK;QACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC5B,CAAC;IACD,OAAO;QACH,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;IAC9B,CAAC;IACD,QAAQ;QACJ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC/B,CAAC;;;;;;oBA3VA,gDAAK;0BASL,iDAAM;6BAIN,gDAAK;mCASL,iDAAM;2BAwTN,iDAAM;;AA3VE,4BAA4B;IANxC,wDAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,qFAAmD;QAEnD,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,4BAA4B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBgB;AACuC;AAClC;AACJ;AACU;AACH;AACR;IAO5C,mBAAmB,SAAnB,mBAAoB,SAAQ,iEAAgB;;;QACrD,2BAAsB,GAAG,KAAK,CAAC;QAC/B,yBAAoB,GAAG,KAAK,CAAC;QAC7B,yBAAoB,GAAG,KAAK,CAAC;QAcnB,wBAAmB,GAAG,IAAI,uDAAY,EAAO;QACvD,YAAY;QACZ,2BAAsB,GAAG,MAAM,CAAC;QAgCtB,qBAAgB,GAAG,IAAI,uDAAY,EAAO;QACpD,YAAY;QAEZ,2BAA2B;QAC3B,2BAAsB,GAAG,KAAK,CAAC;QAUrB,4BAAuB,GAAG,IAAI,uDAAY,EAAO;QAC3D,YAAY;QACZ,eAAU,GAAG,EAAE,CAAC;QAChB,eAAU,GAAG,EAAE,CAAC;IA4LpB,CAAC;QAxPO,aAAa;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;QAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC3D,CAAC;QAMG,iBAAiB;QACjB,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACvC,CAAC;IACD,IAAI,iBAAiB,CAAC,GAAG;QACrB,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAKG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,GAAG,EAAE;YACL,MAAM,aAAa,GAAG,EAAE,CAAC;YACzB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACZ,aAAa,CAAC,IAAI,CAAC;oBACf,GAAG,CAAC;iBACP,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SACtC;aAAM;YACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC7B;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;QAQG,iBAAiB;QACjB,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACvC,CAAC;IACD,IAAI,iBAAiB,CAAC,GAAG;QACrB,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAC;QAClC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACnE,CAAC;IAOD,eAAe;QACX,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,0FAAoC,CAAC,GAAG,EAAE;YAC3E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC1B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;SAChC;QACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,wFAAkC,CAAC;YAC/B,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YACpC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC;YACzC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE;SACtC,CAAC,CAAC;IACP,CAAC;IAED,eAAe;QACX,OAAO,EAAE,CAAC;IACd,CAAC;IAED,SAAS,CAAC,KAAK;QACX,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,YAAY,EAAE;YAC5C,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACzB,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC1D,uEAAe,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;gBAClF,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,wFAAkC,CAAC;oBAC/B,SAAS,EAAE,IAAI,CAAC,EAAE;oBAClB,KAAK,EAAE,KAAK,CAAC,YAAY;oBACzB,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE;oBACtC,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE;iBACzC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAED,iDAAiD;IACjD,oBAAoB;QAChB,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,UAAU,CAAC,KAAK;QACZ,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACZ,IAAI,IAAI,CAAC,aAAa,YAAY,sEAAa,EAAE;oBAC7C,IAAI,YAAY,GAAG,EAAE,CAAC;oBACtB,IAAI,MAAM,GAAG,2FAAqC,EAAE,CAAC;oBACrD,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE;wBAC5B,MAAM,OAAO,GAAG,2EAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;wBACtE,IAAI,OAAO,EAAE;4BACT,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCAChB,IAAI,CAAC,CAAC,WAAW,KAAK,UAAU,EAAE;oCAC9B,YAAY,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;iCAChC;4BACL,CAAC,CAAC,CAAC;yBACN;qBACJ;oBACD,gFAA4B,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE;wBACxE,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;wBACrC,IAAI,QAAQ,GAAG,MAAM,CAAC;wBACtB,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;4BACzB,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;yBACtC;wBACD,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBACzC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;wBAC9C,IAAI,MAAM,GAAG,CAAC,EAAE;4BACZ,IAAI,KAAK,GAAG,MAAM,EAAE;gCAChB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;6BACvD;iCAAM;gCACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;6BAC5D;yBACJ;6BAAM;4BACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;yBAC7B;wBACD,IAAI,CAAC,cAAc,EAAE,CAAC;wBACtB,0FAAoC,CAAC;4BACjC,SAAS,EAAE,MAAM;4BACjB,WAAW,EAAE,QAAQ;4BACrB,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;yBACjC,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;iBACN;qBAAM;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;oBACrC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBACzC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;oBAC9C,IAAI,MAAM,GAAG,CAAC,EAAE;wBACZ,IAAI,KAAK,GAAG,MAAM,EAAE;4BAChB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;yBACvD;6BAAM;4BACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;yBAC5D;qBACJ;yBAAM;wBACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;qBAC7B;oBACD,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,0FAAoC,CAAC;wBACjC,SAAS,EAAE,MAAM;wBACjB,WAAW,EAAE,MAAM;wBACnB,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;qBACjC,CAAC,CAAC;iBACN;aACJ;SACJ;IACL,CAAC;IAED,oBAAoB,CAAC,IAAI;QACrB,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;gBACjC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC9C;YACD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IACD,eAAe;QACX,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE;YAC1C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;SAC9I;aAAM;YACH,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;SAC7B;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IACD,UAAU,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,OAAO,CAAC,GAAC,CAAC,CAAC;SACd;aAAM;YACH,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACvC;IACL,CAAC;IACD,aAAa,CAAC,IAAI;QACd,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC7C,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;YAChD,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBACzD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;aAChD;YACD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE;gBACrD,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC;aACvC;iBAAM;gBACH,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aAClE;SACJ;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC9C;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;SAC9C;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YACtC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,GAAG,EAAE,CAAC;SAC5C;IACL,CAAC;IACD,iBAAiB,CAAC,KAAK,EAAE,IAAI;QACzB,IAAI,KAAK,IAAI,IAAI,EAAE;YACf,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;SAClC;QACD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxB,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;gBACrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;aACjC;YACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,GAAG,EAAE;gBAC7D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;gBAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,cAAc,CAAC,EAAE;oBACrD,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;iBACrE;gBACD,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC/F,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvB,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC1B,CAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;;;4BAxPA,gDAAK;kCAUL,iDAAM;gCAGN,gDAAK;yBAWL,gDAAK;+BAoBL,iDAAM;gCAKN,gDAAK;sCASL,iDAAM;;AAjEE,mBAAmB;IAL/B,wDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,6EAA2C;QAC3C,eAAe,EAAE,yEAA8B;KAClD,CAAC;GACW,mBAAmB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACbhC;AACA;IAOaS,kBAAkB,SAAlBA,kBAAkB,SAASD,iEAAT,CAAyB;;;IACpD,qBAAgB;MACZE,eAAe,EAAE,IADL;MAEZC,QAAQ,EAAE;IAFE,CAAhB;IAQU,oBAAe,IAAInO,uDAAJ,EAAf;EAWb;;EAfGoO,QAAQ,CAACC,EAAD,EAAG;IACP,KAAKC,UAAL,CAAgB,KAAKC,kBAArB;IACA,KAAKC,YAAL,CAAkBxM,IAAlB,CAAuB,KAAKuM,kBAA5B;EACH;;EAIKE,IAAI,CAACC,MAAD,EAAO;IAAA;;IAAA;MACb,KAAI,CAACA,MAAL,GAAcA,MAAd;MAEA,IAAIC,IAAI,GAAG,KAAX;;MACA,KAAI,CAACD,MAAL,CAAYE,uBAAZ,CAAoC,UAAUC,CAAV,EAAW;QAC3CF,IAAI,CAACH,YAAL,CAAkBxM,IAAlB,CAAuB6M,CAAvB;MACH,CAFD;IAJa;EAOhB;;AAnBmD;;;UASnD3O,iDAAMA;;;AATE+N,kBAAkB,sDAL9BhR,wDAAS,CAAC;EACP4C,QAAQ,EAAE,sBADH;EAEPC,UAAAA,kEAFO;EAGPgP,eAAe,EAAEf,yEAA8BgB;AAHxC,CAAD,CAKqB,GAAlBd,kBAAkB,CAAlB;;;;;;;;;;;;;;;;;;;;;;;;ACRsD;AACV;IAQ5C,oBAAoB,SAApB,oBAAqB,SAAQ,iEAAgB;;AAA7C,oBAAoB;IANhC,wDAAS,CAAC;QACP,QAAQ,EAAE,wBAAwB;QAClC,8EAA4C;QAE5C,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,oBAAoB;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACT8E;AACrC;AACjB;IAO5C,mBAAmB,SAAnB,mBAAoB,SAAQ,iEAAgB;;;QACrD,oBAAe,GAAG,KAAK,CAAC;QAoBd,oBAAe,GAAG,IAAI,uDAAY,EAAU;QAc5C,kBAAa,GAAG,IAAI,uDAAY,EAAU;QAc1C,kBAAa,GAAG,IAAI,uDAAY,EAAU;QAa1C,mBAAc,GAAG,IAAI,uDAAY,EAAU;QAgB3C,2BAAsB,GAAG,IAAI,uDAAY,EAAU;QAiBnD,eAAU,GAAG,IAAI,uDAAY,EAAU;QAIvC,YAAO,GAAG,IAAI,uDAAY,EAAU;QA4C9C,YAAY;IAGhB,CAAC;IAhJG,eAAe;QACX,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAKG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAW;QACrB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;QAQG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAW;QACnB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;QAQG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAW;QACnB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;QAOG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAW;QACpB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;QAOG,gBAAgB;QAChB,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAW;QAC5B,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;QAChC,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,oBAAoB,IAAI,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE;YAC/F,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;SACxG;QACD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAChE,CAAC;QAQG,IAAI;QACJ,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAC9B,OAAO,IAAI,CAAC,SAAS,CAAC;SACzB;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,IAAI,IAAI,CAAC,GAAW;QAChB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAOD,QAAQ,CAAC,EAAE;QACP,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;YAE7B,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,IAAI,WAAW,GAAG,KAAK,CAAC;YAExB,IAAI,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACtD,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,EAAE;gBACxC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvC,WAAW,GAAG,IAAI,CAAC;aAEtB;iBAAM,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,EAAE;gBAC/C,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvC,WAAW,GAAG,IAAI,CAAC;aACtB;YAED,IAAI,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE;gBAE5D,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC;gBAC/C,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAEjF,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,eAAe,CAAC,QAAQ,EAAE,EAAE;oBAC5E,iFAAuB,CAAC,2EAA2E,EAAE,yCAAyC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;iBAC/M;aACJ;YAED,IAAI,WAAW,EAAE;gBACb,iFAAuB,CAAC,2GAA2G,EAAE,0BAA0B,EAAE,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;aACtN;YACD,IAAI,WAAW,EAAE;gBACb,iFAAuB,CAAC,2GAA2G,EAAE,0BAA0B,EAAE,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;aACtN;YAED,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;gBACzB,IAAI,CAAC,kBAAkB,GAAG,eAAe,CAAC;aAC7C;SACJ;QACD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAE;YACjC,MAAM,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACjC;IACL,CAAC;;;wBApIA,gDAAK;8BAYL,iDAAM;sBAKN,gDAAK;4BASL,iDAAM;sBAKN,gDAAK;4BASL,iDAAM;uBAIN,gDAAK;6BASL,iDAAM;+BAIN,gDAAK;qCAYL,iDAAM;mBAKN,gDAAK;yBAYL,iDAAM;sBAIN,iDAAM;;AAnGE,mBAAmB;IAL/B,wDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,6EAA2C;QAC3C,eAAe,EAAE,yEAA8B;KAClD,CAAC;GACW,mBAAmB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACTgE;AACvC;IAS5C,wBAAwB,SAAxB,wBAAyB,SAAQ,iEAAgB;;;QAYhD,kBAAa,GAAG,IAAI,uDAAY,EAAU;QAa1C,0BAAqB,GAAG,IAAI,uDAAY,EAAU;QAclD,eAAU,GAAG,IAAI,uDAAY,EAAO;QAC9C,YAAY;IAChB,CAAC;QArCO,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAW;QACnB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;QAOG,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,GAAW;QAC3B,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;QAChC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC/D,CAAC;QAOG,IAAI;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,CAAC,GAAG;QACR,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;;;sBAlCA,gDAAK;4BASL,iDAAM;8BAIN,gDAAK;oCASL,iDAAM;mBAIN,gDAAK;yBAUL,iDAAM;;AAvCE,wBAAwB;IANpC,wDAAS,CAAC;QACP,QAAQ,EAAE,4BAA4B;QACtC,kFAAgD;QAEhD,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,wBAAwB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACV8B;AACV;IAS5C,6BAA6B,SAA7B,6BAA8B,SAAQ,iEAAgB;IAQ/D,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,cAAc;IAEd,UAAU;QACN,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACnC,CAAC;IAED,YAAY,CAAC,GAAG;QACZ,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;IAClC,CAAC;;AAvBQ,6BAA6B;IANzC,wDAAS,CAAC;QACP,QAAQ,EAAE,iCAAiC;QAC3C,uFAAqD;QAErD,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,6BAA6B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVyE;AAC9D;AACiE;AACjB;AAC7C;AACkB;AAEL;AACZ;IAQ5C,8BAA8B,SAA9B,8BAA+B,SAAQ,iEAAgB;IA4ChE,YAAoB,MAAiB,EAAE,KAAwB,EAAU,cAAmC;QACxG,KAAK,CAAC,KAAK,CAAC,CAAC;QADG,WAAM,GAAN,MAAM,CAAW;QAAoC,mBAAc,GAAd,cAAc,CAAqB;QA3C5G,iBAAY,GAAG,EAAE,CAAC;QAClB,kBAAkB;QAClB,kBAAa,GAAG,gBAAgB,CAAC;QAUvB,mBAAc,GAAG,IAAI,uDAAY,EAAO;QA8BlD,UAAK,GAAG,KAAK,CAAC;QAGV,cAAc,CAAC,UAAU,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YACzF,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,IAAI,SAAS,EAAE;gBACX,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;aAC3B;YACD,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAC,SAAS,EAAE,CAAC;YACpD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,0BAA0B,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YACzF,IAAI,CAAC,aAAa,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,GAAG,oEAAmB,KAAK,KAAK,CAAC;QAC3C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,qFAAoC,CAAC,CAAC,GAAG,EAAE,EAAE;YACrE,IAAI,CAAC,KAAK,GAAG,GAAG,KAAK,KAAK,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IA9DgC,CAAC;QAE9B,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;IAGD,YAAY;IAEZ,IAAI,YAAY;QACZ,IAAI,IAAI,CAAC,QAAQ,IAAI,gBAAgB,EAAE;YACnC,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACzB,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;aAC/C;SACJ;QACD,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE;YAC3B,OAAO,IAAI,CAAC,kBAAkB;SACjC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,YAAY,CAAC,IAAI;QACjB,IAAI,IAAI,CAAC,QAAQ,IAAI,gBAAgB,EAAE;YACnC,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACzB,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,IAAI,CAAC;aAC/C;iBAAM;gBACH,IAAI,CAAC,kBAAkB,GAAG;oBACtB,YAAY,EAAE,IAAI;oBAClB,sBAAsB,EAAE,EAAE;iBAC7B,CAAC;aACL;SACJ;QACD,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE;YAC3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAClC;IACL,CAAC;IAyBD,aAAa;QACT,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YACnD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAE;gBACjC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;aAC1D;iBAAM;gBACH,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;gBAClE,IAAI,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,EAAE;oBAChD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;wBAChC,IAAI,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE;4BACzB,IAAI,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;4BACrG,IAAI,KAAK,EAAE;gCACP,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;6BAC7B;iCAAM;gCACH,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;6BACtB;yBACJ;wBACD,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;oBACvB,CAAC,CAAC,CAAC;iBACN;aACJ;SACJ;IACL,CAAC;IAED,WAAW,CAAC,IAAI;QACZ,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE;YACxB,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACzB,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;aACrD;iBAAM;gBACH,IAAI,CAAC,kBAAkB,GAAG;oBACtB,YAAY,EAAE,IAAI,CAAC,KAAK;oBACxB,sBAAsB,EAAE,EAAE;iBAC7B,CAAC;aACL;SACJ;aAAM;YACH,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACzB,IAAI,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChG,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE;oBAClB,IAAI,KAAK,EAAE;wBACP,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;qBAC3H;iBACJ;qBAAM;oBACH,IAAI,KAAK,EAAE;wBACP,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;qBAC5B;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;qBAC/F;iBACJ;aACJ;iBAAM;gBACH,IAAI,CAAC,kBAAkB,GAAG;oBACtB,YAAY,EAAE,IAAI,CAAC,KAAK;oBACxB,sBAAsB,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;iBACnE,CAAC;aACL;SACJ;IAEL,CAAC;IAED,UAAU;QACN,IAAI,IAAI,CAAC,QAAQ,IAAI,gBAAgB,EAAE;YACnC,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wHAAwB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;aAC3F;iBAAM;gBACH,MAAM,EAAE,GAAG,IAAI,4EAAgB,EAAE,CAAC;gBAClC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wHAAwB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBACrF,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE;oBACnC,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;gBACjC,CAAC,CAAC,CAAC;aACN;SACJ;QACD,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE;YAC3B,kHAA4B,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SACzD;IACL,CAAC;IACD,eAAe,CAAC,IAAY;QACxB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;QAC/D,IAAG,IAAI,EAAE;YACL,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;SACzB;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;;;;;;;uBA9IA,gDAAK;6BASL,iDAAM;;AAbE,8BAA8B;IAN1C,wDAAS,CAAC;QACP,QAAQ,EAAE,kCAAkC;QAC5C,yFAAuD;QAEvD,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,8BAA8B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;AChBwE;AACpD;AACN;IAQ5C,oBAAoB,SAApB,oBAAqB,SAAQ,iEAAgB;IAmFtD,YAAY;IAEZ,YAAY,KAAwB;QAChC,KAAK,CAAC,KAAK,CAAC,CAAC;QApFjB,0BAAqB,GAAG,KAAK,CAAC;QAG9B,qBAAqB;QACrB,qBAAgB,GAAG,CAAC,oEAAW,EAAE,sEAAa,CAAC,CAAC;QAWtC,sBAAiB,GAAG,IAAI,uDAAY,EAAO;QACrD,YAAY;QACZ,iBAAiB;QACjB,iBAAY,GAAG,KAAK,CAAC;QAUX,kBAAa,GAAG,IAAI,uDAAY,EAAO;QAavC,eAAU,GAAG,IAAI,uDAAY,EAAU;QAavC,cAAS,GAAG,IAAI,uDAAY,EAAU;QAatC,cAAS,GAAG,IAAI,uDAAY,EAAU;QAChD,YAAY;QACZ,gBAAgB;QAChB,gBAAW,GAAS,GAAG,CAAC;QAUd,iBAAY,GAAG,IAAI,uDAAY,EAAU;IAKnD,CAAC;QA9EG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;QAOG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAMG,IAAI;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,CAAC,GAAW;QAChB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;QAOG,GAAG;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD,IAAI,GAAG,CAAC,GAAW;QACf,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;QAOG,GAAG;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD,IAAI,GAAG,CAAC,GAAW;QACf,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;QAOG,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,GAAW;QAClB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAWD,gBAAgB;QACZ,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAGD,WAAW;QACP,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,IAAI,CAAC;QACrC,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,uEAAc,CAAC;QAE9C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;;;;;;0BA9FA,gDAAK;gCASL,iDAAM;sBAIN,gDAAK;4BASL,iDAAM;mBAIN,gDAAK;yBASL,iDAAM;kBAIN,gDAAK;wBASL,iDAAM;kBAIN,gDAAK;wBASL,iDAAM;qBAIN,gDAAK;2BASL,iDAAM;;AAlFE,oBAAoB;IANhC,wDAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,mFAAiD;QAEjD,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,oBAAoB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACViG;AACxE;AACK;IAQlD,wBAAwB,SAAxB,wBAAwB;IAkDjC,YAAoB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;QAhD5C,cAAS,GAAG,EAAE,CAAC;QACf,kBAAa,GAAG,EAAE,CAAC;QAaT,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QACtD,YAAY;QACZ,qBAAqB;QACrB,qBAAgB,GAAG,CAAC,oEAAW,CAAC,CAAC;QAYvB,sBAAiB,GAAG,IAAI,uDAAY,EAAO;QAc3C,mBAAc,GAAG,IAAI,uDAAY,EAAO;QAExC,oBAAe,GAAG,IAAI,uDAAY,EAAO;QACnD,gBAAW,GAAG,KAAK,CAAC;QAGhB,IAAI,CAAC,aAAa,GAAG,8EAA4B,CAAC,iEAAQ,CAAC,CAAC;IAChE,CAAC;QA5CG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;QAQG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;QAQG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;IAWD,eAAe;QACX,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAED,oBAAoB;QAChB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;aACjG;iBAAM;gBACH,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;aAC5C;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IAED,WAAW,CAAC,IAAI;QACZ,QAAQ,IAAI,EAAE;YACV,KAAK,uEAAc,CAAC,CAAC,OAAO,IAAI,CAAC;YACjC,KAAK,yEAAgB,CAAC,CAAC,OAAO,GAAG,CAAC;YAClC,KAAK,sEAAa,CAAC,CAAC,OAAO,GAAG,CAAC;YAC/B,KAAK,sEAAa,CAAC,CAAC,OAAO,IAAI,CAAC;YAChC,KAAK,oEAAW,CAAC,CAAC,OAAO,IAAI,CAAC;YAC9B,KAAK,oEAAW,CAAC,CAAC,OAAO,IAAI,CAAC;YAC9B,KAAK,oEAAW,CAAC,CAAC,OAAO,IAAI,CAAC;YAC9B,KAAK,oEAAW,CAAC,CAAC,OAAO,IAAI,CAAC;YAC9B,KAAK,sEAAa,CAAC,CAAC,OAAO,MAAM,CAAC;YAClC,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC;SACxB;IACL,CAAC;IAED,MAAM,CAAC,IAAI;QACP,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;;;;;;2BAjFA,gDAAK;iCASL,iDAAM;0BAKN,gDAAK;gCAUL,iDAAM;uBAKN,gDAAK;6BASL,iDAAM;8BAEN,iDAAM;;AA/CE,wBAAwB;IANpC,wDAAS,CAAC;QACP,QAAQ,EAAE,mBAAmB;QAC7B,uFAAqD;QAErD,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,wBAAwB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRd;AACuC;AACJ;AACK;AACkC;AACxB;AAC6B;AACrC;IASpD,aAAa,SAAb,aAAa;IA6BtB,YAAoB,KAAwB,EAAU,sBAA8C;QAAhF,UAAK,GAAL,KAAK,CAAmB;QAAU,2BAAsB,GAAtB,sBAAsB,CAAwB;QA3BpG,kBAAkB;QAClB,kBAAa,GAAG,KAAK,CAAC;QASZ,mBAAc,GAAG,IAAI,uDAAY,EAAO;QAClD,YAAY;QACZ,cAAS,GAAG,EAAE,CAAC;QACf,kBAAa,GAAG,EAAE,CAAC;QACnB,sBAAiB,GAAG,EAAE,CAAC;QACvB,eAAU,GAAG,KAAK,CAAC;IAanB,CAAC;QAzBG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IASD,IAAI,aAAa;QACb,OAAO,oGAA8C,EAAE,CAAC;IAC5D,CAAC;IACD,IAAI,aAAa,CAAC,GAAY;QAC1B,gGAA0C,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IAOD,QAAQ;QACJ,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,sFAAgC,CAAC,CAAC,EAAE,EAAE,EAAE;YACrE,IAAI,EAAE,IAAI,sEAAa,EAAE;gBACrB,MAAM,IAAI,GAAG,EAAE,CAAC;gBAChB,wFAAuB,CAAC,CAAC,CAAC,EAAE;oBACxB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;oBAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACpB,IAAI,OAAO,CAAC,CAAC,YAAY,KAAK,UAAU,EAAE;wBACtC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;qBACnC;oBACD,IAAI,OAAO,CAAC,CAAC,iBAAiB,KAAK,UAAU,EAAE;wBAC3C,CAAC,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;qBAC3D;oBACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC3B,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,GAAG,0FAAoC,CAAC,CAAC,IAAI,EAAE,EAAE;oBACnF,IAAI,IAAI,CAAC,cAAc,EAAE;wBACrB,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC;qBAC5C;oBACD,IAAI,IAAI,EAAE;wBACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;qBACxB;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,GAAG,2FAAqC,CAAC,CAAC,MAAM,EAAE,EAAE;oBACvF,IAAI,IAAI,CAAC,cAAc,EAAE;wBACrB,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC;qBAC5C;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,4FAAsC,CAAC,CAAC,CAAC,EAAE;oBAClF,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;gBACxB,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,sFAAgC,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC5E,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;wBACzB,IAAI,CAAC,MAAM,EAAE,CAAC;qBACjB;oBACD,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE;wBACpC,IAAI,CAAC,IAAI,EAAE,CAAC;qBACf;gBACL,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAChD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC9C,CAAC,CAAC;aACL;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,iHAAkD,CAAC,CAAC,CAAC,EAAE;YAC5F,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,GAAG,iHAAkD,CAAC,GAAG,EAAE;YACnG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW;QACP,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM;QACF,MAAM,IAAI,GAAG,yFAAmC,EAAE,CAAC;QACnD,IAAI,IAAI,EAAE;YACN,IAAI,IAAI,YAAY,2EAAkB,EAAE;gBACpC,OAAO;aACV;YACD,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,2FAAqC,EAAE,CAAC;YACvD,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE;gBAC5B,MAAM,OAAO,GAAG,2EAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACxD,IAAI,OAAO,EAAE;oBACT,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBAChB,IAAI,CAAC,CAAC,WAAW,KAAK,UAAU,EAAE;4BAC9B,YAAY,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;yBAChC;oBACL,CAAC,CAAC,CAAC;iBACN;aACJ;YACD,gFAA4B,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;SAClE;IACL,CAAC;IAED,WAAW;QACP,oFAA8B,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,IAAI;QACA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;IACL,CAAC;IAED,UAAU;QACN,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACnD,4FAA6B,EAAE,CAAC;IACpC,CAAC;;;;;;;uBA/HA,gDAAK;6BAQL,iDAAM;6BAeN,oDAAS,SAAC,gBAAgB;;AA3BlB,aAAa;IANzB,wDAAS,CAAC;QACP,QAAQ,EAAE,SAAS;QACnB,sEAAoC;QAEpC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,aAAa;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClB+B;AAC6B;AACrC;AACS;AACA;AAIZ;AACiD;AACV;AACpB;AACE;AACT;AACO;AACJ;AACY;AACR;IAQpD,aAAa,SAAb,aAAc,SAAQ,0EAAY;IAgD3C,YAAY,KAAwB,EAAU,OAAoB;QAC9D,KAAK,CAAC,KAAK,CAAC,CAAC;QAD6B,YAAO,GAAP,OAAO,CAAa;QA1BlE,uBAAkB,GAAkB,kFAAwB,EAAE,CAAC;QAE/D,uBAAkB,GAAG,EAAE,CAAC;QACxB,mBAAc,GAAG,EAAE,CAAC;QACpB,gBAAW,GAAG,EAAE,CAAC;QACjB,gBAAW,GAAG,EAAE,CAAC;QACjB,gBAAW,GAAG,EAAE,CAAC;QAGjB,gBAAW,GAAG,KAAK,CAAC;QACpB,qBAAgB,GAAG,KAAK,CAAC;QACzB,kBAAa,GAAG,EAAE,CAAC;QAiBf,IAAI,CAAC,UAAU,GAAG,8EAA4B,CAAC,mEAAS,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,GAAG,8EAA4B,CAAC,iFAAkB,CAAC,CAAC;QACpE,IAAI,CAAC,qBAAqB,GAAG,8EAA4B,CAAC,6EAAc,CAAC,CAAC;IAC9E,CAAC;IApDD,IAAI,UAAU;QACV,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAC3D,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,KAAK,4FAAwB,CAAC;SAC/E;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,UAAU,CAAC,GAAY;QACvB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,GAAG,EAAE;gBACL,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,KAAK,4FAAwB,EAAE;oBACxG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,GAAG,6FAAyB,CAAC;iBACvE;aACJ;iBAAM;gBACH,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;oBACjC,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,IAAI,wEAAc,EAAE,CAAC;iBACzD;gBACD,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,GAAG,4FAAwB,CAAC;aACtE;SACJ;IACL,CAAC;IAiBO,MAAM,CAAC,aAAa,CAAC,GAAmB,EAAE,IAAqC;QACnF,IAAI,GAAG,IAAI,IAAI,EAAE;YACb,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACb,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC5B,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE;oBAClD,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;iBACtB;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IASD,QAAQ;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,kGAAuC,EAAE,CAAC;QACvD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,EAAE;YAC1G,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,6FAAsC,CAAC,CAAC,MAAM,EAAE,EAAE;gBACtE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;gBACrB,IAAI,CAAC,WAAW,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC,CAAC;SACP;QACD,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC1C,IAAI,CAAC,EAAE;gBACH,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;aAC1B;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW;QACP,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,gFAA8B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC3E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;oBACzB,MAAM,OAAO,GAAG,EAAE,CAAC;oBACnB,MAAM,OAAO,GAAG,EAAE,CAAC;oBACnB,MAAM,QAAQ,GAAG,EAAE,CAAC;oBACpB,MAAM,QAAQ,GAAG,EAAE,CAAC;oBACpB,MAAM,QAAQ,GAAG,EAAE,CAAC;oBACpB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;wBAC7B,IAAI,MAAM,CAAC,OAAO,KAAK,eAAe,IAAI,MAAM,CAAC,OAAO,KAAK,cAAc,IAAI,MAAM,CAAC,OAAO,KAAK,cAAc,EAAE;4BAC9G,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BACrB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;yBACxB;6BAAM,IAAI,MAAM,CAAC,OAAO,KAAK,eAAe,EAAE;4BAC3C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BACtB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;yBACxB;6BAAM,IAAI,MAAM,CAAC,OAAO,KAAK,iBAAiB,EAAE;4BAC7C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BACtB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;yBACxB;wBACD,IAAI,MAAM,CAAC,MAAM,EAAE;4BACf,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;yBACzB;oBACL,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;oBAClC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;oBAC9B,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;oBAC5B,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;oBAC5B,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;oBAC5B,IAAI,CAAC,eAAe,EAAE,CAAC;iBAC1B;YACL,CAAC,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,eAAe,EAAE,CAAC;SAC1B;IACL,CAAC;IAED,SAAS;QACL,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;gBACjC,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,gEAAY,CAAC,uEAAa,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;aAClG;iBAAM;gBACH,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,kFAAwB,EAAE,CAAC;aAChE;YACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;SAC7D;aAAM;YACH,IAAI,CAAC,kBAAkB,GAAG,kFAAwB,EAAE,CAAC;SACxD;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;YACzD,QAAQ,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;gBACvC,KAAK,mFAAyB;oBAC1B,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE;wBAC7C,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,GAAG,IAAI,iFAAuB,EAAE,CAAC;qBAC9E;oBACD,IAAI,UAAU,EAAE;wBACZ,aAAa,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;qBAC7F;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;wBAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACzC,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE;gCAC7B,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;gCACjD,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;gCACzD,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;6BAC3D,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;qBACN;oBACD,MAAM;gBACV,KAAK,6EAAmB,CAAC;gBACzB,KAAK,uEAAa,CAAC;gBACnB,KAAK,4EAAkB,CAAC;gBACxB,KAAK,+EAAqB,CAAC;gBAC3B,KAAK,wEAAc,CAAC;gBACpB,KAAK,6EAAmB,CAAC;gBACzB,KAAK,gFAAsB;oBACvB,IAAI,UAAU,EAAE;wBACZ,aAAa,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;qBACpG;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC3B,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;wBAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACzC,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;wBAC1F,CAAC,CAAC,CAAC;qBACN;oBACD,MAAM;gBACV,KAAK,6EAAmB;oBACpB,IAAI,UAAU,EAAE;wBACZ,aAAa,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;qBAC7F;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;wBAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACzC,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;wBAC1F,CAAC,CAAC,CAAC;qBACN;oBACD,MAAM;gBACV,KAAK,6EAAmB,CAAC;gBACzB,KAAK,yEAAe;oBAChB,IAAI,UAAU,EAAE;wBACZ,aAAa,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;qBACpG;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;wBAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACzC,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;wBAC1F,CAAC,CAAC,CAAC;qBACN;oBACD,MAAM;gBACV,KAAK,2EAAiB;oBAClB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE;wBAC1C,IAAI,CAAC,kBAAkB,CAAC,eAAe,GAAG,IAAI,8EAAoB,EAAE,CAAC;qBACxE;oBACD,IAAI,UAAU,EAAE;wBACZ,aAAa,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;qBACpG;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;wBAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACzC,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;wBAC1F,CAAC,CAAC,CAAC;qBACN;oBACD,MAAM;oBACN,MAAM;gBACV,KAAK,8EAAoB;oBACrB,IAAI,UAAU,EAAE;wBACZ,aAAa,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;qBACpG;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC3B,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;wBAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACzC,IAAI,GAAG,CAAC,IAAI,KAAK,kFAAuB,EAAE;gCACtC,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE;oCAC7B,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;oCAC9C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;oCAC9C,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;oCAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;iCACjD,CAAC,CAAC;6BACN;iCAAM;gCACH,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;6BACzF;wBACL,CAAC,CAAC,CAAC;qBACN;oBACD,MAAM;gBACV,KAAK,+EAAqB;oBACtB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE;wBACzC,IAAI,CAAC,kBAAkB,CAAC,cAAc,GAAG,IAAI,6EAAmB,EAAE,CAAC;qBACtE;oBACD,IAAI,UAAU,EAAE;wBACZ,aAAa,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;qBAC/C;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7E,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;4BAC3D,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;4BAC5C,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;4BAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;4BAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;4BAC7C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;yBAC3E,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;qBAC3D;oBACD,MAAM;gBACV,KAAK,4EAAkB,CAAC;gBACxB,KAAK,8EAAoB,CAAC;gBAC1B,KAAK,yEAAe,CAAC;gBACrB,KAAK,6EAAmB;oBACpB,IAAI,UAAU,EAAE;wBACZ,aAAa,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;qBAC7F;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7E,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EACzD,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;qBAC5D;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;qBAC3D;oBACD,MAAM;gBACV,KAAK,4EAAkB;oBACnB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;wBACtC,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,IAAI,0EAAgB,EAAE,CAAC;qBAChE;oBACD,IAAI,UAAU,EAAE;wBACZ,aAAa,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;qBAC7F;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7E,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EACzD,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;qBAC5D;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;qBAC3D;oBACD,MAAM;gBACV,KAAK,uEAAa;oBACd,IAAI,UAAU,EAAE;wBACZ,aAAa,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;qBAC7F;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7E,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EACzD,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;qBAChE;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;qBAC3D;oBACD,MAAM;gBACV,KAAK,oFAA0B;oBAC3B,IAAI,UAAU,EAAE;wBACZ,aAAa,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;qBAC7F;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;wBAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACzC,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;wBAC1F,CAAC,CAAC,CAAC;qBACN;oBACD,MAAM;gBACV,KAAK,4EAAkB;oBACnB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7E,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;4BAC3D,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE;4BACnD,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;4BAC/C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE;4BACnD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;yBACpD,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;qBAC3D;oBACD,MAAM;gBACV,KAAK,4EAAkB;oBACnB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7E,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;4BAC3D,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE;4BACnD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE;4BACnD,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE;yBACzD,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;qBAC3D;oBACD,MAAM;gBACV,KAAK,2EAAiB;oBAClB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7E,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;4BAC3D,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE;4BACnD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE;4BACnD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;4BACjD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;yBACpD,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;qBAC3D;oBACD,MAAM;gBACV,KAAK,4EAAkB;oBACnB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE;wBAC3C,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,IAAI,+EAAqB,EAAE,CAAC;qBAC1E;oBACD,IAAI,UAAU,EAAE;wBACZ,aAAa,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;qBAC7F;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7E,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;4BAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;yBACpD,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;qBAC3D;oBAED,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;wBAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACzC,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;wBAC1F,CAAC,CAAC,CAAC;qBACN;oBACD,MAAM;gBACV,KAAK,yEAAe;oBAChB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7E,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;4BAC3D,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;4BAC1C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;4BAC5C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;4BAC5C,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;4BAC9C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;4BAC5C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;4BAC/C,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;4BAChD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;yBACjD,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;qBAC3D;oBACD,MAAM;gBACV,KAAK,4EAAkB;oBACnB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;wBAChE,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;4BAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;4BAC9C,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE;4BACxC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE;4BACtC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;yBAClD,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;qBAC3D;oBACD,MAAM;gBACV,KAAK,oFAA0B;oBAC3B,IAAI,UAAU,EAAE;wBACZ,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC;wBACtC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE;4BACnE,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;yBAChC;qBACJ;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC3B,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;wBAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACzC,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE;gCAC7B,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;gCAC9C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;gCAC9C,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;gCAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;6BACjD,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;qBACN;oBACD,MAAM;gBACV,KAAK,4EAAkB;oBACnB,IAAI,UAAU,EAAE;wBACZ,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC;wBACtC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE;4BACnE,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;yBAChC;qBACJ;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC3B,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,EAAE;wBAC1C,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC;qBACjD;oBACD,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,EAAE;wBACjD,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,GAAG,GAAG,CAAC;qBACxD;oBACD,MAAM;aACb;SACJ;IACL,CAAC;IAED,aAAa,CAAC,IAAY;QACtB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,KAAK,UAAU,EAAE;YACnI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SACzD;QACD,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IACzC,CAAC;IAED,gCAAgC;QAC5B,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,KAAK,UAAU,EAAE;YACnI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SACzD;QACD,IAAI,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC;IACrD,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;SAC7D;aAAM;YACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;SAC3D;QACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,kBAAkB,CAAC,CAAC;QAChB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;SAChC;IACL,CAAC;IAED,oBAAoB;QAChB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;YAClE,IAAI,GAAG,EAAE;gBACL,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;oBACpC,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,sEAAY,EAAE,CAAC;iBAC1D;gBACD,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,GAAG,GAAG,CAAC,iBAAiB,CAAC;aACnE;YACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;QACD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IAED,QAAQ,CAAC,IAAI;QACT,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,IAAI,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;SAC3C;IACL,CAAC;IAED,QAAQ,CAAC,MAAM;QACX,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE;YAC5C,OAAO,oEAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACtC;QACD,OAAO,IAAI,4DAAK,EAAE,CAAC;IACvB,CAAC;IAED,QAAQ,CAAC,GAAG,EAAE,EAAE;QACZ,IAAI,GAAG,IAAI,EAAE,EAAE;YACX,GAAG,CAAC,KAAK,GAAG,yEAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;SAC3C;IACL,CAAC;IAED,WAAW,CAAC,MAAsB;QAC9B,IAAI,MAAM,EAAE;YACR,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;YAC5C,IAAI,YAAY,EAAE;gBACd,MAAM,CAAC,KAAK,GAAG,yEAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;gBACtD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBACnC,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC;aACjC;SACJ;IACL,CAAC;IAED,UAAU,CAAC,MAAsB;QAC7B,IAAI,MAAM,EAAE;YACR,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;SACtC;IACL,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE;YACpE,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,WAAW,EAAE;gBACrD,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,yEAAe,EAAE,CAAC,CAAC;aACnF;iBAAM;gBACH,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,WAAW,GAAG,CAAC,IAAI,yEAAe,EAAE,CAAC,CAAC;aACjF;YACD,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC;SACrD;IACL,CAAC;IAED,gBAAgB,CAAC,CAAC;QACd,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,WAAW,EAAE;YAC3H,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC;SACrD;IACL,CAAC;IAED,mBAAmB;QACf,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,CAAC,gBAAgB,GAAG,UAAU,IAAI,UAAU,CAAC,UAAU;YACvD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,CAAC,CAAC;IACjG,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;gBACtC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACxD;iBAAM;gBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,CAAC,SAAS,CAAC,CAAC;aACtD;YACD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;SACtC;IACL,CAAC;IACD,YAAY;QACR,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,EAAE,CAAC;YAC1C,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;SACtC;IACL,CAAC;IACD,gBAAgB,CAAC,KAAK;QAClB,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,YAAY,EAAE;YAC/G,wEAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;YAC/F,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;SACtC;IACL,CAAC;IACD,mBAAmB,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,MAAM,EAAE;YACpH,IAAI,KAAK,IAAI,IAAI,EAAE;gBACf,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACrD;iBAAM;gBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,yEAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;aACtF;YACD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;SACtC;IACL,CAAC;IACD,eAAe,CAAC,GAAG;QACf,OAAO,oEAAa,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,sBAAsB,CAAC,EAAE;QACrB,IAAI,EAAE,EAAE;YACJ,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,IAAI,IAAI,EAAE;gBAC3C,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,sEAAY,EAAE,CAAC;aAC1D;SACJ;aAAM;YACH,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC;SAC5C;IACL,CAAC;IAED,2BAA2B,CAAC,EAAE;QAC1B,IAAI,EAAE,EAAE;YACJ,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC5F,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,CAAC,IAAI,gFAAsB,EAAE,CAAC,CAAC;aACtE;iBAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;gBACrD,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,gFAAsB,EAAE,CAAC;aACvE;SACJ;aAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1F,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE;gBAClJ,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC;aAC5C;iBAAM;gBACH,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;aAC/C;SACJ;IACL,CAAC;IAED,4BAA4B,CAAC,EAAE;QAC3B,IAAI,EAAE,EAAE;YACJ,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;gBACnC,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;oBAC/C,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,gFAAsB,EAAE,CAAC,CAAC;iBAC5E;qBAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;oBACtD,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,gFAAsB,EAAE,CAAC,CAAC;iBACxE;aACJ;iBAAM;gBACH,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,gFAAsB,EAAE,CAAC,CAAC;aAC5E;SACJ;aAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1F,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;gBAC9C,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC;aAC5C;iBAAM;gBACH,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;aAC/C;SACJ;IACL,CAAC;;;;;;AAznBQ,aAAa;IANzB,yDAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,uEAAqC;QAErC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,aAAa;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzB4G;AAC5E;AAC+B;AACV;AACZ;AACT;IAK7C,6BAA6B,SAA7B,6BAA6B;;AAA7B,6BAA6B;IAHzC,wDAAS,CAAC;QACP,QAAQ,EAAE,wBAAwB;KACrC,CAAC;GACW,6BAA6B;AAAA;IAQ7B,iBAAiB,SAAjB,iBAAiB;IAsK1B;QAhKA,kBAAa,GAAG,CAAC,CAAC,CAAC;QAuBT,iBAAY,GAAG,IAAI,uDAAY,EAAO;QAetC,sBAAiB,GAAG,IAAI,uDAAY,EAAO;QAe3C,kBAAa,GAAG,IAAI,uDAAY,EAAO;QAevC,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QACtD,YAAY;QAEZ,mBAAmB;QACnB,mBAAc,GAAG,KAAK,CAAC;QAWb,oBAAe,GAAG,IAAI,uDAAY,EAAO;QACnD,YAAY;QAEZ,kBAAkB;QAClB,kBAAa,GAAG,KAAK,CAAC;QAWZ,mBAAc,GAAG,IAAI,uDAAY,EAAO;QAClD,YAAY;QAEZ,uBAAuB;QACvB,uBAAkB,GAAG,KAAK,CAAC;QAWjB,wBAAmB,GAAG,IAAI,uDAAY,EAAO;QACvD,YAAY;QAEZ,oBAAoB;QACpB,oBAAe,GAAG,IAAI,CAAC;QAWb,qBAAgB,GAAG,IAAI,uDAAY,EAAO;QACpD,YAAY;QAEZ,sBAAsB;QACtB,sBAAiB,GAAG,KAAK,CAAC;QAWhB,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QAY5C,wBAAmB,GAAG,IAAI,uDAAY,EAAU;QAChD,kBAAa,GAAG,IAAI,uDAAY,EAAO;QAK7C,IAAI,CAAC,WAAW,GAAG,8EAA4B,CAAC,qEAAU,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc,GAAG,8EAA4B,CAAC,iFAAkB,CAAC,CAAC;IAC3E,CAAC;QA7JG,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACV,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;QACxB,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,UAAU,GAAG,oEAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,GAAG,CAAC,SAAS,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACzD,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;aAC3C;SACJ;aAAM;YACH,IAAI,CAAC,UAAU,GAAG,IAAI,4DAAK,EAAE,CAAC;SACjC;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;QASG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;QASG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;QASG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;QASG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;QASG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;QASG,aAAa;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;QAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC3D,CAAC;QASG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;QASG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;IAID,IAAI,kBAAkB;QAClB,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,kBAAkB,CAAC,GAAG;QACtB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7C;IACL,CAAC;IAaD,aAAa,CAAC,GAAW;QACrB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,MAAM;QACF,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,YAAY,CAAC,KAAK;QACd,IAAI,KAAK,YAAY,4DAAK,EAAE;YACxB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC7B;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,YAAY,YAAY,4DAAK,EAAE;YACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;YACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,yEAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBACnE,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;aACtC;SACJ;IACL,CAAC;IAED,UAAU;QACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;SACtC;IACL,CAAC;IAED,YAAY,CAAC,EAAE;QACX,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,EAAE,IAAI,OAAO,EAAE,CAAC,KAAK,KAAK,QAAQ,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,EAAE;gBACrD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;oBACxB,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,2EAAiB,EAAE,CAAC;iBACnD;gBACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;aACzC;iBAAM;gBACH,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;aAChC;YACD,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;SAC1C;IACL,CAAC;;;;qBA9MA,gDAAK;2BAkBL,iDAAM;0BAMN,gDAAK;gCASL,iDAAM;sBAMN,gDAAK;4BASL,iDAAM;2BAMN,gDAAK;iCASL,iDAAM;wBAMN,gDAAK;8BASL,iDAAM;uBAMN,gDAAK;6BASL,iDAAM;4BAMN,gDAAK;kCASL,iDAAM;yBAMN,gDAAK;+BASL,iDAAM;2BAMN,gDAAK;iCASL,iDAAM;kCAYN,iDAAM;4BACN,iDAAM;2CAEN,uDAAY,SAAC,6BAA6B,EAAE,EAAE,IAAI,EAAE,sDAAW,EAAE;;AApKzD,iBAAiB;IAN7B,wDAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,2EAAyC;QAEzC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,iBAAiB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AClBgG;AAC7D;AACA;IAQpD,uBAAuB,SAAvB,uBAAwB,SAAQ,yEAAY;IAmBrD,YAAY,KAAwB;QAChC,KAAK,CAAC,KAAK,CAAC,CAAC;QANP,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QAOlD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,4FAAsC,CAAC,CAAC,MAAM,EAAE,EAAE;YACtE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;QApBG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;IAgBD,SAAS,CAAC,MAAM;QACZ,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC9B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;iBACxC;gBACD,IAAI,IAAI,CAAC,WAAW,IAAI,WAAW,EAAE;oBACjC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACrB;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;;;;;2BArCA,gDAAK;iCASL,iDAAM;;AAdE,uBAAuB;IANnC,wDAAS,CAAC;QACP,QAAQ,EAAE,2BAA2B;QACrC,iFAA+C;QAE/C,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,uBAAuB;AAAA;IAkDvB,+BAA+B,SAA/B,+BAAgC,SAAQ,yEAAY;;AAApD,+BAA+B;IAL3C,wDAAS,CAAC;QACP,QAAQ,EAAE,oCAAoC;QAC9C,QAAQ,EAAE,yFAAyF;QACnG,eAAe,EAAE,yEAA8B;KAClD,CAAC;GACW,+BAA+B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;AC5D4D;AAC9C;AACW;IAQxD,cAAc,SAAd,cAAc;IAoBzB;QALU,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QACtD,YAAY;QAEZ,iBAAY,GAAG,EAAE,CAAC;QAGhB,IAAI,CAAC,YAAY,GAAG,8EAA4B,CAAC,uEAAW,CAAC,CAAC;IAChE,CAAC;QAfG,YAAY;QACd,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAClB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACvD,CAAC;IAUD,QAAQ;IAEN,CAAC;IAGD,kBAAkB;QACd,QAAQ,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;YACxC,KAAK,4EAAgB;gBAAE,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,MAAM,CAAC;gBAAC,MAAM;YAC1E,KAAK,4EAAgB;gBAAE,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,MAAM,CAAC;gBAAC,MAAM;YAC1E,KAAK,8EAAkB;gBAAE,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,QAAQ,CAAC;gBAAC,MAAM;YAC9E,KAAK,8EAAkB;gBAAE,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,QAAQ,CAAC;gBAAC,MAAM;SACjF;IAGL,CAAC;;;;2BA/BF,gDAAK;iCASL,iDAAM;;AAfI,cAAc;IAN1B,wDAAS,CAAC;QACT,QAAQ,EAAE,kBAAkB;QAC5B,wEAAsC;QAEpC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,cAAc;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVmE;AAEvC;AACuE;AACrD;AAClB;AACqC;AAC3B;AACI;AACf;AACO;AACZ;AACK;AACQ;AACe;IAOhE,eAAe,SAAf,eAAe;IAC1B,YAAoB,sBAA8C,EAAU,KAAwB;QAAhF,2BAAsB,GAAtB,sBAAsB,CAAwB;QAAU,UAAK,GAAL,KAAK,CAAmB;QACpG,UAAK,GAAG,EAAE,CAAC;QACX,mBAAc,GAAG,EAAE,CAAC;IAFmF,CAAC;IAGxG,QAAQ;QACN,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,sFAAqB,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1B,MAAM,IAAI,GAAG;gBACX,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,CAAC,CAAC,OAAO,CAAC;gBACvC,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,SAAS;aACjB,CAAC;YACF,IAAI,OAAO,CAAC,CAAC,YAAY,KAAK,UAAU,EAAE;gBACxC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;aACjC;YACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YAClE,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,MAAM;QACtB,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;YAC1D,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC5B;IACH,CAAC;;;;;;AAhCU,eAAe;IAL3B,yDAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;QAC7B,QAAQ,EAAE,qGAAqG;QAC/G,eAAe,EAAE,0EAA8B;KAChD,CAAC;GACW,eAAe;AAAA;IAwCN,eAAe,SAAf,eAAgB,SAAQ,8FAAc;IAS1D,YACY,eAAgC,EAChC,WAAwB,EAClC,KAAwB,EAChB,SAA2B,EACzB,sBAA8C;QAExD,KAAK,CAAC,KAAK,CAAC,CAAC;QANH,oBAAe,GAAf,eAAe,CAAiB;QAChC,gBAAW,GAAX,WAAW,CAAa;QAE1B,cAAS,GAAT,SAAS,CAAkB;QACzB,2BAAsB,GAAtB,sBAAsB,CAAwB;QAb1D,UAAK,GAAG,EAAE,CAAC;QACX,aAAQ,GAAG,KAAK,CAAC;QAKjB,kBAAa,GAAG,EAAE,CAAC;IAUnB,CAAC;IAED,QAAQ;QACN,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,sFAAgC,CAAC,CAAC,EAAE,EAAE,EAAE;YACtC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACrB,CAAC,CAAC,CACH,CAAC;QACF,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE;YACjF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB;IACnB,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO;QAC5B,IAAI,WAAW,GAAG,wFAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,WAAW,EAAE;YACf,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvC,IAAI,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE;gBACjC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,wFAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACjE;SACF;QACD,IAAI,CAAC,IAAI,GAAG,oFAA+B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACrG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,KAAK,CAAC,eAAe,EAAE,CAAC;IAC1B,CAAC;IACD,OAAO,CAAC,KAAK;QACX,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,oFAA8B,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IACD,aAAa,CAAC,IAAI;QAChB,IAAI,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE;YAC1B,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,YAAY;IAEZ,gBAAgB;IAChB,WAAW;QACT,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACvD;iBAAM;gBACL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;aACjC;SACF;IACH,CAAC;IAED,eAAe,CAAC,YAAmB;QACjC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,EAAE;YACtC,OAAO,YAAY,CAAC;SACrB;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAE/C,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,IAAI;QACP,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACvB,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE;oBACzB,OAAO,CAAC,CAAC;iBACV;gBACD,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE;oBACzB,OAAO,CAAC,CAAC,CAAC;iBACX;aACF;YACD,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE;oBAC3B,OAAO,CAAC,CAAC;iBACV;gBACD,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE;oBAC3B,OAAO,CAAC,CAAC,CAAC;iBACX;aACF;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;;;;;;;;;AAjHmB,eAAe;IALpC,yDAAS,CAAC;QACT,QAAQ,EAAE,6BAA6B;QACvC,iFAA+C;;KAEhD,CAAC;GACoB,eAAe;AAAA;IA0Hf,sBAAsB,SAAtB,sBAAuB,SAAQ,eAAe;IAGlE,QAAQ;QACN,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,iGAAuC,EAAE,CAAC;QACvD,IAAI,UAAU,GAAG,6DAAQ,CAAC;QAC1B,QAAQ,IAAI,EAAE;YACZ,KAAK,UAAU;gBACb,UAAU,GAAG,8DAAS,CAAC;gBACvB,MAAM;YACR,KAAK,QAAQ;gBACX,UAAU,GAAG,gEAAW,CAAC;gBACzB,MAAM;YACR,KAAK,QAAQ;gBACX,UAAU,GAAG,+DAAU,CAAC;gBACxB,MAAM;YACR,KAAK,UAAU;gBACb,UAAU,GAAG,6DAAQ,CAAC;gBACtB,MAAM;YACR,KAAK,QAAQ;gBACX,UAAU,GAAG,6DAAQ,CAAC;gBACtB,MAAM;YACR,KAAK,QAAQ;gBACX,UAAU,GAAG,gEAAW,CAAC;gBACzB,MAAM;YACR,KAAK,SAAS;gBACZ,UAAU,GAAG,6DAAQ,CAAC;gBACtB,MAAM;SACT;QACD,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,yEAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,MAAM,GAAG,GAAG,yEAAQ,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,6DAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAC7F,KAAK,CAAC,IAAI,CAAC;oBACT,GAAG,EAAE,GAAG;oBACR,OAAO,EAAE,GAAG,CAAC,KAAK;oBAClB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO;oBAC5B,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,OAAO,EAAE,GAAG,CAAC,IAAI;oBACjB,KAAK,EAAE,GAAG,CAAC,KAAK;iBACjB,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;;AApDmB,sBAAsB;IAL3C,yDAAS,CAAC;QACT,QAAQ,EAAE,2BAA2B;QACrC,iFAA+C;;KAEhD,CAAC;GACoB,sBAAsB;AAAA;IA4D/B,iBAAiB,SAAjB,iBAAkB,SAAQ,sBAAsB;IAC3D,KAAK;QACH,OAAO,UAAU,CAAC;IACpB,CAAC;;AAHU,iBAAiB;IAL7B,yDAAS,CAAC;QACT,QAAQ,EAAE,qCAAqC;QAC/C,iFAA+C;;KAEhD,CAAC;GACW,iBAAiB;AAAA;IAUjB,aAAa,SAAb,aAAc,SAAQ,sBAAsB;IACvD,KAAK;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;;AAHU,aAAa;IALzB,yDAAS,CAAC;QACT,QAAQ,EAAE,qCAAqC;QAC/C,iFAA+C;;KAEhD,CAAC;GACW,aAAa;AAAA;IAUb,aAAa,SAAb,aAAc,SAAQ,sBAAsB;IACvD,KAAK;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;;AAHU,aAAa;IALzB,yDAAS,CAAC;QACT,QAAQ,EAAE,qCAAqC;QAC/C,iFAA+C;;KAEhD,CAAC;GACW,aAAa;AAAA;IAUb,cAAc,SAAd,cAAe,SAAQ,sBAAsB;IACxD,KAAK;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;;AAHU,cAAc;IAL1B,yDAAS,CAAC;QACT,QAAQ,EAAE,qCAAqC;QAC/C,iFAA+C;;KAEhD,CAAC;GACW,cAAc;AAAA;IAUd,cAAc,SAAd,cAAe,SAAQ,sBAAsB;IACxD,KAAK;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;;AAHU,cAAc;IAL1B,yDAAS,CAAC;QACT,QAAQ,EAAE,qCAAqC;QAC/C,iFAA+C;;KAEhD,CAAC;GACW,cAAc;AAAA;IAWd,eAAe,SAAf,eAAgB,SAAQ,sBAAsB;IACzD,KAAK;QACH,OAAO,eAAe,CAAC;IACzB,CAAC;;AAHU,eAAe;IAL3B,yDAAS,CAAC;QACT,QAAQ,EAAE,mCAAmC;QAC7C,iFAA+C;;KAEhD,CAAC;GACW,eAAe;AAAA;IAWf,eAAe,SAAf,eAAgB,SAAQ,sBAAsB;IACzD,KAAK;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;;AAHU,eAAe;IAL3B,yDAAS,CAAC;QACT,QAAQ,EAAE,mCAAmC;QAC7C,iFAA+C;;KAEhD,CAAC;GACW,eAAe;AAAA;IAWf,iBAAiB,SAAjB,iBAAkB,SAAQ,eAAe;IACpD,MAAM,CAAC,YAAY;QACjB,MAAM,IAAI,GAAG,iGAAuC,EAAE,CAAC;QACvD,OAAO,IAAI,KAAK,QAAQ,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE;YACvD,MAAM,YAAY,GAAQ,gEAAY,CAAC,wDAAM,EAAE,SAAS,CAAC,CAAC;YAC1D,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACzB,KAAK,CAAC,IAAI,CAAC;oBACT,GAAG,EAAE,CAAC,CAAC,WAAW;oBAClB,OAAO,EAAE,CAAC,CAAC,IAAI;oBACf,OAAO,EAAE,CAAC;oBACV,IAAI,EAAE,aAAa;iBACpB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;;AAvBU,iBAAiB;IAL7B,yDAAS,CAAC;QACT,QAAQ,EAAE,qCAAqC;QAC/C,iFAA+C;;KAEhD,CAAC;GACW,iBAAiB;AAAA;IA+BjB,eAAe,SAAf,eAAgB,SAAQ,eAAe;IAClD,MAAM,CAAC,YAAY;QACjB,MAAM,IAAI,GAAG,iGAAuC,EAAE,CAAC;QACvD,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,CAAC;IAChD,CAAC;IAED,QAAQ;QACN,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;YACnD,MAAM,UAAU,GAAQ,gEAAY,CAAC,wDAAM,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACvB,KAAK,CAAC,IAAI,CAAC;oBACT,GAAG,EAAE,CAAC,CAAC,WAAW;oBAClB,OAAO,EAAE,CAAC,CAAC,IAAI;oBACf,OAAO,EAAE,CAAC;iBACX,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,+EAAc,CAAC,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnB,MAAM,MAAM,GAAG,+EAAc,CAAC,GAAG,CAAC,CAAC;gBACnC,IAAI,MAAM,EAAE;oBACV,IAAI,OAAO,MAAM,CAAC,kBAAkB,KAAK,SAAS,IAAI,MAAM,CAAC,kBAAkB,EAAE;wBAC/E,OAAO;qBACR;oBACD,MAAM,MAAM,GAAG,IAAI,wDAAM,EAAE,CAAC;oBAC5B,MAAM,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC;oBACjC,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;oBAC1B,MAAM,CAAC,iBAAiB,CAAC,GAAG,GAAG,CAAC;oBAChC,KAAK,CAAC,IAAI,CAAC;wBACT,GAAG,EAAE,QAAQ;wBACb,OAAO,EAAE,MAAM,CAAC,KAAK;wBACrB,OAAO,EAAE,MAAM;wBACf,IAAI,EAAE,MAAM,CAAC,IAAI;qBAClB,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;;AA1CU,eAAe;IAL3B,yDAAS,CAAC;QACT,QAAQ,EAAE,mCAAmC;QAC7C,iFAA+C;;KAEhD,CAAC;GACW,eAAe;AAAA;IAkDf,uBAAuB,SAAvB,uBAAwB,SAAQ,sBAAsB;IACjE,KAAK;QACH,OAAO,eAAe,CAAC;IACzB,CAAC;;AAHU,uBAAuB;IALnC,yDAAS,CAAC;QACT,QAAQ,EAAE,2BAA2B;QACrC,iFAA+C;;KAEhD,CAAC;GACW,uBAAuB;AAAA;IAWvB,sBAAsB,SAAtB,sBAAuB,SAAQ,sBAAsB;IAChE,KAAK;QACH,OAAO,cAAc,CAAC;IACxB,CAAC;;AAHU,sBAAsB;IALlC,yDAAS,CAAC;QACT,QAAQ,EAAE,0BAA0B;QACpC,iFAA+C;;KAEhD,CAAC;GACW,sBAAsB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACxZmD;AACjD;AAC4B;AACA;IAQpD,mBAAmB,SAAnB,mBAAoB,SAAQ,yEAAY;IAqBjD,YAAY,KAAwB;QAChC,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,2FAAqC,EAAE,CAAC;IAC1D,CAAC;IApBD,MAAM,CAAC,aAAa,CAAC,QAAQ;QACzB,MAAM,QAAQ,GAAG,yFAAmC,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,2FAAqC,EAAE,CAAC;QACvD,IAAI,QAAQ,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,UAAU,IAAI,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,EAAE;YAC9F,IAAI,QAAQ,CAAC,WAAW,KAAK,UAAU,IAAI,QAAQ,CAAC,WAAW,KAAK,QAAQ,EAAE;gBAC1E,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;gBACxB,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;aAC5B;iBAAM;gBACH,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;gBACzB,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;aAC7B;SACJ;aAAM;YACH,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;YACzB,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;SAC7B;IACL,CAAC;IAQD,SAAS;QACL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,KAAK,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,KAAK,QAAQ,EAAE;gBAC5F,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;oBACjC,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,EAAE,CAAC;iBACvC;gBACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;aACnC;SACJ;IACL,CAAC;IAED,GAAG;QACC,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,MAAM,IAAI,GAAG;gBACT,EAAE,EAAE,oDAAS,EAAE;gBACf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,IAAI;aAChB,CAAC;YACF,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjE,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChD,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;oBACxD,IAAI,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;iBAC1B;gBACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvC;iBAAM;gBACH,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC;aACrC;YACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;IACL,CAAC;IAED,MAAM;QACF,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;YAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACnE,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC1C,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE;oBACzC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;iBACxD;qBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC5C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iBACtF;qBAAM;oBACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;iBAC7B;gBACD,IAAI,CAAC,cAAc,EAAE,CAAC;aACzB;SACJ;IACL,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,2FAAqC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SACnG;IACL,CAAC;;;;;AArFQ,mBAAmB;IAN/B,wDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,6EAA2C;QAE3C,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,mBAAmB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXmC;AACL;AACJ;AACO;AACA;IAQpD,kBAAkB,SAAlB,kBAAmB,SAAQ,yEAAY;IAEhD,IAAI,UAAU;QACV,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YACrD,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;SAC5F;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;IAE3B,CAAC;IACD,iBAAiB;QACb,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3B,IAAI,GAAG,EAAE;YACL,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,IAAI,GAAG,CAAC,EAAE,EAAE;gBAC7C,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC3C,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aACnC;YACD,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,KAAK,sCAAsC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;YACvG,IAAI,IAAI,CAAC,iBAAiB,CAAC,YAAY,IAAI,IAAI,EAAE;gBAC7C,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC3C,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACrC;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,cAAc,IAAI,GAAG,CAAC,IAAI,EAAE;gBACnD,IAAI,CAAC,iBAAiB,CAAC,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC;gBACjD,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aACvC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,sCAAsC,EAAE;gBACrD,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,IAAI,EAAE;oBACvC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC;oBACrC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC/B;aACJ;iBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,IAAI,EAAE;gBAC9C,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBACrC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC/B;YACD,IAAI,GAAG,CAAC,MAAM,EAAE;gBACZ,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,IAAI,EAAE;oBACzC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACvC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBACjC;aACJ;iBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,KAAK,EAAE;gBACjD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACxC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACjC;YACD,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;gBAChC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE;oBACzC,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7C,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC7B,IAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;4BAC3D,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;yBACxC;6BAAM;4BACH,IAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;4BAC9C,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;yBACxC;qBACJ;yBAAM;wBACH,IAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,KAAK,CAAC;wBAC/C,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;qBACxC;iBACJ;aACJ;iBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,eAAe,IAAI,IAAI,EAAE;gBACvD,IAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC9C,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aACxC;YACD,IAAI,GAAG,CAAC,WAAW,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE;gBACpC,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,IAAI,IAAI,EAAE;oBAC3C,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC;oBACzC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBACnC;aACJ;iBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,IAAI,IAAI,EAAE;gBAClD,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;gBACzC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aACnC;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,EAAE;gBACnD,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;gBACjD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAClC;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE;gBACjD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;gBAC/C,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACjC;SACJ;aAAM;YACH,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,IAAI,IAAI,EAAE;gBAC3C,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC;gBACzC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aACnC;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,YAAY,IAAI,IAAI,EAAE;gBAC7C,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC3C,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACrC;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,cAAc,IAAI,IAAI,EAAE;gBAC/C,IAAI,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC7C,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aACvC;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,IAAI,EAAE;gBACvC,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBACrC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC/B;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,KAAK,EAAE;gBAC1C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACxC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACjC;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,eAAe,IAAI,IAAI,EAAE;gBAChD,IAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC9C,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aACxC;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,IAAI,IAAI,EAAE;gBAC3C,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;gBACzC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aACnC;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,IAAI,KAAK,EAAE;gBAC3C,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,KAAK,CAAC;gBACzC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAClC;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,KAAK,EAAE;gBAC1C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACxC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACjC;SACJ;QACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;SACrC;QACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,oBAAoB,KAAK,UAAU,EAAE;YAC7G,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;SACzD;QACD,sFAAgC,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAID,MAAM,CAAC,aAAa,CAAC,QAAQ;QACzB,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;QACzB,MAAM,QAAQ,GAAG,yFAAmC,EAAE,CAAC;QACvD,IAAI,QAAQ,EAAE;YACV,MAAM,MAAM,GAAG,0EAAsB,EAAE,CAAC;YACxC,MAAM,UAAU,GAAG,oFAAgC,CAAC,MAAM,CAAC,CAAC;YAC5D,kBAAkB,CAAC,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBACnE,IAAI,CAAC,EAAE;oBACH,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;oBACxB,qFAAiC,CAAC,IAAI,CAAC,CAAC;iBAC3C;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ;QAC9C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,IAAI,MAAM,IAAI,QAAQ,IAAI,MAAM,KAAK,QAAQ,EAAE;gBAC3C,kFAAgC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC/D,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBACrD,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,sCAAsC;4BAC7F,QAAQ,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC,GAAG,EAAE;4BACvC,OAAO,CAAC,IAAI,CAAC,CAAC;yBACjB;6BAAM;4BACH,OAAO,CAAC,MAAM,CAAC,CAAC;yBACnB;qBACJ;yBAAM;wBACH,OAAO,CAAC,IAAI,CAAC,CAAC;qBACjB;gBACL,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC;aACjB;QACL,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,QAAQ;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,4FAAsC,CAAC,CAAC,MAAM,EAAE,EAAE;YACtE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,SAAS;QACL,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAED,mBAAmB;QACf,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,UAAU,GAAG,oFAAgC,CAAC,MAAM,CAAC,CAAC;QAC5D,kBAAkB,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACjF,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;;AA9LQ,kBAAkB;IAN9B,wDAAS,CAAC;QACP,QAAQ,EAAE,sBAAsB;QAChC,4EAA0C;QAE1C,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZuG;AAC/E;AACqC;AAChC;AACoB;AACqB;AAC3C;AACA;AACU;AACG;AACA;AACd;AACU;AACQ;AACR;AACA;AACT;AACW;AACJ;AACF;AACE;AACiC;IAOrF,wBAAwB,SAAxB,wBAAyB,SAAQ,8FAAc;IAkExD,YAAY,KAAwB,EAAU,MAAqB;QAC/D,KAAK,CAAC,KAAK,CAAC,CAAC;QAD6B,WAAM,GAAN,MAAM,CAAe;QAnBzD,uBAAkB,GAAG,IAAI,wDAAY,EAAO;QActD,gBAAW,GAAG,EAAE,CAAC;QACjB,gBAAW,GAAG,EAAE,CAAC;QACjB,oBAAe,GAAG,EAAE,CAAC;QACrB,gBAAW,GAAG,EAAE,CAAC;QACjB,mBAAc,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAG9B,IAAI,CAAC,eAAe,GAAG,+EAA4B,CAAC,8EAAc,CAAC,CAAC;QACpE,IAAI,CAAC,WAAW,GAAG,+EAA4B,CAAC,sEAAU,CAAC,CAAC;QAC5D,IAAI,CAAC,WAAW,GAAG,+EAA4B,CAAC,sEAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,qFAAyB,CAAC,CAAC;QAC7G,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,GAAG,+EAA4B,CAAC,sEAAU,CAAC,CAAC;IAEhE,CAAC;QApEG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,IAAI,IAAI,EAAE;YACrE,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,gFAAoB,CAAC;SAC5D;QACD,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,cAAc,IAAI,IAAI,EAAE;YACzE,IAAI,CAAC,iBAAiB,CAAC,cAAc,GAAG,qFAAqB,CAAC;SACjE;QACD,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,IAAI,IAAI,EAAE;YACrE,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,6EAAiB,CAAC;SACzD;QACD,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,IAAI,IAAI,EAAE;YACrE,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,KAAK,CAAC;SAC7C;QACD,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,IAAI,EAAE;YACnE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,KAAK,CAAC;SAC3C;QAED,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,KAAK,QAAQ,EAAE;YACvD,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,EAAE,CAAC;SAC1C;QACD,IAAI,IAAI,CAAC,yBAAyB,IAAI,IAAI,EAAE;YACxC,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,CAAC;YAC7C,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;SACzC;QACD,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACnF,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC1B,IAAI,IAAI,KAAK,UAAU,EAAE;oBACrB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,KAAK,CAAC;iBAC3C;aACJ;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,EAAE;oBAClC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,KAAK,CAAC;iBAC3C;aACJ;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAIM,MAAM,CAAC,aAAa,CAAC,QAAQ;QAChC,MAAM,QAAQ,GAAG,0FAAmC,EAAE,CAAC;QACvD,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,KAAK,WAAW,EAAE;YAClD,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YACxB,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;SAC5B;aAAM;YACH,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;YACzB,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;SAC7B;IACL,CAAC;IAkBD,iBAAiB;QACb,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,IAAI,4EAAgB;YAC/E,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACrD,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,OAAO,EAAE;gBAC3C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,OAAO,CAAC;gBAC1C,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;aACnC;iBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,OAAO,EAAE;gBAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACjD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACvC,MAAM,MAAM,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;oBACvC,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,MAAM,EAAE;wBAC1C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,OAAO,CAAC;wBAC1C,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;wBAChC,OAAO;qBACV;yBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,OAAO,EAAE;wBAClD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,OAAO,CAAC;wBAC1C,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;wBAChC,OAAO;qBACV;yBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,OAAO,EAAE;wBACnD,OAAO;qBACV;oBACD,OAAO,GAAG,OAAO,CAAC;iBACrB;gBACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,OAAO,EAAE;oBAC3C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,OAAO,CAAC;iBAC7C;aACJ;SACJ;IACL,CAAC;;;;;;;2BArGA,iDAAK;iCA0CL,kDAAM;;AA/CE,wBAAwB;IANpC,yDAAS,CAAC;QACP,QAAQ,EAAE,6BAA6B;QACvC,0EAAwC;QAExC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,wBAAwB;AAAA;IAoHxB,uBAAuB,SAAvB,uBAAwB,SAAQ,8FAAc;IA+EvD,YAAY,KAAwB,EAAU,MAAqB,EACvD,eAAgC,EAAE,SAA2B,EAAU,mBAAkD;QACjI,KAAK,CAAC,KAAK,CAAC,CAAC;QAF6B,WAAM,GAAN,MAAM,CAAe;QACvD,oBAAe,GAAf,eAAe,CAAiB;QAAuC,wBAAmB,GAAnB,mBAAmB,CAA+B;QAtD3H,uBAAkB,GAAG,IAAI,wDAAY,EAAO;QA4B5C,0BAAqB,GAAG,IAAI,wDAAY,EAAO;QAoBzD,eAAU,GAAG,EAAE,CAAC;QAChB,aAAQ,GAAG,EAAE,CAAC;QAOV,IAAI,CAAC,UAAU,GAAG,+EAA4B,CAAC,4DAAK,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACf,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC;YAC7C,IAAI,EAAE,IAAI;SACb,CAAC,CAAC;IACP,CAAC;QAlFG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7E,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SAClG;QACD,IAAI,IAAI,CAAC,8BAA8B,IAAI,IAAI,EAAE;YAC7C,IAAI,CAAC,8BAA8B,CAAC,WAAW,EAAE,CAAC;YAClD,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC;SAC9C;QACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE;YAC3C,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACnG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;QAQG,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE;YAC1H,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9B,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC1C,OAAO;wBACH,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;wBACzB,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;qBAC1B;gBACL,CAAC,CAAC;aACL;YACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAChD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;YACtD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC/D,CAAC;IAGD,YAAY;IAEL,MAAM,CAAC,aAAa,CAAC,QAAQ;QAEhC,MAAM,QAAQ,GAAG,0FAAmC,EAAE,CAAC;QACvD,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,KAAK,WAAW,EAAE;YAClD,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YACxB,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;SAC5B;aAAM;YACH,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;YACzB,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;SAC7B;IACL,CAAC;IAsBD,QAAQ;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC9C,IAAI,CAAC,EAAE;gBACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aAC5B;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACD,WAAW;QACP,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IACD,aAAa;QACT,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;YACnD,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,uEAAU,EAAE,CAAC;SAChD;IACL,CAAC;IACD,mBAAmB;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE;YACpB,uFAAoC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACjE,IAAI,MAAM,EAAE;oBACR,gFAA8B,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;wBAC5D,IAAI,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE;4BAC/B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;yBAChC;oBACL,CAAC,CAAC,CAAC;iBACN;qBAAM;oBACH,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;iBAC9B;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IACD,WAAW;QACP,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IACD,gBAAgB,CAAC,GAAG;QAChB,mHAA4B,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IACD,eAAe;QACX,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;IAID,UAAU,CAAC,cAAc;QACrB,cAAc,CAAC,KAAK,GAAG,IAAI,uEAAU,EAAE,CAAC;QACxC,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IACD,UAAU,CAAC,KAAK;QACZ,IAAI,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC;QAC9B,IAAI,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QACrC,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YACjD,IAAI,GAAG,GAAG,cAAc,CAAC;YACzB,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;YAC7B,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;YACxB,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;YACxB,GAAG,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAC3D,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE;gBACjC,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,EAAE,CAAC;aACvC;YACD,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;SAC3C;aAAM;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3F,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;SAC1F;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACzF,sDAAsD;QACtD,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IACD,iBAAiB,CAAC,KAAK;QACnB,MAAM,EAAC,KAAK,EAAC,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IACD,gBAAgB,CAAC,KAAK;QAClB,MAAM,EAAC,KAAK,EAAC,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IACD,iBAAiB,CAAC,IAAI;QAClB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;YACrB,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YACjC,IAAI,MAAM,EAAE;gBACR,OAAO,MAAM,CAAC;aACjB;YACD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBACpB,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;aACvD;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,cAAc;QACV,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,kGAA0B,CAAC;gBACvB,WAAW,EAAE,2BAA2B;gBACxC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE;gBACzC,KAAK,EAAE,eAAe;gBACtB,SAAS,EAAE,KAAK;aACnB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBACV,IAAI,CAAC,IAAI,6EAAe,EAAE;oBACtB,IAAI,CAAC,eAAe,EAAE,CAAC;iBAC1B;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;;;;;;;;;;2BAnMA,iDAAK;iCAqBL,kDAAM;8BAKN,iDAAK;oCAuBL,kDAAM;;AAtDE,uBAAuB;IANnC,yDAAS,CAAC;QACP,QAAQ,EAAE,4BAA4B;QACtC,kFAAgD;QAEhD,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,uBAAuB;AAAA;IAgNvB,2BAA2B,SAA3B,2BAA2B;;QAGpC,WAAM,GAAG,EAAE,CAAC;QACZ,UAAK,GAAG,EAAE,CAAC;QAEX,aAAQ,GAAG,KAAK,CAAC;QACjB,WAAM,GAAG,KAAK,CAAC;QACf,YAAO,GAAG,KAAK,CAAC;IA2IpB,CAAC;IAxIG,QAAQ;QACJ,IAAI,CAAC,OAAO,GAAG,qFAA+B,CAAC,CAAC,MAAM,EAAE,EAAE;YACtD,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,MAAM,EAAE;gBACR,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACpB,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3D,CAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YAC3C,MAAM,MAAM,GAAG,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACpC,QAAQ,IAAI,CAAC,UAAU,EAAE;gBACrB,KAAK,sCAAsC;oBACvC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACpB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,sCAAsC,EAAE;wBAC9D,2EAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;4BACtD,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACb,MAAM,CAAC,IAAI,CAAC;oCACR,GAAG,EAAE,CAAC,CAAC,KAAK;oCACZ,OAAO,EAAE,CAAC,CAAC,OAAO;oCAClB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;iCAC3B,CAAC,CAAC;4BACP,CAAC,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;qBACN;oBACD,MAAM;gBACV,KAAK,sCAAsC;oBACvC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC;wBACR,GAAG,EAAE,MAAM;wBACX,OAAO,EAAE,MAAM;wBACf,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC;qBAC1B,CAAC,CAAC;oBACH,MAAM,CAAC,IAAI,CAAC;wBACR,GAAG,EAAE,OAAO;wBACZ,OAAO,EAAE,OAAO;wBAChB,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC;qBAC3B,CAAC,CAAC;oBACH,MAAM;gBACV,KAAK,sCAAsC,CAAC;gBAC5C,KAAK,sCAAsC,CAAC;gBAC5C,KAAK,sCAAsC;oBACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAC5B,MAAM,CAAC,IAAI,CAAC;4BACR,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;4BACf,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;4BACb,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;yBACrB,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;oBACH,MAAM;gBACV,KAAK,sCAAsC;oBACvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBAC9B,MAAM,GAAG,GAAG;4BACR,IAAI,EAAE,IAAI;4BACV,EAAE,EAAE,IAAI;4BACR,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;yBACrB,CAAC;wBACF,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAC5B,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;4BACX,GAAG,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;yBAClC;wBACD,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;4BACX,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;yBAChC;wBACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACrB,CAAC,CAAC,CAAC;oBACH,MAAM;gBACV;oBACI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBAC9B,MAAM,CAAC,IAAI,CAAC;4BACR,GAAG,EAAE,CAAC;4BACN,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;yBACrB,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;oBACH,MAAM;aACb;YACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SACxB;IACL,CAAC;IACD,WAAW;QACP,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;IACD,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;SAC7B;IACL,CAAC;IACD,yBAAyB,CAAC,MAAoB;QAC1C,IAAI,MAAM,IAAI,6EAAe,IAAI,IAAI,CAAC,MAAM,EAAE;YAC1C,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3C,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACpB,IAAI,CAAC,CAAC,KAAK,EAAE;wBACT,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;qBAC3D;gBACL,CAAC,CAAC,CAAC;aACN;iBAAM,IAAI,IAAI,CAAC,MAAM,EAAE;gBACpB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACpB,IAAI,CAAC,CAAC,KAAK,EAAE;wBACT,IAAI,IAAI,GAAG,EAAE,CAAC;wBACd,IAAI,CAAC,CAAC,IAAI,YAAY,IAAI,EAAE;4BACxB,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;yBAC/B;wBACD,IAAI,EAAE,GAAG,EAAE,CAAC;wBACZ,IAAI,CAAC,CAAC,EAAE,YAAY,IAAI,EAAE;4BACtB,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;yBAC3B;wBACD,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;qBACvC;gBACL,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACpB,IAAI,CAAC,CAAC,KAAK,EAAE;wBACT,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;qBAC7B;gBACL,CAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;SACtC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,QAAQ;QACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IACD,WAAW,CAAC,CAAC;QACT,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC;;AAlJQ,2BAA2B;IALvC,yDAAS,CAAC;QACP,QAAQ,EAAE,gCAAgC;QAC1C,sFAAoD;;KAEvD,CAAC;GACW,2BAA2B;AAAA;IA2J3B,4BAA4B,SAA5B,4BAA6B,SAAQ,8FAAc;IAErD,MAAM,CAAC,aAAa,CAAC,QAAQ;QAChC,MAAM,QAAQ,GAAG,0FAAmC,EAAE,CAAC;QACvD,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,KAAK,WAAW,EAAE;YAClD,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YACxB,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;SAC5B;aAAM;YACH,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;YACzB,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;SAC7B;IACL,CAAC;;AAXQ,4BAA4B;IANxC,yDAAS,CAAC;QACP,QAAQ,EAAE,iCAAiC;QAC3C,uFAAqD;QAErD,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,4BAA4B;AAAA;IAoB5B,qBAAqB,SAArB,qBAAsB,SAAQ,8FAAc;IA0CrD,YAAY,KAAwB,EAAU,MAAqB;QAC/D,KAAK,CAAC,KAAK,CAAC,CAAC;QAD6B,WAAM,GAAN,MAAM,CAAe;QAbzD,uBAAkB,GAAG,IAAI,wDAAY,EAAO;IAetD,CAAC;QAvCG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,eAAe,IAAI,IAAI,EAAE;YAC1E,IAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,EAAE,CAAC;SAC/C;aAAM;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC;YACnD,IAAI,GAAG,CAAC,gBAAgB,EAAE;gBACtB,GAAG,CAAC,gBAAgB,GAAG,wEAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;aACjE;YACD,IAAI,GAAG,CAAC,gBAAgB,EAAE;gBACtB,GAAG,CAAC,gBAAgB,GAAG,wEAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;aACjE;YACD,IAAI,GAAG,CAAC,IAAI,EAAE;gBACV,GAAG,CAAC,IAAI,GAAG,wEAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACzC;YACD,IAAI,GAAG,CAAC,gBAAgB,EAAE;gBACtB,GAAG,CAAC,gBAAgB,GAAG,wEAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;aACjE;SACJ;IACL,CAAC;IAGD,YAAY;IAEL,MAAM,CAAC,aAAa,CAAC,QAAQ;QAChC,MAAM,QAAQ,GAAG,0FAAmC,EAAE,CAAC;QACvD,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,KAAK,WAAW,EAAE;YAClD,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YACxB,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;SAC5B;aAAM;YACH,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;YACzB,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;SAC7B;IACL,CAAC;IAKD,WAAW;QACP,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;;;;;;;2BA/CA,iDAAK;iCAyBL,kDAAM;;AA7BE,qBAAqB;IANjC,yDAAS,CAAC;QACP,QAAQ,EAAE,0BAA0B;QACpC,gFAA8C;QAE9C,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/gBoD;AAExB;AACJ;AACI;AACA;AACJ;AAEmB;AACd;AACQ;AACN;AACQ;AAEa;AACV;AACX;AAC1B;AACc;AAC0B;IAQlE,aAAa,SAAb,aAAc,SAAQ,0EAAY;IA8B3C,YAAY,KAAwB,EAAS,MAAiB;QAC1D,KAAK,CAAC,KAAK,CAAC,CAAC;QAD4B,WAAM,GAAN,MAAM,CAAW;QA5B9D,WAAM,GAAiB,EAAE,CAAC;QAE1B,kBAAa,GAAG,EAAE,CAAC;QACnB,yBAAoB,GAAG,EAAE,CAAC;QAE1B,sBAAiB,GAAG,EAAE,CAAC;QACvB,cAAS,GAAG,IAAI,CAAC;QACjB,cAAS,GAAG,IAAI,CAAC;QAuBb,IAAI,CAAC,iBAAiB,GAAG,8EAA4B,CAAC,+EAAe,CAAC,CAAC;IAC3E,CAAC;IApBD,MAAM,CAAC,aAAa,CAAC,QAAQ;QACzB,MAAM,QAAQ,GAAG,0FAAmC,EAAE,CAAC;QACvD,QAAQ,CAAC,OAAO,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7E,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE;YAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC9B,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE;oBACzB,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;iBAClC;YACL,CAAC,CAAC;YACF,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxC;aAAM;YACH,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACpC;IAEL,CAAC;IAOD,QAAQ;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,kGAAuC,EAAE,CAAC;QACvD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,EAAE;YAC1G,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,6FAAsC,CAAC,CAAC,MAAM,EAAE,EAAE;gBACtE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;gBAC5B,IAAI,CAAC,MAAM,GAAG,oFAAgC,CAAC,MAAM,CAAC,CAAC;gBAEvD,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC,CAAC;SACP;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,4FAAqC,CAAC,CAAC,MAAM,EAAE,EAAE;YACrE,IAAI,MAAM,IAAI,CACV,MAAM,CAAC,gBAAgB,IAAI,gGAA8B;gBACzD,MAAM,CAAC,gBAAgB,IAAI,iGAA+B;gBAC1D,MAAM,CAAC,gBAAgB,IAAI,kGAAgC,CAC9D,EAAE;gBACC,IAAI,CAAC,mBAAmB,EAAE,CAAC;aAC9B;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,OAAO,CAAC,CAAC;QACb,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,CAAC,MAAM,EAAE;YACV,QAAQ,CAAC,CAAC,UAAU,EAAE;gBAClB,KAAK,wFAAwB;oBACzB,IAAI,IAAI,CAAC,SAAS,EAAE;wBAChB,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;wBACvD,IAAI,EAAE,EAAE;4BACJ,OAAO,GAAG,EAAE,CAAC,OAAO,GAAG,GAAG,CAAC;yBAC9B;qBACJ;oBACD,MAAM;gBACV,KAAK,wFAAwB;oBACzB,IAAI,IAAI,CAAC,SAAS,EAAE;wBAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;wBAC7D,IAAI,QAAQ,EAAE;4BACV,OAAO,GAAG,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;yBACjC;qBACJ;oBACD,MAAM;aACb;SACJ;QACD,OAAO,IAAI,GAAG,GAAG,+EAAe,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;QACrD,OAAO;YACH,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,CAAC;SACV,CAAC;IACN,CAAC;IACD,aAAa,CAAC,EAAE,EAAE,KAAK;QACnB,IAAI,CAAC,EAAE,IAAI,KAAK,EAAE;YACd,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;gBACzD,IAAI,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvF,IAAI,IAAI,EAAE;oBACN,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACnB,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;wBACjC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;qBACnD;oBACD,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;oBAC9C,IAAI,CAAC,YAAY,EAAE,CAAC;oBACpB,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,qFAA8B,CAAC,IAAI,CAAC,CAAC;iBACxC;aACJ;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IACD,SAAS;QACL,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;IACnC,CAAC;IACD,YAAY;QACR,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;YAClC,MAAM,MAAM,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;gBAC/C,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,EAAE;wBACH,MAAM,QAAQ,GAAG,EAAE,CAAC;wBACpB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;4BACrB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;4BAC7B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACxB,CAAC,CAAC,CAAC;wBACH,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC;wBACzC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;qBAC5H;gBACL,CAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SACxB;IACL,CAAC;IACD,eAAe;QACX,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE;YAClC,IAAI,CAAC,SAAS,GAAG,6EAAyB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,mBAAmB;QACf,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE;YAClC,IAAI,UAAU,CAAC;YACf,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE;gBACnC,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC9B;iBAAM;gBACH,UAAU,GAAG,2EAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;aAC1E;YACD,IAAI,UAAU,EAAE;gBACZ,IAAI,QAAQ,GAAG,EAAE,CAAC;gBAClB,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBACrB,IAAI,CAAC,CAAC,WAAW,KAAK,8FAAmB,EAAE;wBACvC,QAAQ,IAAI,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;qBAC9B;oBACD,IAAI,CAAC,CAAC,SAAS,EAAE;wBACb,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;4BACvB,SAAS,CAAC,IAAI,CAAC;gCACX,OAAO,EAAE,QAAQ,GAAG,EAAE,CAAC,OAAO;gCAC9B,EAAE,EAAE,EAAE,CAAC,EAAE;6BACZ,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;qBACN;gBACL,CAAC,CAAC,CAAC;gBACH,iFAA6B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;aACvD;YACD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,aAAa,CAAC,KAAK;QACf,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,aAAa,EAAE;YACvC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;SAClC;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,eAAe,CAAC,EAAE;QACd,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE;YACxB,MAAM,EAAE,GAAG,IAAI,iEAAW,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE;gBACxB,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrC;YACD,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YAC3D,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE;gBACtB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpC;YACD,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;YACrC,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,qFAA8B,CAAC,IAAI,CAAC,CAAC;SACxC;IACL,CAAC;IAED,kBAAkB,CAAC,EAAE;QACjB,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE;YACxB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YAC3D,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE;gBACtB,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBACvF,IAAI,EAAE,EAAE;oBACJ,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC5D;aACJ;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5E,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACZ,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACxC,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;oBACvC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;iBACjE;qBAAM,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC1C,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iBAC7F;qBAAM;oBACH,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;iBACxC;gBACD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,qFAA8B,CAAC,IAAI,CAAC,CAAC;aACxC;SAEJ;IACL,CAAC;IAED,gBAAgB,CAAC,EAAE;QACf,IAAI,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,EAAE;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC9D,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACjD,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;IACL,CAAC;IACD,WAAW;QACP,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;YACzD,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC5C,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE;oBACzB,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;iBAClC;YACL,CAAC,CAAC;YACF,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxC;aAAM;YACH,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACpC;IACL,CAAC;IACD,cAAc;QACV,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,4FAAqC,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC1G,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,YAAY,CAAC,IAAI;QACb,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtE,IAAI,EAAE,EAAE;YACJ,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE;gBACrB,6FAAsC,CAAC;oBACnC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;oBACxB,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;iBAClC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IACD,UAAU,CAAC,QAAQ,EAAE,OAAO;QACxB,IAAI,QAAQ,EAAE;YACV,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+EAAkB,EAAE;gBACnD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;gBAClD,UAAU,EAAE,+BAA+B;aAC9C,CAAC,CAAC;YACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBACzC,IAAI,MAAM,YAAY,yEAAY,EAAE;oBAChC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC;oBACvB,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;wBAC/B,OAAO,EAAE,CAAC;qBACb;iBACJ;gBACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;SACN;IACL,CAAC;;AAtRM,wBAAU,GAA4B,IAAI,kDAAe,CAAC,CAAC,CAAE;;;;;AAD3D,aAAa;IANzB,yDAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,uEAAqC;QAErC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,aAAa;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3BsE;AACT;AACd;AACR;AACA;IAQpD,cAAc,SAAd,cAAe,SAAQ,yEAAY;;;QAC5C,WAAM,GAAG,KAAK,CAAC;QAoDL,wBAAmB,GAAG,IAAI,uDAAY,EAAO;QAgC7C,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QAc5C,kBAAa,GAAG,IAAI,uDAAY,EAAO;QACjD,YAAY;QAEZ,eAAU,GAAG,IAAI,CAAC;QAClB,kBAAa,GAAG,IAAI,CAAC;QACrB,aAAQ,GAAG,IAAI,CAAC;IAgGpB,CAAC;QAnMO,aAAa;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,GAAG,EAAE;YACL,MAAM,MAAM,GAAG,EAAE;YACjB,IAAI,GAAG,CAAC,aAAa,EAAE;gBACnB,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,IAAI,8FAAyB,CAAC,CAAC;gBACvE,IAAI,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE;oBAC5B,MAAM,QAAQ,GAAG,EAAE,CAAC;oBACpB,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;wBAC3C,MAAM,GAAG,GAAG;4BACR,GAAG,OAAO;4BACV,UAAU,EAAE,EAAE;yBACjB,CAAC;wBACF,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACnB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;oBACzB,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;iBAC5B;aACJ;YACD,MAAM,aAAa,GAAG,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,mFAAkB,CAAC,CAAC,CAAC,EAAE;gBACnB,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,EAAE;oBACpB,MAAM,IAAI,GAAG;wBACT,GAAG,CAAC;qBACP,CAAC;oBACF,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACzB,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,EAAE;wBACnB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACzB;yBAAM;wBACH,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBAC9B,IAAI,GAAG,EAAE;4BACL,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;yBAC7B;qBACJ;iBACJ;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAChC;QACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC3D,CAAC;QAOG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,UAAU,EAAE;YAC3C,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC7B,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC9B,IAAI,OAAO,CAAC,UAAU,EAAE;wBACpB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;4BAChC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBACvC,CAAC,CAAC;qBACL;gBACL,CAAC,CAAC;aACL;SACJ;QACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAUG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;IASD,QAAQ;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,2FAAqC,CAAC,GAAG,EAAE;YAC/D,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,4FAAsC,CAAC,CAAC,GAAG,EAAE,EAAE;YACnE,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,aAAa,EAAE;YAC9C,MAAM,MAAM,GAAG,EAAE;YACjB,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACxB,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC;oBACpB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;gBACzB,CAAC,CAAC,CAAC;aACN;YACD,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAC3B,IAAI,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;oBAC1F,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,EAAE;wBACnB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACtB;yBAAM;wBACH,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBAC9B,IAAI,GAAG,EAAE;4BACL,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yBAC1B;qBACJ;iBACJ;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IACD,MAAM,CAAC,aAAa,CAAC,QAAQ;QACzB,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;IAC7B,CAAC;IACD,UAAU,CAAC,IAAI,EAAE,YAAY;QACzB,IAAI,YAAY,EAAE;YACd,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;YAC1C,IAAI,IAAI,CAAC,EAAE,EAAE;gBACT,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;oBACpD,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;iBAC3C;gBACD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE;oBACrD,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC;iBACvC;qBAAM;oBACH,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBACpD;aACJ;iBAAM;gBACH,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,YAAY,CAAC;aAC3C;SACJ;IACL,CAAC;IACD,iBAAiB,CAAC,KAAK,EAAE,IAAI;QACzB,IAAI,KAAK,IAAI,IAAI,EAAE;YACf,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;SAClC;QACD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC5C,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACrC,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;aACpC;YACD,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;oBACrD,YAAY,GAAG,KAAK,CAAC;oBACrB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBACxC,CAAC,CAAC;aACL;iBAAM;gBACH,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;aACvC;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9C;YACD,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;aAC9C;YACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;gBACtC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,GAAG,EAAE,CAAC;aAC5C;YACD,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;gBAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,cAAc,CAAC,EAAE;oBACrD,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;iBACrE;gBACD,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC/F,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;;;4BAnMA,gDAAK;kCAiDL,iDAAM;2BAKN,gDAAK;iCA2BL,iDAAM;sBAKN,gDAAK;4BASL,iDAAM;;AAnGE,cAAc;IAN1B,wDAAS,CAAC;QACP,QAAQ,EAAE,kBAAkB;QAC5B,wEAAsC;QAEtC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,cAAc;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZmD;AACvC;AACiD;AACvB;AACQ;AACmB;AACtB;IAOzD,aAAa,SAAb,aAAc,SAAQ,8FAAc;;;QAG7C,mBAAc,GAAG,KAAK,CAAC;IAmG3B,CAAC;IA/FG,QAAQ;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,kGAAwC,CAAC,CAAC,IAAI,EAAE,EAAE;YACtE,MAAM,MAAM,GAAG,IAAI,KAAK,SAAS,CAAC;YAClC,IAAI,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE;gBAChC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;gBAC7B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;aAC9B;QACL,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,WAAW;QACP,KAAK,CAAC,WAAW,EAAE,CAAC;QACpB,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,KAAK,GAAG;oBACJ,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;oBAC3B,YAAY,EAAE,EAAE;iBACnB,CAAC;gBACF,kFAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;aAC3D;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACxB;QACD,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,YAAY,CAAC,IAAI;QACb,IAAI,IAAI,EAAE;YACN,qFAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC9C;aAAM;YACH,qFAA+B,CAAC,IAAI,CAAC,CAAC;SACzC;IACL,CAAC;IACD,aAAa,CAAC,IAAI;QACd,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,MAAM,IAAI,GAAoB,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACpB,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3D,IAAI,OAAO,EAAE;oBACT,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,qBAAqB,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;iBAChF;YACL,CAAC,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,2EAAkB,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC;YAC7B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;YAC9B,qFAA+B,CAAC,OAAO,CAAC,CAAC;YACzC,qCAAqC;YACrC,sFAAgC,CAAC,IAAI,CAAC,CAAC;YACvC,6BAA6B;YAC7B,yDAAyD;YACzD,GAAG;SACN;aAAM;YACH,sFAAgC,CAAC,IAAI,CAAC,CAAC;SAC1C;IACL,CAAC;IAED,SAAS,CAAC,KAAK;QACX,IAAI,KAAK,EAAE;YACP,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;aACzB;iBAAM;gBACH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,IAAI,CAAC,MAAM,EAAE;oBACb,MAAM,KAAK,GAAG,aAAa,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;oBACvD,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,YAAY,EAAE;wBACrE,mFAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;qBACpD;iBACJ;aACJ;SACJ;IACL,CAAC;IACD,WAAW;QACP,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;SACtC;IACL,CAAC;IACD,OAAO;QACH,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SACrC;IACL,CAAC;IAED,cAAc,CAAC,KAAK,EAAE,KAAK;QACvB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACnB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;oBACxB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;iBAC7C;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;;AApGc,6BAAe,GAAyB,IAAI,iDAAe,CAAM,IAAI,CAAE;;mBAIrF,oDAAS,SAAC,aAAa;;AALf,aAAa;IALzB,wDAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,uEAAqC;QACrC,eAAe,EAAE,yEAA8B;KAClD,CAAC;GACW,aAAa;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbmE;AACnC;AACc;AACd;AACmD;AAC9B;AACtB;AACoB;AACwB;AACT;AAC3B;IAQpD,oBAAoB,SAApB,oBAAqB,SAAQ,0EAAY;IAelD,YAAY,KAAwB;QAChC,KAAK,CAAC,KAAK,CAAC,CAAC;QAdjB,mBAAc,GAAG,EAAE,CAAC;QACpB,cAAS,GAAG,EAAE,CAAC;QAcX,IAAI,CAAC,KAAK,GAAG,8EAA4B,CAAC,2DAAK,CAAC,CAAC;IACrD,CAAC;QAVG,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;IACpC,CAAC;IAOD,oBAAoB;QAChB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO;YACxD,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,mBAAmB,KAAK,UAAU,EAAE;YAC1E,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;SACxD;IACL,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,MAAM,MAAM,GAAG,IAAI,0EAAqB,EAAE,CAAC;YAC3C,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,8FAA6B,CAAC,CAAC;YACnE,IAAI;gBACA,IAAI,CAAC,iBAAiB,CAAC,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aAC7E;YAAC,MAAM;gBACJ,IAAI,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE;oBACvC,MAAM,OAAO,GAAG,8GAA+C,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;oBACvG,IAAI,OAAO,EAAE;wBACT,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,wFAAwB,CAAC,CAAC;qBAC1E;yBAAM;wBACH,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;wBACzB,IAAI,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC;qBAChD;iBACJ;aACJ;YACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;SACzC;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,kHAA8B,CAAC;gBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,IAAI,CAAC,cAAc;gBAC5B,SAAS,EAAE,8FAA6B;aAC3C,EAAE,CAAC,CAAC,EAAE,EAAE;gBACL,IAAI,CAAC,EAAE;oBACH,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,OAAO,CAAC;oBAChC,IAAI,CAAC,cAAc,EAAE,CAAC;iBACzB;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;SACN;IACL,CAAC;;;;;;8BAxDA,iDAAK;;AAPG,oBAAoB;IANhC,yDAAS,CAAC;QACP,QAAQ,EAAE,yBAAyB;QACnC,wEAAsC;QAEtC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,oBAAoB;AAAA;IAwEpB,cAAc,SAAd,cAAe,SAAQ,+FAAc;IAQ9C,YAAY,KAAwB;QAChC,KAAK,CAAC,KAAK,CAAC,CAAC;QAPjB,mBAAc,GAAG,EAAE,CAAC;QACpB,cAAS,GAAG,EAAE,CAAC;QAOX,IAAI,CAAC,KAAK,GAAG,8EAA4B,CAAC,2DAAK,CAAC,CAAC;IACrD,CAAC;IAED,SAAS;QACL,IAAI,IAAI,CAAC,8BAA8B,IAAI,IAAI,EAAE;YAC7C,IAAI,CAAC,8BAA8B,CAAC,WAAW,EAAE,CAAC;YAClD,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC;SAC9C;QACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE;YAC3C,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC9F,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAED,WAAW;QACP,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAED,mBAAmB;QACf,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACnC,IAAI,GAAG,EAAE;YACL,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,sFAAoC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBACjE,IAAI,MAAM,EAAE;wBACR,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;wBACnC,IAAI,MAAM,EAAE;4BACR,MAAM,SAAS,GAAG,EAAE,CAAC;4BACrB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gCACnB,MAAM,GAAG,GAAG,IAAI,uFAAwB,EAAE,CAAC;gCAC3C,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC;gCAC1B,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,iBAAiB,CAAC;gCACnC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACxB,CAAC,CAAC,CAAC;4BACH,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;yBAC9B;wBACD,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC;wBACpC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;qBAC9B;gBACL,CAAC,CAAC,CAAC;aACN;YACD,IAAI,GAAG,CAAC,cAAc,EAAE;gBACpB,MAAM,OAAO,GAAG,8GAA+C,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBACpF,IAAI,OAAO,EAAE;oBACT,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,wFAAwB,CAAC,CAAC;iBAC1E;aACJ;SACJ;IACL,CAAC;IAED,oBAAoB;QAChB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO;YACxD,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,mBAAmB,KAAK,UAAU,EAAE;YAC1E,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;SACxD;IACL,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,MAAM,MAAM,GAAG,IAAI,0EAAqB,EAAE,CAAC;YAC3C,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,8FAA6B,CAAC,CAAC;YACnE,IAAI;gBACA,IAAI,CAAC,iBAAiB,CAAC,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aAC7E;YAAC,MAAM;gBACJ,IAAI,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE;oBACvC,MAAM,OAAO,GAAG,8GAA+C,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;oBACvG,IAAI,OAAO,EAAE;wBACT,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,wFAAwB,CAAC,CAAC;qBAC1E;yBAAM;wBACH,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;wBACzB,IAAI,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC;qBAChD;iBACJ;aACJ;YACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;SACzC;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,kHAA8B,CAAC;gBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,IAAI,CAAC,cAAc;gBAC5B,SAAS,EAAE,8FAA6B;aAC3C,EAAE,CAAC,CAAC,EAAE,EAAE;gBACL,IAAI,CAAC,EAAE;oBACH,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,OAAO,CAAC;oBAChC,IAAI,CAAC,cAAc,EAAE,CAAC;iBACzB;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;SACN;IACL,CAAC;;;;;AA3GQ,cAAc;IAN1B,yDAAS,CAAC;QACP,QAAQ,EAAE,kBAAkB;QAC5B,wEAAsC;QAEtC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,cAAc;AAAA;IAmHd,sBAAsB,SAAtB,sBAAuB,SAAQ,0EAAY;;AAA3C,sBAAsB;IALlC,yDAAS,CAAC;QACP,QAAQ,EAAE,2BAA2B;QACrC,QAAQ,EAAE,uEAAuE;QACjF,eAAe,EAAE,0EAA8B;KAClD,CAAC;GACW,sBAAsB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7MmD;AAC5B;AACS;AACL;AACI;AACW;AACd;AACmB;AACjB;AACJ;AACY;AACI;AACe;AAC5B;IAQnD,mBAAmB,SAAnB,mBAAoB,SAAQ,+FAAc;IAyBnD,YAAoB,mBAAwC,EAAE,KAAwB,EAAU,WAAwB;QACpH,KAAK,CAAC,KAAK,CAAC,CAAC;QADG,wBAAmB,GAAnB,mBAAmB,CAAqB;QAAoC,gBAAW,GAAX,WAAW,CAAa;QAfxH,cAAS,GAAG,EAAE,CAAC;QACf,sBAAsB;QACtB,WAAM,GAAG,EAAE,CAAC;QAGZ,sBAAiB,GAAG,EAAE,CAAC;QACvB,YAAY;QAEZ,UAAK,GAAG,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAGjG,iBAAY,GAAG,EAAE,CAAC;QAClB,iBAAY,GAAG,KAAK,CAAC;QACrB,oBAAe,GAAG,KAAK,CAAC;QAIpB,IAAI,CAAC,iBAAiB,GAAG,8EAA4B,CAAC,+EAAe,CAAC,CAAC;IAC3E,CAAC;IAED,QAAQ;QACJ,MAAM,IAAI,GAAG,kGAAuC,EAAE,CAAC;QACvD,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,SAAS,CAAC;QACvC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU,EAAE;YAC3C,kFAA4B,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACpC,IAAI,CAAC,EAAE;oBACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;iBAC/B;YACL,CAAC,CAAC,CAAC;SACN;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,EAAE;YAC1G,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,4FAAsC,CAAC,CAAC,MAAM,EAAE,EAAE;gBACtE,IAAI,CAAC,MAAM,GAAG,oFAAgC,CAAC,MAAM,CAAC,CAAC;gBAEvD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;oBAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC;iBACjC;gBACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;gBAEhC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;oBAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC;iBACjC;gBACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;gBAEvC,4FAA2B,CAAC,CAAC,KAAK,EAAE,EAAE;oBAClC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC7D,IAAI,CAAC,EAAE,EAAE;wBACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;4BACb,EAAE,EAAE,KAAK,CAAC,EAAE;4BACZ,OAAO,EAAE,KAAK,CAAC,OAAO;yBACzB,CAAC,CAAC;qBACN;gBACL,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,SAAS,GAAG,uFAAiC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACpE,IAAI,CAAC,QAAQ,GAAG,sFAAgC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtE,CAAC,CAAC,CAAC,CAAC;SACP;QACD,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU,CAAC,CAAC;QAChE,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC5C,IAAI,CAAC,EAAE;gBACH,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;aACzB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,MAAM,IAAI,GAAG;gBACT,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,UAAU;aACnB,CAAC;YACF,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;YACrC,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;gBAC/B,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC5C;iBAAM;gBACH,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,CAAC;aAC1C;YACD,IAAI,CAAC,0BAA0B,EAAE,CAAC;SACrC;IACL,CAAC;IACD,kBAAkB;QACd,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,IAAI,CAAC,wBAAwB,EAAE;YAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACnF,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC/C,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;gBAClH,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBACpD,IAAI,MAAM,GAAG,CAAC,EAAE;oBACZ,IAAI,KAAK,GAAG,MAAM,EAAE;wBAChB,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;qBACxE;yBAAM;wBACH,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;qBAC7E;iBACJ;qBAAM;oBACH,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;iBACxC;aACJ;SACJ;IACL,CAAC;IAED,0BAA0B;QACtB,2FAAqC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC9G,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,MAAM,IAAI,GAAG;gBACT,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,UAAU;aACnB,CAAC;YACF,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;YACpC,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;gBAC9B,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC3C;iBAAM;gBACH,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,yBAAyB,EAAE,CAAC;SACpC;IACL,CAAC;IACD,iBAAiB;QACb,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACjF,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC9C,IAAI,CAAC,mBAAmB,CAAC,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;gBACpH,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC;gBACnD,IAAI,MAAM,GAAG,CAAC,EAAE;oBACZ,IAAI,KAAK,GAAG,MAAM,EAAE;wBAChB,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;qBACtE;yBAAM;wBACH,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;qBAC3E;iBACJ;qBAAM;oBACH,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;iBACvC;aACJ;SACJ;IACL,CAAC;IAED,yBAAyB;QACrB,2FAAqC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC5G,CAAC;IAED,qBAAqB;QACjB,2FAAqC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACpG,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,MAAM,EAAE,GAAG,IAAI,iEAAW,EAAE,CAAC;YAC7B,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;gBAC7B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACxC;iBAAM;gBACH,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC;aACtC;YACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAChC;IACL,CAAC;IACD,kBAAkB;QACd,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAChF,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC7E,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACZ,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAClD,IAAI,MAAM,GAAG,CAAC,EAAE;oBACZ,IAAI,KAAK,GAAG,MAAM,EAAE;wBAChB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;qBAClE;yBAAM;wBACH,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;qBACvE;iBACJ;qBAAM;oBACH,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;iBACpC;aACJ;SACJ;IACL,CAAC;IACD,aAAa;QACT,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,+EAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;YACxF,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE;gBAClC,IAAI,IAAI,CAAC,oBAAoB,CAAC,UAAU,IAAI,CAAC,EAAE;oBAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;oBAC1F,IAAI,IAAI,EAAE;wBACN,IAAI,CAAC,oBAAoB,CAAC,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;qBAC3D;iBACJ;gBACD,IAAI,IAAI,CAAC,oBAAoB,CAAC,UAAU,IAAI,CAAC,EAAE;oBAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;oBAC1F,IAAI,IAAI,EAAE;wBACN,IAAI,CAAC,oBAAoB,CAAC,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;qBACxD;iBACJ;aACJ;YACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAChC;IACL,CAAC;IAED,cAAc,CAAC,MAAM;QACjB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,MAAM,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;SACrC;IACL,CAAC;IAED,cAAc,CAAC,SAAS;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;QACrE,IAAI,IAAI,EAAE;YACN,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAC9B;IACL,CAAC;IACD,eAAe,CAAC,SAAS;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;QACtE,IAAI,IAAI,EAAE;YACN,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAC9B;IACL,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,MAAM,EAAE,GAAG;gBACP,IAAI,EAAE,gGAA0C,CAAC,sBAAsB,CAAC;gBACxE,UAAU,EAAE,wFAAwB;aACvC,CAAC;YACF,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;gBAC1B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACrC;iBAAM;gBACH,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC,CAAC;aACnC;YACD,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAChC;IACL,CAAC;IAED,iBAAiB;QACb,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,mBAAmB,EAAE;YACrE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACzE,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC1C,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE;oBACzC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;iBAC9D;qBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC5C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iBAC5F;qBAAM;oBACH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;iBACnC;aACJ;SACJ;IACL,CAAC;IAED,qBAAqB;QACjB,2FAAqC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACpG,CAAC;IAID,MAAM;QACF,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,MAAM,IAAI,GAAG;gBACT,GAAG,EAAE,IAAI;gBACT,KAAK,EAAE,IAAI;aACd,CAAC;YACF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnC;iBAAM;gBACH,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC;aACjC;YACD,oCAAoC;SACvC;IACL,CAAC;IACD,SAAS;QACL,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;YACzD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7D,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aACzC;SACJ;IACL,CAAC;;;;;;;AAxSQ,mBAAmB;IAN/B,yDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,6EAA2C;QAE3C,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,mBAAmB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrBsB;AAG/B;AACc;AACwB;AACgB;AACZ;IAQpD,iBAAiB,SAAjB,iBAAiB;IAmB1B,YAAmB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;QAjB3C,UAAK,GAAG,EAAE,CAAC;QACX,iBAAY,GAAG,EAAE,CAAC;QAClB,kBAAa,GAAG,EAAE,CAAC;QAEnB,cAAS,GAAG,IAAI,CAAC;IAa8B,CAAC;IAXhD,MAAM,CAAC,YAAY;QACf,MAAM,QAAQ,GAAG,yFAAmC,EAAE,CAAC;QACvD,IAAI,QAAQ,EAAE;YACV,OAAO,IAAI,CAAC;SACf;QACD,MAAM,GAAG,GAAG,0FAAoC,EAAE,CAAC;QACnD,IAAI,GAAG,EAAE;YACL,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAGD,QAAQ;QACJ,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,0FAAoC,CAAC,CAAC,CAAC,EAAE;YAC7D,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mGAA6C,CAAC,GAAG,EAAE;YACvE,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IACD,YAAY;QACR,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,uFAAsB,CAAC,CAAC,CAAC,EAAE;YACvB,MAAM,IAAI,GAAQ;gBACd,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,oDAAS,EAAE;gBAChC,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,OAAO,EAAE,KAAK;gBACd,aAAa,EAAE,CAAC;gBAChB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,UAAU,EAAE,CAAC,CAAC,UAAU;aAC3B,CAAC;YACF,IAAI,CAAC,CAAC,OAAO,EAAE;gBACX,IAAI,CAAC,OAAO,GAAG,IAAI,gEAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;aACvB;YACD,IAAI,OAAO,CAAC,CAAC,aAAa,KAAK,UAAU,EAAE;gBACvC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC;gBACrC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvB;YACD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC/B,GAAG,CAAC,WAAW,EAAE;YACrB,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,WAAW;QACP,IAAI,QAAQ,CAAC;QACb,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC1B,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBAC5C,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACnB,QAAQ,GAAG,CAAC,CAAC;aAChB;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,QAAQ,EAAE;YACV,QAAQ,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;SACtE;QACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC3B,CAAC;;;;;AArFQ,iBAAiB;IAN7B,wDAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,2EAAyC;QAEzC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,iBAAiB;AAAA;IAwFR,YAAY,SAAZ,YAAY;IAiD9B,YAAmB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;QA/C3C,kBAAa,GAAG,EAAE,CAAC;QACnB,kBAAkB;QAClB,kBAAa,GAAG,IAAI,CAAC;QAUX,mBAAc,GAAG,IAAI,uDAAY,EAAO;QAcxC,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QAc5C,wBAAmB,GAAG,IAAI,uDAAY,EAAO;QACvD,YAAY;QACZ,gBAAW,GAAG,2EAAuB,CAAC;QAC5B,iBAAY,GAAG,IAAI,uDAAY,EAAO;IAIF,CAAC;QA3C3C,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QAEZ,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;QAMG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAOG,aAAa;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;QAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAWD,QAAQ;QACJ,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,IAAI,CAAC,wBAAwB,EAAE;gBAC/B,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC;aAC/C;YACD,IAAI,CAAC,wBAAwB,GAAG,0FAAoC,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC1E,IAAI,IAAI,EAAE;oBACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;oBACzB,IAAI,CAAC,SAAS,EAAE,CAAC;iBACpB;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACvD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,2FAAqC,CAAC,CAAC,KAAK,EAAE,EAAE;gBACpE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;YACrB,CAAC,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,8FAAwC,CAAC,CAAC,KAAK,EAAE,EAAE;gBACvE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,wGAAkD,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC/E,IAAI,IAAI,CAAC,iBAAiB,EAAE;oBACxB,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;oBAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC1C,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;qBACpC;iBACJ;gBACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC,CAAC;SACP;IACL,CAAC;IAED,WAAW;QACP,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,SAAS;IACT,CAAC;IAED,oBAAoB,CAAC,KAAK;IAC1B,CAAC;IAED,cAAc,CAAC,YAAY;QACvB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE;YAChE,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC3D;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;;;;;;uBA7FA,gDAAK;6BASL,iDAAM;2BAIN,gDAAK;iCAUL,iDAAM;4BAIN,gDAAK;kCAUL,iDAAM;2BAGN,iDAAM;;AA7CW,YAAY;IADjC,wDAAS,EAAE;GACU,YAAY;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvGiC;AAClB;AACkB;AACE;AACU;AACzB;AACiC;AACtB;AAC2B;AACvD;IAOxB,iBAAiB,SAAjB,iBAAkB,SAAQ,8FAAc;IAGjD,aAAa;QACT,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,8CAA8C;YAC9C,MAAM,IAAI,GAAG,IAAI,wDAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;YAC7B,IAAI,CAAC,WAAW,GAAG,4EAAgB,CAAC;YACpC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,GAAG,gGAA0C,CAAC,kBAAkB,CAAC,CAAC;YAC3E,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;gBAC9B,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS;aACnD;YACD,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;gBAC7B,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;aAClD;YACD,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;gBAChC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC7C;iBAAM;gBACH,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC;aAC3C;YACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,qFAA+B,CAAC;gBAC5B,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aACnC,CAAC,CAAC;SACN;IACL,CAAC;IACD,gBAAgB;QACZ,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YACjF,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC9E,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACZ,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACzC,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;oBAC9B,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;iBAC1C;gBACD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAChD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC;gBACrD,IAAI,MAAM,GAAG,CAAC,EAAE;oBACZ,IAAI,KAAK,GAAG,MAAM,EAAE;wBAChB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;qBACnE;yBAAM;wBACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;qBACxE;iBACJ;qBAAM;oBACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;iBAClC;gBACD,uFAAiC,CAAC;oBAC9B,YAAY,EAAE,KAAK;oBACnB,cAAc,EAAE,OAAO;iBAC1B,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IACD,iBAAiB;QACb,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACvD,IAAI,SAAS,GAAG,OAAO,EAAE;YACrB,2FAAqC,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;SAC1E;aACI;YACD,2FAAqC,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;SAC5E;IAEL,CAAC;IACD,aAAa;QACT,oCAAoC;QACpC,kDAAkD;QAClD,IAAI;QACJ,2FAAqC,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAEO,MAAM,CAAC,MAAM,CAAC,MAAM;QACxB,MAAM,CAAC,EAAE,GAAG,oDAAS,EAAE,CAAC;QACxB,IAAI,MAAM,CAAC,QAAQ,EAAE;YACjB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7D;IACL,CAAC;IAED,UAAU;QACN,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,MAAM,IAAI,GAAG,+DAAY,CAAC,wDAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAClF,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;YAC3B,IAAI,CAAC,IAAI,GAAG,gGAA0C,CAAC,kBAAkB,CAAC,CAAC;YAC3E,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;gBAChC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC7C;iBAAM;gBACH,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC;aAC3C;YACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,qFAA+B,CAAC;gBAC5B,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aACnC,CAAC,CAAC;SACN;IACL,CAAC;IAED,YAAY,CAAC,IAAI;QACb,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,MAAM,IAAI,GAAG,IAAI,yFAAyB,EAAE,CAAC;YAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC3C,sFAAgC,CAAC;gBAC7B,gBAAgB,EAAE,gGAA+B;gBACjD,WAAW,EAAE,IAAI;gBACjB,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;aAC3C,CAAC,CAAC;SACN;IACL,CAAC;;AA7GQ,iBAAiB;IAL7B,yDAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,2EAAyC;QACzC,eAAe,EAAE,0EAA8B;KAClD,CAAC;GACW,iBAAiB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;AChBqC;AACC;IAQvD,qBAAqB,SAArB,qBAAsB,SAAQ,yEAAY;;AAA1C,qBAAqB;IANjC,wDAAS,CAAC;QACP,QAAQ,EAAE,0BAA0B;QACpC,gFAA8C;QAE9C,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACToD;AACrC;AAC2C;AACjB;AACrB;AACwB;AACb;AACJ;IAQhD,eAAe,SAAf,eAAgB,SAAQ,8FAAc;IAS/C,YAAY,KAAwB,EAAU,WAAwB;QAClE,KAAK,CAAC,KAAK,CAAC,CAAC;QAD6B,gBAAW,GAAX,WAAW,CAAa;IAEtE,CAAC;IARD,MAAM,CAAC,aAAa,CAAC,QAAQ;QACzB,MAAM,QAAQ,GAAG,yFAAmC,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,2FAAqC,EAAE,CAAC;QACvD,QAAQ,CAAC,OAAO,GAAG,QAAQ,IAAI,QAAQ,CAAC,WAAW,IAAI,UAAU,IAAI,QAAQ,IAAI,MAAM,CAAC;IAC5F,CAAC;IAMD,QAAQ;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YACnE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAI;QACA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE;YACjF,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gBAClE,IAAI,QAAQ,EAAE;oBACV,MAAM,MAAM,GAAG,+DAAY,CAAC,wDAAM,EAAE,QAAQ,CAAC,CAAC;oBAC9C,MAAM,UAAU,GAAG,IAAI,6EAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;oBACnF,UAAU,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;wBAC1C,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;wBACnB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;oBAC/B,CAAC,CAAC,CAAC;oBACH,wFAAyB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;iBAC/C;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;;;;;;AAnCQ,eAAe;IAN3B,wDAAS,CAAC;QACP,QAAQ,EAAE,mBAAmB;QAC7B,yEAAuC;QAEvC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,eAAe;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfuC;AACP;AACY;AACd;AACmD;AAC9B;AACF;AACwB;AACT;IAQ/E,WAAW,SAAX,WAAY,SAAQ,8FAAc;;;QAE3C,mBAAc,GAAG,EAAE,CAAC;QACpB,cAAS,GAAG,EAAE,CAAC;IAkFnB,CAAC;IA/EG,WAAW;QACP,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAED,mBAAmB;QACf,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACvC,MAAM,IAAI,GAAG,6EAA2B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC9E,IAAI,IAAI,EAAE;gBACN,wEAAsB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBACvC,IAAI,IAAI,EAAE;wBACN,MAAM,SAAS,GAAG,EAAE,CAAC;wBACrB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;wBAC5B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;4BAC3C,MAAM,GAAG,GAAG,IAAI,uFAAwB,EAAE,CAAC;4BAC3C,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;4BAC3B,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;4BACpC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACxB,CAAC,CAAC,CAAC;wBACH,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;qBAC9B;gBACL,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,MAAM,MAAM,GAAG,IAAI,0EAAqB,EAAE,CAAC;YAC3C,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,8FAA6B,CAAC,CAAC;YACnE,IAAI;gBACA,IAAI,CAAC,iBAAiB,CAAC,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aAC7E;YAAC,MAAM;gBACJ,IAAI,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE;oBACvC,MAAM,OAAO,GAAG,8GAA+C,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;oBACvG,IAAI,OAAO,EAAE;wBACT,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,wFAAwB,CAAC,CAAC;qBAC1E;yBAAM;wBACH,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;wBACzB,IAAI,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC;qBAChD;iBACJ;aACJ;YACD,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;SACzC;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,kHAA8B,CAAC;gBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,IAAI,CAAC,cAAc;gBAC5B,SAAS,EAAE,8FAA6B;aAC3C,EAAE,CAAC,CAAC,EAAE,EAAE;gBACL,IAAI,CAAC,EAAE;oBACH,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,OAAO,CAAC;oBAChC,IAAI,CAAC,cAAc,EAAE,CAAC;iBACzB;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,SAAS;QACL,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;gBACtC,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,EAAE,CAAC;aAC5C;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE;gBACvC,MAAM,OAAO,GAAG,8GAA+C,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;gBACvG,IAAI,OAAO,EAAE;oBACT,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,wFAAwB,CAAC,CAAC;iBAC1E;aACJ;SACJ;IACL,CAAC;;AApFQ,WAAW;IANvB,yDAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,qEAAmC;QAEnC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,WAAW;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBgF;AAC5C;AACY;AACqC;AAC9B;AACF;AACwB;IAQxF,mBAAmB,SAAnB,mBAAmB;;QAelB,mBAAc,GAAG,IAAI,uDAAY,EAAO;QA0ExC,qBAAgB,GAAG,IAAI,uDAAY,EAAO;QACpD,YAAY;QAEZ,eAAU,GAAG,EAAE,CAAC;QAChB,gBAAW,GAAG,EAAE,CAAC;QACjB,kBAAa,GAAG,EAAE,CAAC;QACnB,sBAAiB,GAAG,EAAE,CAAC;QACvB,oBAAe,GAAG,EAAE,CAAC;QAErB,mBAAc,GAAG,EAAE,CAAC;QACpB,cAAS,GAAG,EAAE,CAAC;QAEL,wBAAmB,GAAG,IAAI,uDAAY,EAAO;IAsG3D,CAAC;QArMO,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;QASG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,aAAa,GAAG,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,EAAE;YACL,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC7B,IAAI,MAAM,CAAC,MAAM,EAAE;oBACf,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBAC3B;qBAAM;oBACH,QAAQ,MAAM,CAAC,IAAI,EAAE;wBACjB,KAAK,sCAAsC,EAAE,iBAAiB;4BAC1D,IAAI,MAAM,CAAC,QAAQ,EAAE;gCACjB,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;6BAC5B;4BACD,MAAM;wBACV,KAAK,sCAAsC,EAAE,OAAO;4BAChD,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BACzB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BACtB,MAAM;wBACV,KAAK,sCAAsC,EAAE,MAAM;4BAC/C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BACrB,MAAM;wBACV,KAAK,sCAAsC,EAAE,OAAO;4BAChD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BACtB,MAAM;wBACV,KAAK,sCAAsC,EAAE,SAAS;4BAClD,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BACxB,MAAM;wBACV,KAAK,sCAAsC;4BACvC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BACzB,MAAM;qBACb;iBACJ;YACL,CAAC,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,aAAa,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;aACnC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpB,WAAW,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;gBAC7B,aAAa,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;aAClC;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;gBAC9B,aAAa,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;aACnC;YACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvB,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;gBAChC,aAAa,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;aACrC;SACJ;QACD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC;QACnC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;IAgBD,QAAQ;QACJ,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAED,WAAW;QACP,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;YACnD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChF,IAAI,MAAM,EAAE;gBACR,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;aACrF;SACJ;QACD,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;IACtC,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,MAAM,MAAM,GAAG,IAAI,0EAAqB,EAAE,CAAC;YAC3C,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,8FAA6B,CAAC,CAAC;YACnE,IAAI;gBACA,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACzE;YAAC,MAAM;gBACJ,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE;oBACnC,MAAM,OAAO,GAAG,8GAA+C,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;oBACnG,IAAI,OAAO,EAAE;wBACT,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,wFAAwB,CAAC,CAAC;qBAC1E;yBAAM;wBACH,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;wBACzB,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC;qBAC5C;iBACJ;aACJ;YACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,kHAA8B,CAAC;gBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,IAAI,CAAC,cAAc;gBAC5B,SAAS,EAAE,8FAA6B;aAC3C,EAAE,CAAC,CAAC,EAAE,EAAE;gBACL,IAAI,CAAC,EAAE;oBACH,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,OAAO,CAAC;oBAChC,IAAI,CAAC,cAAc,EAAE,CAAC;iBACzB;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,iBAAiB;QACb,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC;YACxC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;IACL,CAAC;IAED,gBAAgB;QACZ,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC;YACpC,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC;YACxC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;IACL,CAAC;IAED,iBAAiB;QACb,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,EAAE;YAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAC7F,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,sCAAsC,EAAE;gBAChE,wEAAsB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBACrD,IAAI,IAAI,EAAE;wBACN,MAAM,SAAS,GAAG,EAAE,CAAC;wBACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;wBACvB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;4BACtC,MAAM,GAAG,GAAG,IAAI,uFAAwB,EAAE,CAAC;4BAC3C,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;4BAC3B,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;4BACpC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACxB,CAAC,CAAC,CAAC;wBACH,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;wBAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;4BAC/B,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,EAAE,CAAC;yBACrC;qBACJ;gBACL,CAAC,CAAC,CAAC;aACN;SACJ;QACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAED,iBAAiB;QACb,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC;;;uBArMA,gDAAK;6BAUL,iDAAM;yBAMN,gDAAK;+BAoEL,iDAAM;kCAYN,iDAAM;;AArGE,mBAAmB;IAN/B,wDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,6EAA2C;QAE3C,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,mBAAmB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdmC;AACF;AACC;AAC7B;AAC4E;AAChD;AACP;AACqB;AACxC;IAQ1B,gBAAgB,SAAhB,gBAAiB,SAAQ,yEAAY;;;QAG9C,cAAS,GAAG,8EAAwB,CAAC;QACrC,gBAAW,GAAG;YACV,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;SACd,CAAC;QAEF,iBAAY,GAAG,IAAI,CAAC;IA2KxB,CAAC;IAzKG,MAAM,CAAC,aAAa,CAAC,QAAQ;QACzB,MAAM,YAAY,GAAG,yFAAmC,EAAE,CAAC;QAC3D,IAAI,YAAY,IAAI,YAAY,CAAC,SAAS,EAAE;YACxC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;SACnE;aAAM;YACH,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACvC;QACD,MAAM,QAAQ,GAAG,0FAAoC,EAAE,CAAC;QACxD,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;YACzB,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;SAC7B;aAAM;YACH,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YACxB,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;SAC7B;IACL,CAAC;IAED,QAAQ;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,4FAAsC,CAAC,CAAC,MAAM,EAAE,EAAE;YACtE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,SAAS;QACL,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE;gBACnC,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,EAAE,CAAC;aACzC;SACJ;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,GAAG;QACC,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,MAAM,IAAI,GAAG;gBACT,EAAE,EAAE,oDAAS,EAAE;gBACf,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,IAAI;aAChB,CAAC;YACF,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjF,IAAI,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;gBACxD,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;oBAChE,IAAI,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;iBAC1B;gBACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gBACjB,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC/C;iBAAM;gBACH,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC;aAC7C;YACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,oFAA8B,CAAC,IAAI,CAAC,CAAC;SACxC;IACL,CAAC;IAED,MAAM;QACF,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC5B,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACZ,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAClD,IAAI,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,EAAE;oBACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;iBACnE;qBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oBACpD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iBACzG;qBAAM;oBACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;iBAChC;gBACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,oFAA8B,CAAC,IAAI,CAAC,CAAC;aACxC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW;QACP,MAAM,MAAM,GAAG,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnD,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;YACf,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACrF,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACxE,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oBACxF,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;wBAC3B,IAAI,YAAY,GAAG,EAAE,CAAC;wBACtB,MAAM,OAAO,GAAG,2EAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;wBAC/E,IAAI,OAAO,EAAE;4BACT,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCAChB,IAAI,CAAC,CAAC,WAAW,KAAK,UAAU,EAAE;oCAC9B,YAAY,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;iCAChC;4BACL,CAAC,CAAC,CAAC;yBACN;wBACD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;qBACpC;oBACD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAC7D,uIAA4C,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wBACjG,IAAI,CAAC,KAAK,qFAAoB,EAAE;4BAC5B,OAAO,CAAC,KAAK,CAAC,CAAC;yBAClB;6BAAM;4BACH,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;yBACf;oBACL,CAAC,CAAC,CAAC;oBACH,OAAO;iBACV;aACJ;YACD,OAAO,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI;QACA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACtD,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACtD,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;SAChC;IACL,CAAC;IAED,MAAM;QACF,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpG,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;oBAC3B,IAAI,YAAY,GAAG,EAAE,CAAC;oBACtB,MAAM,OAAO,GAAG,2EAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;oBAC/E,IAAI,OAAO,EAAE;wBACT,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAChB,IAAI,CAAC,CAAC,WAAW,KAAK,UAAU,EAAE;gCAC9B,YAAY,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;6BAChC;wBACL,CAAC,CAAC,CAAC;qBACN;oBACD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;iBACpC;gBACD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;gBAC7D,+IAAoD,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAClE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBACzD,IAAI,CAAC,KAAK,uFAAsB,EAAE;wBAC9B,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;wBACtD,IAAI,CAAC,MAAM,EAAE,CAAC;wBACd,IAAI,CAAC,iBAAiB,EAAE,CAAC;qBAC5B;gBACT,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;gBACtD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,IAAI,CAAC,iBAAiB,EAAE,CAAC;aAC5B;SACJ;IACL,CAAC;IAED,MAAM;QACF,IAAI,CAAC,WAAW,GAAG;YACf,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;SACd,CAAC;IACN,CAAC;IAED,iBAAiB;QACb,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE;YAClC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;SAC7E;aAAM;YACH,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACvC;QACD,2FAAqC,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC/G,CAAC;;AAnLM,2BAAU,GAA4B,IAAI,iDAAe,CAAC,CAAC,CAAC;AAD1D,gBAAgB;IAN5B,yDAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;QAC9B,0EAAwC;QAExC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,gBAAgB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;AChBsC;AACC;AACY;IAQnE,cAAc,SAAd,cAAe,SAAQ,yEAAY;IAC5C,SAAS;QACL,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE;YACxC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG;gBACpC,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,IAAI;aACjB,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;SAC1C;IACL,CAAC;IACD,aAAa,CAAC,IAAI;QACd,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1B,qGAAuC,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;;AAbQ,cAAc;IAN1B,wDAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,2EAAyC;QAEzC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,cAAc;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACVwC;AACC;AACY;IAQnE,cAAc,SAAd,cAAe,SAAQ,yEAAY;IAC5C,SAAS;QACL,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE;YACxC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG;gBACpC,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,IAAI;aACjB,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;SAC1C;IACL,CAAC;IACD,aAAa,CAAC,IAAI;QACd,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1B,iGAAmC,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;;AAbQ,cAAc;IAN1B,wDAAS,CAAC;QACP,QAAQ,EAAE,kBAAkB;QAC5B,wEAAsC;QAEtC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,cAAc;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACV2B;AACa;AACU;AACZ;IAQpD,aAAa,SAAb,aAAc,SAAQ,yEAAY;IAG3C,SAAS;QACL,IAAI,IAAI,CAAC,YAAY,CAAC,eAAe,IAAI,+EAAc,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,+EAAc,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE;YACrJ,IAAI,CAAC,UAAU,GAAG,IAAI,gEAAe,CAAC,+EAAc,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC;SACpG;IACL,CAAC;;AAPQ,aAAa;IANzB,wDAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,uEAAqC;QAErC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,aAAa;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACX4D;AACjC;AAChB;AACsB;AACiC;AACW;AACX;AACN;AACH;AACf;AACV;AACgB;AACK;AACE;AACN;AACI;AACE;AACP;AACsC;AAC/C;AACI;AACO;AACiB;AAC/B;AACK;AAC6B;IAOnF,eAAe,SAAf,eAAgB,SAAQ,8FAAc;IAsC/C,YAAY,KAAwB,EAAS,MAAiB,EAAU,OAAwB,EACpF,4BAA0D;QAClE,KAAK,CAAC,KAAK,CAAC,CAAC;QAF4B,WAAM,GAAN,MAAM,CAAW;QAAU,YAAO,GAAP,OAAO,CAAiB;QACpF,iCAA4B,GAA5B,4BAA4B,CAA8B;QApCtE,cAAS,GAAG,EAAE,CAAC;QACf,aAAQ,GAAG,IAAI,0FAAQ,EAAE,CAAC;QAC1B,eAAU,GAAG,EAAE,CAAC;QAsChB,mBAAc,GAAG,KAAK,CAAC;QACvB,wBAAmB,GAAG,IAAI,CAAC;QAC3B,oBAAe,GAAG,KAAK,CAAC;QAJpB,IAAI,CAAC,UAAU,GAAG,8EAA4B,CAAC,oFAAiB,CAAC,CAAC;IACtE,CAAC;IAhCO,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAkB;QAC5E,IAAI,MAAM,CAAC,QAAQ,EAAE;YACjB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC3B,IAAI,IAAI,CAAC,WAAW,KAAK,6FAAmB,EAAE;oBAC1C,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACnD,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;oBAC7B,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;oBAC5B,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACvB,QAAQ,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC;oBAC9D,IAAI,IAAI,CAAC,SAAS,EAAE;wBAChB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;4BACxB,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;4BAC/C,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;4BAC1B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;4BACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;4BAClC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;4BACzB,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;4BAC3B,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACjC,CAAC,CAAC,CAAC;qBACN;oBACD,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACxB,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;iBAC5F;qBAAM;oBACH,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;iBAC1E;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IASD,QAAQ;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,IAAI,mFAA4B,EAAE;YAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,IAAI,uFAAgC,IAAI,4FAAqC,IAAI,4FAAqC,IAAI,oBAAoB,EAAE;gBAC5I,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;aAC/B;iBAAM;gBACH,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;aAChC;YACD,iGAA0C,CAAC,CAAC,IAAS,EAAE,EAAE;gBACrD,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,oBAAoB,EAAE;oBACxD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;iBAC/B;qBAAM;oBACH,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;iBAChC;YACL,CAAC,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;SACnC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,qGAA8C,CAAC,CAAC,CAAC,EAAE,EAAE;YACzE,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;gBACnD,QAAQ,CAAC,CAAC,gBAAgB,EAAE;oBACxB,KAAK,iGAA+B;wBAChC,IAAI,CAAC,CAAC,WAAW,CAAC,SAAS,IAAI,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE;4BAC7G,yGAA2B,CAAC,IAAI,uEAAmB,CAAC,8BAA8B,CAAC,EAC/E,IAAI,uEAAmB,CAAC,WAAW,CAAC,EAAE,uFAAoB,EAAE,sFAAsB,CAAC,CAAC;yBAE3F;wBACD,MAAM;oBACV,KAAK,kGAAgC;wBACjC,IAAI,CAAC,CAAC,WAAW,CAAC,UAAU,KAAK,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE;4BACrD,yGAA2B,CAAC,IAAI,uEAAmB,CAAC,8BAA8B,CAAC,EAC/E,IAAI,uEAAmB,CAAC,WAAW,CAAC,EAAE,uFAAoB,EAAE,sFAAsB,CAAC,CAAC;yBAC3F;wBACD,MAAM;iBACb;aAEJ;QACL,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,4BAA4B,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAChE,IAAI,GAAG,KAAK,IAAI,EAAE;gBACd,IAAI,gBAAgB,GAAG,IAAI,CAAC,4BAA4B,CAAC,mBAAmB,EAAE;gBAC9E,IAAI,KAAK,GAAG,IAAI,CAAC,4BAA4B,CAAC,gBAAgB,EAAE;gBAChE,IAAI,gBAAgB,KAAK,IAAI,IAAI,GAAG,KAAK,OAAO,EAAE;oBAC9C,MAAM,UAAU,GAAG,6DAAS,CAAC,gBAAgB,CAAC;oBAC9C,MAAM,QAAQ,GAAG,+DAAW,CAAC,0EAAY,EAAE,UAAU,CAAC;oBACtD,MAAM,IAAI,GAAG,QAAQ;oBACrB,IAAI,mBAAmB,GAAG,IAAI,iFAAmB,EAAE;oBACnD,mBAAmB,CAAC,OAAO,GAAG,gBAAgB,EAAE,OAAO,EAAE,KAAK;oBAC9D,mBAAmB,CAAC,EAAE,GAAG,gBAAgB,EAAE,GAAG;oBAC9C,mBAAmB,CAAC,IAAI,GAAG,QAAQ,CAAC;oBACpC,yBAAyB;oBACzB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gGAA0B,EAAE;wBAC3D,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,mBAAmB,EAAE;wBAChF,UAAU,EAAE,+BAA+B;qBAC9C,CAAC,CAAC;iBACN;qBACI,IAAI,gBAAgB,KAAK,IAAI,IAAI,GAAG,KAAK,OAAO,EAAE;oBACnD,IAAI,CAAC,4BAA4B,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACtD,kEAAkE;oBAClE,IAAI,CAAC,YAAY,EAAE;iBACtB;aACJ;iBACI,IAAI,GAAG,KAAK,IAAI,EAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;aACzB;QACL,CAAC,CAAC;QACF,+EAA+E;QAC/E,yEAAyE;QACzE,6DAA6D;QAC7D,iEAAiE;QACjE,0EAA0E;QAC1E,8BAA8B;QAC9B,QAAQ;QACR,wEAAwE;QACxE,4CAA4C;QAC5C,iEAAiE;QACjE,gCAAgC;QAChC,8DAA8D;QAC9D,4DAA4D;QAC5D,4CAA4C;QAC5C,+CAA+C;QAC/C,iCAAiC;QACjC,2EAA2E;QAC3E,gGAAgG;QAChG,2DAA2D;QAC3D,cAAc;QACd,QAAQ;QACR,KAAK;IACT,CAAC;IACD,QAAQ,CAAC,KAAK;QACV,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACtB,CAAC;IACD,SAAS;QACL,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,MAAM,EAAE;YACR,IAAI,MAAM,CAAC,SAAS,EAAE;gBAClB,iFAA6B,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC3D,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBAC1B,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACpD,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;oBAC1B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACrB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;oBAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC;aACN;YACD,eAAe,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;SACzE;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,gBAAgB;QACZ,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;YACjD,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC/D,IAAI,IAAI,CAAC,IAAI,EAAE;gBACX,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;aACnC;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;YACjD,6FAAsC,CAAC;gBACnC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;gBAC3C,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;aAC1D,CAAC,CAAC;SACN;IACL,CAAC;IAED,WAAW;QACP,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,EAAE;YACR,MAAM,KAAK,GAAG,IAAI,iFAAmB,EAAE,CAAC;YACxC,KAAK,CAAC,OAAO,GAAG,cAAc,CAAC;YAC/B,KAAK,CAAC,EAAE,GAAG,oDAAS,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE;gBACvB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;oBACnB,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;iBACzB;gBACD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC7B,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;gBAClC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBACnD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,0FAAmC,CAAC;oBAChC,QAAQ,EAAE,MAAM,CAAC,EAAE;oBACnB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;iBAClC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,YAAY;QACR,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;YACjH,IAAI,mFAA4B,EAAE;gBAC9B,IAAI,KAAK,GAAG;oBACR,IAAI,EAAE,oBAAoB;oBAC1B,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ;iBACtC;gBACD,sFAA+B,CAAC,KAAK,CAAC,CAAC;gBACvC,kFAAuB,CAAC,mBAAmB,EAAE,4BAA4B,CAAC,CAAC;aAC9E;iBAAM;gBACH,MAAM,IAAI,GAAG,6DAAS,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACnD,MAAM,IAAI,GAAG,+DAAW,CAAC,iFAAmB,EAAE,IAAI,CAAC,CAAC;gBACpD,8BAA8B;gBAC9B,MAAM,cAAc,GAAG,iGAA0C,CAAC,SAAS,CAAC;gBAC5E,IAAI,CAAC,OAAO,IAAI,KAAK,cAAc,GAAG,CAAC;gBACvC,IAAI,CAAC,EAAE,GAAG,oDAAS,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACpD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;gBACnD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;oBAC9B,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACpD;qBAAM;oBACH,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;oBAClC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;oBACxD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;iBAC1B;gBACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,0FAAmC,CAAC;oBAChC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;oBAC9B,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;iBACjC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;YAC/E,IAAI,gBAAgB,GAAG,IAAI,gFAAkB,EAAE,CAAC;YAChD,gBAAgB,CAAC,OAAO,GAAG,IAAI,6EAAgB,EAAE,CAAC;YAClD,gBAAgB,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC3E,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;YACnE,KAAK,IAAI,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE;gBACpC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;aAC3C;YACD,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;YACvE,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;YACzE,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;YAC3E,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC,SAAS,EAAE,CAAC;SACnE;IACL,CAAC;IAED,iBAAiB;QACb,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;YACjH,MAAM,IAAI,GAAG,6DAAS,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,+DAAW,CAAC,iFAAmB,EAAE,IAAI,CAAC,CAAC;YACpD,8BAA8B;YAC9B,MAAM,cAAc,GAAG,iGAA0C,CAAC,SAAS,CAAC;YAC5E,IAAI,CAAC,OAAO,IAAI,KAAK,cAAc,GAAG,CAAC;YACvC,IAAI,CAAC,EAAE,GAAG,oDAAS,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YACnD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;gBAC9B,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpD;iBAAM;gBACH,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;gBAClC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBACxD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;aAC1B;YACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,0FAAmC,CAAC;gBAChC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;gBAC9B,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aACjC,CAAC,CAAC;SACN;IACL,CAAC;IACD,aAAa;QACT,IAAI,IAAI,GAAG,+FAAwC,CAAC;QACpD,IAAI,IAAI,EAAE;YACN,MAAM,IAAI,GAAG,6DAAS,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAG,+DAAW,CAAC,iFAAmB,EAAE,IAAI,CAAC,CAAC;YACpD,8BAA8B;YAC9B,MAAM,cAAc,GAAG,iGAA0C,CAAC,SAAS,CAAC;YAC5E,IAAI,CAAC,OAAO,IAAI,KAAK,cAAc,GAAG,CAAC;YACvC,IAAI,CAAC,EAAE,GAAG,oDAAS,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;YAChC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;gBACnD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpD;iBAAM;gBACH,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;gBAClC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBACxD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;aAC1B;YACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,0FAAmC,CAAC;gBAChC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;gBAC9B,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aACjC,CAAC,CAAC;SACN;IACL,CAAC;IACD,YAAY;QACR,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;YAC/E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;gBACpC,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrC,6FAAsC,CAAC;oBACnC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;oBAC3C,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;iBAC1D,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,cAAc;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;QAC/B,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YACxC,MAAM,IAAI,GAAG,IAAI,uEAAmB,CAAC,iEAAiE,CAAC,CAAC;YACxG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC9C,yGAA2B,CAAC,IAAI,EAAE,IAAI,uEAAmB,CAAC,qBAAqB,CAAC,EAC5E,0FAAuB,EAAE,uFAAuB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC5D,IAAI,MAAM,KAAK,sFAAoB,EAAE;oBACjC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACjE,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;wBACZ,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;wBACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;wBACzB,4FAAqC,CAAC;4BAClC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;4BAC9B,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;4BAC5B,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO;yBACzC,CAAC,CAAC;qBACN;oBACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;iBAC9B;YACL,CAAC,CAAC,CAAC;SACV;IACL,CAAC;IACD,UAAU,CAAC,IAAI,EAAE,OAAO;QACpB,oCAAoC;QACpC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY;YACvC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC;YACpC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+EAAkB,EAAE;gBACnD,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;gBACtF,UAAU,EAAE,+BAA+B;aAC9C,CAAC,CAAC;YACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBACzC,IAAI,MAAM,YAAY,0EAAY,EAAE;oBAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC;oBAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;oBACrC,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;wBAC/B,OAAO,EAAE,CAAC;qBACb;iBACJ;gBACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,SAAS;QACL,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;YAChE,mFAA8B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;SAC3E;IACL,CAAC;;;;;;;;AApYQ,eAAe;IAN3B,yDAAS,CAAC;QACP,QAAQ,EAAE,mBAAmB;QAC7B,yEAAuC;QAEvC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,eAAe;AAAA;AAuYrB,MAAM,YAAa,SAAQ,+FAAa;;;QAE3C,aAAQ,GAAG,KAAK,CAAC;IAGrB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AC5ayC;AACmC;AACG;IAMnE,mBAAmB,SAAnB,mBAAmB;;QAE5B,gBAAW,GAAG,EAAE,CAAC;QACjB,gBAAW,GAAG,EAAE,CAAC;IAwGrB,CAAC;IAtGW,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU;QAC9D,IAAI,UAAU,EAAE;YACZ,IAAI,UAAU,CAAC,MAAM,EAAE;gBACnB,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBAC3B,IAAI,EAAE,CAAC,QAAQ,EAAE;wBACb,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;4BAC1B,IAAI,OAAO,CAAC,UAAU,KAAK,wFAAwB,EAAE;gCACjD,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE;oCACzB,UAAU,CAAC,IAAI,CAAC;wCACZ,OAAO,EAAE,UAAU,CAAC,IAAI;wCACxB,KAAK,EAAE,EAAE,CAAC,OAAO;qCACpB,CAAC,CAAC;iCACN;qCAAM;oCACH,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;wCACxB,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,EAAE;4CACnC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gDACjB,OAAO,EAAE,UAAU,CAAC,IAAI;gDACxB,KAAK,EAAE,EAAE,CAAC,OAAO;6CACpB,CAAC,CAAC;yCACN;oCACL,CAAC,CAAC,CAAC;iCACN;6BACJ;wBACL,CAAC,CAAC,CAAC;qBACN;gBACL,CAAC,CAAC,CAAC;aACN;YACD,IAAI,UAAU,CAAC,QAAQ,EAAE;gBACrB,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBAC/B,mBAAmB,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;gBACvE,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ;QAC9B,6FAAqB,CAAC;YAClB,WAAW,EAAE,mBAAmB;YAChC,QAAQ,EAAE;gBACN,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,QAAQ;aACrB;YACD,KAAK,EAAE,QAAQ,CAAC,OAAO;SAC1B,CAAC,CAAC;IACP,CAAC;IAED,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YACtC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBACvB,MAAM,QAAQ,GAAG,EAAE,CAAC;gBACpB,MAAM,QAAQ,GAAG,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBAC/B,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;wBAC5B,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;wBAC7B,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BAC1B,IAAI,GAAG,CAAC,MAAM,KAAK,cAAc,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,iBAAiB,KAAK,KAAK,EAAE;gCAC3F,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;6BACnD;wBACL,CAAC,CAAC,CAAC;qBACN;gBACL,CAAC,CAAC,CAAC;gBACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACtC,IAAI,CAAC,KAAK,CAAC,EAAE;4BACT,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC9B,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;gCAC3B,MAAM,QAAQ,GAAG,CAAC,GAAG,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gCAClD,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;6BAC3B;yBACJ;qBACJ;iBACJ;gBACD,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACjB,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrB,IAAI,GAAG,GAAG,OAAO,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACvC,MAAM,KAAK,GAAG;wBACV,OAAO,EAAE,OAAO;wBAChB,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC;wBAC/B,KAAK,EAAE,EAAE;wBACT,QAAQ,EAAE,EAAE;qBACf,CAAC;oBACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC/B,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBACpB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;4BACb,EAAE,EAAE,MAAM;4BACV,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC;yBAC5B,CAAC,CAAC;wBACH,IAAI,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;4BAC7B,GAAG,GAAG,IAAI,CAAC;yBACd;qBACJ;oBACD,IAAI,GAAG,EAAE;wBACL,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBAChC;gBACL,CAAC,CAAC,CAAC;aACN;YACD,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SACrG;IACL,CAAC;;AA1GQ,mBAAmB;IAJ/B,wDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,6EAA2C;KAC9C,CAAC;GACW,mBAAmB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRsB;AAEQ;AACG;AACO;AACZ;AACY;AACY;AACpB;AACmB;AAEA;AACG;AACxB;AAEqB;AACS;AACZ;AACiB;AAC3B;AAC7B;AAElC,MAAM,aAAc,SAAQ,mDAAS;IAExC,MAAM,CAAC,SAAS;QACZ,IAAI,CAAC,gBAAgB,EAAE;QACvB,IAAI,CAAC,kBAAkB,EAAE;QACzB,IAAI,CAAC,kBAAkB,EAAE;QACzB,oFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,UAAU;YACd,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,+EAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;YACvB,IAAI,EAAE,CAAC,MAAM,CAAC;SACjB,CAAC,CAAC;QAEH,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,gFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,qGAAuB,CAAC;YACrD,KAAK,EAAE,YAAY;YACnB,aAAa,EAAE,8FAA0B;YACzC,GAAG,EAAE,GAAG,EAAE;YACV,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,eAAe,EAAE,CAAC,IAAI,EAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBACrC,OAAO,OAAO,IAAI,IAAI;YAC1B,CAAC;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,qGAAuB,CAAC;YACrD,KAAK,EAAE,WAAW;YAClB,aAAa,EAAE,8FAA0B;YACzC,GAAG,EAAE,GAAG,EAAE;YACV,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,eAAe,EAAE,CAAC,IAAI,EAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBACrC,OAAO,OAAO,IAAI,IAAI;YAC1B,CAAC;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,oBAAoB;YACxB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,qGAAuB,CAAC;YACrD,KAAK,EAAE,sBAAsB;YAC7B,aAAa,EAAE,8FAA0B;YACzC,GAAG,EAAE,GAAG,EAAE;YACV,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,eAAe,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;gBACtC,OAAO,OAAO,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YACpF,CAAC;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,qGAAuB,CAAC;YACrD,KAAK,EAAE,YAAY;YACnB,aAAa,EAAE,8FAA0B;YACzC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC;YACnE,CAAC;YACD,QAAQ,EAAE;gBACN,QAAQ,EAAE,IAAI;aACjB;YACD,GAAG,EAAE,GAAG,EAAE;YACV,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;SACb,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,qGAAuB,CAAC;YACrD,KAAK,EAAE,YAAY;YACnB,aAAa,EAAE,8FAA0B;YACzC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YACpE,CAAC;YACD,GAAG,EAAE,GAAG,EAAE;YACV,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;SACb,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,4FAAoB,CAAC;YAClD,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE;gBACN,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,iEAAQ;aACvB;YACD,GAAG,EAAE,GAAG,EAAE;YACV,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;SACb,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,gBAAgB;YACpB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,4FAAoB,CAAC;YAClD,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE;gBACN,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,6EAAc;aAC7B;YACD,GAAG,EAAE,GAAG,EAAE;YACV,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;SACb,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,4FAAoB,CAAC;YAClD,KAAK,EAAE,cAAc;YACrB,QAAQ,EAAE;gBACN,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,qEAAU;aACzB;YACD,GAAG,EAAE,GAAG,EAAE;YACV,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,2EAAoB,CAAC,CAAC,CAAC,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC;gBACT,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;aACvB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,4FAAoB,CAAC;YAClD,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE;gBACN,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,OAAO;gBACpB,eAAe,EAAE,OAAO;gBACxB,iBAAiB,EAAE,OAAO;gBAC1B,WAAW,EAAE,OAAO;aACvB;YACD,GAAG,EAAE,GAAG,EAAE;YACV,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;SACb,CAAC,CAAC;QAMH,gFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,qGAAuB,CAAC;YACrD,KAAK,EAAE,aAAa;YACpB,aAAa,EAAE,8FAA0B;YACzC,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACb,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;wBACrB,aAAa,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;wBAC1C,aAAa,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;wBAC1C,aAAa,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;wBAC1C,MAAM,KAAK,GAAG,IAAI,wFAAwB,EAAE,CAAC;wBAC7C,KAAK,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;4BACrC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCAC1C,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;oCAClB,YAAY,EAAE,CAAC;oCACf,KAAK,EAAE,IAAI;iCACd,CAAC,CAAC;4BACP,CAAC,CAAC,CAAC;wBACP,iGAA0C,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBACpD,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;4BACjC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;yBAC1C;qBACJ;oBACD,uFAAgC,CAAC,IAAI,CAAC,CAAC;gBAC3C,CAAC;aACJ;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,yFAAmB,CAAC;YACjD,KAAK,EAAE,GAAG;YACV,aAAa,EAAE,6FAAyB;YACxC,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,SAAS,EAAC,QAAQ;aACrB;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,IAAG,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS;YAChG,CAAC;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,yFAAmB,CAAC;YACjD,KAAK,EAAE,GAAG;YACV,aAAa,EAAE,6FAAyB;YACxC,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;aACtB;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS;YACjG,CAAC;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,yFAAmB,CAAC;YACjD,KAAK,EAAE,GAAG;YACV,aAAa,EAAE,6FAAyB;YACxC,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;aACtB;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS;YACjG,CAAC;SACJ,CAAC,CAAC;QAEH,gFAAe,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,qGAAuB,CAAC;YACrD,KAAK,EAAE,gBAAgB;YACvB,aAAa,EAAE,8FAA0B;YACzC,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACb,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;wBACrB,aAAa,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;wBAC7C,aAAa,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;wBAC7C,aAAa,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;wBAC7C,MAAM,KAAK,GAAG,IAAI,wFAAwB,EAAE,CAAC;wBAC7C,KAAK,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;4BACrC,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACnD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;oCAClB,YAAY,EAAE,CAAC;oCACf,KAAK,EAAE,IAAI;iCACd,CAAC,CAAC;4BACP,CAAC,CAAC,CAAC;wBACP,iGAA0C,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBACpD,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;4BACjC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;yBAC1C;qBACJ;oBACD,uFAAgC,CAAC,IAAI,CAAC,CAAC;gBAC3C,CAAC;aACJ;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,0GAAoB,CAAC;YAClD,IAAI,EAAE,sEAAU;YAChB,KAAK,EAAE,GAAG;YACV,aAAa,EAAE,6FAAyB;YACxC,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;aACtB;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY;YAC7G,CAAC;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,0GAAoB,CAAC;YAClD,IAAI,EAAE,sEAAU;YAChB,KAAK,EAAE,GAAG;YACV,aAAa,EAAE,6FAAyB;YACxC,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;aACtB;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY;YAC7G,CAAC;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,0GAAoB,CAAC;YAClD,IAAI,EAAE,sEAAU;YAChB,KAAK,EAAE,GAAG;YACV,aAAa,EAAE,6FAAyB;YACxC,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;aACtB;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY;YAC7G,CAAC;SACJ,CAAC,CAAC;QAEH,gFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,qGAAuB,CAAC;YACrD,KAAK,EAAE,YAAY;YACnB,aAAa,EAAE,8FAA0B;YACzC,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACb,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;wBACrB,aAAa,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;wBACzC,aAAa,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;wBACzC,aAAa,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;wBACzC,MAAM,KAAK,GAAG,IAAI,wFAAwB,EAAE,CAAC;wBAC7C,KAAK,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;4BACrC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACvC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;oCAClB,YAAY,EAAE,CAAC;oCACf,KAAK,EAAE,IAAI;iCACd,CAAC,CAAC;4BACP,CAAC,CAAC,CAAC;wBACP,iGAA0C,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBACpD,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;4BACjC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;yBAC1C;qBACJ;oBACD,uFAAgC,CAAC,IAAI,CAAC,CAAC;gBAC3C,CAAC;aACJ;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,yFAAmB,CAAC;YACjD,KAAK,EAAE,GAAG;YACV,aAAa,EAAE,6FAAyB;YACxC,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,IAAI,EAAC,IAAI;aACZ;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ;YAC7F,CAAC;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,yFAAmB,CAAC;YACjD,KAAK,EAAE,GAAG;YACV,aAAa,EAAE,6FAAyB;YACxC,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI;aAClC;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ;YAC7F,CAAC;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,yFAAmB,CAAC;YACjD,KAAK,EAAE,GAAG;YACV,aAAa,EAAE,6FAAyB;YACxC,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ,EAAC,IAAI,EAAE,IAAI;aACjC;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ;YAC7F,CAAC;SACJ,CAAC,CAAC;QAKH,gFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,yFAAmB,CAAC;YACjD,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,GAAG;YACR,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;aACtB;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,yFAAmB,CAAC;YACjD,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;aACtB;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,qGAAuB,CAAC;YACrD,KAAK,EAAE,YAAY;YACnB,aAAa,EAAE,8FAA0B;YACzC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,QAAQ,IAAI,IAAI,CAAC,WAAW,IAAI,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,QAAQ,IAAI,IAAI,CAAC,WAAW,IAAI,eAAe,IAAI,IAAI,CAAC,WAAW,IAAI,iBAAiB,IAAI,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC;YACpP,CAAC;YACD,GAAG,EAAE,GAAG,EAAE;YACV,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;SACb,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,4FAAoB,CAAC;YAClD,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE;gBACN,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,6EAAc;aAC7B;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,QAAQ,CAAC;YACzB,CAAC;YACD,GAAG,EAAE,GAAG,EAAE;YACV,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;SACb,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,qGAAuB,CAAC;YACrD,KAAK,EAAE,YAAY;YACnB,aAAa,EAAE,8FAA0B;YACzC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC5G,CAAC;YACD,GAAG,EAAE,GAAG,EAAE;YACV,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;SACb,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,mBAAmB;YACvB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,qGAAuB,CAAC;YACrD,KAAK,EAAE,sBAAsB;YAC7B,aAAa,EAAE,8FAA0B;YACzC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,CAAC;YACpD,CAAC;YACD,GAAG,EAAE,GAAG,EAAE;YACV,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;SACb,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,uBAAuB;YAC3B,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,yFAAmB,CAAC;YACjD,QAAQ,EAAE;gBACN,SAAS,EAAE,MAAM;aACpB;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC;YACtF,CAAC;YACD,GAAG,EAAE,GAAG,EAAE;YACV,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;SACb,CAAC,CAAC;IACP,CAAC;;AAnfe,kBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;ACvBL;AAEvD,MAAM,SAAS;IAKlB,MAAM,CAAC,gBAAgB;QACnB,0FAAoC,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1C,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE;oBAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;oBACzB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;oBACjC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;iBAC9B;qBAAM;oBACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;oBACzB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;oBACjC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;iBAC9B;aACJ;iBAAM;gBACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBACjC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;aAC9B;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACD,MAAM,CAAC,kBAAkB;QACrB,4FAAsC,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5C,IAAI,IAAI,EAAE;gBACN,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;oBAC3B,IAAI,IAAI,CAAC,WAAW,EAAE;wBAClB,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE;4BAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;4BACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;yBAC9B;6BAAM;4BACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;4BACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;yBAC9B;qBACJ;yBAAM;wBACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;wBACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;qBAC9B;iBACJ;aACJ;iBAAM;gBACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;gBAC9C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aAC3C;QAEL,CAAC,CAAC,CAAC;IACP,CAAC;IACD,MAAM,CAAC,eAAe,CAAC,IAAI;IAE3B,CAAC;IAGD,MAAM,CAAC,kBAAkB;QACrB,4FAAsC,CAAC,CAAC,MAAM,EAAE,EAAE;YAC9C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAC7B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC;IACD,MAAM,CAAC,iBAAiB,CAAC,IAAI;IAE7B,CAAC;IACD,MAAM,CAAC,SAAS,KAAK,CAAC;;AA7Df,cAAI,GAAa,IAAI,CAAC;AACtB,qBAAW,GAAU,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJiB;AACf;AACmB;AACO;AACkB;AACC;AAChB;AACe;AACA;AAC9B;AACS;AACwB;AAC1B;AACuB;AACN;AACe;AACiB;AACC;AACb;AAC3B;AAC7B;AAElC,MAAM,YAAa,SAAQ,mDAAS;IAOvC,MAAM,CAAU,eAAe,CAAC,IAAI;QAChC,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACZ,IAAI,CAAC,IAAI,GAAG,IAAI,0DAAI,EAAE,CAAC;aAC1B;YACD,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrC;aAAM;YACH,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChC;IACL,CAAC;IACO,MAAM,CAAC,UAAU;QACrB,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,YAAY,CAAC,WAAW,IAAI,YAAY,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjE,WAAW,GAAG,IAAI,CAAC;SACtB;QACD,IAAI,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3D,WAAW,GAAG,IAAI,CAAC;SACtB;QACD,IAAI,WAAW,EAAE;YACb,IAAI,YAAY,CAAC,WAAW,IAAI,YAAY,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjE,YAAY,CAAC,IAAI,CAAC;oBACd,KAAK,EAAE,UAAU;oBACjB,KAAK,EAAE,YAAY,CAAC,WAAW;iBAClC,CAAC;aACL;YACD,IAAI,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3D,YAAY,CAAC,IAAI,CAAC;oBACd,KAAK,EAAE,aAAa;oBACpB,KAAK,EAAE,YAAY,CAAC,QAAQ;iBAC/B,CAAC;aACL;YACD,YAAY,CAAC,IAAI,CAAC;gBACd,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,YAAY,CAAC,YAAY;aACnC,CAAC;SACL;aAAM;YACH,YAAY,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;SACnD;QACD,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;IACzC,CAAC;IACD,MAAM,CAAC,SAAS;QACZ,IAAI,CAAC,gBAAgB,EAAE;QACvB,IAAI,CAAC,kBAAkB,EAAE;QACzB,oFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,SAAS;YACb,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,+EAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,QAAQ,EAAE,CAAC;oBACP,EAAE,EAAE,MAAM;oBACV,OAAO,EAAE,8FAAyB;oBAClC,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,EAAE,WAAW,CAAC;oBACpD,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iBACzD,EAAE;oBACC,EAAE,EAAE,WAAW;oBACf,OAAO,EAAE,8FAAyB;oBAClC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;oBAC3D,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iBACzC,EAAC;oBACE,EAAE,EAAE,YAAY;oBAChB,OAAO,EAAE,8FAAyB;oBAClC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;oBACvB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iBACzD,EAAE;oBACC,EAAE,EAAE,KAAK;oBACT,OAAO,EAAE,8FAAyB;oBAClC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;oBACvB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iBACzD,CAAC;SAEL,CAAC,CAAC;QACH,cAAc;QACd,gFAAe,CAAC;YACZ,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,sFAAkB,CAAC;YAChD,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,IAAI,EAAE,QAAQ;aACjB;SACJ,CAAC;QACF,oBAAoB;QACpB,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,kFAA4B,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACvC,YAAY,CAAC,IAAI,CAAC;gBACd,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE;oBACH,aAAa,EAAE,CAAC;iBACnB;aACJ,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,YAAY,CAAC,YAAY,GAAG,YAAY;QAExC,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,wFAAkC,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1C,IAAI,cAAc,GAAG,EAAE,CAAC;YACxB,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7B,WAAW,GAAG,IAAI,CAAC;gBACnB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACf,cAAc,CAAC,IAAI,CAAC;wBAChB,KAAK,EAAE,CAAC;wBACR,KAAK,EAAE;4BACH,aAAa,EAAE,8EAA0B,CAAC,CAAC,CAAC,CAAC,KAAK;yBACrD;qBACJ,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACN;YACD,YAAY,CAAC,QAAQ,GAAG,cAAc,CAAC;YACvC,YAAY,CAAC,UAAU,EAAE,CAAC;QAC9B,CAAC,CAAC;QACF,2FAAqC,CAAC,CAAC,MAAM,EAAE,EAAE;YAC7C,IAAI,cAAc,GAAG,EAAE,CAAC;YACxB,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7B,WAAW,GAAG,IAAI,CAAC;gBACnB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACf,cAAc,CAAC,IAAI,CAAC;wBAChB,KAAK,EAAE,CAAC;wBACR,KAAK,EAAE;4BACH,aAAa,EAAE,CAAC;yBACnB;qBACJ,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACN;YACD,YAAY,CAAC,WAAW,GAAG,cAAc,CAAC;YAC1C,YAAY,CAAC,UAAU,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,YAAY;QACZ,gFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,4FAAoB,CAAC;YAClD,UAAU,EAAE,YAAY,CAAC,IAAI;YAC7B,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE;oBACT,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;oBACxB,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;oBACxB,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;oBAC1B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;oBAC1B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;oBAC1B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;oBAC1B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;oBAC1B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;oBAC1B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;oBAC1B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;oBAC1B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;oBAC1B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;oBAC1B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;oBAC1B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;oBAC1B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;oBAC1B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;iBAC7B;gBACD,iBAAiB,EAAE,OAAO;gBAC1B,eAAe,EAAE,OAAO;gBACxB,WAAW,EAAE,QAAQ;aACxB;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,gBAAgB;YACpB,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,4FAAoB,CAAC;YAClD,UAAU,EAAE,YAAY,CAAC,IAAI;YAC7B,MAAM,EAAE,CAAC;YACT,OAAO,EAAC,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,WAAW;gBACxB,iBAAiB,EAAE,OAAO;gBAC1B,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE,YAAY,CAAC,KAAK;gBAClC,WAAW,EAAE,OAAO;gBACpB,WAAW,EAAE,QAAQ;aACxB;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,4FAAoB,CAAC;YAClD,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,yEAAY;gBACxB,WAAW,EAAE,gBAAgB;aAChC;SACJ,CAAC,CAAC;QAEH,sBAAsB;QACtB,gFAAe,CAAC;YACZ,EAAE,EAAC,IAAI;YACP,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,sFAAkB,CAAC;YAChD,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,IAAI,EAAC,kBAAkB;aAC1B;SACJ,CAAC;QACF,gFAAe,CAAC;YACZ,EAAE,EAAE,yBAAyB;YAC7B,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,uHAA6B,CAAC;YAC3D,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,CAAC;wBACN,UAAU,EAAE,iBAAiB;wBAC7B,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,iBAAiB;qBAC7B,EAAE;wBACC,UAAU,EAAE,mBAAmB;wBAC/B,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,YAAY;qBACxB,EAAE;wBACC,UAAU,EAAE,kBAAkB;wBAC9B,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,kBAAkB;qBAC9B,CAAC;aACL;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,uBAAuB;YAC3B,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,uHAA6B,CAAC;YAC3D,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,CAAC;wBACN,UAAU,EAAE,yBAAyB;wBACrC,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,OAAO;qBACnB,EAAE;wBACC,UAAU,EAAE,4BAA4B;wBACxC,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,YAAY;qBACxB,EAAE;wBACC,UAAU,EAAE,4BAA4B;wBACxC,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,UAAU;qBACtB,CAAC;aACL;SACJ,CAAC,CAAC;QACH,2BAA2B;QAC3B,gFAAe,CAAC;YACZ,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,sFAAkB,CAAC;YAChD,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,IAAI,EAAE,qBAAqB;aAC9B;SACJ,CAAC;QACF,gFAAe,CAAC;YACZ,EAAE,EAAE,4BAA4B;YAChC,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,uHAA6B,CAAC;YAC3D,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,CAAC;wBACN,UAAU,EAAE,oBAAoB;wBAChC,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,iBAAiB;qBAC7B,EAAE;wBACC,UAAU,EAAE,sBAAsB;wBAClC,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,YAAY;qBACxB,EAAE;wBACC,UAAU,EAAE,qBAAqB;wBACjC,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,kBAAkB;qBAC1B,CAAC;gBACN,WAAW,EAAE,4BAA4B;aAC5C;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,0BAA0B;YAC9B,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,uHAA6B,CAAC;YAC3D,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,CAAC;wBACN,UAAU,EAAE,4BAA4B;wBACxC,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,OAAO;qBACnB,EAAE;wBACC,UAAU,EAAE,+BAA+B;wBAC3C,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,YAAY;qBACxB,EAAE;wBACC,UAAU,EAAE,+BAA+B;wBAC3C,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,UAAU;qBAClB,CAAC;gBACN,WAAW,EAAE,0BAA0B;aAC1C;SACJ,CAAC,CAAC;QACH,oBAAoB;QACpB,YAAY;QACZ,aAAa;QACb,gFAAe,CAAC;YACZ,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,sFAAkB,CAAC;YAChD,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,IAAI,EAAE,cAAc;aACvB;SACJ,CAAC;QACF,gFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,0GAAoB,CAAC;YAClD,IAAI,EAAE,sEAAU;YAChB,KAAK,EAAE,GAAG;YACV,aAAa,EAAE,6FAAyB;YACxC,YAAY,EAAE,MAAM;YACpB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,OAAO;YACX,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,0GAAoB,CAAC;YAClD,IAAI,EAAE,sEAAU;YAChB,KAAK,EAAE,GAAG;YACV,aAAa,EAAE,6FAAyB;YACxC,YAAY,EAAE,MAAM;YACpB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QAEH,gFAAe,CAAC;YACZ,EAAE,EAAE,eAAe;YACnB,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,qGAAuB,CAAC;YACrD,KAAK,EAAE,iBAAiB;YACxB,aAAa,EAAE,8FAA0B;YACzC,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACb,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;wBACrB,YAAY,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC;wBAC3C,YAAY,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;wBAC1C,YAAY,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC;wBAC3C,YAAY,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;wBAC1C,MAAM,KAAK,GAAG,IAAI,wFAAwB,EAAE,CAAC;wBAC7C,KAAK,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;4BACrC,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCAC3D,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;oCAClB,YAAY,EAAE,CAAC;oCACf,KAAK,EAAE,IAAI;iCACd,CAAC,CAAC;4BACP,CAAC,CAAC,CAAC;wBACP,gGAA0C,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBACpD,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;4BACjC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;yBAC1C;qBACJ;gBACL,CAAC;aACJ;SACJ,CAAC,CAAC;QAEH,gFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,0GAAoB,CAAC;YAClD,IAAI,EAAE,sEAAU;YAChB,KAAK,EAAE,OAAO;YACd,aAAa,EAAE,6FAAyB;YACxC,YAAY,EAAE,MAAM;YACpB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,OAAO,EAAE,CAAC;aACZ;YACF,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;oBACrD,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;oBAClD,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;oBAChD,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;oBAChD,IAAI,CAAC,aAAa,IAAI,IAAI;YACjC,CAAC;SACL,CAAC,CAAC;QAEH,gFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,0GAAoB,CAAC;YAClD,IAAI,EAAE,sEAAU;YAChB,KAAK,EAAE,OAAO;YACd,aAAa,EAAE,6FAAyB;YACxC,YAAY,EAAE,MAAM;YACpB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,OAAO,EAAE,CAAC;aACb;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;oBACrD,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;oBAClD,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;oBAChD,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;oBAChD,IAAI,CAAC,aAAa,IAAI,IAAI;YAClC,CAAC;SACJ,CAAC,CAAC;QAEH,gFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,0GAAoB,CAAC;YAClD,IAAI,EAAE,sEAAU;YAChB,KAAK,EAAE,OAAO;YACd,aAAa,EAAE,6FAAyB;YACxC,YAAY,EAAE,MAAM;YACpB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,OAAO,EAAE,CAAC;aACb;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;oBACrD,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;oBAClD,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;oBAChD,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;oBAChD,IAAI,CAAC,aAAa,IAAI,IAAI;YAClC,CAAC;SACJ,CAAC,CAAC;QAEH,gFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,0GAAoB,CAAC;YAClD,IAAI,EAAE,sEAAU;YAChB,KAAK,EAAE,OAAO;YACd,aAAa,EAAE,6FAAyB;YACxC,YAAY,EAAC,MAAM;YACnB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,OAAO,EAAE,CAAC;aACb;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;oBACrD,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;oBAClD,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;oBAChD,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;oBAChD,IAAI,CAAC,aAAa,IAAI,IAAI;YAClC,CAAC;SACJ,CAAC,CAAC;QACH,YAAY;QACZ,YAAY;QAEZ,gFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,sHAA4B,CAAC;YAC1D,IAAI,EAAE,wFAAmB;YACzB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE;gBACN,cAAc,EAAE,KAAK;gBACrB,KAAK,EAAC,UAAU;aACnB;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,sHAA4B,CAAC;YAC1D,IAAI,EAAE,wFAAmB;YACzB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE;gBACN,cAAc,EAAE,KAAK;gBACrB,KAAK,EAAE,WAAW;aACrB;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,sHAA4B,CAAC;YAC1D,IAAI,EAAE,wFAAmB;YACzB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE;YACP,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE;gBACN,cAAc,EAAE,KAAK;gBACrB,KAAK,EAAE,YAAY;aAEtB;SACJ,CAAC,CAAC;QACH,KAAK;IACT,CAAC;;AAxiBe,iBAAI,GAAG,CAAC,sCAAsC,CAAC;AACxD,kBAAK,GAAyB,IAAI,kDAAe,CAAM,IAAI,CAAC;AACpD,iBAAI,GAA0B,IAAI,kDAAe,CAAO,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;ACzB1B;AACjB;AAC+C;AACD;AACG;AACxB;AACkB;AACA;AACV;AAC7B;AAElC,MAAM,iBAAkB,SAAQ,kDAAS;IAE5C,MAAM,CAAC,SAAS;QACZ,oFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,cAAc;YAClB,OAAO,EAAE,gBAAgB;YACzB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,8EAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,KAAK,CAAC;YAChB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC3B,MAAM,QAAQ,GAAG,yFAAmC,EAAE,CAAC;oBACvD,MAAM,MAAM,GAAG,2FAAqC,EAAE,CAAC;oBACvD,IAAI,QAAQ,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,UAAU,IAAI,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,EAAE;wBAC9F,IAAI,QAAQ,CAAC,WAAW,KAAK,UAAU,IAAI,QAAQ,CAAC,WAAW,KAAK,QAAQ,EAAE;4BAC1E,OAAO,CAAC,IAAI,CAAC,CAAC;yBACjB;6BAAM;4BACH,OAAO,CAAC,KAAK,CAAC,CAAC;yBAClB;qBACJ;yBAAM;wBACH,OAAO,CAAC,KAAK,CAAC,CAAC;qBAClB;gBACL,CAAC,CAAC;YACN,CAAC;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,IAAI,gEAAe,CAAC,wFAAmB,CAAC;YACjD,UAAU,EAAE;gBACR;oBACI,EAAE,EAAE,MAAM;oBACV,MAAM,EAAE,cAAc;oBACtB,OAAO,EAAE,IAAI,gEAAe,CAAC,wFAAmB,CAAC;oBACjD,KAAK,EAAE,QAAQ;oBACf,aAAa,EAAE,4FAAwB;iBAC1C;aACJ;YACD,QAAQ,EAAE;gBACN,UAAU,EAAE,QAAQ;gBACpB,eAAe,EAAE,GAAG,EAAE;oBAClB,MAAM,IAAI,GAAG;wBACT,EAAE,EAAE,oDAAS,EAAE;wBACf,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE,IAAI;wBACX,IAAI,EAAE,IAAI;wBACV,OAAO,EAAE,IAAI;qBAChB,CAAC;oBACF,MAAM,MAAM,GAAG,2FAAqC,EAAE,CAAC;oBACvD,IAAI,MAAM,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;wBACjE,IAAI,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;wBAC3C,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;wBAC3B,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;4BACnD,IAAI,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;yBAC1B;wBACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;qBACpB;oBACD,OAAO,IAAI,CAAC;gBAChB,CAAC;aACJ;YACD,aAAa,EAAE,4FAAwB;SAC1C,CAAC,CAAC;IACP,CAAC;;AAhEe,sBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZb;AACf;AACgH;AAC5F;AACI;AACJ;AACJ;AAC6B;AACxB;AACuB;AACnB;AACE;AACR;AACU;AACkB;AACxB;AACe;AACM;AACA;AACb;AAC7B;AAElC,MAAM,eAAgB,SAAQ,mDAAS;IAE1C,MAAM,CAAU,eAAe,CAAC,IAAI;QAChC,eAAe,CAAC,SAAS,EAAE,CAAC;QAC5B,eAAe,CAAC,eAAe,EAAE,CAAC;IACtC,CAAC;IACO,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,MAAM;QACjD,IAAI,aAAa,EAAE;YACf,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC;YAChC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC;YAClC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;YACjC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,aAAa,CAAC,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7D,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACpC,eAAe,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACnD,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAGO,MAAM,CAAC,SAAS;QACpB,IAAI,eAAe,CAAC,YAAY,EAAE;YAC9B,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,IAAI,IAAI,IAAI,eAAe,CAAC,YAAY,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,eAAe,CAAC,YAAY,CAAC,UAAU,IAAI,CAAC,EAAE;gBACvJ,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;oBACtF,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;aACN;YACD,IAAI,eAAe,CAAC,YAAY,CAAC,WAAW,EAAE;gBAC1C,eAAe,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBAC5D,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC5C,CAAC,CAAC,CAAC;gBACH,IAAI,eAAe,CAAC,YAAY,CAAC,UAAU,EAAE;oBACzC,IAAI,eAAe,CAAC,YAAY,CAAC,UAAU,IAAI,IAAI,EAAE;wBACjD,QAAQ,eAAe,CAAC,YAAY,CAAC,UAAU,EAAE;4BAC7C,KAAK,eAAe,CAAC,YAAY,CAAC,CAAC,MAAM;4BACzC,KAAK,CAAC;gCACF,MAAM;4BACV,KAAK,CAAC;gCACF,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,gCAAgC,EAAE,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;oCAC1I,MAAM,SAAS,GAAG,EAAE,CAAC;oCACrB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wCACjB,SAAS,CAAC,IAAI,CAAC;4CACX,KAAK,EAAE,GAAG,CAAC,GAAG;4CACd,OAAO,EAAE,GAAG,CAAC,OAAO;yCACvB,CAAC,CAAC;oCACP,CAAC,CAAC,CAAC;oCACH,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gCAC3C,CAAC,CAAC,CAAC;gCACH,MAAM;4BACV,KAAK,CAAC;gCACF,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,sBAAsB,EAAE,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE;oCACrI,MAAM,MAAM,GAAG,EAAE,CAAC;oCAClB,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wCACtB,MAAM,CAAC,IAAI,CAAC;4CACR,KAAK,EAAE,GAAG,CAAC,GAAG;4CACd,OAAO,EAAE,GAAG,CAAC,OAAO;yCACvB,CAAC,CAAC;oCACP,CAAC,CAAC,CAAC;oCACH,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gCACxC,CAAC,CAAC,CAAC;gCACH,MAAM;yBACb;qBACJ;yBAAM;wBACH,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,gCAAgC,EAAE,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;4BAC1I,IAAI,MAAM,GAAG,EAAE,CAAC;4BAChB,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gCACzB,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gCACpF,IAAI,MAAM,EAAE;oCACR,eAAe,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC;oCAC5C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wCACjB,MAAM,CAAC,IAAI,CAAC;4CACR,KAAK,EAAE,GAAG,CAAC,GAAG;4CACd,OAAO,EAAE,GAAG,CAAC,OAAO;yCACvB,CAAC,CAAC;oCACP,CAAC,CAAC,CAAC;oCACH,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iCACvC;6BACJ;wBACL,CAAC,CAAC,CAAC;wBACH,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,sBAAsB,EAAE,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;4BAChI,IAAI,MAAM,GAAG,EAAE,CAAC;4BAChB,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gCACzB,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gCACpF,IAAI,MAAM,EAAE;oCACR,eAAe,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC;oCAC5C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wCACjB,MAAM,CAAC,IAAI,CAAC;4CACR,KAAK,EAAE,GAAG,CAAC,GAAG;4CACd,OAAO,EAAE,GAAG,CAAC,OAAO;yCACvB,CAAC,CAAC;oCACP,CAAC,CAAC,CAAC;oCACH,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iCACvC;6BACJ;wBACL,CAAC,CAAC,CAAC;qBACN;iBAEJ;aACJ;SACJ;IACL,CAAC;IAIO,MAAM,CAAC,eAAe;QAC1B,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,eAAe,CAAC,YAAY,IAAI,eAAe,CAAC,YAAY,CAAC,UAAU,EAAE;YACzE,IAAI,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,IAAI,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/G,MAAM,IAAI,GAAG,EAAE,CAAC;gBAChB,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC5D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC,CAAC,CAAC;gBACH,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAChC;YACD,IAAI,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,IAAI,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/G,UAAU,GAAG,0FAAkC,CAAC,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aACvG;YACD,IAAI,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,IAAI,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzG,MAAM,IAAI,GAAG,EAAE,CAAC;gBAChB,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACrD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;gBACtE,CAAC,CAAC,CAAC;gBACH,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC9B;SACJ;QACD,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAGD,MAAM,CAAC,SAAS;QACZ,eAAe,CAAC,gBAAgB,GAAG,yFAAmC,CAAmB,0EAAgB,CAAC,CAAC;QAC3G,eAAe,CAAC,WAAW,GAAG,yFAAmC,CAAc,gEAAW,CAAC,CAAC;QAC5F,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,YAAY;YAChB,OAAO,EAAE,cAAc;YACvB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,+EAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,KAAK,CAAC;YAChB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YACtD,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC3B,MAAM,QAAQ,GAAG,0FAAmC,EAAE,CAAC;oBACvD,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;wBACjJ,MAAM,MAAM,GAAG,0EAAsB,EAAE,CAAC;wBACxC,MAAM,UAAU,GAAG,oFAAgC,CAAC,MAAM,CAAC,CAAC;wBAC5D,sFAAoC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;4BACrE,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;wBAC7C,CAAC,CAAC,CAAC;qBACN;yBAAM;wBACH,OAAO,CAAC,KAAK,CAAC;qBACjB;gBACL,CAAC,CAAC;YACN,CAAC;SACJ,CAAC,CAAC;QACH,uFAAgC,CAAC,CAAC,EAAE,EAAE,EAAE;YACpC,IAAI,EAAE,IAAI,sEAAa,IAAI,eAAe,CAAC,YAAY,EAAE;gBACrD,eAAe,CAAC,SAAS,EAAE,CAAC;aAC/B;QACL,CAAC,CAAC;QACF,MAAM,MAAM,GAAG;YACX,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;YAClC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;YACjC,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE;YACpC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;SACrC;QACD,iFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,4FAAoB,CAAC;YAClD,KAAK,EAAE,kBAAkB;YAEzB,QAAQ,EAAE;gBACN,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,MAAM;gBACnB,iBAAiB,EAAE,SAAS;gBAC5B,eAAe,EAAE,OAAO;gBACxB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBACd,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE;wBACtB,OAAO,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC;wBAC/C,OAAO,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC;wBAChD,OAAO,eAAe,CAAC,YAAY,CAAC,YAAY,CAAC;wBACjD,OAAO,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC;wBAC/C,MAAM,KAAK,GAAG,IAAI,wFAAwB,EAAE,CAAC;wBAC7C,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BACpE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;gCAClB,YAAY,EAAE,CAAC;gCACf,KAAK,EAAE,IAAI;6BACd,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;wBACH,eAAe,CAAC,gBAAgB,CAAC,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;wBACjF,iGAA0C,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBACpD,QAAQ,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;4BACvB,KAAK,IAAI;gCAEL,MAAM;4BACV,KAAK,CAAC;gCACF,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;oCACtF,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gCACxC,CAAC,CAAC,CAAC;gCACH,MAAM;4BACV,KAAK,CAAC,CAAC;4BACP,KAAK,CAAC;gCACF,eAAe,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oCAC5D,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gCAC5C,CAAC,CAAC,CAAC;gCACH,MAAM;yBACb;qBACJ;gBACL,CAAC;aACJ;SACJ,CAAC,CAAC;QAEH,iFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,4FAAoB,CAAC;YAClD,KAAK,EAAE,aAAa;YACpB,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;YACxD,CAAC;YACD,QAAQ,EAAE;gBACN,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,KAAK;gBACf,cAAc,EAAE,eAAe,CAAC,UAAU;gBAC1C,iBAAiB,EAAE,SAAS;gBAC5B,eAAe,EAAE,KAAK;gBACtB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBACd,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;wBAC3C,IAAI,eAAe,CAAC,YAAY,EAAE;4BAC9B,IAAI,eAAe,CAAC,YAAY,CAAC,UAAU,IAAI,IAAI,EAAE;gCACjD,eAAe,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;gCAC/C,eAAe,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;6BAClD;4BACD,IAAI,eAAe,CAAC,YAAY,CAAC,UAAU,IAAI,CAAC,EAAE;gCAC9C,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,gCAAgC,EAAE,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;oCAC1I,MAAM,SAAS,GAAG,EAAE,CAAC;oCACrB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wCACjB,SAAS,CAAC,IAAI,CAAC;4CACX,KAAK,EAAE,GAAG,CAAC,GAAG;4CACd,OAAO,EAAE,GAAG,CAAC,OAAO;yCACvB,CAAC,CAAC;oCACP,CAAC,CAAC,CAAC;oCACH,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gCAC3C,CAAC,CAAC,CAAC;6BACN;4BACD,IAAI,eAAe,CAAC,YAAY,CAAC,UAAU,IAAI,CAAC,EAAE;gCAC9C,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,sBAAsB,EAAE,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE;oCACrI,MAAM,MAAM,GAAG,EAAE,CAAC;oCAClB,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wCACtB,MAAM,CAAC,IAAI,CAAC;4CACR,KAAK,EAAE,GAAG,CAAC,GAAG;4CACd,OAAO,EAAE,GAAG,CAAC,OAAO;yCACvB,CAAC,CAAC;oCACP,CAAC,CAAC,CAAC;oCACH,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gCACxC,CAAC,CAAC,CAAC;6BACN;yBACJ;qBACJ;gBACL,CAAC;aACJ;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,4FAAoB,CAAC;YAClD,KAAK,EAAE,cAAc;YACrB,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC;YACpD,CAAC;YACD,QAAQ,EAAE;gBACN,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,KAAK;gBACf,cAAc,EAAE,eAAe,CAAC,MAAM;gBACtC,iBAAiB,EAAE,SAAS;gBAC5B,eAAe,EAAE,OAAO;gBACxB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;oBACX,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC;oBACjC,IAAI,QAAQ,EAAE;wBACV,MAAM,YAAY,GAAG,EAAE,CAAC;wBACxB,IAAI,QAAQ,CAAC,UAAU,IAAI,CAAC,IAAI,QAAQ,CAAC,WAAW,IAAI,IAAI,EAAE;4BAC1D,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;4BAC5B,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;yBACpC;wBACD,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBAChC,QAAQ,CAAC,UAAU,GAAG,IAAI,uEAAc,EAAE,CAAC;wBAC3C,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBAChC,eAAe,CAAC,eAAe,EAAE,CAAC;wBAClC,uFAAgC,CAAC,IAAI,CAAC,CAAC;qBAC1C;gBACL,CAAC;aACJ;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,sFAAkB,CAAC;YAChD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,UAAU,CAAC;YAC3B,CAAC;YACD,QAAQ,EAAE;gBACN,IAAI,EAAC,YAAY;gBACjB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;oBACX,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC;oBACjC,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,EAAE;wBACjC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;4BAC5E,IAAI,UAAU,EAAE;gCACZ,MAAM,QAAQ,GAAG,IAAI,+GAAwB,EAAE,CAAC;gCAChD,QAAQ,CAAC,eAAe,GAAG,6EAAyB,CAAC,QAAQ,CAAC,CAAC;gCAC/D,IAAI,QAAQ,CAAC,UAAU,EAAE;oCACrB,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAC,UAAU,CAAC;iCACjD;gCACD,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC;gCAC3C,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCAC3B,MAAM,GAAG,GAAG,IAAI,2GAAoB,EAAE,CAAC;oCACvC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;oCAClB,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC;oCACtB,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;oCACrC,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,gBAAgB,CAAC;oCAC5C,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gCAC/B,CAAC,CAAC,CAAC;gCACH,uHAAgC,CAAC,QAAQ,EAAE,kCAAkC,EAAE,CAAC,CAAC,EAAE,EAAE;oCACjF,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;oCACxB,eAAe,CAAC,eAAe,EAAE,CAAC;oCAClC,4FAAqC,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;gCACxE,CAAC,CAAC,CAAC;6BACN;wBACL,CAAC,CAAC,CAAC;qBACN;gBACL,CAAC;aACJ;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,YAAY;YACpB,UAAU,EAAE,eAAe,CAAC,UAAU;YACtC,OAAO,EAAE,IAAI,iEAAe,CAAC,4FAAoB,CAAC;YAClD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5F,CAAC;YACD,QAAQ,EAAE;gBACN,QAAQ,EAAE,IAAI;aAEjB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,YAAY;YACpB,UAAU,EAAE,eAAe,CAAC,UAAU;YACtC,OAAO,EAAE,IAAI,iEAAe,CAAC,4FAAoB,CAAC;YAClD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5F,CAAC;YACD,QAAQ,EAAE;gBACN,QAAQ,EAAE,IAAI;aAEjB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,YAAY;YACpB,UAAU,EAAE,eAAe,CAAC,QAAQ;YACpC,OAAO,EAAE,IAAI,iEAAe,CAAC,4FAAoB,CAAC;YAClD,KAAK,EAAC,cAAc;YACpB,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YACtF,CAAC;YACD,QAAQ,EAAE;gBACN,QAAQ,EAAE,IAAI;aAEjB;SACJ,CAAC,CAAC;IACP,CAAC;;AA/Xe,oBAAI,GAAG,CAAC,sCAAsC,CAAC;AAmBhD,0BAAU,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;AAC7D,sBAAM,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;AAkFzD,0BAAU,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;AAC7D,0BAAU,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;AAC7D,wBAAQ,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/HxB;AACf;AACyC;AACtB;AACgD;AACtB;AACD;AACzB;AACyB;AAC1B;AACJ;AACQ;AACyB;AACxB;AACF;AACF;AACqC;AACT;AACT;AACe;AACT;AACe;AACG;AACT;AACG;AACzB;AAC7B;AAElC,MAAM,gBAAiB,SAAQ,mDAAS;IAQ3C,MAAM,CAAU,eAAe,CAAC,IAAI;QAChC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACZ,IAAI,CAAC,IAAI,GAAG,IAAI,0DAAI,EAAE,CAAC;aAC1B;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACd,IAAI,CAAC,MAAM,GAAG,IAAI,8DAAM,EAAE,CAAC;aAC9B;YACD,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC3D,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACzD,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC7D,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAC1D;aAAM;YACH,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACtC;IACL,CAAC;IAED,MAAM,CAAC,SAAS;QACZ,IAAI,CAAC,gBAAgB,EAAE;QACvB,IAAI,CAAC,kBAAkB,EAAE;QACzB,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,aAAa;YACjB,OAAO,EAAE,eAAe;YACxB,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,+EAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,QAAQ,EAAE;gBACN;oBACI,EAAE,EAAE,OAAO;oBACX,OAAO,EAAE,8FAAyB;oBAClC,OAAO,EAAE,CAAC,KAAK,EAAC,KAAK,EAAC,KAAK,CAAC;oBAC5B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iBACzD,EAAE;oBACC,EAAE,EAAE,QAAQ;oBACZ,OAAO,EAAE,8FAAyB;oBAClC,OAAO,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,CAAC;oBAC1D,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iBACzD,EAAE;oBACC,EAAE,EAAE,QAAQ;oBACZ,OAAO,EAAE,8FAAyB;oBAClC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAC,KAAK,CAAC;oBAC7B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iBACzD;aACJ;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,wBAAwB;YAC5B,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,qGAAuB,CAAC;YACrD,UAAU,EAAE,gBAAgB,CAAC,eAAe;YAC5C,KAAK,EAAE,0BAA0B;YACjC,aAAa,EAAE,8FAA0B;YACzC,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;SACT,CAAC,CAAC;QACH,IAAI,WAAW,GAAG,yFAAmC,CAAc,gEAAW,CAAC,CAAC;QAChF,WAAW,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAC9C,MAAM,IAAI,GAAG,CAAC,EAAE,OAAO,EAAE,gGAA0C,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5F,IAAI,MAAM,EAAE;gBACR,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;aACxB;YACD,IAAI,SAAS,GAAG,IAAI,CAAC;YACrB,iFAAe,CAAC;gBACZ,EAAE,EAAE,UAAU;gBACd,OAAO,EAAC,OAAO;gBACf,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,4FAAoB,CAAC;gBAClD,KAAK,EAAE,iBAAiB;gBACxB,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,CAAC;gBACV,GAAG,EAAE,CAAC;gBACN,QAAQ,EAAE;oBACN,WAAW,EAAE,gBAAgB;oBAC7B,QAAQ,EAAE,KAAK;oBACf,WAAW,EAAE,SAAS;oBACtB,eAAe,EAAE,KAAK;oBACtB,iBAAiB,EAAE,SAAS;oBAC5B,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;wBACX,IAAI,EAAE,EAAE;4BACJ,IAAI,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE;gCACrD,EAAE,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;6BAC/C;4BACD,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;yBACxC;oBACL,CAAC;iBACJ;aACJ,CAAC,CAAC;YACH,iFAAe,CAAC;gBACZ,EAAE,EAAE,gBAAgB;gBACpB,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,sFAAkB,CAAC;gBAChD,MAAM,EAAE,CAAC;gBACT,OAAO,EAAC,CAAC;gBACT,GAAG,EAAE,CAAC;gBACN,QAAQ,EAAE;oBACN,OAAO,EAAE,yBAAyB;oBAClC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;wBACX,IAAI,EAAE,IAAI,EAAE,CAAC,YAAY,EAAE;4BACvB,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC;4BAChC,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;gCAC7B,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oCAC7D,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE;wCAC5B,MAAM,SAAS,GAAG,6EAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;wCACrE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;wCACxB,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wCAC3B,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;wCACpC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;qCACnC;gCACL,CAAC,CAAC,CAAC;6BACN;yBACJ;oBACL,CAAC;oBACD,OAAO,EAAE,yBAAyB;iBACrC;aACJ,CAAC,CAAC;QACP,CAAC,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,OAAO,EAAC,OAAO;YACf,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,4FAAoB,CAAC;YAClD,KAAK,EAAE,cAAc;YACrB,aAAa,EAAE,4FAAwB;YACvC,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE;gBACN,WAAW,EAAE,WAAW;gBACxB,QAAQ,EAAC,IAAI;gBACb,cAAc,EAAE,mFAA+B;gBAC/C,iBAAiB,EAAE,WAAW;gBAC9B,KAAK,EAAC,WAAW;aACpB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,MAAM;YACV,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,wGAAwB,CAAC;YACtD,UAAU,EAAE,gBAAgB,CAAC,IAAI;YACjC,KAAK,EAAE,QAAQ;YACf,aAAa,EAAE,+FAA2B;YAC1C,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,IAAI,EAAE,MAAM;aACf;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,wGAAwB,CAAC;YACtD,UAAU,EAAE,gBAAgB,CAAC,IAAI;YACjC,KAAK,EAAE,UAAU;YACjB,aAAa,EAAE,+FAA2B;YAC1C,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,IAAI,EAAE,QAAQ;aACjB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,wGAAwB,CAAC;YACtD,UAAU,EAAE,gBAAgB,CAAC,IAAI;YACjC,KAAK,EAAE,aAAa;YACpB,aAAa,EAAE,+FAA2B;YAC1C,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,IAAI,EAAE,WAAW;aACpB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,qGAAuB,CAAC;YACrD,UAAU,EAAE,gBAAgB,CAAC,IAAI;YACjC,KAAK,EAAE,aAAa;YACpB,aAAa,EAAE,8FAA0B;YACzC,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,IAAI,EAAE,YAAY;aACrB;SACJ,CAAC,CAAC;QACH,oBAAoB;QACpB,iFAAe,CAAC;YACZ,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,8GAA0B,CAAC;YACxD,IAAI,EAAE,kEAAQ;YACd,KAAK,EAAE,mBAAmB;YAC1B,aAAa,EAAE,8FAA0B;YACzC,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,IAAI,EAAE,kBAAkB;aAC3B;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,CAAC,IAAI,CAAC,iBAAiB;YAClC,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,mBAAmB;YACvB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,qGAAuB,CAAC;YACrD,UAAU,EAAE,gBAAgB,CAAC,eAAe;YAC5C,KAAK,EAAE,qBAAqB;YAC5B,aAAa,EAAE,8FAA0B;YACzC,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,CAAC;YACT,OAAO,EAAC,CAAC;YACT,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,IAAI,QAAQ,GAAG,iFAAuB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC7D,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClC,OAAO,KAAK,CAAC;iBAChB;qBAAM;oBACH,OAAO,IAAI,CAAC;iBACf;YACL,CAAC;YACD,QAAQ,EAAE;gBACN,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACb,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;wBACrB,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;wBACrC,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;wBACzC,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;wBACxC,OAAO,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC;wBAC5C,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC;wBAC1C,MAAM,KAAK,GAAG,IAAI,wFAAwB,EAAE,CAAC;wBAC7C,KAAK,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;4BACrC,CAAC,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACvG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;oCAClB,YAAY,EAAE,CAAC;oCACf,KAAK,EAAE,IAAI;iCACd,CAAC,CAAC;4BACP,CAAC,CAAC,CAAC;wBACP,iGAA0C,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBACpD,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;4BACjC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;yBAC1C;qBACJ;gBACL,CAAC;aACJ;SACJ,CAAC,CAAC;QACH,IAAI,YAAY,GAAG,yFAAmC,CAAe,kEAAY,CAAC,CAAC;QACnF,YAAY,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACxC,iFAAe,CAAC;gBACZ,EAAE,EAAE,aAAa;gBACjB,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,4FAAoB,CAAC;gBAClD,KAAK,EAAE,qBAAqB;gBAC5B,MAAM,EAAE,CAAC;gBACT,OAAO,EAAC,CAAC;gBACT,GAAG,EAAE,CAAC;gBACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;oBACtB,yBAAyB;oBACzB,oCAAoC;oBACpC,yCAAyC;oBACzC,GAAG;oBACH,OAAO,IAAI,CAAC,iBAAiB,CAAC;gBAClC,CAAC;gBACD,QAAQ,EAAE;oBACN,WAAW,EAAE,UAAU;oBACvB,QAAQ,EAAE,KAAK;oBACf,WAAW,EAAE,IAAI;oBACjB,iBAAiB,EAAE,SAAS;oBAC5B,eAAe,EAAE,KAAK;iBACzB;aACJ,CAAC;QACN,CAAC,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,2GAAyB,CAAC;YACvD,GAAG,EAAE,EAAE;YACP,MAAM,EAAC,CAAC;YACR,OAAO,EAAC,CAAC;YACT,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,WAAW,CAAC;YACtD,CAAC;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,gBAAgB;YACpB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,4FAAoB,CAAC;YAClD,KAAK,EAAE,mBAAmB;YAC1B,GAAG,EAAE,EAAE;YACP,MAAM,EAAE,CAAC;YACT,OAAO,EAAC,CAAC;YACT,QAAQ,EAAE;gBACN,WAAW,EAAE,cAAc;gBAC3B,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,yEAAc;aAC7B;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,CAAC;YAC9E,CAAC;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,oBAAoB;YACxB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,4FAAoB,CAAC;YAClD,KAAK,EAAE,uBAAuB;YAC9B,GAAG,EAAE,EAAE;YACP,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE;gBACN,WAAW,EAAE,kBAAkB;gBAC/B,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,6EAAkB;aACjC;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,CAAC;YAC9E,CAAC;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,kBAAkB;YACtB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,4FAAoB,CAAC;YAClD,KAAK,EAAE,qBAAqB;YAC5B,GAAG,EAAE,EAAE;YACP,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE;gBACN,WAAW,EAAE,gBAAgB;gBAC7B,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,2EAAgB;aAC/B;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,CAAC;YAC9E,CAAC;SACJ,CAAC;QACF,YAAY;QACZ,gBAAgB;QAChB,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,qGAAuB,CAAC;YACrD,UAAU,EAAE,gBAAgB,CAAC,eAAe;YAC5C,KAAK,EAAE,aAAa;YACpB,aAAa,EAAE,8FAA0B;YACzC,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACb,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;wBACrB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;wBAChC,4FAAqC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;wBAC5E,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;4BACjC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;yBAC1C;qBACJ;oBACD,uFAAgC,CAAC,IAAI,CAAC,CAAC;gBAC3C,CAAC;aACJ;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,wGAAkB,CAAC;YAChD,IAAI,EAAE,8DAAM;YACZ,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC;gBACpF,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;oBACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;oBAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBAChD;gBACD,OAAO,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC;YACvC,CAAC;SACJ,CAAC,CAAC;QACH,YAAY;QACZ,gBAAgB;QAChB,iFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,qGAAuB,CAAC;YACrD,KAAK,EAAE,cAAc;YACrB,aAAa,EAAE,8FAA0B;YACzC,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACb,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;wBACrB,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;wBACnC,4FAAqC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;wBAC/E,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;4BACjC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;yBAC1C;qBACJ;oBACD,uFAAgC,CAAC,IAAI,CAAC,CAAC;gBAC3C,CAAC;aACJ;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,+FAAqB,CAAC;YACnD,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACxD,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;oBACzB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;oBACtB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBAChD;gBACD,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;YAClC,CAAC;SACJ,CAAC,CAAC;QACH,YAAY;IAChB,CAAC;;AAncc,qBAAI,GAA0B,IAAI,kDAAe,CAAO,IAAI,CAAC;AAC7D,uBAAM,GAA4B,IAAI,kDAAe,CAAS,IAAI,CAAC;AACnE,2BAAU,GAA4B,IAAI,kDAAe,CAAS,IAAI,CAAC;AACvE,6BAAY,GAA4B,IAAI,kDAAe,CAAS,IAAI,CAAC;AACzE,4BAAW,GAA4B,IAAI,kDAAe,CAAS,IAAI,CAAC;AACxE,0BAAS,GAA4B,IAAI,kDAAe,CAAS,IAAI,CAAC;AACtE,gCAAe,GAA4B,IAAI,kDAAe,CAAS,IAAI,CAAC;AAqB3E,qBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxDb;AACf;AACwB;AACJ;AACJ;AAC6B;AACxB;AACuB;AACzB;AAIR;AACY;AACqB;AACA;AACN;AACkB;AACH;AACtB;AAC7B;AAElC,MAAM,yBAA0B,SAAQ,mDAAS;IAEvD,MAAM,CAAU,eAAe,CAAC,IAAI;QACnC,yBAAyB,CAAC,SAAS,EAAE,CAAC;IACvC,CAAC;IACO,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,MAAM;QACpD,IAAI,aAAa,EAAE;YAClB,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC;YAChC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC;YAClC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;YACjC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,aAAa,CAAC,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChE,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACvC,yBAAyB,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC1D,CAAC,CAAC,CAAC;aACH;SACD;IACF,CAAC;IAED,gDAAgD;IACxC,MAAM,CAAC,SAAS;QACvB,IAAI,yBAAyB,CAAC,YAAY,EAAE;SAC3C;IACF,CAAC;IAGD,MAAM,CAAC,SAAS;QACf,yBAAyB,CAAC,mBAAmB;YAC5C,yFAAmC,CAAc,+DAAW,CAAC,CAAC;QAE/D,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,yBAAyB,CAAC,mBAAmB;aAC3C,gBAAgB,EAAE;aAClB,SAAS,CAAC,CAAC,YAAiB,EAAE,EAAE;YAChC,IAAI,YAAY,EAAE;gBACjB,yBAAyB,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aACtD;QACF,CAAC,CAAC,CAAC;QACJ,oFAAmB,CAAC;YACnB,GAAG,EAAE,sCAAsC;YAC3C,EAAE,EAAE,eAAe;YACnB,OAAO,EAAE,kBAAkB;YAC3B,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,+EAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;YACrC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YACtD,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC9B,MAAM,QAAQ,GAAG,yFAAmC,EAAE,CAAC;oBACvD,IACC,QAAQ;wBACR,QAAQ,CAAC,WAAW;wBACpB,QAAQ,CAAC,WAAW,KAAK,WAAW,EACnC;wBACD,MAAM,MAAM,GAAG,0EAAsB,EAAE,CAAC;wBACxC,MAAM,UAAU,GAAG,oFAAgC,CAAC,MAAM,CAAC,CAAC;wBAC5D,sFAAoC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,IAAI,CAC9D,CAAC,MAAM,EAAE,EAAE;4BACV,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;wBAC3C,CAAC,CACD,CAAC;qBACF;yBAAM;wBACN,OAAO,CAAC,KAAK,CAAC,CAAC;qBACf;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;SACD,CAAC,CAAC;QACH,sFAAgC,CAAC,CAAC,EAAE,EAAE,EAAE;YACvC,IAAI,EAAE,IAAI,sEAAa,IAAI,yBAAyB,CAAC,YAAY,EAAE;gBAClE,yBAAyB,CAAC,SAAS,EAAE,CAAC;aACtC;QACF,CAAC,CAAC,CAAC;QACH,MAAM,UAAU,GAAG;YAClB,mDAAmD;YACnD,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE;YACxC,uDAAuD;YACvD,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,UAAU,EAAE;YAClD,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE;YAC1C,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE;YACxC,uDAAuD;YACvD,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE;YAChD,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE;SACtC,CAAC;QAEF,gFAAe,CAAC;YACf,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,eAAe;YACvB,OAAO,EAAE,IAAI,iEAAe,CAAC,2FAAoB,CAAC;YAClD,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACT,WAAW,EAAE,cAAc;gBAC3B,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,UAAU;gBACvB,eAAe,EAAE,OAAO;gBACxB,iBAAiB,EAAE,SAAS;aAC5B;SACD,CAAC,CAAC;QACH,gFAAe,CAAC;YACf,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,qBAAqB;YAC5B,OAAO,EAAE,IAAI,iEAAe,CAAC,sFAAoB,CAAC;YAClD,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,aAAa,EAAE,6FAAyB;YACxC,QAAQ,EAAE;YACT,kCAAkC;aAClC;SACD,CAAC,CAAC;QACH,gFAAe,CAAC;YACf,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,eAAe;YACvB,OAAO,EAAE,IAAI,iEAAe,CAAC,2FAAoB,CAAC;YAClD,KAAK,EAAE,iBAAiB;YACxB,2CAA2C;YAC3C,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACT,WAAW,EAAE,iBAAiB;gBAC9B,QAAQ,EAAE,KAAK;gBACf,cAAc,EAAE,yBAAyB,CAAC,QAAQ;gBAClD,eAAe,EAAE,KAAK;gBACtB,iBAAiB,EAAE,SAAS;aAC5B;SACD,CAAC,CAAC;QACH,MAAM,eAAe,GAAG;YACvB;gBACC,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE,KAAK;aACZ;YACD;gBACC,OAAO,EAAE,UAAU;gBACnB,KAAK,EAAE,QAAQ;aACf;YACD;gBACC,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE,MAAM;aACb;YACD;gBACC,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,OAAO;aACd;YACD;gBACC,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE,MAAM;aACb;SACD,CAAC;QAEF,gFAAe,CAAC;YACf,EAAE,EAAE,gBAAgB;YACpB,MAAM,EAAE,eAAe;YACvB,OAAO,EAAE,IAAI,iEAAe,CAAC,2FAAoB,CAAC;YAClD,KAAK,EAAE,mBAAmB;YAC1B,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACT,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,eAAe;gBAC5B,iBAAiB,EAAE,SAAS;gBAC5B,eAAe,EAAE,OAAO;aACxB;SACD,CAAC,CAAC;QAEH,gFAAe,CAAC;YACf,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,eAAe;YACvB,OAAO,EAAE,IAAI,iEAAe,CAAC,4FAAoB,CAAC;YAClD,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;SACN,CAAC,CAAC;QAEH,uDAAuD;QACvD,gFAAe,CAAC;YACf,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,IAAI,iEAAe,CAAC,wGAAwB,CAAC;YACtD,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,aAAa,EAAE,+FAA2B;YAC1C,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9C,CAAC;YACD,QAAQ,EAAE;gBACT,IAAI,EAAE,MAAM;gBACZ,kCAAkC;aAClC;SACD,CAAC,CAAC;QAEH,yDAAyD;QACzD,gFAAe,CAAC;YACf,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,wGAAwB,CAAC;YACtD,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,aAAa,EAAE,+FAA2B;YAC1C,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9C,CAAC;YACD,QAAQ,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,kCAAkC;aAClC;SACD,CAAC,CAAC;QACH,gFAAe,CAAC;YACf,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,eAAe;YACvB,OAAO,EAAE,IAAI,iEAAe,CAAC,qGAAuB,CAAC;YACrD,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,aAAa,EAAE,+FAA2B;YAC1C,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9C,CAAC;YACD,QAAQ,EAAE;gBACT,IAAI,EAAE,YAAY;aAClB;SACD,CAAC,CAAC;QAEH,wDAAwD;QACxD,MAAM,SAAS,GAAG;YACjB,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;YAC5B,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;YAC5B,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;YAC9B,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;YAC9B,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;YAC9B,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;YAC9B,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;YAC9B,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;YAC9B,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;YAC9B,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;YAC9B,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;YAC9B,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;YAC9B,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;YAC9B,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;YAC9B,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;YAC9B,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;SAC9B,CAAC;QACF,gFAAe,CAAC;YACf,EAAE,EAAE,gBAAgB;YACpB,MAAM,EAAE,eAAe;YACvB,OAAO,EAAE,IAAI,iEAAe,CAAC,2FAAoB,CAAC;YAClD,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,aAAa,EAAE,+FAA2B;YAC1C,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9C,CAAC;YACD,QAAQ,EAAE;gBACT,WAAW,EAAE,aAAa;gBAC1B,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,SAAS;gBACtB,eAAe,EAAE,OAAO;gBACxB,iBAAiB,EAAE,SAAS;aAC5B;SACD,CAAC,CAAC;QACH,4CAA4C;QAC5C,gFAAe,CAAC;YACf,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,eAAe;YACvB,OAAO,EAAE,IAAI,iEAAe,CAAC,4FAAoB,CAAC;YAClD,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;SACN,CAAC,CAAC;QAEH,uDAAuD;QACvD,gFAAe,CAAC;YACf,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,IAAI,iEAAe,CAAC,wGAAwB,CAAC;YACtD,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,aAAa,EAAE,+FAA2B;YAC1C,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9C,CAAC;YACD,QAAQ,EAAE;gBACT,IAAI,EAAE,MAAM;gBACZ,kCAAkC;aAClC;SACD,CAAC,CAAC;QAEH,yDAAyD;QAEzD,gFAAe,CAAC;YACf,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,wGAAwB,CAAC;YACtD,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,aAAa,EAAE,+FAA2B;YAC1C,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9C,CAAC;YACD,QAAQ,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,kCAAkC;aAClC;SACD,CAAC,CAAC;QAEH,gFAAe,CAAC;YACf,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,eAAe;YACvB,OAAO,EAAE,IAAI,iEAAe,CAAC,qGAAuB,CAAC;YACrD,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,aAAa,EAAE,+FAA2B;YAC1C,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9C,CAAC;YACD,QAAQ,EAAE;gBACT,IAAI,EAAE,YAAY;aAClB;SACD,CAAC,CAAC;QAEH,gFAAe,CAAC;YACf,EAAE,EAAE,gBAAgB;YACpB,MAAM,EAAE,eAAe;YACvB,OAAO,EAAE,IAAI,iEAAe,CAAC,2FAAoB,CAAC;YAClD,KAAK,EAAE,aAAa;YACpB,aAAa,EAAE,+FAA2B;YAC1C,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9C,CAAC;YACD,QAAQ,EAAE;gBACT,WAAW,EAAE,aAAa;gBAC1B,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,SAAS;gBACtB,eAAe,EAAE,OAAO;gBACxB,iBAAiB,EAAE,SAAS;aAC5B;SACD,CAAC,CAAC;QACH,gFAAe,CAAC;YACf,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,eAAe;YACvB,OAAO,EAAE,IAAI,iEAAe,CAAC,qGAAuB,CAAC;YACrD,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,aAAa,EAAE,6FAAyB;YACxC,QAAQ,EAAE;gBACT,IAAI,EAAE,YAAY;aAClB;SACD,CAAC,CAAC;QACH,gFAAe,CAAC;YACf,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,oBAAoB;YAC3B,OAAO,EAAE,IAAI,iEAAe,CAAC,sFAAoB,CAAC;YAClD,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,EAAE;YACP,aAAa,EAAE,6FAAyB;YACxC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC3C,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3C,CAAC;SACD,CAAC,CAAC;QAEH,gFAAe,CAAC;YACf,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,oBAAoB;YAC3B,OAAO,EAAE,IAAI,iEAAe,CAAC,sFAAoB,CAAC;YAClD,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,EAAE;YACP,aAAa,EAAE,6FAAyB;YACxC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC3C,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3C,CAAC;SACD,CAAC,CAAC;IACJ,CAAC;;AA1Ye,8BAAI,GAAG,CAAC,sCAAsC,CAAC,CAAC;AAkBjD,kCAAQ,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACzCrB;AAC0B;AACY;AACN;AACH;AACH;AACA;AACV;AAC7B;AAElC,MAAM,gBAAiB,SAAQ,kDAAS;IAE3C,MAAM,CAAC,SAAS;QACZ,oFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,aAAa;YACjB,OAAO,EAAE,eAAe;YACxB,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,8EAAc;SAC1B,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,gEAAe,CAAC,wFAAmB,CAAC;YACjD,UAAU,EAAE;gBACR;oBACI,EAAE,EAAE,UAAU;oBACd,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,IAAI,gEAAe,CAAC,2FAAoB,CAAC;oBAClD,KAAK,EAAE,YAAY;oBACnB,QAAQ,EAAE;wBACN,WAAW,EAAE,UAAU;wBACvB,QAAQ,EAAE,KAAK;wBACf,UAAU,EAAE,qFAAkB;qBACjC;iBACJ;gBACD;oBACI,EAAE,EAAE,UAAU;oBACd,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,IAAI,gEAAe,CAAC,wFAAmB,CAAC;oBACjD,KAAK,EAAE,YAAY;oBACnB,QAAQ,EAAE;wBACN,SAAS,EAAE,QAAQ;wBACnB,OAAO,EAAC,CAAC;qBACZ;iBACJ;gBACD;oBACI,EAAE,EAAE,gBAAgB;oBACpB,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,IAAI,gEAAe,CAAC,2FAAoB,CAAC;oBAClD,KAAK,EAAE,kBAAkB;oBACzB,QAAQ,EAAE;wBACN,WAAW,EAAE,UAAU;wBACvB,QAAQ,EAAE,KAAK;wBACf,UAAU,EAAE,iGAAwB;qBACvC;iBACJ;gBACD;oBACI,EAAE,EAAE,OAAO;oBACX,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,IAAI,gEAAe,CAAC,wFAAmB,CAAC;oBACjD,KAAK,EAAE,SAAS;oBAChB,QAAQ,EAAE;wBACN,SAAS,EAAE,QAAQ;wBACnB,OAAO,EAAE,CAAC;qBACb;iBACJ;aACJ;YACD,QAAQ,EAAE;gBACN,eAAe,EAAE,GAAG,EAAE;oBAClB,OAAO,EAAE,CAAC;gBACd,CAAC;gBACD,UAAU,CAAC,IAAI,EAAE,CAAC;oBACd,IAAI,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC;oBACtC,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;wBACnC,MAAM,IAAI,GAAG,GAAG,qFAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBACrD;oBACD,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;wBACnC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;qBACvC;oBACD,IAAI,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,EAAE;wBACzC,MAAM,IAAI,GAAG,GAAG,iGAAwB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;qBACjE;oBACD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;wBAChC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;qBACpC;oBACD,OAAO,MAAM,CAAC;gBAClB,CAAC;aACJ;SACJ,CAAC,CAAC;IACP,CAAC;;AA/Ee,qBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXf;AACf;AACe;AAUS;AACJ;AAEL;AACD;AACE;AACE;AAEvD,WAAW;AACJ,MAAM,YAAY;IAoBd,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,WAAwB,EAAE,WAAwB,EAAE,WAAiC,EAClH,YAA0B,EAAE,iBAAqC,EAAE,GAA2B,EAC9F,YAA0B,EAAE,eAAsC,EAAE,eAAgC;QACpG,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEf,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,qBAAqB,EAAE,QAAQ,EAAE,aAAa;YACpH,uBAAuB,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,OAAO;YACtH,gBAAgB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAC;QAEvI,MAAM,IAAI,GAAG,IAAI,gEAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/B,kFAA6B,CAAC,GAAG,EAAE;YAC/B,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACxC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,IAAI,MAAM,EAAE;gBACR,IAAI,6DAAU,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;oBACnD,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC;oBACrB,YAAY,CAAC,MAAM,EAAE,CAAC;oBACtB,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;gBACH,yBAAyB;gBACzB,WAAW;gBACX,+DAA+D;gBAC/D,mCAAmC;gBACnC,oCAAoC;gBACpC,4BAA4B;gBAC5B,aAAa;gBACb,eAAe;gBACf,gEAAgE;gBAChE,mCAAmC;gBACnC,oCAAoC;gBACpC,4BAA4B;gBAC5B,aAAa;gBACb,OAAO;gBACP,WAAW;gBACX,8DAA8D;gBAC9D,+BAA+B;gBAC/B,gCAAgC;gBAChC,wBAAwB;gBACxB,SAAS;gBACT,IAAI;aACP;iBAAM;gBACH,IAAI,4DAAO,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;oBAChD,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC;oBACrB,YAAY,CAAC,MAAM,EAAE,CAAC;oBACtB,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACO,MAAM,CAAC,kBAAkB,CAAC,KAAK;QACnC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACnB,MAAM,IAAI,GAAG,IAAI,gEAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,MAAM,CAAC,MAAM;QACjB,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,YAAY,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IACM,MAAM,CAAC,OAAO;QACjB,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACvD,IAAI,KAAK,EAAE;gBACP,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;oBACpD,IAAI,MAAM,IAAI,KAAK,EAAE;wBACjB,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;4BACtB,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;wBAC9C,CAAC,CAAC,CAAC;qBACN;gBACL,CAAC,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACM,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,EAAE;QACvC,IAAI,EAAE,EAAE;YACJ,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YACpD,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACrB,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,IAAI,SAAS,IAAI,4CAA4C,EAAE;gBAC3D,iFAA0B,CAAC,EAAE,CAAC,CAAC;aAClC;iBAAM,IAAI,SAAS,IAAI,wCAAwC,EAAE;gBAC9D,YAAY,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aAClD;SACJ;QACD,IAAI,SAAS,IAAI,4CAA4C,EAAE;YAC3D,YAAY,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACvD;aAAM,IAAI,SAAS,KAAK,8BAA8B,EAAE;YACrD,YAAY,CAAC,qBAAqB,EAAE,CAAC;SACxC;IACL,CAAC;IACO,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK;QACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;YACtC,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC3G,CAAC,CAAC,CAAC;QAEH,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvD,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACrB,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACtB,MAAM,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC1D,IAAI,EAAE,EAAE;wBACJ,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBAClC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;qBACnD;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IACO,MAAM,CAAC,IAAI,CAAC,SAAS;QACzB,YAAY,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE;YAC/B,EAAE,CAAC,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACP,CAAC;IACO,MAAM,CAAC,YAAY,CAAC,SAAS;QACjC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,QAAQ,SAAS,EAAE;YACf,KAAK,oCAAoC;gBAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAAC,MAAM;YACzE,KAAK,wCAAwC;gBAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAAC,MAAM;YACvF,KAAK,4CAA4C;gBAAE,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBAAC,MAAM;YAC/F,KAAK,sCAAsC;gBAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAAC,MAAM;YAC7E,KAAK,oCAAoC;gBAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAAC,MAAM;YACzE,KAAK,4CAA4C;gBAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAAC,MAAM;YACpF,KAAK,iDAAiD;gBAAE,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBAAC,MAAM;YAClG,KAAK,kDAAkD;gBACnD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAChC,MAAM;YACV,KAAK,yCAAyC;gBAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAAC,MAAM;YACnF,KAAK,yCAAyC;gBAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAAC,MAAM;YAC5E,KAAK,2CAA2C;gBAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAAC,MAAM;YAC1G,KAAK,oCAAoC;gBAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAAC,MAAM;YACxE,KAAK,yCAAyC;gBAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAAC,MAAM;YACnF,KAAK,8BAA8B;gBAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAAC,MAAM;YAC1E,KAAK,sCAAsC;gBAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAAC,MAAM;YAC1E,KAAK,uCAAuC;gBAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAAC,MAAM;SACpF;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACO,MAAM,CAAC,gBAAgB,CAAC,SAAS;QACrC,MAAM,KAAK,GAAG,IAAI,8DAAS,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;YACnE,IAAI,MAAM,EAAE;gBACR,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;aAChD;iBAAM;gBACH,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;aAChD;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACO,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,UAAU;QAC5C,IAAI,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE;YACxC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACzD,OAAO,MAAM,CAAC;SACjB;aAAM;YACH,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IACD,gBAAgB;IAChB,iCAAiC;IACjC,gDAAgD;IAChD,wHAAwH;IACxH,4BAA4B;IAC5B,gCAAgC;IAChC,sBAAsB;IACtB,0CAA0C;IAC1C,eAAe;IACf,aAAa;IACb,SAAS;IACT,qBAAqB;IACrB,GAAG;IACH,qCAAqC;IACrC,gDAAgD;IAChD,yEAAyE;IACzE,sCAAsC;IACtC,aAAa;IACb,SAAS;IACT,GAAG;IACH,YAAY;IACZ,kBAAkB;IAClB,mCAAmC;IACnC,gDAAgD;IAChD,2HAA2H;IAC3H,4BAA4B;IAC5B,gCAAgC;IAChC,sBAAsB;IACtB,0CAA0C;IAC1C,eAAe;IACf,aAAa;IACb,SAAS;IACT,qBAAqB;IACrB,GAAG;IACH,sCAAsC;IACtC,oJAAoJ;IACpJ,GAAG;IACH,qCAAqC;IACrC,qDAAqD;IACrD,GAAG;IACH,YAAY;IACZ,gBAAgB;IACT,MAAM,CAAC,UAAU,CAAC,GAAG;QACxB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBACvG,IAAI,CAAC,MAAM,EAAE;oBACT,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;qBAAM;oBACH,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC3B;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,YAAY;IACZ,oBAAoB;IACb,MAAM,CAAC,cAAc,CAAC,GAAG;QAC5B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,OAAO,EAAE,EAAE;YAC3C,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC1H,IAAI,CAAC,MAAM,EAAE;oBACT,OAAO,CAAC,EAAE,CAAC,CAAC;iBACf;qBAAM;oBACH,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC3B;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACM,MAAM,CAAC,uBAAuB,CAAC,GAAG;QACrC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,EAAE;YACzC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,qBAAqB,EAAE,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3H,IAAI,CAAC,CAAC,EAAE;oBACJ,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;qBAAM;oBACH,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;iBACtB;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,YAAY;IACZ,gBAAgB;IACT,MAAM,CAAC,UAAU,CAAC,GAAG;QACxB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBACvG,IAAI,CAAC,MAAM,EAAE;oBACT,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;qBAAM;oBACH,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC3B;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,YAAY;IACZ,eAAe;IACR,MAAM,CAAC,SAAS,CAAC,GAAG;QACvB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBACvG,IAAI,CAAC,MAAM,EAAE;oBACT,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;qBAAM;oBACH,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC3B;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACM,MAAM,CAAC,YAAY,CAAC,GAAG;QAC1B,OAAO,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,mDAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,GAAG,OAAO,GAAG,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC;IAC9I,CAAC;IACD,YAAY;IACZ,qBAAqB;IACd,MAAM,CAAC,eAAe,CAAC,GAAG;QAC7B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBAClH,IAAI,CAAC,MAAM,EAAE;oBACT,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;qBAAM;oBACH,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC3B;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,YAAY;IAGZ,eAAe;IACR,MAAM,CAAC,SAAS,CAAC,GAAG;QACvB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,IAAI,GAAG,IAAI,IAAI,EAAE;gBACb,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;oBACvH,IAAI,CAAC,CAAC,EAAE;wBACJ,OAAO,CAAC,IAAI,CAAC,CAAC;qBACjB;yBAAM;wBACH,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;qBACtB;gBACL,CAAC,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACM,MAAM,CAAC,YAAY,CAAC,GAAG;QAC1B,4CAA4C;QACxC,IAAI,GAAG,IAAI,IAAI,EAAE;YACb,OAAO,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,mDAAG,CAAC,CAAC,GAAO,EAAE,EAAE,GAAG,OAAO,GAAG,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC;YAC9J,yBAAyB;YACzB,eAAe;YACf,wBAAwB;YACxB,cAAc;YACd,6BAA6B;YAC7B,OAAO;YACP,KAAK;SACR;QACL,KAAK;QACL,iBAAiB;QACjB,OAAO,wCAAE,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,YAAY;IAEZ,mBAAmB;IACZ,MAAM,CAAC,aAAa,CAAC,GAAW,EAAE,SAAkB;QACvD,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,aAAa,CAAC;QAClE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC5G,IAAI,CAAC,MAAM,EAAE;oBACT,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;qBAAM;oBACH,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC3B;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,GAAG;QAC/B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBAClH,IAAI,CAAC,MAAM,EAAE;oBACT,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;qBAAM;oBACH,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC3B;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,YAAY;IAEZ,0BAA0B;IAC1B,wEAAwE;IACxE,oEAAoE;IACpE,mIAAmI;IACnI,4BAA4B;IAC5B,gCAAgC;IAChC,sBAAsB;IACtB,0CAA0C;IAC1C,eAAe;IACf,aAAa;IACb,SAAS;IACT,qBAAqB;IACrB,GAAG;IACH,YAAY;IAEZ,qBAAqB;IACd,MAAM,CAAC,eAAe,CAAC,GAAG;QAC7B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,EAAE,YAAY,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC7G,IAAI,CAAC,MAAM,EAAE;oBACT,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;qBAAM;oBACH,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC3B;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACM,MAAM,CAAC,kBAAkB,CAAC,GAAG;QAChC,OAAO,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,EAAE,YAAY,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,mDAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,GAAG,OAAO,GAAG,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC;IACpJ,CAAC;IACD,YAAY;IAEZ,2BAA2B;IACpB,MAAM,CAAC,oBAAoB,CAAC,GAAG;QAClC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,EAAE,YAAY,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBAClH,IAAI,CAAC,MAAM,EAAE;oBACT,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;qBAAM;oBACH,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC3B;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,YAAY;IACZ,+BAA+B;IACxB,MAAM,CAAC,wBAAwB,CAAC,GAAG;QACtC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,EAAE,YAAY,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC5H,IAAI,CAAC,MAAM,EAAE;oBACT,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;qBAAM;oBACH,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC3B;YACL,CAAC,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,YAAY;IACZ,eAAe;IACP,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK;QACjC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,8DAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1D,YAAY,CAAC,gBAAgB,CAAC,0CAA0C,GAAG,GAAG,CAAC,CAAC;IACpF,CAAC;IACM,MAAM,CAAC,QAAQ,CAAC,GAAG;QACtB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBAChG,IAAI,CAAC,MAAM,EAAE;oBACT,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;qBAAM;oBACH,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC3B;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACM,MAAM,CAAC,SAAS;QACnB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBAClD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;oBAC5C,YAAY,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;wBACrD,IAAI,IAAI,EAAE;4BACN,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gCAClB,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;4BAC/C,CAAC,CAAC,CAAC;4BACH,OAAO,CAAC,IAAI,CAAC,CAAC;yBACjB;6BAAM;4BACH,OAAO,CAAC,IAAI,CAAC,CAAC;yBACjB;oBACL,CAAC,CAAC,CAAC;iBACN;qBAAM;oBACH,MAAM,MAAM,GAAG,EAAE,CAAC;oBAClB,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;wBACpB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;oBAChC,CAAC,CAAC,CAAC;oBACH,OAAO,CAAC,MAAM,CAAC,CAAC;iBACnB;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,YAAY;IACZ,eAAe;IACR,MAAM,CAAC,QAAQ,CAAC,GAAG;QACtB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC9F,IAAI,CAAC,MAAM,EAAE;oBACT,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;qBAAM;oBACH,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC3B;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,YAAY;IACZ,oBAAoB;IACb,MAAM,CAAC,cAAc,CAAC,GAAG;QAC5B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC1G,IAAI,CAAC,MAAM,EAAE;oBACT,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;qBAAM;oBACH,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC3B;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,YAAY;IAEZ,uBAAuB;IAChB,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,KAAK;QACzC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;YAChE,IAAI,MAAM,EAAE;gBACR,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,8DAAS,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACzE;iBAAM;gBACH,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,8DAAS,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACzE;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAAC,GAAG;QAClC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBAChE,IAAI,MAAM,EAAE;oBACR,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC3B;qBAAM;oBACH,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,uBAAuB,CAAC,GAAG;QACrC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IACD,YAAY;IAEZ,wBAAwB;IACjB,MAAM,CAAC,mBAAmB;QAC7B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC3D,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;oBAC5C,YAAY,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC5D,IAAI,IAAI,EAAE;4BACN,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gCACtB,YAAY,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;4BAC7D,CAAC,CAAC,CAAC;4BACH,OAAO,CAAC,IAAI,CAAC,CAAC;yBACjB;6BAAM;4BACH,OAAO,CAAC,IAAI,CAAC,CAAC;yBACjB;oBACL,CAAC,CAAC,CAAC;iBACN;qBAAM;oBACH,MAAM,MAAM,GAAG,EAAE,CAAC;oBAClB,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;wBACxB,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBAClC,CAAC,CAAC,CAAC;oBACH,OAAO,CAAC,MAAM,CAAC,CAAC;iBACnB;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK;QACtC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,8DAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACnE,YAAY,CAAC,gBAAgB,CAAC,+BAA+B,GAAG,GAAG,CAAC,CAAC;IACzE,CAAC;IAEM,MAAM,CAAC,qBAAqB;QAC/B,YAAY,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5D,IAAI,IAAI,EAAE;gBACN,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACtB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;oBACzB,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACzB,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;wBAChE,IAAI,MAAM,EAAE;4BACR,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,8DAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;yBACvE;6BAAM;4BACH,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,8DAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;yBACvE;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAAC,GAAG;QAChC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,EAAE,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBAChH,IAAI,MAAM,EAAE;oBACR,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC3B;qBAAM;oBACH,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAAC,GAAG;QAClC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAEM,MAAM,CAAC,2BAA2B;QACrC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,YAAY,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC9C,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3B,MAAM,OAAO,GAAG,YAAY,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC;oBAC9D,MAAM,UAAU,GAAG,EAAE,CAAC;oBACtB,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BACrC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;yBACnC;qBACJ;oBACD,MAAM,MAAM,GAAG,EAAE,CAAC;oBAElB,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;wBACpB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;wBACtC,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,EAAE;4BACrD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;yBACtD;wBACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACtB,CAAC,CAAC,CAAC;oBACH,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAChD,OAAO,CAAC,MAAM,CAAC,CAAC;iBACnB;qBAAM;oBACH,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC5C,OAAO,CAAC,EAAE,CAAC,CAAC;iBACf;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IACD,YAAY;IAEZ,sBAAsB;IACf,MAAM,CAAC,gBAAgB,CAAC,GAAG;QAC9B,OAAO,IAAI,OAAO,CAAM,OAAO,CAAC,EAAE;YAC9B,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBACzG,IAAI,CAAC,MAAM,EAAE;oBACT,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;qBAAM;oBACH,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC3B;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,sBAAsB,CAAC,GAAG;QACpC,OAAO,IAAI,OAAO,CAAW,OAAO,CAAC,EAAE;YACnC,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACxC,IAAI,IAAI,CAAC;gBACT,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBACxC,IAAI,GAAG,EAAE,CAAC;oBACV,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,yEAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;iBAClE;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;;AA9oBc,mBAAM,GAAiB,EAAE,CAAC;AAE3B,qCAAwB,GAAoB,IAAI,yCAAO,EAAU,CAAC;AAClE,wCAA2B,GAAiB,IAAI,yCAAO,EAAO,CAAC;AAC/D,yBAAY,GAAiB,IAAI,yCAAO,EAAO,CAAC;AAChD,kCAAqB,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;ACtC3C;AACO;AAI/C,MAAM,UAAU;IAKZ,UAAU,CAAC,EAAE,EAAE,OAAc;QAChC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;YACzB,yCAAyC;YACzC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;IACF,eAAe;IACP,WAAW,CAAC,IAAI;QACnB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACnB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;SACzB;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACM,YAAY,CAAC,MAAoB;QACpC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBACzB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;aAC/B;QACL,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,YAAY;IACZ,gBAAgB;IACT,MAAM,CAAC,KAAK,EAAE,KAAgB;QACjC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACpB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SAC1B;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;QACzE,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,YAAY;IACZ,cAAc;IACP,OAAO,CAAC,KAAK,EAAE,GAAW,EAAE,OAAQ;QACvC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACpB,OAAO,wCAAE,CAAC,IAAI,CAAC,CAAC;SACnB;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE;YACxB,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,aAAa,EAAE;gBACzC,OAAO,wCAAE,CAAC,IAAI,CAAC,CAAC;aACnB;YACD,OAAO,wCAAE,CAAC,IAAI,8DAAS,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACzD;aAAM;YACH,IAAI,OAAO,EAAE;gBACL,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;oBAChB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;iBACtB;gBACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;oBACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;iBAC7B;gBACL,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE;oBAC5B,OAAO,IAAI,4CAAU,CAAY,CAAC,UAAU,EAAE,EAAE;wBAE5C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,yCAAO,EAAE,CAAC;wBAC1C,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;4BACzB,+GAA+G;4BAC/G,IAAI,IAAI,GAAG,IAAI,8DAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;4BACtC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;4BACzB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BACrC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;wBACrC,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;iBACN;qBAAM;oBACH,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;iBACpC;aACJ;iBAAM;gBACH,OAAO,wCAAE,CAAC,IAAI,CAAC,CAAC;aACnB;SACJ;IACL,CAAC;IACM,OAAO,CAAC,KAAa;QACxB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACpB,OAAO,wCAAE,CAAC,IAAI,CAAC,CAAC;SACnB;QACD,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC3C,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE;gBACxB,MAAM,CAAC,IAAI,CAAC,IAAI,8DAAS,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAC3D;QACL,CAAC,CAAC,CAAC;QACH,OAAO,wCAAE,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,YAAY;IACZ,gBAAgB;IACT,MAAM,CAAC,KAAa,EAAE,KAAgB;QACzC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACpB,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa;QAExE,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,YAAY;IACZ,gBAAgB;IACT,KAAK,CAAC,KAAK;QACd,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,KAAa,EAAE,GAAW;QACpC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACnB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC;SACf;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;;;;;;;;;;;;;;;;;;;;;ACxH0C;AACO;AAI/C,MAAM,OAAO;IAIT,UAAU,CAAC,EAAE,EAAE,OAAc;QAChC,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACF,eAAe;IACP,WAAW,CAAC,IAAW;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IACM,YAAY,CAAC,MAAoB;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,YAAY;IACZ,gBAAgB;IACT,MAAM,CAAC,KAAK,EAAE,KAAgB;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,YAAY;IACZ,cAAc;IACP,OAAO,CAAC,KAAK,EAAE,GAAW,EAAE,OAAQ;QACvC,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAChB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;aACtB;YACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;aAC7B;YACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE;gBAC5B,OAAO,IAAI,4CAAU,CAAY,CAAC,UAAU,EAAE,EAAE;oBAC5C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,yCAAO,EAAE,CAAC;oBAC1C,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;wBACzB,IAAI,IAAI,GAAG,IAAI,8DAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;wBACtC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACrC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;oBACrC,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;aACpC;SACJ;aAAM;YACH,OAAO,wCAAE,CAAC,IAAI,CAAC,CAAC;SACnB;IACL,CAAC;IACM,OAAO,CAAC,KAAU;QACrB,OAAO,wCAAE,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,YAAY;IACZ,gBAAgB;IACT,MAAM,CAAC,KAAU,EAAE,KAAgB;QACtC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IACD,YAAY;IACZ,gBAAgB;IACT,KAAK,CAAC,KAAK;QACd,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,KAAU,EAAE,GAAQ;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC;;;;;;;;;;;;;;;;;ACvEE,MAAM,SAAS;IAIlB,YAAY,GAAG,EAAE,KAAK;QAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;;;;;;;;;;;;;;;;;ACPE,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;ACCvB;AACA;AACA;AACA;AACA;AAEM,MAAOoB,iBAAP,CAAwB;EAUW,OAAtBC,sBAAsB,CAACC,IAAD,EAAYC,QAAZ,EAA8B;IAC/DA,QAAQ,CAACC,KAAT,CAAejQ,OAAf,CAAuBkQ,CAAC,IAAG;MACvBA,CAAC,CAACC,QAAF,CAAWnQ,OAAX,CAAmBoQ,CAAC,IAAG;QACnBA,CAAC,CAACC,IAAF,GAASH,CAAT;QACAL,iBAAiB,CAACS,QAAlB,CAA2BC,GAA3B,CAA+BR,IAA/B,EAAqCS,GAArC,CAAyCJ,CAAC,CAAClI,EAA3C,EAA+CkI,CAA/C;MACH,CAHD;MAIA,MAAMK,OAAO,GAAgB,EAA7B;MACAP,CAAC,CAACQ,UAAF,CAAa1Q,OAAb,CAAqB2Q,CAAC,IAAG;QACrB,MAAMC,GAAG,GAAGZ,QAAQ,CAACU,UAAT,CAAoBrR,IAApB,CAAyBY,CAAC,IAAIA,CAAC,CAACiI,EAAF,KAASyI,CAAvC,CAAZ;;QACA,IAAIC,GAAJ,EAAS;UACLH,OAAO,CAACvS,IAAR,CAAa0S,GAAb;QACH;MACJ,CALD;MAMAV,CAAC,CAACQ,UAAF,GAAeD,OAAf;MACAZ,iBAAiB,CAACgB,KAAlB,CAAwBN,GAAxB,CAA4BR,IAA5B,EAAkCS,GAAlC,CAAsCN,CAAC,CAAChI,EAAxC,EAA4CgI,CAA5C;IACH,CAdD;IAeAF,QAAQ,CAACU,UAAT,CAAoB1Q,OAApB,CAA4B2Q,CAAC,IAAG;MAC5BA,CAAC,CAACG,WAAF,CAAc9Q,OAAd,CAAsB+Q,CAAC,IAAG;QACtBA,CAAC,CAACC,MAAF,CAAShR,OAAT,CAAiB3B,CAAC,IAAG;UACjBA,CAAC,CAAC4S,MAAF,GAAWF,CAAX;UACAlB,iBAAiB,CAACqB,KAAlB,CAAwBX,GAAxB,CAA4BR,IAA5B,EAAkCS,GAAlC,CAAsCnS,CAAC,CAAC6J,EAAxC,EAA4C7J,CAA5C;QACH,CAHD;QAIA0S,CAAC,CAACE,MAAF,GAAWN,CAAX;QACAd,iBAAiB,CAACsB,WAAlB,CAA8BZ,GAA9B,CAAkCR,IAAlC,EAAwCS,GAAxC,CAA4CO,CAAC,CAAC7I,EAA9C,EAAkD6I,CAAlD;MACH,CAPD;MAQAlB,iBAAiB,CAACuB,UAAlB,CAA6Bb,GAA7B,CAAiCR,IAAjC,EAAuCS,GAAvC,CAA2CG,CAAC,CAACzI,EAA7C,EAAiDyI,CAAjD;IACH,CAVD;EAWH;EAED;;;;;EAGsC,OAAlBU,kBAAkB,CAACtB,IAAD,EAAU;IAAA;MAC5C,MAAMuB,OAAO,GAAG,IAAIxO,OAAJ,CAAqB,CAACC,OAAD,EAAUwO,MAAV,KAAoB;QACrD,MAAMC,GAAG,GAAG3B,iBAAiB,CAAC4B,mBAAlB,CAAsClB,GAAtC,CAA0CR,IAA1C,CAAZ;;QACA,IAAIyB,GAAJ,EAAS;UACL,IAAIE,KAAK,GAAG,KAAZ;UACAF,GAAG,CAACpT,SAAJ,CAAc6B,CAAC,IAAG;YACd,IAAIA,CAAJ,EAAO;cACH8C,OAAO,CAAC2O,KAAD,CAAP;YACH,CAFD,MAEO;cACHA,KAAK,GAAG,IAAR;YACH;UACJ,CAND;QAOH,CATD,MASO;UACH7B,iBAAiB,CAAC8B,iBAAlB,CAAoC5B,IAApC,EAA0C/N,IAA1C,CAA+C,MAAK;YAChDe,OAAO,CAAC,IAAD,CAAP;UACH,CAFD,EAEG,MAAK;YACJwO,MAAM;UACT,CAJD;QAKH;MACJ,CAlBe,CAAhB;MAmBA,OAAOD,OAAP;IApB4C;EAqB/C;;EAE8B,OAAXM,WAAW,CAAC7B,IAAD,EAAU;IAAA;MACrC,MAAM2B,KAAK,SAAS7B,iBAAiB,CAACwB,kBAAlB,CAAqCtB,IAArC,CAApB;MAEA,IAAIC,QAAQ,GAAGH,iBAAiB,CAACgC,SAAlB,CAA4BtB,GAA5B,CAAgCR,IAAhC,CAAf;;MACA,IAAI,CAACC,QAAD,IAAa,CAAC0B,KAAlB,EAAyB;QACrB,MAAM7B,iBAAiB,CAAC8B,iBAAlB,CAAoC5B,IAApC,CAAN;QACAC,QAAQ,GAAGH,iBAAiB,CAACgC,SAAlB,CAA4BtB,GAA5B,CAAgCR,IAAhC,CAAX;MACH;;MACD,OAAOC,QAAP;IARqC;EASxC;;EAE2B,OAAR8B,QAAQ,CAAC/B,IAAD,EAAU;IAAA;MAClC,MAAM2B,KAAK,SAAS7B,iBAAiB,CAACwB,kBAAlB,CAAqCtB,IAArC,CAApB;MAEA,IAAIc,KAAK,GAAGhB,iBAAiB,CAACgB,KAAlB,CAAwBN,GAAxB,CAA4BR,IAA5B,CAAZ;;MACA,IAAIc,KAAK,IAAIA,KAAK,CAAC9R,IAAN,GAAa,CAA1B,EAA6B;QACzB,OAAO,CAAC,GAAG8R,KAAK,CAACkB,MAAN,EAAJ,CAAP;MACH;;MACD,IAAI,CAACL,KAAL,EAAY;QACR,MAAM7B,iBAAiB,CAAC8B,iBAAlB,CAAoC5B,IAApC,CAAN;QACAc,KAAK,GAAGhB,iBAAiB,CAACgB,KAAlB,CAAwBN,GAAxB,CAA4BR,IAA5B,CAAR;;QACA,IAAIc,KAAJ,EAAW;UACP,OAAO,CAAC,GAAGA,KAAK,CAACkB,MAAN,EAAJ,CAAP;QACH;MACJ;;MACD,OAAO,IAAP;IAdkC;EAerC;;EAE0B,OAAPC,OAAO,CAACC,MAAD,EAAelC,IAAf,EAAwB;IAAA;MAC/C,IAAIkC,MAAJ,EAAY;QACR,MAAMP,KAAK,SAAS7B,iBAAiB,CAACwB,kBAAlB,CAAqCtB,IAArC,CAApB;QACA,IAAIc,KAAK,GAAGhB,iBAAiB,CAACgB,KAAlB,CAAwBN,GAAxB,CAA4BR,IAA5B,CAAZ;;QACA,IAAIc,KAAJ,EAAW;UACP,MAAMqB,IAAI,GAAGrB,KAAK,CAACN,GAAN,CAAU0B,MAAV,CAAb;;UACA,IAAIC,IAAJ,EAAU;YACN,OAAOA,IAAP;UACH;QACJ;;QACD,IAAI,CAACR,KAAL,EAAY;UACR,MAAM7B,iBAAiB,CAAC8B,iBAAlB,CAAoC5B,IAApC,CAAN;UACAc,KAAK,GAAGhB,iBAAiB,CAACgB,KAAlB,CAAwBN,GAAxB,CAA4BR,IAA5B,CAAR;;UACA,IAAIc,KAAJ,EAAW;YACP,OAAOA,KAAK,CAACN,GAAN,CAAU0B,MAAV,CAAP;UACH;QACJ;MACJ;;MACD,OAAO,IAAP;IAlB+C;EAmBlD;;EAEsC,OAAnBE,mBAAmB,CAACF,MAAD,EAAelC,IAAf,EAAwB;IAAA;MAC3D,IAAIkC,MAAJ,EAAY;QACR,MAAMC,IAAI,SAASrC,iBAAiB,CAACmC,OAAlB,CAA0BC,MAA1B,EAAkClC,IAAlC,CAAnB;;QACA,IAAImC,IAAJ,EAAU;UACN,OAAO,CAAC,GAAGA,IAAI,CAACxB,UAAT,CAAP;QACH;MACJ;;MACD,OAAO,IAAP;IAP2D;EAQ9D;;EAEgC,OAAb0B,aAAa,CAACrC,IAAD,EAAU;IAAA;MACvC,MAAM2B,KAAK,SAAS7B,iBAAiB,CAACwB,kBAAlB,CAAqCtB,IAArC,CAApB;MAEA,IAAIsC,OAAO,GAAGxC,iBAAiB,CAACuB,UAAlB,CAA6Bb,GAA7B,CAAiCR,IAAjC,CAAd;;MACA,IAAIsC,OAAJ,EAAa;QACT,OAAO,CAAC,GAAGA,OAAO,CAACN,MAAR,EAAJ,CAAP;MACH;;MACD,IAAI,CAACL,KAAL,EAAY;QACR,MAAM7B,iBAAiB,CAAC8B,iBAAlB,CAAoC5B,IAApC,CAAN;QACAsC,OAAO,GAAGxC,iBAAiB,CAACuB,UAAlB,CAA6Bb,GAA7B,CAAiCR,IAAjC,CAAV;;QACA,IAAIsC,OAAJ,EAAa;UACT,OAAO,CAAC,GAAGA,OAAO,CAACN,MAAR,EAAJ,CAAP;QACH;MACJ;;MACD,OAAO,IAAP;IAduC;EAe1C;;EAE+B,OAAZO,YAAY,CAACC,WAAD,EAAoBxC,IAApB,EAA6B;IAAA;MACzD,IAAIwC,WAAJ,EAAiB;QACb,MAAMb,KAAK,SAAS7B,iBAAiB,CAACwB,kBAAlB,CAAqCtB,IAArC,CAApB;QAEA,IAAIqB,UAAU,GAAGvB,iBAAiB,CAACuB,UAAlB,CAA6Bb,GAA7B,CAAiCR,IAAjC,CAAjB;;QACA,IAAIqB,UAAJ,EAAgB;UACZ,MAAMR,GAAG,GAAGQ,UAAU,CAACb,GAAX,CAAegC,WAAf,CAAZ;;UACA,IAAI3B,GAAJ,EAAS;YACL,OAAOA,GAAP;UACH;QACJ;;QACD,IAAI,CAACc,KAAL,EAAY;UACR,MAAM7B,iBAAiB,CAAC8B,iBAAlB,CAAoC5B,IAApC,CAAN;UACAqB,UAAU,GAAGvB,iBAAiB,CAACuB,UAAlB,CAA6Bb,GAA7B,CAAiCR,IAAjC,CAAb;;UACA,IAAIqB,UAAJ,EAAgB;YACZ,OAAOA,UAAU,CAACb,GAAX,CAAegC,WAAf,CAAP;UACH;QACJ;MACJ;;MACD,OAAO,IAAP;IAnByD;EAoB5D;;EAE+B,OAAZC,YAAY,CAACC,WAAD,EAAoB1C,IAApB,EAA6B;IAAA;MACzD,IAAI0C,WAAJ,EAAiB;QACb,MAAMf,KAAK,SAAS7B,iBAAiB,CAACwB,kBAAlB,CAAqCtB,IAArC,CAApB;QAEA,IAAIoB,WAAW,GAAGtB,iBAAiB,CAACsB,WAAlB,CAA8BZ,GAA9B,CAAkCR,IAAlC,CAAlB;;QACA,IAAIoB,WAAJ,EAAiB;UACb,MAAMuB,IAAI,GAAGvB,WAAW,CAACZ,GAAZ,CAAgBkC,WAAhB,CAAb;;UACA,IAAIC,IAAJ,EAAU;YACN,OAAOA,IAAP;UACH;QACJ;;QACD,IAAI,CAAChB,KAAL,EAAY;UACR,MAAM7B,iBAAiB,CAAC8B,iBAAlB,CAAoC5B,IAApC,CAAN;UACAoB,WAAW,GAAGtB,iBAAiB,CAACsB,WAAlB,CAA8BZ,GAA9B,CAAkCR,IAAlC,CAAd;;UACA,IAAIoB,WAAJ,EAAiB;YACb,OAAOA,WAAW,CAACZ,GAAZ,CAAgBkC,WAAhB,CAAP;UACH;QACJ;MACJ;;MACD,OAAO,IAAP;IAnByD;EAoB5D;;EAI2B,OAARE,QAAQ,CAACC,OAAD,EAAgB7C,IAAhB,EAAyB;IAAA;MACjD,IAAI6C,OAAJ,EAAa;QACT,MAAMlB,KAAK,SAAS7B,iBAAiB,CAACwB,kBAAlB,CAAqCtB,IAArC,CAApB;QAEA,IAAImB,KAAK,GAAGrB,iBAAiB,CAACqB,KAAlB,CAAwBX,GAAxB,CAA4BR,IAA5B,CAAZ;;QACA,IAAImB,KAAJ,EAAW;UACP,MAAM7S,CAAC,GAAG6S,KAAK,CAACX,GAAN,CAAUqC,OAAV,CAAV;;UACA,IAAIvU,CAAJ,EAAO;YACH,OAAOA,CAAP;UACH;QACJ;;QACD,IAAI,CAACqT,KAAL,EAAY;UACR,MAAM7B,iBAAiB,CAAC8B,iBAAlB,CAAoC5B,IAApC,CAAN;UACAmB,KAAK,GAAGrB,iBAAiB,CAACqB,KAAlB,CAAwBX,GAAxB,CAA4BR,IAA5B,CAAR;;UACA,IAAImB,KAAJ,EAAW;YACP,OAAOA,KAAK,CAACX,GAAN,CAAUqC,OAAV,CAAP;UACH;QACJ;MACJ;;MACD,OAAO,IAAP;IAnBiD;EAoBpD;;EAE6B,OAAVC,UAAU,CAACC,SAAD,EAAkB/C,IAAlB,EAA2B;IAAA;MACrD,IAAI+C,SAAJ,EAAe;QACX,MAAMpB,KAAK,SAAS7B,iBAAiB,CAACwB,kBAAlB,CAAqCtB,IAArC,CAApB;QAEA,IAAIO,QAAQ,GAAGT,iBAAiB,CAACS,QAAlB,CAA2BC,GAA3B,CAA+BR,IAA/B,CAAf;;QACA,IAAIO,QAAJ,EAAc;UACV,MAAMF,CAAC,GAAGE,QAAQ,CAACC,GAAT,CAAauC,SAAb,CAAV;;UACA,IAAI1C,CAAJ,EAAO;YACH,OAAOA,CAAP;UACH;QACJ;;QACD,IAAI,CAACsB,KAAL,EAAY;UACR,MAAM7B,iBAAiB,CAAC8B,iBAAlB,CAAoC5B,IAApC,CAAN;UACAO,QAAQ,GAAGT,iBAAiB,CAACS,QAAlB,CAA2BC,GAA3B,CAA+BR,IAA/B,CAAX;;UACA,IAAIO,QAAJ,EAAc;YACV,OAAOA,QAAQ,CAACC,GAAT,CAAauC,SAAb,CAAP;UACH;QACJ;MACJ;;MACD,OAAO,IAAP;IAnBqD;EAoBxD;;EAE4B,OAAdC,cAAc,CAAChD,IAAD,EAAK;IAC9BF,iBAAiB,CAACgB,KAAlB,CAAwBL,GAAxB,CAA4BT,IAA5B,EAAkC,IAAIiD,GAAJ,EAAlC;IACAnD,iBAAiB,CAACuB,UAAlB,CAA6BZ,GAA7B,CAAiCT,IAAjC,EAAuC,IAAIiD,GAAJ,EAAvC;IACAnD,iBAAiB,CAACsB,WAAlB,CAA8BX,GAA9B,CAAkCT,IAAlC,EAAwC,IAAIiD,GAAJ,EAAxC;IACAnD,iBAAiB,CAACqB,KAAlB,CAAwBV,GAAxB,CAA4BT,IAA5B,EAAkC,IAAIiD,GAAJ,EAAlC;IACAnD,iBAAiB,CAACS,QAAlB,CAA2BE,GAA3B,CAA+BT,IAA/B,EAAqC,IAAIiD,GAAJ,EAArC;IACAnD,iBAAiB,CAACgC,SAAlB,CAA4BoB,MAA5B,CAAmClD,IAAnC;IACAF,iBAAiB,CAAC4B,mBAAlB,CAAsCwB,MAAtC,CAA6ClD,IAA7C;EACH;;EAEqC,OAAjB4B,iBAAiB,CAAC5B,IAAD,EAAK;IAAA;MACvC,MAAMuB,OAAO,GAAG,IAAIxO,OAAJ,CAAY,CAACC,OAAD,EAAUwO,MAAV,KAAoB;QAC5C1B,iBAAiB,CAACkD,cAAlB,CAAiChD,IAAjC;QACA,MAAMyB,GAAG,GAAG,IAAI/B,iDAAJ,CAAoB,KAApB,CAAZ;QACAI,iBAAiB,CAAC4B,mBAAlB,CAAsCjB,GAAtC,CAA0CT,IAA1C,EAAgDyB,GAAhD;QACA,MAAM9L,OAAO,GAAGgK,yFAAA,CAA2DC,8EAA3D,CAAhB;QACAjK,OAAO,CAACkM,WAAR,CAAoB7B,IAApB,EAA0B3R,SAA1B,CAAqCY,MAAD,IAAW;UAC3C,IAAIA,MAAJ,EAAY;YACR,MAAMgR,QAAQ,GAAGR,+DAAY,CAACI,4DAAD,EAAW5Q,MAAX,CAA7B;YACA6Q,iBAAiB,CAACgC,SAAlB,CAA4BrB,GAA5B,CAAgCT,IAAhC,EAAsCC,QAAtC;YACAH,iBAAiB,CAACC,sBAAlB,CAAyCC,IAAzC,EAA+CC,QAA/C;UACH;;UACDwB,GAAG,CAACxT,IAAJ,CAAS,IAAT;UACA+E,OAAO,CAAC,IAAD,CAAP;QACH,CARD,EAQG,MAAK;UACJwO,MAAM;QACT,CAVD;MAWH,CAhBe,CAAhB;MAiBA,OAAOD,OAAP;IAlBuC;EAmB1C;;AApQyB;AAEXzB,0BAAoC,IAAImD,GAAJ,EAApC;AACAnD,+BAA8C,IAAImD,GAAJ,EAA9C;AACAnD,gCAA+C,IAAImD,GAAJ,EAA/C;AACAnD,0BAAqC,IAAImD,GAAJ,EAArC;AACAnD,6BAA0C,IAAImD,GAAJ,EAA1C;AACAnD,8BAAiC,IAAImD,GAAJ,EAAjC;AACAnD,wCAA2D,IAAImD,GAAJ,EAA3D;;;;;;;;;;;;;;;;;;;;;;;;ACd2D;AAGvE,MAAM,OAAO;;AAMb,MAAM,MAAO,SAAQ,OAAO;;AAM5B,MAAM,SAAU,SAAQ,OAAO;;;QACpC,wBAAmB,GAAW,EAAE,CAAC;IAGnC,CAAC;;AAEM,MAAM,OAAQ,SAAQ,OAAO;;AAQ7B,MAAM,KAAM,SAAQ,OAAO;;AAQ3B,MAAM,SAAU,SAAQ,OAAO;;;QACpC,cAAS,GAAY,KAAK,CAAC;QAC3B,yBAAoB,GAAY,KAAK,CAAC;QACtC,WAAM,GAAY,EAAE,CAAC;IAEvB,CAAC;;AAEM,MAAM,SAAU,SAAQ,OAAO;;;QACpC,kBAAa,GAAkB,gEAAqB,CAAC;QACrD,qBAAgB,GAAY,KAAK,CAAC;QAGlC,gBAAW,GAAgB,EAAE,CAAC;QAC9B,eAAU,GAAgB,EAAE,CAAC;IAE/B,CAAC;;AAEM,MAAM,IAAK,SAAQ,OAAO;;;QAE/B,aAAQ,GAAc,EAAE,CAAC;QACzB,eAAU,GAAgB,EAAE,CAAC;IAc/B,CAAC;IAVC,MAAM,CAAC,QAAQ,CAAC,IAAU,EAAE,KAAY;QACtC,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE;gBACnD,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM;aACP;SACF;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;;AAGI,MAAM,QAAS,SAAQ,OAAO;;;QACnC,UAAK,GAAW,EAAE,CAAC;QACnB,eAAU,GAAgB,EAAE,CAAC;IAI/B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChFgH;AAChE;AACvB;AAC4C;AAEF;AACA;AACR;AACA;AACI;AACX;AACgB;AACG;AACV;AACW;AACP;AACW;AACZ;IAOpD,kBAAkB,SAAlB,kBAAkB;IAe7B,YACU,SAA0B,EAC1B,eAAoC,EACpC,OAAoB,EACpB,IAAiB,EACjB,KAAwB,EACxB,uBAAgD;QALhD,cAAS,GAAT,SAAS,CAAiB;QAC1B,oBAAe,GAAf,eAAe,CAAqB;QACpC,YAAO,GAAP,OAAO,CAAa;QACpB,SAAI,GAAJ,IAAI,CAAa;QACjB,UAAK,GAAL,KAAK,CAAmB;QACxB,4BAAuB,GAAvB,uBAAuB,CAAyB;QAEjD,iBAAY,GAAQ,EAAE,aAAa,EAAE,IAAI,EAAE;QAC3C,cAAS,GAAY,KAAK;QAC1B,yBAAoB,GAAY,KAAK;QACpC,+BAA0B,GAAG,IAAI,wDAAY,EAAW;QACzD,WAAM,GAAwC,MAAM;QACnD,gBAAW,GAAG,IAAI,wDAAY,EAAE;IANvC,CAAC;IAQJ,eAAe,CAAC,QAAiB;QAC/B,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC;QACrC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAClE,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;SAC1C;QACD,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;SAC1C;QACD,oGAAmC,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,8FAAiC,CAAC,CAAC,CAAC,EAAE,EAAE;YACrD,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,mGAAsC,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/D,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;gBACzB,kGAAqC,CAAC,KAAK,CAAC,CAAC;gBAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;gBAC9B,IAAI,GAAG,EAAE;oBACP,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;oBACxC,IAAI,MAAM,EAAE;wBACV,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;wBACzC,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;4BACvC,IAAI,CAAC,aAAa,EAAE,CAAC;yBACtB;qBACF;iBACF;gBACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,OAAsB;QAChC,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE;YAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC;YAC5D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC;SAC7D;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,aAAa;QACX,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC7B,CAAC;IAED,aAAa;QACX,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACzD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;QACX,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;YAC/F,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7C,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;aACpB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;QACX,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;YAChD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAClD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACrC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,KAAK;QACd,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;IAC7E,CAAC;IAED,aAAa,CAAC,KAAoB;QAChC,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAChC,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;IACH,CAAC;IAED,OAAO,CAAC,KAAqB;QAC3B,qCAAqC;QACrC,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QAC1C,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEjD,8CAA8C;QAC9C,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QAE7D,oCAAoC;QACpC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;YAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE,CAAC;SAC7B;QAED,iDAAiD;QACjD,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC,mBAAmB;IAC7D,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;YACpC,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;YACrC,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;IACH,CAAC;IAED,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE;YACnB,MAAM,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,YAAY,EAAE;gBAChB,MAAM,EAAE,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC5B,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;gBAC7B,IAAI,IAAI,GAAG,IAAI,CAAC;gBAChB,EAAE,CAAC,gBAAgB,CACjB,MAAM,EACN;oBACE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;oBACzB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;oBACzB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,CAAC,EACD,KAAK,CACN,CAAC;gBACF,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;aAChC;SACF;IACH,CAAC;IAED,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE;YACnB,MAAM,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,YAAY,EAAE;gBAChB,MAAM,EAAE,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC5B,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;gBAC7B,IAAI,IAAI,GAAG,IAAI,CAAC;gBAChB,EAAE,CAAC,gBAAgB,CACjB,MAAM,EACN;oBACE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;oBACzB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;oBACzB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,CAAC,EACD,KAAK,CACN,CAAC;gBACF,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;aAChC;SACF;IACH,CAAC;IAED,UAAU;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9B,IAAI,GAAG,EAAE;YACP,IAAI,GAAG,CAAC,UAAU,EAAE;gBAClB,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,YAAY,+DAAM,CAAC,EAAE;oBACvC,GAAG,CAAC,UAAU,GAAG,gEAAY,CAAC,+DAAM,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;iBACvD;aACF;iBAAM;gBACL,GAAG,CAAC,UAAU,GAAG,oGAAqC,EAAE,CAAC;aAC1D;YACD,8FAAiC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAClD,+CAA+C;YAC/C,8FAAiC,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,UAAU,GAAG;gBAChB,GAAG,EAAE,YAAY;gBACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;aACtC,CAAC;SACH;IACH,CAAC;IAED,SAAS;QACP,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9B,IAAI,GAAG,EAAE;YACP,IAAI,GAAG,CAAC,WAAW,EAAE;gBACnB,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,YAAY,+DAAM,CAAC,EAAE;oBACxC,GAAG,CAAC,WAAW,GAAG,gEAAY,CAAC,+DAAM,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;iBACzD;aACF;iBAAM;gBACL,GAAG,CAAC,WAAW,GAAG,qGAAsC,EAAE,CAAC;aAC5D;YACD,8FAAiC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACnD,8FAAiC,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,UAAU,GAAG;gBAChB,GAAG,EAAE,aAAa;gBAClB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC;aACvC,CAAC;SACH;IACH,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;YAC3B,0FAAwB,CAAC,SAAS,EAAE,gCAAgC,CAAC,CAAC;YACtE,OAAO;SACR;QAED,MAAM,MAAM,GAAG,IAAI,+DAAM,EAAE,CAAC;QAC5B,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;QACxB,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC;QACrD,IAAI,UAAkB,CAAC;QACvB,IAAI,mBAAmB,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QACtC,uFAA0B,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO;aACT,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC;aAClE,IAAI,CACH,0DAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;YACrB,IAAI,QAAQ,EAAE;gBACZ,mBAAmB,GAAG,QAAQ,CAAC;gBAC/B,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC;gBAC7C,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC;gBAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,kCAAkC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aAC3E;iBAAM;gBACL,OAAO,yCAAE,CAAC,IAAI,CAAC,CAAC;aACjB;QACH,CAAC,CAAC,EACF,0DAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;YACrB,IAAI,QAAQ,EAAE;gBACZ,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;aACnC;iBAAM;gBACL,OAAO,yCAAE,CAAC,IAAI,CAAC,CAAC;aACjB;QACH,CAAC,CAAC,EACF,0DAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;YACrB,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACtB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;aAC1C;iBAAM;gBACL,OAAO,yCAAE,CAAC,IAAI,CAAC,CAAC;aACjB;QACH,CAAC,CAAC,EACF,oDAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YACf,IAAI,QAAQ,EAAE;gBACZ,4FAA0B,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;aACxE;YACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;QAC5C,CAAC,CAAC,EACF,2DAAU,CAAC,CAAC,KAAK,EAAE,EAAE;YACnB,0FAAwB,CAAC,SAAS,EAAE,+BAA+B,CAAC,CAAC;YACrE,OAAO,yCAAE,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC,EACF,yDAAQ,CAAC,GAAG,EAAE;YACZ,uFAA0B,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC,CAAC,CACH;aACA,SAAS,EAAE,CAAC;IACjB,CAAC;IAED,eAAe,CAAC,IAAI;QAClB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9C,IAAI,CAAC,EAAE;gBACL,MAAM,MAAM,GAAG,gEAAY,CAAC,+DAAM,EAAE,CAAC,CAAC,CAAC;gBACvC,MAAM,UAAU,GAAG,IAAI,6EAAc,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClE,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE;oBAC1C,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;oBACf,IACE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBACvB,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE;4BACnB,KAAK,GAAG,CAAC,CAAC;4BACV,OAAO,IAAI,CAAC;yBACb;oBACH,CAAC,CAAC,EACF;wBACA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;wBAChC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;qBACzB;gBACH,CAAC,CAAC,CAAC;gBACH,gGAAyB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;aAC7C;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,IAAI;QACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3F,IAAI,IAAI,EAAE;YACR,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,KAAK,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;aAChC;YACD,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,KAAK,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;aAC/B;YACD,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;oBAC5B,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE;wBACzE,KAAK,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC;qBACxC;iBACF;qBAAM;oBACL,KAAK,CAAC,iBAAiB,CAAC,GAAG,cAAc,CAAC;iBAC3C;aACF;YACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACpB;IACH,CAAC;IAED,QAAQ;QACN,uFAA0B,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;QACvD,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;YACpF,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,4FAA0B,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;aACxE;YACD,uFAA0B,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,oGAAmC,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;QACD,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC1B;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;;;;;;;;;;;2BA9WA,iDAAK;wBACL,iDAAK;mCACL,iDAAK;yCACL,kDAAM;qBACN,iDAAK;0BACL,kDAAM;;AA5BI,kBAAkB;IAL9B,yDAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;QAC1B,4EAA0C;;KAE3C,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;ACxBY;AACJ;IAU1B,uBAAuB,SAAvB,uBAAuB;;QAC1B,kBAAa,GAAG,IAAI,iDAAe,CAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9F,sBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;IAKxD,CAAC;IAHC,mBAAmB,CAAC,KAAoB;QACtC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;;AANU,uBAAuB;IAHnC,yDAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,uBAAuB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACXiC;AACL;IAOnD,kBAAkB,SAAlB,kBAAkB;IAE9B,YAAoB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;QAD5C,mBAAc,GAAG,KAAK,CAAC;IAEvB,CAAC;IACD,QAAQ;QACP,mGAAsC,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5C,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;IACH,CAAC;;;;;AATW,kBAAkB;IAL9B,wDAAS,CAAC;QACV,QAAQ,EAAE,eAAe;QACzB,2EAAyC;;KAEzC,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRoC;AACb;AACnB;AAGuB;AACI;AACS;AACkB;AACX;AACF;AACV;AACM;AACN;IAOrD,eAAe,SAAf,eAAe;IAsExB,YACY,MAAc,EACd,WAAwB,EACxB,uBAAgD,EAChD,GAAsB;QAHtB,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAa;QACxB,4BAAuB,GAAvB,uBAAuB,CAAyB;QAChD,QAAG,GAAH,GAAG,CAAmB;QAzElC,uBAAkB,GAAG,KAAK,CAAC;QAK3B,aAAQ,GAAQ,EAAE,CAAC;QAEnB,cAAS,GAAY,KAAK,CAAC;QAC3B,yBAAoB,GAAY,KAAK,CAAC;QACtC,cAAS,GAAY,KAAK,CAAC;QAC3B,cAAS,GAAG,KAAK,CAAC;QAElB,UAAK,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAClD,UAAK,GAAG;YACJ,WAAW,EAAE,EAAE;SAClB,CAAC;QACF,gBAAW,GAAW,EAAE,CAAC;QAEzB,iBAAY,GAAgB,IAAI,CAAC;QACjC,UAAK,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE3G,WAAM,GAAG;YACL,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;SACZ,CAAC;IAWF,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9D,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACtC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO;QACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,WAAW;aACzC,uBAAuB,EAAE;aACzB,IAAI,CAAC,oDAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,0BAA0B;aAChG,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACtC,GAAG,OAAO;gBACV,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO;gBAChH,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC3C,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;aACjD,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;YAC9B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;IACX,CAAC;IAED,gBAAgB,CAAC,GAAG;QAChB,gHAA2B,CACvB,IAAI,8EAAmB,CACnB,6GAA6G,CAChH,EACD,IAAI,8EAAmB,CAAC,sBAAsB,CAAC,EAC/C,gGAAuB,EACvB,6FAAuB,CAC1B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,IAAI,CAAC,KAAK,4FAAoB,EAAE;gBAC5B,IAAI,GAAG,KAAK,IAAI,EAAE;oBACd,IAAI,EAAC,OAAO,EAAC,GAAG,GAAG,CAAC;oBACpB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;wBAC5D,IAAI,QAAQ,EAAE;4BACV,kEAAkE;4BAClE,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;4BACvC,IAAI,CAAC,OAAO,EAAE,CAAC;yBAClB;oBACL,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;oBACjF,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;oBACzB,2FAA0B,CAAC,qEAAqE,EAAE,aAAa,CAAC,CAAC;iBACpH;aACJ;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,cAAc,CAAC,GAAG;QACd,uFAA0B,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;YACrE,IAAI,QAAQ,EAAE;gBACV,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChF,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,KAAG,SAAS,EAAC,KAAI,CAAC,QAAQ,CAAC,aAAa,EAAC,KAAI,CAAC;gBACvG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBACjC,uFAA0B,CAAC,KAAK,CAAC,CAAC;gBAClC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;aAC5B;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS;QACL,IAAI,CAAC,QAAQ,GAAG;YACZ,aAAa,EAAC,IAAI;SACrB,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,gBAAgB,CAAC,MAA4C;QACzD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC7B,CAAC;IAED,iBAAiB,CAAC,YAAsB;QACpC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,YAAY,EAAE;YACd,IAAI,CAAC,OAAO,EAAE,CAAC;SAClB;QACD,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,EAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,CAAC;IACtF,CAAC;IAED,oBAAoB;QAChB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC7B,CAAC;IAED,UAAU,CAAC,GAAG;QACV,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,cAAc;QACV,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QACtD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;IAC9G,CAAC;IAED,YAAY,CAAC,KAAY,EAAE,UAAU;QACjC,MAAM,KAAK,GAAG,KAAY,CAAC;QAC3B,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE;YACrB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACtC;QACD,UAAU,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,QAAQ;QACJ,IAAG,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QAC9B,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3C,uFAA0B,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;YACxC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;gBACV,2FAA0B,CAAC,4CAA4C,EAAE,WAAW,CAAC,CAAC;gBACtF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,uFAA0B,CAAC,KAAK,CAAC,CAAC;YACtC,CAAC;YACD,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;gBACX,uFAA0B,CAAC,KAAK,CAAC,CAAC;gBAClC,2EAA2E;YAC/E,CAAC;SACJ,CAAC;IACN,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;SAC7C;QACD,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;SACzC;QACD,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;IACtC,CAAC;;;;;;;;AAlOQ,eAAe;IAL3B,yDAAS,CAAC;QACP,QAAQ,EAAE,aAAa;QACvB,yEAAuC;;KAE1C,CAAC;GACW,eAAe;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACpBsB;AACkB;IAMvD,yBAAyB,SAAzB,yBAAyB;IAMpC,YAAoB,uBAAgD;QAAhD,4BAAuB,GAAvB,uBAAuB,CAAyB;QALpE,UAAK,GAAG;YACN,WAAW,EAAE,EAAE;SAChB,CAAC;IAGqE,CAAC;IAExE,QAAQ;QACN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACnF,oCAAoC;QACpC,kCAAkC;IACpC,CAAC;;;;;AAhBU,yBAAyB;IALrC,wDAAS,CAAC;QACT,QAAQ,EAAE,uBAAuB;QACjC,mFAAiD;;KAElD,CAAC;GACW,yBAAyB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACGf;AASC;AAC+C;AACC;AACX;AACE;IAOlD,kBAAkB,SAAlB,kBAAkB;IAW3B,YACY,KAAwB,EACzB,SAA2C,EAAU,YAA0B,EACtD,IAAS;QAFjC,UAAK,GAAL,KAAK,CAAmB;QACzB,cAAS,GAAT,SAAS,CAAkC;QAAU,iBAAY,GAAZ,YAAY,CAAc;QACtD,SAAI,GAAJ,IAAI,CAAK;;QAX7C,uBAAkB,GAAG,KAAK,CAAC;QAC3B,cAAS,GAAG,KAAK,CAAC;QAClB,eAAU,GAAG,KAAK,CAAC;QAEnB,kBAAa,GAAG,GAAG,CAAC,CAAC,oCAAoC;QACzD,YAAO,GAAG,IAAI,CAAC,CAAC,4BAA4B;QA2C5C,mCAAQ,CAAC,EAAC;QACV,6CAA0B,IAAI,EAAC;QAE/B,WAAM,GAAG,IAAI,CAAC,YAAY,CAAC,kEAAI,gCAAM,CAAC,CAAC;QAtCnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,CAAC,KAAK;QACT,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,MAAM;IACN,YAAY,CAAC,IAAY;QACrB,MAAM,GAAG,GAAG,EAAE,CAAC;QAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC3B,GAAG,CAAC,IAAI,CAAC,IAAI,uDAAW,CAAC,EAAE,CAAC,CAAC,CAAC;SACjC;QAED,OAAO,IAAI,qDAAS,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;QAGG,IAAI,CAAC,IAAY;QACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACtC,kEAAI,4BAAS,IAAI,OAAC;IACtB,CAAC;IAYD,UAAU,CAAC,KAAa;QACpB,IAAI,wDAAS,EAAE,IAAI,KAAK,EAAE,MAAM,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;SAC1E;QAED,yBAAyB;QACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,kEAAI,gCAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,gBAAgB,CAAC,EAAO;QACpB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,iBAAiB,CAAC,EAAO;QACrB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,gBAAgB,CAAC,UAAmB;QAChC,IAAI,UAAU,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;SACzB;aAAM;YACH,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;SACxB;IACL,CAAC;IAED,QAAQ,CAAC,OAAwC;QAC7C,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,kEAAI,gCAAM,EAAE;YACrD,OAAO;gBACH,QAAQ,EAAE,oBAAoB;aACjC,CAAC;SACL;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,CAAgB,EAAE,GAAW;QACvC,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;YAC7C,IAAI,GAAG,GAAG,CAAC,EAAE;gBACT,kEAAI,sCAAmB,GAAG,GAAG,CAAC,OAAC;aAClC;SACJ;IACL,CAAC;IAED,WAAW;QACP,kEAAI,2EAAkB,MAAtB,IAAI,CAAoB,CAAC;QAEzB,IAAI,kEAAI,0CAAgB,IAAI,IAAI,EAAE;YAC9B,kEAAI,qEAAY,MAAhB,IAAI,EAAa,kEAAI,0CAAgB,CAAC,CAAC;YACvC,kEAAI,sCAAmB,IAAI,OAAC;SAC/B;IACL,CAAC;IAED,cAAc,CAAC,CAAgB,EAAE,GAAW;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAEjC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE;YAC5B,OAAO,IAAI,CAAC;SACf;QAED,IAAI,OAAO,IAAI,GAAG,GAAG,CAAC,GAAG,kEAAI,gCAAM,EAAE;YACjC,kEAAI,sCAAmB,GAAG,GAAG,CAAC,OAAC;SAClC;QAED,IAAI,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE;YAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SAC1C;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,WAAW,CAAC,CAAiB,EAAE,GAAW;QACtC,CAAC,CAAC,cAAc,EAAE,CAAC;QAEnB,IAAI,GAAG,KAAK,CAAC,EAAE;YACX,OAAO;SACV;QAED,MAAM,SAAS,GAAG,CAAC,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,kEAAI,gCAAM,GAAG,CAAC,CAAC;QAE/C,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACtC,OAAO;SACV;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SAClD;QAED,kEAAI,qEAAY,MAAhB,IAAI,EAAa,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3C,kEAAI,2EAAkB,MAAtB,IAAI,CAAoB,CAAC;QACzB,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IAED,WAAW,CAAC,CAAa;QACpB,CAAC,CAAC,MAA2B,CAAC,MAAM,EAAE,CAAC;IAC5C,CAAC;IAUD,WAAW;QACP,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;YACxB,MAAM,OAAO,GAAG,EAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAC,CAAC;YAC1C,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;gBAC3C,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;oBACV,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE;wBAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;wBACtB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;qBAC3B;gBACL,CAAC;gBACD,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;oBACX,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;oBAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;oBACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACvB,UAAU,CAAC,GAAG,EAAE;wBACZ,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;oBACpC,CAAC,EAAE,IAAI,CAAC,CAAC;oBACT,2CAA2C;oBAC3C,uDAAuD;gBAC3D,CAAC;aACJ,CAAC;SACL;IACL,CAAC;IAED,UAAU;QACN,MAAM,OAAO,GAAG,GAAG,EAAE;YACjB,IAAI,CAAC,GAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC;YAChD,IAAI,CAAC,GAAO,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YAEpC,uCAAuC;YACvC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;gBACzC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,+CAA+C;aAC5F;iBAAM;gBACH,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aAC1B;QACL,CAAC,CAAC;QAEF,OAAO,EAAE,CAAC,CAAC,kBAAkB;IACjC,CAAC;IAED,WAAW;QACP,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE;YACtB,MAAM,OAAO,GAAG,EAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAC,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;gBAC3C,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;oBACV,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBACpB,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE;wBAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;wBACrC,oFAA0B,CAAC,KAAK,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;wBACxD,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;wBACzB,IAAI,CAAC,UAAU,EAAE,CAAC;qBACrB;gBACL,CAAC;gBACD,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;oBACX,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBACpB,2CAA2C;oBAC3C,uDAAuD;gBAC3D,CAAC;aACJ,CAAC;SACL;aAAM;YACH,kFAAwB,CAAC,mCAAmC,EAAE,SAAS,CAAC,CAAC;SAC5E;IACL,CAAC;IAED,OAAO,CAAC,KAAK;QACT,gFAA0B,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;;sNAtFW,GAAW;IACnB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;AACpE,CAAC;IAGG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;;;;;4CApJI,iDAAM,SAAC,qEAAe;;;mBA6B1B,gDAAK;uBAML,uDAAY,SAAC,SAAS;;AAjDd,kBAAkB;IAL9B,wDAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,kEAAgC;;KAEnC,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBR;AASC;AACoC;AACS;AAC9B;AACmB;AACP;AACS;AAEJ;IAO3C,uBAAuB,SAAvB,uBAAuB;IA0BhC,YAAoB,EAAe,EAAU,YAA0B,EAAU,MAAc,EAAS,MAAiB,EAAU,KAAwB;QAAvI,OAAE,GAAF,EAAE,CAAa;QAAU,iBAAY,GAAZ,YAAY,CAAc;QAAU,WAAM,GAAN,MAAM,CAAQ;QAAS,WAAM,GAAN,MAAM,CAAW;QAAU,UAAK,GAAL,KAAK,CAAmB;QAvB3J,gBAAW,GAAG,IAAI,CAAC;QACnB,cAAS,GAAG,KAAK,CAAC;QAClB,gBAAW,GAAG,KAAK,CAAC;QACpB,gBAAW,GAAG,IAAI,CAAC;QACnB,oBAAe,GAAG,IAAI,CAAC;QACvB,iBAAY,GAAW,EAAE,CAAC;QAC1B,gBAAW,GAAG,KAAK,CAAC;QACpB,uBAAkB,GAAG,KAAK,CAAC;QAC3B,qBAAgB,GAAG,KAAK,CAAC;QACzB,cAAS,GAAG,KAAK,CAAC;QAClB,mBAAc,GAAG,KAAK,CAAC;QACvB,gBAAW,GAAG,KAAK,CAAC;QAEpB,YAAO,GAAW,EAAE;QACpB,aAAQ,GAAW,EAAE,CAAC;QAIZ,gBAAW,GAAG,IAAI,uDAAY,EAAW;IAMnD,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,sCAAsC,CAAC;QACtD,IAAI,uFAAmC,EAAE;YACrC,IAAI,CAAC,QAAQ,GAAG,iDAAiD,CAAC;SACrE;aACI;YACD,IAAI,CAAC,QAAQ,GAAG,4CAA4C,CAAC;SAChE;QAED,0CAA0C;QAC1C,iBAAiB;QACjB,iDAAiD;QACjD,QAAQ;QACR,KAAK;QACL,2CAA2C;QAC3C,iBAAiB;QACjB,qDAAqD;QACrD,mEAAmE;QACnE,sBAAsB;QACtB,YAAY;QACZ,0DAA0D;QAC1D,QAAQ;QACR,KAAK;IACT,CAAC;IAEL,2EAA2E;IACvE,SAAS;QACL,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACtB,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,+DAAmB,EAAE,4DAAgB,CAAC,CAAC;YACpD,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,+DAAmB,EAAE,gEAAoB,CAAC,CAAC,CAAC;oBACxD,8DAAkB,CAAC,gEAAgE,CAAC,CAAC;aACxF;YACD,eAAe,EAAE,CAAC,EAAE,EAAE,+DAAmB,CAAC;SAC7C,CAAC,CAAC;IACP,CAAC;IAED,YAAY,CAAC,OAAO;QAChB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,OAAO,IAAI,iBAAiB,EAAE;YAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAC3B;QACD,IAAI,OAAO,IAAI,YAAY,EAAE;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACzB;QACD,IAAI,OAAO,IAAI,cAAc,EAAE;YAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAC3B;IAEL,CAAC;IAED,aAAa;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;QAClD,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,YAAY,EAAE;YACtC,MAAM,OAAO,GAAG,EAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAC,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;gBAC7C,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;oBACV,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBACpB,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE;wBAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;wBACrC,oFAA0B,CAAC,KAAK,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;wBACxD,IAAI,CAAC,aAAa,EAAE,CAAC;qBACxB;gBACL,CAAC;gBACD,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;oBACX,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBACpB,2CAA2C;oBAC3C,uDAAuD;gBAC3D,CAAC;aACJ,CAAC;SACL;aAAM;YACH,kFAAwB,CAAC,sCAAsC,EAAE,SAAS,CAAC,CAAC;SAC/E;IACL,CAAC;IAED,eAAe;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAEtC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC1B,kFAAwB,CAAC,gCAAgC,EAAE,SAAS,CAAC,CAAC;YACtE,OAAO;SACV;QAED,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,kFAAwB,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,CAAC,CAAC;YAC9D,OAAO;SACV;QAED,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,eAAe,EAAE;YAClD,kFAAwB,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC;YAChE,OAAO;SACV;QAED,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,eAAe,EAAE;YAClD,MAAM,OAAO,GAAG,EAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAC,CAAC;YACrE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;gBAC/C,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;oBACV,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBACpB,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE;wBAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;wBACrC,oFAA0B,CAAC,KAAK,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;wBACxD,IAAI,CAAC,MAAM,EAAE,CAAC;qBACjB;gBACL,CAAC;gBACD,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;oBACX,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBACpB,2CAA2C;oBAC3C,uDAAuD;gBAC3D,CAAC;aACJ,CAAC;SACL;IACL,CAAC;IAED,MAAM;QACF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,aAAa;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qEAAkB,EAAE;YACnD,KAAK,EAAE,OAAO;YACd,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAC;SACxC,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YAC1C,IAAI,SAAS,EAAE;gBACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;gBAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;aACrC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS;QACL,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;SAC/B;IACL,CAAC;IAED,gBAAgB,CAAC,QAAQ;QACrB,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3D,gBAAgB;QAChB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE1C,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,IAAI,CAAC,YAAY,GAAG,8CAA8C,CAAC;SACtE;aAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC/B,IAAI,CAAC,YAAY,GAAG,oDAAoD,CAAC;SAC5E;aAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACxB,IAAI,CAAC,YAAY,GAAG,4CAA4C,CAAC;SACpE;aAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YAC7B,IAAI,CAAC,YAAY,GAAG,uDAAuD,CAAC;SAC/E;aAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAC1B,IAAI,CAAC,YAAY,GAAG,wDAAwD,CAAC;SAChF;aAAM;YACH,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;SAC1B;QACD,sHAAsH;IAC1H,CAAC;IAED,OAAO,CAAC,KAAK;QACT,gFAA0B,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;;;;;;;;;;yBA5MA,oDAAS,SAAC,YAAY;0BAmBtB,iDAAM;;AArBE,uBAAuB;IALnC,wDAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,iFAA+C;;KAElD,CAAC;GACW,uBAAuB;AAAA;AAkNpC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;ACrPF,6BAA6B;AACqB;AACQ;AACK;AACgB;IAMlE,qBAAqB,SAArB,qBAAqB;IAChC,YAAoB,cAA8B,EAAU,IAAgB;QAAxD,mBAAc,GAAd,cAAc,CAAgB;QAAU,SAAI,GAAJ,IAAI,CAAY;IAAI,CAAC;IAEjF,QAAQ;QACN,MAAM,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC,GAAG,CAAC,oFAAqB,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAClE,IAAI,MAAM,EAAE;gBACV,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC;oBACtC,SAAS,EAAE,MAAM,CAAC,kBAAkB,CAAC;oBACrC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;iBACnD,CAAC,CAAC;gBAEH,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,YAAY,CACvC,QAAQ,CAAC,cAAc,CAAC,oBAAoB,CAAC,EAC7C,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CACpC,CAAC;gBAEF,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,aAAa;aACrD;QACH,CAAC,CAAC;IACJ,CAAC;IAED,wBAAwB,CAAC,QAAa;QACpC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC9D,CAAC;;;;;;AAxBU,qBAAqB;IALjC,wDAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;QAC7B,QAAQ,EAAE,qCAAqC;;KAEhD,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJX;AACkB;AAEY;AAGwB;AACb;AACS;AACL;AACL;IAQlD,eAAe,SAAf,eAAe;IAiB3B,YACS,mBAAwC,EACxC,MAAiB,EAAU,MAAc,EACJ,IAAI;QAFzC,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,WAAM,GAAN,MAAM,CAAW;QAAU,WAAM,GAAN,MAAM,CAAQ;QACJ,SAAI,GAAJ,IAAI;QAnBlD,kBAAa,GAAQ,EAAE,CAAC;QACxB,cAAS,GAAG,KAAK,CAAC;QAalB,UAAK,GAAG,CAAC,CAAC;QACV,eAAU,GAAG,EAAE,CAAC;QAMhB,YAAO,GAAG,EAAE,CAAC;QACb,YAAO,GAAG,EAAE,CAAC;IAFV,CAAC;IAGJ,QAAQ;QACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QAChE,IAAI,CAAC,OAAO,GAAG,uCAAuC,CAAC;QACvD,yEAAyE;QACzE,cAAc;QACd,2CAA2C;QAC3C,KAAK;QACL,MAAM;QACN,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC;YACrC,8GAA6C,CAAC,CAAC,CAAC,EAAE,EAAE;gBACnD,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,IAAI,KAAK,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,EAAE;oBACN,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;wBAChB,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;4BACb,IAAI,KAAK,KAAK,CAAC,EAAE;gCAChB,QAAQ,EAAE,CAAC,WAAW,EAAE;oCACvB,KAAK,oFAAiB;wCACrB,KAAK,CAAC,YAAY,CAAC,GAAG,gBAAgB,CAAC;wCACvC,MAAM;oCACP,KAAK,0FAAuB;wCAC3B,KAAK,CAAC,YAAY,CAAC,GAAG,iBAAiB,CAAC;wCACxC,MAAM;oCACP,KAAK,sFAAmB;wCACvB,KAAK,CAAC,YAAY,CAAC,GAAG,gBAAgB,CAAC;wCACvC,MAAM;oCACP,KAAK,sFAAmB;wCACvB,KAAK,CAAC,YAAY,CAAC,GAAG,gBAAgB,CAAC;wCACvC,MAAM;iCACP;6BACD;4BACD,KAAK,EAAE,CAAC;yBACR;oBACF,CAAC,CAAC,CAAC;iBACH;gBACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACX,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,WAAW;QACV,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC/C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,KAAK;QACjB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED,4CAA4C;IAC5C,aAAa,CAAC,GAAG;QAChB,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI;QACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wEAAmB,EAAE;YACrC,UAAU,EAAE,qBAAqB;YACjC,IAAI,EAAE,EAAE;SACR,CAAC,CAAC;IACJ,CAAC;IAED,QAAQ;QACP,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;YAC7C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SAClC;IACF,CAAC;IAED,MAAM;QACL,sDAAsD;QACtD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,6BAA6B,CAAC,CAAC;IACtD,CAAC;;AA9FM,oBAAI,GAAQ,eAAgB;AAC5B,uBAAO,GAAG;IAChB,IAAI,EAAE,eAAe;IACrB,MAAM,EAAE;QACP,SAAS,EAAE,IAAI;KACf;CACD,CAAC;;;;;4CASA,iDAAM,SAAC,yFAA4B;;;qBARpC,oDAAS,SAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,qDAAU,EAAE;;AAZ7B,eAAe;IAL3B,wDAAS,CAAC;QACV,QAAQ,EAAE,YAAY;QACtB,wEAAsC;;KAEtC,CAAC;GACW,eAAe;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACxB5B;AACA;AACA;AAGA;IASaM,eAAe,SAAfA,eAAe;EAY1BxS,YAAoB6E,MAApB,EAAkC;IAAd;IAJpB,sBAAiB,KAAjB;IACA,oBAAe,IAAf;EAGsC;;EAItC7H,QAAQ;IACN,MAAMyV,QAAQ,GAAGzL,IAAI,CAACC,KAAL,CAAWJ,YAAY,CAACC,OAAb,CAAqB,MAArB,CAAX,GAA0C4L,KAA3D;IACA,KAAKC,YAAL,GAAoB,EAAEF,QAAQ,IAAIA,QAAQ,CAAC7T,MAAT,GAAkB,CAA9B,IAAmC6T,QAAQ,CAAC,CAAD,CAAR,KAAgBF,6DAArD,CAApB;EACD;;EAED9J,eAAe;IACb,KAAKoK,UAAL,CAAgBC,MAAhB,CAAuBxV,SAAvB,CAAiC,MAAK;MACpC,IAAI,KAAKyV,cAAT,EAAyB;QACvB,KAAKC,mBAAL,GACG9R,IADH,CACQ,MAAK;UACT,KAAK+R,yBAAL;QACD,CAHH,EAIGC,KAJH,CAIUC,KAAD,IAAU;UACfnI,OAAO,CAACmI,KAAR,CAAc,kCAAd,EAAkDA,KAAlD;QACD,CANH;MAOD;IACF,CAVD;EAWD;;EAEDC,YAAY;IACV,KAAKvO,MAAL,CAAYgI,QAAZ,CAAqB,CAAC,8BAAD,CAArB;IACA,KAAKwG,OAAL,CAAaC,SAAb;EACD;;EAEDC,kBAAkB;IAChB,KAAKR,cAAL,GAAsB,IAAtB;IACA,KAAKM,OAAL,CAAaC,SAAb;EACD;;EAEDE,mBAAmB;IACjB,KAAKT,cAAL,GAAsB,KAAtB;EACD;;EAEOC,mBAAmB;IACzB,OAAO,IAAIhR,OAAJ,CAAY,CAACC,OAAD,EAAUwO,MAAV,KAAoB;MACrC,MAAMgD,cAAc,GAAGC,QAAQ,CAACC,cAAT,CAAwB,aAAxB,CAAvB;;MACA,IAAI,CAACF,cAAL,EAAqB;QACnB,MAAMG,SAAS,GAAG,iDAAlB;QACA,MAAMC,IAAI,GAAGH,QAAQ,CAACI,aAAT,CAAuB,QAAvB,CAAb;QACAD,IAAI,CAACE,GAAL,GAAWH,SAAX;QACAC,IAAI,CAACG,EAAL,GAAU,aAAV;QACAH,IAAI,CAACnN,IAAL,GAAY,iBAAZ;QACAmN,IAAI,CAACI,KAAL,GAAa,IAAb;QACAJ,IAAI,CAACK,OAAL,GAAe,OAAf;;QACAL,IAAI,CAACM,MAAL,GAAc,MAAK;UACjBlS,OAAO;QACR,CAFD;;QAGA4R,IAAI,CAACO,OAAL,GAAe,MAAK;UAClB3D,MAAM,CAAC,IAAI4D,KAAJ,CAAU,uBAAV,CAAD,CAAN;QACD,CAFD;;QAGAX,QAAQ,CAACY,IAAT,CAAcC,WAAd,CAA0BV,IAA1B;MACD,CAfD,MAeO;QACL5R,OAAO;MACR;IACF,CApBM,CAAP;EAqBD;;EAEOgR,yBAAyB;IAC/B,IAAI;MACF,MAAMuB,mBAAmB,GAAGd,QAAQ,CAACC,cAAT,CAAwB,iBAAxB,CAA5B;MACA3I,OAAO,CAACC,GAAR,CAAY,aAAZ,EAA2BuJ,mBAA3B;;MACA,IAAIA,mBAAJ,EAAyB;QACvBC,SAAS,CAACC,YAAV,CAAuB,UAAvB,EAAmCF,mBAAnC;MACD;IACF,CAND,CAME,OAAOrB,KAAP,EAAc;MACdnI,OAAO,CAACmI,KAAR,CAAc,2BAAd,EAA2CA,KAA3C;IACD;EACF;;AAnFyB;AACnBX,uBAAY,UAAZ;AAEAA,0BAAU;EACfmC,QAAQ,EAAE,IADK;EAEf/M,IAAI,EAAE,UAFS;EAGfgN,OAAO,EAAE;AAHM,CAAV;;;;;;;;UAQNvC,oDAASA;IAAArF,OAACsF,kEAAD;;;UAGTD,oDAASA;IAAArF,OAAC,YAAD;;;AAdCwF,eAAe,sDAL3B7V,wDAAS,CAAC;EACT4C,QAAQ,EAAE,eADD;EAETC,UAAAA,uDAFS;;AAAA,CAAD,CAKkB,GAAfgT,eAAe,CAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdoG;AACrF;AAC6C;AAClB;AACW;AACE;AACK;AACV;AACK;AACF;AAEmC;AACrD;IAOnC,mBAAmB,SAAnB,mBAAmB;IAe5B,YAAoB,SAA4C,EAAU,SAA2B,EACjE,IAAS;QADzB,cAAS,GAAT,SAAS,CAAmC;QAAU,cAAS,GAAT,SAAS,CAAkB;QACjE,SAAI,GAAJ,IAAI,CAAK;QAd7C,iBAAY,GAAG,EAAE,CAAC;QAClB,wBAAmB,GAAG,CAAC,CAAC,CAAC;QAIzB,WAAM,GAAG,KAAK,CAAC;QAEf,kBAAa,GAAG,EAAE,CAAC;QAGnB,gBAAW,GAAG,EAAE,CAAC;QACjB,aAAQ,GAAG,EAAE,CAAC;QAsBd,oBAAe,GAAG,IAAI,CAAC;QAlBnB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,0FAAuB,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,oFAAiB,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,sFAAmB,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,sFAAmB,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAEtD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,QAAQ,GAAQ,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC5D,IAAI,QAAQ,EAAE;YACV,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SACnC;QACD,IAAI,QAAQ,IAAI,IAAI,EAAE;YAClB,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE;gBAC7C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;aAC/B;SACJ;IACL,CAAC;IAED,QAAQ;QACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;QACjE,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,8DAAmB,EAAE;YACxE,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;SACtC;QACK,qFAAyB,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,iFAAqB,CAAC;QACrC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,+FAAkC,CAAC,CAAC,MAAM,EAAE,EAAE;YAClE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,8GAA6C,CAAC,CAAC,CAAC,EAAE;YACtE,IAAI,CAAC,EAAE;gBACH,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;aAC7B;iBAAM;gBACH,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aACzB;YACD,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,WAAW;QACP,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC3B,CAAC,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,cAAc;QACV,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC,EAAE;YAC9B,+CAA+C;YAC/C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACzB,QAAQ,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACzB,IAAI,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,mBAAmB,EAAE;oBAC5C,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAC,IAAI,CAAC,mBAAmB,CAAC;oBAC5C,QAAQ,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC9C;YACL,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,SAAS;QACL,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,YAAY;QACR,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,iGAAgC,EAAE,CAAC;IACvC,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,WAAW,CAAC,IAAI;QACZ,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE;YAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;SAClC;IACL,CAAC;IAED,IAAI;QACA,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAClD,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;YAC3B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC;YACzD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;SACrC;IACL,CAAC;IAED,OAAO;QACH,kFAAsB,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACrC,oFAAwB,EAAE,CAAC;YAC3B,yFAA6B,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACP,CAAC;IACD,eAAe;QACX,yFAA6B,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,eAAe;QACX,yFAA6B,EAAE,CAAC;IACpC,CAAC;IACD,YAAY,CAAC,IAAI;QACb,IAAI,IAAI,GAAG;YACP,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;SAClD;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,kFAAgB,EAAE;YACjC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SAChE;QACD,0HAA8B,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,CAAC,IAAI;QACR,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,QAAQ,IAAI,CAAC,MAAM,EAAE;YACjB,KAAK,oFAAkB;gBAAE,MAAM,GAAG,cAAc,CAAC;gBAAC,MAAM;YACxD,KAAK,oFAAkB;gBAAE,MAAM,GAAG,cAAc,CAAC;gBAAC,MAAM;YACxD,KAAK,uFAAqB;gBAAE,MAAM,GAAG,iBAAiB,CAAC;gBAAC,MAAM;YAC9D,KAAK,kFAAgB;gBAAE,MAAM,GAAG,YAAY,CAAC;gBAAC,MAAM;SACvD;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,CAAC,MAAM,IAAI,oFAAkB,EAAE;YACnC,IAAI,CAAC,MAAM,GAAG,uFAAqB,CAAC;YACpC,4FAAgC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC1E,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE;oBAC7B,IAAI,CAAC,MAAM,GAAG,oFAAkB,CAAC;iBACpC;qBAAM;oBACH,IAAI,CAAC,MAAM,GAAG,kFAAgB,CAAC;oBAC/B,IAAI,MAAM,CAAC,QAAQ,EAAE;wBACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;qBAC/C;iBACJ;YACL,CAAC,CAAC;SACL;IACL,CAAC;IACD,WAAW,CAAC,IAAI;QACZ,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;YACnB,2FAA+B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC1D,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE;oBAC7B,IAAI,CAAC,MAAM,GAAG,oFAAkB,CAAC;iBACpC;qBAAM;oBACH,IAAI,CAAC,MAAM,GAAG,kFAAgB,CAAC;oBAC/B,IAAI,MAAM,CAAC,QAAQ,EAAE;wBACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;qBAC/C;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IACD,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YACvB,2FAA+B,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC9D,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE;oBAC7B,IAAI,CAAC,MAAM,GAAG,oFAAkB,CAAC;iBACpC;qBAAM;oBACH,IAAI,CAAC,MAAM,GAAG,kFAAgB,CAAC;oBAC/B,IAAI,MAAM,CAAC,QAAQ,EAAE;wBACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;qBAC/C;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;;;;;4CA/KI,kDAAM,SAAC,sEAAe;;AAhBlB,mBAAmB;IAN/B,yDAAS,CAAC;QACP,QAAQ,EAAE,yBAAyB;QACnC,8EAA4C;QAE5C,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,mBAAmB;AAAA;AAkMzB,MAAM,oBAAoB;IAmB7B,YAAoB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;QACxC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;YACtC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;YACtD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;gBACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;aAC1D;iBAAM;gBACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;aACjC;SACJ;aAAM;YACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;YAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;SACjC;QACD,IAAI,CAAC,mBAAmB,GAAG,6CAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrE,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,GAAG,EAAE;YACnE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;SACjF;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE;YAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;SAC9D;aAAM;YACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;SACpC;QACD,IAAI,CAAC,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAClE,CAAC;IA5BD,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7B,CAAC;IA4BD,OAAO;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,kBAAkB;QACd,MAAM,SAAS,GAAG,+FAAkC,CAAC;QACrD,IAAI,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;QAC7E,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC;QACzF,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACvE,OAAO,IAAI,CAAC;IAChB,CAAC;;AAtDc,2BAAM,GAAG;IACpB,CAAC,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE;IACnC,CAAC,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE;IACnC,CAAC,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE;IACnC,CAAC,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE;CACvC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3NuD;AACL;AACD;AACe;AACN;AACF;AACA;AACsB;AAExB;AAC5D,CAAC,CAAC;AAC0D;AACnB;IAS5B,eAAe,SAAf,eAAe;IAiB3B,YACS,WAAwB,EACxB,YAA0B,EACW,IAAI,EACzC,MAAc;QAHd,gBAAW,GAAX,WAAW,CAAa;QACxB,iBAAY,GAAZ,YAAY,CAAc;QACW,SAAI,GAAJ,IAAI;QACzC,WAAM,GAAN,MAAM,CAAQ;QAnBvB,kBAAa,GAAG,EAAE,CAAC;QASnB,qBAAgB,GAAG,KAAK,CAAC;QAEzB,cAAS,GAAG,KAAK,CAAC;QAClB,aAAQ,GAAG,EAAE,CAAC;IAQX,CAAC;IAEJ,qDAAqD;IAErD,QAAQ;QACP,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW;aAC5C,eAAe,EAAE;aACjB,SAAS,CAAC,CAAC,KAAY,EAAE,EAAE;YAC3B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,KAAK,CAAC,WAAW,EAAE;gBACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aACtB;QACF,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,SAAS,GAAG,0EAAkB,CAAC;QACpC,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,QAAQ,GAAG,+EAAuB,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC;gBACpC,2FAAmC,CAAC,CAAC,QAAQ,EAAE,EAAE;oBAChD,IAAI,CAAC,QAAQ,GAAG,+EAAuB,CAAC;gBACzC,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,cAAc,GAAG,gFAAwB,CAAC;SAC/C;QACD,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,WAAW,EAAE,CAAC;SACnB;QACD,IAAI,CAAC,gBAAgB,GAAG,yGAAyC,EAAE,CAAC;IACrE,CAAC;IAED,qBAAqB;QACpB,qFAA6B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACpD,CAAC;IAED,MAAM;QACL,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;IAED,WAAW;QACV,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAC1B,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1C,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,oCAAoC;QACpC,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACtC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,8CAA8C;YACxE,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE;gBAChE,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC5C,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC9D,QAAQ,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACjC;qBAAM,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;iBACzB;aACD;SACD;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3D,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;SACxB;QACD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;IACD,WAAW;QACV,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACjC,MAAM,GAAG,GAAG,+FAAmC,EAAE,CAAC;YAClD,IAAI,GAAG,EAAE;gBACR,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;aACvD;SACD;IACF,CAAC;IAED,gBAAgB;QACf,oNAAoN;QACpN,sHAAsH;IACvH,CAAC;IAED,cAAc;QACb,yGAAuB,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;IAED,YAAY,CAAC,MAAe;QAC3B,MAAM,SAAS,GAAU,IAAI,CAAC,YAAY,CAAC;QAC3C,SAAS,CAAC,WAAW,GAAG,MAAM,CAAC;QAC/B,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1D,+EAAoB,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACJ,CAAC;IACD,eAAe;QACd,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SACxB;aAAM;YACN,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SACzB;IACF,CAAC;IAED,gBAAgB;QACf,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;;AAtHM,oBAAI,GAAQ,UAAW;AAEvB,uBAAO,GAAG;IAChB,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,OAAO;CAChB,CAAC;;;;4CAaA,kDAAM,SAAC,yFAA4B;;;;sBAJpC,qDAAS,SAAC,mEAAc;;AAhBb,eAAe;IAL3B,yDAAS,CAAC;QACV,QAAQ,EAAE,eAAe;QACzB,0EAAwC;;KAExC,CAAC;GACW,eAAe;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACrBiC;AACb;IAMnC,mBAAmB,SAAnB,mBAAmB;IAC/B,YAAoB,QAAmB;QAAnB,aAAQ,GAAR,QAAQ,CAAW;QAEvC,qBAAgB,GAAG,IAAI,CAAC;IAFkB,CAAC;IAG3C,QAAQ;QACP,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;QACjE,IAAI,CAAC,gBAAgB,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,6DAAmB;IAC/F,CAAC;;;;;AAPW,mBAAmB;IAL/B,wDAAS,CAAC;QACV,QAAQ,EAAE,iBAAiB;QAC3B,6EAA2C;;KAE3C,CAAC;GACW,mBAAmB;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACPhC;IAOasC,4BAA4B,SAA5BA,4BAA4B;EAExC9U,YAAoB+U,QAApB,EAAuC;IAAnB;EAAuB;;EAE1C/X,QAAQ;IACN,MAAM4W,SAAS,GAAG,iDAAlB;IACA,MAAMC,IAAI,GAAG,KAAKkB,QAAL,CAAcjB,aAAd,CAA4B,QAA5B,CAAb;IACAD,IAAI,CAACE,GAAL,GAAWH,SAAX;IACAC,IAAI,CAACG,EAAL,GAAU,aAAV;IACAH,IAAI,CAACnN,IAAL,GAAY,iBAAZ;IACAmN,IAAI,CAACI,KAAL,GAAa,IAAb;IACAJ,IAAI,CAACK,OAAL,GAAe,OAAf;;IACAL,IAAI,CAACM,MAAL,GAAe5F,CAAD,IAAM;MAClB,MAAMiG,mBAAmB,GAAGd,QAAQ,CAACC,cAAT,CAAwB,YAAxB,CAA5B;;MACA,IAAIa,mBAAJ,EAAyB;QACvBC,SAAS,CAACC,YAAV,CAAuB,UAAvB,EAAmCF,mBAAnC;MACD;IACF,CALD;;IAMA,KAAKO,QAAL,CAAcR,WAAd,CAA0Bb,QAAQ,CAACY,IAAnC,EAAyCT,IAAzC;EACD;;AAnBsC;;;;;;AAA5BiB,4BAA4B,sDALxCnY,wDAAS,CAAC;EACT4C,QAAQ,EAAE,4BADD;EAETC,UAAAA,8EAFS;;AAAA,CAAD,CAK+B,GAA5BsV,4BAA4B,CAA5B;;;;;;;;;;;;;;;;;;;;;;;ACPoC;IAOpC,QAAQ,SAAR,QAAQ;IACpB,gBAAe,CAAC;;;;sBAEf,gDAAK;mBAEL,gDAAK;;AALM,QAAQ;IALpB,wDAAS,CAAC;QACV,QAAQ,EAAE,WAAW;QACrB,0EAAwC;;KAExC,CAAC;GACW,QAAQ;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACP4B;AACkB;AACb;AAEa;AACN;AACF;AACW;AAC9B;AAE6B;AACgB;AACvB;IAOjD,cAAc,SAAd,cAAc;IA6DzB,YACU,YAA0B,EAC1B,eAAgC,EAChC,SAA2B,EAC3B,MAAc;QAHd,iBAAY,GAAZ,YAAY,CAAc;QAC1B,oBAAe,GAAf,eAAe,CAAiB;QAChC,cAAS,GAAT,SAAS,CAAkB;QAC3B,WAAM,GAAN,MAAM,CAAQ;QAhExB,cAAS,GAAG,gCAAgC;QAE5C,UAAK,GAAG;YACN,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE;SACZ;QACD,SAAI,GAAG,IAAI;QACX,oBAAe,GAAG,IAAI;QAGtB,gBAAW,GAAG;YACZ,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,IAAI;YACf,GAAG,EAAC,EAAE;SACR;QACD,YAAO,GAAG;YACR,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,aAAa;SACpB;QACD,cAAS,GAAG,KAAK;QACjB,YAAO,GAAW,EAAE;QACpB,aAAQ,GAAW,EAAE;QACrB,kBAAa,GAAW,EAAE;QAE1B,gBAAW,GAAG,IAAI;QAyChB,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9D,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,qBAAqB,GAAG,KAAK;gBAClC,IAAI,KAAK,GAAG,KAAK;gBACjB,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;oBAC9C,IAAI,QAAQ,CAAC,SAAS,EAAE;wBACtB,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,QAAQ,CAAC,EAAE;wBACzC,IAAI,QAAQ,CAAC,GAAG,EAAE;4BAChB,KAAK,GAAG,IAAI;yBACb;wBACD,IAAI,QAAQ,CAAC,IAAI,KAAK,sCAAsC,EAAE;4BAC5D,IAAI,CAAC,SAAS,GAAG,IAAI;4BACrB,KAAK,GAAG,IAAI;yBACb;wBACD,IAAI,CAAC,gBAAgB,GAAG,QAAQ;qBACjC;gBACH,CAAC,CAAC;gBACF,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK;aAC9B;QACH,CAAC,CAAC;IACJ,CAAC;IA3DD,QAAQ;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,qDAAS,CAAC;YAC7B,KAAK,EAAE,IAAI,uDAAW,CAAC,EAAE,EAAE,CAAC,+DAAmB,CAAC,CAAC;YACjD,QAAQ,EAAE,IAAI,uDAAW,CAAC,EAAE,EAAE,+DAAmB,CAAC;SACnD,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,uCAAuC;QACtD,IAAI,CAAC,aAAa,GAAG,uCAAuC;QAC5D,IAAI,8FAAmC,EAAE;YACvC,IAAI,CAAC,QAAQ,GAAG,sCAAsC;SACvD;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,sCAAsC;SACvD;QACD,0CAA0C;QAC1C,iBAAiB;QACjB,iDAAiD;QACjD,QAAQ;QACR,KAAK;QAEL,2CAA2C;QAC3C,iBAAiB;QACjB,qDAAqD;QACrD,mEAAmE;QACnE,sBAAsB;QACtB,YAAY;QACZ,0DAA0D;QAC1D,QAAQ;QACR,KAAK;IACP,CAAC;IAED,SAAS;QACP,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC;IAC1C,CAAC;IA8BD,uBAAuB;IACvB,sCAAsC;IACtC,6BAA6B;IAC7B,wBAAwB;IACxB,yDAAyD;IACzD,0DAA0D;IAC1D,8BAA8B;IAC9B,yBAAyB;IACzB,YAAY;IACZ,0EAA0E;IAC1E,kCAAkC;IAClC,yBAAyB;IACzB,YAAY;IACZ,2CAA2C;IAC3C,UAAU;IACV,SAAS;IACT,oCAAoC;IACpC,MAAM;IACN,IAAI;IAEJ,gBAAgB;IAChB,SAAS;IACT,2CAA2C;IAC3C,2CAA2C;IAC3C,QAAQ;IACR,gCAAgC;IAChC,mDAAmD;IACnD,kBAAkB;IAClB,QAAQ;IACR,aAAa;IACb,MAAM;IACN,2DAA2D;IAC3D,8DAA8D;IAC9D,+BAA+B;IAC/B,mEAAmE;IACnE,uCAAuC;IACvC,qBAAqB;IACrB,0EAA0E;IAC1E,oEAAoE;IACpE,gEAAgE;IAChE,8CAA8C;IAC9C,mBAAmB;IACnB,gBAAgB;IAChB,yCAAyC;IACzC,+CAA+C;IAC/C,WAAW;IACX,QAAQ;IACR,qBAAqB;IACrB,4BAA4B;IAC5B,yCAAyC;IACzC,sFAAsF;IACtF,WAAW;IACX,QAAQ;IACR,oBAAoB;IACpB,kCAAkC;IAClC,sEAAsE;IACtE,oBAAoB;IACpB,UAAU;IACV,QAAQ;IACR,oBAAoB;IACpB,kCAAkC;IAClC,gFAAgF;IAChF,oBAAoB;IACpB,UAAU;IACV,QAAQ;IACR,kCAAkC;IAClC,OAAO;IACP,IAAI;IAGF,gBAAgB;QACZ,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC5C,IAAI,QAAQ,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;oBAC5C,IAAI,QAAQ,CAAC,GAAG,EAAE;wBACd,KAAK,GAAG,IAAI,CAAC;qBAChB;oBACD,IAAI,QAAQ,CAAC,IAAI,KAAK,sCAAsC,EAAE;wBAC1D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;wBACtB,KAAK,GAAG,IAAI,CAAC;qBAChB;oBACD,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;iBACpC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK,CAAC;SACjC;IACL,CAAC;IACD,kBAAkB,CAAC,WAAkB;QACjC,IAAG,WAAW,EAAC;YACX,IAAI,eAAe,GAAG;gBAClB,KAAK,EAAC,WAAW;aACpB;YACD,IAAI,CAAC,OAAO,CAAC,MAAM,GAAC,IAAI,CAAC;YACzB,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,GAAE;gBACvD,IAAI,CAAC,KAAK,CAAC,EAAE;oBACT,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;wBAC3D,gGAA4B,EAAE,CAAC;wBAC/B,wFAA8B,CAAC,IAAI,CAAC,CAAC;wBACrC,gFAA0B,CAAC,KAAK,CAAC,CAAC;oBACtC,CAAC,CAAC,CAAC;iBACN;gBACD,IAAI,CAAC,KAAK,GAAG;oBACT,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;oBAClB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,2EAA2E,CAAC;iBAC/G,CAAC;gBACF,IAAI,CAAC,IAAI,CAAC,EAAE;oBACR,kFAAwB,CAAC,6CAA6C,EAAE,SAAS,CAAC;iBACrF;gBACD,IAAI,CAAC,IAAI,CAAC,EAAE;oBACR,kFAAwB,CAAC,oEAAoE,EAAE,SAAS,CAAC;iBAC5G;gBACD,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;YAChC,CAAC,CAAC;SACL;IACL,CAAC;IACD,SAAS;QACL,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,KAAK,EAAE,EAAE;YAC3E,kFAAwB,CAAC,yCAAyC,EAAE,SAAS,CAAC,CAAC;YAC/E,OAAO;SACV;QACD,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;QACvD,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACtD,gCAAgC;YAChC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACT,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;oBAC3D,yDAAyD;oBACzD,qDAAqD;oBACrD,mCAAmC;oBACnC,QAAQ;oBACR,KAAK;oBACL,gGAA4B,EAAE,CAAC;oBAC/B,wFAA8B,CAAC,IAAI,CAAC,CAAC;gBACzC,CAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,KAAK,GAAG;gBACT,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;gBAClB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,2EAA2E,CAAC;aAC/G,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,EAAE;gBACR,kFAAwB,CAAC,0DAA0D,EAAE,SAAS,CAAC;aAClG;YACD,IAAI,CAAC,IAAI,CAAC,EAAE;gBACR,kFAAwB,CAAC,oEAAoE,EAAE,SAAS,CAAC;aAC5G;YACD,IAAI,CAAC,IAAI,CAAC,EAAE;gBACV,kFAAwB,CAAC,4EAA4E,EAAE,SAAS,CAAC;aACpH;YACC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;QAChC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW,CAAC,KAAK;QACb,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;;;;;;;;AAtPQ,cAAc;IAL1B,yDAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,uEAAqC;;KAEtC,CAAC;GACW,cAAc;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBqD;AACZ;AACR;AACnB;AAC8B;AACT;IAOjD,yBAAyB,SAAzB,yBAAyB;IA4BlC,YAAoB,EAAe,EAAU,YAA0B,EAAU,MAAc,EAAU,KAAwB;QAA7G,OAAE,GAAF,EAAE,CAAa;QAAU,iBAAY,GAAZ,YAAY,CAAc;QAAU,WAAM,GAAN,MAAM,CAAQ;QAAU,UAAK,GAAL,KAAK,CAAmB;QAxBjI,gBAAW,GAAG,IAAI,CAAC;QACnB,gBAAW,GAAG,IAAI,CAAC;QACnB,oBAAe,GAAG,IAAI,CAAC;QACvB,iBAAY,GAAG,IAAI,CAAC;QAGpB,iBAAY,GAAW,EAAE,CAAC;QAC1B,gBAAW,GAAG,KAAK,CAAC;QACpB,uBAAkB,GAAG,KAAK,CAAC;QAC3B,qBAAgB,GAAG,KAAK,CAAC;QACzB,cAAS,GAAG,KAAK,CAAC;QAClB,mBAAc,GAAG,KAAK,CAAC;QACvB,gBAAW,GAAG,KAAK,CAAC;QAGpB,gBAAW,GAAG,EAAE,CAAC;QAEjB,aAAQ,GAAG;YACP,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,EAAE;YACvE,EAAE,EAAE,EAAE,0BAA0B,EAAE,KAAK,EAAE,0BAA0B,EAAE,IAAI,EAAE,sBAAsB,EAAE;YACnG,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE;YACnE,EAAE,EAAE,EAAE,uBAAuB,EAAE,KAAK,EAAE,uBAAuB,EAAE,IAAI,EAAE,sBAAsB,EAAE;SAChG;QAID,uBAAkB,GAAS,KAAK,CAAC;IADjC,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,sFAAiC,CAAC,CAAC,IAAI,EAAE,EAAE;YACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;gBACzB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3E,IAAI,CAAC,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;gBACxC,IAAI,IAAI,CAAC,QAAQ,EAAE,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,YAAY,KAAK,OAAO,EAAE;oBACxE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,iBAAiB,CAAC;oBAC1E,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;oBAC/B,IAAI,CAAC,YAAY,GAAC,KAAK,CAAC;iBAC3B;aACJ;iBAAM;gBACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;aACnD;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,iBAAiB,CAAC;IAC1C,CAAC;IAED,SAAS;QACL,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACtB,KAAK,EAAE,CAAC,EAAE,EAAE,+DAAmB,EAAE,4DAAgB,CAAC;YAClD,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,+DAAmB,EAAE,gEAAoB,CAAC,CAAC,CAAC;oBAC/D,8DAAkB,CAAC,gEAAgE,CAAC,CAAC;aACpF;YACD,WAAW,EAAE,CAAC,EAAE,EAAE,+DAAmB,CAAC;YACtC,eAAe,EAAE,CAAC,EAAE,EAAE,+DAAmB,CAAC;SAC7C,CAAC,CAAC;IACP,CAAC;IAED,gBAAgB;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAEtC,+BAA+B;QAC/B,sEAAsE;QACtE,cAAc;QACd,IAAI;QAEJ,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAC7B,kFAAwB,CAAC,gCAAgC,EAAE,SAAS,CAAC,CAAC;YACtE,OAAO;SACV;QAED,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAC7B,kFAAwB,CAAC,gCAAgC,EAAE,SAAS,CAAC,CAAC;YACtE,OAAO;SACV;QAED,IAAI,KAAK,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,eAAe,EAAE;YACrD,kFAAwB,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC;YAChE,OAAO;SACV;QAED,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,kFAAwB,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,CAAC,CAAC;YAC9D,OAAO;SACV;QAED,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;QAC/G,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;YAChD,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;gBACV,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE;oBAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;oBACrC,oFAA0B,CAAC,KAAK,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;oBACxD,IAAI,CAAC,SAAS,EAAE,CAAC;iBACpB;YACL,CAAC;YACD,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;gBACX,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACpB,2CAA2C;gBAC3C,uDAAuD;YAC3D,CAAC;SACJ,CAAC;IACN,CAAC;IAED,gBAAgB,CAAC,QAAQ;QACrB,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3D,gBAAgB;QAChB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE1C,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,IAAI,CAAC,YAAY,GAAG,8CAA8C,CAAC;SACtE;aAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC/B,IAAI,CAAC,YAAY,GAAG,oDAAoD,CAAC;SAC5E;aAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACxB,IAAI,CAAC,YAAY,GAAG,4CAA4C,CAAC;SACpE;aAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YAC7B,IAAI,CAAC,YAAY,GAAG,uDAAuD,CAAC;SAC/E;aAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAC1B,IAAI,CAAC,YAAY,GAAG,wDAAwD,CAAC;SAChF;aAAM;YACH,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;SAC1B;QACD,sHAAsH;IAC1H,CAAC;IAED,cAAc,CAAC,EAAE;QACb,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,EAAE,IAAI,iBAAiB,CAAC;QAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IAED,UAAU;QACN,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,CAAC,KAAK;QACT,gFAA0B,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,SAAS;QACL,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;SAChC;IACL,CAAC;;;;;;;;;0BA3JA,oDAAS,SAAC,aAAa;;AAFf,yBAAyB;IALrC,wDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,mFAAiD;;KAEpD,CAAC;GACW,yBAAyB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZwD;AACrD;AACgB;AACA;AAE+B;AAC1B;AACE;AACf;IAOpC,gBAAgB,SAAhB,gBAAgB;IA0B3B,YACU,YAAkC,EAClC,eAAgC,EAChC,YAA0B,EAC1B,WAAyB,EACzB,MAAc,EACd,KAAwB;QALxB,iBAAY,GAAZ,YAAY,CAAsB;QAClC,oBAAe,GAAf,eAAe,CAAiB;QAChC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,gBAAW,GAAX,WAAW,CAAc;QACzB,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAmB;QA/BlC,cAAS,GAAG,EAAE,CAAC,CAAC,+BAA+B;QAC/C,gBAAW,GAAG;YACZ;gBACE,IAAI,EAAE,6BAA6B;gBACnC,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,WAAW;aAClB;YACD;gBACE,IAAI,EAAE,2CAA2C;gBACjD,OAAO,EAAE,cAAc;gBACvB,IAAI,EAAE,UAAU;aACjB;YACD;gBACE,IAAI,EAAE,4CAA4C;gBAClD,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,YAAY;aACnB;YAED;gBACE,IAAI,EAAE,gDAAgD;gBACtD,OAAO,EAAE,gBAAgB;gBACzB,IAAI,EAAE,MAAM;aACb;SACF,CAAC;QAUF,uBAAkB,GAAG,IAAI,CAAC;IADvB,CAAC;IAGJ,QAAQ;QACN,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;QACjE,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,6DAAmB,EAAE;YAC1E,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;SACjC;QACD,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,MAAM,WAAW,GAAG;gBAClB,IAAI,EAAE,sCAAsC;gBAC5C,OAAO,EAAE,QAAQ;gBACjB,IAAI,EAAE,SAAS;aAChB,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;SAC5C;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAClD,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC5C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;aAC5B;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB,KAAI,CAAC;IACvB,eAAe,CAAC,GAAG;QACjB,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACpB,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,8BAA8B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YAChD,IAAI,GAAG,EAAE;gBACP,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBACxC,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;oBAClC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC3C;gBACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;aAC5C;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,GAAG;QAClB,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,IAAI,IAAI,IAAI,EAAE,QAAQ,EAAE;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjD,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;SAClB;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CAAC,KAAK;QACX,uFAA0B,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IACD,iBAAiB,CAAC,IAAY;QAC5B,iCAAiC;QACjC,wEAAwE;QACxE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7B,IAAI;IACN,CAAC;;;;;;;;;;AArGU,gBAAgB;IAN5B,wDAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,yEAAuC;QAEvC,eAAe,EAAE,yEAA8B;;KAChD,CAAC;GACW,gBAAgB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACf8C;AAClB;AAChB;AAC+B;AAC2C;AAC/C;IAQvD,kBAAkB,SAAlB,kBAAkB;IAoC7B,YACS,aAA4B,EAC3B,SAAuB,EACvB,MAAc,EACd,uBAAgD,EAChD,KAAwB;QAJzB,kBAAa,GAAb,aAAa,CAAe;QAC3B,cAAS,GAAT,SAAS,CAAc;QACvB,WAAM,GAAN,MAAM,CAAQ;QACd,4BAAuB,GAAvB,uBAAuB,CAAyB;QAChD,UAAK,GAAL,KAAK,CAAmB;QAxClC,UAAK,GAAG;YACN;gBACE,KAAK,EAAE,4BAA4B;gBACnC,QAAQ,EAAE,2CAA2C;gBACrD,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;gBACf,GAAG,EAAE,2CAA2C;aACjD;YACD;gBACE,KAAK,EAAE,+BAA+B;gBACtC,QAAQ,EAAE,uDAAuD;gBACjE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,2CAA2C;aACjD;YACD;gBACE,KAAK,EAAE,qCAAqC;gBAC5C,QAAQ,EAAE,wEAAwE;gBAClF,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,aAAa;aACnB;YACD;gBACE,KAAK,EAAE,qBAAqB;gBAC5B,QAAQ,EAAE,iCAAiC;gBAC3C,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,UAAU;aAChB;SACF,CAAC;QACF,YAAO,GAAY,KAAK,CAAC;QAEzB,iBAAY,GAAG,KAAK,CAAC;QACrB,cAAS,GAAkB,IAAI,CAAC;IAQ7B,CAAC;IAEJ,aAAa;QACX,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC7B,CAAC;IAED,UAAU,CAAC,IAAS;QAClB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC1B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;gBACtC,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;gBAC1F,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC;gBACrD,OAAO;aACR;YACD,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YACvF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC;YACrD,OAAO;SACR;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,aAAa,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YACnD,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC7E;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;YAC3B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,6HAAe,EAAE;gBAClD,MAAM,EAAE,IAAI,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,aAAa;aACpB,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;gBAC9B,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,sCAAsC;YAC5D,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;YACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC;SAC3B;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBAChD,IAAI,OAAO,EAAE;oBACX,IAAI,CAAC,WAAW,EAAE,CAAC;iBACpB;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,WAAW;QACT,wCAAwC;QACxC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,WAAW;QACT,kBAAkB;QAClB,sBAAsB;QACtB,IAAI;IACN,CAAC;IAGD,kBAAkB,CAAC,KAAY;QAC7B,MAAM,aAAa,GAAG,KAAK,CAAC,MAAqB,CAAC;QAClD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE;YACnD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB;IACH,CAAC;;;;;;;;;;iCANA,uDAAY,SAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;AApG/B,kBAAkB;IAN9B,wDAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;QAC1B,4EAA0C;QAE1C,SAAS,EAAE,CAAC,gEAAa,CAAC;;KAC3B,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbmJ;AACtH;AACE;AACQ;AACV;IAQtC,UAAU,SAAV,UAAW,SAAQ,oEAAc;IAuEnD,YAAsB,eAAyC,EAAE,KAAwB,EAA+C,IAAI;QACxI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADD,oBAAe,GAAf,eAAe,CAA0B;QAAyE,SAAI,GAAJ,IAAI;QA/CrI,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QAiB5C,iBAAY,GAAG,IAAI,uDAAY,EAAO;QAsBnC,mBAAc,GAAG,IAAI,uDAAY,EAAO;QAIxC,eAAU,GAAG,IAAI,uDAAY,EAAO;IAM9C,CAAC;QAlEU,aAAa;QACpB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;QAMU,YAAY;QACnB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAW,YAAY,CAAC,GAAQ;QAC5B,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;QASU,MAAM;QACb,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAW,MAAM,CAAC,GAAQ;QACtB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC5C;IACL,CAAC;QAOG,QAAQ;QACR,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;SAC/B;aAAM;YACH,OAAO,IAAI,CAAC,aAAa,CAAC;SAC7B;IACL,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SAClD;aAAM;YACH,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAChD;IACL,CAAC;IAcD,QAAQ;QACJ,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,0FAAoC,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,kGAAwC,CAAC,CAAC,IAAI,EAAE,EAAE;YACnF,IAAI,IAAI,KAAK,QAAQ,EAAE;gBACnB,IAAI,CAAC,QAAQ,GAAG,sEAAa,CAAC;aACjC;iBAAM;gBACH,IAAI,CAAC,QAAQ,GAAG,sEAAa,CAAC;aACjC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;YAC7C,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,EAAE;gBACxC,IAAI,CAAC,aAAa,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;SACN;QACD,KAAK,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC;IAC1C,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBACtC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACpF,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBAC5D,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAClD,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACzD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClB,IAAI,CAAC,SAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;aACrD;SACJ;IACL,CAAC;IAED,OAAO;QACH,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACtB,KAAK,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC;YACvB,KAAK,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC;YACxB,KAAK,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC;SAC1B;IACL,CAAC;IAED,IAAI;QACA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAKD,UAAU;QACN,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YACvB,yFAAmC,CAAC,IAAI,CAAC,CAAC;SAC7C;IACL,CAAC;IACD,UAAU;QACN,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;YAC3B,MAAM,CAAC,SAAS,CAAC,GAAG,wBAAwB,CAAC;SAChD;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,SAAS;IACT,CAAC;;AA9IM,eAAI,GAAG,EAAE,CAAC;AACV,eAAI,GAAQ,QAAS;AACrB,kBAAO,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;;;4CAmEwD,iDAAM,SAAC,kFAA4B;;;4BAjE9H,gDAAK;2BAQL,gDAAK;iCASL,iDAAM;qBAON,gDAAK;2BAUL,iDAAM;uBAKN,gDAAK;6BAkBL,iDAAM;yBAIN,iDAAM;+BAEN,oDAAS,SAAC,SAAS,EAAE,EAAE,IAAI,EAAE,2DAAgB,EAAE;;AArE9B,UAAU;IAN/B,wDAAS,CAAC;QACP,QAAQ,EAAE,aAAa;QACvB,mEAAiC;QAEjC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACoB,UAAU;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACZuG;AACpE;AACpB;IAOlC,qBAAqB,SAArB,qBAAsB,SAAQ,oDAAU;;;QAIjD,cAAS,GAAG,EAAE;QAkBJ,kCAA6B,GAAG,IAAI,uDAAY,EAAO;IAmCrE,CAAC;QAjDO,uBAAuB;QACvB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC;SACjD;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,uBAAuB,CAAC,GAAG;QAC3B,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,GAAG,CAAC;SAChD;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC;IAGD,YAAY;IAEZ,kBAAkB;IAClB,CAAC;IAED,aAAa;IACb,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,eAAe;QACX,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,MAAM,QAAQ,GAAG,iFAAuB,CAAC,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;YACjF,IAAI,QAAQ,EAAE;gBACV,MAAM,GAAG,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;gBACzC,IAAI,GAAG,EAAE;oBACL,SAAS,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;iBAC3B;qBAAM;oBACH,MAAM,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;oBAClC,IAAI,EAAE,EAAE;wBACJ,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;qBAC1B;iBACJ;aACJ;SACJ;QACD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,SAAS;QACL,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;;AAtDa,0BAAI,GAAG,iBAAkB;;sCAKtC,gDAAK;4CAeL,iDAAM;;AAtBE,qBAAqB;IALjC,wDAAS,CAAC;QACP,QAAQ,EAAE,wBAAwB;QAClC,8EAA4C;;KAE/C,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACTqG;AACxF;AACY;IAQ9C,UAAU,SAAV,UAAW,SAAQ,oDAAU;;;QAsB5B,eAAU,GAAG,IAAI,uDAAY,EAAO;IAqBlD,CAAC;QArCO,IAAI;QACJ,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;YACvD,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;SAC3C;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,CAAC,GAAG;QACR,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;gBAC9B,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,IAAI,0DAAI,EAAE,CAAC;aAC5C;YACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;SAC1C;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAGD,YAAY;IAEZ,kBAAkB;IAElB,CAAC;IACD,aAAa;QACT,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ;QACJ,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,MAAM,CAAC,OAAO,CAAC,GAAG,sBAAsB,CAAC;SAC5C;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAxCa,eAAI,GAAG,MAAO;;mBAG3B,gDAAK;yBAiBL,iDAAM;;AAtBE,UAAU;IALtB,wDAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,mEAAiC;;KAElC,CAAC;GACW,UAAU;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVgH;AACxF;AACgB;AACS;AACE;AACP;AACD;IAQrD,YAAY,SAAZ,YAAa,SAAQ,oDAAU;;;QAIxC,iBAAY,GAAG,uEAAW,CAAC;IAiJ/B,CAAC;IA/IG,WAAW;QACP,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,8DAAM,EAAE,CAAC;SAChD;IACL,CAAC;IAED,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK;QAC7B,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;gBAChC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,8DAAM,EAAE,CAAC;aAChD;YACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACpF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACtF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACvF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SACxF;IACL,CAAC;IAED,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK;QAC5B,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;gBAChC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,8DAAM,EAAE,CAAC;aAChD;YACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;SACtF;IACL,CAAC;IAED,YAAY;QACR,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;YACzD,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACrE;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK;QAC/B,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;gBAChC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,8DAAM,EAAE,CAAC;aAChD;YACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;SACzF;IACL,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;YACzD,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SACxE;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK;QAC7B,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;gBAChC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,8DAAM,EAAE,CAAC;aAChD;YACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;SACvF;IACL,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;YACzD,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SACtE;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK;QAC9B,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;gBAChC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,8DAAM,EAAE,CAAC;aAChD;YACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;SACxF;IACL,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;YACzD,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;SACvE;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,YAAY,CAAC,IAAI;QACb,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAClG,OAAO,IAAI,CAAC,IAAI,IAAI,+EAAkB,IAAI,IAAI,CAAC,IAAI,IAAI,kFAAqB,CAAC;SAChF;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;QACtC,IAAI,IAAI,EAAE;YACN,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAClC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,KAAK,EAAE;gBACP,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,IAAI,iFAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;oBACpG,KAAK,GAAG,CAAC,CAAC;oBACV,KAAK,GAAG,CAAC,CAAC;oBACV,KAAK,GAAG,IAAI,CAAC;iBAChB;aACJ;YACD,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,uEAAc,CAAC;YACrC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB;IACL,CAAC;IACD,aAAa,CAAC,KAAK;QACf,IAAI,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;YACf,MAAM,GAAG,CAAC,CAAC;SACd;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,gBAAgB;QACZ,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;YACzD,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE;gBAC1C,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;aAC9E;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE;gBACzC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aAC5E;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,WAAW,EAAE;gBAC3C,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;aAChF;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,EAAE;gBAC5C,MAAM,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;aAClF;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,kBAAkB;IAElB,CAAC;IACD,aAAa;IAEb,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC;IAChB,CAAC;;AAlJa,iBAAI,GAAG,QAAS;AAFrB,YAAY;IALxB,wDAAS,CAAC;QACT,QAAQ,EAAE,eAAe;QACzB,qEAAmC;;KAEpC,CAAC;GACW,YAAY;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACd8G;AACxF;IAQlC,WAAW,SAAX,WAAY,SAAQ,oDAAU;IAIvC,kBAAkB;IAElB,CAAC;IACD,aAAa;IAEb,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC;IAChB,CAAC;;AAXa,gBAAI,GAAG,OAAQ;AAFpB,WAAW;IALvB,wDAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,oEAAkC;;KAEnC,CAAC;GACW,WAAW;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACT4F;AACvD;AACF;AACZ;IAOlC,eAAe,SAAf,eAAgB,SAAQ,oDAAU;;;QAsBlC,4BAAuB,GAAG,IAAI,uDAAY,EAAO;IAY9D,CAAC;QA5BM,iBAAiB;QACjB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;YACvD,OAAO,yEAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACpE;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IACD,IAAI,iBAAiB,CAAC,GAAG;QACrB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;gBAC9B,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,IAAI,0DAAI,EAAE,CAAC;aAC5C;YACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,GAAG,oEAAa,CAAC,GAAG,CAAC,CAAC;SAC9D;QACD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAGD,YAAY;IAEX,kBAAkB;IAClB,CAAC;IAED,aAAa;IACb,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC;IAChB,CAAC;;AA/Ba,oBAAI,GAAG,WAAY;;gCAGjC,gDAAK;sCAiBL,iDAAM;;AAtBG,eAAe;IAL3B,wDAAS,CAAC;QACT,QAAQ,EAAE,kBAAkB;QAC5B,wEAAsC;;KAEvC,CAAC;GACW,eAAe;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVmH;AACpF;AACS;AACF;AACnB;IAOlC,gBAAgB,SAAhB,gBAAiB,SAAQ,oDAAU;IAyB5C,YAAY;IAEZ,YAAsB,eAAyC,EAAE,KAAwB,EAA+C,IAAI;QACxI,KAAK,CAAC,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QADlB,oBAAe,GAAf,eAAe,CAA0B;QAAyE,SAAI,GAAJ,IAAI;QAvB5I,iBAAY,GAAG,EAAE,CAAC;QAoBR,6BAAwB,GAAG,IAAI,uDAAY,EAAO;QAKxD,IAAI,CAAC,YAAY,GAAG,6EAAwB,EAAE,CAAC;IACnD,CAAC;QAtBG,kBAAkB;QAClB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;YACvD,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC;SACrD;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IACD,IAAI,kBAAkB,CAAC,GAAG;QACtB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;gBAC9B,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,IAAI,0DAAI,EAAE,CAAC;aAC5C;YACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;SACpD;QACD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IASD,kBAAkB;IAElB,CAAC;IACD,aAAa;IACb,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,aAAa,CAAC,EAAE;QACZ,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC;IAClB,CAAC;;AA1Ca,qBAAI,GAAG,YAAa;;;;4CAyB0D,iDAAM,SAAC,kFAA4B;;;iCApB9H,gDAAK;uCAiBL,iDAAM;;AAxBE,gBAAgB;IAL5B,wDAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;QAC7B,yEAAuC;;KAExC,CAAC;GACW,gBAAgB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACX0G;AACxF;AACY;IAQ9C,cAAc,SAAd,cAAe,SAAQ,oDAAU;;;QAI1C,cAAS,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAoBjE,2BAAsB,GAAG,IAAI,uDAAY,EAAO;IAa9D,CAAC;QA7BO,gBAAgB;QAChB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;YACvD,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC/C;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG;QACpB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;gBAC9B,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,IAAI,0DAAI,EAAE,CAAC;aAC5C;YACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;SAC9C;QACD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAGD,YAAY;IAEZ,kBAAkB;IAElB,CAAC;IACD,aAAa;IAEb,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC;IAChB,CAAC;;AAlCa,mBAAI,GAAG,UAAW;;+BAK/B,gDAAK;qCAiBL,iDAAM;;AAxBE,cAAc;IAL1B,wDAAS,CAAC;QACT,QAAQ,EAAE,iBAAiB;QAC3B,uEAAqC;;KAEtC,CAAC;GACW,cAAc;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACV4G;AACxF;AACqB;IAQvD,yBAAyB,SAAzB,yBAA0B,SAAQ,oDAAU;;;QAmB3C,8BAAyB,GAAG,IAAI,uDAAY,EAAO;IA0BjE,CAAC;QAvCO,mBAAmB;QACnB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,OAAO,IAAI,CAAC,iBAAiB,CAAC,0BAA0B,CAAC;SAC5D;QACD,OAAO,yEAAe,CAAC;IAC3B,CAAC;IACD,IAAI,mBAAmB,CAAC,GAAG;QACvB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,0BAA0B,GAAG,GAAG,CAAC;SAC3D;QACD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAGD,YAAY;IAEZ,kBAAkB;IAElB,CAAC;IACD,OAAO;QACH,IAAI,CAAC,mBAAmB,GAAG,yEAAe,CAAC;IAC/C,CAAC;IAED,YAAY;QACR,IAAI,CAAC,mBAAmB,GAAG,0EAAgB,CAAC;IAChD,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,mBAAmB,GAAG,uEAAa,CAAC;IAC7C,CAAC;IAGD,aAAa;IAEb,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC;IAChB,CAAC;;AA1Ca,8BAAI,GAAG,qBAAsB;;kCAG1C,gDAAK;wCAcL,iDAAM;;AAnBE,yBAAyB;IALrC,wDAAS,CAAC;QACT,QAAQ,EAAE,4BAA4B;QACtC,kFAAgD;;KAEjD,CAAC;GACW,yBAAyB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACViG;AACxF;AACY;IAQ9C,YAAY,SAAZ,YAAa,SAAQ,oDAAU;;;QAuB7B,iBAAY,GAAG,IAAI,uDAAY,EAAO;IAarD,CAAC;QA9BQ,MAAM;QACN,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;YAEvD,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;SAC7C;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACV,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;gBAC9B,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,IAAI,0DAAI,EAAE,CAAC;aAC5C;YACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;SAC5C;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAGD,YAAY;IAEb,kBAAkB;IAElB,CAAC;IACD,aAAa;QACT,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC;IAChB,CAAC;;AAjCa,iBAAI,GAAG,QAAS;;qBAG5B,gDAAK;2BAkBL,iDAAM;;AAvBC,YAAY;IALxB,wDAAS,CAAC;QACT,QAAQ,EAAE,eAAe;QACzB,qEAAmC;;KAEpC,CAAC;GACW,YAAY;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACV8G;AACxF;AACY;IAQ9C,eAAe,SAAf,eAAgB,SAAQ,oDAAU;;;QAsBjC,oBAAe,GAAG,IAAI,uDAAY,EAAO;IAavD,CAAC;QA7BO,SAAS;QACT,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;YACvD,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC;SAChD;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;gBAC9B,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,IAAI,0DAAI,EAAE,CAAC;aAC5C;YACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;SAC/C;QACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAGD,YAAY;IAEZ,kBAAkB;IAElB,CAAC;IACD,aAAa;QACT,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;IACrC,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC;IAChB,CAAC;;AAhCa,oBAAI,GAAG,WAAY;;wBAGhC,gDAAK;8BAiBL,iDAAM;;AAtBE,eAAe;IAL3B,wDAAS,CAAC;QACT,QAAQ,EAAE,kBAAkB;QAC5B,wEAAsC;;KAEvC,CAAC;GACW,eAAe;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACV2G;AACxF;AACqB;IAQvD,uBAAuB,SAAvB,uBAAwB,SAAQ,oDAAU;;;QAmBzC,4BAAuB,GAAG,IAAI,uDAAY,EAAO;IAuB/D,CAAC;QApCO,iBAAiB;QACjB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,OAAO,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC;SAC1D;QACD,OAAO,yEAAe,CAAC;IAC3B,CAAC;IACD,IAAI,iBAAiB,CAAC,GAAG;QACrB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,GAAG,GAAG,CAAC;SACzD;QACD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAGD,YAAY;IAEZ,kBAAkB;IAElB,CAAC;IACD,aAAa;IAEb,CAAC;IACD,MAAM;QACF,IAAI,CAAC,iBAAiB,GAAG,yEAAe,CAAC;IAC7C,CAAC;IAED,aAAa;QACT,IAAI,CAAC,iBAAiB,GAAG,0EAAgB,CAAC;IAC9C,CAAC;IAED,SAAS;QACL,IAAI,CAAC,iBAAiB,GAAG,uEAAa,CAAC;IAC3C,CAAC;IACD,UAAU;QACN,OAAO,IAAI,CAAC;IAChB,CAAC;;AAvCa,4BAAI,GAAG,mBAAoB;;gCAGxC,gDAAK;sCAcL,iDAAM;;AAnBE,uBAAuB;IALnC,wDAAS,CAAC;QACT,QAAQ,EAAE,0BAA0B;QACpC,gFAA8C;;KAE/C,CAAC;GACW,uBAAuB;AAAA;;;;;;;;;;;;;;;;;;;ACV6D;IAOpF,iBAAiB,SAAjB,iBAAiB;;QAG1B,SAAS;QACT,iBAAY,GAAG,IAAI,CAAC;QAcV,kBAAa,GAAG,IAAI,uDAAY,EAAO;IAgBrD,CAAC;QA5BO,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QAC1B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;SACnC;aAAM;YACL,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAMH,eAAe;QACb,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IACD,WAAW;QACT,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,EAAE;YACnC,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,SAAS,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC7E,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC1B,CAAC,EAAE,GAAG,CAAC,CAAC;SACT;IACH,CAAC;;;sBA5BE,gDAAK;4BAaL,iDAAM;oBAGN,oDAAS,SAAC,OAAO;;AArBT,iBAAiB;IAJ7B,wDAAS,CAAC;QACP,QAAQ,EAAE,YAAY;QACtB,QAAQ,EAAE,kCAAkC;KAC/C,CAAC;GACW,iBAAiB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPoD;AAC3C;AACR;AAC0B;AACJ;AACK;AACM;AACY;AACQ;AACZ;AAC2D;AAC/C;AACF;AACA;AACpB;AACE;AACA;AACI;IAQvD,YAAY,SAAZ,YAAY;;QAErB,oBAAoB;QACpB,aAAQ,GAAmB,oFAAqB,CAAC;QAGjD,iBAAiB;QACjB,gBAAW,GAAQ,EAAE,CAAC;QACtB,oBAAe,GAAQ,EAAE,CAAC;QAC1B,iBAAY,GAAQ,EAAE,CAAC;QACvB,YAAY;QAEZ,gBAAW,GAAG,KAAK,CAAC;QAKpB,uBAAuB;QACvB,uBAAkB,GAA6B,kFAAmC,EAAE,CAAC;QAc3E,wBAAmB,GAAG,IAAI,wDAAY,EAAO;QAgB7C,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QACpD,YAAY;QACZ,0BAA0B;QAC1B,0BAAqB,GAAG,IAAI,CAAC;QAWnB,2BAAsB,GAAG,IAAI,wDAAY,EAAO;QAC1D,YAAY;QACZ,8BAA8B;QAC9B,8BAAyB,GAAG,KAAK,CAAC;QAWxB,oCAA+B,GAAG,IAAI,wDAAY,EAAW;QAmnD7D,qBAAgB,GAAG,IAAI,wDAAY,EAAO;IAIxD,CAAC;QA9qDO,aAAa;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,kBAAkB,IAAI,GAAG,KAAK,IAAI,EAAE;YAC5E,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;YAC9B,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAC1D;IACL,CAAC;QASG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;QAQG,gBAAgB;QAChB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACtC,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG;QACpB,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC;QACjC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACjE,CAAC;QAQG,oBAAoB;QACpB,OAAO,IAAI,CAAC,yBAAyB,CAAC;IAC1C,CAAC;IACD,IAAI,oBAAoB,CAAC,GAAG;QACxB,IAAI,CAAC,yBAAyB,GAAG,GAAG,CAAC;QACrC,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC9E,CAAC;IAGD,YAAY;IAEZ,IAAI,OAAO;QACP,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;YAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;gBACrC,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;aAC1C;iBAAM,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;gBAC7F,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;aAC/C;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,YAAY;IACZ,mBAAmB;IACnB,gBAAgB;QACZ,wDAAwD;QACxD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC5G,qEAAqE;QACrE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE;YACjC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,CAAC,sBAAsB,EAAE;QACjC,CAAC,CAAC,CAAC;IACP,CAAC;IACD,sBAAsB;QAClB,IAAI,MAAM,IAAI,MAAM,CAAC,aAAa,EAAE;YAChC,IAAI,CAAC,aAAa,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;YAC7D,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,KAAU,EAAE,EAAE;gBAChF,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE;gBACzE,IAAI,EAAE,IAAI,OAAO,EAAE,CAAC,YAAY,KAAK,UAAU,EAAE;oBAC7C,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC;oBACpC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;iBAC7B;qBAAM,IAAI,IAAI,CAAC,aAAa,EAAE;oBAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;oBAC5C,IAAI,KAAK,EAAE;wBACP,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;wBACvC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;qBAC7B;iBACJ;YACL,CAAC,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,oFAAqB,EAAE;gBAC9C,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAChC;YACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAC3B;IACL,CAAC;IACD,YAAY;IACZ,gBAAgB;IAChB,WAAW;QACP,IAAI,EAAE,CAAC;QACP,IAAI,IAAI,CAAC,kBAAkB,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,QAAQ,EAAE;YAClF,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;SAC1C;QACD,IAAI,CAAC,EAAE,EAAE;YACL,IAAI,CAAC,QAAQ,GAAG,kFAAmB,CAAC;YACpC,OAAO;SACV;QACD,IAAI,EAAE,KAAK,8EAAmB,IAAI,EAAE,KAAK,4EAAiB,EAAE,EAAE,aAAa;YACvE,IAAI,CAAC,QAAQ,GAAG,kFAAmB,CAAC;SACvC;aAAM,IAAI,EAAE,KAAK,0EAAe,IAAI,EAAE,KAAK,8EAAmB,EAAE,EAAE,WAAW;YAC1E,IAAI,CAAC,QAAQ,GAAG,qFAAsB,CAAC;SAC1C;aAAM,IAAI,EAAE,KAAK,6EAAkB,EAAE;YAClC,IAAI,CAAC,QAAQ,GAAG,sFAAuB,CAAC;SAC3C;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,oFAAqB,CAAC;SACzC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACO,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY;QAC3D,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YAC/B,OAAO,YAAY,CAAC;SACvB;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAoB,EAAE,UAAmB;QAChF,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YAC/B,IAAI,UAAU,EAAE;gBACZ,IAAI,SAAS,KAAK,EAAE,EAAE;oBAClB,OAAO,YAAY,CAAC;iBACvB;aACJ;YACD,OAAO,SAAS,CAAC;SACpB;QACD,OAAO,YAAY,CAAC;IACxB,CAAC;IAEO,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,YAAoB,EAAE,GAAW,EAAE,GAAW;QAC1F,IAAI,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC5E,IAAI,MAAM,GAAG,GAAG,EAAE;YACd,MAAM,GAAG,GAAG,CAAC;SAChB;aAAM,IAAI,MAAM,GAAG,GAAG,EAAE;YACrB,MAAM,GAAG,GAAG,CAAC;SAChB;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,YAAoB,EAAE,GAAW;QAChF,IAAI,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC5E,IAAI,MAAM,GAAG,GAAG,EAAE;YACd,MAAM,GAAG,GAAG,CAAC;SAChB;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,YAAY;IAEJ,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY;QACzD,IAAI,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC5B,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;SACnC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,iBAA+C;QAChF,IAAI,iBAAiB,EAAE;YACnB,OAAO,CAAC,SAAS,GAAG;gBAChB,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC;gBACjF,MAAM,EAAE,YAAY,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,EAAE,yFAAoB,EAAE,6FAAwB,CAAC;gBAC3G,OAAO,EAAE,YAAY,CAAC,cAAc,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC;aACnF,CAAC;SACL;IACL,CAAC;IAEO,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,QAAkC,EAAE,KAAc;QAC9E,IAAI,KAAK,EAAE;YACP,IAAI,QAAQ,CAAC,SAAS,EAAE;gBACpB,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;gBACnB,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;aACnE;YACD,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrD,MAAM,KAAK,GAAG,EAAE,CAAC;gBACjB,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBAC5B,MAAM,KAAK,GAAG,EAAE,CAAC;oBACjB,YAAY,CAAC,mBAAmB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC5C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;aACzB;SACJ;aAAM;YACH,IAAI,QAAQ,CAAC,SAAS,EAAE;gBACpB,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;gBACnB,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;aACnE;YACD,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrD,MAAM,KAAK,GAAG,EAAE,CAAC;gBACjB,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBAC5B,MAAM,KAAK,GAAG,EAAE,CAAC;oBACjB,YAAY,CAAC,mBAAmB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC5C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;aACzB;SACJ;IACL,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,QAAiC;QAClE,IAAI,IAAI,IAAI,QAAQ,EAAE;YAClB,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACzE,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YACzE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,iFAAgB,EAAE,qFAAoB,CAAC,CAAC;YAC7G,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC/D,IAAI,QAAQ,CAAC,SAAS,EAAE;gBACpB,IAAI,CAAC,SAAS,GAAG;oBACb,KAAK,EAAE,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;oBAC9E,KAAK,EAAE,YAAY,CAAC,wBAAwB,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACjF,CAAC;aACL;YACD,IAAI,QAAQ,CAAC,cAAc,EAAE;gBACzB,IAAI,CAAC,cAAc,GAAG;oBAClB,KAAK,EAAE,YAAY,CAAC,wBAAwB,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACtF,CAAC;gBACF,IAAI,OAAO,QAAQ,CAAC,cAAc,CAAC,KAAK,KAAK,QAAQ,EAAE;oBACnD,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC;iBAC7D;aACJ;YACD,IAAI,QAAQ,CAAC,gBAAgB,KAAK,IAAI,EAAE;gBACpC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;aACvB;YACD,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACxD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;aACjC;SACJ;IACL,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAA2C;QAChF,IAAI,IAAI,IAAI,QAAQ,EAAE;YAClB,YAAY,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC7C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,kBAAkB,KAAK,IAAI,CAAC;YACrD,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7C,MAAM,KAAK,GAAG,EAAE,CAAC;gBACjB,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACvB,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE;wBAC/B,KAAK,CAAC,IAAI,CAAC;4BACP,CAAC,EAAE,CAAC,CAAC,KAAK;4BACV,CAAC,EAAE,CAAC,CAAC,OAAO;yBACf,CAAC,CAAC;qBACN;yBAAM;wBACH,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;qBACvB;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;aACtB;iBAAM;gBACH,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;gBACrB,IAAI,QAAQ,CAAC,QAAQ,EAAE;oBACnB,IAAI,OAAO,QAAQ,CAAC,QAAQ,CAAC,OAAO,KAAK,QAAQ,EAAE;wBAC/C,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG;4BAClB,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK;4BAC1B,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO;yBAC/B,CAAC;qBACL;yBAAM;wBACH,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;qBACjD;iBACJ;gBACD,IAAI,QAAQ,CAAC,QAAQ,EAAE;oBACnB,IAAI,OAAO,QAAQ,CAAC,QAAQ,CAAC,OAAO,KAAK,QAAQ,EAAE;wBAC/C,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG;4BAClB,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK;4BAC1B,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO;yBAC/B,CAAC;qBACL;yBAAM;wBACH,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;qBACjD;iBACJ;aACJ;SACJ;IACL,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,SAAoC;QAC5D,MAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,IAAI,SAAS,EAAE;YACX,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,EAAE;gBACrC,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;aAClC;YACD,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBACxC,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;aACxC;YACD,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ,IAAI,SAAS,CAAC,QAAQ,GAAG,CAAC,EAAE;gBAClE,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;aACxC;YACD,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC;YACtC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC;SAC7C;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,SAAsC;QACvE,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,IAAI,YAAY,GAAG,IAAI,CAAC;YACxB,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBACnB,IAAI,EAAE,CAAC,KAAK,EAAE;oBACV,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACrB,IAAI,OAAO,EAAE,CAAC,KAAK,KAAK,QAAQ,EAAE;wBAC9B,YAAY,GAAG,KAAK,CAAC;qBACxB;iBACJ;YACL,CAAC,CAAC,CAAC;YACH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;gBACvB,IAAI,YAAY,EAAE;oBACd,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAClD,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACzC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;wBAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;4BACzB,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE;gCACrC,IAAI,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;oCACxC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;oCAChD,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;oCAChD,MAAM;iCACT;6BACJ;iCAAM;gCACH,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gCACxC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;6BAC3C;yBACJ;qBACJ;iBACJ;qBAAM;oBACH,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC;oBAC9B,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;wBACrB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;oBAC5C,CAAC,CAAC,CAAC;iBACN;aACJ;SACJ;IACL,CAAC;IAEO,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,QAAkC;QAC9D,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5D,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;SACpC;aAAM;YACH,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;SAC3B;QACD,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE;YAC1D,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;SAClC;aAAM;YACH,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;SAC1B;IACL,CAAC;IAEO,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,QAAmC;QACjE,IAAI,QAAQ,EAAE;YACV,OAAO,CAAC,MAAM,GAAG;gBACb,QAAQ,EAAE,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,wFAAmB,EAAE,8FAAyB,CAAC;aACzG,CAAC;YACF,MAAM,SAAS,GAAG,0FAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC3D,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;gBAC/B,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;aACxC;YACD,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACrE;IACL,CAAC;IAEO,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,MAAmC;QACxE,IAAI,MAAM,EAAE;YACR,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;YACpB,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC;YACxB,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACpB,MAAM,MAAM,GAAQ,EAAE,CAAC;gBACvB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACd,QAAQ,CAAC,EAAE;wBACP,KAAK,aAAa;4BACd,MAAM,CAAC,WAAW,GAAG,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;4BACrF,MAAM;wBACV,KAAK,aAAa;4BACd,IAAI,IAAI,CAAC,YAAY,EAAE;gCACnB,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC;gCACzB,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,QAAQ,EAAE;oCAC5C,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;iCACrD;gCACD,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,QAAQ,EAAE;oCAC9C,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;iCACzD;gCACD,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,CAAC,EAAE;oCACzF,MAAM,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;iCACnE;6BACJ;4BACD,IAAI,IAAI,CAAC,WAAW,EAAE;gCAClB,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;gCACxB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE;oCAC3C,MAAM,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;iCACnD;gCACD,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,QAAQ,EAAE;oCAC7C,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;iCACvD;gCACD,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,IAAI,CAAC,EAAE;oCACvF,MAAM,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;iCACjE;6BACJ;4BACD,MAAM;wBACV,KAAK,OAAO;4BACR,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;gCAChC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;6BAC7B;4BACD,MAAM;wBACV,KAAK,WAAW;4BACZ,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;gCAC1B,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC;6BACjC;4BACD,MAAM;wBACV,KAAK,eAAe;4BAChB,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE;gCACtC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC;6BAC3C;4BACD,MAAM;wBACV,KAAK,eAAe;4BAChB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gCACrD,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;6BAC7C;4BACD,MAAM;wBACV,KAAK,WAAW;4BACZ,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE;gCAC3D,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;6BACrC;4BACD,MAAM;wBACV,KAAK,YAAY;4BACb,MAAM,CAAC,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,sEAAU,EAAE,6EAAiB,CAAC,CAAC;4BAC9F,MAAM;wBACV,KAAK,WAAW;4BACZ,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE;gCAC3D,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;6BACrC;4BACD,MAAM;wBACV,KAAK,eAAe;4BAChB,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,EAAE;gCAC9B,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC;6BAChC;4BACD,MAAM;wBACV,KAAK,iBAAiB;4BAClB,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;gCAC5D,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC;6BAC5C;4BACD,MAAM;wBACV,KAAK,YAAY;4BACb,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;4BAC1E,MAAM;wBACV,KAAK,MAAM;4BACP,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,sEAAU,EAAE,2EAAe,CAAC,CAAC;4BAChF,MAAM;wBACV,KAAK,iBAAiB;4BAClB,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;gCAChC,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC;6BAClC;4BACD,MAAM;qBACb;gBACL,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,QAAkC,EAAE,OAAiB;QACzF,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC;SACf;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YACjF,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC;SACf;aAAM,IAAI,uFAAmC,IAAI,8FAA0C,GAAG,CAAC,EAAE;YAC9F,OAAO,CAAC,MAAM,GAAG,6FAAyC,EAAE,CAAC;YAC7D,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,SAAuC;QACtE,IAAI,SAAS,EAAE;YACX,MAAM,MAAM,GAAQ,EAAE,CAAC;YACvB,IAAI,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ,EAAE;gBACzC,IAAI,SAAS,CAAC,SAAS,IAAI,CAAC,EAAE;oBAC1B,OAAO,IAAI,CAAC;iBACf;gBACD,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;aAC1C;YACD,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,EAAE;gBACrC,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;aAClC;YACD,IAAI,SAAS,CAAC,eAAe,KAAK,IAAI,IAAI,OAAO,SAAS,CAAC,aAAa,KAAK,QAAQ,EAAE;gBACnF,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC9B,MAAM,CAAC,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC;aAClD;YACD,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,qBAAqB,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAChF,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC,wBAAwB,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACpF,IAAI,SAAS,CAAC,aAAa,KAAK,KAAK,EAAE;gBACnC,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC;aAChC;YACD,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC;YAC1C,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,kFAAkB,EAAE,yFAAyB,CAAC,CAAC;YACvG,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,wBAAwB,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9E,OAAO,MAAM,CAAC;SACjB;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,QAAoC;QACnE,IAAI,QAAQ,EAAE;YACV,OAAO,CAAC,OAAO,GAAG;gBACd,4EAA4E;gBAC5E,OAAO,EAAE,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,wFAAmB,EAAE,8FAAyB,CAAC;gBACpG,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;aAC3D,CAAC;SACL;IACL,CAAC;IAKD,aAAa;QACT,IAAI,IAAI,CAAC,yBAAyB,EAAE;YAChC,OAAO;SACV;QACD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,OAAO,CAAC;QACZ,IAAI,SAAS,CAAC;QACd,QAAQ,IAAI,CAAC,QAAQ,EAAE;YACnB,KAAK,kFAAmB;gBACpB,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE;oBACtE,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpC,6CAAG,CAAC,yCAAyC,EAAE,GAAG,EAAE;wBAChD,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACrC,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBACjC,CAAC,CAAC,CAAC;iBACN;qBAAM,IAAI,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE;oBAC5C,IAAI,CAAC,OAAO,EAAE;wBACV,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;4BACvD,IAAI,CAAC,GAAG,EAAE;gCACN,OAAO,CAAC,WAAW,EAAE,CAAC;gCACtB,IAAI,CAAC,qBAAqB,EAAE,CAAC;6BAChC;wBACL,CAAC,CAAC,CAAC;qBACN;iBACJ;qBAAM;oBACH,IAAI,CAAC,qBAAqB,EAAE,CAAC;iBAChC;gBACD,MAAM;YACV,KAAK,oFAAqB;gBACtB,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE;oBACpE,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACtC,6CAAG,CAAC,0CAA0C,EAAE,GAAG,EAAE;wBACjD,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC5B,CAAC,CAAC;iBACL;qBAAM,IAAI,YAAY,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE;oBAC9C,IAAI,CAAC,SAAS,EAAE;wBACZ,MAAM,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;4BAC3D,IAAI,CAAC,GAAG,EAAE;gCACN,SAAS,CAAC,WAAW,EAAE,CAAC;gCACxB,IAAI,CAAC,sBAAsB,EAAE,CAAC;6BACjC;wBACL,CAAC,CAAC,CAAC;qBACN;iBACJ;qBAAM;oBACH,IAAI,CAAC,sBAAsB,EAAE;iBAChC;gBACD,MAAM;YACV,KAAK,qFAAsB;gBACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,MAAM;YACV,KAAK,sFAAuB;gBACxB,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,MAAM;SACb;IACL,CAAC;IAED,gBAAgB;QACZ,OAAO,IAAI,OAAO,CAAW,OAAO,CAAC,EAAE;YACnC,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;gBACjE,qFAAmC,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBAC/E,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;oBACtB,OAAO,CAAC,CAAC,CAAC,CAAC;gBACf,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC;aACjB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,qBAAqB;QACjB,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACnC,sBAAsB;YACtB,IAAI,EAAE,CAAC;YACP,IAAI,IAAI,CAAC,kBAAkB,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,QAAQ,EAAE;gBAClF,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;aAC1C;YACD,IAAI,SAAS,GAAG,oEAAS,CAAC,EAAE,CAAC,CAAC;YAC9B,YAAY;YACZ,IAAI,IAAI,CAAC,QAAQ,KAAK,kFAAmB,EAAE,EAAE,aAAa;gBACtD,MAAM,OAAO,GAAG,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;gBACnF,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;oBACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;iBAC5C;gBACD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;oBACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;iBAC5C;gBACD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;gBAC3B,IAAI,IAAI,CAAC,OAAO,EAAE;oBACd,IAAI,CAAC,UAAU,EAAE,CAAC;iBACrB;aACJ;iBAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,qFAAsB,EAAE,EAAE,WAAW;gBAC9D,IAAI,CAAC,YAAY,GAAG;oBAChB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,KAAK,0EAAe,CAAC;iBAC/F,CAAC;gBACF,IAAI,IAAI,CAAC,OAAO,EAAE;oBACd,IAAI,CAAC,UAAU,EAAE,CAAC;iBACrB;aACJ;iBAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,sFAAuB,EAAE;gBAClD,MAAM,OAAO,GAAG,YAAY,CAAC,uBAAuB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAC9E,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;oBAC7B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;iBAChD;gBACD,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;oBAC7B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;iBAChD;gBAED,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;gBAC/B,IAAI,IAAI,CAAC,OAAO,EAAE;oBACd,IAAI,CAAC,UAAU,EAAE,CAAC;iBACrB;aACJ;iBAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,oFAAqB,EAAE;gBAChD,IAAI,IAAI,CAAC,aAAa,EAAE;oBACpB,IAAI,EAAE,KAAK,+EAAoB,EAAE;wBAC7B,SAAS,GAAG,oEAAS,CAAC,6EAAkB,CAAC,CAAC;qBAC7C;oBACD,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,KAAK,SAAS,EAAE;wBACjD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;qBAC9C;oBACD,IAAI,OAAO,GAAG,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;oBACvF,IAAI;wBACA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;qBAC9D;oBAAC,MAAM,GAAG;oBACX,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBACvC,IAAI,IAAI,CAAC,OAAO,EAAE;wBACd,IAAI,CAAC,UAAU,EAAE,CAAC;qBACrB;yBAAM;wBACH,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;wBACtC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;wBAC5C,IAAI,KAAK,EAAE;4BACP,KAAK,CAAC,UAAU,EAAE,CAAC;yBACtB;qBACJ;iBACJ;aACJ;YACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC5B,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,MAAM,CAAC,qBAAqB,CAAC,QAAkC,EAAE,OAAgB;QACrF,MAAM,OAAO,GAAQ,EAAE,CAAC;QACxB,IAAI,QAAQ,EAAE;YACV,IAAI,QAAQ,CAAC,SAAS,EAAE;gBACpB,OAAO,CAAC,SAAS,GAAG;oBAChB,QAAQ,EAAE,YAAY,CAAC,wBAAwB,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;iBACxF,CAAC;gBACF,IAAI,OAAO,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE;oBAC/C,QAAQ,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE;wBAC/B,KAAK,+FAAuB;4BACxB,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY,CAAC;4BACxC,MAAM;wBACV,KAAK,kGAA6B;4BAC9B,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,eAAe,CAAC;4BAC3C,MAAM;wBACV,KAAK,gGAA2B;4BAC5B,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,QAAQ,CAAC;4BACpC,MAAM;wBACV,KAAK,6FAAwB;4BACzB,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC;4BACzC,MAAM;qBACb;iBACJ;aACJ;YACD,OAAO,CAAC,MAAM,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;YACvC,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACjB,IAAI,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBAC9C,QAAQ,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE;wBAC9B,KAAK,+FAA0B;4BAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;4BACnC,MAAM;wBACV,KAAK,6FAAwB;4BACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC;4BACjC,MAAM;wBACV,KAAK,4FAAuB;4BACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;4BAChC,MAAM;wBACV,KAAK,6FAAwB;4BACzB,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;4BAC/B,MAAM;wBACV;4BACI,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC;4BAClC,MAAM;qBACb;iBACJ;qBAAM;oBACH,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC;iBACrC;gBACD,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE;oBAC3B,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG;wBACpB,QAAQ,EAAE,YAAY,CAAC,wBAAwB,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;wBAC1F,SAAS,EAAE,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;wBACzF,UAAU,EAAE,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC;qBACjG,CAAC;oBACF,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE;wBACzC,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,IAAI,EAAE;4BAC3C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC;yBACnD;6BAAM;4BACH,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC;yBAC5C;qBACJ;yBAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,IAAI,EAAE;wBAClD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC;qBAC9C;iBACJ;aACJ;YACD,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,EAAE,IAAI,QAAQ,CAAC,aAAa,KAAK,sFAAqB,EAAE;gBACjH,OAAO,CAAC,KAAK,GAAG;oBACZ,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,QAAQ,CAAC,KAAK;iBACvB,CAAC;aACL;YAED,IAAI,OAAO,EAAE;gBACT,MAAM,WAAW,GAAG,QAAQ,CAAC,oBAAoB,CAAC;gBAClD,IAAI,WAAW,EAAE;oBACb,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACtB,MAAM,KAAK,GAAG,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;oBAC7F,IAAI,WAAW,CAAC,aAAa,KAAK,KAAK,EAAE;wBACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;qBAC1C;yBAAM;wBACH,OAAO,CAAC,QAAQ,CAAC,KAAK,GAAG;4BACrB,MAAM,EAAE,YAAY,CAAC,wBAAwB,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;4BAC1E,eAAe,EAAE,KAAK;yBACzB,CAAC;wBACF,IAAI,OAAO,WAAW,CAAC,UAAU,KAAK,QAAQ,EAAE;4BAC5C,QAAQ,WAAW,CAAC,UAAU,EAAE;gCAC5B,KAAK,6EAAiB;oCAClB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;oCAC7C,MAAM;gCACV,KAAK,8EAAkB;oCACnB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;oCAC9C,MAAM;gCACV,KAAK,6EAAiB;oCAClB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;oCAC3C,MAAM;gCACV,KAAK,2EAAe;oCAChB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;oCAC3C,MAAM;gCACV,KAAK,+EAAmB;oCACpB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;oCAC/C,MAAM;6BACb;yBACJ;qBACJ;oBACD,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAG;wBACpB,WAAW,EAAE,KAAK;wBAClB,WAAW,EAAE,YAAY,CAAC,wBAAwB,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;qBAClF,CAAC;oBACF,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;wBAClF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;qBACxE;iBACJ;aACJ;iBAAM;gBACH,OAAO,CAAC,QAAQ,GAAG;oBACf,GAAG,EAAE,EAAE;iBACV,CAAC;gBACF,IAAI,QAAQ,CAAC,oBAAoB,IAAI,OAAO,QAAQ,CAAC,oBAAoB,CAAC,KAAK,KAAK,QAAQ,EAAE;oBAC1F,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,GAAG,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC;iBAC9E;gBACD,IAAI,QAAQ,CAAC,WAAW,EAAE;oBACtB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW;wBAC5B,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,gBAAgB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;iBAC5F;aACJ;SACJ;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,MAAM,CAAC,qBAAqB,CAAC,QAAkC,EAAE,EAAa,EAAE,OAAiB;QACrG,MAAM,OAAO,GAAQ,EAAE,CAAC;QACxB,IAAI,QAAQ,EAAE;YACV,QAAQ,EAAE,EAAE;gBACR,KAAK,oFAAyB;oBAC1B,MAAM,SAAS,GAAG,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAC3E,IAAI,SAAS,EAAE;wBACX,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;4BAC/C,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gCAC1B,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;oCAC3B,IAAI,CAAC,CAAC,KAAK,EAAE;wCACT,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;qCACxC;oCACD,OAAO,KAAK,CAAC;iCAChB;gCACD,OAAO,IAAI,CAAC;4BAChB,CAAC,CAAC,CAAC;yBACN;qBACJ;yBAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBACtD,IAAI,MAAM,GAAG,EAAE,CAAC;wBAChB,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;4BACrB,IAAI,CAAC,CAAC,KAAK,EAAE;gCACT,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gCACrB,OAAO,KAAK,CAAC;6BAChB;iCAAM;gCACH,MAAM,GAAG,IAAI,CAAC;gCACd,OAAO,IAAI,CAAC;6BACf;wBACL,CAAC,CAAC,CAAC;wBACH,IAAI,MAAM,EAAE;4BACR,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;yBAC3B;qBACJ;oBACD,MAAM,EAAE,GAAG,QAAQ,CAAC,kBAAkB,CAAC;oBACvC,IAAI,EAAE,EAAE;wBACJ,OAAO,CAAC,kBAAkB,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,kBAAkB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;wBACjG,OAAO,CAAC,wBAAwB,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,wBAAwB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;wBAC9G,OAAO,CAAC,oBAAoB,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,oBAAoB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;wBACtG,OAAO,CAAC,kBAAkB,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,kBAAkB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;wBAClG,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;wBAC7E,OAAO,CAAC,KAAK,GAAG;4BACZ,aAAa,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC;4BAC9E,UAAU,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;yBACtE,CAAC;wBACF,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;qBAClF;oBACD,MAAM;gBACV,KAAK,8EAAmB;oBACpB,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;oBACvD,OAAO,CAAC,eAAe,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACnG,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACzD,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE;wBAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;qBAAE;oBAC7G,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACrF,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC/C,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACxC,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,8EAAc,EAAE,uFAAoB,CAAC,CAAC;oBACxG,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACjD,IAAI,QAAQ,CAAC,iBAAiB,KAAK,IAAI,EAAE;wBAAE,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC;qBAAE;oBAC9E,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW;wBAClG,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACtH,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC5E,OAAO,CAAC,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,iFAAgB,EAAE,qFAAoB,CAAC,CAAC;oBAClH,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACnD,MAAM;gBACV,KAAK,wEAAa,CAAC;gBACnB,KAAK,6EAAkB,CAAC;gBACxB,KAAK,gFAAqB;oBACtB,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;oBACvD,OAAO,CAAC,eAAe,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACnG,IAAI,OAAO,QAAQ,CAAC,aAAa,KAAK,QAAQ,EAAE;wBAAE,OAAO,CAAC,GAAG,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,aAAa,EAAE,CAAC;qBAAE;oBACzG,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACzD,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE;wBAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;qBAAE;oBAC7G,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACrF,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,KAAK,gFAAqB,CAAC,CAAC;oBACtE,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACxC,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,8EAAc,EAAE,uFAAoB,CAAC,CAAC;oBACxG,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACjD,IAAI,QAAQ,CAAC,iBAAiB,KAAK,IAAI,EAAE;wBAAE,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC;qBAAE;oBAC9E,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,CAAC,EAC1G,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACrB,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC5E,OAAO,CAAC,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,iFAAgB,EAAE,qFAAoB,CAAC,CAAC;oBAClH,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACnD,MAAM;gBACV,KAAK,gFAAqB;oBACtB,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;oBACvD,OAAO,CAAC,eAAe,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACnG,IAAI,QAAQ,CAAC,cAAc,EAAE;wBACzB,OAAO,CAAC,MAAM,GAAG;4BACb,OAAO,EAAE,YAAY,CAAC,qBAAqB,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;4BACvF,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC;4BACnF,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC;yBAC1E,CAAC;wBACF,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC;wBAC5C,OAAO,CAAC,QAAQ,GAAG;4BACf,OAAO,EAAE,YAAY,CAAC,wBAAwB,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;4BAC5F,OAAO,EAAE,YAAY,CAAC,wBAAwB,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;yBAC9F,CAAC;wBACF,IAAI,OAAO,QAAQ,CAAC,cAAc,CAAC,cAAc,KAAK,QAAQ,EAAE;4BAC5D,OAAO,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC;yBACtE;wBACD,IAAI,OAAO,QAAQ,CAAC,cAAc,CAAC,cAAc,KAAK,QAAQ,EAAE;4BAC5D,OAAO,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC;yBACtE;wBACD,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;wBACvB,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;wBACxE,IAAI,QAAQ,CAAC,cAAc,CAAC,UAAU,KAAK,IAAI,EAAE;4BAC7C,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG;gCACvB,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC;6BAChF,CAAC;4BACF,IAAI,OAAO,QAAQ,CAAC,cAAc,CAAC,cAAc,KAAK,QAAQ,EAAE;gCAC5D,QAAQ,QAAQ,CAAC,cAAc,CAAC,cAAc,EAAE;oCAC5C,KAAK,iGAA2B;wCAC5B,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;wCACzC,MAAM;oCACV,KAAK,8FAAwB;wCACzB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;wCAC7C,MAAM;oCACV,KAAK,gGAA0B;wCAC3B,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;wCAC1C,MAAM;iCACb;6BACJ;4BACD,IAAI,OAAO,QAAQ,CAAC,cAAc,CAAC,kBAAkB,KAAK,QAAQ,EAAE;gCAChE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC;6BACtF;yBACJ;qBACJ;oBACD,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACzD,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE;wBAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;qBAAE;oBAC7G,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACrF,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC/C,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACxC,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACjD,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC/C,MAAM,kBAAkB,GAAG,EAAE,CAAC;wBAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BAC7C,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BACrC,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,SAAS,CAAC,WAAW,KAAK,QAAQ,EAAE;gCAClF,kBAAkB,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG;oCACxC,KAAK,EAAE,SAAS,CAAC,KAAK;oCACtB,eAAe,EAAE,KAAK;iCACzB,CAAC;6BACL;yBACJ;wBACD,OAAO,CAAC,MAAM,GAAG,kBAAkB,CAAC;qBACvC;oBACD,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC5E,OAAO,CAAC,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,iFAAgB,EAAE,qFAAoB,CAAC,CAAC;oBAClH,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACnD,MAAM;gBACV,KAAK,6EAAkB;oBACnB,MAAM,GAAG,GAAG,QAAQ,CAAC,gBAAgB,CAAC;oBACtC,IAAI,GAAG,EAAE;wBACL,OAAO,CAAC,QAAQ,GAAG;4BACf,SAAS,EAAE;gCACP,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,EAAE,MAAM,CAAC;gCAC3E,aAAa,EAAE,YAAY,CAAC,qBAAqB,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gCACjF,WAAW,EAAE,YAAY,CAAC,wBAAwB,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,EAAE,CAAC,CAAC;6BACtF;4BACD,QAAQ,EAAE,YAAY,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;4BACpE,cAAc,EAAE,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC;4BAC7D,gBAAgB,EAAE;gCACd,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,uBAAuB,EAAE,QAAQ,EAAE,MAAM,CAAC;gCAClF,aAAa,EAAE,YAAY,CAAC,qBAAqB,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gCACxF,WAAW,EAAE,YAAY,CAAC,wBAAwB,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC,EAAE,CAAC,CAAC;6BAC7F;4BACD,UAAU,EAAE,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC;4BACrD,iBAAiB,EAAE;gCACf,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,EAAE,MAAM,CAAC;gCAC5E,aAAa,EAAE,YAAY,CAAC,qBAAqB,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gCAClF,WAAW,EAAE,YAAY,CAAC,wBAAwB,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC,CAAC;6BACvF;4BACD,uBAAuB,EAAE;gCACrB,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,uBAAuB,EAAE,QAAQ,EAAE,SAAS,CAAC;gCACrF,aAAa,EAAE,YAAY,CAAC,qBAAqB,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gCACxF,WAAW,EAAE,YAAY,CAAC,wBAAwB,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC,EAAE,CAAC,CAAC;6BAC7F;yBACJ,CAAC;wBACF,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;qBACvD;oBACD,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACxC,MAAM;gBACV,KAAK,qFAA0B;oBAC3B,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;oBACvD,OAAO,CAAC,eAAe,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACnG,IAAI,OAAO,QAAQ,CAAC,aAAa,KAAK,QAAQ,EAAE;wBAAE,OAAO,CAAC,GAAG,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,aAAa,EAAE,CAAC;qBAAE;oBACzG,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACzD,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE;wBAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;qBAAE;oBAC7G,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACrF,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC/C,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACxC,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACjD,IAAI,QAAQ,CAAC,iBAAiB,KAAK,IAAI,EAAE;wBAAE,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC;qBAAE;oBAC9E,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,eAAe;wBACpE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC1E,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC5E,OAAO,CAAC,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,iFAAgB,EAAE,qFAAoB,CAAC,CAAC;oBAClH,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACnD,MAAM;gBACV,KAAK,+EAAoB;oBACrB,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;oBACvD,OAAO,CAAC,eAAe,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACnG,IAAI,OAAO,QAAQ,CAAC,aAAa,KAAK,QAAQ,EAAE;wBAAE,OAAO,CAAC,GAAG,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,aAAa,EAAE,CAAC;qBAAE;oBACzG,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACzD,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE;wBAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;qBAAE;oBAC7G,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACrF,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC/C,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACxC,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,8EAAc,EAAE,uFAAoB,CAAC,CAAC;oBACxG,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACjD,IAAI,QAAQ,CAAC,iBAAiB,KAAK,IAAI,EAAE;wBAAE,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC;qBAAE;oBAC9E,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe;wBACxF,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe;wBACxE,iBAAiB,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAC3D,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACrB,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC5E,OAAO,CAAC,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,iFAAgB,EAAE,qFAAoB,CAAC,CAAC;oBAClH,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACnD,MAAM;gBACV,KAAK,+EAAoB,CAAC;gBAC1B,KAAK,6EAAkB;oBACnB,OAAO,CAAC,eAAe,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACnG,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACzD,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE;wBAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;qBAAE;oBAC7G,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACrF,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACxC,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACjD,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC5E,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACnD,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC;oBACjC,IAAI,GAAG,EAAE;wBACL,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;wBACvE,IAAI,EAAE,KAAK,+EAAoB,EAAE;4BAC7B,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;yBAChF;wBACD,OAAO,CAAC,mBAAmB,GAAG,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;wBACnG,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,iFAAiB,EAAE,4FAA4B,CAAC,CAAC;wBACjH,OAAO,CAAC,iBAAiB,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;wBAC1E,OAAO,CAAC,aAAa,GAAG,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACjF,OAAO,CAAC,oBAAoB,GAAG,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;wBACpG,IAAI,OAAO,GAAG,CAAC,iBAAiB,KAAK,QAAQ,EAAE;4BAC3C,OAAO,CAAC,oBAAoB,GAAG,GAAG,CAAC,iBAAiB,CAAC;yBACxD;wBACD,OAAO,CAAC,wBAAwB,GAAG,YAAY,CAAC,qBAAqB,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC1G,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;4BACrC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;4BACpB,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gCACxB,MAAM,MAAM,GAAG;oCACX,MAAM,EAAE,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;oCAChE,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;iCACvD,CAAC;gCACF,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;oCAChC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;iCAChC;gCACD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BAChC,CAAC,CAAC,CAAC;yBACN;qBACJ;yBAAM;wBACH,IAAI,EAAE,KAAK,+EAAoB,EAAE;4BAC7B,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC;yBACzB;qBACJ;oBACD,MAAM;gBACV,KAAK,0EAAe;oBAChB,OAAO,CAAC,eAAe,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACnG,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC;oBACrC,IAAI,KAAK,EAAE;wBACP,OAAO,CAAC,KAAK,GAAG;4BACZ,KAAK,EAAE;gCACH,KAAK,EAAE,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC;gCAClE,KAAK,EAAE,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC;gCACtE,MAAM,EAAE,YAAY,CAAC,wBAAwB,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;gCACtE,MAAM,EAAE,YAAY,CAAC,wBAAwB,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;gCACvE,KAAK,EAAE,YAAY,CAAC,wBAAwB,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;6BACzE;4BACD,eAAe,EAAE,YAAY,CAAC,wBAAwB,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;4BAChF,mBAAmB,EAAE,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,mBAAmB,EAAE,SAAS,EAAE,IAAI,CAAC;4BAC5F,iBAAiB,EAAE;gCACf,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,kBAAkB,EAAE,QAAQ,EAAE,IAAI,CAAC;gCAC7E,WAAW,EAAE,YAAY,CAAC,wBAAwB,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC;6BAC5F;4BACD,kBAAkB,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE;4BAC9F,kBAAkB,EAAE;gCAChB,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC;gCACzE,WAAW,EAAE,YAAY,CAAC,wBAAwB,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC;6BACtF;4BACD,cAAc,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE;4BACtF,UAAU,EAAE,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC;4BACvD,cAAc,EAAE,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC;4BAClF,aAAa,EAAE,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC;4BAChF,WAAW,EAAE,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC;4BAC3E,YAAY,EAAE,YAAY,CAAC,wBAAwB,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;yBAChF,CAAC;wBACF,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE;4BAC5D,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;yBAC7C;wBACD,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,EAAE;4BACvC,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG;gCACzB,IAAI,EAAE,KAAK,CAAC,WAAW;6BAC1B,CAAC;yBACL;wBACD,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,EAAE;4BAChE,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;yBACjD;qBACJ;oBACD,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACxC,MAAM;gBACV,KAAK,0EAAe;oBAChB,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;oBACvD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC;oBACrC,IAAI,KAAK,EAAE;wBACP,IAAI,KAAK,CAAC,SAAS,EAAE;4BACjB,OAAO,CAAC,UAAU,GAAG,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;4BAC7F,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE;gCAC1C,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;6BAC5C;4BACD,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,QAAQ,EAAE;gCACxC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;6BACxC;yBACJ;wBACD,IAAI,KAAK,CAAC,UAAU,EAAE;4BAClB,OAAO,CAAC,WAAW,GAAG,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;4BAC/F,IAAI,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE;gCAC3C,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;6BAC9C;4BACD,IAAI,OAAO,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,QAAQ,EAAE;gCACzC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;6BAC1C;yBACJ;wBACD,IAAI,KAAK,CAAC,OAAO,EAAE;4BACf,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;4BACzF,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;gCACxC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;6BACxC;4BACD,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,QAAQ,EAAE;gCACtC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;6BACpC;yBACJ;wBACD,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;4BAAE,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;yBAAE;wBACvG,OAAO,CAAC,UAAU,GAAG,YAAY,CAAC,wBAAwB,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACnF,OAAO,CAAC,GAAG,GAAG,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACvE,OAAO,CAAC,GAAG,GAAG,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;qBAC5E;oBACD,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACxC,MAAM;gBACV,KAAK,6EAAkB;oBACnB,OAAO,CAAC,eAAe,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACnG,IAAI,QAAQ,CAAC,WAAW,EAAE;wBACtB,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;wBACrE,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;wBAC3F,OAAO,CAAC,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,EAC1E,kFAAkB,EAAE,4FAA4B,CAAC,CAAC;qBACzD;oBACD,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;oBAChC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACxC,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACnD,MAAM;gBACV,KAAK,8EAAmB;oBACpB,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;oBACvD,OAAO,CAAC,eAAe,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACnG,IAAI,OAAO,QAAQ,CAAC,aAAa,KAAK,QAAQ,EAAE;wBAAE,OAAO,CAAC,GAAG,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,aAAa,EAAE,CAAC;qBAAE;oBACzG,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACzD,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE;wBAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;qBAAE;oBAC7G,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACrF,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC/C,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACxC,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,8EAAc,EAAE,uFAAoB,CAAC,CAAC;oBACxG,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACjD,IAAI,QAAQ,CAAC,iBAAiB,KAAK,IAAI,EAAE;wBAAE,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC;qBAAE;oBAC9E,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACnH,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC5E,OAAO,CAAC,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,iFAAgB,EAAE,qFAAoB,CAAC,CAAC;oBAClH,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACnD,MAAM;gBACV,KAAK,6EAAkB;oBACnB,MAAM;oBACN,MAAM;gBACV,KAAK,yEAAc,CAAC;gBACpB,KAAK,8EAAmB;oBACpB,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;oBACvD,OAAO,CAAC,eAAe,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACnG,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACzD,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE;wBAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;qBAAE;oBAC7G,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACrF,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC/C,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACxC,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACjD,IAAI,QAAQ,CAAC,iBAAiB,KAAK,IAAI,EAAE;wBAAE,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC;qBAAE;oBAC9E,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY;wBAC9G,WAAW,EAAE,eAAe,EAAE,kBAAkB,EAAE,YAAY,EAAE,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACzG,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC5E,OAAO,CAAC,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,iFAAgB,EAAE,qFAAoB,CAAC,CAAC;oBAClH,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACnD,MAAM;gBACV,KAAK,wEAAa;oBACd,OAAO;oBACP,sFAAsF;oBACtF,yFAAyF;oBACzF,qGAAqG;oBACrG,MAAM;gBACV,KAAK,6EAAkB;oBACnB,MAAM;oBACN,MAAM;gBACV,KAAK,iFAAsB;oBACvB,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;oBACvD,OAAO,CAAC,eAAe,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACnG,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACzD,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE;wBAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;qBAAE;oBAC7G,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACrF,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC/C,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACxC,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACjD,IAAI,QAAQ,CAAC,iBAAiB,KAAK,IAAI,EAAE;wBAAE,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC;qBAAE;oBAC9E,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe;wBACjG,YAAY,EAAE,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACvD,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC5E,OAAO,CAAC,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,iFAAgB,EAAE,qFAAoB,CAAC,CAAC;oBAClH,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACnD,MAAM;gBACV,KAAK,qFAA0B;oBAC3B,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;oBACvD,OAAO,CAAC,eAAe,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACnG,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACzD,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE;wBAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;qBAAE;oBAC7G,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACrF,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC/C,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACxC,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,8EAAc,EAAE,uFAAoB,CAAC,CAAC;oBACxG,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACjD,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe;wBACrF,iBAAiB,EAAE,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC5D,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC5E,OAAO,CAAC,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,iFAAgB,EAAE,qFAAoB,CAAC,CAAC;oBAClH,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACnD,MAAM;gBACV,KAAK,6EAAkB;oBACnB,OAAO,CAAC,eAAe,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACnG,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACzD,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE;wBAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;qBAAE;oBAC7G,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACrF,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACxC,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACnD,MAAM,EAAE,GAAG,QAAQ,CAAC,gBAAgB,CAAC;oBACrC,IAAI,EAAE,EAAE;wBACJ,OAAO,CAAC,yBAAyB,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;wBAClG,OAAO,CAAC,QAAQ,GAAG;4BACf,aAAa,EAAE,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC,aAAa,CAAC;4BAC1D,eAAe,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,eAAe,EAAE,SAAS,EAAE,KAAK,CAAC;4BAClF,eAAe,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,CAAC;4BACjF,aAAa,EAAE,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC,aAAa,CAAC;4BAC1D,aAAa,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC;4BAC7E,aAAa,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC;4BAC7E,WAAW,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC;yBAC3E,CAAC;qBACL;oBACD,MAAM;gBACV,KAAK,4EAAiB;oBAClB,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,EAAE;wBAAE,OAAO,CAAC,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC;qBAAE;oBACtF,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE;wBAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;qBAAE;oBAC7G,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;oBACpC,IAAI,EAAE,EAAE;wBACJ,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;wBACnF,OAAO,CAAC,WAAW,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;wBACvF,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC,wBAAwB,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACpF,OAAO,CAAC,oBAAoB,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;wBACpG,OAAO,CAAC,oBAAoB,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,gBAAgB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;wBAClG,OAAO,CAAC,WAAW,GAAG,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBAClF,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;wBACjF,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,wBAAwB,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC5E,OAAO,CAAC,iBAAiB,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;wBAC9F,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC,wBAAwB,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACpF,OAAO,CAAC,aAAa,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;wBACtF,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;wBACjF,OAAO,CAAC,iBAAiB,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;wBAC9F,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;wBACjF,OAAO,CAAC,iBAAiB,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;wBAC9F,OAAO,CAAC,aAAa,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;wBACtF,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;wBAC/E,OAAO,CAAC,gBAAgB,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;wBAC5F,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;wBAChF,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;wBACrF,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;wBAC5D,OAAO,CAAC,gCAAgC;4BACpC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,gCAAgC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;qBAC1F;oBACD,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC5E,MAAM;gBACV,KAAK,6EAAkB;oBACnB,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACzD,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,EAAE;wBACvC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;qBACxC;oBACD,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACxC,IAAI,QAAQ,CAAC,gBAAgB,EAAE;wBAC3B,OAAO,CAAC,QAAQ,GAAG;4BACf,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,0EAAY,EAAE,iFAAmB,CAAC;yBACrG,CAAC;qBACL;oBACD,MAAM;aACb;SACJ;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,QAAkC,EAAE,OAAiB;QACpF,MAAM,OAAO,GAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACpC,IAAI,QAAQ,EAAE;YACV,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;YACnB,IAAI,QAAQ,CAAC,SAAS,EAAE;gBACpB,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG;oBACvB,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE,YAAY,CAAC,wBAAwB,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;iBACpF,CAAC;gBACF,IAAI,OAAO,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE;oBAC/C,QAAQ,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE;wBAC/B,KAAK,+FAAuB;4BACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC;4BAC3C,MAAM;wBACV,KAAK,kGAA6B;4BAC9B,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;4BAC5C,MAAM;wBACV,KAAK,gGAA2B;4BAC5B,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC;4BAC3C,MAAM;wBACV,KAAK,6FAAwB;4BACzB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC;4BAC9C,MAAM;qBACb;iBACJ;aACJ;YACD,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACnG,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,8BAA8B,CAAC,CAAC;YAClH,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC9C,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YACxC,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YACzD,OAAO,CAAC,MAAM,GAAG;gBACb,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,OAAO;aACpB,CAAC;YACF,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACjB,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,KAAK,6FAAwB,EAAE;oBACvD,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;iBAC/B;qBAAM;oBACH,OAAO,CAAC,MAAM,CAAC,QAAQ;wBACnB,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,wFAAmB,EAAE,8FAAyB,CAAC,CAAC;oBACxG,IAAI,OAAO,QAAQ,CAAC,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE;wBAC/C,QAAQ,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE;4BAC/B,KAAK,iGAA2B;gCAC5B,OAAO,CAAC,MAAM,CAAC,eAAe,GAAG,QAAQ,CAAC;gCAC1C,MAAM;4BACV,KAAK,8FAAwB;gCACzB,OAAO,CAAC,MAAM,CAAC,eAAe,GAAG,OAAO,CAAC;gCACzC,MAAM;4BACV,KAAK,gGAA0B;gCAC3B,OAAO,CAAC,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC;gCACxC,MAAM;yBACb;qBACJ;oBACD,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE;wBAC3B,IAAI,OAAO,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE;4BACxD,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;yBAClE;wBACD,IAAI,OAAO,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,EAAE;4BAClG,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;yBACvE;qBACJ;iBACJ;aACJ;YACD,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE;gBACpC,OAAO,CAAC,KAAK,GAAG;oBACZ,IAAI,EAAE,QAAQ,CAAC,KAAK;iBACvB,CAAC;aACL;YACD,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE;gBAChD,OAAO,CAAC,OAAO,GAAG;oBACd,KAAK,EAAE,EAAE;iBACZ,CAAC;gBACF,IAAI,OAAO,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBACzD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;iBAC1E;gBACD,IAAI,OAAO,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,EAAE;oBACpG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;iBAC/E;aACJ;YACD,IAAI,QAAQ,CAAC,SAAS,KAAK,8EAAmB,EAAE;gBAC5C,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC;aACpC;iBAAM,IAAI,QAAQ,CAAC,SAAS,KAAK,4EAAiB,EAAE;gBACjD,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;gBAC/B,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC/C,IAAI,OAAO,CAAC,MAAM,EAAE;wBAChB,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;4BAC1B,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;gCAC3B,IAAI,CAAC,CAAC,KAAK,EAAE;oCACT,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;iCACxC;gCACD,OAAO,KAAK,CAAC;6BAChB;4BACD,OAAO,IAAI,CAAC;wBAChB,CAAC,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,MAAM,GAAG,EAAE,CAAC;wBAChB,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;4BACrB,IAAI,CAAC,CAAC,KAAK,EAAE;gCACT,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gCACrB,OAAO,KAAK,CAAC;6BAChB;iCAAM;gCACH,MAAM,GAAG,IAAI,CAAC;gCACd,OAAO,IAAI,CAAC;6BACf;wBACL,CAAC,CAAC,CAAC;wBACH,IAAI,MAAM,EAAE;4BACR,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;yBAC3B;qBACJ;iBACJ;gBACD,IAAI,QAAQ,CAAC,eAAe,EAAE;oBAC1B,OAAO,CAAC,WAAW,GAAG;wBAClB,OAAO,EAAE;4BACL,UAAU,EAAE;gCACR,MAAM,EAAE,EAAE;6BACb;yBACJ;qBACJ,CAAC;oBACF,IAAI,QAAQ,CAAC,eAAe,CAAC,WAAW,IAAI,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;wBACzF,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAC7C,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE;gCACvF,MAAM,MAAM,GAAG;oCACX,IAAI,EAAE,CAAC,CAAC,IAAI;oCACZ,EAAE,EAAE,CAAC,CAAC,EAAE;oCACR,KAAK,EAAE,CAAC,CAAC,KAAK;oCACd,IAAI,EAAE,EAAE;iCACX,CAAC;gCACF,IAAI,CAAC,CAAC,OAAO,EAAE;oCACX,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC;iCAC3B;gCACD,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE;oCACf,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;oCACnB,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;iCACtB;gCACD,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;6BAC9D;wBACL,CAAC,CAAC,CAAC;qBACN;iBACJ;aACJ;SACJ;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IACO,MAAM,CAAC,uBAAuB,CAAC,QAAkC;QACrE,MAAM,OAAO,GAAQ,EAAE,CAAC;QACxB,IAAI,QAAQ,EAAE;YACV,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACjB,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC5C,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBAClD,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC5C,OAAO,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;gBAC1D,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;gBACjD,OAAO,CAAC,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;gBAChD,OAAO,CAAC,mBAAmB,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;gBAC9D,OAAO,CAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC5C,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;gBAC9C,OAAO,CAAC,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;gBAChD,OAAO,CAAC,cAAc,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;gBACpD,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;aAEjD;SACJ;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,YAAY;IACZ,cAAc;IACd,UAAU;QACN,IAAI,IAAI,EAAE,MAAM,CAAC;QACjB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;YAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;gBACrC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC;aAC/B;iBAAM,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;gBAC7F,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;gBACjC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;aACxC;SACJ;QACD,IAAI,CAAC,MAAM,GAAG,uEAAsB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACvE,QAAQ,IAAI,CAAC,QAAQ,EAAE;YACnB,KAAK,kFAAmB;gBACpB,MAAM,MAAM,GAAG,EAAE,CAAC;gBAClB,MAAM,MAAM,GAAG,EAAE,CAAC;gBAClB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBACtD,IAAI,IAAI,CAAC,kBAAkB,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,QAAQ,EAAE;wBAClF,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,8EAAmB,EAAE;4BAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCACzC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gCAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;oCACtC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oCACpB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iCACvB;6BACJ;yBACJ;6BAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,4EAAiB,EAAE;4BAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BAChC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gCACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oCACtC,MAAM,CAAC,IAAI,CAAC;wCACR,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;wCACjB,IAAI,EAAE,EAAE;qCACX,CAAC,CAAC;iCACN;gCACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oCACzC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oCAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;wCACtC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;wCACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4CACvD,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gDACpB,CAAC,EAAE,IAAI;gDACP,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;6CACZ,CAAC,CAAC;yCACN;qCACJ;iCACJ;6BACJ;yBACJ;qBACJ;iBACJ;gBACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBACpD,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;gBACxB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;gBACxB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;gBAC3B,MAAM;YACV,KAAK,oFAAqB;gBACtB,IAAI,IAAI,CAAC,aAAa,EAAE;oBACpB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBACtD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;wBACpF,IAAI,CAAC,eAAe,EAAE,CAAC;qBAC1B;yBAAM;wBACH,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;wBACtC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;wBAC5C,IAAI,KAAK,EAAE;4BACP,KAAK,CAAC,UAAU,EAAE,CAAC;yBACtB;qBACJ;iBACJ;gBACD,MAAM;YACV,KAAK,qFAAsB;gBACvB,MAAM,IAAI,GAAG;oBACT,MAAM,EAAE,EAAE;oBACV,QAAQ,EAAE,EAAE;iBACf,CAAC;gBACF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBACtD,IAAI,IAAI,CAAC,kBAAkB,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,QAAQ,EAAE;wBAClF,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBACjC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;4BAClD,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,0EAAe,EAAE;gCACvD,IAAI,GAAG,GAAgC,EAAE,CAAC;gCAC1C,IAAI,MAAM,GAAG,EAAE,CAAC;gCAChB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;oCAChC,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;iCACxC;gCACD,IAAI,IAAI,CAAC,YAAY,EAAE;oCACnB,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;iCAC9B;qCAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;oCAC7C,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;iCACjD;qCAAM,IAAI,uFAAmC,EAAE;oCAC5C,MAAM,GAAG,uFAAmC,CAAC;iCAChD;gCACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oCACvC,MAAM,EAAE,GAAQ;wCACZ,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;wCACnB,IAAI,EAAE,EAAE;qCACX,CAAC;oCACF,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;wCACpB,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wCAC/B,EAAE,CAAC,oBAAoB,GAAG,QAAQ,CAAC;wCACnC,EAAE,CAAC,WAAW,GAAG,QAAQ,CAAC;qCAC7B;oCACD,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;wCACjB,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wCAC7B,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,EAAE;4CACrC,EAAE,CAAC,oBAAoB,GAAG,SAAS,CAAC,KAAK,CAAC;4CAC1C,EAAE,CAAC,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC;yCACpC;wCACD,IAAI,SAAS,CAAC,aAAa,KAAK,KAAK,EAAE;4CACnC,EAAE,CAAC,WAAW,GAAG,CAAC,CAAC;yCACtB;6CAAM;4CACH,IAAI,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,SAAS,GAAG,CAAC,EAAE;gDACpE,EAAE,CAAC,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC;6CACxC;4CACD,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,QAAQ,EAAE;gDAC1C,QAAQ,SAAS,CAAC,UAAU,EAAE;oDAC1B,KAAK,6EAAiB;wDAClB,EAAE,CAAC,UAAU,GAAG,QAAQ,CAAC;wDACzB,MAAM;oDACV,KAAK,8EAAkB;wDACnB,EAAE,CAAC,UAAU,GAAG,SAAS,CAAC;wDAC1B,MAAM;oDACV,KAAK,6EAAiB;wDAClB,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC;wDACvB,MAAM;oDACV,KAAK,2EAAe;wDAChB,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC;wDACvB,MAAM;oDACV,KAAK,+EAAmB;wDACpB,EAAE,CAAC,UAAU,GAAG,UAAU,CAAC;wDAC3B,MAAM;iDACb;6CACJ;yCACJ;wCACD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;4CAC9E,EAAE,CAAC,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;yCACnD;wCACD,IAAI,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,SAAS,GAAG,CAAC,EAAE;4CACpE,EAAE,CAAC,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC;yCACxC;qCACJ;oCACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iCAC1B;6BACJ;iCAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,8EAAmB,EAAE;gCAClE,IAAI,GAAG,GAA+B,EAAE,CAAC;gCACzC,IAAI,MAAM,GAAG,EAAE,CAAC;gCAChB,IAAI,IAAI,CAAC,kBAAkB,EAAE;oCACzB,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,MAAM,EAAE;wCACnF,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,MAAM,CAAC;qCACpD;oCACD,IAAI,IAAI,CAAC,YAAY,EAAE;wCACnB,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;qCAC9B;yCAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;wCAC7C,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;qCACjD;yCAAM,IAAI,uFAAmC,EAAE;wCAC5C,MAAM,GAAG,uFAAmC,CAAC;qCAChD;iCACJ;gCACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oCACvC,MAAM,EAAE,GAAQ;wCACZ,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;wCACnB,IAAI,EAAE,EAAE;qCACX,CAAC;oCACF,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;wCACpB,EAAE,CAAC,eAAe,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;qCACtC;oCACD,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;wCACjB,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wCAC7B,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,EAAE;4CACrC,EAAE,CAAC,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC;yCACxC;qCACJ;oCACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iCAC1B;6BACJ;4BACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCACzC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gCAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oCAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;oCAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wCAClE,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;qCAC9C;iCACJ;6BACJ;yBACJ;qBACJ;oBACD,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;iBACjC;gBACD,MAAM;YACV,KAAK,sFAAuB;gBACxB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBACtD,IAAI,IAAI,CAAC,kBAAkB,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,QAAQ,EAAE;wBAClF,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,6EAAkB,EAAE;4BAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;4BACxD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gCACtD,IAAI,IAAI,GAAG,EAAE,CAAC;gCACd,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gCACrE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;gCAClD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gCACnD,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;6BACvB;iCAAM;gCACH,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM;6BAC7B;4BAED,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;yBAClC;wBACD,mCAAmC;wBACnC,yDAAyD;wBAEzD,sDAAsD;wBACtD,qCAAqC;wBACrC,yDAAyD;wBACzD,uCAAuC;wBACvC,iFAAiF;wBACjF,yDAAyD;wBACzD,WAAW;wBACX,OAAO;wBACP,GAAG;wBACH,GAAG;qBACN;iBACJ;gBACD,MAAM;SACb;IACL,CAAC;IACD,YAAY;IACZ,eAAe;QACX,UAAU,CAAC,GAAG,EAAE;YACZ,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE;gBAC7E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;aAC3D;QACL,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;IAED,SAAS,CAAC,EAAE;IAEZ,CAAC;IAED,aAAa,CAAC,KAAK;QACf,IAAI,IAAI,CAAC,QAAQ,KAAK,oFAAqB,EAAE;YACzC,IAAI,CAAC,eAAe,EAAE,CAAC;SAC1B;IACL,CAAC;IAED,SAAS,CAAC,KAAK;QACX,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;;AAlqCD,sBAAsB;AACP,wBAAW,GAA6B,IAAI,kDAAe,CAAC,KAAK,CAAE;AACnE,0BAAa,GAA6B,IAAI,kDAAe,CAAC,KAAK,CAAE;;0BAphBnF,qDAAS,SAAC,aAAa;4BAMvB,iDAAK;kCAYL,kDAAM;yBAMN,iDAAK;+BAUL,kDAAM;+BAKN,iDAAK;qCASL,kDAAM;mCAKN,iDAAK;8CASL,kDAAM;+BAmnDN,kDAAM;;AA/rDE,YAAY;IALxB,yDAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,uEAAqC;;KAExC,CAAC;GACW,YAAY;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzBgC;AACV;AACN;AACI;AACI;AACU;AACf;AACoB;AACT;IAmB1C,YAAY,SAAZ,YAAY;;AAAZ,YAAY;IAjBxB,uDAAQ,CAAC;QACN,YAAY,EAAE;YACV,0DAAY;YACZ,oEAAiB;YACjB,gEAAe;SAClB;QACD,OAAO,EAAE;YACL,yDAAY;YACZ,uDAAW;YACX,mEAAe;YACf,sDAAW;YACX,0EAAwB;SAC3B;QACD,OAAO,EAAE;YACL,0DAAY;SACf;KACJ,CAAC;GACW,YAAY;AAAA;;;;;;;;;;;;;;;;;;;;;;;AC3BuG;AAC1F;AACb;IAQZ,eAAe,SAAf,eAAe;IA0CxB,YAAmB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;QAvC3C,SAAS;QACT,iBAAY,GAAG,IAAI,CAAC;QAkBV,kBAAa,GAAG,IAAI,uDAAY,EAAO;QACjD,eAAU,GAAG,KAAK,CAAC;QAqDT,qBAAgB,GAAG,IAAI,uDAAY,EAAO;QAuCpD,YAAO,GAAG,KAAK,CAAC;QAxEZ,IAAI,CAAC,KAAK,GAAG,4CAAe,CAAC,4CAAe,CAAC,CAAC;IAClD,CAAC;QAtCG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,GAAG,EAAE;YACL,UAAU,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;YACvB,CAAC,EAAC,EAAE,CAAC;SACR;IACL,CAAC;IAMO,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,SAAiB;QAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,UAAU,CAAC;QACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAChD,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBACjE,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC;SACnC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAKD,eAAe;QACX,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;YAC7D,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,OAAO,EAAE;gBACT,IAAI,CAAC,KAAK,GAAG,0DAAQ,EAAE;qBAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;qBAC5B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;qBACjE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;qBAC9E,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;qBACjE,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;qBACpC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;qBACvD,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;qBACnE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACd,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBAC7B,MAAM,WAAW,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oBAC1H,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC5C,CAAC,CAAC;qBACD,cAAc,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;qBAC/J,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;qBACzI,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;qBACzD,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;qBAC5C,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAC1D,OAAO,CAAC,CAAC;gBACd,IAAI,CAAC,YAAY,EAAE,CAAC;aACvB;SACJ;IACL,CAAC;IAED,QAAQ,CAAC,IAAI;QACT,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YACzB,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SAC1C;aAAM,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;YAChC,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YACpC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAChH;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ;QAC3B,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACpB;aAAM;YACH,IAAI,GAAG,IAAI,CAAC;SACf;QACD,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,IAAI,EAAE;YACN,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC7B,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnD,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;aACxD;iBAAM;gBACH,MAAM,GAAG,IAAI,CAAC;aACjB;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAGD,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IACD,IAAI,aAAa,CAAC,KAAK;QACnB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;QAG2B,UAAU,CAAC,OAAmB;QACtD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;QACzB,IAAI,OAAO,IAAI,OAAO,CAAC,aAAa,EAAE;YAClC,IAAI,CAAC,aAAa,GAAG;gBACjB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI;gBACxD,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY;gBACjD,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI;gBACtD,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW;aAClD,CAAC;YACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;IACL,CAAC;IAED,OAAO,CAAC,KAAmB;QACvB,IAAI,CAAC,aAAa,GAAG;YACjB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI;YACnC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;YAC5B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI;YACjC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;SAC7B;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;IACD,YAAY;QACR,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE;YAClC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;SAChD;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;;;;;;sBA7IA,gDAAK;4BAiBL,iDAAM;+BAsDN,iDAAM;yBAyCN,oDAAS,SAAC,WAAW;;AArHb,eAAe;IAL3B,wDAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,sPAAsP;;KAEnQ,CAAC;GACW,eAAe;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVuB;AACkB;AACb;AACe;AACL;IAOrD,YAAY,SAAZ,YAAY;IAerB,YAAoB,KAAwB,EAAU,EAAa;QAA/C,UAAK,GAAL,KAAK,CAAmB;QAAU,OAAE,GAAF,EAAE,CAAW;IACnE,CAAC;IAVD,MAAM,CAAC,UAAU;QACb,kFAAqB,CAAC;YAClB,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,YAAY;YACzB,OAAO,EAAE,4EAAe;YACxB,KAAK,EAAE,SAAS;SACnB,CAAC,CAAC;IACP,CAAC;IAKD,QAAQ;QACJ,uEAAsB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC9B,IAAI,CAAC,EAAE;gBACH,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;gBACnB,IAAI,IAAI,CAAC,UAAU,EAAE;oBACjB,IAAI,CAAC,aAAa,GAAG,CAAC;4BAClB,EAAE,EAAE,CAAC;4BACL,OAAO,EAAE,qBAAqB;yBACjC,CAAC,CAAC;iBACN;gBACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;aAC9B;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,qBAAqB,CAAC,GAAG;QACrB,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE;YACrB,IAAI,CAAC,IAAI,EAAE,CAAC;SACf;IACL,CAAC;IAED,IAAI;QACA,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACtB;IACL,CAAC;;;;;;AA5CQ,YAAY;IALxB,wDAAS,CAAC;QACP,QAAQ,EAAE,OAAO;QACjB,qEAAmC;;KAEtC,CAAC;GACW,YAAY;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXzB;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgBM,MAAOY,aAAP,CAAoB;EAatB1V,YAAYgU,EAAZ,EAAsB;IAXtB,iBAAY,KAAZ;IACA,iBAAY,KAAZ;IACA,kBAAa,IAAb;IAKA,kBAAa,KAAb;IACA,mBAAc,KAAd;IAII,KAAK5M,EAAL,GAAU4M,EAAV;EACH;;AAfqB;AAkBpB,MAAO2B,QAAP,CAAe;EAKjB3V,YAAY4V,OAAZ,EAA4B;IAJpB,UAAK,CAAL;IAEA,eAAU,CAAV;;IAGJ,IAAI,OAAOA,OAAP,KAAmB,QAAvB,EAAiC;MAC7B,KAAKC,OAAL,GAAeD,OAAf;MACA,KAAKE,KAAL;IACH;EACJ;;EARS,IAANC,MAAM;IAAK,OAAO,KAAK3O,EAAL,EAAP;EAAmB;;EAUlC0O,KAAK;IACD,KAAK1O,EAAL,GAAU,KAAKyO,OAAf;EACH;;AAdgB;AAiBf,MAAOG,QAAP,CAAe;EASjBhW,YAAoB6T,IAApB,EAAyCoC,UAAzC,EAA6D;IAAzC;IARZ,uBAAkB,KAAlB;IACR,iBAAY,KAAZ;IAGQ,aAAQ,CAAR;IACA,yBAA+BX,wEAA/B;IACA,iBAAY,EAAZ;IAGJ,KAAKnF,MAAL,GAAc8F,UAAd;EACH;;EAEe,IAAZE,YAAY;IAAoB,OAAO,KAAKtC,IAAZ;EAAmB;;EAC9C,IAALuC,KAAK;IAAa,OAAO,KAAKhG,KAAZ;EAAoB;;EACpC,IAAFhJ,EAAE;IAAa,OAAO,KAAKyM,IAAL,CAAUzM,EAAjB;EAAsB;;EAC5B,IAATiP,SAAS;IAAc,OAAO,KAAKxC,IAAL,CAAUwC,SAAjB;EAA6B;;EAC3C,IAATC,SAAS;IAAc,OAAO,KAAKzC,IAAL,CAAUyC,SAAjB;EAA6B;;EAC1C,IAAVC,UAAU;IAAc,OAAO,KAAK1C,IAAL,CAAU0C,UAAjB;EAA8B;;EAClD,IAAJhQ,IAAI;IAAa,OAAO,KAAKsN,IAAL,CAAUtN,IAAjB;EAAwB;;EAClC,IAAPwB,OAAO;IAAa,OAAO,KAAK8L,IAAL,CAAU9L,OAAjB;EAA2B;;EAC/B,IAAhByO,gBAAgB;IAAa,OAAO,KAAK3C,IAAL,CAAU2C,gBAAjB;EAAoC;;EAC1D,IAAPC,OAAO;IAAa,OAAO,KAAK5C,IAAL,CAAU4C,OAAjB;EAA2B;;EACrC,IAAVC,UAAU;IAAc,OAAO,KAAK7C,IAAL,CAAU8C,WAAjB;EAA+B;;EAE7C,IAAVC,UAAU;IAAc,OAAO,KAAK/C,IAAL,CAAU8C,WAAV,IAAyB,KAAK9C,IAAL,CAAU+C,UAA1C;EAAuD;;EACrE,IAAVA,UAAU,CAAC7V,GAAD,EAAa;IAAI,KAAK8S,IAAL,CAAU+C,UAAV,GAAuB7V,GAAvB;EAA6B;;EAE9C,IAAV8V,UAAU;IAAc,OAAO,KAAKC,eAAZ;EAA8B;;EAC5C,IAAVD,UAAU,CAAC9V,GAAD,EAAa;IACvB,IAAI,KAAKwV,UAAT,EAAqB;MACjB,KAAKO,eAAL,GAAuB/V,GAAvB;IACH;EACJ;;EAEY,IAATuU,SAAS;IAAgB,OAAO,KAAKyB,iBAAZ;EAAgC;;EAChD,IAATzB,SAAS,CAACvU,GAAD,EAAe;IACxB,KAAKgW,iBAAL,GAAyBhW,GAAzB;IACA,MAAMiW,KAAK,GAAG,EAAd;;IACA,QAAQjW,GAAR;MACI,KAAKuU,yEAAL;QACI0B,KAAK,CAAC,eAAD,CAAL,GAAyB,gCAAzB;QACA;;MACJ,KAAK1B,0EAAL;QACI0B,KAAK,CAAC,YAAD,CAAL,GAAsB,gCAAtB;QACA;;MACJ,KAAK1B,yEAAL;QACI0B,KAAK,CAAC,kBAAD,CAAL,GAA4B,sBAA5B;QACA;IATR;;IAWA,KAAKI,SAAL,GAAiBJ,KAAjB;EACH;;EAES,IAAN7G,MAAM;IACN,OAAO,KAAKkH,cAAZ;EACH;;EACS,IAANlH,MAAM,CAACpP,GAAD,EAAc;IACpB,KAAKsW,cAAL,GAAsBtW,GAAtB;;IACA,IAAIA,GAAJ,EAAS;MACL,KAAKqP,KAAL,GAAarP,GAAG,CAACqV,KAAJ,GAAY,CAAzB;IACH,CAFD,MAEO;MACH,KAAKhG,KAAL,GAAa,CAAb;IACH;EACJ;;AA/DgB;IA4ERkH,kBAAkB,SAAlBA,kBAAkB;EAyD3BtX,YAAoBuX,WAApB,EAAoEtX,KAApE,EAA4F;IAAxE;IAAgD;IAvDpE,kBAAa,IAAI0O,iDAAJ,CAAgC,EAAhC,CAAb;IACA,2BAAsB,KAAtB;IAaQ,0BAAsC,EAAtC;IACA,sBAA6B,EAA7B;EAwCyF;;EApDzF,IAAJtI,IAAI;IAAiB,OAAO,KAAKmR,UAAL,CAAgBhZ,KAAvB;EAA+B;;EAI/C,IAALiZ,KAAK;IACL,OAAO,KAAKC,UAAZ;EACH;;EACQ,IAALD,KAAK,CAAC1W,GAAD,EAAI;IACT,KAAK2W,UAAL,GAAkB3W,GAAlB;EACH;;EAIY,IAAT4W,SAAS;IACT,OAAO,KAAKC,cAAZ;EACH;;EAEoC,OAAtBC,sBAAsB,CAACC,EAAD,EAAe1H,KAAf,EAA8B2H,aAA9B,EAAuD;IACxF,IAAID,EAAJ,EAAQ;MACJ,MAAME,IAAI,GAAGF,EAAE,CAAC3B,YAAhB;;MACA,IAAI6B,IAAI,IAAIA,IAAI,CAACrB,WAAb,IAA4BqB,IAAI,CAACpB,UAArC,EAAiD;QAC7CmB,aAAa,CAAC3a,IAAd,CAAmB0a,EAAnB;QACA,MAAMG,MAAM,GAAG,EAAf;QACAH,EAAE,CAAC7P,QAAH,GAAc,EAAd;QACA+P,IAAI,CAAC/P,QAAL,CAAc/I,OAAd,CAAsBgZ,CAAC,IAAG;UACtB,MAAMC,KAAK,GAAG,IAAInC,QAAJ,CAAakC,CAAb,EAAgBJ,EAAhB,CAAd;UACAA,EAAE,CAAC7P,QAAH,CAAY7K,IAAZ,CAAiB+a,KAAjB;UACAF,MAAM,CAAC7a,IAAP,CAAY+a,KAAZ;UACA,MAAMC,WAAW,GAAGd,kBAAkB,CAACO,sBAAnB,CAA0CM,KAA1C,EAAiD/H,KAAK,GAAG,CAAzD,EAA4D2H,aAA5D,CAApB;;UACA,IAAIK,WAAJ,EAAiB;YACbH,MAAM,CAAC7a,IAAP,CAAY,GAAGgb,WAAf;UACH;QACJ,CARD;QASA,OAAOH,MAAP;MACH;IACJ;;IACD,OAAO,IAAP;EACH;;EAEiC,OAAnBI,mBAAmB,CAACC,MAAD,EAAqBP,aAArB,EAA8C;IAC5E,MAAME,MAAM,GAAG,EAAf;IACAK,MAAM,CAACpZ,OAAP,CAAe4Y,EAAE,IAAG;MAChBG,MAAM,CAAC7a,IAAP,CAAY0a,EAAZ;;MACA,IAAIA,EAAE,CAAClB,UAAP,EAAmB;QACfmB,aAAa,CAAC3a,IAAd,CAAmB0a,EAAnB;QACA,MAAMS,SAAS,GAAGjB,kBAAkB,CAACe,mBAAnB,CAAuCP,EAAE,CAAC7P,QAA1C,EAAoD8P,aAApD,CAAlB;QACAE,MAAM,CAAC7a,IAAP,CAAY,GAAGmb,SAAf;MACH;IACJ,CAPD;IAQA,OAAON,MAAP;EACH;;EAID9J,IAAI,CAACqK,SAAD,EAA2B;IAC3B,MAAMha,KAAK,GAAG,EAAd;IACA,MAAMia,cAAc,GAAG,EAAvB;IACA,MAAMC,QAAQ,GAAG,EAAjB;IACAF,SAAS,CAACtZ,OAAV,CAAkBgZ,CAAC,IAAG;MAClB,MAAMJ,EAAE,GAAG,IAAI9B,QAAJ,CAAakC,CAAb,EAAgB,IAAhB,CAAX;MACA1Z,KAAK,CAACpB,IAAN,CAAW0a,EAAX;MACAW,cAAc,CAACrb,IAAf,CAAoB0a,EAApB;MACA,MAAMa,MAAM,GAAGrB,kBAAkB,CAACO,sBAAnB,CAA0CC,EAA1C,EAA8C,CAA9C,EAAiDY,QAAjD,CAAf;;MACA,IAAIC,MAAJ,EAAY;QACRna,KAAK,CAACpB,IAAN,CAAW,GAAGub,MAAd;MACH;IACJ,CARD;IASA,KAAKpB,WAAL,CAAiBqB,SAAjB,GAA6Bpa,KAA7B;IACA,KAAKqa,mBAAL,GAA2B,IAA3B;IACA,KAAKtB,WAAL,CAAiBuB,cAAjB,CAAgCC,KAAhC;IACA,KAAKxB,WAAL,CAAiBuB,cAAjB,CAAgCE,MAAhC,CAAuC,GAAGN,QAA1C;IACA,KAAKG,mBAAL,GAA2B,KAA3B;IACA,KAAKrB,UAAL,CAAgBta,IAAhB,CAAqBsB,KAArB;IACA,KAAKoZ,cAAL,GAAsBa,cAAtB;IACA,KAAKQ,kBAAL,GAA0BT,SAA1B;EACH;;EAEDU,OAAO,CAACC,gBAAD,EAAmC;IACtC,KAAK5B,WAAL,CAAiBuB,cAAjB,CAAgCM,OAAhC,CAAwC9b,SAAxC,CAAkD+b,MAAM,IAAG;MACvD,IAAI,CAAC,KAAKR,mBAAV,EAA+B;QAC3B,KAAKA,mBAAL,GAA2B,IAA3B;QACA,KAAKS,qBAAL,CAA2BD,MAA3B;QACA,KAAKR,mBAAL,GAA2B,KAA3B;MACH;IACJ,CAND;IAOA,OAAO1D,4CAAK,CAACgE,gBAAgB,CAACI,UAAlB,EAA8B,KAAK/B,UAAnC,CAAL,CAAoDgC,IAApD,CAAyDrW,oDAAG,CAAC,MAAM,KAAKkD,IAAZ,CAA5D,CAAP;EACH;;EAEKiT,qBAAqB,CAACD,MAAD,EAAkC;IAAA;;IAAA;MACzD,IAAIA,MAAM,CAACI,KAAX,EAAkB;QACd,MAAMC,OAAO,GAAGL,MAAM,CAACI,KAAP,CAAaE,KAAb,EAAhB;;QACA,KAAK,IAAI3T,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0T,OAAO,CAAC9a,MAA5B,EAAoCoH,CAAC,EAArC,EAAyC;UACrC,MAAM,KAAI,CAAC4T,UAAL,CAAgBF,OAAO,CAAC1T,CAAD,CAAvB,EAA4B,IAA5B,CAAN;QACH;MACJ;;MACD,IAAIqT,MAAM,CAACQ,OAAX,EAAoB;QAChB,MAAMH,OAAO,GAAGL,MAAM,CAACQ,OAAP,CAAeF,KAAf,EAAhB;;QACA,KAAK,IAAI3T,CAAC,GAAG0T,OAAO,CAAC9a,MAAR,GAAiB,CAA9B,EAAiCoH,CAAC,IAAI,CAAtC,EAAyCA,CAAC,EAA1C,EAA8C;UAC1C,MAAM,KAAI,CAAC4T,UAAL,CAAgBF,OAAO,CAAC1T,CAAD,CAAvB,EAA4B,KAA5B,CAAN;QACH;MACJ;;MACD,KAAI,CAAC/F,KAAL,CAAW0B,aAAX;IAbyD;EAc5D;EAED;;;;;EAGMiY,UAAU,CAAC/F,IAAD,EAAiBiG,MAAjB,EAAgC;IAAA;;IAAA;MAC5C,MAAMzW,KAAK,GAAG,MAAI,CAACgD,IAAL,CAAUkF,OAAV,CAAkBsI,IAAlB,CAAd;;MACA,IAAI,CAACA,IAAI,CAAC6C,UAAN,IAAoBrT,KAAK,GAAG,CAAhC,EAAmC;QAAE;QACjC;MACH;;MAEDwQ,IAAI,CAACkG,SAAL,GAAiB,IAAjB;;MAEA,IAAID,MAAJ,EAAY;QACR,MAAME,QAAQ,GAAG,EAAjB;;QACA,IAAInG,IAAI,CAAC5L,QAAT,EAAmB;UACf,MAAMyQ,QAAQ,GAAG,EAAjB;UACAsB,QAAQ,CAAC5c,IAAT,CAAc,GAAGka,kBAAkB,CAACe,mBAAnB,CAAuCxE,IAAI,CAAC5L,QAA5C,EAAsDyQ,QAAtD,CAAjB;;UACA,MAAI,CAACnB,WAAL,CAAiBuB,cAAjB,CAAgCE,MAAhC,CAAuC,GAAGN,QAA1C;QACH,CAJD,MAIO;UACH,MAAM7S,QAAQ,GAAG,EAAjB;;UACA,IAAIgO,IAAI,CAACsC,YAAL,CAAkBlO,QAAtB,EAAgC;YAC5B,MAAMyQ,QAAQ,GAAG,EAAjB;YACA7E,IAAI,CAACsC,YAAL,CAAkBlO,QAAlB,CAA2B/I,OAA3B,CAAmC+a,EAAE,IAAG;cACpC,MAAMnC,EAAE,GAAG,IAAI9B,QAAJ,CAAaiE,EAAb,EAAiBpG,IAAjB,CAAX;cACAhO,QAAQ,CAACzI,IAAT,CAAc0a,EAAd;cACAkC,QAAQ,CAAC5c,IAAT,CAAc0a,EAAd;cACA,MAAMa,MAAM,GAAGrB,kBAAkB,CAACO,sBAAnB,CAA0CC,EAA1C,EAA8CA,EAAE,CAAC1B,KAAH,GAAW,CAAzD,EAA4DsC,QAA5D,CAAf;;cACA,IAAIC,MAAJ,EAAY;gBACRqB,QAAQ,CAAC5c,IAAT,CAAc,GAAGub,MAAjB;cACH;YACJ,CARD;;YASA,MAAI,CAACpB,WAAL,CAAiBuB,cAAjB,CAAgCE,MAAhC,CAAuC,GAAGN,QAA1C;UACH,CAZD,MAYO,IAAI,MAAI,CAAChB,UAAT,EAAqB;YACxB,MAAMwC,UAAU,SAAS,MAAI,CAACxC,UAAL,CAAgByC,YAAhB,CAA6BtG,IAAI,CAACsC,YAAlC,CAAzB;;YACA,IAAI+D,UAAJ,EAAgB;cACZA,UAAU,CAAChb,OAAX,CAAmB+a,EAAE,IAAG;gBACpBpU,QAAQ,CAACzI,IAAT,CAAc,IAAI4Y,QAAJ,CAAaiE,EAAb,EAAiBpG,IAAjB,CAAd;cACH,CAFD;cAGAmG,QAAQ,CAAC5c,IAAT,CAAc,GAAGyI,QAAjB;YACH;UACJ;;UACDgO,IAAI,CAAC5L,QAAL,GAAgBpC,QAAhB;QACH;;QACD,MAAI,CAACQ,IAAL,CAAUwF,MAAV,CAAiBxI,KAAK,GAAG,CAAzB,EAA4B,CAA5B,EAA+B,GAAG2W,QAAlC;MACH,CAhCD,MAgCO;QACH,IAAII,KAAK,GAAG,CAAZ;;QACA,KAAK,IAAIpU,CAAC,GAAG3C,KAAK,GAAG,CAArB,EAAwB2C,CAAC,GAAG,MAAI,CAACK,IAAL,CAAUzH,MAAd,IACjB,MAAI,CAACyH,IAAL,CAAUL,CAAV,EAAaoQ,KAAb,GAAqBvC,IAAI,CAACuC,KADjC,EACwCpQ,CAAC,IAAKoU,KAAK,EADnD,EACuD,CAAG;;QAC1D,MAAI,CAAC/T,IAAL,CAAUwF,MAAV,CAAiBxI,KAAK,GAAG,CAAzB,EAA4B+W,KAA5B;MACH;;MACDvG,IAAI,CAAC+C,UAAL,GAAkBkD,MAAlB,CA9C4C,CA+C5C;;MACA,MAAI,CAACtC,UAAL,CAAgBta,IAAhB,CAAqB,MAAI,CAACmJ,IAA1B;;MACAwN,IAAI,CAACkG,SAAL,GAAiB,KAAjB;IAjD4C;EAkD/C;;AAlK0B;;;;;;;;;;UAQ1Bpa,iDAAKA;;;AARG2X,kBAAkB,uDAD9BpC,0DAAU,EACoB,GAAlBoC,kBAAkB,CAAlB;AAAAA;IAwKA+C,oBAAoB,SAApBA,oBAAoB;AAApBA,oBAAoB,uDAHhCvW,yDAAS,CAAC;EACPvE,QAAQ,EAAE;AADH,CAAD,CAGuB,GAApB8a,oBAAoB,CAApB;AAAAA;IAQAC,eAAe,SAAfA,eAAe;EAiJxBta,YAAmBC,KAAnB,EAA2C;IAAxB;IAvIT,yBAAoB,IAAIP,wDAAJ,EAApB;IAGV,0BAAqB,IAAIsV,qEAAJ,CAA6B,IAA7B,CAArB;IAGU,sBAAiB,IAAItV,wDAAJ,EAAjB;IAeA,uBAAkB,IAAIA,wDAAJ,EAAlB;IAWA,sBAAiB,IAAIA,wDAAJ,EAAjB;IAWA,0BAAqB,IAAIA,wDAAJ,EAArB;IAWA,wBAAmB,IAAIA,wDAAJ,EAAnB;IAmBV,8BAAyB,KAAzB;IAuBU,0BAAqB,IAAIA,wDAAJ,EAArB;IAgBA,2BAAsB,IAAIA,wDAAJ,EAAtB;IAIA,wBAAmB,IAAIA,wDAAJ,EAAnB;IACA,sBAAiB,IAAIA,wDAAJ,EAAjB;IACA,iBAAY,IAAIA,wDAAJ,EAAZ;IACA,eAAU,IAAIA,wDAAJ,EAAV;IACA,oBAAe,IAAIA,wDAAJ,EAAf;IACA,mBAAc,IAAIA,wDAAJ,EAAd;IAEV,aAAQ,KAAR;IACA,qBAAgB,EAAhB;;IA2BA,gBAAW,CAAC0D,CAAD,EAAYmX,QAAZ,KAAmCA,QAAQ,CAAC7D,UAAvD;;IAfI,KAAKa,WAAL,GAAmB,IAAItC,+DAAJ,CAA+BiD,CAAD,IAAOA,CAAC,CAAC9B,KAAvC,EAA+C8B,CAAD,IAAOA,CAAC,CAACxB,UAAvD,CAAnB;IACA,KAAK8D,UAAL,GAAkB,IAAIlD,kBAAJ,CAAuB,KAAKC,WAA5B,EAAyC,KAAKtX,KAA9C,CAAlB;EACH;;EAjJc,IAAXsX,WAAW;IACX,OAAO,KAAKkD,gBAAZ;EACH;;EACc,IAAXlD,WAAW,CAACxW,GAAD,EAAI;IACf,KAAK0Z,gBAAL,GAAwB1Z,GAAxB;IACA,KAAK2Z,iBAAL,CAAuBhZ,IAAvB,CAA4BX,GAA5B;EACH;;EAWY,IAAT4W,SAAS;IACT,OAAO,KAAKC,cAAZ;EACH;;EACY,IAATD,SAAS,CAAC5W,GAAD,EAAI;IACb,IAAIA,GAAG,KAAK,KAAK6W,cAAjB,EAAiC;MAC7B,KAAKA,cAAL,GAAsB7W,GAAtB;MACA,KAAK4Z,iBAAL,GAAyB,IAAzB;MACA,KAAKH,UAAL,CAAgBrM,IAAhB,CAAqBpN,GAArB;MACA,KAAK6Z,eAAL,CAAqBlZ,IAArB,CAA0BX,GAA1B;IACH;EACJ;;EAKW,IAAR8Z,QAAQ;IACR,OAAO,KAAKC,aAAZ;EACH;;EACW,IAARD,QAAQ,CAAC9Z,GAAD,EAAI;IACZ,KAAK+Z,aAAL,GAAqB/Z,GAArB;IACA,KAAKga,cAAL,CAAoBrZ,IAApB,CAAyBX,GAAzB;EACH;;EAKe,IAAZia,YAAY;IACZ,OAAO,KAAKC,iBAAZ;EACH;;EACe,IAAZD,YAAY,CAACja,GAAD,EAAI;IAChB,KAAKka,iBAAL,GAAyBla,GAAzB;IACA,KAAKma,kBAAL,CAAwBxZ,IAAxB,CAA6BX,GAA7B;EACH;;EAKa,IAAVoa,UAAU;IACV,OAAO,KAAKC,eAAZ;EACH;;EACa,IAAVD,UAAU,CAACpa,GAAD,EAAI;IACd,KAAKqa,eAAL,GAAuBra,GAAvB;IACA,KAAKsa,gBAAL,CAAsB3Z,IAAtB,CAA2BX,GAA3B;EACH;;EAKsB,IAAnBua,mBAAmB;IACnB,OAAO,KAAKC,wBAAZ;EACH;;EACsB,IAAnBD,mBAAmB,CAACva,GAAD,EAAI;IACvB,KAAKwa,wBAAL,GAAgCxa,GAAhC;EACH;;EAGQ,IAAL0W,KAAK;IACL,OAAO,KAAK+C,UAAL,CAAgB/C,KAAvB;EACH;;EACQ,IAALA,KAAK,CAAC1W,GAAD,EAAI;IACT,KAAKyZ,UAAL,CAAgB/C,KAAhB,GAAwB1W,GAAxB;EACH;;EAIoB,IAAjBya,iBAAiB;IACjB,OAAO,KAAKC,sBAAZ;EACH;;EACoB,IAAjBD,iBAAiB,CAACza,GAAD,EAAI;IACrB,KAAK0a,sBAAL,GAA8B1a,GAA9B;EACH;;EAIe,IAAZ2a,YAAY;IACZ,OAAO,KAAKf,iBAAZ;EACH;;EACe,IAAZe,YAAY,CAAC3a,GAAD,EAAI;IAChB,IAAIA,GAAG,KAAK,KAAK4Z,iBAAjB,EAAoC;MAChC,KAAKA,iBAAL,GAAyB5Z,GAAzB;MACAuZ,eAAe,CAACqB,iBAAhB,CAAkC,KAAKnB,UAAL,CAAgB7C,SAAlD,EAA8DG,EAAD,IAAO;QAChEA,EAAE,CAACjB,UAAH,GAAgBiB,EAAE,CAAC3B,YAAH,IAAmBpV,GAAnC;MACH,CAFD;MAGA,KAAK6a,kBAAL,CAAwBla,IAAxB,CAA6BX,GAA7B;IACH;EACJ;;EAKgB,IAAb8a,aAAa;IACb,OAAO,KAAKC,kBAAZ;EACH;;EACgB,IAAbD,aAAa,CAAC9a,GAAD,EAAI;IACjB,IAAIA,GAAG,KAAK,KAAK+a,kBAAjB,EAAqC;MACjC,KAAKA,kBAAL,GAA0B/a,GAA1B;MACAuZ,eAAe,CAACqB,iBAAhB,CAAkC,KAAKnB,UAAL,CAAgB7C,SAAlD,EAA8DG,EAAD,IAAO;QAChEA,EAAE,CAACjB,UAAH,GAAgB9V,GAAG,CAACgb,IAAJ,CAAUvd,KAAD,IAAWsZ,EAAE,CAAC3B,YAAH,IAAmB3X,KAAvC,CAAhB;MACH,CAFD;MAGA,KAAKwd,mBAAL,CAAyBta,IAAzB,CAA8BX,GAA9B;IACH;EACJ;;EAe+B,OAAjB4a,iBAAiB,CAACM,KAAD,EAAoBC,IAApB,EAA+C;IAC3E,IAAID,KAAK,IAAIC,IAAb,EAAmB;MACfD,KAAK,CAAC/c,OAAN,CAAcgZ,CAAC,IAAG;QACdgE,IAAI,CAAChE,CAAD,CAAJ;QACAoC,eAAe,CAACqB,iBAAhB,CAAkCzD,CAAC,CAACjQ,QAApC,EAA8CiU,IAA9C;MACH,CAHD;IAIH;EACJ;;EAMDlf,QAAQ;IACJ,KAAKmf,cAAL,CAAoBza,IAApB,CAAyB,IAAzB;IACA,KAAK0a,KAAL,GAAa/G,oEAAA,IAAuB,KAApC;IACA,KAAKlY,aAAL,CAAmBC,IAAnB,CAAwBiY,qFAAA,CAAsCkH,GAAD,IAAQ;MACjE,KAAKH,KAAL,GAAaG,GAAG,IAAI,KAApB;MACA,KAAKtc,KAAL,CAAW0B,aAAX;IACH,CAHuB,CAAxB;EAIH;;EACD1C,WAAW;IACP,KAAK9B,aAAL,CAAmB+B,OAAnB,CAA2BC,CAAC,IAAIA,CAAC,CAACC,WAAF,EAAhC;EACH;;EAGDod,WAAW,CAACzO,EAAD,EAAiB8F,IAAjB,EAA+B;IACtC,IAAIA,IAAI,CAAC0C,UAAT,EAAqB;MACjB,MAAMkG,QAAQ,GAAG,EAAjB;;MACA,IAAI1O,EAAE,IAAIA,EAAE,CAAC2O,OAAT,IAAoB,KAAKjB,sBAA7B,EAAqD;QACjD5H,IAAI,CAACgD,UAAL,GAAkB,CAAChD,IAAI,CAACgD,UAAxB;QACAyD,eAAe,CAACqB,iBAAhB,CAAkC,KAAKnB,UAAL,CAAgB7C,SAAlD,EAA8DG,EAAD,IAAO;UAChE,IAAIA,EAAE,CAACjB,UAAP,EAAmB;YACf4F,QAAQ,CAACrf,IAAT,CAAc0a,EAAE,CAAC3B,YAAjB;UACH;QACJ,CAJD;;QAKA,IAAI,KAAKwE,iBAAT,EAA4B;UACxB,KAAKA,iBAAL,GAAyB,IAAzB;UACA,KAAKiB,kBAAL,CAAwBla,IAAxB,CAA6B,IAA7B;QACH;MACJ,CAXD,MAWO;QACH4Y,eAAe,CAACqB,iBAAhB,CAAkC,KAAKnB,UAAL,CAAgB7C,SAAlD,EAA8DG,EAAD,IAAO;UAAGA,EAAE,CAACjB,UAAH,GAAgB,KAAhB;QAAwB,CAA/F;QACAhD,IAAI,CAACgD,UAAL,GAAkB,IAAlB;QACA4F,QAAQ,CAACrf,IAAT,CAAcyW,IAAI,CAACsC,YAAnB;QACA,KAAKuF,YAAL,GAAoB7H,IAAI,CAACsC,YAAzB;MACH;;MACD,KAAK0F,aAAL,GAAqBY,QAArB;MACA,KAAKE,gBAAL,CAAsBjb,IAAtB,CAA2B+a,QAA3B;IACH;EACJ;;EAEDG,SAAS,CAAC7O,EAAD,EAAG;IACR,MAAM8O,WAAW,GAAG;MAChB9U,OAAO,EAAE,EADO;MAEhB+U,gBAAgB,EAAE,EAFF;MAGhBC,QAAQ,EAAE,EAHM;MAIhBC,OAAO,EAAE,IAJO;MAKhBC,YAAY,EAAE,IALE;MAMhBC,KAAK,EAAEnP,EANS;MAOhBoP,QAAQ,EAAE;IAPM,CAApB;IASA,MAAMC,QAAQ,GAAG,EAAjB;IACA,KAAK7F,WAAL,CAAiBqB,SAAjB,CAA2B1Z,OAA3B,CAAmCme,EAAE,IAAG;MACpC,IAAIA,EAAE,CAACxG,UAAH,IAAiBwG,EAAE,CAAC/G,SAAxB,EAAmC;QAC/B8G,QAAQ,CAAChgB,IAAT,CAAcigB,EAAE,CAACtV,OAAjB;QACA8U,WAAW,CAACC,gBAAZ,CAA6B1f,IAA7B,CAAkCigB,EAAlC;QACAR,WAAW,CAACE,QAAZ,CAAqB3f,IAArB,CAA0BigB,EAAE,CAAClH,YAA7B;MACH;IACJ,CAND;IAOA0G,WAAW,CAAC9U,OAAZ,GAAsBqV,QAAQ,CAACE,IAAT,CAAc,IAAd,CAAtB;IACA,KAAKC,SAAL,GAAiBV,WAAjB;IACA9O,EAAE,CAACyP,YAAH,CAAgBC,OAAhB,CAAwB,SAAxB,EAAmCZ,WAAnC;IACA,KAAKa,SAAL,CAAehc,IAAf,CAAoBmb,WAApB;EACH;;EAEDc,OAAO,CAAC5P,EAAD,EAAG;IACN,KAAKwP,SAAL,GAAiB,IAAjB;IACA,KAAKK,OAAL,CAAalc,IAAb,CAAkBqM,EAAlB;EACH;;EAEK8P,QAAQ,CAAC9P,EAAD,EAAK8F,IAAL,EAAS;IAAA;;IAAA;MACnBA,IAAI,CAACyB,SAAL,GAAiBA,wEAAjB;MACA,MAAMwI,EAAE,GAAG,MAAI,CAACP,SAAhB;;MACA,IAAIO,EAAJ,EAAQ;QACJ,MAAMC,WAAW,GAAGD,EAAE,CAACX,QAAvB;QACAW,EAAE,CAACX,QAAH,GAActJ,IAAd;QACA,MAAMmK,WAAW,GAAGD,WAAW,KAAKlK,IAApC;;QACA,IAAIkK,WAAW,IAAIC,WAAnB,EAAgC;UAC5BD,WAAW,CAACzI,SAAZ,GAAwBA,wEAAxB;QACH;;QACD,IAAIvH,EAAE,CAACkQ,aAAP,EAAsB;UAClB,IAAI,CAAClQ,EAAE,CAACkQ,aAAH,CAAiBC,UAAtB,EAAkC;YAC9BnQ,EAAE,CAACkQ,aAAH,CAAiBC,UAAjB,GAA8BnQ,EAAE,CAACkQ,aAAH,CAAiBE,YAA/C;UACH;;UACD,MAAMC,GAAG,GAAGrQ,EAAE,CAACsQ,OAAH,GAAatQ,EAAE,CAACkQ,aAAH,CAAiBC,UAA1C;UACA,IAAII,MAAM,GAAG,IAAb;;UACA,IAAIR,EAAE,CAACX,QAAH,CAAYhN,MAAhB,EAAwB;YACpBmO,MAAM,GAAGR,EAAE,CAACX,QAAH,CAAYhN,MAAZ,CAAmBgG,YAA5B;UACH;;UACD,IAAIiI,GAAG,IAAI,IAAX,EAAiB;YACbvK,IAAI,CAACyB,SAAL,GAAiBA,0EAAjB;UACH,CAFD,MAEO,IAAI8I,GAAG,IAAI,IAAX,EAAiB;YACpBvK,IAAI,CAACyB,SAAL,GAAiBA,yEAAjB;UACH,CAFM,MAEA;YACHzB,IAAI,CAACyB,SAAL,GAAiBA,yEAAjB;YACAgJ,MAAM,GAAGR,EAAE,CAACX,QAAH,CAAYhH,YAArB;UACH;;UACD,IAAI2H,EAAE,CAAChB,gBAAH,CAAoBf,IAApB,CAAyB5c,CAAC,IAAIA,CAAC,KAAK0U,IAApC,CAAJ,EAA+C;YAC3C;UACH;;UACD,IAAIA,IAAI,CAAC6C,UAAL,IAAmB,CAAC7C,IAAI,CAACsC,YAAL,CAAkBlO,QAAtC,IAAkD,MAAI,CAACwP,KAA3D,EAAkE;YAC9D;UACH;;UACD,IAAI,MAAI,CAAC8D,wBAAT,EAAmC;YAC/B,MAAMgD,SAAS,GAAG;cACdC,SAAS,EAAEV,EADG;cAEdW,MAAM,EAAEH,MAFM;cAGdI,MAAM,EAAE;YAHM,CAAlB;YAKA,MAAM,MAAI,CAACnD,wBAAL,CAA8BoD,YAA9B,CAA2CJ,SAA3C,CAAN;;YACA,IAAIA,SAAS,CAACG,MAAd,EAAsB;cAClB;YACH;UACJ;QACJ;MACJ;IA7CkB;EA8CtB;;EAEDE,cAAc,CAAC7Q,EAAD,EAAG;IACb,IAAI,KAAKwP,SAAT,EAAoB;MAChB,IAAI,KAAKA,SAAL,CAAeP,OAAf,KAA2B,KAA/B,EAAsC;QAClC,IAAI,KAAKO,SAAL,CAAeN,YAAf,KAAgC,IAApC,EAA0C;UACtCxH,8FAAA,CAA4B,KAAK8H,SAAL,CAAeN,YAA3C,EAAyD,IAAI7H,uEAAJ,CAAwB,QAAxB,CAAzD,EACIG,sFADJ,EAC0BC,qFAD1B;QAEH;MACJ,CALD,MAKO;QACH,MAAMwJ,QAAQ,GAAG,KAAKzB,SAAL,CAAeJ,QAAhC;;QACA,IAAI6B,QAAJ,EAAc;UACV,IAAIjR,EAAE,IAAIiR,QAAQ,CAAC1J,SAAT,KAAuBA,wEAAjC,EAAiD;YAC7C,MAAM2J,QAAQ,GAAG;cACbC,UAAU,EAAE,IADC;cAEbC,SAAS,EAAE,CAFE;cAGbC,YAAY,EAAE;YAHD,CAAjB;YAKA,IAAIC,QAAJ;YACA,IAAIC,SAAJ;;YACA,IAAIN,QAAQ,CAAC1J,SAAT,KAAuBA,yEAA3B,EAA4C;cACxC0J,QAAQ,CAAC7I,YAAT,CAAsBS,UAAtB,GAAmC,IAAnC;cACAoI,QAAQ,CAAC7I,YAAT,CAAsBQ,WAAtB,GAAoC,IAApC;;cACA,IAAI,CAACqI,QAAQ,CAAC7I,YAAT,CAAsBlO,QAA3B,EAAqC;gBACjC+W,QAAQ,CAAC7I,YAAT,CAAsBlO,QAAtB,GAAiC,EAAjC;cACH;;cACDgX,QAAQ,CAACC,UAAT,GAAsBF,QAAQ,CAAC7I,YAA/B;cACAkJ,QAAQ,GAAGL,QAAQ,CAAC7I,YAAT,CAAsBlO,QAAjC;cACAqX,SAAS,GAAGN,QAAQ,CAAC7I,YAAT,CAAsBlO,QAAtB,CAA+BrJ,MAA3C;YACH,CATD,MASO;cACHygB,QAAQ,GAAG,KAAKzH,cAAhB;;cACA,IAAIoH,QAAQ,CAAC7O,MAAb,EAAqB;gBACjB8O,QAAQ,CAACC,UAAT,GAAsBF,QAAQ,CAAC7O,MAAT,CAAgBgG,YAAtC;gBACAkJ,QAAQ,GAAGL,QAAQ,CAAC7O,MAAT,CAAgBgG,YAAhB,CAA6BlO,QAAxC;cACH;;cACDqX,SAAS,GAAGD,QAAQ,CAAC9T,OAAT,CAAiByT,QAAQ,CAAC7I,YAA1B,CAAZ;;cACA,IAAI6I,QAAQ,CAAC1J,SAAT,KAAuBA,yEAA3B,EAA4C;gBACxCgK,SAAS;cACZ;YACJ;;YACDL,QAAQ,CAACE,SAAT,GAAqBG,SAArB;YACA,MAAMC,YAAY,GAAG,EAArB;YACA,MAAMC,aAAa,GAAG,EAAtB;YACA,KAAKjC,SAAL,CAAeT,gBAAf,CAAgC5d,OAAhC,CAAwCugB,QAAQ,IAAG;cAC/C,MAAMC,YAAY,GAAG;gBACjBC,IAAI,EAAEF,QAAQ,CAACtJ,YADE;gBAEjByJ,WAAW,EAAE;cAFI,CAArB;cAIA,IAAIC,QAAQ,GAAG,KAAKjI,cAApB;;cACA,IAAI6H,QAAQ,CAACtP,MAAb,EAAqB;gBACjBuP,YAAY,CAACE,WAAb,GAA2BH,QAAQ,CAACtP,MAAT,CAAgBgG,YAA3C;gBACA0J,QAAQ,GAAGJ,QAAQ,CAACtP,MAAT,CAAgBgG,YAAhB,CAA6BlO,QAAxC;cACH;;cACD,MAAM6X,SAAS,GAAGD,QAAQ,CAACtU,OAAT,CAAiBkU,QAAQ,CAACtJ,YAA1B,CAAlB;;cACA,IAAI2J,SAAS,IAAI,CAAjB,EAAoB;gBAChB,IAAID,QAAQ,KAAKR,QAAjB,EAA2B;kBACvBG,aAAa,CAACpiB,IAAd,CAAmB0iB,SAAnB;;kBACA,IAAIA,SAAS,GAAGR,SAAhB,EAA2B;oBACvBL,QAAQ,CAACE,SAAT;kBACH;gBACJ,CALD,MAKO;kBACHU,QAAQ,CAAChU,MAAT,CAAgBiU,SAAhB,EAA2B,CAA3B;;kBACA,IAAIL,QAAQ,CAACtP,MAAb,EAAqB;oBACjBsP,QAAQ,CAACtP,MAAT,CAAgBgG,YAAhB,CAA6BQ,WAA7B,GAA2CkJ,QAAQ,CAACjhB,MAAT,GAAkB,CAA7D;kBACH;gBACJ;cACJ;;cACD2gB,YAAY,CAACniB,IAAb,CAAkBqiB,QAAQ,CAACtJ,YAA3B;cACA8I,QAAQ,CAACG,YAAT,CAAsBhiB,IAAtB,CAA2BsiB,YAA3B;YACH,CA1BD;YA2BAF,aAAa,CAACne,IAAd,CAAmB,CAACC,CAAD,EAAIC,CAAJ,KAAUA,CAAC,GAAGD,CAAjC;YACAke,aAAa,CAACtgB,OAAd,CAAsBC,CAAC,IAAG;cACtBkgB,QAAQ,CAACxT,MAAT,CAAgB1M,CAAhB,EAAmB,CAAnB;YACH,CAFD;YAGAkgB,QAAQ,CAACxT,MAAT,CAAgBoT,QAAQ,CAACE,SAAzB,EAAoC,CAApC,EAAuC,GAAGI,YAA1C;YACA,MAAMQ,OAAO,GAAG,KAAKpF,iBAArB;YACA,KAAKhD,SAAL,GAAiB,KAAKC,cAAL,CAAoB+B,KAApB,EAAjB;;YACA,IAAI,CAAC,KAAK8B,sBAAN,IAAgCsE,OAApC,EAA6C;cACzCzF,eAAe,CAACqB,iBAAhB,CAAkC,KAAKnB,UAAL,CAAgB7C,SAAlD,EAA8DG,EAAD,IAAO;gBAChEA,EAAE,CAACjB,UAAH,GAAgBiB,EAAE,CAAC3B,YAAH,KAAoB4J,OAApC;cACH,CAFD;YAGH;;YACD,KAAKC,YAAL,CAAkBte,IAAlB,CAAuBud,QAAvB;UACH;;UACDD,QAAQ,CAAC1J,SAAT,GAAqBA,wEAArB;QACH;MACJ;;MACD,KAAKiI,SAAL,GAAiB,IAAjB;IACH;EACJ;;EAID0C,aAAa;IACT,IAAI,CAAC,KAAKzE,iBAAV,EAA6B;MACzB,KAAK0E,WAAL,CAAiBxe,IAAjB,CAAsB,KAAKiZ,iBAA3B;IACH;EACJ,CAvWuB,CAyWxB;;;EACAwF,uBAAuB,CAACtM,IAAD,EAAe;IAClC,KAAKuM,kBAAL,CAAwBC,MAAxB,CAA+BxM,IAA/B;IACA,MAAMyM,WAAW,GAAG,KAAK/I,WAAL,CAAiBgJ,cAAjB,CAAgC1M,IAAhC,CAApB;IACA,KAAKuM,kBAAL,CAAwBI,UAAxB,CAAmC3M,IAAnC,IACM,KAAKuM,kBAAL,CAAwBpH,MAAxB,CAA+B,GAAGsH,WAAlC,CADN,GAEM,KAAKF,kBAAL,CAAwBK,QAAxB,CAAiC,GAAGH,WAApC,CAFN,CAHkC,CAOlC;;IACAA,WAAW,CAACI,KAAZ,CAAkBvI,KAAK,IACnB,KAAKiI,kBAAL,CAAwBI,UAAxB,CAAmCrI,KAAnC,CADJ;IAGA,KAAKwI,wBAAL,CAA8B9M,IAA9B;IACA,KAAK+M,gBAAL;EACH;;EAEDC,2BAA2B,CAAChN,IAAD,EAAe;IACtC,KAAKuM,kBAAL,CAAwBC,MAAxB,CAA+BxM,IAA/B;IACA,KAAK8M,wBAAL,CAA8B9M,IAA9B;IACA,KAAK+M,gBAAL;EACH;;EAEDA,gBAAgB;IACZ,MAAME,SAAS,GAAG,EAAlB;IACA,KAAKV,kBAAL,CAAwBW,QAAxB,CAAiC7hB,OAAjC,CAAyCC,CAAC,IAAG;MACzC2hB,SAAS,CAAC1jB,IAAV,CAAe+B,CAAC,CAACgX,YAAjB;IACH,CAFD;IAGA,KAAK6K,cAAL,CAAoBtf,IAApB,CAAyBof,SAAzB;EACH;;EAEDH,wBAAwB,CAAC9M,IAAD,EAAe;IACnC,IAAIoN,MAAM,GAAoB,KAAKC,aAAL,CAAmBrN,IAAnB,CAA9B;;IACA,OAAOoN,MAAP,EAAe;MACX,KAAKE,sBAAL,CAA4BF,MAA5B;MACAA,MAAM,GAAG,KAAKC,aAAL,CAAmBD,MAAnB,CAAT;IACH;EACJ;;EAEDE,sBAAsB,CAACtN,IAAD,EAAe;IACjC,MAAMuN,YAAY,GAAG,KAAKhB,kBAAL,CAAwBI,UAAxB,CAAmC3M,IAAnC,CAArB;IACA,MAAMyM,WAAW,GAAG,KAAK/I,WAAL,CAAiBgJ,cAAjB,CAAgC1M,IAAhC,CAApB;IACA,MAAMwN,eAAe,GAAGf,WAAW,CAACI,KAAZ,CAAkBvI,KAAK,IAC3C,KAAKiI,kBAAL,CAAwBI,UAAxB,CAAmCrI,KAAnC,CADoB,CAAxB;;IAGA,IAAIiJ,YAAY,IAAI,CAACC,eAArB,EAAsC;MAClC,KAAKjB,kBAAL,CAAwBK,QAAxB,CAAiC5M,IAAjC;IACH,CAFD,MAEO,IAAI,CAACuN,YAAD,IAAiBC,eAArB,EAAsC;MACzC,KAAKjB,kBAAL,CAAwBpH,MAAxB,CAA+BnF,IAA/B;IACH;EACJ;EAED;;;EACAqN,aAAa,CAACrN,IAAD,EAAe;IACxB,MAAMyN,YAAY,GAAGzN,IAAI,CAACuC,KAA1B;;IAEA,IAAIkL,YAAY,GAAG,CAAnB,EAAsB;MAClB,OAAO,IAAP;IACH;;IAED,MAAMC,UAAU,GAAG,KAAKhK,WAAL,CAAiBqB,SAAjB,CAA2BrN,OAA3B,CAAmCsI,IAAnC,IAA2C,CAA9D;;IAEA,KAAK,IAAI7N,CAAC,GAAGub,UAAb,EAAyBvb,CAAC,IAAI,CAA9B,EAAiCA,CAAC,EAAlC,EAAsC;MAClC,MAAMwb,WAAW,GAAG,KAAKjK,WAAL,CAAiBqB,SAAjB,CAA2B5S,CAA3B,CAApB;;MAEA,IAAIwb,WAAW,CAACpL,KAAZ,GAAoBkL,YAAxB,EAAsC;QAClC,OAAOE,WAAP;MACH;IACJ;;IACD,OAAO,IAAP;EACH;;EAEDC,sBAAsB,CAAC5N,IAAD,EAAe;IACjC,MAAMyM,WAAW,GAAG,KAAK/I,WAAL,CAAiBgJ,cAAjB,CAAgC1M,IAAhC,CAApB;;IACA,IAAIyM,WAAW,CAAC1hB,MAAZ,KAAuB,CAA3B,EAA8B;MAC1B,OAAO,KAAP;IACH;;IACD,MAAMyiB,eAAe,GAAGf,WAAW,CAACI,KAAZ,CAAkBvI,KAAK,IAC3C,KAAKiI,kBAAL,CAAwBI,UAAxB,CAAmCrI,KAAnC,CADoB,CAAxB;IAGA,OAAOkJ,eAAP;EACH;;EAEDK,4BAA4B,CAAC7N,IAAD,EAAe;IACvC,MAAMyM,WAAW,GAAG,KAAK/I,WAAL,CAAiBgJ,cAAjB,CAAgC1M,IAAhC,CAApB;;IACA,IAAIyM,WAAW,CAAC1hB,MAAZ,KAAuB,CAA3B,EAA8B;MAC1B,OAAO,KAAP;IACH;;IACD,IAAImiB,QAAQ,GAAG,KAAf;IACA,IAAIY,UAAU,GAAG,KAAjB;IACArB,WAAW,CAACvE,IAAZ,CAAiB5D,KAAK,IAAG;MACrB,IAAI,KAAKiI,kBAAL,CAAwBI,UAAxB,CAAmCrI,KAAnC,CAAJ,EAA+C;QAC3C4I,QAAQ,GAAG,IAAX;MACH,CAFD,MAEO;QACHY,UAAU,GAAG,IAAb;MACH;;MACD,OAAOZ,QAAQ,IAAIY,UAAnB;IACH,CAPD;IAQA,OAAOZ,QAAQ,IAAIY,UAAnB;EACH;;AA3cuB;;;;;;;;UAEvBhiB,iDAAKA;;;UAQLC,kDAAMA;;;UAMNA,kDAAMA;;;UAGND,iDAAKA;;;UAYLC,kDAAMA;;;UAGND,iDAAKA;;;UAQLC,kDAAMA;;;UAGND,iDAAKA;;;UAQLC,kDAAMA;;;UAGND,iDAAKA;;;UAQLC,kDAAMA;;;UAGND,iDAAKA;;;UAQLA,iDAAKA;;;UASLA,iDAAKA;;;UASLA,iDAAKA;;;UAaLC,kDAAMA;;;UAGND,iDAAKA;;;UAaLC,kDAAMA;;;UAENiE,wDAAYA;IAAAmJ,OAACqN,oBAAD,EAAuB;MAAEpN,IAAI,EAAElJ,uDAAWA;IAAnB,CAAvB;;;UAEZnE,kDAAMA;;;UACNA,kDAAMA;;;UACNA,kDAAMA;;;UACNA,kDAAMA;;;UACNA,kDAAMA;;;UACNA,kDAAMA;;;AAnIE0a,eAAe,uDAN3B3d,yDAAS,CAAC;EACP4C,QAAQ,EAAE,mBADH;EAEPC,UAAAA,+DAFO;EAIPgP,eAAe,EAAEf,0EAJV;;AAAA,CAAD,CAMkB,GAAf6M,eAAe,CAAf;;;;;;;;;;;;;;;;;;;;;;;;AC5TqF;AAClC;IAOnD,iBAAiB,SAAjB,iBAAiB;IAmE1B,YAAoB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;QAjE5C,mBAAc,GAAG,KAAK,CAAC;QAeb,qBAAgB,GAAG,IAAI,uDAAY,EAAO;QACpD,YAAY;QAEZ,qBAAqB;QACrB,qBAAgB,GAAG,cAAc,CAAC;QAWxB,sBAAiB,GAAG,IAAI,uDAAY,EAAO;QACrD,YAAY;QAEZ,kBAAkB;QAClB,kBAAa,GAAG,KAAK,CAAC;QAWZ,mBAAc,GAAG,IAAI,uDAAY,EAAO;QAClD,YAAY;QAEZ,kBAAkB;QAClB,kBAAa,GAAG,KAAK,CAAC;QAWZ,mBAAc,GAAG,IAAI,uDAAY,EAAO;QAGxC,qBAAgB,GAAG,IAAI,uDAAY,EAAO;IAGpD,CAAC;QA7DG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,GAAG,KAAK,IAAI,CAAC,eAAe,EAAE;YAC9B,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACnC;IACL,CAAC;QAQG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;QASG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;QASG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;IAUD,QAAQ;QACJ,iFAA4B,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACpC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,aAAa,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAEO,aAAa;QACjB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;gBACzE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC5E;aAAM;YACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC;SAC7H;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;;;;;;yBAnFA,gDAAK;+BAWL,iDAAM;0BAMN,gDAAK;gCASL,iDAAM;uBAMN,gDAAK;6BASL,iDAAM;uBAMN,gDAAK;6BASL,iDAAM;+BAGN,iDAAM;;AAjEE,iBAAiB;IAL7B,wDAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,2EAAyC;;KAE5C,CAAC;GACW,iBAAiB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRiD;AACxB;AAEO;AACE;AACT;IAO1C,0BAA0B,SAA1B,0BAA0B;IAyCnC,YAAY;IAEZ;QA1CA,qBAAgB,GAAG,EAAE,CAAC;QACtB,eAAU,GAAG,0EAAe,CAAC;QAE7B,gBAAW,GAAG,IAAI,4DAAK,EAAE,CAAC;QAqBhB,yBAAoB,GAAG,IAAI,uDAAY,EAAO;QACxD,YAAY;QAEZ,oBAAoB;QACpB,mBAAc,GAAc,+EAAqB,CAAC;QAWxC,oBAAe,GAAG,IAAI,uDAAY,EAAO;QAI/C,IAAI,CAAC,WAAW,GAAG,8EAA4B,CAAC,qEAAU,CAAC,CAAC;IAChE,CAAC;QApCG,cAAc;QACd,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QAClB,IAAI,GAAG,KAAK,IAAI,CAAC,mBAAmB,EAAE;YAClC,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;YAC/B,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE;gBAClB,IAAI,CAAC,WAAW,GAAG,oEAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBACjE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;aAC7C;iBAAM;gBACH,IAAI,CAAC,WAAW,GAAG,IAAI,4DAAK,EAAE,CAAC;gBAC/B,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;aACxC;YACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAC5D;IACL,CAAC;QAOG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,GAAG,KAAK,IAAI,CAAC,cAAc,EAAE;YAC7B,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAClD;IACL,CAAC;IAQD,QAAQ;QACJ,QAAQ,IAAI,CAAC,cAAc,EAAE;YACzB,KAAK,6EAAmB;gBACpB,IAAI,CAAC,UAAU,GAAG,0EAAe,CAAC;gBAClC,MAAM;YACV,KAAK,wEAAc;gBACf,IAAI,CAAC,UAAU,GAAG,0EAAe,CAAC;gBAClC,MAAM;YACV,KAAK,oFAA0B;gBAC3B,IAAI,CAAC,UAAU,GAAG,kFAAuB,CAAC;gBAC1C,MAAM;YACV,KAAK,oFAA0B;gBAC3B,IAAI,CAAC,UAAU,GAAG,iFAAsB,CAAC;gBACzC,MAAM;YACV,KAAK,8EAAoB;gBACrB,IAAI,IAAI,CAAC,mBAAmB,IAAI,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,KAAK,QAAQ,EAAE;oBAC/E,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;iBACnD;qBAAM;oBACH,IAAI,CAAC,UAAU,GAAG,0EAAe,CAAC;iBACrC;gBACD,MAAM;YACV;gBACI,IAAI,CAAC,UAAU,GAAG,0EAAe,CAAC;SACzC;IACL,CAAC;IAED,gBAAgB,CAAC,EAAE;QACf,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5C,IAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC;SACjD;IACL,CAAC;IAED,YAAY,CAAC,GAAG;QACZ,IAAI,IAAI,CAAC,mBAAmB,IAAI,GAAG,EAAE;YACjC,IAAI,CAAC,mBAAmB,CAAC,KAAK,GAAG,yEAAkB,CAAC,GAAG,CAAC,CAAC;YACzD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;SAClE;IACL,CAAC;;;;6BA5EA,gDAAK;mCAiBL,iDAAM;wBAKN,gDAAK;8BAUL,iDAAM;;AAxCE,0BAA0B;IALtC,wDAAS,CAAC;QACP,QAAQ,EAAE,+BAA+B;QACzC,qFAAmD;;KAEtD,CAAC;GACW,0BAA0B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZuE;AACvD;AACK;AACgB;AACc;AAEpB;AACC;AACV;AACE;AACI;AACJ;IAOlD,mBAAmB,SAAnB,mBAAmB;IAgD5B,YAAoB,KAAwB,EAAU,IAAiB,EAAU,SAA2B;QAAxF,UAAK,GAAL,KAAK,CAAmB;QAAU,SAAI,GAAJ,IAAI,CAAa;QAAU,cAAS,GAAT,SAAS,CAAkB;QA/C5G,iBAAY,GAAG,EAAE,CAAC;QAClB,mBAAc,GAAG,EAAE,CAAC;QAGpB,gBAAW,GAAG,EAAE,CAAC;QACjB,kBAAa,GAAG,EAAE,CAAC;QACnB,sBAAiB,GAAG,IAAI,CAAC;QACzB,oBAAe,GAAG,IAAI,CAAC;QACvB,cAAS,GAAG,EAAE,CAAC;QACf,kBAAa,GAAG,EAAE,CAAC;QACnB,uBAAkB,GAAG,CAAC,CAAC;QAOvB,gBAAW,GAAG,KAAK,CAAC;QAOpB,mBAAc,GAAG,EAAE,CAAC;QACpB,gBAAW,GAAG,EAAE,CAAC;QACjB,qBAAgB,GAAG,EAAE,CAAC;QAgPtB,mBAAc,GAAG,KAAK,CAAC;IA1NvB,CAAC;QAjBG,aAAa;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;QAC9B,IAAI,GAAG,KAAK,CAAC,EAAE;YACX,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACvB;aAAM,IAAI,GAAG,KAAK,CAAC,EAAE;YAClB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;SAC3B;IACL,CAAC;IASD,QAAQ;QACJ,MAAM,QAAQ,GAAG,gGAAqC,EAAE,CAAC;QACzD,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;YACpD,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;SACnD;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,2GAAgD,CAAC,CAAC,CAAC,EAAE;YACzE,IAAI,CAAC,EAAE;gBACH,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;aACzB;iBAAM;gBACH,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;aAC1B;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;gBAClD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC;aACxF;YACD,IAAI,IAAI,CAAC,kBAAkB,KAAK,CAAC,EAAE;gBAC/B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;aACvB;iBAAM,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrC,IAAI,CAAC,SAAS,GAAG;oBACb,aAAa,EAAE,MAAM;iBACxB,CAAC;aACL;QACL,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,kIAA+D,CAAC,CAAC,CAAC,EAAE;YACxF,IAAI,CAAC,EAAE;gBACH,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;aAC3B;iBAAM;gBACH,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;aAC5B;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;gBACpD,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC;aAC1F;YACD,IAAI,IAAI,CAAC,kBAAkB,KAAK,CAAC,EAAE;gBAC/B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;aAC3B;iBAAM,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvC,IAAI,CAAC,aAAa,GAAG;oBACjB,aAAa,EAAE,MAAM;iBACxB,CAAC;aACL;QACL,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,0GAA+C,CAAC,CAAC,CAAC,EAAE;YACxE,IAAI,CAAC,EAAE;gBACH,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;aACxB;iBAAM;gBACH,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aACzB;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,GAAG,GAAG,wFAAmC,EAAE,CAAC;QAEjD,MAAM,SAAS,GAAG,0GAAmD,EAAE,CAAC;QACxE,sFAAoC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACrD,IAAI,CAAC,CAAC,IAAI,EAAE;gBACR,IAAI,CAAC,YAAY,GAAG,qGAA0C,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC9E,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;gBACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;oBACpC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;oBACpB,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;oBACpC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;wBACvD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;wBAC5B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;oBACvD,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9F,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxF,CAAC,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW;QACP,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,SAAS,CAAC,EAAE;QACR,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,OAAO,EAAE;YAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,0FAA+B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACpD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC7B;IACL,CAAC;IAED,aAAa,CAAC,EAAE;QACZ,IAAI,EAAE,CAAC,KAAK,EAAE;YACV,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAClC,IAAI,IAAI,GAAG,sFAAgC,EAAE,CAAC;YAC9C,IAAI,IAAI,EAAE;gBACN,IAAI,MAAM,GAAG;oBACT,MAAM,EAAE;wBACJ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC;wBACjD,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC;wBAC7C,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE;wBAC9B,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;qBAC5C;iBACJ,CAAC;gBACF,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;oBAE5E,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;wBAChF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC5B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;wBAC3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;wBAC/B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;oBAC9B,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE;YACxD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAChD;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAClD;IACL,CAAC;IAED,cAAc,CAAC,MAAM;QACjB,yBAAyB;QACzB,oQAAoQ;QACpQ,2CAA2C;QAC3C,oCAAoC;QACpC,WAAW;QACX,SAAS;QACT,GAAG;QACH,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;IACrC,CAAC;IAED,iBAAiB;QACb,IAAI,UAAU,GAAG;YACb,MAAM,EAAE,IAAI,CAAC,UAAU;YACvB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;YACjD,OAAO,EAAE,EAAE;SACd,CAAC;QAEF,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;YAClC,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACnD,IAAI,MAAM,GAAG,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YACnD,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClC;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,IAAI,MAAM,GAAG,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YACjE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClC;QACD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACrD,IAAI,MAAM,GAAG,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YACnD,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClC;QACD,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,IAAI,MAAM,EAAE;YACtD,IAAI,OAAO,GAAG,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;YAChD,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACpC;QACD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,IAAI,MAAM,EAAE;YAChD,IAAI,OAAO,GAAG,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;YAC5C,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACpC;QAGD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAClD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,eAAe;QACX,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IACjC,CAAC;IAEC,oBAAoB;QAChB,6FAAkC,CAAC,mBAAmB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACpF,CAAC;IAED,YAAY;QACR,6FAAkC,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAChF,CAAC;IAID,YAAY,CAAC,KAAK;QACd,IAAI,IAAI,CAAC,kBAAkB,IAAI,CAAC,EAAE;YAC9B,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;gBAClD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC;aACxF;SACJ;aAAM,IAAI,IAAI,CAAC,kBAAkB,IAAI,CAAC,EAAE;YACrC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;gBACpD,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC;aAC1F;SACJ;aAAM,IAAI,IAAI,CAAC,kBAAkB,IAAI,CAAC,EAAE;YACrC,gDAAgD;YAChD,iCAAiC;YACjC,uCAAuC;YACvC,6CAA6C;YAC7C,GAAG;SACN;aAAM,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,kBAAkB,IAAI,CAAC,EAAE;YACxD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;aAC5B;SACJ;IACL,CAAC;IAMD,cAAc,CAAC,IAAI;QACf,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACnB,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,eAAe,GAAG,EAAE,CAAC;QACzB,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC3F,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,MAAM,CAAC,IAAI,IAAI,iFAAoB,EAAE;gBACrC,IAAI,CAAC,cAAc,GAAG,oBAAoB,CAAC;gBAC3C,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC9B,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAClC,IAAI,aAAa,EAAE;oBACf,IAAI,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;oBAClD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC1B,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;wBAEjC,CAAC,CAAC,CAAC;qBACN;oBACD,IAAI,CAAC,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;iBACjD;qBAAM;oBACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,yEAAY,EAAE,CAAC;iBAC9C;gBACD,IAAI,eAAe,EAAE;oBACjB,IAAI,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;oBACtD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC5B,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;wBAEnC,CAAC,CAAC,CAAC;qBACN;oBACD,IAAI,CAAC,kBAAkB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;iBACrD;qBAAM;oBACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,yEAAY,EAAE,CAAC;iBAChD;gBACD,gEAAgE;gBAChE,wCAAwC;gBACxC,iDAAiD;gBACjD,0DAA0D;gBAC1D,sFAAsF;gBACtF,kDAAkD;gBAClD,kEAAkE;gBAClE,mEAAmE;gBACnE,4CAA4C;gBAC5C,6BAA6B;gBAC7B,yCAAyC;gBACzC,2BAA2B;gBAC3B,qBAAqB;gBACrB,mBAAmB;gBACnB,aAAa;gBACb,iDAAiD;gBACjD,OAAO;gBACP,8BAA8B;gBAC9B,iCAAiC;gBACjC,KAAK;aACR;iBAAO;gBACJ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;gBAC7B,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5E,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,QAAQ,EAAE;oBACpC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;iBACjC;gBAED,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClF,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE;oBACtC,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC;iBACrC;gBACD,IAAI,CAAC,gBAAgB,GAAG;oBACpB,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,MAAM;iBACnB;gBACD,IAAI,CAAC,kBAAkB,GAAG;oBACtB,IAAI,EAAE,eAAe;oBACrB,QAAQ,EAAE,MAAM;iBACnB;aACJ;YACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC9B;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;;;;;;;;4BAzTA,iDAAK;yBAaL,qDAAS,SAAC,YAAY;0BACtB,qDAAS,SAAC,aAAa;6BACvB,qDAAS,SAAC,gBAAgB;;AA9ClB,mBAAmB;IAL/B,yDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,6EAA2C;;KAE9C,CAAC;GACW,mBAAmB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClB0D;AAC9B;AACE;AACW;AACN;AACE;AACqB;AACxB;IAMrD,sBAAsB,SAAtB,sBAAsB;IAmC/B,YAAoB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;QAVlC,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QAO5C,kBAAa,GAAG,IAAI,uDAAY,EAAO;QACvC,iBAAY,GAAG,IAAI,uDAAY,EAAO;IAGhD,CAAC;QA/BG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;YAC/D,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;gBAChC,4EAA0B,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBAChF,IAAI,IAAI,EAAE;wBACN,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;wBAC5B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;qBAC9B;gBACL,CAAC,CAAC,CAAC;aACN;SACJ;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;IAeO,eAAe;QACnB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO;YACjF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7C,IAAI,CAAC,UAAU,GAAG,0FAAkC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7F;aAAM;YACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SAC1B;IACL,CAAC;IAED,UAAU;QACN,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,MAAM,QAAQ,GAAG;gBACb,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,EAAE;gBACX,eAAe,EAAE,6EAAyB,CAAC,IAAI,CAAC,YAAY,CAAC;aAChE,CAAC;YACF,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;gBACtD,MAAM,IAAI,GAAG,EAAE,CAAC;gBAChB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC3C,IAAI,CAAC,IAAI,CAAC;wBACN,YAAY,EAAE,IAAI;wBAClB,YAAY,EAAE,KAAK,CAAC,IAAI;wBACxB,OAAO,EAAE,KAAK,CAAC,IAAI;wBACnB,IAAI,EAAE,yFAA+B,CAAC,KAAK,CAAC;qBAC/C,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBACH,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;aAC3B;YACD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7G,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aACzD;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;YACjC,kFAAqB,CAAC;gBAClB,WAAW,EAAE,+FAAoB;gBACjC,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;oBAChB,IAAI,MAAM,EAAE;wBACR,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;wBAC7B,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;4BAC3D,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gCAChB,MAAM,CAAC,MAAM,GAAG,IAAI,uEAAc,EAAE,CAAC;6BACxC;4BACD,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;yBACpC;6BAAM,IAAI,MAAM,CAAC,MAAM,EAAE;4BACtB,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;yBAC9B;wBACD,IAAI,CAAC,eAAe,EAAE,CAAC;wBACvB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;wBAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;qBAC5B;oBACD,OAAO,IAAI,CAAC;gBAChB,CAAC;aACJ,CAAC,CAAC;SACN;IACL,CAAC;;;;;;2BAxFA,gDAAK;iCAqBL,iDAAM;4BAON,iDAAM;2BACN,iDAAM;;AAjCE,sBAAsB;IAJlC,wDAAS,CAAC;QACP,QAAQ,EAAE,kBAAkB;QAC5B,+EAA6C;KAChD,CAAC;GACW,sBAAsB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbwB;AACN;AAC+B;AACnC;AAEW;AAC0B;AACzB;AACI;IAOpD,oBAAoB,SAApB,oBAAoB;IAQ7B,YAAmB,OAAgB,EAAS,gBAAkC;QAA3D,YAAO,GAAP,OAAO,CAAS;QAAS,qBAAgB,GAAhB,gBAAgB,CAAkB;QAC1E,yFAAiC,CAAC,CAAC,KAAK,EAAE,EAAE;YACxC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,0FAAkC,CAAC,CAAC,KAAK,EAAE,EAAE;YACzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,8FAAwC,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAI,CAAC,KAAmB;QACpB,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ;QACpC,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACxB,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACxB,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;aAC3C,mBAAmB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;aAC7B,aAAa,CAAC;YACX;gBACI,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,QAAQ;gBACjB,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,KAAK;aAClB;SACJ,CAAC,CAAC;QAEP,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAClC,gBAAgB;YAChB,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE;SACxD,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE;YACvE,8EAA4B,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACrE,IAAI,MAAM,EAAE;oBACR,IAAI,GAAG,GAAG,+DAAY,CAAC,+DAAM,EAAE,MAAM,CAAC,CAAC;oBACvC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;iBAChC;YACL,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,+DAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE;YAC/E,SAAS,EAAE,IAAI;SAClB,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,GAAG,GAAG,uFAAiC,CAAC,CAAC,KAAmB,EAAE,EAAE;YACjE,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,MAAqB,CAAC;YACtD,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBAC5E,IAAI,CAAC,KAAK,EAAE,CAAC;aAChB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK;QACD,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SAC1B;IACL,CAAC;;;;;;;0BAjEA,oDAAS,SAAC,aAAa;;AAHf,oBAAoB;IALhC,wDAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,6EAA2C;;KAE9C,CAAC;GACW,oBAAoB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfiB;AACmB;AACC;AACC;AACU;AACN;AACT;AACY;IAOjE,iBAAiB,SAAjB,iBAAiB;;QAC1B,eAAU,GAAG,eAAe,CAAC;IAmEjC,CAAC;IA/DG,QAAQ;IACR,CAAC;IAED,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;YACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;SACrC;QACD,IAAI,CAAC,UAAU,GAAG,0EAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChE,CAAC;IAED,eAAe;QACX,IAAI,MAAM,GAAG;YACT,UAAU,EAAE,IAAI;SACnB,CAAC;QACF,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE;YAC9C,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;SACvD;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,yBAAyB,CAAC,MAAM;QAC5B,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,MAAM,IAAI,4EAAe,EAAE;YAC3B,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE;oBAC5B,MAAM,GAAG,KAAK,CAAC;oBACf,8FAA2B,CAAC,IAAI,uEAAmB,CAAC,uCAAuC,CAAC,EAAE,IAAI,uEAAmB,CAAC,wBAAwB,CAAC,EAAE,sFAAoB,EAAE,yFAA0B,CAAC,CAAC;iBACtM;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,UAAU,CAAC,IAAgB;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;SACvD;IACL,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO;QAC1B,IAAI,IAAI,CAAC;QACT,IAAI,GAAG,EAAE;YACL,IAAI,GAAG;gBACH,UAAU,EAAE,GAAG;aAClB,CAAC;SACL;QACD,kFAAqB,CAAC;YAClB,WAAW,EAAE,iBAAiB;YAC9B,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE,UAAU,CAAC;gBAChB,IAAI,CAAC,IAAI,OAAO,EAAE;oBACd,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;iBACzB;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;;AAnEQ,iBAAiB;IAL7B,yDAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,2EAAyC;;KAE5C,CAAC;GACW,iBAAiB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdsF;AAC9C;AACuB;IAOhF,WAAW,SAAX,WAAW;;QAgBV,qBAAgB,GAAG,IAAI,uDAAY,EAAO;QA4E1C,sBAAiB,GAAG,IAAI,uDAAY,EAAc;IAIhE,CAAC;QAzFO,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;IAaD,QAAQ;QACJ,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAED,eAAe;QACX,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;YACnG,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;gBAChB,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;aAC7B;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,UAAU,GAAG,0EAAwB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrE,CAAC;IAED,gBAAgB;QACZ,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,iFAA+B,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC1F,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;IACL,CAAC;IAED,gBAAgB;QACZ,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,iFAA+B,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC1F,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;IACL,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,6EAA2B,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAClF,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;IACL,CAAC;IAED,mBAAmB;QACf,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,4EAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC3F,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;IACL,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,8EAA4B,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACnF,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;IACL,CAAC;IAED,kBAAkB;QACd,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,4EAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACzF,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;IACL,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,6EAA2B,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAChF,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;IACL,CAAC;IAGD,mBAAmB;QACf,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;;;yBAzFA,gDAAK;+BAUL,iDAAM;sBAGN,oDAAS,SAAC,SAAS;sBACnB,oDAAS,SAAC,SAAS;oBACnB,oDAAS,SAAC,OAAO;kBACjB,oDAAS,SAAC,KAAK;oBACf,oDAAS,SAAC,OAAO;kBACjB,oDAAS,SAAC,KAAK;mBACf,oDAAS,SAAC,MAAM;gCAmEhB,iDAAM;;AA5FE,WAAW;IALvB,wDAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,oEAAkC;;KAErC,CAAC;GACW,WAAW;AAAA;IAsGX,yBAAyB,SAAzB,yBAAyB;IAClC,QAAQ,CAAC,OAAwB;QAC7B,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,iFAA+B,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAClE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;SACnC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;;AANQ,yBAAyB;IAJrC,wDAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,yDAAa,EAAE,QAAQ,EAAE,yBAAyB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KAC5F,CAAC;GACW,yBAAyB;AAAA;IAazB,uBAAuB,SAAvB,uBAAuB;IAChC,QAAQ,CAAC,OAAwB;QAC7B,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,6EAA2B,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC9D,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;SACnC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;;AANQ,uBAAuB;IAJnC,wDAAS,CAAC;QACP,QAAQ,EAAE,aAAa;QACvB,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,yDAAa,EAAE,QAAQ,EAAE,uBAAuB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KAC1F,CAAC;GACW,uBAAuB;AAAA;IAavB,qBAAqB,SAArB,qBAAqB;IAC9B,QAAQ,CAAC,OAAwB;QAC7B,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,4EAA0B,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC7D,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;SACnC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;;AANQ,qBAAqB;IAJjC,wDAAS,CAAC;QACP,QAAQ,EAAE,WAAW;QACrB,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,yDAAa,EAAE,QAAQ,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KACxF,CAAC;GACW,qBAAqB;AAAA;IAarB,uBAAuB,SAAvB,uBAAuB;IAChC,QAAQ,CAAC,OAAwB;QAC7B,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,8EAA4B,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC/D,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;SACnC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;;AANQ,uBAAuB;IAJnC,wDAAS,CAAC;QACP,QAAQ,EAAE,aAAa;QACvB,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,yDAAa,EAAE,QAAQ,EAAE,uBAAuB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KAC1F,CAAC;GACW,uBAAuB;AAAA;IAavB,qBAAqB,SAArB,qBAAqB;IAC9B,QAAQ,CAAC,OAAwB;QAC7B,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,4EAA0B,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC7D,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;SACnC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;;AANQ,qBAAqB;IAJjC,wDAAS,CAAC;QACP,QAAQ,EAAE,WAAW;QACrB,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,yDAAa,EAAE,QAAQ,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KACxF,CAAC;GACW,qBAAqB;AAAA;IAarB,sBAAsB,SAAtB,sBAAsB;IAC/B,QAAQ,CAAC,OAAwB;QAC7B,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,6EAA2B,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC9D,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;SACnC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;;AANQ,sBAAsB;IAJlC,wDAAS,CAAC;QACP,QAAQ,EAAE,YAAY;QACtB,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,yDAAa,EAAE,QAAQ,EAAE,sBAAsB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KACzF,CAAC;GACW,sBAAsB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AChL4C;AACyB;IAO3F,0BAA0B,SAA1B,0BAA0B;IA0DnC,YAAoB,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;QA5CnC,gBAAW,GAAG,IAAI,uDAAY,EAAmB;QAC3D,YAAY;QAEZ,oBAAoB;QACpB,oBAAe,GAA4B,IAAI,uBAAuB,EAAE,CAAC;QAc/D,qBAAgB,GAAG,IAAI,uDAAY,EAA2B;QACxE,YAAY;QAEZ,mBAAmB;QACnB,mBAAc,GAAG,EAAE,CAAC;QAaV,oBAAe,GAAG,IAAI,uDAAY,EAAO;QACnD,YAAY;QAEJ,gBAAW,GAAqB,EAAE,CAAC;QAEjC,kBAAa,GAAG,IAAI,uDAAY,EAAE;QAClC,+BAA0B,GAAG,IAAI,uDAAY,EAAU;QACjE,gBAAW,GAAG,KAAK,CAAC;IAGpB,CAAC;QAtDG,KAAK;QACL,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IACD,IAAI,KAAK,CAAC,GAAoB;QAC1B,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;QASG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAA4B;QACvC,IAAI,CAAC,GAAG,EAAE;YACN,GAAG,GAAG,IAAI,uBAAuB,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;QASG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAClD;IACL,CAAC;IAcD,QAAQ;QACJ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;gBAChD,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;oBAC9D,IAAI,CAAC,EAAE;wBACH,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;qBACxB;oBACD,IAAI,CAAC,UAAU,EAAE,CAAC;gBACtB,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAED,iBAAiB;QACb,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,UAAU;QACN,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;gBACrF,IAAI,MAAM,IAAI,MAAM,CAAC,qBAAqB,EAAE;oBACxC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBACxC,MAAM,GAAG,GAAG,IAAI,uBAAuB,EAAE,CAAC;wBAC1C,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;wBAChB,IAAI,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE;4BAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;4BACvF,IAAI,QAAQ,EAAE;gCACV,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;6BAC9B;yBACJ;wBACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACpB,CAAC,CAAC,CAAC;iBACN;aACJ;YACD,IAAI,CAAC,eAAe,CAAC,qBAAqB,GAAG,KAAK,CAAC;SACtD;IACL,CAAC;IAED,aAAa,CAAC,IAAI;QACd,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;;;;;;oBA1GA,gDAAK;0BAUL,iDAAM;yBAMN,gDAAK;+BAYL,iDAAM;wBAMN,gDAAK;8BAWL,iDAAM;4BAKN,iDAAM;yCACN,iDAAM;;AAvDE,0BAA0B;IALtC,wDAAS,CAAC;QACP,QAAQ,EAAE,8BAA8B;QACxC,oFAAkD;;KAErD,CAAC;GACW,0BAA0B;AAAA;AAiHhC,MAAM,uBAAuB;;AAK7B,MAAM,uBAAuB;;QAEhC,0BAAqB,GAA8B,EAAE,CAAC;IAC1D,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACjIsE;IAO1D,kBAAkB,SAAlB,kBAAkB;;QAWnB,sBAAiB,GAAG,IAAI,uDAAY,EAAO;IACvD,CAAC;QATK,MAAM;QACR,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACZ,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;;;qBAPA,gDAAK;gCASL,iDAAM;;AAXI,kBAAkB;IAL9B,wDAAS,CAAC;QACT,QAAQ,EAAE,sBAAsB;QAChC,4EAA0C;;KAE3C,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACP+D;AACnC;AACS;AACF;IAOrD,mBAAmB,SAAnB,mBAAoB,SAAQ,oEAAc;IAanD,YAAY,KAAwB,EAA+C,IAAI;QACnF,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD4D,SAAI,GAAJ,IAAI;QAJvF,cAAS,GAAG,KAAK,CAAC;QAClB,aAAQ,GAAG,EAAE,CAAC;IAKd,CAAC;IAED,QAAQ;QACJ,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,mEAAkB,CAAC;QACpC,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,cAAc,GAAG,kFAAiC,EAAE,CAAC;YAC1D,IAAI,CAAC,QAAQ,GAAG,mEAAkB,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,oFAAmC,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACrF,IAAI,CAAC,QAAQ,GAAG,wEAAuB,CAAC;gBACxC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;SAEN;IACL,CAAC;IAED,kBAAkB;IAElB,CAAC;IAED,qBAAqB;QACjB,8EAA6B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC7B,CAAC;;AApCM,wBAAI,GAAQ,cAAe;AAC3B,2BAAO,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,cAAc;CACvB,CAAC;;;4CAMqC,iDAAM,SAAC,kFAA4B;;AAbjE,mBAAmB;IAL/B,wDAAS,CAAC;QACP,QAAQ,EAAE,mBAAmB;QAC7B,4EAAwC;QACxC,eAAe,EAAE,yEAA8B;KAClD,CAAC;GACW,mBAAmB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACV8D;AACnC;AACe;AACG;AACf;AACM;AACF;AACG;AACe;IAOvE,uBAAuB,SAAvB,uBAAwB,SAAQ,oEAAc;IAavD,YAAY,KAAwB,EAA+C,IAAI,EAAU,OAAmB;QAChH,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD4D,SAAI,GAAJ,IAAI;QAAU,YAAO,GAAP,OAAO,CAAY;QAJpH,cAAS,GAAG,KAAK,CAAC;QAClB,iBAAY,GAAG,EAAE,CAAC;IAKlB,CAAC;IAED,QAAQ;QACJ,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,mEAAkB,CAAC;QACpC,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,kBAAkB;IAElB,CAAC;IACD,OAAO;QACH,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,kBAAkB,GAAG,sFAAqC,EAAE,CAAC;YAClE,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,GAAG,uEAAsB,CAAC,CAAC;YACnF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,oFAAmC,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACrF,IAAI,CAAC,YAAY,GAAG,wEAAuB,CAAC;gBAC5C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;SAEN;IACL,CAAC;IACD,mBAAmB;QACf,IAAI,IAAI,CAAC,kBAAkB,IAAI,uBAAuB,EAAE;YACpD,kFAAqB,CAAC;gBAClB,WAAW,EAAE,sFAAiB;gBAC9B,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE;gBAC3C,KAAK,EAAE,gBAAgB;gBACvB,OAAO,EAAE,8EAAiB;gBAC1B,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;oBAChB,IAAI,MAAM,EAAE;wBACR,IAAI,IAAI,GAAG;4BACP,OAAO,EAAE,IAAI,4EAAgB,CAAC,MAAM,CAAC;4BACrC,IAAI,EAAE,MAAM;yBACf;wBACD,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;4BACrD,IAAI,CAAC,OAAO,EAAE,CAAC;4BACf,OAAO,IAAI,CAAC;wBAChB,CAAC,CAAC,CAAC;qBACN;yBAAM;wBACH,OAAO,IAAI,CAAC;qBACf;gBACL,CAAC;aACJ,CAAC,CAAC;SACN;aAAM;YACH,kFAAiC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC3D,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;SAC5B;IACL,CAAC;IACD,gBAAgB,CAAC,IAAI;QACjB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE;YAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC;;AAlEM,4BAAI,GAAQ,kBAAmB;AAC/B,+BAAO,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,kBAAkB;CAC3B,CAAC;;;4CAMqC,iDAAM,SAAC,kFAA4B;;;AAbjE,uBAAuB;IALnC,wDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,gFAA4C;QAC5C,eAAe,EAAE,yEAA8B;KAClD,CAAC;GACW,uBAAuB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACfoF;IAO3G,8BAA8B,SAA9B,8BAA8B;;AAA9B,8BAA8B;IAH1C,wDAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;KAC9B,CAAC;GACW,8BAA8B;AAAA;IAK9B,wBAAwB,SAAxB,wBAAwB;;AAAxB,wBAAwB;IAHpC,wDAAS,CAAC;QACP,QAAQ,EAAE,mBAAmB;KAChC,CAAC;GACW,wBAAwB;AAAA;IAOxB,eAAe,SAAf,eAAe;;QAKxB,sBAAiB,GAAG,EAAE,CAAC;QASvB,mBAAc,GAAG,EAAE,CAAC;QA2BV,mBAAc,GAAG,IAAI,uDAAY,EAAO;QACxC,mBAAc,GAAG,IAAI,uDAAY,EAAO;IA2BtD,CAAC;QA9DO,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAW;QACxB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;IACjC,CAAC;QAIG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAW;QACrB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;IAC9B,CAAC;QAIG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAW;QACrB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;IAC9B,CAAC;QAIG,cAAc;QACd,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IACD,IAAI,cAAc,CAAC,GAAW;QAC1B,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;IACnC,CAAC;IAKD,QAAQ;QACJ,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;SAChC;IACL,CAAC;IAED,IAAI;QACA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC/B;IACL,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;SAC5B;IACL,CAAC;;;oCAnEA,uDAAY,SAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,sDAAW,EAAE;sCAClE,uDAAY,SAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,sDAAW,EAAE;0BAC5D,oDAAS,SAAC,aAAa;2BAGvB,gDAAK;wBASL,gDAAK;wBASL,gDAAK;6BASL,gDAAK;6BAQL,iDAAM;6BACN,iDAAM;;AA1CE,eAAe;IAL3B,wDAAS,CAAC;QACP,QAAQ,EAAE,kBAAkB;QAC5B,wEAAsC;;KAEzC,CAAC;GACW,eAAe;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBiF;AACjD;AACS;AACG;AACgE;AACzD;AACA;AACE;AACN;AACR;AACD;AACY;AACT;IAOxD,aAAa,SAAb,aAAa;IA8JtB,YAAoB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;QA3J5C,sBAAiB,GAAG,CAAC,CAAC;QAEtB,kBAAa,GAAG,EAAE,CAAC;QAGnB,kBAAa,GAAG,IAAI,0EAAqB,EAAE,CAAC;QAC5C,mBAAc,GAAG,CAAC,CAAC,CAAC;QAEpB,mBAAc,GAAG,EAAE,CAAC;QAEpB,mBAAmB;QACnB,mBAAc,GAA+B,EAAE,CAAC;QActC,oBAAe,GAAG,IAAI,wDAAY,EAAO;QACnD,YAAY;QAEZ,yBAAyB;QACzB,yBAAoB,GAAG,EAAE,CAAC;QA6BhB,0BAAqB,GAAG,IAAI,wDAAY,EAAO;QACzD,YAAY;QAEZ,oBAAoB;QACpB,oBAAe,GAAkB,EAAE,CAAC;QAc1B,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QAkB1C,kBAAa,GAAG,IAAI,wDAAY,EAAO;QACjD,YAAY;QAEZ,mBAAmB;QACnB,mBAAc,GAAqB,0FAAyB,CAAC;QAcnD,oBAAe,GAAG,IAAI,wDAAY,EAAO;QA4C/C,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,YAAY,CAAC,gBAAgB,GAAG,aAAa,CAAC;QACnD,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;QACrC,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;QAEpC,IAAI,CAAC,kBAAkB,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;QAC/D,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,IAAI,CAAC;QAC3C,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG,IAAI,CAAC;QAE1C,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAErE,MAAM,eAAe,GAAG,6FAA2C,EAAE,CAAC;QACtE,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/C,MAAM,kBAAkB,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;YACtE,kBAAkB,CAAC,gBAAgB,GAAG,qBAAqB,CAAC;YAC5D,kBAAkB,CAAC,WAAW,GAAG,IAAI,CAAC;YACtC,kBAAkB,CAAC,QAAQ,GAAG,EAAE,CAAC;YACjC,kBAAkB,CAAC,UAAU,GAAG,IAAI,CAAC;YAErC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBACzB,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;gBACxD,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;gBACvB,IAAI,CAAC,IAAI,GAAG;oBACR,QAAQ,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI;oBACvB,IAAI,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI;iBACtB,CAAC;gBACF,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC/C,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;SAC3B;IACL,CAAC;QAjLG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;YAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAClD;IACL,CAAC;QASG,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;YAChC,MAAM,IAAI,GAAG,EAAE,CAAC;YAChB,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACpB,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACb,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;oBACxD,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;oBACvB,IAAI,CAAC,IAAI,GAAG;wBACR,QAAQ,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI;wBACvB,IAAI,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI;qBACtB,CAAC;oBACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAChB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC3B,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;aACjC;YACD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,IAAI,CAAC;YACxC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;SAC9D;IACL,CAAC;QASG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACpD;IACL,CAAC;QASG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,IAAI,CAAC,YAAY,KAAK,GAAG,EAAE;YAC3B,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;YACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC9C;IACL,CAAC;QASG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;YAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAClD;IACL,CAAC;IAGD,YAAY;IAEJ,WAAW,CAAC,EAA8B,EAAE,EAA8B,EAAE,IAAsB;QACtG,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,EAAE,EAAE;YACJ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACb,IAAI,KAAK,CAAC;gBACV,IAAI,OAAO,CAAC;gBACZ,QAAQ,IAAI,EAAE;oBACV,KAAK,0FAAyB;wBAC1B,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACb,KAAK,GAAG,GAAG,CAAC,QAAQ,GAAG,KAAK,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;wBAC/C,OAAO,GAAG,KAAK,CAAC;wBAChB,IAAI,GAAG,CAAC,OAAO,EAAE;4BACb,OAAO,GAAG,GAAG,CAAC,QAAQ,GAAG,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;yBACvD;wBACD,MAAM;oBACV,KAAK,8FAA6B;wBAC9B,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACb,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC;wBACjB,OAAO,GAAG,KAAK,CAAC;wBAChB,IAAI,GAAG,CAAC,OAAO,EAAE;4BACb,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;yBACnD;wBACD,MAAM;iBACb;gBACD,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;gBACxD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;gBACvB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;gBAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;gBACzD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC5C,IAAI,GAAG,YAAY,mGAAoC,EAAE;oBACrD,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;oBACxB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC;iBAChC;gBACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;SACN;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAwCD,cAAc,CAAC,eAAe;QAC1B,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,WAAW;QACP,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACnG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACpE,CAAC;IAED,gBAAgB;QACZ,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gBAChC,QAAQ,EAAE,CAAC,KAAK,EAAE;oBACd,KAAK,iGAAgC;wBACjC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACnB,MAAM;oBACV,KAAK,wFAAuB;wBACxB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACpB,MAAM;oBACV,KAAK,6FAA4B;wBAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBAClB,MAAM;oBACV,KAAK,2FAA0B;wBAC3B,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC;wBAC/C,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;wBAC3B,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC;wBAC7C,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC;wBACnB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAC5B,MAAM;oBACV;wBACI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACnB,MAAM;iBACb;YACL,CAAC,CAAC,CAAC;SACN;QACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;YAC7B,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,CAAC;SAClC;aAAM;YACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAChC;QACD,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACzF,CAAC;IAED,YAAY;QACR,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,KAAK,EAAE,EAAE;YACnE,IAAI;gBACA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aAC/C;YAAC,MAAM;gBACJ,IAAI,GAAG,KAAK,CAAC;aAChB;SACJ;aAAM;YACH,IAAI,GAAG,IAAI,CAAC;SACf;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IAED,gBAAgB;QACZ,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YACzC,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC,EAAE,GAAG,CAAC,CAAC;IACZ,CAAC;IAED,qBAAqB,CAAC,EAAE;QACpB,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,YAAY,mGAAoC,CAAC,EAAE;gBAClG,QAAQ,IAAI,CAAC,cAAc,EAAE;oBACzB,KAAK,0FAAyB;wBAC1B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACzC,MAAM;oBACV,KAAK,8FAA6B;wBAC9B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACrC,MAAM;iBACb;aACJ;SACJ;IACL,CAAC;IAED,qBAAqB,CAAC,EAAE;QACpB,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE;gBAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC7C;SACJ;IACL,CAAC;IAED,UAAU,CAAC,IAAI;QACX,IAAI,KAAK,GAAO,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,KAAK,EAAE;YACP,IAAI,GAAG,GAAG,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC;YAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACxC,IAAI,IAAI,CAAC;YACT,IAAI,MAAM,GAAG,GAAG,EAAE;gBACd,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;aACpD;iBAAM;gBACH,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;aACjD;YACD,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;YACnC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;YACxB,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC;YAC3B,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC;YACzB,KAAK,CAAC,KAAK,EAAE,CAAC;SACjB;IACL,CAAC;;;;;;wBAnTA,iDAAK;8BAYL,kDAAM;8BAMN,iDAAK;oCA2BL,kDAAM;yBAMN,iDAAK;+BAYL,kDAAM;sBAMN,iDAAK;4BAYL,kDAAM;wBAMN,iDAAK;8BAYL,kDAAM;;AAnHE,aAAa;IALzB,yDAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,6EAA2C;;KAE9C,CAAC;GACW,aAAa;AAAA;IA2Ub,mBAAmB,SAAnB,mBAAmB;IA8B5B,YAAoB,OAAuB,EAAU,KAAwB;QAAzD,YAAO,GAAP,OAAO,CAAgB;QAAU,UAAK,GAAL,KAAK,CAAmB;QA7B7E,cAAS,GAAG,EAAE,CAAC;QACf,oBAAe,GAAG,EAAE,CAAC;QACrB,eAAU,GAAG,EAAE,CAAC;QAChB,iBAAY,GAAqB,qFAAoB,CAAC;QACtD,cAAS,GAAqB,0FAAyB,CAAC;QACxD,YAAO,GAAG,EAAE,CAAC;IAyBb,CAAC;IAvBM,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;QAClC,mFAAqB,CAAC;YAClB,WAAW,EAAE,mBAAmB;YAChC,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,gBAAgB;YACvB,OAAO,EAAE,OAAO;SACnB,CAAC,CAAC;IACP,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS;QACrE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAClB,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;aACpF;iBAAM;gBACH,MAAM,GAAG,GAAG,CAAC,SAAS,IAAI,0FAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gBACzF,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE;oBAChB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACxB;aACJ;QACL,CAAC,CAAC;IACN,CAAC;IAKD,QAAQ;QACJ,MAAM,KAAK,GAAG;YACV,KAAK,EAAE,IAAI,CAAC,YAAY;SAC3B,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACnD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC3B,IAAI,MAAM,EAAE;gBACR,MAAM,SAAS,GAAG,EAAE,CAAC;gBACrB,IAAI,KAAK,GAAG,KAAK,CAAC;gBAClB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACf,IAAI,CAAC,CAAC,KAAK,IAAI,2FAA0B,EAAE;wBACvC,KAAK,GAAG,IAAI,CAAC;wBACb,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC;qBAC1C;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,EAAE;oBACzB,MAAM,UAAU,GAAG,EAAE,CAAC;oBACtB,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC1F,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;wBACvB,MAAM,IAAI,GAAG,IAAI,uEAAmB,CAAC,4BAA4B,CAAC,CAAC;wBACnE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC9C,+FAA2B,CAAC,IAAI,EAAE,IAAI,uEAAmB,CAAC,WAAW,CAAC,EAClE,sFAAoB,EAAE,qFAAsB,CAAC,CAAC;qBACrD;iBACJ;aACJ;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,EAAE;YACN,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;aACnC;YACD,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;aAC/C;YACD,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;aACzC;YACD,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;aACnC;YACD,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;aAC/B;SACJ;IACL,CAAC;IAED,eAAe;QACX,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IACrC,CAAC;;;;;;AArFQ,mBAAmB;IAL/B,yDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,QAAQ,EAAE,+GAA+G;YACrH,2FAA2F;KAClG,CAAC;GACW,mBAAmB;AAAA;AAwFzB,MAAM,YAAa,SAAQ,8EAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtbwB;AACX;AACmB;AACA;AACjB;IAOjD,cAAc,SAAd,cAAc;IAuHvB;QArHA,aAAQ,GAAG,EAAE,CAAC;QACd,mBAAc,GAAG,EAAE,CAAC;QAcV,kBAAa,GAAG,IAAI,uDAAY,EAAO;QACjD,YAAY;QACZ,mBAAmB;QACnB,mBAAc,GAAG,EAAE,CAAC;QAaV,oBAAe,GAAG,IAAI,uDAAY,EAAO;QACnD,YAAY;QACZ,sBAAsB;QACtB,sBAAiB,GAAG,CAAC,CAAC;QAWZ,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QACtD,YAAY;QACZ,yBAAyB;QACzB,yBAAoB,GAAG,EAAE,CAAC;QAoBhB,0BAAqB,GAAG,IAAI,uDAAY,EAAO;QACzD,YAAY;QACZ,qBAAqB;QACrB,qBAAgB,GAAG,UAAU,CAAC;QAWpB,sBAAiB,GAAG,IAAI,uDAAY,EAAO;QACrD,YAAY;QAEZ,mBAAmB;QACnB,mBAAc,GAAG,8FAA6B,CAAC;QAWrC,oBAAe,GAAG,IAAI,uDAAY,EAAO;QACnD,YAAY;QAEZ,mBAAmB;QACnB,sBAAiB,GAAG,qFAAoB,CAAC;QAW/B,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QAG5C,mBAAc,GAAG,IAAI,uDAAY,EAAO;QAG9C,MAAM,eAAe,GAAG,6FAA2C,EAAE,CAAC;QACtE,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/C,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;SAC3B;IACL,CAAC;QAtHG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;QAQG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAClD;IACL,CAAC;QAQG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;QAQG,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;YAChC,MAAM,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACpB,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACb,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;SAC9D;IACL,CAAC;QAQG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;QASG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;QASG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;IAiBD,cAAc,CAAC,eAAe;QAC1B,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,iBAAiB;QACb,MAAM,IAAI,GAAG;YACT,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,SAAS,EAAE,IAAI,CAAC,cAAc;YAC9B,YAAY,EAAE,IAAI,CAAC,iBAAiB;YACpC,OAAO,EAAE,IAAI,CAAC,OAAO;SACxB,CAAC;QACF,kFAA8B,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;YAC1C,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;gBAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC9B,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAC3B;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,gBAAgB;QACZ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;;;;sBAnJA,gDAAK;4BASL,iDAAM;wBAKN,gDAAK;8BAWL,iDAAM;2BAKN,gDAAK;iCASL,iDAAM;8BAKN,gDAAK;oCAkBL,iDAAM;0BAKN,gDAAK;gCASL,iDAAM;wBAMN,gDAAK;8BASL,iDAAM;2BAMN,gDAAK;iCASL,iDAAM;6BAGN,iDAAM;;AArHE,cAAc;IAL1B,wDAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,8EAA4C;;KAE/C,CAAC;GACW,cAAc;AAAA;;;;;;;;;;;;;;;;;;;;;ACX4C;IAM1D,qBAAqB,SAArB,qBAAqB;;QAYpB,kBAAa,GAAG,IAAI,uDAAY,EAAO;QAcvC,kBAAa,GAAG,IAAI,uDAAY,EAAO;IAYrD,CAAC;QAlCO,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAY;QACpB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;QAQG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAW;QACnB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;IAGD,YAAY;IAEZ,QAAQ;QACJ,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;YAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACxB;aAAM,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;YACpC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACvB;aAAM;YACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACvB;IACL,CAAC;;;sBAlCA,gDAAK;4BASL,iDAAM;sBAKN,gDAAK;4BASL,iDAAM;;AA1BE,qBAAqB;IAJjC,wDAAS,CAAC;QACP,QAAQ,EAAE,wBAAwB;QAClC,8EAA4C;KAC/C,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACN2E;AACpD;AAOI;IAShD,WAAW,SAAX,WAAW;IA4GpB,YAAoB,SAAuB,EAAU,KAAwB,EAAU,IAAiB;QAApF,cAAS,GAAT,SAAS,CAAc;QAAU,UAAK,GAAL,KAAK,CAAmB;QAAU,SAAI,GAAJ,IAAI,CAAa;QArD9F,gBAAW,GAAG,IAAI,uDAAY,EAAO;QAkCrC,UAAK,GAAG,IAAI,uDAAY,EAAO;IAoBzC,CAAC;QAnGG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;QAGG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;QAGG,KAAK;QACL,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IACD,IAAI,KAAK,CAAC,GAAG;QACT,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;YACtB,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,EAAE;gBAC9E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;aAC3G;iBAAM;gBACH,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;aAC3B;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE;gBAC9E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;aACjE;iBAAM;gBACH,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;aAC9B;YACD,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC1C;IACL,CAAC;IAID,eAAe;QACX,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE;YAC/D,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBAC/E,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;gBACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,eAAe,CAAC,GAAG;QACf,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;IAC9F,CAAC;IAED,iBAAiB;QACb,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,MAAM,EAAE;YAClD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE;gBAChG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;gBACnE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE;gBACnF,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACvC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,KAAK;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAID,UAAU;IACV,qBAAqB;IACrB,mCAAmC;IACnC,GAAG;IACH,wBAAwB;IACxB,gBAAgB;IAChB,sCAAsC;IACtC,6DAA6D;IAC7D,OAAO;IACP,GAAG;IAEH,wDAAwD;IAExD,aAAa;QACT,0BAA0B;IAC9B,CAAC;;;;;;;;wBAjGA,gDAAK;yBAWL,gDAAK;oBAYL,gDAAK;0BAuBL,iDAAM;oBAkCN,iDAAM;;AAzFE,WAAW;IALvB,wDAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,oEAAkC;;KAErC,CAAC;GACW,WAAW;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBxB;AAMA;AACA;AACA;AACA;AACA;AACA;IAIa6H,0BAA0B,SAA1BA,0BAA0B;AAA1BA,0BAA0B,sDAHtCre,wDAAS,CAAC;EACPvE,QAAQ,EAAE;AADH,CAAD,CAG6B,GAA1B4iB,0BAA0B,CAA1B;AAAAA;IAUAC,iBAAiB,SAAjBA,iBAAiB;EAiH7BpiB,YACSqiB,eADT,EAESxd,MAFT,EAGQ5E,KAHR,EAIQqiB,mBAJR,EAIgD;IAHvC;IACA;IACD;IACA;IAjHR,YAAO,EAAP;IAKA,iBAAqB,KAArB,CA4GgD,CArGhD;;IACA,4BAAuB,EAAvB;IAiBU,6BAAwB,IAAI5iB,uDAAJ,EAAxB;IAgBA,8BAAyB,IAAIA,uDAAJ,EAAzB,CAmEsC,CAlEhD;IAEA;;IACA,qBAAgB,KAAhB;IAYU,sBAAiB,IAAIA,uDAAJ,EAAjB,CAmDsC,CAlDhD;IACA;;IACA,wBAAmB,IAAnB;IAYU,yBAAoB,IAAIA,uDAAJ,EAApB,CAoCsC,CAnChD;IACA;;IACA,yBAAoB,EAApB;IAYU,0BAAqB,IAAIA,uDAAJ,EAArB,CAqBsC,CApBhD;;IACA,oBAA6B,IAAIqiB,yCAAJ,EAA7B;IAEA,eAAU,KAAV;IACA,YAAO,EAAP;IACQ,kBAAa,IAAIA,yCAAJ,EAAb;IACR,aAAQ,KAAKQ,UAAL,CAAgBC,YAAhB,EAAR;IAIA,oBAAwB,KAAxB;IAYC,KAAKtd,QAAL,GAAgB,IAAhB;IACAZ,+FAAA,CAAuCoe,GAAD,IAAQ;MAC7C,KAAKD,SAAL,GAAiBC,GAAjB;MACA,KAAKC,eAAL,CAAqBC,SAArB,EAAgC,aAAhC;IACA,CAHD;IAIAte,6FAAA,CAAqCoe,GAAD,IAAQ;MAC3C,KAAKC,eAAL,CAAqBC,SAArB,EAAgC,aAAhC;MACA,KAAK3iB,KAAL,CAAW0B,aAAX;IACA,CAHD;EAIA;;EA5GkB,IAAfqD,eAAe;IAClB,OAAO,KAAKsD,oBAAZ;EACA;;EAEkB,IAAftD,eAAe,CAACjE,GAAD,EAAI;IACtB,KAAKuH,oBAAL,GAA4BvH,GAA5B;IACA,KAAK4hB,eAAL,CAAqBC,SAArB,EAAgC,aAAhC;IACA,KAAKpa,qBAAL,CAA2B9G,IAA3B,CAAgC,KAAK4G,oBAArC;IACA,KAAKrI,KAAL,CAAW0B,aAAX;EACA;;EAEDkhB,aAAa,CAACrkB,KAAD,EAAe;IAC3B,KAAKskB,SAAL,GAAiBtkB,KAAjB;EACA;;EAQmB,IAAhBukB,gBAAgB;IACnB,OAAO,KAAKC,qBAAZ;EACA;;EAEmB,IAAhBD,gBAAgB,CAAChiB,GAAD,EAAI;IACvB,KAAKiiB,qBAAL,GAA6BjiB,GAA7B;IACA,KAAKkiB,sBAAL,CAA4BvhB,IAA5B,CAAiC,KAAKshB,qBAAtC;EACA;;EASW,IAARE,QAAQ;IACX,OAAO,KAAKC,aAAZ;EACA;;EAEW,IAARD,QAAQ,CAACniB,GAAD,EAAI;IACf,KAAKoiB,aAAL,GAAqBpiB,GAArB;IACA,KAAKqiB,cAAL,CAAoB1hB,IAApB,CAAyB,KAAKyhB,aAA9B;EACA;;EAQc,IAAXE,WAAW;IACd,OAAO,KAAKC,gBAAZ;EACA;;EAEc,IAAXD,WAAW,CAACtiB,GAAD,EAAI;IAClB,KAAKuiB,gBAAL,GAAwBviB,GAAxB;IACA,KAAKwiB,iBAAL,CAAuB7hB,IAAvB,CAA4B,KAAK4hB,gBAAjC;EACA;;EAQe,IAAZtkB,YAAY;IACf,OAAO,KAAKwkB,iBAAZ;EACA;;EAEe,IAAZxkB,YAAY,CAAC+B,GAAD,EAAI;IACnB,KAAKyiB,iBAAL,GAAyBziB,GAAzB;IACA,KAAK0iB,kBAAL,CAAwB/hB,IAAxB,CAA6B,KAAK8hB,iBAAlC;EACA;;EAeDE,cAAc;IACb,KAAKC,YAAL,GAAoB,CAAC,KAAKA,YAA1B;EACA;;EAmBD3mB,QAAQ;IACPsH,oGAAA,CAA4C9F,KAAD,IAAU;MACpD,IAAIA,KAAK,CAACmO,KAAN,IAAe,KAAnB,EAA0B;QACzB,OAAO,KAAKkX,IAAL,CAAUrlB,KAAK,CAAC0G,QAAhB,CAAP;MACA,CAFD,MAEO;QACN,KAAK2e,IAAL,CAAUrlB,KAAK,CAAC0G,QAAhB,IAA4B1G,KAAK,CAACmO,KAAlC;MACA;;MACD,IAAIrJ,MAAM,CAACC,IAAP,CAAY,KAAKsgB,IAAjB,EAAuBjlB,MAAvB,GAAgC,CAApC,EAAuC;QACtC,KAAKklB,OAAL,GAAe,IAAf;MACA,CAFD,MAEO;QACN,KAAKA,OAAL,GAAe,KAAf;MACA;;MACD,KAAK7jB,KAAL,CAAW0B,aAAX;IACA,CAZD;;IAaA,KAAKoiB,KAAL,CAAWzmB,SAAX,CAAsBqL,GAAD,IAAQ,CAC5B;IACA,CAFD;EAGA;;EAED1J,WAAW;IACV,IAAI,KAAK+kB,YAAT,EAAuB;MACtB,KAAKA,YAAL,CAAkBC,OAAlB;MACA,KAAKD,YAAL,GAAoB,IAApB;IACA;EACD;;EAEDE,cAAc,CAACC,OAAD,EAAY;IACzB,KAAKtf,MAAL,CAAYgI,QAAZ,CAAqB,CAAC,6BAAD,CAArB;EACA;;EAED8V,eAAe,CAACyB,SAAD,EAAsBC,OAAtB,EAAsC;IACpD,IACC,KAAKhB,WAAL,IACA,KAAKZ,SADL,IAEA,KAAKna,oBAFL,IAGA,KAAKA,oBAAL,CAA0B1J,MAA1B,GAAmC,CAJpC,EAKE;MACD,KAAK0lB,aAAL;MAEA,IAAI5B,GAAG,GAAG,KAAKD,SAAL,CAAe8B,SAAf,CACT,KAAK9B,SAAL,CAAelX,OAAf,CAAuB,UAAvB,IAAqC,CAD5B,CAAV;MAGA,KAAKiZ,OAAL,GAAe,KAAK/B,SAAL,CAAe8B,SAAf,CACd,CADc,EAEd,KAAK9B,SAAL,CAAelX,OAAf,CAAuB,UAAvB,IAAqC,CAFvB,CAAf;MAIA,IAAIkZ,KAAK,GAAG/B,GAAG,CAAC+B,KAAJ,CAAU,GAAV,CAAZ;MACA,IAAIC,QAAQ,GAAG,KAAKpc,oBAApB;;MACA,IAAImc,KAAK,IAAIA,KAAK,CAAC7lB,MAAN,GAAe,CAA5B,EAA+B;QAC9B,KAAK,IAAIoH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGye,KAAK,CAAC7lB,MAA1B,EAAkCoH,CAAC,EAAnC,EAAuC;UACtC,IAAI2e,IAAI,GAAGF,KAAK,CAACze,CAAD,CAAhB;UACA,IAAImB,KAAK,GAAG,IAAZ;UACAud,QAAQ,CAACxlB,OAAT,CAAkBf,IAAD,IAAS;YACzBA,IAAI,CAACmB,QAAL,GAAgB,KAAhB;;YACA,IAAInB,IAAI,CAACiJ,EAAL,CAAQwd,WAAR,MAAyBD,IAAI,CAACC,WAAL,EAA7B,EAAiD;cAChDzmB,IAAI,CAACmB,QAAL,GAAgB,IAAhB;cACA6H,KAAK,GAAGhJ,IAAI,CAAC8J,QAAb;YACA;UACD,CAND;;UAOA,IAAId,KAAJ,EAAW;YACVud,QAAQ,GAAGvd,KAAX;UACA;QACD;MACD,CA3BA,CA4BD;MACA;MACA;MAEA;;;MACA,KAAK0d,YAAL,CAAkB3nB,IAAlB,CAAuB,IAAvB;IACA;EACD;;EAEDonB,aAAa,CAACQ,KAAD,EAAO;IACnB,IAAI,CAACA,KAAL,EAAY;MACXA,KAAK,GAAG,KAAKxc,oBAAb;IACA;;IACDwc,KAAK,CAAC5lB,OAAN,CAAef,IAAD,IAAS;MACtBA,IAAI,CAACmB,QAAL,GAAgB,KAAhB;;MACA,IAAInB,IAAI,CAAC8J,QAAL,IAAiB9J,IAAI,CAAC8J,QAAL,CAAcrJ,MAAd,GAAuB,CAA5C,EAA+C;QAC9C,KAAK0lB,aAAL,CAAmBnmB,IAAI,CAAC8J,QAAxB;MACA;IACD,CALD;EAMA;;EAEKe,cAAc;IAAA;;IAAA;MACnB,IACC,KAAI,CAACga,qBAAL,IACA,OAAO,KAAI,CAACA,qBAAL,CAA2Bha,cAAlC,KAAqD,UAFtD,EAGE;QACD,aAAa,KAAI,CAACga,qBAAL,CAA2Bha,cAA3B,EAAb;MACA;;MACD,OAAO,IAAP;IAPmB;EAQnB,CA/N4B,CAiO7B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EAEA+b,sBAAsB,CAACC,GAAD,EAAMC,QAAN,EAAgBC,WAAW,GAAG,EAA9B,EAAgC;IACrD,IAAIC,UAAU,GAAG,IAAjB;IAEAH,GAAG,CAACjJ,IAAJ,CAAUtU,GAAD,IAAQ;MAChB,IAAIA,GAAG,CAACL,EAAJ,KAAW6d,QAAf,EAAyB;QACxBE,UAAU,GAAGD,WAAb;QACA,OAAO,IAAP,CAFwB,CAEX;MACb;;MACD,IAAIzd,GAAG,CAACQ,QAAR,EAAkB;QACjB,MAAMmd,aAAa,GAAGF,WAAW,CAACG,MAAZ,CAAmB5d,GAAnB,CAAtB,CADiB,CAC8B;;QAC/C0d,UAAU,GAAG,KAAKJ,sBAAL,CACZtd,GAAG,CAACQ,QADQ,EAEZgd,QAFY,EAGZG,aAHY,CAAb;QAKA,OAAOD,UAAU,KAAK,IAAtB,CAPiB,CAOW;MAC5B;;MACD,OAAO,KAAP;IACA,CAfD;IAiBA,OAAOA,UAAP;EACA;;EAEKzc,YAAY,CAACC,GAAD,EAAI;IAAA;;IAAA;MACrB,MAAI,CAAC2c,kBAAL,GAA0B3c,GAA1B;MACA,MAAMgc,IAAI,GAAG,EAAb;MACA,IAAI9e,QAAQ,GAAG,MAAI,CAACyC,oBAApB;;MACA,OAAOzC,QAAP,EAAiB;QAChB,MAAMkb,QAAQ,GAAGlb,QAAQ,CAACtH,IAAT,CAAeY,CAAD,IAAOA,CAAC,CAACG,QAAvB,CAAjB;;QACA,IAAIyhB,QAAQ,IAAIA,QAAQ,KAAKpY,GAA7B,EAAkC;UACjCgc,IAAI,CAACvnB,IAAL,CAAU2jB,QAAV;UACAlb,QAAQ,GAAGkb,QAAQ,CAAC9Y,QAApB;QACA,CAHD,MAGO;UACN;QACA;MACD;;MACD,MAAI,CAACsd,IAAL,GAAYZ,IAAZ;MACA,IAAIa,SAAJ;;MACA,IAAI,MAAI,CAACC,gBAAT,EAA2B;QAC1B,MAAI,CAACA,gBAAL,CAAsB1M,KAAtB;;QACA,IAAIpQ,GAAG,IAAIA,GAAG,CAACqB,OAAf,EAAwB;UACvB,IAAIrB,GAAG,CAAC+c,aAAR,EAAuB;YACtB,MAAMC,OAAO,GAAG,MAAI,CAACtD,eAAL,CAAqBuD,uBAArB,CACfjd,GAAG,CAACqB,OADW,CAAhB;;YAGA,MAAI,CAACga,YAAL,GAAoB,MAAI,CAACyB,gBAAL,CAAsBI,eAAtB,CAAsCF,OAAtC,CAApB;YACAH,SAAS,GAAG,MAAI,CAACxB,YAAL,CAAkBrgB,QAA9B;;YACA,IAAIgF,GAAG,CAACnB,QAAR,EAAkB;cACjBge,SAAS,CAAChe,QAAV,GAAqBmB,GAAG,CAACnB,QAAzB;YACA;UACD,CATD,MASO;YACN,MAAMme,OAAO,GACZ,MAAI,CAACtD,eAAL,CAAqBuD,uBAArB,CAA6C5D,2EAA7C,CADD;;YAEA,MAAI,CAACgC,YAAL,GAAoB,MAAI,CAACyB,gBAAL,CAAsBI,eAAtB,CAAsCF,OAAtC,CAApB;YACAH,SAAS,GAAG,MAAI,CAACxB,YAAL,CAAkBrgB,QAA9B;UACA;QACD;MACD;;MACD,IACC,MAAI,CAACqf,qBAAL,IACA,OAAO,MAAI,CAACA,qBAAL,CAA2Bta,YAAlC,KAAmD,UAFpD,EAGE;QACD,MAAI,CAACsa,qBAAL,CAA2Bta,YAA3B,CAAwCC,GAAxC,EAA6C6c,SAA7C;MACA;;MACD,MAAI,CAACvlB,KAAL,CAAW0B,aAAX;IAzCqB;EA0CrB;;EAEDmkB,YAAY,CAACnd,GAAD,EAAI;IACf;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IACC,KAAKqa,qBAAL,IACA,OAAO,KAAKA,qBAAL,CAA2B8C,YAAlC,KAAmD,UAFpD,EAGE;MACD,KAAK9C,qBAAL,CAA2B8C,YAA3B,CAAwCnd,GAAxC;IACA;EACD;;EAEKod,aAAa,CAAC9E,MAAD,EAAO;IAAA;;IAAA;MACzB,IAAI,MAAI,CAACoC,WAAT,EAAsB;QACrB,IAAI,MAAI,CAACre,eAAT,EAA0B;UACzB,IAAI2f,IAAI,GAAG,MAAI,CAACqB,QAAL,CAAc/E,MAAd,EAAsB,MAAI,CAACjc,eAA3B,CAAX;;UACA,IAAI0d,GAAG,GAAG,EAAV;UACA,IAAItI,KAAK,GAAG,CAAZ;UACAuK,IAAI,CAACzlB,OAAL,CAAc+mB,CAAD,IAAM;YAClB,IAAI7L,KAAK,GAAG,CAAZ,EAAe;cACdsI,GAAG,IAAI,GAAP;YACA;;YACDA,GAAG,IAAIuD,CAAP;YACA7L,KAAK,IAAI,CAAT;UACA,CAND;;UAQA,IAAI,MAAI,CAACoK,OAAL,CAAa,MAAI,CAACA,OAAL,CAAa5lB,MAAb,GAAsB,CAAnC,KAAyC,GAA7C,EAAkD;YACjD,MAAI,CAAC4lB,OAAL,IAAgB,GAAhB;UACA;;UACD,MAAI,CAAC3f,MAAL,CAAYgI,QAAZ,CAAqB,CAAC,MAAI,CAAC2X,OAAL,GAAe9B,GAAhB,CAArB;;UACAzB,MAAM,CAACiF,eAAP,CAAuBC,QAAvB,CAAgCC,YAAhC,GAA+C,IAA/C;;UACA,MAAI,CAAC1d,YAAL,CAAkBuY,MAAlB;QACA;MACD,CApBD,MAoBO;QACN,IAAIA,MAAM,IAAIA,MAAM,CAACiF,eAArB,EAAsC;UACrC,MAAMjF,MAAM,CAACiF,eAAP,CAAuBG,UAAvB,CAAkC,IAAlC,CAAN;QACA;MACD;IAzBwB;EA0BzB;;EAEDL,QAAQ,CAACrd,GAAD,EAAMmc,KAAN,EAAW;IAClB,IAAI7M,MAAM,GAAG,EAAb;;IACA,IAAItP,GAAG,IAAI,IAAP,IAAemc,KAAf,IAAwBA,KAAK,CAAClmB,MAAN,GAAe,CAA3C,EAA8C;MAC7C,KAAK,IAAIoH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8e,KAAK,CAAClmB,MAA1B,EAAkCoH,CAAC,EAAnC,EAAuC;QACtC,IAAI7H,IAAI,GAAG2mB,KAAK,CAAC9e,CAAD,CAAhB;;QACA,IAAI2C,GAAG,IAAIxK,IAAX,EAAiB;UAChB8Z,MAAM,CAAC7a,IAAP,CAAYe,IAAI,CAACiJ,EAAjB;QACA;;QACD,IAAIjJ,IAAI,CAAC8J,QAAL,IAAiB9J,IAAI,CAAC8J,QAAL,CAAcrJ,MAAd,GAAuB,CAA5C,EAA+C;UAC9C,IAAIV,MAAM,GAAG,KAAK8nB,QAAL,CAAcrd,GAAd,EAAmBxK,IAAI,CAAC8J,QAAxB,CAAb;;UACA,IAAI/J,MAAM,IAAIA,MAAM,CAACU,MAAP,GAAgB,CAA9B,EAAiC;YAChCqZ,MAAM,CAAC7a,IAAP,CAAYe,IAAI,CAACiJ,EAAjB;YACA6Q,MAAM,CAAC7a,IAAP,CAAY,GAAGc,MAAf;UACA;QACD;MACD;IACD;;IACD,OAAO+Z,MAAP;EACA;;EAGDqO,UAAU,CAAC3d,GAAD,EAAS;IAClB,IAAIA,GAAJ,EAAS;MACR,KAAK4d,iBAAL,GAAyB5d,GAAzB;IACA;EACD;;AAzX4B;;;;;;;;;;;;;;UAW5B9E,uDAAYA;IAAAmJ,OAACmV,0BAAD,EAA6B;MAAElV,IAAI,EAAElJ,sDAAWA;IAAnB,CAA7B;;;UAEZsO,oDAASA;IAAArF,OAAC,SAAD,EAAY;MAAEC,IAAI,EAAE4U,2DAAgBA;IAAxB,CAAZ;;;UAMTliB,gDAAKA;;;UAeLC,iDAAMA;;;UAMND,gDAAKA;;;UAULC,iDAAMA;;;UAMND,gDAAKA;;;UAULC,iDAAMA;;;UAKND,gDAAKA;;;UAULC,iDAAMA;;;UAKND,gDAAKA;;;UAULC,iDAAMA;;;UASNyS,oDAASA;IAAArF,OAACiV,gEAAD;;;AAzGEG,iBAAiB,sDAP7BzlB,wDAAS,CAAC;EACV4C,QAAQ,EAAE,SADA;EAEVC,UAAAA,gEAFU;EAIVgP,eAAe,EAAEf,yEAJP;EAKV+Y,aAAa,EAAE1E,iEALL;;AAAA,CAAD,CAOoB,GAAjBM,iBAAiB,CAAjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzBb;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAQawE,qBAAqB,SAArBA,qBAAqB;EAmH9B;EAEA5mB,YAAoBC,KAApB,EAAsD4E,MAAtD,EAA8Eyd,mBAA9E,EAA+HuE,WAA/H,EAAuJ;IAAnI;IAAkC;IAAwB;IAAiD;IApH/H,eAAU,MAAV;IACA,oBAAe,IAAf;IAQA,mBAAc,CAAC,CAAf;IAEA,uBAAkB,KAAlB;IACA,aAAQ,EAAR;IACA,gBAAW,EAAX;IAEA,UAAKJ,oDAAA,EAAL,CAqGuJ,CAjGvJ;;IACA,4BAAuB,EAAvB;IAkCU,6BAAwB,IAAI/mB,wDAAJ,EAAxB;IAgBA,yBAAoB,IAAIA,wDAAJ,EAApB,CA8C6I,CA7CvJ;IACA;;IACA,kBAAa,CAAb;IAYU,mBAAc,IAAIA,wDAAJ,EAAd;IA4BA,8BAAyB,IAAIA,wDAAJ,EAAzB;IAoBV,sBAAyB,CAAC,CAA1B;EAhBC;;EAnHU,IAAPokB,OAAO;IACP,OAAO,KAAKsC,YAAZ;EACH;;EACU,IAAPtC,OAAO,CAACtlB,KAAD,EAAM;IACb,KAAK4nB,YAAL,GAAoB5nB,KAApB;IACA8F,+FAAA,CAAsC;MAAEqI,KAAK,EAAEnO,KAAT;MAAgB0G,QAAQ,EAAE,KAAKkC;IAA/B,CAAtC;EACH;;EAekB,IAAfpC,eAAe;IACf,OAAO,KAAKsD,oBAAZ;EACH;;EACkB,IAAftD,eAAe,CAACjE,GAAD,EAAI;IACnB,IAAIA,GAAG,IAAI,KAAKuH,oBAAhB,EAAsC;MAClC,KAAKA,oBAAL,GAA4BvH,GAA5B;;MACA,IAAIA,GAAJ,EAAS;QACLA,GAAG,CAAC7B,OAAJ,CAAYC,CAAC,IAAG;UACZA,CAAC,CAAC+mB,eAAF,GAAoB,IAApB;UACA,IAAI7Z,IAAI,GAAG9H,qFAAA,EAAX;;UACA,IAAI8H,IAAJ,EAAU;YACN,IAAIA,IAAI,CAACE,eAAT,EAA0B;cACtBpN,CAAC,CAACumB,aAAF,GAAkB,IAAlB;YACH,CAFD,MAEO;cACH,IAAIvmB,CAAC,CAACqN,QAAN,EAAgB;gBACZrN,CAAC,CAACumB,aAAF,GAAkBvhB,kFAAA,CAA0BhF,CAAC,CAACqN,QAAF,CAAWE,IAArC,EAA2CvN,CAAC,CAACqN,QAAF,CAAWG,KAAtD,CAAlB;cACH,CAFD,MAEO;gBACHxN,CAAC,CAACumB,aAAF,GAAkB,IAAlB;cACH;YACJ;UACJ;QACJ,CAdD;MAeH;;MACD,IAAI,KAAKoB,eAAT,EAA0B;QACtB,KAAKC,SAAL;MACH;;MACD,KAAKve,qBAAL,CAA2B9G,IAA3B,CAAgC,KAAK4G,oBAArC;IACH;;IACD,KAAKrI,KAAL,CAAW0B,aAAX;EACH;;EAUc,IAAX0hB,WAAW;IACX,OAAO,KAAKC,gBAAZ;EACH;;EACc,IAAXD,WAAW,CAACtiB,GAAD,EAAI;IACf,KAAKuiB,gBAAL,GAAwBviB,GAAxB;IACA,KAAKwiB,iBAAL,CAAuB7hB,IAAvB,CAA4B,KAAK4hB,gBAAjC;EACH;;EAQQ,IAALlN,KAAK;IACL,OAAO,KAAK4Q,UAAZ;EACH;;EACQ,IAAL5Q,KAAK,CAACrV,GAAD,EAAI;IACT,KAAKimB,UAAL,GAAkBjmB,GAAlB;IACA,KAAKkmB,aAAL;IACA,KAAKC,WAAL,CAAiBxlB,IAAjB,CAAsB,KAAKslB,UAA3B;EACH;;EAUmB,IAAhBjE,gBAAgB;IAChB,OAAO,KAAKC,qBAAZ;EACH;;EACmB,IAAhBD,gBAAgB,CAAChiB,GAAD,EAAI;IACpB,KAAKiiB,qBAAL,GAA6BjiB,GAA7B;;IACA,IAAI,KAAKomB,wBAAT,EAAmC;MAC/B,KAAKA,wBAAL,CAA8B/nB,WAA9B;IACH;;IACD,IAAI2B,GAAG,IAAIA,GAAG,CAAC8jB,YAAf,EAA6B;MACzB,KAAKsC,wBAAL,GAAgCpmB,GAAG,CAAC8jB,YAAJ,CAAiBvnB,SAAjB,CAA2B,MAAK;QAC5D,IAAIqL,GAAG,GAAG,KAAKL,oBAAL,CAA0B/J,IAA1B,CAAgCC,KAAD,IAAU;UAC/C,OAAOA,KAAK,CAACc,QAAb;QACH,CAFS,CAAV;QAGA,KAAKgmB,kBAAL,GAA0B3c,GAA1B;QACA,KAAK1I,KAAL,CAAW0B,aAAX;MACH,CAN+B,CAAhC;IAOH;;IACD,KAAKshB,sBAAL,CAA4BvhB,IAA5B,CAAiC,KAAKshB,qBAAtC;EACH;;EAUDngB,WAAW,CAACC,OAAD,EAAuB;IAC9B,IAAI,KAAKyjB,iBAAT,EAA4B;MACxB,KAAKa,WAAL,CAAiB,KAAKb,iBAAtB;IACH;EACJ;;EACDvpB,QAAQ;IACJ,KAAKiqB,aAAL,GADI,CAEJ;;IACA,KAAK3E,mBAAL,CAAyB+E,YAAzB,CAAsC/pB,SAAtC,CAAiDqL,GAAD,IAAQ;MACpD,KAAKye,WAAL,CAAiBze,GAAjB;IACH,CAFD;EAGH;;EAED2e,OAAO,CAACjkB,KAAD,EAAc;IACjB,KAAKkkB,cAAL,GAAsBlkB,KAAtB;EACH;;EAEDmkB,OAAO;IACH,KAAKD,cAAL,GAAsB,CAAC,CAAvB;EACH;;EACD9e,eAAe;IACX,KAAKgf,YAAL;IACA,KAAKV,SAAL;IACA,KAAKD,eAAL,GAAuB,IAAvB;EACH;;EAEDG,aAAa;IACT,MAAMS,GAAG,GAAI,KAAKV,UAAL,GAAkB,CAA/B;IACA,MAAMW,GAAG,GAAG,KAAK,KAAKD,GAAtB;IACA,KAAKE,KAAL,CAAW,kBAAX,IAAiC,SAASD,GAAT,GAAe,GAAf,GAAqBA,GAArB,GAA2B,GAA3B,GAAiCA,GAAjC,GAAuC,GAAxE;;IACA,IAAID,GAAG,GAAG,CAAV,EAAa;MACT,KAAKE,KAAL,CAAW,OAAX,IAAsB,kBAAtB;MACA,KAAKC,QAAL,CAAc,kBAAd,IAAoC,UAAUF,GAAG,GAAG,EAAhB,IAAsB,GAAtB,IAA6BA,GAAG,GAAG,EAAnC,IAAyC,GAAzC,IAAgDA,GAAG,GAAG,EAAtD,IAA4D,GAAhG;;MACA,IAAID,GAAG,GAAG,CAAV,EAAa;QACT,KAAKG,QAAL,CAAc,OAAd,IAAyB,kBAAzB;MACH,CAFD,MAEO;QACH,KAAKA,QAAL,CAAc,OAAd,IAAyB,iBAAzB;MACH;IACJ,CARD,MAQO;MACH,KAAKA,QAAL,CAAc,kBAAd,IAAoC,iBAApC;MACA,KAAKA,QAAL,CAAc,OAAd,IAAyB,kBAAzB;IACH;EACJ;;EACDC,aAAa;IACT,KAAKjjB,MAAL,CAAYgI,QAAZ,CAAqB,CAAC,4BAAD,CAArB;EACH;;EACKua,WAAW,CAACze,GAAD,EAAI;IAAA;;IAAA;MACjB,MAAM,KAAI,CAAC0d,UAAL,CAAgB1d,GAAhB,CAAN;;MACA,IAAI,KAAI,CAACqa,qBAAL,IAA8B,OAAO,KAAI,CAACA,qBAAL,CAA2B8C,YAAlC,KAAmD,UAArF,EAAiG;QAC7F,KAAI,CAAC9C,qBAAL,CAA2B8C,YAA3B,CAAwCnd,GAAxC;MACH;IAJgB;EAKpB;;EAEK0d,UAAU,CAAC1d,GAAD,EAAI;IAAA;;IAAA;MAChB,IAAIA,GAAG,KAAK,MAAI,CAAC2c,kBAAjB,EAAqC;QACjC,IAAI,MAAI,CAACtC,qBAAL,IAA8B,OAAO,MAAI,CAACA,qBAAL,CAA2Bha,cAAlC,KAAqD,UAAvF,EAAmG;UAC/F,MAAMiP,MAAM,SAAS,MAAI,CAAC+K,qBAAL,CAA2Bha,cAA3B,EAArB;;UACA,IAAI,CAACiP,MAAL,EAAa;YACT;UACH;QACJ;;QACD,IAAI,MAAI,CAACoL,WAAT,EAAsB;UAClB,IAAI1a,GAAG,IAAI,IAAX,EAAiB;YACb,IAAI,MAAI,CAACqa,qBAAL,IAA8B,MAAI,CAACA,qBAAL,CAA2Bhe,eAA7D,EAA8E;cAC1E,IAAI2f,IAAI,GAAG,MAAI,CAACqB,QAAL,CAAcrd,GAAd,EAAmB,MAAI,CAACqa,qBAAL,CAA2Bhe,eAA9C,CAAX;;cACA,IAAI0d,GAAG,GAAG,EAAV;cACA,IAAItI,KAAK,GAAG,CAAZ;cACAuK,IAAI,CAACzlB,OAAL,CAAc+mB,CAAD,IAAM;gBACf,IAAI7L,KAAK,GAAG,CAAZ,EAAe;kBACXsI,GAAG,IAAI,GAAP;gBACH;;gBACDA,GAAG,IAAIuD,CAAP;gBACA7L,KAAK,IAAI,CAAT;cACH,CAND;;cAQA,MAAI,CAAC9R,oBAAL,CAA0BpJ,OAA1B,CAAkC,UAAUgZ,CAAV,EAAW;gBACzCA,CAAC,CAAC5Y,QAAF,GAAa,KAAb;cACH,CAFD;;cAGA,IAAIqJ,GAAJ,EAAS;gBACLA,GAAG,CAACrJ,QAAJ,GAAe,IAAf;gBACAwN,MAAM,CAACib,YAAP,CAAoB,MAAI,CAACC,WAAzB;gBACA,MAAI,CAAClE,OAAL,GAAe,KAAf;gBACA,MAAI,CAACmE,OAAL,GAAe,MAAf;cACH,CALD,MAKO;gBACH,MAAI,CAACnE,OAAL,GAAe,IAAf;gBACA,MAAI,CAACmE,OAAL,GAAe,MAAf;cACH;;cACD,IAAI,MAAI,CAACjF,qBAAL,CAA2BwB,OAA3B,CAAmC,MAAI,CAACxB,qBAAL,CAA2BwB,OAA3B,CAAmC5lB,MAAnC,GAA4C,CAA/E,KAAqF,GAAzF,EAA8F;gBAC1F,MAAI,CAACokB,qBAAL,CAA2BwB,OAA3B,IAAsC,GAAtC;cACH;;cACD,IAAI,MAAI,CAACxB,qBAAL,CAA2BP,SAA3B,CAAqClX,OAArC,CAA6C,MAAI,CAACyX,qBAAL,CAA2BwB,OAA3B,GAAqC9B,GAAlF,KAA0F,CAAC,CAA/F,EAAkG;gBAC9F,MAAI,CAAC7d,MAAL,CAAYgI,QAAZ,CAAqB,CAAC,MAAI,CAACmW,qBAAL,CAA2BwB,OAA3B,GAAqC9B,GAAtC,CAArB;cACH;;cACD,MAAI,CAAC4C,kBAAL,GAA0B3c,GAA1B;YACH;UACJ;QACJ,CAnCD,MAmCO;UACH,MAAI,CAACL,oBAAL,CAA0BpJ,OAA1B,CAAkC,UAAUgZ,CAAV,EAAW;YACzCA,CAAC,CAAC5Y,QAAF,GAAa,KAAb;UACH,CAFD;;UAGA,IAAIqJ,GAAJ,EAAS;YACLA,GAAG,CAACrJ,QAAJ,GAAe,IAAf;YACAwN,MAAM,CAACib,YAAP,CAAoB,MAAI,CAACC,WAAzB;YACA,MAAI,CAAClE,OAAL,GAAe,KAAf;YACA,MAAI,CAACmE,OAAL,GAAe,MAAf;UACH,CALD,MAKO;YACH,MAAI,CAACnE,OAAL,GAAe,IAAf;YACA,MAAI,CAACmE,OAAL,GAAe,MAAf;UACH;;UACD,MAAI,CAAC3C,kBAAL,GAA0B3c,GAA1B;;UACA,MAAI,CAAC1I,KAAL,CAAW0B,aAAX;QACH;;QACD,IAAI,MAAI,CAACqhB,qBAAL,IAA8B,OAAO,MAAI,CAACA,qBAAL,CAA2Bta,YAAlC,KAAmD,UAArF,EAAiG;UAC7F,MAAI,CAACsa,qBAAL,CAA2Bta,YAA3B,CAAwCC,GAAxC;QACH;MACJ;;MACD,MAAI,CAAC1I,KAAL,CAAW0B,aAAX;IA/DgB;EAgEnB;;EAGGumB,gBAAgB,CAAClD,GAAD,EAAMC,QAAN,EAAc;IAC1B,KAAK,IAAIxd,GAAT,IAAgBud,GAAhB,EAAqB;MACjB,IAAIvd,GAAG,CAACL,EAAJ,KAAW6d,QAAf,EAAyB;QACrB,OAAOxd,GAAP;MACH;;MACD,IAAIA,GAAG,CAACQ,QAAR,EAAkB;QACd,MAAMkgB,UAAU,GAAG,KAAKD,gBAAL,CAAsBzgB,GAAG,CAACQ,QAA1B,EAAoCgd,QAApC,CAAnB;;QACA,IAAIkD,UAAJ,EAAgB;UACZ,OAAOA,UAAP;QACH;MACJ;IACJ;;IACD,OAAO,IAAP,CAZ0B,CAYb;EAChB;;EAELnC,QAAQ,CAACrd,GAAD,EAAMmc,KAAN,EAAW;IACf,IAAI7M,MAAM,GAAG,EAAb;;IACA,IAAItP,GAAG,IAAI,IAAP,IAAemc,KAAf,IAAwBA,KAAK,CAAClmB,MAAN,GAAe,CAA3C,EAA8C;MAC1C,KAAK,IAAIoH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8e,KAAK,CAAClmB,MAA1B,EAAkCoH,CAAC,EAAnC,EAAuC;QACnC,IAAI7H,IAAI,GAAG2mB,KAAK,CAAC9e,CAAD,CAAhB;;QACA,IAAI2C,GAAG,IAAIxK,IAAX,EAAiB;UACb8Z,MAAM,CAAC7a,IAAP,CAAYe,IAAI,CAACiJ,EAAjB;QACH;;QACD,IAAIjJ,IAAI,CAAC8J,QAAL,IAAiB9J,IAAI,CAAC8J,QAAL,CAAcrJ,MAAd,GAAuB,CAA5C,EAA+C;UAC3C,IAAIV,MAAM,GAAG,KAAK8nB,QAAL,CAAcrd,GAAd,EAAmBxK,IAAI,CAAC8J,QAAxB,CAAb;;UACA,IAAI/J,MAAM,IAAIA,MAAM,CAACU,MAAP,GAAgB,CAA9B,EAAiC;YAC7BqZ,MAAM,CAAC7a,IAAP,CAAYe,IAAI,CAACiJ,EAAjB;YACA6Q,MAAM,CAAC7a,IAAP,CAAY,GAAGc,MAAf;UACH;QACJ;MACJ;IACJ;;IACD,OAAO+Z,MAAP;EACH;;EAED8O,SAAS;IACL,IAAIhG,QAAJ;;IACA,IAAI,KAAKzY,oBAAT,EAA+B;MAC3ByY,QAAQ,GAAG,KAAKzY,oBAAL,CAA0B/J,IAA1B,CAA+BY,CAAC,IAAIA,CAAC,CAACG,QAAtC,CAAX;IACH;;IACD,KAAK+mB,UAAL,CAAgBtF,QAAhB;EACH;;EAED0G,YAAY;IACR,IAAI,KAAKQ,OAAL,KAAiB,MAArB,EAA6B;MACzB,KAAKnE,OAAL,GAAe,IAAf;MACA4C,qFAAA,CAA8B,IAA9B;;MACA,IAAI,KAAKP,QAAT,EAAmB;QACf,KAAKA,QAAL,CAAckC,QAAd;MACH;;MACD,KAAKpoB,KAAL,CAAW0B,aAAX;MACA,KAAKqmB,WAAL,GAAmBlb,MAAM,CAACwb,UAAP,CAAkB,MAAK,CACzC,CADkB,EAChB,GADgB,CAAnB;IAEH;EACJ;;EAEDC,YAAY;IACR,IAAI,KAAKN,OAAL,KAAiB,MAArB,EAA6B;MACzBnb,MAAM,CAACib,YAAP,CAAoB,KAAKC,WAAzB;IACH;EACJ;;EAEDK,QAAQ;IACJ,KAAKvE,OAAL,GAAe,KAAf;;IACA,IAAI,KAAKqC,QAAT,EAAmB;MACf,KAAKA,QAAL,CAAckC,QAAd;IACH;;IACD,KAAKpoB,KAAL,CAAW0B,aAAX;;IACA,IAAI,KAAKsmB,OAAL,KAAiB,MAArB,EAA6B,CAC5B;EACJ;;EAEDO,QAAQ,CAACza,EAAD,EAAG;IACP,IAAIA,EAAE,IAAIA,EAAE,CAACuQ,MAAT,IAAmB,KAAKmK,OAAxB,IAAmC,KAAKA,OAAL,CAAaC,aAApD,EAAmE;MAC/D,KAAKD,OAAL,CAAaC,aAAb,CAA2BC,SAA3B,GAAuC5a,EAAE,CAACuQ,MAAH,CAAUqK,SAAjD;IACH;EACJ;;EAEDC,aAAa;IACT,IAAIvT,oEAAA,IAAuB,KAA3B,EAAkC;MAC9B,OAAO;QAAE,SAAW,KAAK2R,UAAL,GAAkB,EAAnB,GAAyB,EAA1B,GAAgC;MAA3C,CAAP;IACH,CAFD,MAEO;MACH,OAAO;QAAE,QAAU,KAAKA,UAAL,GAAkB,EAAnB,GAAyB,EAA1B,GAAgC;MAA1C,CAAP;IACH;EACJ;;EACD6B,sBAAsB;IAClB,IAAIxT,oEAAA,IAAuB,KAA3B,EAAkC;MAC9B,OAAO;QAAE,SAAS,KAAK4S,OAAL,IAAgB,MAAhB,GAA0B,CAAC,KAAKjB,UAAL,GAAkB,CAAnB,IAAwB,EAAzB,GAA+B,IAAxD,GAA+D,KAA1E;QAAiF,QAAQ;MAAzF,CAAP;IACH,CAFD,MAEO;MACH,OAAO;QAAE,QAAQ,KAAKiB,OAAL,IAAgB,MAAhB,GAA0B,CAAC,KAAKjB,UAAL,GAAkB,CAAnB,IAAwB,EAAzB,GAA+B,IAAxD,GAA+D,KAAzE;QAAgF,SAAS;MAAzF,CAAP;IACH;EACJ;;AA7U6B;;;;;;;;;;;;;;UAiB7B3U,qDAASA;IAAArF,OAAC,SAAD;;;UACTqF,qDAASA;IAAArF,OAAC,UAAD;;;UAKTrN,iDAAKA;;;UAgCLC,kDAAMA;;;UAOND,iDAAKA;;;UASLC,kDAAMA;;;UAKND,iDAAKA;;;UAULC,kDAAMA;;;UAOND,iDAAKA;;;UAqBLC,kDAAMA;;;UAMND,iDAAKA;;;AAxHGinB,qBAAqB,uDANjCjqB,yDAAS,CAAC;EACP4C,QAAQ,EAAE,cADH;EAEPC,UAAAA,6DAFO;EAIPgP,eAAe,EAAEf,0EAJV;;AAAA,CAAD,CAMwB,GAArBmZ,qBAAqB,CAArB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBb;AAYA;AACA;AACA;AACA;AAEA;AACA;AAEA;IAqBasC,cAAc,SAAdA,cAAc;EAoMvB;EAEAlpB,YAAoBC,KAApB,EAAsD4E,MAAtD,EAAoE;IAAhD;IAAkC;IArMtD,eAAU,MAAV;IACA,oBAAe,IAAf;IACA,8BAAyB,KAAzB;IACA,mBAAc,CAAC,CAAf;IA4BA,mBAAc,CAAC,CAAf;IAEA,uBAAkB,KAAlB;IACA,aAAQ,EAAR;IACA,gBAAW,EAAX;IAEA,UAAK4hB,oDAAA,EAAL;IAyBA,qBAAgB,CAAhB,CAuIoE,CAtGpE;;IACA,4BAAuB,EAAvB;IAmCU,6BAAwB,IAAI/mB,uDAAJ,EAAxB;IAiBA,yBAAoB,IAAIA,uDAAJ,EAApB,CAiD0D,CAhDpE;IACA;;IACA,kBAAa,CAAb;IAaU,mBAAc,IAAIA,uDAAJ,EAAd;IA6BA,8BAAyB,IAAIA,uDAAJ,EAAzB;IAoKA,qBAAgB,IAAIA,uDAAJ,EAAhB;EA/JT;;EAjMU,IAAPokB,OAAO;IACP,OAAO,KAAKsC,YAAZ;EACH;;EAEU,IAAPtC,OAAO,CAACtlB,KAAD,EAAM;IACb,KAAK4nB,YAAL,GAAoB5nB,KAApB;IACA8F,+FAAA,CAAsC;MAAEqI,KAAK,EAAEnO,KAAT;MAAgB0G,QAAQ,EAAE,KAAKkC;IAA/B,CAAtC;EACH;;EAEoB,IAAjB+hB,iBAAiB;IACjB,OAAO,KAAKC,sBAAZ;EACH;;EAEoB,IAAjBD,iBAAiB,CAAC3qB,KAAD,EAAM;IACvB,KAAK4qB,sBAAL,GAA8B5qB,KAA9B;EACH;;EAMDqE,WAAW,CAACC,OAAD,EAAuB;IAC9BkI,OAAO,CAACC,GAAR,CAAY,SAAZ,EAAuB,KAAK6X,SAA5B;IACA,IAAG,KAAKA,SAAR,EAAmB,KAAKuG,WAAL,CAAiB,KAAK/D,kBAAtB;EACtB;;EAaDgE,cAAc,CAAC5lB,KAAD,EAAa;IACvB,IAAI,CAAC,KAAK6lB,WAAV,EAAuB,OADA,CACQ;IAC/B;;IACA,MAAMC,UAAU,GAAG9V,QAAQ,CAAC+V,aAAT,CAAuB,kBAAvB,CAAnB;;IACA,IAAI,CAACD,UAAD,IAAe,CAACA,UAAU,CAACE,QAAX,CAAoBhmB,KAAK,CAAC4a,MAA1B,CAApB,EAA+D;MAC3D,KAAKiL,WAAL,GAAmB,KAAnB;IACH;EACJ;;EAKa,IAAVI,UAAU;IACV,OAAO,KAAKJ,WAAZ;EACH;;EAEa,IAAVI,UAAU,CAAC5oB,GAAD,EAAI;IACd,KAAKwoB,WAAL,GAAmBxoB,GAAnB;EACH;;EAKW,IAAR6oB,QAAQ;IACR,OAAO,KAAKC,aAAZ;EACH;;EAEW,IAARD,QAAQ,CAAC7oB,GAAD,EAAI;IACZ,KAAK8oB,aAAL,GAAqB9oB,GAArB;EACH;;EAED+oB,aAAa,CAACnhB,GAAD,EAAI;IACb,MAAMohB,aAAa,GAAG,EAAtB;;IACA,IAAIphB,GAAJ,EAAS;MACL,IAAIA,GAAG,EAAEud,eAAL,EAAsBc,UAAtB,IAAoC,CAApC,IAAyCre,GAAG,EAAEV,QAA9C,IAA0DU,GAAG,EAAEV,QAAL,EAAerJ,MAAf,GAAwB,CAAtF,EAAyF;QACrF,MAAMuZ,KAAK,GAAGxP,GAAG,EAAEV,QAAL,EAAe1J,IAAf,CAAoBY,CAAC,IAAIA,CAAC,EAAE8I,QAAH,IAAe,IAAxC,CAAd;;QACA,IAAI,CAACkQ,KAAL,EAAY;UACR,KAAK0R,aAAL,GAAqB,CAArB;QACH,CAFD,MAEO;UACH,KAAKA,aAAL,GAAqBE,aAArB;QACH;MACJ,CAPD,MAOO;QACH,IAAIphB,GAAG,EAAEud,eAAL,EAAsBc,UAAtB,IAAoC,CAAxC,EAA2C;UACvC,MAAMgD,SAAS,GAAGrhB,GAAG,EAAEV,QAAL,EAAe1J,IAAf,CAAoBY,CAAC,IAAIA,CAAC,CAACG,QAA3B,CAAlB;;UACA,IAAI0qB,SAAJ,EAAe;YACX,KAAKF,aAAL,CAAmBE,SAAnB;UACH;QACJ;MACJ;IACJ;EAEJ;;EAMkB,IAAfhlB,eAAe;IACf,OAAO,KAAKsD,oBAAZ;EACH;;EAEkB,IAAftD,eAAe,CAACjE,GAAD,EAAI;IACnB,IAAIA,GAAG,IAAI,KAAKuH,oBAAhB,EAAsC;MAClC,KAAKA,oBAAL,GAA4BvH,GAA5B;;MACA,IAAIA,GAAJ,EAAS;QACLA,GAAG,CAAC7B,OAAJ,CAAYC,CAAC,IAAG;UACZA,CAAC,CAAC+mB,eAAF,GAAoB,IAApB;UACA,IAAI7Z,IAAI,GAAG9H,qFAAA,EAAX;;UACA,IAAI8H,IAAJ,EAAU;YACN,IAAIA,IAAI,CAACE,eAAT,EAA0B;cACtBpN,CAAC,CAACumB,aAAF,GAAkB,IAAlB;YACH,CAFD,MAEO;cACH,IAAIvmB,CAAC,CAACqN,QAAN,EAAgB;gBACZrN,CAAC,CAACumB,aAAF,GAAkBvhB,kFAAA,CAA0BhF,CAAC,CAACqN,QAAF,CAAWE,IAArC,EAA2CvN,CAAC,CAACqN,QAAF,CAAWG,KAAtD,CAAlB;cACH,CAFD,MAEO;gBACHxN,CAAC,CAACumB,aAAF,GAAkB,IAAlB;cACH;YACJ;UACJ;QACJ,CAdD;MAeH;;MACD,IAAI,KAAKoB,eAAT,EAA0B;QACtB,KAAKC,SAAL;MACH;;MACD,KAAKve,qBAAL,CAA2B9G,IAA3B,CAAgC,KAAK4G,oBAArC;IACH;;IACD,KAAKrI,KAAL,CAAW0B,aAAX;EACH;;EAUc,IAAX0hB,WAAW;IACX,OAAO,KAAKC,gBAAZ;EACH;;EAEc,IAAXD,WAAW,CAACtiB,GAAD,EAAI;IACf,KAAKuiB,gBAAL,GAAwBviB,GAAxB;IACA,KAAKwiB,iBAAL,CAAuB7hB,IAAvB,CAA4B,KAAK4hB,gBAAjC;EACH;;EAQQ,IAALlN,KAAK;IACL,OAAO,KAAK4Q,UAAZ;EACH;;EAEQ,IAAL5Q,KAAK,CAACrV,GAAD,EAAI;IACT,KAAKimB,UAAL,GAAkBjmB,GAAlB;IACA,KAAKkmB,aAAL;IACA,KAAKC,WAAL,CAAiBxlB,IAAjB,CAAsB,KAAKslB,UAA3B;EACH;;EAUmB,IAAhBjE,gBAAgB;IAChB,OAAO,KAAKC,qBAAZ;EACH;;EAEmB,IAAhBD,gBAAgB,CAAChiB,GAAD,EAAI;IACpB,KAAKiiB,qBAAL,GAA6BjiB,GAA7B;;IACA,IAAI,KAAKomB,wBAAT,EAAmC;MAC/B,KAAKA,wBAAL,CAA8B/nB,WAA9B;IACH;;IACD,IAAI2B,GAAG,IAAIA,GAAG,CAAC8jB,YAAf,EAA6B;MACzB,KAAKsC,wBAAL,GAAgCpmB,GAAG,CAAC8jB,YAAJ,CAAiBvnB,SAAjB,CAA2B,MAAK;QAC5D,IAAIqL,GAAG,GAAG,KAAKL,oBAAL,CAA0B/J,IAA1B,CAAgCC,KAAD,IAAU;UAC/C,OAAOA,KAAK,CAACc,QAAb;QACH,CAFS,CAAV;QAGA,KAAKgmB,kBAAL,GAA0B3c,GAA1B;QACA,KAAK1I,KAAL,CAAW0B,aAAX;MACH,CAN+B,CAAhC;IAOH;;IACD,KAAKshB,sBAAL,CAA4BvhB,IAA5B,CAAiC,KAAKshB,qBAAtC;EACH;;EASDhmB,QAAQ;IACJ,KAAKiqB,aAAL;EACH;;EAEDxe,eAAe;IACX,KAAKse,SAAL;IACA,KAAKD,eAAL,GAAuB,IAAvB;EACH;;EACDuC,WAAW,CAAC1gB,GAAD,EAAI;IACXjF,KAAK,CAACumB,eAAN;IACA,KAAKV,WAAL,GAAmB,IAAnB;IACA,KAAKtpB,KAAL,CAAW0B,aAAX;IACA,KAAKylB,WAAL,CAAiBze,GAAjB;EACH;;EAGKye,WAAW,CAACze,GAAD,EAAI;IAAA;;IAAA;MACjB,MAAM,KAAI,CAAC0d,UAAL,CAAgB1d,GAAhB,CAAN;;MACA,IAAI,KAAI,CAACqa,qBAAL,IAA8B,OAAO,KAAI,CAACA,qBAAL,CAA2B8C,YAAlC,KAAmD,UAArF,EAAiG;QAC7F,KAAI,CAAC9C,qBAAL,CAA2B8C,YAA3B,CAAwCnd,GAAxC;MACH;IAJgB;EAKpB;;EAEDse,aAAa;IACT,MAAMS,GAAG,GAAI,KAAKV,UAAL,GAAkB,CAA/B;IACA,MAAMW,GAAG,GAAG,KAAK,KAAKD,GAAtB;IACA,KAAKE,KAAL,CAAW,kBAAX,IAAiC,SAASD,GAAT,GAAe,GAAf,GAAqBA,GAArB,GAA2B,GAA3B,GAAiCA,GAAjC,GAAuC,GAAxE;;IACA,IAAID,GAAG,GAAG,CAAV,EAAa;MACT,KAAKE,KAAL,CAAW,OAAX,IAAsB,kBAAtB;MACA,KAAKC,QAAL,CAAc,kBAAd,IAAoC,UAAUF,GAAG,GAAG,EAAhB,IAAsB,GAAtB,IAA6BA,GAAG,GAAG,EAAnC,IAAyC,GAAzC,IAAgDA,GAAG,GAAG,EAAtD,IAA4D,GAAhG;;MACA,IAAID,GAAG,GAAG,CAAV,EAAa;QACT,KAAKG,QAAL,CAAc,OAAd,IAAyB,kBAAzB;MACH,CAFD,MAEO;QACH,KAAKA,QAAL,CAAc,OAAd,IAAyB,iBAAzB;MACH;IACJ,CARD,MAQO;MACH,KAAKA,QAAL,CAAc,kBAAd,IAAoC,iBAApC;MACA,KAAKA,QAAL,CAAc,OAAd,IAAyB,kBAAzB;IACH;EACJ;;EAEKxB,UAAU,CAAC1d,GAAD,EAAI;IAAA;;IAAA;MAChB,MAAI,CAACmhB,aAAL,CAAmBnhB,GAAnB;;MACA,IAAIA,GAAG,KAAK,MAAI,CAAC2c,kBAAjB,EAAqC;QACjC,IAAI,MAAI,CAACtC,qBAAL,IAA8B,OAAO,MAAI,CAACA,qBAAL,CAA2Bha,cAAlC,KAAqD,UAAvF,EAAmG;UAC/F,MAAMiP,MAAM,SAAS,MAAI,CAAC+K,qBAAL,CAA2Bha,cAA3B,EAArB;;UACA,IAAI,CAACiP,MAAL,EAAa;YACT;UACH;QACJ;;QACD,IAAI,MAAI,CAACoL,WAAT,EAAsB;UAClB,IAAI1a,GAAG,IAAI,IAAX,EAAiB;YACb,IAAI,MAAI,CAACqa,qBAAL,IAA8B,MAAI,CAACA,qBAAL,CAA2Bhe,eAA7D,EAA8E;cAC1E,IAAI2f,IAAI,GAAG,MAAI,CAACqB,QAAL,CAAcrd,GAAd,EAAmB,MAAI,CAACqa,qBAAL,CAA2Bhe,eAA9C,CAAX;;cACA,IAAI0d,GAAG,GAAG,EAAV;cACA,IAAItI,KAAK,GAAG,CAAZ;cACAuK,IAAI,CAACzlB,OAAL,CAAc+mB,CAAD,IAAM;gBACf,IAAI7L,KAAK,GAAG,CAAZ,EAAe;kBACXsI,GAAG,IAAI,GAAP;gBACH;;gBACDA,GAAG,IAAIuD,CAAP;gBACA7L,KAAK,IAAI,CAAT;cACH,CAND;;cAQA,MAAI,CAAC9R,oBAAL,CAA0BpJ,OAA1B,CAAkC,UAAUgZ,CAAV,EAAW;gBACzCA,CAAC,CAAC5Y,QAAF,GAAa,KAAb;cACH,CAFD;;cAGA,IAAIqJ,GAAJ,EAAS;gBACLA,GAAG,CAACrJ,QAAJ,GAAe,IAAf;gBACAwN,MAAM,CAACib,YAAP,CAAoB,MAAI,CAACC,WAAzB,EAFK,CAGL;gBACA;cACH,CALD,MAKO,CACH;gBACA;cACH;;cACD,IAAI,MAAI,CAAChF,qBAAL,CAA2BwB,OAA3B,CAAmC,MAAI,CAACxB,qBAAL,CAA2BwB,OAA3B,CAAmC5lB,MAAnC,GAA4C,CAA/E,KAAqF,GAAzF,EAA8F;gBAC1F,MAAI,CAACokB,qBAAL,CAA2BwB,OAA3B,IAAsC,GAAtC;cACH;;cACD,IAAI,MAAI,CAACxB,qBAAL,CAA2BP,SAA3B,CAAqClX,OAArC,CAA6C,MAAI,CAACyX,qBAAL,CAA2BwB,OAA3B,GAAqC9B,GAAlF,KAA0F,CAAC,CAA/F,EAAkG;gBAC9F,MAAI,CAAC7d,MAAL,CAAYgI,QAAZ,CAAqB,CAAC,MAAI,CAACmW,qBAAL,CAA2BwB,OAA3B,GAAqC9B,GAAtC,CAArB;cACH;;cACD,MAAI,CAAC4C,kBAAL,GAA0B3c,GAA1B;YACH;UACJ;QACJ,CAnCD,MAmCO;UACH,MAAI,CAACL,oBAAL,CAA0BpJ,OAA1B,CAAkC,UAAUgZ,CAAV,EAAW;YACzCA,CAAC,CAAC5Y,QAAF,GAAa,KAAb;UACH,CAFD;;UAGA,IAAIqJ,GAAJ,EAAS;YACLA,GAAG,CAACrJ,QAAJ,GAAe,IAAf;YACAwN,MAAM,CAACib,YAAP,CAAoB,MAAI,CAACC,WAAzB;YACA,MAAI,CAAClE,OAAL,GAAe,KAAf;YACA,MAAI,CAACmE,OAAL,GAAe,MAAf;UACH,CALD,MAKO;YACH,MAAI,CAACnE,OAAL,GAAe,IAAf;YACA,MAAI,CAACmE,OAAL,GAAe,MAAf;UACH;;UACD,MAAI,CAAC3C,kBAAL,GAA0B3c,GAA1B;;UACA,MAAI,CAAC1I,KAAL,CAAW0B,aAAX;QACH;;QACD,IAAI,MAAI,CAACqhB,qBAAL,IAA8B,OAAO,MAAI,CAACA,qBAAL,CAA2Bta,YAAlC,KAAmD,UAArF,EAAiG;UAC7F,MAAI,CAACsa,qBAAL,CAA2Bta,YAA3B,CAAwCC,GAAxC;QACH;MACJ;;MACD,MAAI,CAAC1I,KAAL,CAAW0B,aAAX;IAhEgB;EAiEnB;;EAEDqkB,QAAQ,CAACrd,GAAD,EAAMmc,KAAN,EAAW;IACf,IAAI7M,MAAM,GAAG,EAAb;;IACA,IAAItP,GAAG,IAAI,IAAP,IAAemc,KAAf,IAAwBA,KAAK,CAAClmB,MAAN,GAAe,CAA3C,EAA8C;MAC1C,KAAK,IAAIoH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8e,KAAK,CAAClmB,MAA1B,EAAkCoH,CAAC,EAAnC,EAAuC;QACnC,IAAI7H,IAAI,GAAG2mB,KAAK,CAAC9e,CAAD,CAAhB;;QACA,IAAI2C,GAAG,IAAIxK,IAAX,EAAiB;UACb8Z,MAAM,CAAC7a,IAAP,CAAYe,IAAI,CAACiJ,EAAjB;QACH;;QACD,IAAIjJ,IAAI,CAAC8J,QAAL,IAAiB9J,IAAI,CAAC8J,QAAL,CAAcrJ,MAAd,GAAuB,CAA5C,EAA+C;UAC3C,IAAIV,MAAM,GAAG,KAAK8nB,QAAL,CAAcrd,GAAd,EAAmBxK,IAAI,CAAC8J,QAAxB,CAAb;;UACA,IAAI/J,MAAM,IAAIA,MAAM,CAACU,MAAP,GAAgB,CAA9B,EAAiC;YAC7BqZ,MAAM,CAAC7a,IAAP,CAAYe,IAAI,CAACiJ,EAAjB;YACA6Q,MAAM,CAAC7a,IAAP,CAAY,GAAGc,MAAf;UACH;QACJ;MACJ;IACJ;;IACD,OAAO+Z,MAAP;EACH;;EAED8O,SAAS;IACL,IAAIhG,QAAJ;;IACA,IAAI,KAAKzY,oBAAT,EAA+B;MAC3ByY,QAAQ,GAAG,KAAKzY,oBAAL,CAA0B/J,IAA1B,CAA+BY,CAAC,IAAIA,CAAC,CAACG,QAAtC,CAAX;IACH;;IACD,KAAK+mB,UAAL,CAAgBtF,QAAhB;EAEH;;EAED0G,YAAY,CAACzhB,CAAD,EAAE;IACV,KAAKkkB,WAAL,GAAmBlkB,CAAnB,CADU,CAEV;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;EACH;;EAEDuiB,YAAY,CAACviB,CAAD,EAAE;IACV,KAAKkkB,WAAL,GAAmB,CAAC,CAApB,CADU,CAEV;IACA;IACA;EACH;;EAED7B,QAAQ;IACJ,IAAI,KAAKJ,OAAL,KAAiB,MAArB,EAA6B;MACzB,KAAKnE,OAAL,GAAe,KAAf;MACA,KAAKjB,aAAL,CAAmBnhB,IAAnB,CAAwB,KAAxB;;MACA,IAAI,KAAKykB,QAAT,EAAmB;QACf,KAAKA,QAAL,CAAckC,QAAd;MACH;;MACD,KAAKpoB,KAAL,CAAW0B,aAAX;IACH;EACJ;;EAED6mB,QAAQ,CAACza,EAAD,EAAG;IACP,IAAIA,EAAE,IAAIA,EAAE,CAACuQ,MAAT,IAAmB,KAAKmK,OAAxB,IAAmC,KAAKA,OAAL,CAAaC,aAApD,EAAmE;MAC/D,KAAKD,OAAL,CAAaC,aAAb,CAA2BC,SAA3B,GAAuC5a,EAAE,CAACuQ,MAAH,CAAUqK,SAAjD;IACH;EACJ;;EAEDC,aAAa;IACT,IAAIvT,oEAAA,IAAuB,KAA3B,EAAkC;MAC9B,OAAO;QAAC,SAAW,KAAK2R,UAAL,GAAkB,EAAnB,GAAyB,EAA1B,GAAgC;MAA1C,CAAP;IACH,CAFD,MAEO;MACH,OAAO;QAAC,QAAU,KAAKA,UAAL,GAAkB,EAAnB,GAAyB,EAA1B,GAAgC;MAAzC,CAAP;IACH;EACJ;;EAED6B,sBAAsB;IAClB,IAAIxT,oEAAA,IAAuB,KAA3B,EAAkC;MAC9B,OAAO;QAAC,SAAS,KAAK4S,OAAL,IAAgB,MAAhB,GAA0B,CAAC,KAAKjB,UAAL,GAAkB,CAAnB,IAAwB,EAAzB,GAA+B,IAAxD,GAA+D,KAAzE;QAAgF,QAAQ;MAAxF,CAAP;IACH,CAFD,MAEO;MACH,OAAO;QAAC,QAAQ,KAAKiB,OAAL,IAAgB,MAAhB,GAA0B,CAAC,KAAKjB,UAAL,GAAkB,CAAnB,IAAwB,EAAzB,GAA+B,IAAxD,GAA+D,KAAxE;QAA+E,SAAS;MAAxF,CAAP;IACH;EACJ;;AAtYsB;;;;;;;;;;UAwBtBrnB,gDAAKA;;;UAeL0S,oDAASA;IAAArF,OAAC,SAAD;;;UACTqF,oDAASA;IAAArF,OAAC,UAAD;;;UAET8b,uDAAYA;IAAA9b,OAAC,gBAAD,EAAmB,CAAC,QAAD,CAAnB;;;UAYZrN,gDAAKA;;;UAWLA,gDAAKA;;;UAkCLA,gDAAKA;;;UAiCLC,iDAAMA;;;UAOND,gDAAKA;;;UAULC,iDAAMA;;;UAKND,gDAAKA;;;UAWLC,iDAAMA;;;UAOND,gDAAKA;;;UAsBLC,iDAAMA;;;UAoKNA,iDAAMA;;;AAtWEspB,cAAc,uDAlB1BvsB,wDAAS,CAAC;EACP4C,QAAQ,EAAE,cADH;EAEPC,UAAAA,6DAFO;EAIP2qB,UAAU,EAAE,CACR9W,6DAAO,CAAC,YAAD,EAAe,CAClB2V,2DAAK,CAAC,IAAD,EAAOhS,2DAAK,CAAC;IAACoT,SAAS,EAAE;EAAZ,CAAD,CAAZ,CADa,EAElBnB,gEAAU,CAAC,WAAD,EAAc,CACpBjS,2DAAK,CAAC;IAACoT,SAAS,EAAE;EAAZ,CAAD,CADe,EAEpBrB,6DAAO,CAAC,kBAAD,CAFa,CAAd,CAFQ,EAMlBE,gEAAU,CAAC,WAAD,EAAc,CACpBF,6DAAO,CAAC,kBAAD,EAAqB/R,2DAAK,CAAC;IAACoT,SAAS,EAAE;EAAZ,CAAD,CAA1B,CADa,CAAd,CANQ,CAAf,CADC,CAJL;EAgBP5b,eAAe,EAAEf,yEAhBV;;AAAA,CAAD,CAkBiB,GAAdyb,cAAc,CAAd;;;;;;;;;;;;;;;;;;;;;;;ACzCwG;IAQxG,mBAAmB,SAAnB,mBAAmB;IAc5B;QAVS,iBAAY,GAAY,KAAK;QAI5B,iBAAY,GAAG,IAAI,uDAAY,EAAO;QACtC,kBAAa,GAAG,IAAI,uDAAY,EAAO;QACvC,qBAAgB,GAAG,IAAI,uDAAY,EAAO;IAIpC,CAAC;IAEjB,QAAQ,KAAK,CAAC;IACd,KAAK,CAAC,IAAI;QACN,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,QAAQ;QACJ,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;;;;mBArBA,oDAAS,SAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;oBAClC,gDAAK;gCACL,gDAAK;2BACL,gDAAK;8BACL,gDAAK;8BACL,gDAAK;uBACL,gDAAK;2BACL,iDAAM;4BACN,iDAAM;+BACN,iDAAM;6BAEN,uDAAY,SAAC,sDAAW;;AAZhB,mBAAmB;IAL/B,wDAAS,CAAC;QACP,QAAQ,EAAE,aAAa;QACvB,mEAAiC;;KAEpC,CAAC;GACW,mBAAmB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRuC;AACZ;AACJ;AAC+B;IAUzE,iBAAiB,SAAjB,iBAAiB;IA4B1B;QAxBA,yBAAoB,GAAG,IAAI,6EAAY,EAAE,CAAC;QAmBhC,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QAG5C,wBAAmB,GAAG,IAAI,uDAAY,EAAgB;QAG5D,IAAI,CAAC,YAAY,GAAG,8EAA4B,CAAC,6EAAY,CAAC,CAAC;QAC/D,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;QAvBG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,GAAG,KAAK,IAAI,CAAC,iBAAiB,EAAE;YAChC,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;YAC7B,IAAI,GAAG,EAAE;gBACL,IAAI,CAAC,oBAAoB,GAAG,8DAAW,CAAC,6EAAY,EAAE,4DAAS,CAAC,GAAG,CAAC,CAAC,CAAC;aACzE;iBAAM;gBACH,IAAI,CAAC,oBAAoB,GAAG,IAAI,6EAAY,EAAE,CAAC;aAClD;YACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACxD;IACL,CAAC;IAYD,cAAc,CAAC,EAAE;QACb,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE;YACjB,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,qFAAoB,CAAC,CAAC,CAAC,kFAAiB,CAAC;YAChG,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC7B;IACL,CAAC;IAED,gBAAgB,CAAC,EAAE;QACf,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE;YACjB,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE;gBACxB,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;gBACvE,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;YACxE,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE;YACxB,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,CAAC;YAC1C,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;QAC3C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,oBAAoB,CAAC,aAAa,GAAG,CAAC,EAAE;YAC7C,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE;gBACxB,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,CAAC;gBAC1C,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;YAC3C,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;YACjE,QAAQ,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;gBACnC,KAAK,qFAAoB;oBACrB,IAAI,CAAC,oBAAoB,CAAC,OAAO,GAAG,IAAI,CAAC;oBACzC,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC;oBACtC,MAAM;gBACV,KAAK,sFAAqB;oBACtB,IAAI,CAAC,oBAAoB,CAAC,OAAO,GAAG,IAAI,CAAC;oBACzC,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC;oBACtC,MAAM;gBACV,KAAK,6FAA4B;oBAC7B,IAAI,CAAC,oBAAoB,CAAC,OAAO,GAAG,MAAM,CAAC;oBAC3C,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,MAAM,CAAC;oBACxC,MAAM;gBACV,KAAK,qFAAoB;oBACrB,IAAI,CAAC,oBAAoB,CAAC,OAAO,GAAG,OAAO,CAAC;oBAC5C,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,OAAO,CAAC;oBACzC,MAAM;aACb;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,eAAe;QACX,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;QACvE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,YAAY;QACR,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC;QAC7E,CAAC,CAAC,CAAC;IACP,CAAC;IAED,eAAe;QACX,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;QACnF,CAAC,CAAC,CAAC;IACP,CAAC;IAED,UAAU,CAAC,CAAC;QACR,IAAI,CAAC,oBAAoB,CAAC,aAAa,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,cAAc;QACV,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC;QACjF,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS,CAAC,CAAC;QACP,IAAI,CAAC,oBAAoB,CAAC,YAAY,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,cAAc;QACV,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC;QAC7E,CAAC,CAAC,CAAC;IACP,CAAC;IAED,iBAAiB,CAAC,MAAkB;QAChC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,6EAAY,EAAE,CAAC;SAC/C;QACD,MAAM,EAAE,CAAC;QACT,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC1D,CAAC;;;;2BAhIA,gDAAK;iCAeL,iDAAM;kCAGN,iDAAM;;AA1BE,iBAAiB;IAR7B,wDAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,2EAAyC;;KAK5C,CAAC;GACW,iBAAiB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACbyC;AACX;IAO/C,iBAAiB,SAAjB,iBAAiB;;QAalB,iBAAY,GAAG,IAAI,uDAAY,EAAO;QAetC,mBAAc,GAAG,IAAI,uDAAY,EAAO;QAsDlD,mBAAc,GAAC,EAAE,CAAC;IACpB,CAAC;QA9EK,MAAM;QACR,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACZ,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;QAQG,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACd,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;IAED,YAAY;IAEZ,SAAS;QACP,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;YAC7C,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;gBAC7B,KAAK,eAAe;oBAClB,IAAI,CAAC,cAAc,GAAG;wBACpB,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,uEAAc,EAAE;wBACnC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,0EAAiB,EAAE;wBACvC,EAAE,IAAI,EAAE,iEAAQ,CAAC,sEAAa,CAAC,EAAE,IAAI,EAAE,sEAAa,EAAE;qBACvD;oBACD,MAAM;gBACR,KAAK,cAAc,CAAC;gBACpB,KAAK,cAAc,CAAC;gBACpB,KAAK,eAAe;oBAClB,IAAI,CAAC,cAAc,GAAG;wBACpB,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,uEAAc,EAAE;wBACnC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,0EAAiB,EAAE;wBACvC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,yEAAgB,EAAE;wBACrC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,8EAAqB,EAAE;wBAC3C,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,yEAAgB,EAAE;wBACrC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,8EAAqB,EAAE;qBAC5C;oBACD,MAAM;gBACR,KAAK,gBAAgB;oBACnB,IAAI,CAAC,cAAc,GAAG;wBACpB,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,uEAAc,EAAE;wBACnC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,0EAAiB,EAAE;qBACxC;oBACD,MAAM;gBACR,KAAK,iBAAiB;oBACpB,IAAI,CAAC,cAAc,GAAG;wBACpB,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,uEAAc,EAAE;wBACnC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,0EAAiB,EAAE;wBACvC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,yEAAgB,EAAE;wBACrC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,8EAAqB,EAAE;wBAC3C,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,yEAAgB,EAAE;wBACrC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,8EAAqB,EAAE;qBAC5C;oBACD,MAAM;gBACR;oBACE,IAAI,CAAC,cAAc,GAAG;wBACpB,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,uEAAc,EAAE;wBACnC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,0EAAiB,EAAE;qBACxC;oBACD,MAAM;aACT;YACD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;gBACzB,IAAI,CAAC,aAAa,GAAG,uEAAc,CAAC;aACrC;SACF;IACH,CAAC;;;qBA5EA,gDAAK;2BASL,iDAAM;uBAMN,gDAAK;6BASL,iDAAM;;AA5BI,iBAAiB;IAL7B,wDAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,0EAAwC;;KAEzC,CAAC;GACW,iBAAiB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACRqF;AACvC;IAQ/D,iBAAiB,SAAjB,iBAAiB;;QAWhB,iBAAY,GAAG,IAAI,uDAAY,EAAO;QAWtC,mBAAc,GAAG,IAAI,uDAAY,EAAO;QAWxC,eAAU,GAAG,IAAI,uDAAY,EAAO;QAWpC,yBAAoB,GAAG,IAAI,uDAAY,EAAO;QAExD,kBAAa,GAAG;YACZ,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,IAAI;SACjB,CAAC;QAEF,gBAAW,GAAG,IAAI,2EAAmB,EAAE,CAAC;IAY5C,CAAC;QA3DO,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACV,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;QAKG,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;QAKG,IAAI;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,IAAI,IAAI,CAAC,GAAG;QACR,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;QACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;QAKG,cAAc;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QAClB,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAUD,WAAW;IAEX,CAAC;IACD,QAAQ;IAER,CAAC;IAED,eAAe;QACX,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAChC,CAAC;;;qBA3DA,gDAAK;2BAQL,iDAAM;uBAGN,gDAAK;6BAQL,iDAAM;mBAGN,gDAAK;yBAQL,iDAAM;6BAGN,gDAAK;mCAQL,iDAAM;;AA5CE,iBAAiB;IAN7B,wDAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;QAC9B,0EAAwC;QAExC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,iBAAiB;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACTyC;IAO1D,eAAe,SAAf,eAAe;IA6FxB;QA3FA,yBAAyB;QACzB,yBAAoB,GAAG,KAAK,CAAC;QAanB,0BAAqB,GAAG,IAAI,uDAAY,EAAO;QACzD,YAAY;QAEZ,oBAAoB;QACpB,oBAAe,GAAG,IAAI,CAAC;QAab,qBAAgB,GAAG,IAAI,uDAAY,EAAO;QAiB1C,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QAiB5C,qBAAgB,GAAG,IAAI,uDAAY,EAAO;QAgB1C,iBAAY,GAAG,IAAI,uDAAY,EAAO;QAEtC,iBAAY,GAAG,IAAI,uDAAY,EAAO;QAS5C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;IACzD,CAAC;QAzFG,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;YAChC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;SAC9D;IACL,CAAC;QASG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACpD;IACL,CAAC;QASG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;YAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACxD;IACL,CAAC;QASG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACpD;IACL,CAAC;QAQG,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACV,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC5C;IACL,CAAC;IAMD,MAAM,CAAC,WAAW;QACd,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE;YACjG,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,EAAE;YACpG,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC1D,CAAC;IAMD,SAAS,CAAC,KAAK,EAAE,KAAK;QAClB,OAAO,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC;IACvD,CAAC;IAED,cAAc;QACV,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;;;;8BAlGA,gDAAK;oCAWL,iDAAM;yBAMN,gDAAK;+BAWL,iDAAM;2BAMN,gDAAK;iCAWL,iDAAM;yBAMN,gDAAK;+BAWL,iDAAM;qBAKN,gDAAK;2BAWL,iDAAM;2BAEN,iDAAM;;AArFE,eAAe;IAL3B,wDAAS,CAAC;QACP,QAAQ,EAAE,kBAAkB;QAC5B,wEAAsC;;KAEzC,CAAC;GACW,eAAe;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPsD;AACb;AAEI;AACN;AACJ;AACG;IAOrD,qBAAqB,SAArB,qBAAqB;;QAE9B,kBAAa,GAAG,EAAE,CAAC;QACnB,kBAAa,GAAG,EAAE,CAAC;QACnB,gBAAW,GAAG,EAAE,CAAC;QACjB,sBAAiB,GAAG,KAAK,CAAC;QAC1B,aAAQ,GAAG,KAAK,CAAC;QAEjB,2BAA2B;QAC3B,2BAAsB,GAAG,IAAI,CAAC;QASpB,4BAAuB,GAAG,IAAI,uDAAY,EAAO;QAC3D,YAAY;QAEZ,oBAAoB;QACpB,oBAAe,GAAG,IAAI,CAAC;QASb,qBAAgB,GAAG,IAAI,uDAAY,EAAO;QACpD,YAAY;QAEZ,yBAAyB;QACzB,yBAAoB,GAAG,IAAI,CAAC;QASlB,0BAAqB,GAAG,IAAI,uDAAY,EAAO;QACzD,YAAY;QAEZ,iBAAiB;QACjB,iBAAY,GAAG,EAAE,CAAC;QAaR,kBAAa,GAAG,IAAI,uDAAY,EAAO;QACjD,YAAY;QAEZ,wBAAwB;QACxB,wBAAmB,GAAG,2FAAkC,EAAE,CAAC;QAYjD,yBAAoB,GAAG,IAAI,uDAAY,EAAO;QACxD,YAAY;QAEZ,mBAAmB;QACnB,mBAAc,GAAG,EAAE,CAAC;QASV,oBAAe,GAAG,IAAI,uDAAY,EAAO;QACnD,YAAY;QAEZ,yBAAyB;QACzB,yBAAoB,GAAG,EAAE,CAAC;QAUhB,0BAAqB,GAAG,IAAI,uDAAY,EAAO;QAmLzD,YAAY;IAChB,CAAC;QAjRO,iBAAiB;QACjB,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACvC,CAAC;IACD,IAAI,iBAAiB,CAAC,GAAG;QACrB,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAC;QAClC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;QAOG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;QAOG,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;QAChC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;QAOG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,GAAG,KAAK,IAAI,CAAC,YAAY,EAAE;YAC3B,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;YACxB,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC9C;IACL,CAAC;QAOG,cAAc;QACd,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QAClB,IAAI,GAAG,KAAK,IAAI,CAAC,mBAAmB,EAAE;YAClC,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;YAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAC5D;IACL,CAAC;QAOG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;QAQG,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;QAChC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC/D,CAAC;IAMD,MAAM,CAAC,UAAU,CAAC,IAA8B,EAAE,KAAa,EAAE,OAAO;QACpE,kFAAqB,CAAC;YAClB,WAAW,EAAE,qBAAqB;YAClC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACX,IAAI,CAAC,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;oBACpC,OAAO,CAAC,CAAC,CAAC,CAAC;iBACd;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,KAAK;SACf,CAAC,CAAC;IACP,CAAC;IAED,YAAY;QACR,MAAM,aAAa,GAAG,EAAE,CAAC;QACzB,MAAM,aAAa,GAAG,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YAClC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAC1B,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,EAAE;oBACtB,aAAa,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,QAAQ,EAAE,KAAK;qBAClB,CAAC,CAAC;iBACN;gBACD,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,EAAE;oBACtB,aAAa,CAAC,IAAI,CAAC;wBACf,YAAY,EAAE,IAAI;wBAClB,YAAY,EAAE,CAAC,CAAC,IAAI;wBACpB,OAAO,EAAE,CAAC,CAAC,IAAI;wBACf,IAAI,EAAE,iGAAuC,CAAC,CAAC,CAAC,IAAI,CAAC;qBACxD,CAAC,CAAC;iBACN;gBACD,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,EAAE;oBACpB,WAAW,CAAC,IAAI,CAAC;wBACb,IAAI,EAAE,CAAC,CAAC,IAAI;qBACf,CAAC,CAAC;iBACN;YACL,CAAC,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;SAC1B;QACD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAED,SAAS;QACL,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE;gBAClC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC3B,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC/E,CAAC,CAAC,CAAC;aACN;YACD,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE;gBACzG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aACvE;SACJ;IACL,CAAC;IAED,WAAW;QACP,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC;YACrC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;aACjC;SACJ;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAClD,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;YACtD,IAAI,MAAM,EAAE;gBACR,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC3B;YACD,IAAI,CAAC,mBAAmB,CAAC,OAAO,GAAG,UAAU,CAAC;SACjD;IACL,CAAC;IAED,SAAS,CAAC,KAAK;QACX,IAAI,KAAK,EAAE;YACP,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,OAAO,EAAE;gBACf,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC3B,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAClB,MAAM,GAAG,GAAG,IAAI,qEAAa,EAAE,CAAC;oBAChC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;oBAClB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC3B,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACvB,CAAC,CAAC,CAAC;aACN;YACD,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC1B,IAAI,CAAC,mBAAmB,CAAC,OAAO,GAAG,QAAQ,CAAC;aAC/C;SACJ;IACL,CAAC;IAED,cAAc,CAAC,KAAK,EAAE,IAAI;QACtB,IAAI,KAAK,IAAI,IAAI,CAAC,mBAAmB,EAAE;YACnC,IAAI,KAAK,CAAC,OAAO,EAAE;gBACf,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE;oBAClC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;wBAC9D,MAAM,GAAG,GAAG,IAAI,qEAAa,EAAE,CAAC;wBAChC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;wBAChB,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;qBAC9C;iBACJ;qBAAM;oBACH,MAAM,GAAG,GAAG,IAAI,qEAAa,EAAE,CAAC;oBAChC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;oBAChB,IAAI,CAAC,mBAAmB,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;iBAC5C;aACJ;iBAAM,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE;gBACzC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;oBACnE,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE;wBACnD,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qBACjD;iBACJ;aACJ;SACJ;IACL,CAAC;IAED,OAAO;QACH,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE;gBAC/B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,iEAAW,EAAE,CAAC,CAAC;aACzD;iBAAM;gBACH,IAAI,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC,IAAI,iEAAW,EAAE,CAAC,CAAC;aACvD;SACJ;IACL,CAAC;IAED,UAAU,CAAC,CAAC;QACR,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE;YAC3D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC9C;IACL,CAAC;IACD,gBAAgB;IAChB,UAAU,CAAC,IAAI;QACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,IAAI,EAAE;YACN,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,EAAE;gBAClC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;aAClC;YACD,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;gBAC3B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;aAC3B;YACD,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;gBAChC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;aAChC;YACD,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;aAC/B;YACD,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;aACzE;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;aACxC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;gBACrC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC;aACpD;SACJ;IACL,CAAC;IAED,eAAe;QACX,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;;;gCAhRA,gDAAK;sCAQL,iDAAM;yBAKN,gDAAK;+BAQL,iDAAM;8BAKN,gDAAK;oCAQL,iDAAM;sBAKN,gDAAK;4BAYL,iDAAM;6BAKN,gDAAK;mCAWL,iDAAM;wBAKN,gDAAK;8BAQL,iDAAM;8BAMN,gDAAK;oCAQL,iDAAM;8BAGN,oDAAS,SAAC,UAAU;;AA3GZ,qBAAqB;IALjC,wDAAS,CAAC;QACP,QAAQ,EAAE,yBAAyB;QACnC,+EAA6C;;KAEhD,CAAC;GACW,qBAAqB;AAAA;AA8R3B,MAAM,wBAAwB;;QACjC,sBAAiB,GAAG,IAAI,CAAC;QACzB,eAAU,GAAG,IAAI,CAAC;QAClB,oBAAe,GAAG,IAAI,CAAC;QACvB,YAAO,GAA2B,EAAE,CAAC;QACrC,mBAAc,GAAG,IAAI,uEAAc,EAAE,CAAC;IAG1C,CAAC;;AAEM,MAAM,oBAAoB;;QAG7B,cAAS,GAAG,IAAI,CAAC;QACjB,cAAS,GAAG,IAAI,CAAC;QACjB,YAAO,GAAG,IAAI,CAAC;IACnB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3TD;AACA;AACA;IAUaqB,YAAY,SAAZA,YAAY;EAmDrBvqB,YAAoB4E,OAApB,EAA2D3E,KAA3D,EAAmF;IAA/D;IAAuC;IAlD3D,qBAAgB;MACZ2N,eAAe,EAAE,IADL;MAEZC,QAAQ,EAAE;IAFE,CAAhB;IAMA,mBAAY,KAAZ;IA2BU,oBAAe,IAAInO,uDAAJ,EAAf,CAiByE,CAhBnF;IAEA;;IACA,2BAA+B,KAA/B;IAUU,4BAAuB,IAAIA,uDAAJ,EAAvB;IAEA,yBAAoB,IAAIA,uDAAJ,EAApB;IAgHA,mBAAc,IAAIA,uDAAJ,EAAd;IA9GN,KAAK8qB,OAAL,GAAe5lB,OAAf;EACH;;EAxCc,IAAX6lB,WAAW;IACX,OAAO,KAAKC,gBAAZ;EACH;;EACc,IAAXD,WAAW,CAAC1pB,GAAD,EAAI;IACf,KAAK2pB,gBAAL,GAAwB3pB,GAAxB;EACH;;EAGS,IAAN4pB,MAAM;IACN,OAAO,KAAKC,WAAZ;EACH;;EACS,IAAND,MAAM,CAAC5pB,GAAD,EAAI;IACV,IAAI,CAACA,GAAL,EAAU;MACN,KAAK6pB,WAAL,GAAmB,2KAAnB;IACH,CAFD,MAEO;MACH,KAAKA,WAAL,GAAmB7pB,GAAnB;IACH;;IACD,KAAK8pB,YAAL,CAAkBnpB,IAAlB,CAAuB,KAAKkpB,WAA5B;IACA,KAAK3qB,KAAL,CAAW0B,aAAX;EACH;;EAQiB,IAAdmpB,cAAc;IACd,OAAO,KAAKC,mBAAZ;EACH;;EACiB,IAAdD,cAAc,CAAC/pB,GAAD,EAAI;IAClB,KAAKgqB,mBAAL,GAA2BhqB,GAA3B;IACA,KAAKiqB,oBAAL,CAA0BtpB,IAA1B,CAA+B,KAAKqpB,mBAApC;EACH;;EAQDtiB,eAAe;IACX,KAAKwiB,WAAL;EACH;;EAEK9c,IAAI,CAACC,MAAD,EAAO;IAAA;;IAAA;MACb,KAAI,CAACA,MAAL,GAAcA,MAAd;MAEA8c,MAAM,CAACC,SAAP,CAAiBC,UAAjB,CAA4BC,kBAA5B,CAA+CC,YAA/C,CAA4D,EAA5D,EAHa,CAKb;;MACAJ,MAAM,CAACC,SAAP,CAAiBC,UAAjB,CAA4BC,kBAA5B,CAA+CE,kBAA/C,CAAkE;QAC9DjN,MAAM,EAAE4M,MAAM,CAACC,SAAP,CAAiBC,UAAjB,CAA4BI,YAA5B,CAAyCC,MADa;QAE9DC,oBAAoB,EAAE,IAFwC;QAG9DC,gBAAgB,EAAET,MAAM,CAACC,SAAP,CAAiBC,UAAjB,CAA4BQ,oBAA5B,CAAiDC,MAHL;QAI9DC,MAAM,EAAEZ,MAAM,CAACC,SAAP,CAAiBC,UAAjB,CAA4BW,UAA5B,CAAuCC,QAJe;QAK9DC,MAAM,EAAE,IALsD;QAM9DC,SAAS,EAAE,CAAC,qBAAD;MANmD,CAAlE;MAQAhB,MAAM,CAACC,SAAP,CAAiBC,UAAjB,CAA4BC,kBAA5B,CAA+Cc,qBAA/C,CAAqE;QACjEC,oBAAoB,EAAE,KAD2C;QAEjEC,kBAAkB,EAAE;MAF6C,CAArE,EAda,CAkBb;MACA;;MACA,IAAI,KAAI,CAACvB,cAAT,EAAyB;QACrBR,qFAAA,CAAyB,CAACwB,MAAD,EAAStoB,GAAT,KAAgB;UACrC,IAAIkkB,GAAG,GAAG,EAAV;UACAA,GAAG,IAAI,qBAAqBlkB,GAArB,GAA2B,KAAlC;UACAsoB,MAAM,CAACS,OAAP,CAAertB,OAAf,CAAuB,CAACstB,GAAD,EAAMhpB,GAAN,KAAa;YAChCkkB,GAAG,IAAI,KAAI,CAAC+E,mBAAL,CAAyBD,GAAzB,EAA8BhpB,GAA9B,CAAP;UACH,CAFD;UAGAkkB,GAAG,IAAI,GAAP;UAEA,IAAIgF,MAAM,GAAG,yBAAyBlpB,GAAzB,GAA+B,aAA5C;UACA0nB,MAAM,CAACC,SAAP,CAAiBC,UAAjB,CAA4BC,kBAA5B,CAA+CsB,WAA/C,CAA2DjF,GAA3D,EAAgEgF,MAAhE;QACH,CAVD;MAWH;;MACD,KAAI,CAAClC,OAAL,CAAaoC,gBAAb,CAA8B,KAAI,CAAClC,gBAAnC,EAAqD,KAAI,CAACI,cAA1D,EAA0ExtB,SAA1E,CAAqFY,MAAD,IAAW;QAC3F,IAAIA,MAAJ,EAAY;UACR,IAAI2uB,KAAK,GAAGvpB,MAAM,CAACC,IAAP,CAAYrF,MAAZ,CAAZ;;UACA,KAAK,IAAI8H,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6mB,KAAK,CAACjuB,MAA1B,EAAkCoH,CAAC,EAAnC,EAAuC;YACnC,IAAI8mB,IAAI,GAAGD,KAAK,CAAC7mB,CAAD,CAAhB;YACA,IAAI+mB,SAAS,GAAG7uB,MAAM,CAAC4uB,IAAD,CAAtB;YACA,IAAIJ,MAAM,GAAG,yBAAyBI,IAAzB,GAAgC,aAA7C;YACA5B,MAAM,CAACC,SAAP,CAAiBC,UAAjB,CAA4BC,kBAA5B,CAA+CsB,WAA/C,CAA2DI,SAA3D,EAAsEL,MAAtE;UACH;QACJ;MACJ,CAVD,EAjCa,CA6Cb;MACA;MACA;MACA;MACA;MACA;MAEA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;;;MACA,KAAI,CAACzB,WAAL;;MACA,KAAI,CAAC+B,WAAL,GAAmB,IAAnB;MACA,IAAI3e,IAAI,GAAG,KAAX;;MACA,KAAI,CAACD,MAAL,CAAYE,uBAAZ,CAAoC,UAAUC,CAAV,EAAW;QAC3CF,IAAI,CAAC4e,WAAL,CAAiBvrB,IAAjB,CAAsB6M,CAAtB;MACH,CAFD;;MAGA,KAAI,CAAC2e,iBAAL,CAAuBxrB,IAAvB,CAA4B,KAAI,CAAC0M,MAAjC;;MACA,KAAI,CAACnO,KAAL,CAAW0B,aAAX;IAnFa;EAoFhB;;EAEDspB,WAAW;IACP3C,UAAU,CAAC,MAAK;MACZ,IAAI,KAAKla,MAAT,EAAiB;QACb,KAAKA,MAAL,CAAYf,MAAZ;MACH;IACJ,CAJS,EAIP,GAJO,CAAV;EAKH;;EACD8f,SAAS,CAACzpB,KAAD,EAAM;IACX,KAAKunB,WAAL;EACH;;EAEDmC,cAAc;IACV,OAAO;MACH,cAAc,OADX;MAEH,aAAa,OAFV;MAGH,UAAU,KAAKJ,WAAL,GAAiB,MAAjB,GAAwB;IAH/B,CAAP;EAKH;;EAEDK,aAAa,CAAC3pB,KAAD,EAAM;IACf,KAAKupB,WAAL,CAAiBvrB,IAAjB,CAAsBgC,KAAtB;EACH;;EAEO+oB,mBAAmB,CAACD,GAAD,EAAac,IAAb,EAAwB;IAC/C,IAAIrV,MAAM,GAAG,EAAb;IAEAA,MAAM,IAAI,0BAA0BqV,IAA1B,GAAiC,GAA3C;IAEAd,GAAG,CAACe,UAAJ,CAAeruB,OAAf,CAAuB,CAACf,IAAD,EAAOqF,GAAP,KAAc;MACjC,IAAIgqB,IAAI,GAAG,EAAX;MACA,IAAIhvB,KAAK,GAAGL,IAAZ;;MACA,IAAIK,KAAK,CAACivB,QAAV,EAAoB;QAChBD,IAAI,IAAI,SAAR;MACH,CAFD,MAGK;QACDA,IAAI,IAAI,UAAR;MACH;;MACD,IAAIhvB,KAAK,CAACkvB,QAAV,EAAoB;QAChBF,IAAI,IAAI,SAAR;MACH;;MACD,IAAIhvB,KAAK,CAACmvB,UAAV,EAAsB;QAClBH,IAAI,IAAI,WAAR;MACH;;MACDA,IAAI,IAAIhvB,KAAK,CAACkO,IAAd;;MACA,IAAIlO,KAAK,CAACovB,KAAV,EAAiB;QACbJ,IAAI,IAAI,GAAR;QACAA,IAAI,IAAIhvB,KAAK,CAACovB,KAAd;MACH;;MACDJ,IAAI,IAAI,GAAR;MACAvV,MAAM,IAAIuV,IAAV;IACH,CAtBD;IAuBAhB,GAAG,CAACqB,SAAJ,CAAc3uB,OAAd,CAAsB,CAACf,IAAD,EAAOqF,GAAP,KAAc;MAChC,IAAIgqB,IAAI,GAAG,EAAX;MACA,IAAIhvB,KAAK,GAAGL,IAAZ;;MACA,IAAI,CAACK,KAAK,CAACsvB,gBAAX,EAA6B;QACzB,IAAItvB,KAAK,CAACivB,QAAV,EAAoB;UAChBD,IAAI,IAAI,SAAR;QACH,CAFD,MAGK;UACDA,IAAI,IAAI,UAAR;QACH;;QACD,IAAIhvB,KAAK,CAACkvB,QAAV,EAAoB;UAChBF,IAAI,IAAI,SAAR;QACH;;QACDA,IAAI,IAAIhvB,KAAK,CAACkO,IAAd;QACA8gB,IAAI,IAAI,GAAR;;QACA,KAAK,IAAIxnB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGxH,KAAK,CAACuvB,UAAN,CAAiBnvB,MAArC,EAA6CoH,CAAC,EAA9C,EAAkD;UAC9C,IAAIgoB,SAAS,GAAGxvB,KAAK,CAACuvB,UAAN,CAAiB/nB,CAAjB,CAAhB;UACAwnB,IAAI,IAAIQ,SAAS,CAACthB,IAAlB;;UACA,IAAIshB,SAAS,CAACC,UAAd,EAA0B;YACtBT,IAAI,IAAI,GAAR;UACH;;UACDA,IAAI,IAAI,GAAR;UACAA,IAAI,IAAIQ,SAAS,CAACJ,KAAlB;;UACA,IAAI5nB,CAAC,GAAG,CAAJ,GAAQxH,KAAK,CAACuvB,UAAN,CAAiBnvB,MAA7B,EAAqC;YACjC4uB,IAAI,IAAI,IAAR;UACH;QACJ;;QACDA,IAAI,IAAI,GAAR;;QACA,IAAIhvB,KAAK,CAAC0vB,WAAV,EAAuB;UACnBV,IAAI,IAAI,GAAR;UACAA,IAAI,IAAIhvB,KAAK,CAAC0vB,WAAd;QACH;;QACDV,IAAI,IAAI,GAAR;QACAvV,MAAM,IAAEuV,IAAR;MACH;IACJ,CAnCD;IAqCAvV,MAAM,IAAI,GAAV;IACA,OAAOA,MAAP;EACH;;AA1OoB;;;;;;;;;;UAYpBtY,gDAAKA;;;UAQLA,gDAAKA;;;UAcLC,iDAAMA;;;UAKND,gDAAKA;;;UASLC,iDAAMA;;;UAENA,iDAAMA;;;UAgHNA,iDAAMA;;;AAlKE2qB,YAAY,sDANxB5tB,wDAAS,CAAC;EACP4C,QAAQ,EAAE,kBADH;EAEPC,UAAAA,kEAFO;EAIPgP,eAAe,EAAEf,yEAJV;;AAAA,CAAD,CAMe,GAAZ8c,YAAY,CAAZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZyC;AACyB;AAC9B;AACV;AACsE;AACH;AACT;AACkB;AACxB;AACe;AACG;AACe;AACxC;AACf;AACY;AACG;AACD;AAC1B;AACJ;AACQ;AACD;AACY;AACT;AACH;AACU;AACV;IAM/C,YAAY,SAAZ,YAAY;IAmCrB;QAlCA,iBAAY,GAAG,EAAE,CAAC;QAClB,cAAS,GAAG,uFAA+B,CAAC,IAAI,uFAAS,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,8EAAY,EAAE,CAAC,CAAC;QAajG,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QAkB1C,gBAAW,GAAG,IAAI,wDAAY,EAAO;QAG3C,MAAM,OAAO,GAAG,sFAAgC,EAAE,CAAC;QACnD,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SAC1B;aAAM;YACH,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;SACrB;IACL,CAAC;QAlCG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;QAKG,KAAK;QACL,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IACD,IAAI,KAAK,CAAC,GAAG;QACT,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,GAAG,IAAI,GAAG,CAAC,YAAY,EAAE;YACzB,IAAI,CAAC,SAAS,GAAG,uFAA+B,CAAC,IAAI,uFAAS,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;SACjH;aAAM;YACH,IAAI,CAAC,SAAS,GAAG,uFAA+B,CAAC,IAAI,uFAAS,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,8EAAY,EAAE,CAAC,CAAC;SACnH;QACD,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAWD,QAAQ;QACJ,MAAM,SAAS,GAAG;YACd,GAAG,EAAE,sCAAsC;YAC3C,EAAE,EAAE,gBAAgB;YACpB,OAAO,EAAE,kBAAkB;YAC3B,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,QAAQ,EAAE,CAAC;oBACP,EAAE,EAAE,MAAM;oBACV,OAAO,EAAE,+FAAyB;oBAClC,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,EAAE,WAAW,CAAC;oBACpD,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iBACzD,EAAE;oBACC,EAAE,EAAE,OAAO;oBACX,OAAO,EAAE,+FAAyB;oBAClC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;oBAC9B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iBACzD,CAAC;SACL,CAAC;QACF,IAAI,CAAC,OAAO,GAAG;YACX,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,EAAE,EAAE,SAAS,CAAC,EAAE;YAChB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,SAAS;YACxB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,OAAO,EAAE,IAAI,iEAAe,CAAC,SAAS,CAAC,OAAO,CAAC;SAClD,CAAC;IACN,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,MAAM,KAAK,GAAG,gEAAY,CAAC,kEAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACvD,IAAI,CAAC,YAAY,GAAG,oFAA0B,CAAC,KAAK,CAAC,CAAC;SACzD;aAAM;YACH,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;SAC1B;QACD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;IACzC,CAAC;IAED,UAAU,CAAC,EAAE;QACT,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,KAAK,EAAE,EAAE;gBACrC,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,EAAE,CAAC;aACrC;YACD,IAAI,CAAC,SAAS,GAAG,uFAA+B,CAAC,IAAI,uFAAS,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;SAC7H;IACL,CAAC;;;;yBApFA,iDAAK;+BAQL,kDAAM;oBAGN,iDAAK;0BAeL,kDAAM;;AAjCE,YAAY;IAJxB,yDAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,qEAAmC;KACtC,CAAC;GACW,YAAY;AAAA;AA8FlB,MAAM,UAAU;IAGnB,MAAM,CAAC,eAAe,CAAC,IAAI;QACvB,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACZ,IAAI,CAAC,IAAI,GAAG,IAAI,2DAAI,EAAE,CAAC;aAC1B;YACD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnC;aAAM;YACH,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC9B;IACL,CAAC;IAED,MAAM,CAAC,SAAS;QACZ,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,cAAc;QACd,iFAAe,CAAC;YACZ,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAkB,CAAC;YAChD,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,IAAI,EAAE,QAAQ;aACjB;SACJ,CAAC,CAAC;QACH,oBAAoB;QACpB,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,MAAM,WAAW,GAAG,uFAAiC,EAAE,CAAC;QACxD,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,WAAW,GAAG,IAAI,CAAC;SACtB;aAAM;YACH,MAAM,cAAc,GAAG,0FAAoC,EAAE,CAAC;YAC9D,WAAW,GAAG,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;SAC7D;QAED,YAAY;QACZ,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,GAAG;YACR,QAAQ,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBAC3E,WAAW,EAAE,aAAa;aAC7B;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,gBAAgB;YACpB,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,WAAW;gBACxB,iBAAiB,EAAE,OAAO;gBAC1B,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE,iFAAkB;gBAClC,WAAW,EAAE,OAAO;gBACpB,WAAW,EAAE,QAAQ;aACxB;SACJ,CAAC,CAAC;QACH,mBAAmB;QACnB,iFAAe,CAAC;YACZ,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAkB,CAAC;YAChD,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,IAAI,EAAE,kBAAkB;aAC3B;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,yBAAyB;YAC7B,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,iIAA6B,CAAC;YAC3D,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,GAAG;YACR,QAAQ,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,CAAC;wBACN,UAAU,EAAE,iBAAiB;wBAC7B,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,iBAAiB;qBAC7B,EAAE;wBACC,UAAU,EAAE,mBAAmB;wBAC/B,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,YAAY;qBACxB,EAAE;wBACC,UAAU,EAAE,kBAAkB;wBAC9B,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,kBAAkB;qBAC9B,CAAC;aACL;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,uBAAuB;YAC3B,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,iIAA6B,CAAC;YAC3D,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,CAAC;wBACN,UAAU,EAAE,yBAAyB;wBACrC,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,OAAO;qBACnB,EAAE;wBACC,UAAU,EAAE,4BAA4B;wBACxC,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,YAAY;qBACxB,EAAE;wBACC,UAAU,EAAE,4BAA4B;wBACxC,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,UAAU;qBACtB,CAAC;aACL;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAkB,CAAC;YAChD,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,IAAI,EAAE,qBAAqB;aAC9B;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,4BAA4B;YAChC,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,iIAA6B,CAAC;YAC3D,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,GAAG;YACR,QAAQ,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,CAAC;wBACN,UAAU,EAAE,oBAAoB;wBAChC,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,iBAAiB;qBAC7B,EAAE;wBACC,UAAU,EAAE,sBAAsB;wBAClC,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,YAAY;qBACxB,EAAE;wBACC,UAAU,EAAE,qBAAqB;wBACjC,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,kBAAkB;qBAC9B,CAAC;gBACF,WAAW,EAAE,4BAA4B;aAC5C;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,0BAA0B;YAC9B,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,iIAA6B,CAAC;YAC3D,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,CAAC;wBACN,UAAU,EAAE,4BAA4B;wBACxC,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,OAAO;qBACnB,EAAE;wBACC,UAAU,EAAE,+BAA+B;wBAC3C,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,YAAY;qBACxB,EAAE;wBACC,UAAU,EAAE,+BAA+B;wBAC3C,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,UAAU;qBACtB,CAAC;gBACF,WAAW,EAAE,0BAA0B;aAC1C;SACJ,CAAC,CAAC;QACH,YAAY;QACZ,YAAY;QAEZ,eAAe;QACf,GAAG,GAAG,CAAC,CAAC;QACR,iFAAe,CAAC;YACZ,EAAE,EAAE,MAAM;YACV,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,kHAAwB,CAAC;YACtD,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,KAAK,EAAE,QAAQ;YACf,aAAa,EAAE,gGAA2B;YAC1C,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,GAAG;YACR,QAAQ,EAAE;gBACN,IAAI,EAAE,MAAM;aACf;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,kHAAwB,CAAC;YACtD,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,KAAK,EAAE,UAAU;YACjB,aAAa,EAAE,gGAA2B;YAC1C,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,GAAG;YACR,QAAQ,EAAE;gBACN,IAAI,EAAE,QAAQ;aACjB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,kHAAwB,CAAC;YACtD,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,KAAK,EAAE,aAAa;YACpB,aAAa,EAAE,gGAA2B;YAC1C,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,IAAI,EAAE,WAAW;aACpB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,+GAAuB,CAAC;YACrD,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,KAAK,EAAE,aAAa;YACpB,aAAa,EAAE,+FAA0B;YACzC,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,IAAI,EAAE,YAAY;aACrB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,wHAA0B,CAAC;YACxD,IAAI,EAAE,mEAAQ;YACd,KAAK,EAAE,mBAAmB;YAC1B,aAAa,EAAE,+FAA0B;YACzC,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,IAAI,EAAE,kBAAkB;aAC3B;SACJ,CAAC,CAAC;QACH,gBAAgB;QAChB,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,+GAAuB,CAAC;YACrD,KAAK,EAAE,aAAa;YACpB,aAAa,EAAE,+FAA0B;YACzC,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,GAAG,EAAE;YACV,QAAQ,EAAE;gBACN,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACb,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;wBACrB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;qBACnC;gBACL,CAAC;aACJ;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,kHAAkB,CAAC;YAChD,IAAI,EAAE,+DAAM;YACZ,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,GAAG,EAAE;YACV,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC;gBACpF,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;oBACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;iBAC9B;gBACD,OAAO,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC;YACvC,CAAC;SACJ,CAAC,CAAC;QACH,YAAY;QACZ,YAAY;IAChB,CAAC;;AAzTc,eAAI,GAA0B,IAAI,kDAAe,CAAO,IAAI,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;AC9HV;IAO1D,uBAAuB,SAAvB,uBAAuB;;QAWxB,sBAAiB,GAAG,IAAI,uDAAY,EAAO;QAY3C,uBAAkB,GAAG,IAAI,uDAAY,EAAO;IACxD,CAAC;QArBK,MAAM;QACR,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACZ,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;QAMG,OAAO;QACT,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACb,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;;;qBAnBA,gDAAK;gCASL,iDAAM;sBAGN,gDAAK;iCASL,iDAAM;;AAvBI,uBAAuB;IALnC,wDAAS,CAAC;QACT,QAAQ,EAAE,2BAA2B;QACrC,iFAA+C;;KAEhD,CAAC;GACW,uBAAuB;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACP2C;IAOlE,eAAe,SAAf,eAAe;;QAExB,iBAAY,GAAG,CAAC,CAAC;QACjB,YAAO,GAAG,CAAC,CAAC;QACZ,YAAO,GAAG,CAAC,CAAC;QACZ,UAAK,GAAG,CAAC,CAAC;QACV,SAAI,GAAG,CAAC,CAAC;QACT,aAAQ,GAAG,KAAK,CAAC;QAsBP,mBAAc,GAAG,IAAI,uDAAY,EAAO;QAClD,YAAY;QAEZ,0BAA0B;QAC1B,0BAAqB,GAAG,KAAK,CAAC;QAqB9B,YAAY;QAEZ,oBAAoB;QACpB,oBAAe,GAAG,IAAI,CAAC;QA8Cb,uBAAkB,GAAG,IAAI,uDAAY,EAAO;IAQ1D,CAAC;QA7FO,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE;YAC3B,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YACzB,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAChD;IACL,CAAC;QASG,gBAAgB;QAChB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACtC,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG;QACpB,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC;IACrC,CAAC;QAOG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;IAC5B,CAAC;QAOG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;IAC/B,CAAC;QAMG,SAAS;QACT,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;IAC7B,CAAC;IACD,YAAY;IAEZ,QAAQ;QACJ,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,YAAY;QACR,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;YACzE,IAAI,SAAS,GAAG,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,WAAW,CAAC;YACjE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;YAChE,SAAS,GAAG,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC;YACnD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;YAClE,SAAS,GAAG,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC;YACnD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,YAAY,GAAG,SAAS,GAAG,eAAe,CAAC,YAAY,CAAC;SAChE;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE;YAC/D,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;YACd,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACf,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;SACzB;IACL,CAAC;IAGD,QAAQ;QACJ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC,UAAU;YAC7F,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAChH,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;;AArGc,4BAAY,GAAG,IAAK;AACpB,0BAAU,GAAG,eAAe,CAAC,YAAY,GAAG,EAAG;AAC/C,0BAAU,GAAG,eAAe,CAAC,UAAU,GAAG,EAAG;AAC7C,2BAAW,GAAG,eAAe,CAAC,UAAU,GAAG,EAAG;;uBAK5D,gDAAK;6BAYL,iDAAM;+BAMN,gDAAK;sBAYL,gDAAK;yBAYL,gDAAK;wBAWL,gDAAK;iCAiCL,iDAAM;;AAvGE,eAAe;IAL3B,wDAAS,CAAC;QACP,QAAQ,EAAE,kBAAkB;QAC5B,wEAAsC;;KAEzC,CAAC;GACW,eAAe;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACPsE;AACzC;AACO;AACD;AAExD,MAAM,YAAY;;QACrB,aAAQ,GAAG,KAAK,CAAC;IAGrB,CAAC;;IAMY,eAAe,SAAf,eAAe;IAkGxB,YAAoB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;QAjG5C,eAAU,GAAG,EAAE,CAAC;QAChB,cAAS,GAAG,EAAE,CAAC;QAYL,iBAAY,GAAG,IAAI,uDAAY,EAAO;QAChD,YAAY;QAEZ,0BAA0B;QAC1B,2BAAsB,GAAmB,EAAE,CAAC;QASlC,4BAAuB,GAAG,IAAI,uDAAY,EAAO;QAC3D,YAAY;QAEZ,qBAAqB;QACrB,qBAAgB,GAAG,aAAa,CAAC;QASvB,sBAAiB,GAAG,IAAI,uDAAY,EAAO;QAa3C,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QAG5C,qBAAgB,GAAG,IAAI,uDAAY,EAAO;IA2CpD,CAAC;QA5FG,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACV,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;QAOG,iBAAiB;QACjB,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACvC,CAAC;IACD,IAAI,iBAAiB,CAAC,GAAmB;QACrC,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAC;QAClC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACnE,CAAC;QAOG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;QAOG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;IAMO,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ;QAClD,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE;YACnC,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YAClC,IAAI,OAAO,EAAE;gBACT,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;aACzD;YACD,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAClB,MAAM,IAAI,GAAG;oBACT,OAAO,EAAE,CAAC,CAAC,IAAI;oBACf,IAAI,EAAE,IAAI,YAAY,EAAE;oBACxB,UAAU,EAAE,KAAK;iBACpB,CAAC;gBACF,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC;gBAChC,MAAM,EAAE,GAAG,mFAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjD,IAAI,EAAE,EAAE;oBACJ,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,gGAA0C,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC;iBAC7G;qBAAM;oBACH,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC;iBACrD;gBACD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACnB,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,IAAI,EAAE;wBAC3F,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;wBACvB,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACtB,OAAO,IAAI,CAAC;qBACf;oBACD,OAAO,KAAK,CAAC;gBACjB,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;SACN;QACD,IAAI,OAAO,CAAC,QAAQ,EAAE;YAClB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACzB,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;SACN;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAKD,QAAQ;QACJ,kFAAgC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7C,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBAC7B,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACzC,QAAQ,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,CAAC;wBACR,KAAK,EAAE,CAAC;qBACX,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACN;YACD,IAAI,IAAI,EAAE;gBACN,MAAM,UAAU,GAAG,EAAE,CAAC;gBACtB,IAAI,IAAI,CAAC,iBAAiB,EAAE;oBACxB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,iBAAiB,CAAC,CAAC;iBAC9D;gBACD,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACb,MAAM,IAAI,GAAG;wBACT,OAAO,EAAE,CAAC,CAAC,IAAI;wBACf,IAAI,EAAE,IAAI,YAAY,EAAE;wBACxB,UAAU,EAAE,KAAK;qBACpB,CAAC;oBACF,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAC1B,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC;oBAChC,MAAM,EAAE,GAAG,mFAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACjD,IAAI,EAAE,EAAE;wBACJ,IAAI,CAAC,OAAO,IAAI,IAAI,GAAG,gGAA0C,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;qBAC/E;oBACD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBACnB,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,IAAI,EAAE;4BACrD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;4BACvB,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BACtB,OAAO,IAAI,CAAC;yBACf;wBACD,OAAO,KAAK,CAAC;oBACjB,CAAC,CAAC,CAAC;oBACH,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;aAChC;YACD,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;aACrG;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;oBAC3C,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBAC5D;gBACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;aAChC;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS,CAAC,IAAI;QACV,IAAI,IAAI,EAAE;YACN,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,IAAI,CAAC,sBAAsB,EAAE;oBAC7B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC/C;qBAAM;oBACH,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACxC;gBACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;aAChC;iBAAM,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBACpC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACpB,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBAC1C,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;4BACzD,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BACzC,OAAO,IAAI,CAAC;yBACf;wBACD,OAAO,KAAK,CAAC;oBACjB,CAAC,CAAC,EAAE;wBACA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;qBAChC;iBACJ;qBAAM;oBACH,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBAC1C,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;4BAC9F,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BACzC,OAAO,IAAI,CAAC;yBACf;wBACD,OAAO,KAAK,CAAC;oBACjB,CAAC,CAAC,EAAE;wBACA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;qBAChC;iBACJ;aACJ;SACJ;IACL,CAAC;;;;;;qBArLA,gDAAK;2BAQL,iDAAM;gCAKN,gDAAK;sCAQL,iDAAM;0BAKN,gDAAK;gCAQL,iDAAM;2BAKN,gDAAK;iCAQL,iDAAM;+BAGN,iDAAM;;AAxDE,eAAe;IAJ3B,wDAAS,CAAC;QACP,QAAQ,EAAE,4BAA4B;QACtC,wEAAsC;KACzC,CAAC;GACW,eAAe;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACf0B;AAC8D;AACtB;AACM;AACH;AAC2B;AACrC;AACrB;AACJ;AACO;AACkB;AACpB;AACC;AACqB;AACxB;AACd;AAC0B;IAQhE,gBAAgB,SAAhB,gBAAiB,SAAQ,4DAAc;IA4BhD,YAAY,KAAwB,EAA+C,IAAI;QACnF,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD4D,SAAI,GAAJ,IAAI;QAF7E,UAAK,GAAG,IAAI,wDAAY,EAAO;QAIrC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC/B,CAAC;IAzBD,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YACzB,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;gBAC7B,IAAI,IAAI,CAAC,gBAAgB,EAAE;oBACvB,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;wBACzC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;qBACvE;yBAAM;wBACH,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;qBACnC;iBACJ;aACJ;iBAAM;gBACH,IAAI,CAAC,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAAC;aACjC;SACJ;IACL,CAAC;IASD,kBAAkB;QACd,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,aAAa,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC;QACnF,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;YACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACzD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,KAAK,CAAC,IAAI,EAAE;oBACZ,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;iBACxB;gBACD,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;oBAChB,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;iBAC9B;aACJ;SACJ;IACL,CAAC;IAED,OAAO,CAAC,EAAE;QACN,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;;AAjDM,qBAAI,GAAQ,WAAY;AACxB,wBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,wFAAiB,CAAC,CAAC,CAAC;;;4CA0BxB,kDAAM,SAAC,mFAA4B;;;oBAFzE,kDAAM;;AA1BE,gBAAgB;IAN5B,yDAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,yEAAuC;QAEvC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,gBAAgB;AAAA;AAoDtB,MAAM,cAAe,SAAQ,oEAAS;IAGzC,MAAM,CAAC,SAAS;QACZ,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,WAAW;YACf,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC;YAC3C,CAAC;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,YAAY;aACxB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,UAAU,EAAE;gBACR;oBACI,EAAE,EAAE,SAAS;oBACb,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;oBAC5D,KAAK,EAAE,WAAW;oBAClB,QAAQ,EAAE;wBACN,QAAQ,EAAE,QAAQ;qBACrB;iBACJ;gBACD;oBACI,EAAE,EAAE,aAAa;oBACjB,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;oBAClD,KAAK,EAAE,eAAe;oBACtB,QAAQ,EAAE;wBACN,WAAW,EAAE,UAAU;wBACvB,QAAQ,EAAE,KAAK;wBACf,UAAU,EAAE,uEAAW;wBACvB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;4BACX,EAAE,CAAC,YAAY,CAAC,WAAW,GAAG,uEAAW,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;wBACzF,CAAC;qBACJ;iBACJ;gBACD;oBACI,EAAE,EAAE,MAAM;oBACV,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;oBAClD,QAAQ,EAAE;wBACN,OAAO,EAAE,QAAQ;qBACpB;iBACJ;aACJ;YACD,QAAQ,EAAE;gBACN,iBAAiB,EAAC,SAAS;gBAC3B,eAAe,EAAE,GAAG,EAAE;oBAClB,MAAM,IAAI,GAAG,IAAI,uEAAa,EAAE,CAAC;oBACjC,IAAI,CAAC,WAAW,GAAG,4EAAgB,CAAC;oBACpC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;oBAC1B,IAAI,CAAC,IAAI,GAAG,2FAAuC,CAAC,cAAc,CAAC,cAAc,EAAE,cAAc,CAAC,YAAY,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;oBAC9H,OAAO,IAAI,CAAC;gBAChB,CAAC;aACJ;SACJ,CAAC,CAAC;IACP,CAAC;;AA1Ee,mBAAI,GAAG,CAAC,sCAAsC,CAAC;AAC/C,0BAAW,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9EO;AAC8D;AAGpD;AACH;AACO;IAQtD,uBAAuB,SAAvB,uBAAuB;IAqJhC,YAAmB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;QAnJ3C,oBAAe,GAAuC,IAAI,KAAK,EAA+B,CAAC;QAmDrF,kBAAa,GAAG,IAAI,uDAAY,EAAO;QACjD,YAAY;QACZ,mBAAmB;QACnB,mBAAc,GAAG,EAAE,CAAC;QAaV,oBAAe,GAAG,IAAI,uDAAY,EAAO;QACnD,YAAY;QACZ,yBAAyB;QACzB,yBAAoB,GAAG,EAAE,CAAC;QAUhB,0BAAqB,GAAG,IAAI,uDAAY,EAAO;QACzD,YAAY;QAEZ,aAAQ,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAE5D,iBAAY,GAAG,IAAI,CAAC;QACX,uBAAkB,GAAa,CAAC,wDAAK,EAAE,wDAAK,CAAC,CAAC;QAEhD,UAAK,GAAG;YACX,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,EACN;SACJ,CAAC;QAEK,WAAM,GAAuB;YAChC,MAAM,EAAE,EAAE;SACb,CAAC;QAoDE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoB,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,wFAAgC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;IACzB,CAAC;QAnJG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,MAAM,SAAS,GAAuB;YAClC,MAAM,EAAE,EAAG;SACd,CAAC;QACF,IAAI,GAAG,EAAE;YACL,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9D,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACnB,IAAI,MAAM,CAAC,YAAY,EAAE;oBACrB,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG;wBACpC,IAAI,EAAE,MAAM,CAAC,OAAO;wBACpB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;qBAClC,CAAC;oBACF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;iBAC1F;YACL,CAAC,CAAC,CAAC;SACN;aAAM;YACH,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE;gBACtB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;wBACtB,KAAK,EAAE,EAAE;wBACT,KAAK,EAAE,EAAE;wBACT,QAAQ,EAAE,GAAG;qBAChB,CAAC,CAAC,CAAC;YACR,CAAC,CAAC;YACF,SAAS,CAAC,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC9B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,OAAO,EAAE;oBAC7B,OAAO,aAAa,CAAC;iBACxB;gBACD,OAAO,QAAQ,CAAC;YACpB,CAAC,CAAC;YACF,SAAS,CAAC,YAAY,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;gBAC/B,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAC/E,CAAC,CAAC;YACF,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,EAAE;gBACzB,OAAO,EAAE,CAAC;YACd,CAAC,CAAC;SACL;QACD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;QAQG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAClD;IACL,CAAC;QAQG,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;QAChC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC/D,CAAC;IAmBO,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,eAAqD;QAC5F,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACnB,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,MAAM,MAAM,GAAG,IAAI,qEAAa,EAAE,CAAC;gBACnC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,kEAAU,CAAC,CAAC,CAAC,iEAAS,CAAC;gBAC1E,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;gBACpB,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACpC,uBAAuB,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;gBACjF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACxB;iBAAM;gBACH,MAAM,MAAM,GAAG,IAAI,qEAAa,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC1B,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACpC,MAAM,CAAC,QAAQ,GAAG,yFAAiC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnE,IAAI,MAAM,CAAC,QAAQ,KAAK,yEAAgB,IAAI,MAAM,CAAC,QAAQ,KAAK,4EAAmB,EAAE;oBACjF,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;iBAC/B;gBACD,IAAI,eAAe,EAAE;oBACjB,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;oBAChE,MAAM,CAAC,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;iBAC3D;gBACD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK;QACnC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACvB,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7C,MAAM,IAAI,GAAG;oBACT,SAAS,EAAE,MAAM,CAAC,cAAc,KAAK,kEAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;oBAC9D,KAAK,EAAE,EAAE;iBACZ,CAAC;gBACF,uBAAuB,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpB;iBAAM;gBACH,MAAM,IAAI,GAAG;oBACT,KAAK,EAAE,MAAM,CAAC,IAAI;oBAClB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,yEAAgB,IAAI,MAAM,CAAC,QAAQ,KAAK,4EAAmB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;oBAChH,QAAQ,EAAE,wFAAgC,CAAC,MAAM,CAAC,QAAQ,CAAC;oBAC3D,UAAU,EAAE,MAAM,CAAC,UAAU;iBAChC,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAUD,oBAAoB,CAAC,KAAK,EAAE,WAAW;QACnC,IAAI,MAAM,CAAC;QACX,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE;YACjC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACjD;QACD,IAAI,MAAM,EAAE;YACR,OAAO,MAAM,CAAC;SACjB;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,YAAY,CAAC,KAAK,EAAE,EAAE;QAClB,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,WAAW,EAAE;gBACb,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,OAAO,EAAE;oBAC/B,OAAO,aAAa,CAAC;iBACxB;gBACD,OAAO,WAAW,CAAC,IAAI,CAAC;aAC3B;SACJ;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,SAAS,CAAC,MAAM;QACZ,IAAI,MAAM,EAAE;YACR,IAAI,MAAM,CAAC,cAAc,EAAE;gBACvB,QAAQ,MAAM,CAAC,cAAc,EAAE;oBAC3B,KAAK,kEAAU;wBACX,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;wBAC7B,MAAM;oBACV,KAAK,iEAAS;wBACV,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;wBAC5B,MAAM;iBACb;aACJ;YACD,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7C,uBAAuB,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;aAC5D;YACD,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IAED,eAAe;QACX,IAAI,MAAM,GAAG,IAAI,qEAAa,EAAE,CAAC;QACjC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,kEAAU,CAAC,CAAC,CAAC,iEAAS,CAAC;QAChF,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACjD,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;YACpB,uBAAuB,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;SAC/F;aAAM;YACH,MAAM,GAAG,IAAI,CAAC;SACjB;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,GAAG,CAAC,KAAwB,EAAE,IAAI;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAE1B,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;YACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC5B,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;aAC/B;iBAAM;gBACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;aACjC;SACJ;QAED,wBAAwB;QACxB,IAAI,KAAK,EAAE;YACP,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;SACpB;IACL,CAAC;IAED,MAAM,CAAC,KAAK,EAAE,IAAI;QACd,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,KAAK,IAAI,CAAC,EAAE;gBACZ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aAC/B;SACJ;IACL,CAAC;;;;;;sBAxOA,gDAAK;4BA8CL,iDAAM;wBAKN,gDAAK;8BAWL,iDAAM;8BAKN,gDAAK;oCAQL,iDAAM;;AAlFE,uBAAuB;IANnC,wDAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,gFAA8C;QAE9C,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,uBAAuB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACd0D;AACrD;AAE8B;AACN;AACJ;AACM;AAChB;AAC0B;IAQhE,4BAA4B,SAA5B,4BAA6B,SAAQ,2DAAc;IAQ5D,YAAoB,OAAoB,EAAU,MAAc,EAAE,KAAwB,EACzC,IAAI;QACjD,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAFH,YAAO,GAAP,OAAO,CAAa;QAAU,WAAM,GAAN,MAAM,CAAQ;QACf,SAAI,GAAJ,IAAI;QAJrD,iBAAY,GAAG,EAAE,CAAC;IAMlB,CAAC;IAED,kBAAkB;QACd,+GAAsD,CAAC,CAAC,WAAW,EAAE,EAAE;YACnE,IAAI,CAAC,WAAW,EAAE;gBACd,WAAW,GAAG,EAAE,CAAC;aACpB;YACD,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBACtD,MAAM,IAAI,GAAG,EAAE,CAAC;gBAChB,IAAI,MAAM,EAAE;oBACR,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;wBACrB,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;4BACjC,IAAI,CAAC,IAAI,CAAC;gCACN,OAAO,EAAE,KAAK,CAAC,OAAO;gCACtB,EAAE,EAAE,KAAK,CAAC,GAAG;6BAChB,CAAC,CAAC;yBACN;oBACL,CAAC,CAAC,CAAC;iBACN;gBACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;QAEP,CAAC,CAAC,CAAC;QACH,2GAAoD,CAAC,CAAC,SAAS,EAAE,EAAE;YAC/D,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC;IACD,QAAQ,CAAC,IAAI;QACT,IAAI,CAAC,OAAO,CAAC,oCAAoC,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;YAC1F,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;gBACxB,IAAI,GAAG,EAAE,CAAC;aACb;YACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACP,CAAC;;AA7CM,iCAAI,GAAQ,WAAY;AACxB,oCAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,iGAA2B,CAAC,CAAC,CAAC;;;;;4CAMpE,iDAAM,SAAC,kFAA4B;;AAT/B,4BAA4B;IANxC,wDAAS,CAAC;QACP,QAAQ,EAAE,WAAW;QACrB,2EAAuC;QAEvC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,4BAA4B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBa;AAG/B;AACoB;AACmD;AACM;AACwB;AACrC;AACrB;AACN;AAC2B;AAC7B;AACI;AACJ;AAC2B;AACtB;AACN;AAC8B;AACpB;AACE;AACN;AACF;AAC4B;AACxB;AAC6B;AAC3C;AAC0B;IAWhE,mBAAmB,SAAnB,mBAAoB,SAAQ,4DAAc;IA6QnD,mBAAmB;IACnB,YAAY,KAAwB,EAAE,SAAqB,EAAU,WAAwB,EAA+C,IAAI;QAC5I,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD8C,gBAAW,GAAX,WAAW,CAAa;QAA+C,SAAI,GAAJ,IAAI;QAjQtI,4BAAuB,GAAG,IAAI,wDAAY,EAAO;QAYjD,0BAAqB,GAAG,IAAI,wDAAY,EAAO;QA+J/C,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QACpD,YAAY;QACZ,gBAAgB;QAChB,gBAAW,GAAG,EAAE,CAAC;QAuBP,iBAAY,GAAG,IAAI,wDAAY,EAAO;QAYtC,mBAAc,GAAG,IAAI,wDAAY,EAAO;QAYxC,sBAAiB,GAAG,IAAI,wDAAY,EAAO;QAe3C,kBAAa,GAAG,IAAI,wDAAY,EAAO;QAMjD,iBAAY,GAAG,KAAK,CAAC;QAErB,aAAQ,GAAG,EAAE,CAAC;QACd,UAAK,GAAG,EAAE,CAAC;QAED,WAAM,GAAG,IAAI,wDAAY,EAAO;QAChC,aAAQ,GAAG,IAAI,wDAAY,EAAO;QAClC,eAAU,GAAG,IAAI,wDAAY,EAAO;QACpC,oBAAe,GAAG,IAAI,wDAAY,EAAO;QAKnD,cAAS,GAAG,KAAK,CAAC;QA+QV,kBAAa,GAAmB,IAAI,yEAAoB,EAAE,CAAC;QACnE,cAAS,GAAG,EAAE,CAAC;QA5QX,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;QA9QG,iBAAiB;QACjB,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC;IAChD,CAAC;IACD,IAAI,iBAAiB,CAAC,GAAG;QACrB,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC3C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC5E,CAAC;QAMG,eAAe;QACf,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;IAC9C,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,GAAG,CAAC;QACzC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IACxE,CAAC;IAKD,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IACD,IAAI,SAAS,CAAC,KAAK;QAEf,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAExB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACd,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;aACpB;YACD,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBACrD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;aACxB;YACD,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC5B,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;oBACvD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBAClB;qBAAM;oBACH,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;iBACxC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SAC1B;aAAM;YACH,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aACpD;iBAAM;gBACH,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC5B;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;gBACvD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;aAC3B;iBAAM;gBACH,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aACjD;SACJ;IACL,CAAC;QAMG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,GAAG,KAAK,IAAI,CAAC,eAAe,EAAE;YAC9B,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAChB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;oBACjC,IAAI,GAAG,EAAE;wBACL,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,IAAI,IAAI,CAAC,kBAAkB,EAAE;4BACvF,+BAA+B;4BAC/B,MAAM,OAAO,GAAG,IAAI,wEAAc,EAAE,CAAC;4BACrC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;4BACrB,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;4BACpB,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;4BACrB,MAAM,MAAM,GAAG,IAAI,sEAAa,EAAE,CAAC;4BACnC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC;4BACnC,MAAM,CAAC,QAAQ,GAAG,wEAAc,CAAC;4BACjC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;4BAC/B,IAAI,WAAW,GAAG,IAAI,CAAC;4BACvB,IAAI,IAAI,CAAC,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gCACxC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;gCAC5B,MAAM,CAAC,QAAQ,GAAG,qEAAW,CAAC;6BACjC;4BACD,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gCACrD,WAAW,GAAG,KAAK,CAAC;6BACvB;4BACD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BAC7B,YAAY;4BACZ,mBAAmB;4BACnB,IAAI,WAAW,EAAE;gCACb,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,EACrE,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;oCAC3C,IAAI,IAAI,CAAC,QAAQ,EAAE;wCACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;wCACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;qCAC1B;yCAAM;wCACH,IAAI,IAAI,CAAC,iBAAiB,EAAE;4CACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;yCACtD;6CAAM;4CACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;yCAC9B;qCACJ;oCACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gCAC/B,CAAC,CAAC,CAAC;6BACV;4BACD,YAAY;yBACf;6BAAM;4BACH,IAAI,IAAI,CAAC,QAAQ,EAAE;gCACf,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gCACjB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oCACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iCACzB;qCAAM;oCACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;iCAC5B;6BACJ;iCAAM;gCACH,IAAI,IAAI,CAAC,iBAAiB,EAAE;oCACxB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;iCAClD;qCAAM;oCACH,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;iCAC1B;6BACJ;4BACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;yBAC9B;qBACJ;iBACJ;qBAAM;oBACH,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;oBACnC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;oBAC/B,0EAAwB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;wBACtD,IAAI,IAAI,EAAE;4BACN,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gCACf,IAAI,IAAI,CAAC,QAAQ,EAAE;oCACf,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;oCACjB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;wCACrB,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;4CAClB,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG,EAAE;gDACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;6CAC1B;wCACL,CAAC,CAAC,CAAC;qCACN;yCAAM;wCACH,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;4CAClB,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gDACf,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,EAAE;oDACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iDAC1B;4CACL,CAAC,CAAC,CAAC;wCACP,CAAC,CAAC,CAAC;qCACN;iCACJ;qCAAM;oCACH,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;wCAClB,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG,EAAE;4CACpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;yCACnC;oCACL,CAAC,CAAC,CAAC;iCACN;4BACL,CAAC,CAAC,CAAC;4BACH,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;yBAC9B;oBACL,CAAC,CAAC,CAAC;iBACN;aACJ;iBAAM;gBACH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;aACzB;YACD,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAC7D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACpD;QACD,IAAI,CAAC,GAAG,EAAE;YACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACtB;IACL,CAAC;QAQG,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACV,IAAI,CAAC,GAAG,EAAE;YACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1B;QACD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;QACjB,6BAA6B;QAC7B,2BAA2B;QAC3B,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,yCAAE,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;SACzC;aAAM;YACH,IAAI,CAAC,OAAO,GAAG,yCAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;SAC/B;QAED,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;QAMG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;IACvC,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,GAAG,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;QAMG,WAAW;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;IAC1C,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,CAAC;QACrC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAChE,CAAC;QAQG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IA6BD,kBAAkB;QACd,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IACD,sBAAsB;QAClB,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IACD,OAAO;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,wEAAc,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;QACnC,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAChC,0EAAwB,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACzE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC5B,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;gBACnC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;YACnC,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,YAAY,GAAG,8EAA2B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACjF,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,KAAK,sCAAsC,EAAE;YACzH,wEAAsB,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACzE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;gBACzD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAClC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;SACN;aAAM;YACH,iFAA8B,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACpF,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;oBACzB,0EAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC/C,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;wBACnC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;wBAC/B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;oBAC/B,CAAC,CAAC,CAAC;iBACN;qBAAM,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;oBAChC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;oBACnF,IAAI,KAAK,IAAI,qFAAkC,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE;wBACzF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;wBACzD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;wBAC/B,IAAI,CAAC,mBAAmB,EAAE,CAAC;qBAC9B;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IACD,YAAY;IAEZ,eAAe;IACf,MAAM;QACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED,WAAW;QACP,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IACD,SAAS;QACL,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;IACrC,CAAC;IACD,WAAW,CAAC,KAAK;QACb,IAAI,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC;QACpC,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,GAAG;YACC,IAAI,gBAAgB,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;gBACpD,MAAM,GAAG,IAAI,CAAC;aACjB;YACD,gBAAgB,GAAG,gBAAgB,CAAC,UAAU,CAAC;SAClD,QAAQ,gBAAgB,EAAE;QAC3B,IAAI,CAAC,MAAM,EAAE;YACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SAC1B;IACL,CAAC;IACD,YAAY;IACZ,OAAO;QACH,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,aAAa,CAAC,KAAK;QACf,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,KAAK,EAAE;YACR,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SAC1B;aAAM;YACH,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBACd,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;iBACpB;gBACD,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;oBACrD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACrB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;iBACxB;gBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;oBACvD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC/B;qBAAM;oBACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;iBACrD;aACJ;iBAAM;gBACH,IAAI,IAAI,CAAC,iBAAiB,EAAE;oBACxB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;iBACpD;qBAAM;oBACH,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;iBAC5B;gBACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;oBACvD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;iBAC3B;qBAAM;oBACH,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;iBACjD;aACJ;SACJ;QACD,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,CAAC,KAAU;QACb,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,EAAE;YAC5B,MAAM,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;gBACvD,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;aAC7B;iBAAM;gBACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBACtB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SAC1B;aAAM;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,KAAK,IAAI,CAAC,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC7B,MAAM,IAAI,GAAG,EAAE,CAAC;gBAChB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;oBACvD,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;iBAC7B;qBAAM;oBACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;wBACtB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;oBACvC,CAAC,CAAC,CAAC;iBACN;gBACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aAC1B;SACJ;IACL,CAAC;IACD,gBAAgB;IAChB,QAAQ;QACJ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC5D,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;SAC7D;QACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED,UAAU;QACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC5D,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE;gBAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;aAC5B;YACD,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;SAC7D;QACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IACD,YAAY;IACJ,WAAW;QACf,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC9B,CAAC;IACD,MAAM,CAAC,KAAK;QACR,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IACO,kBAAkB,CAAC,KAAU;QACjC,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE;YACnC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC;YACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM;YACvC,OAAO;SACV;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;SACpB;QACD,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YACjC,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE;gBAC1B,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;aACpD;YAED,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,IAAI,KAAK,EAAE;oBACP,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;wBACpC,MAAM,MAAM,GAAG,IAAI,sEAAa,EAAE,CAAC;wBACnC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC;wBACrC,MAAM,CAAC,QAAQ,GAAG,uEAAa,CAAC;wBAChC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;wBACrB,IAAI,yFAAoC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;4BAC3D,iFAA4B,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;4BAClD,IAAI,CAAC,WAAW,EAAE,CAAC;yBACtB;qBACJ;iBACJ;qBAAM;oBACH,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;wBAClC,IAAI,CAAC,WAAW,EAAE,CAAC;qBACtB;oBACD,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;iBAC5B;gBACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;oBAC7C,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wBACtC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;4BAC5B,MAAM,IAAI,GAAG,IAAI,sEAAa,EAAE,CAAC;4BACjC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;4BACrB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;4BAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;4BACxC,iFAA4B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;yBACnD;oBACL,CAAC,CAAC,CAAC;iBACN;gBACD,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;oBAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;oBACtB,MAAM,IAAI,GAAG,IAAI,kEAAW,EAAE,CAAC;oBAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC;oBACnC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;oBACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC/B;aACJ;YACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACzB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,EACrE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;oBACnD,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;wBACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;qBACtB;yBAAM;wBACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;qBAC5B;oBACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACzB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;oBACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACzB,CAAC,CAAC,CAAC;aACN;SACJ;aAAM;YACH,IAAI,KAAK,EAAE;gBACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;oBAC3D,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;oBAC5C,OAAO,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtE,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;aACtC;SACJ;IACL,CAAC;IAED,QAAQ;QAEJ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YAC5C,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SACtC;IACL,CAAC;IAGD,mBAAmB;QACf,IAAI,CAAC,aAAa,GAAG,oFAA+B,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAClG,CAAC;;AA9hBM,wBAAI,GAAQ,cAAe;AAC3B,2BAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,qGAA8B,CAAC,CAAC,CAAC;;;;;4CA4QoB,kDAAM,SAAC,mFAA4B;;;gCA1QlI,iDAAK;sCASL,kDAAM;8BAGN,iDAAK;oCASL,kDAAM;yBA8CN,iDAAK;+BAiHL,kDAAM;qBAKN,iDAAK;2BAqBL,kDAAM;uBAGN,iDAAK;6BASL,kDAAM;0BAGN,iDAAK;gCASL,kDAAM;sBAKN,iDAAK;4BAUL,kDAAM;qBAWN,kDAAM;uBACN,kDAAM;yBACN,kDAAM;8BACN,kDAAM;sBACN,qDAAS,SAAC,SAAS,EAAE,EAAE,IAAI,EAAE,sDAAU,EAAE;;AAxQjC,mBAAmB;IAT/B,yDAAS,CAAC;QACP,QAAQ,EAAE,kBAAkB;QAC5B,4EAA0C;QAE1C,IAAI,EAAE;YACF,kBAAkB,EAAE,qBAAqB;SAC5C;QACD,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,mBAAmB;AAAA;AAiiBzB,MAAM,iBAAkB,SAAQ,oEAAS;IAM5C,MAAM,CAAU,eAAe,CAAC,IAAI;QAChC,iBAAiB,CAAC,mBAAmB,EAAE,CAAC;IAC5C,CAAC;IACD,MAAM,CAAC,SAAS;QACZ,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,cAAc;YAClB,OAAO,EAAE,gBAAgB;YACzB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,cAAc,CAAC;YAC9C,CAAC;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;YAC5D,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE;gBACN,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,mBAAmB;YACvB,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,qBAAqB;YAC5B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,iBAAiB,CAAC,eAAe,IAAI,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC;YACzF,CAAC;YACD,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,cAAc,EAAE,iBAAiB,CAAC,oBAAoB;gBACtD,eAAe,EAAE,MAAM;gBACvB,iBAAiB,EAAE,mBAAmB;aACzC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,mBAAmB;YAC1B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,iBAAiB,CAAC,eAAe,IAAI,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC;YACzF,CAAC;YACD,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,cAAc,EAAE,iBAAiB,CAAC,kBAAkB;gBACpD,eAAe,EAAE,MAAM;gBACvB,iBAAiB,EAAE,mBAAmB;aACzC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,OAAO;YACX,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE;gBACN,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,4DAAK;aACpB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,kBAAkB;YACtB,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,oBAAoB;aAChC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,IAAI,iEAAe,CAAC,oGAAsB,CAAC;SACvD,CAAC,CAAC;IACP,CAAC;IACD,MAAM,CAAC,mBAAmB;QACtB,IAAI,iBAAiB,CAAC,YAAY,EAAE;YAChC,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;YACzC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,EAAE;gBACxC,IAAI,iBAAiB,CAAC,YAAY,CAAC,YAAY,EAAE;oBAC7C,wEAAsB,CAAC,iBAAiB,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC9E,IAAI,IAAI,EAAE;4BACN,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;4BAEzC,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gCACxD,MAAM,GAAG,GAAG,IAAI,wFAAwB,EAAE,CAAC;gCAC3C,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;gCAC3B,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;gCACpC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACxB,CAAC,CAAC,CAAC;4BACH,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAC/C,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC;4BACrE,IAAI,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;4BAC7C,mBAAmB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC;4BACjE,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;4BAEjE,IAAI,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;4BAE3C,iBAAiB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC,CAAC;4BAC3E,iBAAiB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,CAAC;4BACvE,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;4BAC7D,6BAA6B;yBAChC;oBACL,CAAC,CAAC,CAAC;iBACN;aACJ;SACJ;IACL,CAAC;;AA1He,sBAAI,GAAG,CAAC,sCAAsC,CAAC;AAChD,sCAAoB,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;AACvE,oCAAkB,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;AACrE,8BAAY,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3kBkD;AAC/F;AAC2B;AACP;AACE;AACJ;AACG;AACK;AACW;AACd;AACe;AACV;AACK;AACJ;AACJ;AACI;AACF;IAI1C,cAAc,SAAd,cAAc;IA0NhC,YAAmB,KAAwB,EAA+C,IAAI;QAA3E,UAAK,GAAL,KAAK,CAAmB;QAA+C,SAAI,GAAJ,IAAI;QAlN9F,mBAAc,GAAG,EAAE,CAAC;QAEpB,iBAAY,GAAG,CAAC,CAAC;QAEjB,qBAAqB;QACrB,iBAAY,GAAG,KAAK,CAAC;QAYX,sBAAiB,GAAG,IAAI,wDAAY,EAAW;QACzD,YAAY;QACZ,wBAAwB;QACxB,wBAAmB,GAAG,KAAK,CAAC;QAYlB,yBAAoB,GAAG,IAAI,wDAAY,EAAO;QAc9C,mBAAc,GAAG,IAAI,wDAAY,EAAW;QAY5C,mBAAc,GAAG,IAAI,wDAAY,EAAW;QAqC5C,iBAAY,GAAG,IAAI,wDAAY,EAAO;QAChD,YAAY;QACZ,uBAAuB;QACvB,uBAAkB,GAAQ,IAAI,sEAAa,EAAE,CAAC;QAC9C,0BAAqB,GAAG,KAAK,CAAC;QAGvB,wBAAmB,GAAG,IAAI,wDAAY,EAAO;QAmF1C,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QACpD,YAAY;QAEZ,gBAAgB;QAChB,cAAS,GAAa,EAAE,CAAC;QACzB,YAAY;QACZ,2BAA2B;QAC3B,iBAAY,GAAsB,EAAE,CAAC;QACrC,YAAY;QACZ,mBAAmB;QACnB,cAAS,GAAG,EAAE,CAAC;QACf,YAAY;QAEZ,oBAAe,GAAG,IAAI,CAAC;QAEb,yBAAoB,GAAG,IAAI,wDAAY,EAAO;QAC9C,gBAAW,GAAG,IAAI,wDAAY,EAAO;QAE/C,kBAAa,GAAG,EAAE,CAAC;QAGnB,gBAAW,GAAG,2EAAuB,CAAC;QAC/B,kBAAa,GAAyB,IAAI,kDAAe,CAAM,KAAK,CAAC,CAAC;QACtE,WAAM,GAAyB,IAAI,kDAAe,CAAM,KAAK,CAAC,CAAC;QAC/D,cAAS,GAAyB,IAAI,kDAAe,CAAM,KAAK,CAAC,CAAC;QAErE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC7C,CAAC;QAlNG,WAAW;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,WAAW,CAAC,GAAY;QACxB,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpC,IAAI,CAAC,MAAM,EAAE,CAAC;SACjB;QACD,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC;QAOG,cAAc;QACd,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QAClB,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;QAC/B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAMG,QAAQ;QACR,IAAI,OAAO,IAAI,CAAC,kBAAkB,KAAK,SAAS,EAAE;YAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC;SAClC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;IACvC,CAAC;IACD,IAAI,QAAQ,CAAC,GAAY;QACrB,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,GAAG,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;QAMG,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAY;QACrB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,YAAY;IACZ,kBAAkB;IAClB,IAAI,QAAQ;QACR,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,IAAI,IAAI,EAAE;gBACvC,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;aACxC;iBAAM,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;aACtC;iBAAM;gBACH,OAAO,KAAK,CAAC;aAChB;SACJ;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAID,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,CAAC,KAAK;QACX,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;QAIG,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACV,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;QAYU,aAAa;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IACD,IAAW,aAAa,CAAC,GAAQ;QAC7B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;QAC9B,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QAC1C,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;YACpC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;SAC7C;QACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;YAClC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB;QACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;YACnD,IAAI,GAAG,EAAE;gBACL,GAAG,CAAC,WAAW,EAAE,CAAC;aACrB;YACD,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC9F,IAAI,CAAC,YAAY,EAAE,CAAC;YACxB,CAAC,CAAC,CAAC;SACN;QACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;YACvC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;gBACxF,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;oBAChE,iFAA+B,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;wBACtF,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;wBAC/B,IAAI,CAAC,YAAY,EAAE,CAAC;wBACpB,IAAI,CAAC,8BAA8B,EAAE,CAAC;wBACtC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;oBAC/B,CAAC,CAAC,CAAC;iBACN;qBAAM;oBACH,IAAI,CAAC,YAAY,EAAE,CAAC;oBACpB,IAAI,CAAC,8BAA8B,EAAE,CAAC;oBACtC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;iBAC9B;YACL,CAAC,CAAC,CAAC;SACN;QACD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;YAChE,iFAA+B,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBACtF,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;gBAC/B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;gBACtB,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;gBAC7C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE;YAC7B,IAAI,CAAC,kBAAkB,CAAC,EAAE,GAAG,oDAAS,EAAE,CAAC;SAC5C;QACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,IAAI,uFAAiC,EAAE;YACxE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC/C,IAAI,uFAAiC,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE;oBACjF,IAAI,CAAC,KAAK,GAAG,uFAAiC,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;iBACtG;YACL,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAClC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACvD,IAAI,CAAC,oBAAoB,GAAG,yCAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC5D,CAAC;QAMG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,GAAG,IAAI,IAAI,CAAC,eAAe,EAAE;YAC7B,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,WAAW,GAAG,yCAAE,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACjD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;QACD,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACjE,CAAC;IAkCD,MAAM;QACF,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,4FAAqC,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9E,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,GAAG,4FAAwC,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5F,IAAI,CAAC,WAAW,GAAG,2EAAuB,CAAC;YAC3C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,mGAA0C,CAAC,GAAG,EAAE;YAC5C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;YAClC,IAAI,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC;YACpD,IAAI,KAAK,GAAG,CAAC,EAAE;gBACX,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACzC,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;oBACtC,IAAI,IAAI,KAAK,IAAI,EAAE;wBACf,KAAK,EAAE,CAAC;wBACR,IAAI,KAAK,KAAK,CAAC,EAAE;4BACb,IAAI,CAAC,cAAc,EAAE,CAAC;yBACzB;qBACJ;yBAAM;wBACH,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;4BACpC,IAAI,CAAC,KAAK,IAAI,EAAE;gCACZ,GAAG,CAAC,WAAW,EAAE,CAAC;gCAClB,KAAK,EAAE,CAAC;gCACR,IAAI,KAAK,KAAK,CAAC,EAAE;oCACb,IAAI,CAAC,cAAc,EAAE,CAAC;iCACzB;6BACJ;wBACL,CAAC,CAAC,CAAC;qBACN;gBACL,CAAC,CAAC,CAAC;gBACH,OAAO;aACV;SACJ;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,cAAc;QACV,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YACtD,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClD;IACL,CAAC;IAGD,0BAA0B;QACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACvE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACjD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC7C,CAAC,CAAC;SACL;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,kBAAkB;IAClB,CAAC;IACD,8BAA8B;QAC1B,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE;YACvI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;SACnD;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,sBAAsB;IACtB,CAAC;IACD,WAAW;QACP,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,gBAAgB;IAChB,UAAU;QACN,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;QAC9B,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE;YACjB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gBAC1B,IAAI,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC;gBAC7D,IAAI,CAAC,KAAK,EAAE;oBACR,IAAI,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,WAAW,KAAK,UAAU,EAAE;wBAClD,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;wBACvD,IAAI,KAAK,EAAE;4BACP,MAAM,MAAM,GAAG,IAAI,+DAAS,EAAE,CAAC;4BAC/B,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;4BACpB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;yBAC1B;qBACJ;yBAAM;wBACH,MAAM,MAAM,GAAG,IAAI,+DAAS,EAAE,CAAC;wBAC/B,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;wBACpB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qBAC1B;iBACJ;qBAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBACpD,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC5B,IAAI,IAAI,CAAC,UAAU,IAAI,wFAAwB,EAAE;4BAC7C,IAAI,CAAC,0FAAoC,EAAE;gCACvC,0FAAoC,GAAG,EAAE,CAAC;6BAC7C;4BACD,IAAI,0FAAoC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE;gCAC5E,0FAAoC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;6BAC5F;4BACD,0FAAoC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,0CAAO,EAAO,CAAC;4BAChG,0FAAoC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gCAC3F,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;4BAC5B,CAAC,CAAC,CAAC;yBACN;oBACL,CAAC,CAAC,CAAC;iBACN;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,YAAY,CAAC,KAAa,EAAE,SAAe;QACvC,IAAI,KAAK,EAAE;YACP,MAAM,YAAY,GAAG,sFAA+B,EAAE,KAAK,sEAAa,CAAC;YACzE,IAAI,YAAY,EAAE;gBACd,MAAM,SAAS,GAAG,qGAA8C,EAAE,CAAC;gBACnE,IAAI,CAAC,SAAS,EAAE;oBACZ,OAAO;iBACV;aACJ;YACD,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;YAC9B,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE;gBACjB,IAAI,UAAU,CAAC;gBACf,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;oBACnB,IAAI,GAAG,EAAE,OAAO,KAAK,KAAK,EAAE;wBACxB,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC;wBAC1B,OAAO,IAAI,CAAC;qBACf;oBACD,OAAO,KAAK,CAAC;gBACjB,CAAC,CAAC,CAAC;gBACH,IAAI,UAAU,EAAE;oBACZ,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;wBAC1B,QAAQ,MAAM,CAAC,UAAU,EAAE;4BACvB,KAAK,wFAAwB;gCACzB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;gCAEhC,IAAI,UAAU,CAAC;gCACf,IAAI,MAAM,KAAK,EAAE,EAAE;oCACf,UAAU,GAAG,CAAC,MAAM,CAAC,CAAC;iCACzB;qCAAM;oCACH,UAAU,GAAG,2EAAyB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;iCACtD;gCACD,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,IAAI,UAAU,EAAE;oCAC3D,UAAU,GAAG,CAAC,oFAAgC,CAAC,4FAAqC,EAAE,CAAC,CAAC,CAAC;iCAC5F;gCACD,IAAI,UAAU,EAAE;oCACZ,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;wCAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;wCAC7B,IAAI,MAAM,CAAC,SAAS,EAAE;4CAClB,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;4CACjF,IAAI,EAAE,EAAE;gDACJ,MAAM,MAAM,GAAG,IAAI,4EAAc,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;gDACrD,wFAA0B,CAAC,kGAAyC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gDACxF,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gDAC9C,MAAM,CAAC,eAAe,GAAG,SAAS,CAAC;gDACnC,MAAM,MAAM,GAAG,IAAI,sEAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gDACnD,MAAM,CAAC,cAAc,EAAE,CAAC;gDACxB,MAAM;6CACT;yCACJ;qCACJ;iCACJ;gCACD,MAAM;4BACV,KAAK,wFAAwB;gCACzB,MAAM,EAAE,GAAG,uFAAiC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gCAC9D,IAAI,EAAE,EAAE;oCACJ,MAAM,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;oCAC/D,IAAI,QAAQ,EAAE;wCACV,IAAI,MAAM,CAAC,KAAK,EAAE;4CACd,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;4CACjC,iFAA2B,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;yCACtD;6CAAM;4CACH,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC;yCACpC;qCACJ;iCACJ;gCACD,MAAM;yBACb;oBACL,CAAC,CAAC,CAAC;iBACN;aACJ;SACJ;IACL,CAAC;IACD,YAAY;IACZ,eAAe;IACf,uBAAuB;QACnB,IAAI,QAAQ,CAAC;QACb,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAC/B,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACxC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE;gBAChC,IAAI,CAAC,CAAC,OAAO,EAAE;oBACX,kBAAkB,GAAG,IAAI,CAAC;iBAC7B;aACJ;YACD,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,SAAS,EAAE;gBACjC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;gBACtB,OAAO,IAAI,CAAC;aACf;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,IAAI,kBAAkB,EAAE;YACpB,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACtD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBACzB,IAAI,OAAO,CAAC,OAAO,EAAE;wBACjB,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;qBAC9B;gBACL,CAAC,CAAC,CAAC;aACN;SACJ;QAED,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;QACnC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;IACnD,CAAC;IACD,SAAS,CAAC,QAAQ,EAAE,MAAM;QACtB,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACvB,IAAI,OAAO,CAAC,WAAW,IAAI,WAAW,EAAE;gBACpC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACxB;YACD,IAAI,OAAO,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;aAC5C;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,YAAY;QACR,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE;YAC3F,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,2EAAyB,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBAC3E,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE;oBAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;oBAC9C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBAChC,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;oBACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;oBAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;iBAC7C;YACL,CAAC,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAC7C;IACL,CAAC;IACD,YAAY;IAEZ,YAAY,CAAC,aAAa;QACtB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,aAAa,CAAC,IAAI,EAAE;gBACpB,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC;aAC7C;YACD,IAAI,aAAa,CAAC,GAAG,EAAE;gBACnB,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC;aAC5C;YACD,IAAI,aAAa,CAAC,MAAM,EAAE;gBACtB,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;aACpD;YACD,IAAI,aAAa,CAAC,KAAK,EAAE;gBACrB,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;aAClD;SACJ;IACL,CAAC;IACD,mBAAmB;IACnB,eAAe;QACX,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,aAAa;QACT,OAAQ,IAAI,6CAAU,CAAC,CAAC,UAAU,EAAE,EAAE;YAClC,IAAI,IAAI,CAAC,IAAI,EAAE;gBACX,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;gBACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;aAClD;YACD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW;QACP,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;gBACrC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;aACzC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IACD,YAAY;IAEZ,oBAAoB;QAChB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IACD,oBAAoB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,oBAAoB,CAAC,GAAG;QACpB,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;IAC/B,CAAC;IAED,kBAAkB,CAAC,IAAI;QACnB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC1B,4FAAqC,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;SAC1G;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/C,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACb,WAAW,CAAC,IAAI,CAAC;oBACb,YAAY,EAAE,CAAC;oBACf,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;iBACpC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,iGAA0C,CAAC,CAAC;oBACxC,UAAU,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBACxC,UAAU,EAAE,WAAW;iBAC1B,CAAC,CAAC,CAAC;SACP;IACL,CAAC;IAED,kBAAkB,CAAC,OAAgB;IACnC,CAAC;;;;4CA3V6C,kDAAM,SAAC,mFAA4B;;;0BA5MhF,iDAAK;gCAWL,kDAAM;6BAKN,iDAAK;mCAUL,kDAAM;uBAGN,iDAAK;6BAWL,kDAAM;uBAIN,iDAAK;6BAQL,kDAAM;qBA2BN,iDAAK;2BAUL,kDAAM;kCAMN,kDAAM;4BAEN,iDAAK;yBAqEL,iDAAK;+BAaL,kDAAM;mCAeN,kDAAM;0BACN,kDAAM;;AAjNW,cAAc;IADnC,yDAAS,EAAE;GACU,cAAc;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpBkB;AACqE;AACjG;AAC0E;AAC0B;AACF;AACV;AAC3B;AACrB;AACE;AACkB;AACrB;AACsB;AACpB;AACmB;AACG;AACxB;AACF;AACZ;AAC0B;IAQhE,aAAa,SAAb,aAAc,SAAQ,4DAAc;IAkJ7C,YAAY,KAAwB,EAA+C,IAAI;QACnF,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD4D,SAAI,GAAJ,IAAI;QAnH7E,0BAAqB,GAAG,IAAI,wDAAY,EAAO;QAc/C,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QA6B1C,oBAAe,GAAG,IAAI,wDAAY,EAAO;QAczC,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QAe1C,sBAAiB,GAAG,IAAI,wDAAY,EAAO;QAc3C,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QAgB1C,UAAK,GAAG,IAAI,wDAAY,EAAO;QAEzC,aAAQ,GAAG;YACP,iBAAiB,EAAE,QAAQ;SAC9B,CAAC;QACF,cAAS,GAAG;YACR,iBAAiB,EAAE,QAAQ;SAC9B,CAAC;QACF,cAAS,GAAG,yCAAE,CAAC;YACX,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;SACjB,CAAC,CAAC;QAIC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAClF,CAAC;QAjJG,OAAO;QACP,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YAC3B,OAAO,IAAI,CAAC,YAAY,CAAC;SAC5B;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAMG,eAAe;QACf,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;IAC9C,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,GAAG,CAAC;QACzC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAOG,UAAU;QACV,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;IACzC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,GAAG,CAAC;QACpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAQG,IAAI;QACJ,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YACxB,OAAO,IAAI,CAAC,SAAS,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IACnC,CAAC;IACD,IAAI,IAAI,CAAC,GAAG;QACR,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAKG,SAAS;QACT,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;IACxC,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,GAAG,CAAC;QACnC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAOG,UAAU;QACV,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;IACzC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,GAAG,CAAC;QACpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAQG,WAAW;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;IAC1C,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,CAAC;QACrC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAOG,UAAU;QACV,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;IACzC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,GAAG,CAAC;QACpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAOG,OAAO;QACP,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YAC3B,OAAO,IAAI,CAAC,YAAY,CAAC;SAC5B;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAuBD,kBAAkB;IAClB,CAAC;IAED,OAAO,CAAC,EAAE;QACN,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,QAAQ;QACJ,IAAI,OAAO,GAAG,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;YAChC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;SACtB;IACL,CAAC;;AAtKM,kBAAI,GAAQ,QAAS;AACrB,qBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,+FAAwB,CAAC,CAAC,CAAC;;;4CAgJ/B,kDAAM,SAAC,mFAA4B;;;sBA5IzE,iDAAK;8BAeL,iDAAK;oCAUL,kDAAM;yBAIN,iDAAK;+BAUL,kDAAM;mBAKN,iDAAK;wBAcL,iDAAK;8BAUL,kDAAM;yBAIN,iDAAK;+BAUL,kDAAM;0BAKN,iDAAK;gCAUL,kDAAM;yBAIN,iDAAK;+BAUL,kDAAM;sBAIN,iDAAK;oBAYL,kDAAM;;AArIE,aAAa;IANzB,yDAAS,CAAC;QACP,QAAQ,EAAE,YAAY;QACtB,sEAAoC;QAEpC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,aAAa;AAAA;AAyKnB,MAAM,WAAY,SAAQ,oEAAS;IAEtC,MAAM,CAAC,SAAS;QACZ,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,QAAQ;YACZ,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,QAAQ,IAAI,IAAI,CAAC,WAAW,IAAI,QAAQ,IAAI,IAAI,CAAC,WAAW,IAAI,UAAU,IAAI,IAAI,CAAC,WAAW,IAAI,uBAAuB,CAAC;YACzJ,CAAC;SACJ,CAAC,CAAC;QACH,qBAAqB;QACrB,IAAI,WAAW,GAAG;YAClB;gBACI,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,YAAY;aACtB,EAAC;gBACE,OAAO,EAAE,UAAU;gBACnB,KAAK,EAAE,mBAAmB;aAC7B,EAAC;gBACE,OAAO,EAAE,WAAW;gBACpB,KAAK,EAAE,oBAAoB;aAC9B,EAAC;gBACE,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE,iBAAiB;aAC3B,EAAC;gBACE,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE,iBAAiB;aAC3B,EAAC;gBACE,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE,SAAS;aACnB,EAAC;gBACE,OAAO,EAAE,WAAW;gBACpB,KAAK,EAAE,cAAc;aACxB;SAAC;QACF,wBAAwB;QAExB,0BAA0B;QAC1B,IAAI,gBAAgB,GAAG,CAAC;gBACpB,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE,KAAK;aACf,EAAC;gBACE,OAAO,EAAE,UAAU;gBACnB,KAAK,EAAE,OAAO;aACjB,EAAC;gBACE,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,QAAQ;aAClB,EAAC;gBACE,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,MAAM;aAChB,CAAC;QACF,6BAA6B;QAC7B,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;YAC5D,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,CAAC;YACT,GAAG,EAAC,CAAC;YACL,QAAQ,EAAE;gBACN,QAAQ,EAAC,QAAQ;aACpB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;YAC5D,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,WAAW,EAAE,QAAQ;gBACrB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,WAAW;gBACxB,eAAe,EAAE,OAAO;gBACxB,iBAAiB,EAAE,SAAS;aAC/B;SACJ,CAAC,CAAC;QAGH,qFAA+B,CAAC,CAAC,MAAM,EAAE,EAAE;YACvC,IAAI,MAAM,EAAE;gBACR,IAAI,KAAK,GAAG,EAAE,CAAC;gBACf,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACpB,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;gBAC1D,CAAC,CAAC,CAAC;gBACH,iFAAe,CAAC;oBACZ,EAAE,EAAE,MAAM;oBACV,MAAM,EAAE,QAAQ;oBAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;oBAClD,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,CAAC;oBACT,GAAG,EAAE,CAAC;oBACN,QAAQ,EAAE;wBACN,WAAW,EAAE,QAAQ;wBACrB,QAAQ,EAAE,KAAK;wBACf,WAAW,EAAE,KAAK;wBAClB,eAAe,EAAE,OAAO;wBACxB,iBAAiB,EAAE,SAAS;wBAC5B,cAAc,EAAE,MAAM;qBACzB;iBACJ,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;QAGH,iFAAe,CAAC;YACZ,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,uBAAuB;YAC9B,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,IAAI,CAAC;YACrB,CAAC;YACD,QAAQ,EAAE;gBACN,WAAW,EAAE,uBAAuB;gBACpC,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,gBAAgB;gBAC7B,eAAe,EAAE,OAAO;gBACxB,iBAAiB,EAAE,SAAS;aAC/B;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,oHAAoB,CAAC;YAClD,IAAI,EAAE,sEAAU;YAChB,KAAK,EAAE,aAAa;YACpB,aAAa,EAAE,6FAAwB;YACvC,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,IAAI,CAAC;YACrB,CAAC;YACD,QAAQ,EAAE;gBACN,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,oHAAoB,CAAC;YAClD,IAAI,EAAE,sEAAU;YAChB,KAAK,EAAE,cAAc;YACrB,aAAa,EAAE,6FAAwB;YACvC,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,IAAI,CAAC;YACrB,CAAC;YACD,QAAQ,EAAE;gBACN,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,IAAI,CAAC;YACrB,CAAC;YACD,QAAQ,EAAE;gBACN,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,oEAAS;aACxB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,gIAA4B,CAAC;YAC1D,IAAI,EAAE,wFAAmB;YACzB,KAAK,EAAE,cAAc;YACrB,aAAa,EAAE,6FAAwB;YACvC,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,IAAI,CAAC;YACrB,CAAC;YACD,QAAQ,EAAE;gBACN,cAAc,EAAE,KAAK;aACxB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,gIAA4B,CAAC;YAC1D,IAAI,EAAE,wFAAmB;YACzB,KAAK,EAAE,eAAe;YACtB,aAAa,EAAE,6FAAwB;YACvC,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,IAAI,CAAC;YACrB,CAAC;YACD,QAAQ,EAAE;gBACN,cAAc,EAAE,KAAK;aACxB;SACJ,CAAC,CAAC;IACP,CAAC;;AA3Ne,gBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrMb;AACgF;AACjG;AACY;AAEd;AAC2D;AACM;AACe;AAG3B;AACS;AACG;AACH;AAC2B;AACV;AAC3B;AACrB;AACA;AACJ;AACN;AACY;AACkB;AACZ;AACD;AACc;AACpB;AACC;AACkB;AACG;AACxB;AACF;AACF;AACV;AAC0B;IAQhE,eAAe,SAAf,eAAgB,SAAQ,4DAAc;IA8U/C,YAAY,KAAwB,EAA+C,IAAI,EAAU,OAAoB;QACjH,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD4D,SAAI,GAAJ,IAAI;QAAU,YAAO,GAAP,OAAO,CAAa;QAnUrH,aAAQ,GAAG,KAAK,CAAC;QA+CP,iBAAY,GAAG,IAAI,wDAAY,EAAO;QAiBtC,mBAAc,GAAG,IAAI,wDAAY,EAAO;QAexC,wBAAmB,GAAG,IAAI,wDAAY,EAAO;QAe7C,iBAAY,GAAG,IAAI,wDAAY,EAAO;QAetC,oBAAe,GAAG,IAAI,wDAAY,EAAO;QAezC,eAAU,GAAG,IAAI,wDAAY,EAAO;QAepC,kBAAa,GAAG,IAAI,wDAAY,EAAO;QAcvC,2BAAsB,GAAG,IAAI,wDAAY,EAAO;QAchD,wBAAmB,GAAG,IAAI,wDAAY,EAAO;QAe7C,eAAU,GAAG,IAAI,wDAAY,EAAO;QAepC,mBAAc,GAAG,IAAI,wDAAY,EAAO;QAexC,oBAAe,GAAG,IAAI,wDAAY,EAAO;QAezC,uBAAkB,GAAG,IAAI,wDAAY,EAAO;QAe5C,yBAAoB,GAAG,IAAI,wDAAY,EAAO;QAe9C,0BAAqB,GAAG,IAAI,wDAAY,EAAO;QAe/C,4BAAuB,GAAG,IAAI,wDAAY,EAAO;QAejD,wBAAmB,GAAG,IAAI,wDAAY,EAAO;QACvD,YAAY;QACZ,iBAAY,GAAG,EAAE,CAAC;QAClB,gBAAW,GAAG,EAAE,CAAC;QACjB,cAAS,GAAG,EAAE,CAAC;QA0Ef,UAAK,GAAG,KAAK,CAAC;QACd,sBAAiB,GAAG,KAAK,CAAC;QA6J1B,qBAAgB,GAAG,KAAK,CAAC;QAtMrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,GAAG,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE;YACjF,IAAI;gBACA,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;oBACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;iBAC3B;aACJ;YAAC,OAAO,EAAE,EAAE;gBACT,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aACrB;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,4FAAqC,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9E,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,uBAAuB;YACvB,kCAAkC;YAClC,GAAG;QACP,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,EAAE;YACjC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC;QApVG,aAAa;QACb,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;YACnC,OAAO,+EAAgB,CAAC;SAC3B;aAAM;YACH,OAAO,4EAAa,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;SAC1D;IAEL,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,GAAG,CAAC;IAC3C,CAAC;QAOG,MAAM;QACN,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAC3F,MAAM,MAAM,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;gBAC9C,IAAI,WAAW,CAAC,QAAQ,EAAE;oBACtB,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;oBACtD,IAAI,EAAE,EAAE;wBACJ,MAAM,IAAI,GAAG;4BACT,GAAG,EAAE,oFAAkB,CAAC,EAAE,EAAE,WAAW,CAAC,QAAQ,CAAC;4BACjD,IAAI,EAAE,WAAW,CAAC,WAAW;4BAC7B,KAAK,EAAE,WAAW,CAAC,KAAK;yBAC3B,CAAC;wBACF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACrB;iBACJ;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;SAC7B;QACD,OAAO,yCAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACV,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QASG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;IACvC,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,GAAG,CAAC;QAClC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;QAOG,aAAa;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;IAC5C,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,GAAG,CAAC;QACvC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IACpE,CAAC;QAOG,MAAM;QACN,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;IACrC,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACV,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,GAAG,CAAC;QAChC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;QAOG,SAAS;QACT,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;IACxC,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,GAAG,CAAC;QAChC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;QAOG,IAAI;QACJ,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IACnC,CAAC;IACD,IAAI,IAAI,CAAC,GAAG;QACR,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,GAAG,CAAC;QAC9B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;QAOG,OAAO;QACP,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,GAAG,CAAC;QACjC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;QAMG,gBAAgB;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;IAC/C,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG;QACpB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC1C,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC1E,CAAC;QAMG,aAAa;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;IAC5C,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,GAAG,CAAC;QACvC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IACpE,CAAC;QAOG,IAAI;QACJ,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IACnC,CAAC;IACD,IAAI,IAAI,CAAC,GAAG;QACR,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,GAAG,CAAC;QAC9B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;QAOG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;IACvC,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,GAAG,CAAC;QAClC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;QAOG,SAAS;QACT,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;IACxC,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,GAAG,CAAC;QACnC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;QAOG,YAAY;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;IAC3C,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,GAAG,CAAC;QACtC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAClE,CAAC;QAOG,cAAc;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;IAC7C,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QAClB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,GAAG,CAAC;QACxC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IACtE,CAAC;QAOG,eAAe;QACf,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;IAC9C,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,GAAG,CAAC;QACzC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IACxE,CAAC;QAOG,iBAAiB;QACjB,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC;IAChD,CAAC;IACD,IAAI,iBAAiB,CAAC,GAAG;QACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC3C,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC5E,CAAC;QAOG,aAAa;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;IAC5C,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,GAAG,CAAC;QACvC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IACpE,CAAC;QAS4B,KAAK,CAAC,KAA6B;QAC5D,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SAC3B;IACL,CAAC;IAAA,CAAC;QAE8B,QAAQ,CAAC,QAAgC;QACrE,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;SACjC;IACL,CAAC;IAAA,CAAC;IAEF,iBAAiB;QACb,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,yCAAE,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;YAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClD,gFAAgF;gBAChF,IAAI,IAAI,GAAG,gEAAY,CAAC,uEAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC9D,IAAI,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;gBAC3C,IAAI,CAAC,EAAE,GAAG,oDAAS,EAAE,CAAC;gBACtB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;aAC3B;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,GAAG,yCAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SAC/C;IACL,CAAC;IAwBD,kBAAkB;QACd,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;YACxF,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACP,CAAC;IACD,QAAQ;QACJ,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,yFAAmC,CAAC,CAAC,OAAO,EAAE,EAAE;YACjF,IAAI,OAAO,EAAE;gBACT,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;oBACvB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBAC3C,CAAC,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC;IACD,WAAW,CAAC,IAAI,EAAE,KAAK;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC/B,CAAC;IAGD,kBAAkB;QACd,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAE1B,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;YACxG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC9E,IAAI,CAAC,QAAQ,GAAG,gEAAY,CAAC,uEAAa,EAAE,KAAK,CAAC,CAAC;gBACnD,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC9B,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,KAAK,GAAG,qEAAmB,IAAI,KAAK,CAAC;QAC1C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAC,sFAAoC,CAAC,CAAC,GAAG,EAAE,EAAE;YACnE,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC;YAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACP,CAAC;IACD,YAAY;QACR,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;YACrC,QAAQ,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;gBACzC,KAAK,KAAK,CAAC;gBACX,KAAK,QAAQ;oBACT,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;oBACzB,MAAM;gBACV,KAAK,MAAM;oBACP,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;oBAC1B,MAAM,CAAC,OAAO,CAAC,GAAG,cAAc,GAAG,+EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;oBAC7F,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;oBAC1B,MAAM;gBACV,KAAK,OAAO;oBACR,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;oBAC1B,MAAM,CAAC,OAAO,CAAC,GAAG,cAAc,GAAG,+EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;oBAC7F,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;oBACzB,MAAM;aACb;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,iBAAiB;QACb,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;YACrC,QAAQ,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;gBACzC,KAAK,KAAK,CAAC;gBACX,KAAK,QAAQ;oBACT,MAAM,CAAC,QAAQ,CAAC,GAAG,+EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;oBACvE,MAAM;gBACV,KAAK,MAAM,CAAC;gBACZ,KAAK,OAAO;oBACR,MAAM,CAAC,OAAO,CAAC,GAAG,+EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;oBACtE,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;oBAC1B,MAAM,CAAC,OAAO,CAAC,GAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;oBACpD,MAAM;aACb;SACJ;aAAM;YACH,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;SAC9B;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,iBAAiB;QACb,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;YACrC,QAAQ,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;gBACzC,KAAK,KAAK;oBACN,MAAM,GAAG,qBAAqB,CAAC;oBAC/B,MAAM;gBACV,KAAK,QAAQ;oBACT,MAAM,GAAG,aAAa,CAAC;oBACvB,MAAM;gBACV,KAAK,MAAM;oBACP,8BAA8B;oBAC9B,MAAM;gBACV,KAAK,OAAO;oBACR,sBAAsB;oBACtB,MAAM;aACb;SACJ;aAAM;YACH,MAAM,GAAG,aAAa,CAAC;SAC1B;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,UAAU;QACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,UAAU,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,GAAG;gBACf,aAAa,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAC9C,SAAS,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAC1C,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI;gBAClD,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,SAAS,EAAE,aAAa;gBACxB,GAAG,EAAE,IAAI,CAAC,KAAK;gBACf,YAAY,EAAE,UAAU,MAAM,EAAE,CAAC;oBAC7B,OAAO,2BAA2B,CAAC;gBACvC,CAAC;aACJ,CAAC;YACF,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;aAC9E;YAED,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,IAAI,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC;YAElK,IAAI,CAAC,YAAY,GAAG;gBAChB,aAAa,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAC9C,SAAS,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAC1C,YAAY,EAAE,IAAI,CAAC,eAAe;gBAClC,cAAc,EAAE,IAAI,CAAC,iBAAiB;gBACtC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE;gBACrD,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO;gBACrD,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,IAAI,CAAC,iBAAiB;gBAChC,aAAa,EAAE,IAAI;gBACnB,UAAU,EAAE,IAAI,CAAC,aAAa;gBAC9B,SAAS,EAAE,aAAa;gBACxB,GAAG,EAAE,IAAI,CAAC,KAAK;gBACf,YAAY,EAAE,UAAU,MAAM,EAAE,CAAC;oBAC7B,OAAO,2BAA2B,CAAC;gBACvC,CAAC;aACJ,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;IACD,IAAI;QACA,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;SAC/B;IACL,CAAC;IACD,IAAI;QACA,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;SAC/B;IACL,CAAC;IACD,OAAO;QACH,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;SAClC;IACL,CAAC;IACD,OAAO;QACH,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;SAClC;IACL,CAAC;IACD,SAAS,CAAC,KAAK;QACX,8CAA8C;IAClD,CAAC;IAGD,kBAAkB,CAAC,OAAgB;QAC/B,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACnC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;;AA1hBM,oBAAI,GAAQ,UAAW;AACvB,uBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,iGAA0B,CAAC,CAAC,CAAC;;;4CA2UjC,kDAAM,SAAC,mFAA4B;;;;4BAhUzE,iDAAK;qBAiBL,iDAAK;2BA2BL,kDAAM;uBAMN,iDAAK;6BAWL,kDAAM;4BAIN,iDAAK;kCAWL,kDAAM;qBAIN,iDAAK;2BAWL,kDAAM;wBAIN,iDAAK;8BAWL,kDAAM;mBAIN,iDAAK;yBAWL,kDAAM;sBAIN,iDAAK;4BAWL,kDAAM;+BAGN,iDAAK;qCAWL,kDAAM;4BAGN,iDAAK;kCAWL,kDAAM;mBAIN,iDAAK;yBAWL,kDAAM;uBAIN,iDAAK;6BAWL,kDAAM;wBAIN,iDAAK;8BAWL,kDAAM;2BAIN,iDAAK;iCAWL,kDAAM;6BAIN,iDAAK;mCAWL,kDAAM;8BAIN,iDAAK;oCAWL,kDAAM;gCAIN,iDAAK;sCAWL,kDAAM;4BAIN,iDAAK;kCAWL,kDAAM;oBAON,qDAAS,SAAC,YAAY;uBAMtB,qDAAS,SAAC,eAAe;;AAvTjB,eAAe;IAN3B,yDAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,wEAAsC;QAEtC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,eAAe;AAAA;AA8hBrB,MAAM,aAAc,SAAQ,qEAAS;IAGxC,MAAM,CAAC,aAAa,CAAC,IAAY,EAAE,IAAI;QACnC,MAAM,EAAE,GAAG,IAAI,iIAA6B,EAAE,CAAC;QAC/C,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACpB,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC;QACnB,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,CAAC,SAAS;QACZ,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,YAAY;YAChB,OAAO,EAAE,iBAAiB;YAC1B,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,0FAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC;YAC1C,CAAC;SACJ,CAAC;QACF,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,aAAa;YACjB,OAAO,EAAE,qBAAqB;YAC9B,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,0FAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC;YAC1C,CAAC;SACJ,CAAC;QACF,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,aAAa;YACjB,OAAO,EAAE,uBAAuB;YAChC,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,0FAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,UAAU,IAAI,IAAI,CAAC,aAAa,CAAC;YAChE,CAAC;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,iBAAiB;aAC7B;YACD,GAAG,EAAE,CAAC;SACT,CAAC;QACF,IAAI,YAAY,GAAG,0FAAmC,CAAe,kEAAY,CAAC,CAAC;QACnF,YAAY,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACxC,iFAAe,CAAC;gBACZ,EAAE,EAAE,QAAQ;gBACZ,MAAM,EAAE,YAAY;gBACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;gBACjD,GAAG,EAAE,CAAC;gBACN,UAAU,EAAE;oBACR;wBACI,EAAE,EAAE,aAAa;wBACjB,MAAM,EAAE,UAAU;wBAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;wBAClD,KAAK,EAAE,qBAAqB;wBAC5B,QAAQ,EAAE;4BACN,WAAW,EAAE,UAAU;4BACvB,QAAQ,EAAE,KAAK;4BACf,WAAW,EAAE,IAAI;4BACjB,iBAAiB,EAAE,SAAS;4BAC5B,eAAe,EAAE,KAAK;yBACzB;qBACJ,EAAE;wBACC,EAAE,EAAE,UAAU;wBACd,MAAM,EAAE,UAAU;wBAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,qHAAyB,CAAC;wBACvD,eAAe,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;4BAC7B,OAAO,KAAK,CAAC,WAAW,CAAC;wBAC7B,CAAC;qBACJ,EAAE;wBACC,EAAE,EAAE,OAAO;wBACX,MAAM,EAAE,UAAU;wBAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,+HAA8B,CAAC;wBAC5D,KAAK,EAAE,SAAS;wBAChB,QAAQ,EAAE;4BACN,QAAQ,EAAE,QAAQ;yBACrB;qBACJ,EAAE;wBACC,EAAE,EAAE,aAAa;wBACjB,MAAM,EAAE,UAAU;wBAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;wBAClD,KAAK,EAAE,eAAe;qBACzB;iBACJ;gBACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;oBACtB,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC/B,CAAC;gBACD,QAAQ,EAAE;oBACN,iBAAiB,EAAE,UAAU;oBAC7B,eAAe,EAAE,GAAG,EAAE;wBAClB,OAAO,EAAE,CAAC;oBACd,CAAC;iBACJ;aACJ,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,IAAI,WAAW,GAAG,0FAAmC,CAAc,gEAAW,CAAC;QAC/E,WAAW,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE;YACpD,IAAI,SAAS,EAAE;gBACX,MAAM,IAAI,GAAG,EAAE,CAAC;gBAChB,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACnB,IAAI,CAAC,IAAI,CAAC;wBACN,OAAO,EAAE,EAAE,CAAC,OAAO;wBACnB,EAAE,EAAE,EAAE,CAAC,GAAG;wBACV,SAAS,EAAE,EAAE,CAAC,SAAS;wBACvB,YAAY,EAAE,EAAE,CAAC,YAAY;qBAChC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBACH,iFAAe,CAAC;oBACZ,EAAE,EAAE,YAAY;oBAChB,MAAM,EAAE,YAAY;oBACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;oBAClD,KAAK,EAAE,kBAAkB;oBACzB,GAAG,EAAC,CAAC;oBACL,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;wBACtB,OAAO,IAAI,CAAC,aAAa,CAAC;oBAC9B,CAAC;oBACD,QAAQ,EAAE;wBACN,WAAW,EAAE,UAAU;wBACvB,QAAQ,EAAE,KAAK;wBACf,WAAW,EAAE,IAAI;wBACjB,iBAAiB,EAAE,SAAS;wBAC5B,eAAe,EAAE,IAAI;qBACxB;iBACJ,CAAC;aACL;QACL,CAAC,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,aAAa;aACzB;YACD,GAAG,EAAC,CAAC;SACR,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,YAAY;aACxB;YACD,GAAG,EAAC,CAAC;SACR,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,UAAU;aACtB;YACD,GAAG,EAAC,CAAC;SACR,CAAC,CAAC;QACH,qFAA+B,CAAC,CAAC,KAAK,EAAE,EAAE;YACtC,IAAI,KAAK,EAAE;gBACP,IAAI,KAAK,GAAG,EAAE,CAAC;gBACf,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACnB,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;gBAC/B,CAAC,CAAC;gBACF,iFAAe,CAAC;oBACZ,EAAE,EAAE,UAAU;oBACd,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;oBAClD,KAAK,EAAE,gBAAgB;oBACvB,QAAQ,EAAE;wBACN,WAAW,EAAE,UAAU;wBACvB,QAAQ,EAAE,KAAK;wBACf,WAAW,EAAE,KAAK;wBAClB,iBAAiB,EAAE,OAAO;wBAC1B,eAAe,EAAE,OAAO;wBACxB,cAAc,EAAE,OAAO;qBAC1B;oBACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;wBACtB,OAAO,IAAI,CAAC,MAAM,CAAC;oBACvB,CAAC;oBACD,GAAG,EAAC,CAAC;iBACR,CAAC;gBACF,iFAAe,CAAC;oBACZ,EAAE,EAAE,UAAU;oBACd,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;oBAClD,KAAK,EAAE,YAAY;oBACnB,QAAQ,EAAE;wBACN,WAAW,EAAE,UAAU;wBACvB,QAAQ,EAAE,KAAK;wBACf,WAAW,EAAE,KAAK;wBAClB,iBAAiB,EAAE,OAAO;wBAC1B,eAAe,EAAE,OAAO;wBACxB,cAAc,EAAE,OAAO;qBAC1B;oBACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;wBACtB,OAAO,IAAI,CAAC,MAAM,CAAC;oBACvB,CAAC;oBACD,GAAG,EAAC,CAAC;iBACR,CAAC;gBACF,iFAAe,CAAC;oBACZ,EAAE,EAAE,YAAY;oBAChB,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,qHAAoB,CAAC;oBAClD,IAAI,EAAE,uEAAU;oBAChB,KAAK,EAAE,cAAc;oBACrB,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;wBACtB,OAAO,IAAI,CAAC,MAAM,CAAC;oBACvB,CAAC;oBACD,QAAQ,EAAE;wBACN,OAAO,EAAE,CAAC;qBACb;oBACD,GAAG,EAAC,CAAC;iBACR,CAAC,CAAC;gBACH,iFAAe,CAAC;oBACZ,EAAE,EAAE,WAAW;oBACf,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,qHAAoB,CAAC;oBAClD,IAAI,EAAE,uEAAU;oBAChB,KAAK,EAAE,aAAa;oBACpB,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;wBACtB,OAAO,IAAI,CAAC,MAAM,CAAC;oBACvB,CAAC;oBACD,QAAQ,EAAE;wBACN,OAAO,EAAE,CAAC;qBACb;oBACD,GAAG,EAAC,CAAC;iBACR,CAAC,CAAC;gBAGH,iFAAe,CAAC;oBACZ,EAAE,EAAE,aAAa;oBACjB,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;oBAClD,KAAK,EAAE,gBAAgB;oBACvB,QAAQ,EAAE;wBACN,WAAW,EAAE,UAAU;wBACvB,QAAQ,EAAE,KAAK;wBACf,WAAW,EAAE,KAAK;wBAClB,iBAAiB,EAAE,OAAO;wBAC1B,eAAe,EAAE,OAAO;wBACxB,cAAc,EAAE,OAAO;qBAC1B;oBACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;wBACtB,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC;oBAChD,CAAC;oBACD,GAAG,EAAE,EAAE;iBACV,CAAC;gBACF,iFAAe,CAAC;oBACZ,EAAE,EAAE,aAAa;oBACjB,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;oBAClD,KAAK,EAAE,YAAY;oBACnB,QAAQ,EAAE;wBACN,WAAW,EAAE,UAAU;wBACvB,QAAQ,EAAE,KAAK;wBACf,WAAW,EAAE,KAAK;wBAClB,iBAAiB,EAAE,OAAO;wBAC1B,eAAe,EAAE,OAAO;wBACxB,cAAc,EAAE,OAAO;qBAC1B;oBACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;wBACtB,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC;oBAChD,CAAC;oBACD,GAAG,EAAE,EAAE;iBACV,CAAC;gBACF,iFAAe,CAAC;oBACZ,EAAE,EAAE,eAAe;oBACnB,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,qHAAoB,CAAC;oBAClD,IAAI,EAAE,uEAAU;oBAChB,KAAK,EAAE,cAAc;oBACrB,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;wBACtB,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC;oBAChD,CAAC;oBACD,QAAQ,EAAE;wBACN,OAAO,EAAE,CAAC;qBACb;oBACD,GAAG,EAAE,EAAE;iBACV,CAAC,CAAC;gBACH,iFAAe,CAAC;oBACZ,EAAE,EAAE,cAAc;oBAClB,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,qHAAoB,CAAC;oBAClD,IAAI,EAAE,uEAAU;oBAChB,KAAK,EAAE,aAAa;oBACpB,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;wBACtB,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC;oBAChD,CAAC;oBACD,QAAQ,EAAE;wBACN,OAAO,EAAE,CAAC;qBACb;oBACD,GAAG,EAAE,EAAE;iBACV,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,MAAM;YACV,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,QAAQ;aACpB;YACD,GAAG,EAAC,EAAE;SACT,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,MAAM;YACV,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,QAAQ;aACpB;YACD,GAAG,EAAC,EAAE;SACT,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,YAAY;aACxB;YACD,GAAG,EAAC,EAAE;SACT,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,aAAa;aACzB;YACD,GAAG,EAAC,EAAE;SACT,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,gBAAgB;YACvB,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAC,CAAC;aACZ;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,gBAAgB;YACpB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,kBAAkB;YACzB,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE;gBACN,OAAO,EAAE,iBAAiB;gBAC1B,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;oBACX,sFAAiC,CAAC,IAAI,CAAC,CAAC;gBAC5C,CAAC;aACJ;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;YAC/B,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,gIAA4B,CAAC;YAC1D,KAAK,EAAE,UAAU;YACjB,GAAG,EAAE,EAAE;YACP,IAAI,EAAE,yFAAmB;YACzB,QAAQ,EAAE;gBACN,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QAEH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,UAAU;aACtB;YACD,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,CAAC;YAC9B,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,QAAQ;aACpB;YACD,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,CAAC;YAC9B,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,mBAAmB;YAC1B,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;aACb;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,CAAC;YAC9B,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,mBAAmB;YACvB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,qBAAqB;YAC5B,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;aACb;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,CAAC;YAC9B,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,kBAAkB;YACtB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,iBAAiB;aAC7B;YACD,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,CAAC;YAC9B,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,cAAc;aAC1B;YACD,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,CAAC;YAC9B,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,qHAAoB,CAAC;YAClD,KAAK,EAAE,WAAW;YAClB,aAAa,EAAE,6FAAwB;YACvC,GAAG,EAAE,EAAE;YACP,IAAI,EAAE,uEAAU;YAChB,QAAQ,EAAE;gBACN,OAAO,EAAE,CAAC;aACb;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,CAAC;YAC9B,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,CAAC;wBACV,OAAO,EAAE,QAAQ;wBACjB,KAAK,EAAE,KAAK;qBACf,EAAE;wBACC,OAAO,EAAE,UAAU;wBACnB,KAAK,EAAE,OAAO;qBACjB,EAAE;wBACC,OAAO,EAAE,SAAS;wBAClB,KAAK,EAAE,QAAQ;qBAClB,EAAE;wBACC,OAAO,EAAE,SAAS;wBAClB,KAAK,EAAE,MAAM;qBAChB,CAAC;gBACF,iBAAiB,EAAE,SAAS;gBAC5B,eAAe,EAAE,OAAO;aAC3B;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,CAAC;YAC9B,CAAC;YACD,GAAG,EAAE,EAAE;SACV,CAAC;IACN,CAAC;;AA/fM,4BAAc,GAA2C,IAAI,0CAAO,EAAE;AAC7D,kBAAI,GAAG,CAAC,sCAAsC,EAAE,sCAAsC,EAAE,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3kBxB;AAChE;AACH;AACM;AACJ;AACW;AAEF;AACA;AACT;AACG;AACI;AACI;AAClB;AAC0B;IAQhE,aAAa,SAAb,aAAc,SAAQ,4DAAc;IA8C7C,YAAoB,WAAwB,EAAE,KAAwB,EAA+C,IAAI;QACrH,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,gBAAW,GAAX,WAAW,CAAa;QAAyE,SAAI,GAAJ,IAAI;QArB/G,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QAepD,YAAY;QAEZ,eAAU,GAAG,EAAE,CAAC;QAEhB,oBAAe,GAAG,IAAI,CAAC;QAInB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACxC,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACvD,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SAC/C;QACD,kGAAyC,CAAC,CAAC,QAAQ,EAAE,EAAE;YACnD,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,qEAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,qEAAe,CAAC,eAAe,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC9F,CAAC;IArDD,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACV,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;QAOG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACjE,CAAC;QAMG,aAAa;QACb,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAE;YACjC,OAAO,IAAI,CAAC,kBAAkB,CAAC;SAClC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;IAC5C,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;QAC9B,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAqBD,gBAAgB,CAAC,IAAI;QACjB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IACD,WAAW;QACP,MAAM,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtD,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC7B,IAAI;oBACA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;iBAC3B;gBAAC,MAAM,GAAE;YACd,CAAC,CAAC;SACL;QACD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE;YACnG,MAAM,SAAS,GAAG,yEAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7E,IAAI,SAAS,EAAE;gBACX,IAAI,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAClD,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC;gBAC9B,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,GAAG,6BAA6B,GAAG,SAAS,GAAC,eAAe,CAAC,CAAC,CAAC;gBAClJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACjC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBAE9B,IAAI,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACnD,YAAY,CAAC,IAAI,GAAG,UAAU,CAAC;gBAC/B,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,GAAG,6BAA6B,GAAG,SAAS,GAAC,eAAe,CAAC,CAAC,CAAC;gBACnJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAClC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;aAClC;SACJ;QAED,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;IAC9B,CAAC;IACD,cAAc;QACV,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,gFAA8B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACjF,IAAI,MAAM,EAAE;gBACR,MAAM,GAAG,GAAG,4EAA0B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAC7E,MAAM,MAAM,GAAG,8EAA0B,CAAC,GAAG,CAAC,CAAC;gBAC/C,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;oBACtC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wBAC/B,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;4BAC5B,MAAM,IAAI,GAAG,IAAI,qEAAa,EAAE,CAAC;4BACjC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;4BACrB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;4BAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;4BACxC,gFAA4B,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;yBAC9C;oBACL,CAAC,CAAC,CAAC;iBACN;gBACD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;gBACrB,IAAI,MAAM,CAAC,MAAM,EAAE;oBACf,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACtB,IAAI,CAAC,CAAC,OAAO,KAAK,iBAAiB,EAAE;4BACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;yBAChC;oBACL,CAAC,CAAC,CAAC;iBACN;gBACD,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;oBACjF,IAAI,IAAI,EAAE;wBACN,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;wBACtB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;qBAC9B;gBACL,CAAC,CAAC,CAAC;aACN;iBAAM,IAAI,IAAI,CAAC,eAAe,EAAE;gBAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aACzC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACD,gBAAgB,CAAC,KAAK;QAClB,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,UAAU,CAAC,MAAM;QACb,IAAI,IAAI,CAAC;QACT,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,IAAI,GAAG,EAAE,CAAC;YACV,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACf,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACxB,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC,EAAE;wBACtE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;qBAC9B;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,YAAY;QACR,IAAI,SAAS,CAAC;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;QAChC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC;YACpC,IAAI,QAAQ,EAAE;gBACV,MAAM,IAAI,GAAG,6DAAS,CAAC,QAAQ,CAAC,CAAC;gBACjC,MAAM,IAAI,GAAG,+DAAW,CAAC,uEAAa,EAAE,IAAI,CAAC,CAAC;gBAC9C,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,yBAAyB;oBAC5E,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;oBACxC,qEAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wBAChC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;4BACnB,MAAM,QAAQ,GAAG,gBAAgB,CAAC;4BAClC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;4BACtC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gCACtB,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;4BACxC,CAAC,CAAC,CAAC;4BACH,MAAM,MAAM,GAAG,EAAE,CAAC;4BAClB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gCACf,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;4BACvB,CAAC,CAAC,CAAC;4BACH,IAAI,CAAC,SAAS,GAAG;gCACb,IAAI,EAAE;oCACF,IAAI,EAAE,MAAM;oCACZ,MAAM,EAAE,MAAM;iCACjB;gCACD,QAAQ,EAAE,IAAI;6BACjB,CAAC;4BACF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;yBAC9B;6BAAM;4BACH,IAAI,CAAC,SAAS,GAAG;gCACb,IAAI,EAAE,MAAM;gCACZ,QAAQ,EAAE,IAAI;6BACjB,CAAC;4BACF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;yBAC9B;oBACL,CAAC,CAAC,CAAC;oBACH,OAAO;iBACV;gBACD,SAAS,GAAG;oBACR,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;iBACjB,CAAC;aACL;SACJ;QACD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;;AA5MM,kBAAI,GAAQ,QAAS;AACrB,qBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,+FAAwB,CAAC,CAAC,CAAC;;;;4CA4CG,kDAAM,SAAC,mFAA4B;;;yBA9B3G,iDAAK;+BASL,kDAAM;4BAIN,iDAAK;;AA7BG,aAAa;IANzB,yDAAS,CAAC;QACP,QAAQ,EAAE,YAAY;QACtB,sEAAoC;QAEpC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,aAAa;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtB4B;AAC4C;AACE;AAEwB;AACrC;AACrB;AACqB;AACpB;AACsB;AACxB;AACd;AAC0B;IAOhE,eAAe,SAAf,eAAgB,SAAQ,4DAAc;IAgD/C,YAAY,KAAwB,EAA+C,IAAI;QACnF,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD4D,SAAI,GAAJ,IAAI;QA/B7E,oBAAe,GAAG,IAAI,wDAAY,EAAO;QAYzC,wBAAmB,GAAG,IAAI,wDAAY,EAAO;QAiB7C,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QAIhD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,qEAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAClF,CAAC;QA/CG,SAAS;QACT,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;YAC3C,OAAO,IAAI,CAAC,eAAe,CAAC;SAC/B;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;QAMG,aAAa;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;IAC5C,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,GAAG,CAAC;QACvC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IACpE,CAAC;QAOG,OAAO;QACP,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YAC3B,OAAO,IAAI,CAAC,YAAY,CAAC;SAC5B;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAYD,kBAAkB;IAClB,CAAC;IAED,QAAQ,CAAC,EAAE;QACP,IAAI,EAAE,CAAC,OAAO,EAAE;YACZ,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;SAChC;aAAM;YACH,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;SAClC;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,QAAQ;QACJ,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,KAAK,EAAE,CAAC;SACnB;IACL,CAAC;;AAvEM,oBAAI,GAAQ,UAAW;AACvB,uBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,iGAA0B,CAAC,CAAC,CAAC;;;4CA8CjC,kDAAM,SAAC,kFAA4B;;;wBA3CzE,iDAAK;8BAYL,kDAAM;4BAGN,iDAAK;kCASL,kDAAM;sBAIN,iDAAK;+BAaL,kDAAM;;AA9CE,eAAe;IAL3B,yDAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,wEAAsC;;KAEzC,CAAC;GACW,eAAe;AAAA;AA0ErB,MAAM,aAAc,SAAQ,oEAAS;IAExC,MAAM,CAAC,SAAS;QACZ,oFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,UAAU;YACd,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC;YAC1C,CAAC;SACJ,CAAC;QAEF,gFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;YAC5D,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE;gBACN,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,iBAAiB;YACxB,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,CAAC;wBACV,OAAO,EAAE,SAAS;wBAClB,KAAK,EAAE,OAAO;qBACjB,EAAE;wBACC,OAAO,EAAE,UAAU;wBACnB,KAAK,EAAE,QAAQ;qBAClB,CAAC;gBACF,eAAe,EAAE,OAAO;gBACxB,iBAAiB,EAAE,SAAS;aAC/B;SACJ,CAAC;IAEN,CAAC;;AA7Ce,kBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9Fd;AACC;AAE4F;AAEpD;AACM;AACH;AAC2B;AACrC;AACrB;AACqB;AAEE;AACxB;AACd;AACuB;AACG;IAOhE,eAAe,SAAf,eAAgB,SAAQ,4DAAc;IA0F/C,YAAY;IAEZ,YAAY,KAAwB,EAA+C,IAAI;QACnF,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD4D,SAAI,GAAJ,IAAI;QAxFvF,mBAAc,GAAG,KAAK,CAAC;QACvB,uBAAkB,GAAa,CAAC,yDAAK,EAAE,yDAAK,CAAC,CAAC;QAC9C,SAAI,GAAQ,EAAE;QAWJ,qBAAgB,GAAG,IAAI,wDAAY,EAAU;QAY7C,oBAAe,GAAG,IAAI,wDAAY,EAAU;QAY5C,oBAAe,GAAG,IAAI,wDAAY,EAAU;QAY5C,sBAAiB,GAAG,IAAI,wDAAY,EAAO;QAY3C,oBAAe,GAAG,IAAI,wDAAY,EAAU;QAY5C,kBAAa,GAAG,IAAI,wDAAY,EAAU;QAY1C,kBAAa,GAAG,IAAI,wDAAY,EAAU;QAKhD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC;QAtFG,UAAU;QACV,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;IACzC,CAAC;IACD,IAAI,UAAU,CAAC,GAAW;QACtB,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,GAAG,CAAC;QACpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC9D,CAAC;QAMG,SAAS;QACT,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;IACxC,CAAC;IACD,IAAI,SAAS,CAAC,GAAW;QACrB,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,GAAG,CAAC;QACnC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;QAMG,SAAS;QACT,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;IACxC,CAAC;IACD,IAAI,SAAS,CAAC,GAAW;QACrB,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,GAAG,CAAC;QACnC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;QAMG,WAAW;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;IAC1C,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,CAAC;QACrC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAChE,CAAC;QAMG,SAAS;QACT,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;IACxC,CAAC;IACD,IAAI,SAAS,CAAC,GAAW;QACrB,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,GAAG,CAAC;QACnC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;QAMG,OAAO;QACP,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,GAAW;QACnB,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,GAAG,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;QAMG,OAAO;QACP,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,GAAW;QACnB,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,GAAG,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IASD,kBAAkB;QACd,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE;YACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC1C;aAAM;YACH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;SAC/B;IACL,CAAC;IACD,GAAG,CAAC,KAAwB;QACxB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,EAAE;YACxB,IAAI,IAAI,CAAC,OAAO,KAAG,IAAI,EAAE;gBACrB,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;oBAC1C,mFAAwB,CAAC,4BAA4B,GAAC,IAAI,CAAC,OAAO,EAAC,sBAAsB,CAAC;oBAC1F,OAAO;iBACV;aACJ;YACD,IAAI,IAAI,CAAC,OAAO,KAAG,IAAI,EAAE;gBACrB,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;oBAC1C,mFAAwB,CAAC,+BAA+B,GAAC,IAAI,CAAC,OAAO,EAAC,sBAAsB,CAAC;oBAC7F,OAAO;iBACV;aACJ;SACJ;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;SAElB;QACD,gBAAgB;QAChB,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE;gBACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;aACtC;YACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAE/B;QAED,wBAAwB;QACxB,IAAI,KAAK,EAAE;YACP,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;SACpB;QACD,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5D,CAAC;IAED,QAAQ;QACJ,eAAe;IACnB,CAAC;IACD,MAAM,CAAC,IAAI;QACP,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE;gBACpC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aACpC;YACD,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;SAC3D;IACL,CAAC;IAED,QAAQ;QACJ,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,KAAK,EAAE,CAAC;SACnB;IACL,CAAC;;AAhKM,oBAAI,GAAQ,UAAW;AACvB,uBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,iGAA0B,CAAC,CAAC,CAAC;;;4CAyFjC,kDAAM,SAAC,mFAA4B;;;yBApFzE,iDAAK;+BASL,kDAAM;wBAGN,iDAAK;8BASL,kDAAM;wBAGN,iDAAK;8BASL,kDAAM;0BAGN,iDAAK;gCASL,kDAAM;wBAGN,iDAAK;8BASL,kDAAM;sBAGN,iDAAK;4BASL,kDAAM;sBAGN,iDAAK;4BASL,kDAAM;;AAzFE,eAAe;IAN3B,yDAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,wEAAoC;QAEpC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,eAAe;AAAA;AAoKrB,MAAM,aAAc,SAAQ,oEAAS;IAExC,MAAM,CAAC,SAAS;QACZ,oFAAmB,CAAC;YAChB,GAAG,EAAE,sCAAsC;YAC3C,EAAE,EAAE,UAAU;YACd,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC;YAC1C,CAAC;SACJ,CAAC,CAAC;QACH,oBAAoB;QACpB,IAAI,UAAU,GAAG,CAAC;gBACd,OAAO,EAAE,UAAU;gBACnB,KAAK,EAAE,QAAQ;aAClB,EAAE;gBACC,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE,MAAM;aAChB,CAAC,CAAC;QACH,YAAY;QACZ,gFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;YAC5D,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE;gBACN,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,cAAc;YACrB,QAAQ,EAAE;gBACN,WAAW,EAAE,QAAQ;gBACrB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,UAAU;gBACvB,eAAe,EAAE,OAAO;gBACxB,iBAAiB,EAAE,SAAS;aAC/B;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,WAAW;YAClB,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC;YACtC,CAAC;YACD,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;aACtB;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,WAAW;YAClB,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC;YACtC,CAAC;YACD,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;aACtB;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,cAAc;aAC1B;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,aAAa;aACzB;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,aAAa;aACzB;SACJ,CAAC,CAAC;IACP,CAAC;;AA9Fe,kBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7Lb;AACgF;AAE/E;AAChB;AACuD;AACM;AACe;AAClB;AAC2B;AACrC;AACrB;AACN;AAC2B;AACzB;AACJ;AACI;AACJ;AACF;AAC6B;AACtB;AACN;AAC8B;AACpB;AACA;AACE;AACR;AAC4B;AACpB;AACJ;AAC6B;AAC3C;AAC0B;IAQhE,eAAe,SAAf,eAAgB,SAAQ,4DAAc;IAiU/C,YAAoB,WAAwB,EAAU,SAA2B,EAC7E,KAAwB,EAA+C,IAAI;QAC3E,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAFH,gBAAW,GAAX,WAAW,CAAa;QAAU,cAAS,GAAT,SAAS,CAAkB;QACN,SAAI,GAAJ,IAAI;QAjTrE,uBAAkB,GAAG,IAAI,wDAAY,EAAO;QAiB5C,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QA4D1C,sBAAiB,GAAG,IAAI,wDAAY,EAAO;QA2B3C,8BAAyB,GAAG,IAAI,wDAAY,EAAO;QAcnD,kBAAa,GAAG,IAAI,wDAAY,EAAO;QAyEvC,4BAAuB,GAAG,IAAI,wDAAY,EAAO;QAYjD,0BAAqB,GAAG,IAAI,wDAAY,EAAO;QAY/C,mBAAc,GAAG,IAAI,wDAAY,EAAO;QAYxC,sBAAiB,GAAG,IAAI,wDAAY,EAAO;QAIrD,WAAM,GAAG,CAAC,CAAC;QAkBX,YAAO,GAAG,IAAI,CAAC,UAAU,CAAC;QA6C1B,oBAAe,GAAG,KAAK,CAAC;QAExB,cAAS,GAAG,EAAE,CAAC;QACf,kBAAa,GAAmB,IAAI,0EAAoB,EAAE,CAAC;QACjD,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QAEpD,oBAAe,GAAG,KAAK,CAAC;QAExB,UAAK,GAAG,KAAK,CAAC;QACd,iBAAY,GAAG,KAAK,CAAC;QAgFrB,UAAK,GAAG,KAAK,CAAC;QAgCd,gBAAW,GAAG,CAAC,CAAC;QAwbhB,aAAQ,GAAG,KAAK,CAAC;QApiBb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,aAAa,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,qBAAqB,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAC1G,CAAC;QAlUG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAMG,UAAU;QACV,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAMG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACpB,IAAI,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;gBAC3C,QAAQ,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE;oBACnC,KAAK,gEAAS;wBACV,kFAA6B,CAAC,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;wBAC9E,MAAM;oBACV,KAAK,iEAAU;wBACX,kFAA6B,CAAC,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;wBAC9E,GAAG,CAAC,OAAO,EAAE,CAAC;wBACd,MAAM;iBACb;aACJ;iBAAM;gBACH,QAAQ,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE;oBACnC,KAAK,gEAAS;wBACV,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;4BACd,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;4BACpC,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;4BACpC,IAAI,IAAI,GAAG,IAAI,EAAE;gCACb,OAAO,CAAC,CAAC,CAAC;6BACb;4BACD,IAAI,IAAI,GAAG,IAAI,EAAE;gCACb,OAAO,CAAC,CAAC;6BACZ;4BACD,OAAO,CAAC,CAAC;wBACb,CAAC,CAAC,CAAC;wBACH,MAAM;oBACV,KAAK,iEAAU;wBACX,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;4BACd,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;4BACpC,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;4BACpC,IAAI,IAAI,GAAG,IAAI,EAAE;gCACb,OAAO,CAAC,CAAC,CAAC;6BACb;4BACD,IAAI,IAAI,GAAG,IAAI,EAAE;gCACb,OAAO,CAAC,CAAC;6BACZ;4BACD,OAAO,CAAC,CAAC;wBACb,CAAC,CAAC,CAAC;wBACH,MAAM;iBACb;aACJ;YACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;SAChD;QAED,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAQG,mBAAmB;QACnB,OAAO,IAAI,CAAC,wBAAwB,CAAC;IACzC,CAAC;IACD,IAAI,mBAAmB,CAAC,GAAG;QACvB,wEAAwE;QACxE,8CAA8C;QAC9C,yBAAyB;QACzB,4FAA4F;QAC5F,oBAAoB;QACpB,0BAA0B;QAC1B,4FAA4F;QAC5F,4BAA4B;QAC5B,oBAAoB;QACpB,OAAO;QACP,GAAG;QACH,IAAI,CAAC,wBAAwB,GAAG,GAAG,CAAC;QACpC,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACnE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAQG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;IAMD,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IACD,IAAI,SAAS,CAAC,KAAK;QACf,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,EAAE;YAC1B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,IAAI,CAAC,wBAAwB,EAAE;gBAC/B,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC3C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACvB,CAAC,CAAC,CAAC;aACN;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;oBAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;oBACvB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;iBAC1B;qBAAM;oBACH,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;wBACrD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;qBAC1B;oBACD,MAAM,IAAI,GAAG,EAAE,CAAC;oBAChB,IAAI,IAAI,CAAC,UAAU,EAAE;wBACjB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;4BAC5B,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;4BACpB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;gCAC5D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;6BACvB;iCAAM;gCACH,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;6BAC7C;wBACL,CAAC,CAAC,CAAC;qBACN;oBACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;iBAC5B;aACJ;iBAAM;gBACH,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE;oBACnD,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;wBAC5D,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC;qBAClC;yBAAM;wBACH,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE;4BACjC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;yBAC3G;6BAAM;4BACH,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;yBAC7B;qBACJ;iBACJ;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;iBAEhC;qBAAM;oBACH,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;iBAC7B;gBACD,IAAI,IAAI,CAAC,UAAU,EAAE;oBACjB,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;iBACnC;aACJ;YACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACnD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SAChC;IACL,CAAC;QAIG,iBAAiB;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;IACrD,CAAC;IACD,IAAI,iBAAiB,CAAC,GAAG;QACrB,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAChD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;IACjF,CAAC;QAMG,eAAe;QACf,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC;IACnD,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,CAAC,kBAAkB,CAAC,eAAe,GAAG,GAAG,CAAC;QAC9C,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAC7E,CAAC;QAMG,QAAQ;QACR,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;IAC5C,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,GAAG,CAAC;QACvC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;QAMG,WAAW;QACX,OAAO,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;IAC/C,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,GAAG,CAAC;QAC1C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACrE,CAAC;IAOD,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,CAAC,KAAK;QACX,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,KAAK,GAAG,EAAE,EAAE;YACZ,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;SACvC;aAAM;YACH,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;SAC1C;QACD,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC;SAClC;QACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;YACpC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;SACtB;IACL,CAAC;IAED,IAAI,MAAM;QACN,IAAI,IAAI,CAAC,0BAA0B,EAAE;YACjC,OAAO,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;SAC5B;aAAM;YACH,OAAO,IAAI,CAAC,OAAO,CAAC;SACvB;IACL,CAAC;IACD,IAAI,MAAM,CAAC,KAAK;QACZ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,IAAI,0BAA0B;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IACD,IAAI,0BAA0B,CAAC,KAAK;QAChC,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,EAAE;YACpB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IACD,UAAU,CAAC,KAAK;QACZ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACtB,CAAC;IACD,IAAI,UAAU;QACV,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;YACpC,OAAO,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC;SAC7C;aAAM;YACH,OAAO,EAAE,CAAC;SACb;IACL,CAAC;IACD,IAAI,QAAQ;QACR,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;YAClC,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;SAC3C;aAAM;YACH,OAAO,EAAE,CAAC;SACb;IACL,CAAC;IACD,IAAI,SAAS;QACT,IAAI,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE;YACxC,OAAO,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC;SACjD;aAAM;YACH,OAAO,GAAG,CAAC;SACd;IACL,CAAC;IAqBD,QAAQ;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,qEAAmB,KAAK,KAAK,CAAC;QAC3C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,sFAAoC,CAAC,CAAC,GAAG,EAAE,EAAE;YACrE,IAAI,CAAC,KAAK,GAAG,GAAG,KAAK,KAAK,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,kGAAyC,CAAC,GAAG,EAAE;YAC3C,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC;IACN,CAAC;IACD,kBAAkB;QACd,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;YACxF,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,UAAU;QACN,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC;QAC/D,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAChC,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;gBACjE,2EAAwB,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBACzE,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;oBACnC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;oBAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC/B,CAAC,CAAC,CAAC;aACN;SACJ;aAAM;YACH,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,KAAK,sCAAsC,EAAE;gBACzH,wEAAsB,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;oBACzE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;oBACzD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAClC,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,iFAA8B,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBACpF,IAAI,MAAM,EAAE;wBACR,IAAI,MAAM,CAAC,MAAM,EAAE;4BACf,2EAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gCAC/C,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;gCACnC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;gCAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gCACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;4BAC/B,CAAC,CAAC,CAAC;yBACN;6BAAM,IAAI,MAAM,CAAC,MAAM,EAAE;4BACtB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;4BACnF,IAAI,KAAK,IAAI,qFAAkC,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE;gCACzF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;gCACzD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;gCAC/B,IAAI,CAAC,mBAAmB,EAAE,CAAC;gCAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;gCACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;6BACvB;yBACJ;qBACJ;gBACL,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAED,OAAO;QACH,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,QAAQ;QACJ,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,KAAK,EAAE,CAAC;SACnB;IACL,CAAC;IAED,cAAc,CAAC,IAAI;QACf,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC9C;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,mBAAmB;QACf,IAAI,CAAC,aAAa,GAAG,qFAA+B,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAClG,CAAC;IAED,cAAc,CAAC,IAAI,EAAE,KAAK;QACtB,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE;YAC3B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;YAC9D,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;SAChE;IACL,CAAC;IAED,OAAO;QACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,mBAAmB;IACnB,eAAe,CAAC,KAAK;QACjB,KAAK,CAAC,eAAe,EAAE,CAAC;IAC5B,CAAC;IACD,iBAAiB,CAAC,EAAE;QAChB,IAAI,IAAI,CAAC,iBAAiB,KAAK,cAAc,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC7I,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;SAC/C;QACD,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9D,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAED,UAAU,CAAC,IAAI,EAAE,KAAK;QAClB,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACjC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,EAAE;oBACjE,IAAI,KAAK,IAAI,KAAK,CAAC,eAAe,EAAE;wBAChC,KAAK,CAAC,eAAe,EAAE,CAAC;qBAC3B;oBACD,IAAI,IAAI,GAAG,EAAE,CAAC;oBACd,IAAI,IAAI,CAAC,UAAU,EAAE;wBACjB,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;qBAC/B;oBACD,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;wBAC7B,IAAI,IAAI,CAAC,eAAe,EAAE;4BACtB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;yBAC9E;wBACD,OAAO,KAAK,IAAI,IAAI;oBACxB,CAAC,CAAC,CAAC;oBACH,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACjC,IAAI,KAAK,IAAI,CAAC,EAAE;wBACZ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;wBACtB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;qBACzB;yBAAM;wBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;wBACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACnB;oBACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;iBACzB;aACJ;iBAAM;gBACH,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,EAAE;oBAC9E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;iBACzB;qBAAM;oBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;iBACzB;aACJ;SACJ;IACL,CAAC;IACD,cAAc,CAAC,KAAK;QAChB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,YAAY;IACZ,cAAc;IACd,QAAQ,CAAC,KAAK,EAAE,GAAG;QACf,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAC5C,MAAM,OAAO,GAAG,+EAA0B,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACpE,IAAI,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;gBAC3C,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,KAAK,QAAQ,EAAE;oBACnD,OAAO,CAAC,IAAI,GAAG,CAAC;4BACZ,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,iBAAiB;4BAC/C,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK;4BACpC,QAAQ,EAAE,CAAC;yBACd,CAAC,CAAC;iBACN;gBACD,IAAI,IAAI,CAAC,WAAW,EAAE;oBAClB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;wBAClB,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;qBACxB;oBACD,IAAI,MAAM,GAAG,IAAI,sEAAa,EAAE,CAAC;oBACjC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;oBACxD,MAAM,CAAC,QAAQ,GAAG,uEAAa,CAAC;oBAChC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;oBAChC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBAChC;aACJ;YACD,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;YACzB,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC;YACrB,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;gBACjC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACxB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;aACzB;YAGD,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;gBACzF,IAAI,IAAI,CAAC,kBAAkB,EAAE;oBACzB,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;wBAClC,IAAI,IAAI,CAAC,eAAe,EAAE;4BACtB,MAAM,IAAI,GAAG,EAAE,CAAC;4BAChB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,cAAc,CAAC;4BAC5C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;4BACpE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;yBACtB;qBACJ;oBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;wBACpC,IAAI,IAAI,CAAC,eAAe,EAAE;4BACtB,MAAM,IAAI,GAAG,EAAE,CAAC;4BAChB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;4BAClC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;4BAChE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;yBACtB;qBACJ;iBACJ;gBACD,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;oBACjC,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;iBACxC;qBAAM;oBACH,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;iBACrE;gBACD,IAAI,IAAI,CAAC,WAAW,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE;oBACrD,IAAI,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC3E,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;qBAChE;iBACJ;gBACD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;SACN;QACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAChC,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;QACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IACjC,CAAC;IACD,cAAc;QACV,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,EAAE;YACzC,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC3C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC1B,CAAC,CAAC,CAAC;YACH,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBAChC,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC5B,IAAI,IAAI,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;oBAC7H,IAAI,IAAI,EAAE;wBACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;wBACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACnB;yBAAM;wBACH,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;qBAClB;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aAC1B;iBAAM;gBACH,IAAI,IAAI,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;gBACzI,IAAI,IAAI,EAAE;oBACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;iBAC1B;aACJ;SACJ;IACL,CAAC;IACD,cAAc,CAAC,QAAQ,GAAG,KAAK;QAC3B,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,sBAAsB,CAAC,QAAQ;QAC3B,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACjC,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,OAAO,EAAE,CAAC;aACb;iBAAM;gBACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE;wBACpD,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;qBACnC;oBACD,OAAO,EAAE,CAAC;gBACd,CAAC,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,QAAQ,CAAC,WAAoB;QACzB,OAAO,IAAI,OAAO,CAAU,OAAO,CAAC,EAAE;YAClC,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,MAAM,OAAO,GAAG,+EAA0B,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACpE,+FAA+F;gBAC/F,IAAI,WAAW,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;oBACzB,OAAO,CAAC,KAAK,CAAC,CAAC;iBAClB;qBAAM;oBACH,IAAI,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;wBAC3C,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,KAAK,QAAQ,EAAE;4BACnD,OAAO,CAAC,IAAI,GAAG,CAAC;oCACZ,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,iBAAiB;oCAC/C,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK;oCACpC,QAAQ,EAAE,CAAC;iCACd,CAAC,CAAC;yBACN;wBACD,IAAI,IAAI,CAAC,WAAW,EAAE;4BAClB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gCAClB,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;6BACxB;4BACD,IAAI,MAAM,GAAG,IAAI,sEAAa,EAAE,CAAC;4BACjC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;4BACxD,MAAM,CAAC,QAAQ,GAAG,uEAAa,CAAC;4BAChC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;4BAChC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;yBAChC;qBACJ;oBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;wBACjC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;wBACxB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;qBACzB;oBACD,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;wBACxF,IAAI,KAAK,GAAG,IAAI,CAAC;wBACjB,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;4BAClC,KAAK,IAAI,CAAC,CAAC;yBACd;wBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;4BACpC,KAAK,IAAI,CAAC,CAAC;yBACd;wBACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;wBACnB,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;4BAC7D,OAAO;gCACH,IAAI,EAAE,EAAE;gCACR,QAAQ,EAAE,KAAK;gCACf,KAAK,EAAE,KAAK;6BACf;wBACL,CAAC,CAAC,CAAC;wBACH,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;wBACrB,OAAO,CAAC,IAAI,CAAC,CAAC;oBAClB,CAAC,CAAC,CAAC;iBACN;aACJ;iBAAM;gBACH,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;oBACvH,IAAI,IAAI,CAAC,WAAW,EAAE;wBAClB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;wBAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC9C,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC7F,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;wBAC7B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;qBACzD;yBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC;wBACnD,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE;wBACtE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;wBAC1C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;qBACtE;iBACJ;gBACD,OAAO,CAAC,KAAK,CAAC,CAAC;aAClB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,QAAQ,CAAC,KAAK;QACV,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IACD,SAAS;QACL,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACzB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,EAAE;gBAChC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;oBACjC,IAAI,IAAI,CAAC,YAAY,EAAE;wBACnB,IAAI,SAAS,GAAG,EAAE,CAAC;wBACnB,IAAI,IAAI,CAAC,UAAU,EAAE;4BACjB,IAAI,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE;gCAC3E,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oCAC3C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gCAC1B,CAAC,CAAC,CAAC;gCACH,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;oCACjD,MAAM,IAAI,GAAG,EAAE,CAAC;oCAChB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;wCAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;4CACvD,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE;gDAC/C,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;6CACvF;wCACL,CAAC,CAAC,CAAC;wCACH,IAAI,KAAK,EAAE;4CACP,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;4CACtB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yCACpB;6CAAM;4CACH,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;yCACtB;oCACL,CAAC,CAAC,CAAC;oCACH,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;wCACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;qCAC1B;iCACJ;qCAAM;oCACH,MAAM,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;wCACvD,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE;4CAC/C,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC;yCACpG;oCACL,CAAC,CAAC,CAAC;oCACH,IAAI,KAAK,EAAE;wCACP,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;wCACtB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;qCAC3B;yCAAM;wCACH,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;qCACnC;iCACJ;6BACJ;iCAAM;gCACH,SAAS,GAAG,IAAI,CAAC;6BACpB;yBACJ;6BAAM;4BACH,SAAS,GAAG,IAAI,CAAC;yBACpB;wBACD,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,IAAI,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;4BAC/H,+BAA+B;4BAC/B,MAAM,OAAO,GAAG,4FAAkC,EAAE,CAAC;4BACrD,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;4BACrB,MAAM,MAAM,GAAG,IAAI,sEAAa,EAAE,CAAC;4BACnC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC;4BACnC,MAAM,CAAC,QAAQ,GAAG,wEAAc,CAAC;4BACjC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;4BAC/B,IAAI,WAAW,GAAG,IAAI,CAAC;4BACvB,IAAI,IAAI,CAAC,QAAQ,EAAE;gCACf,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;oCAC/C,MAAM,CAAC,QAAQ,GAAG,qEAAW,CAAC;iCACjC;qCAAM;oCACH,WAAW,GAAG,KAAK,CAAC;iCACvB;6BACJ;4BACD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BAC7B,YAAY;4BACZ,mBAAmB;4BACnB,IAAI,WAAW,EAAE;gCACb,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,EACxC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;oCAC3C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;oCAC5B,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oCAC9B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;oCAC9B,IAAI,IAAI,CAAC,QAAQ,EAAE;wCACf,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;wCACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;qCAC1B;yCAAM;wCACH,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;wCACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;qCAC7B;oCACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gCAC/B,CAAC,CAAC,CAAC;6BACV;4BACD,YAAY;yBACf;qBACJ;yBAAM;wBACH,IAAI,IAAI,CAAC,UAAU,EAAE;4BACjB,IAAI,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE;gCAC3E,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oCAC3C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gCAC1B,CAAC,CAAC,CAAC;gCACH,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;oCACjD,MAAM,IAAI,GAAG,EAAE,CAAC;oCAChB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;wCAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;4CACvD,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE;gDAC/C,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;6CACvF;wCACL,CAAC,CAAC,CAAC;wCACH,IAAI,KAAK,EAAE;4CACP,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;4CACtB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yCACpB;oCACL,CAAC,CAAC,CAAC;oCACH,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;wCACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;qCAC1B;iCACJ;qCAAM;oCACH,MAAM,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;wCACvD,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE;4CAC/C,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC;yCACpG;oCACL,CAAC,CAAC,CAAC;oCACH,IAAI,KAAK,EAAE;wCACP,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;wCACtB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;qCAC3B;iCACJ;6BACJ;yBACJ;qBACJ;iBACJ;qBAAM;oBACH,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;oBACnC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;oBAC/B,IAAI,IAAI,CAAC,wBAAwB,EAAE;wBAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE;4BACf,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;4BACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gCACjC,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oCAC3C,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE;wCACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;wCACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qCAC9B;yCAAM;wCACH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;qCACzB;gCACL,CAAC,CAAC,CAAC;6BACN;iCAAM;gCACH,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oCAC3C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;wCACxC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,EAAE;4CACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4CAC3B,OAAO,IAAI,CAAC;yCACf;wCACD,OAAO,KAAK,CAAC;oCACjB,CAAC,CAAC,CAAC;gCACP,CAAC,CAAC,CAAC;6BACN;yBACJ;6BAAM;4BACH,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gCAC3C,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE;oCACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oCACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;iCAC1B;qCAAM;oCACH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;iCACzB;4BACL,CAAC,CAAC,CAAC;yBACN;qBACJ;iBACJ;aACJ;iBAAM;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aAC1B;SACJ;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,WAAW,CAAC,KAAK;QACb,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,KAAK,EAAE;YACP,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACnB,MAAM,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,KAAK;iBACf,CAAC,CAAC;YACP,CAAC,CAAC;SACL;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,YAAY;IACZ,cAAc;IACd,YAAY;QACR,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;aAC/B;SACJ;aAAM;YACH,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACzC,IAAI,IAAI,CAAC,WAAW,EAAE;oBAClB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;iBAC/B;YACL,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,UAAU,CAAC,KAAK;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;YACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;YACpF,IAAI,OAAO,EAAE;gBACT,OAAO,CAAC,KAAK,EAAE,CAAC;aACnB;SACJ;QACD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACxB,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;QACD,6BAA6B;IACjC,CAAC;IACD,UAAU,CAAC,KAAK;QACZ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IACD,YAAY;IACZ,kBAAkB;IAClB,KAAK,CAAC,KAAK;QACP,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACjC,QAAQ,KAAK,CAAC,IAAI,EAAE;gBAChB,KAAK,WAAW;oBACZ,IAAI,IAAI,CAAC,QAAQ,EAAE;wBACf,IAAI,IAAI,CAAC,wBAAwB,EAAE;4BAC/B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;4BAC9D,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE;gCAC7D,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;6BACzB;4BACD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;yBAChE;qBACJ;yBAAM;wBACH,IAAI,IAAI,CAAC,WAAW,EAAE;4BAClB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;yBAC/B;qBACJ;oBACD,MAAM;gBACV,KAAK,SAAS;oBACV,IAAI,IAAI,CAAC,QAAQ,EAAE;wBACf,IAAI,IAAI,CAAC,wBAAwB,EAAE;4BAC/B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;4BAC9D,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;gCACtB,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;6BACzB;4BACD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;yBAChE;qBACJ;yBAAM;wBACH,IAAI,IAAI,CAAC,WAAW,EAAE;4BAClB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;yBAC/B;qBACJ;oBACD,MAAM;gBACV,KAAK,QAAQ;oBACT,IAAI,IAAI,CAAC,QAAQ,EAAE;wBACf,IAAI,IAAI,CAAC,WAAW,EAAE;4BAClB,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;yBAChC;qBACJ;oBACD,MAAM;gBACV,KAAK,KAAK;oBACN,IAAI,IAAI,CAAC,WAAW,EAAE;wBAClB,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;qBAChC;oBACD,MAAM;gBACV,KAAK,OAAO,CAAC;gBACb,KAAK,OAAO;oBACR,IAAI,IAAI,CAAC,QAAQ,EAAE;wBACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;wBACvE,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;4BACpC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;yBAChC;qBACJ;yBAAM;wBACH,IAAI,IAAI,CAAC,WAAW,EAAE;4BAClB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;4BAC5B,KAAK,CAAC,eAAe,EAAE,CAAC;yBAC3B;qBACJ;oBACD,MAAM;gBACV,KAAK,WAAW,CAAC;gBACjB,KAAK,YAAY;oBACb,MAAM;gBACV;oBACI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;wBAChB,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;4BACpC,IAAI,IAAI,CAAC,WAAW,EAAE;gCAClB,KAAK,CAAC,eAAe,EAAE,CAAC;gCACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gCACxB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;6BAC/B;yBACJ;qBACJ;oBACD,MAAM;aACb;SACJ;IACL,CAAC;IACD,KAAK,CAAC,KAAK;QACP,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACjC,QAAQ,KAAK,CAAC,IAAI,EAAE;gBAChB,KAAK,WAAW;oBACZ,IAAI,IAAI,CAAC,wBAAwB,EAAE;wBAC/B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;wBAC9D,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE;4BAC7D,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;yBACzB;wBACD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;qBAChE;oBACD,MAAM;gBACV,KAAK,SAAS;oBACV,IAAI,IAAI,CAAC,wBAAwB,EAAE;wBAC/B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;wBAC9D,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;4BACtB,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;yBACzB;wBACD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;qBAChE;oBACD,MAAM;gBACV,KAAK,QAAQ;oBACT,IAAI,IAAI,CAAC,WAAW,EAAE;wBAClB,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;wBAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;wBACpE,IAAI,OAAO,EAAE;4BACT,OAAO,CAAC,KAAK,EAAE,CAAC;yBACnB;qBACJ;oBACD,MAAM;gBACV,KAAK,KAAK;oBACN,IAAI,IAAI,CAAC,WAAW,EAAE;wBAClB,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;qBAChC;oBACD,MAAM;gBACV,KAAK,OAAO,CAAC;gBACb,KAAK,OAAO;oBACR,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;oBACvE,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;wBACpC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;wBAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;wBACpE,IAAI,OAAO,EAAE;4BACT,OAAO,CAAC,KAAK,EAAE,CAAC;yBACnB;qBACJ;oBACD,MAAM;gBACV;oBACI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;oBAC1B,MAAM;aACb;SACJ;IACL,CAAC;IACD,YAAY;IACZ,QAAQ;QACJ,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC/B;IACL,CAAC;;AA//BM,oBAAI,GAAQ,UAAW;AACvB,uBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,iGAA0B,CAAC,CAAC,CAAC;;;;;4CAgUzC,kDAAM,SAAC,mFAA4B;;;0BA/TjE,qDAAS,SAAC,aAAa;2BAIvB,iDAAK;iCAUL,kDAAM;yBAGN,iDAAK;+BAcL,kDAAM;0BAIN,iDAAK;gCAwDL,kDAAM;kCAKN,iDAAK;wCAsBL,kDAAM;sBAKN,iDAAK;4BASL,kDAAM;gCA+DN,iDAAK;sCAUL,kDAAM;8BAGN,iDAAK;oCASL,kDAAM;uBAGN,iDAAK;6BASL,kDAAM;0BAGN,iDAAK;gCASL,kDAAM;+BAuEN,kDAAM;;AA3TE,eAAe;IAN3B,yDAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,wEAAsC;QAEtC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,eAAe;AAAA;AAkgCrB,MAAM,aAAc,SAAQ,oEAAS;IAMxC,MAAM,CAAU,eAAe,CAAC,IAAI;QAChC,aAAa,CAAC,mBAAmB,EAAE,CAAC;QACpC,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACjC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC;SAC/E;IACL,CAAC;IACD,MAAM,CAAC,SAAS;QACZ,IAAI,CAAC,gBAAgB,EAAE;QACvB,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,UAAU;YACd,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC;YAC1C,CAAC;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;YAC5D,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE;gBACN,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,mBAAmB;YACvB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,qBAAqB;YAC5B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,aAAa,CAAC,eAAe,IAAI,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC;YACjF,CAAC;YACD,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,cAAc,EAAE,aAAa,CAAC,oBAAoB;gBAClD,eAAe,EAAE,MAAM;gBACvB,iBAAiB,EAAE,mBAAmB;aACzC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,gBAAgB;YACpB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,qHAA0B,CAAC;YACxD,KAAK,EAAE,sBAAsB;YAC7B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,aAAa,CAAC,eAAe,IAAI,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC;YACjF,CAAC;YACD,QAAQ,EAAE;gBACN,WAAW,EAAE,sBAAsB;gBACnC,YAAY,EAAE,aAAa,CAAC,YAAY;aAC3C;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,mBAAmB;YACvB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,qBAAqB;YAC5B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,CAAC,aAAa,CAAC,eAAe,IAAI,CAAC,aAAa,CAAC,eAAe,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACtH,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,mBAAmB;YAC1B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,CAAC,aAAa,CAAC,eAAe,IAAI,CAAC,aAAa,CAAC,eAAe,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACtH,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,mBAAmB;YAC1B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,aAAa,CAAC,eAAe,IAAI,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC;YACjF,CAAC;YACD,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,cAAc,EAAE,aAAa,CAAC,kBAAkB;gBAChD,eAAe,EAAE,MAAM;gBACvB,iBAAiB,EAAE,mBAAmB;aACzC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,OAAO;YACX,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE;gBACN,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,4DAAK;aACpB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,cAAc;YACrB,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;aACtB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,WAAW;aACvB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,YAAY;YACnB,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YACzB,CAAC;YACD,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;aACtB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,gBAAgB;YACpB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,kBAAkB;YACzB,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;aACtB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,YAAY;aACxB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,YAAY;aACxB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,YAAY;aACxB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,cAAc;aAC1B;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,kBAAkB;YACtB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,oBAAoB;aAChC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,cAAc;aAC1B;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,aAAa;aACzB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,oGAAsB,CAAC;SACvD,CAAC,CAAC;IACP,CAAC;IACD,MAAM,CAAC,mBAAmB;QACtB,IAAI,aAAa,CAAC,YAAY,EAAE;YAC5B,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC;YACrC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE;gBACpC,IAAI,aAAa,CAAC,YAAY,CAAC,YAAY,EAAE;oBACzC,wEAAsB,CAAC,aAAa,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC1E,IAAI,IAAI,EAAE;4BACN,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC;4BAErC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gCACpD,MAAM,GAAG,GAAG,IAAI,wFAAwB,EAAE,CAAC;gCAC3C,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;gCAC3B,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;gCACpC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACxB,CAAC,CAAC,CAAC;4BACH,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAC3C,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC;4BACjE,IAAI,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;4BAC7C,mBAAmB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC;4BACjE,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;4BAE7D,IAAI,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;4BAE3C,iBAAiB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC,CAAC;4BAC3E,iBAAiB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,CAAC;4BACvE,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;4BACzD,uFAAgC,CAAC,IAAI,CAAC,CAAC;yBAC1C;oBACL,CAAC,CAAC,CAAC;iBACN;aACJ;SACJ;IACL,CAAC;;AAlPe,kBAAI,GAAG,CAAC,sCAAsC,CAAC;AAChD,kCAAoB,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;AACvE,gCAAkB,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;AACrE,0BAAY,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;AC9iCf;AACJ;AACc;IAQhE,cAAc,SAAd,cAAe,SAAQ,oEAAc;;;QAI9C,qBAAgB,GAAG,KAAK,CAAC;QACzB,iBAAY,GAAG,SAAS,CAAC;IAI7B,CAAC;IAHG,kBAAkB;QACd,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;;AAPM,mBAAI,GAAQ,SAAU;AACtB,sBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,+FAAyB,CAAC,CAAC,CAAC;AAF9D,cAAc;IAN1B,wDAAS,CAAC;QACP,QAAQ,EAAE,aAAa;QACvB,uEAAqC;QAErC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,cAAc;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACVwC;AACH;AACN;AACP;AAC0B;IAOhE,qBAAqB,SAArB,qBAAsB,SAAQ,2DAAc;IAMrD,IAAI,UAAU;QACV,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;SAC3C;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,WAAW,GAAG,GAAG,CAAC;SAC1C;IACL,CAAC;IAED,kBAAkB;QACd,iFAA4B,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACpC,IAAI,CAAC,EAAE;gBACH,gFAA8B,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBACpF,IAAI,MAAM,IAAI,MAAM,CAAC,eAAe,EAAE;wBAClC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;wBACtC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;qBAC9B;gBACL,CAAC,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;IACP,CAAC;;AA5BM,0BAAI,GAAQ,gBAAiB;AAC7B,6BAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,sGAAgC,CAAC,CAAC,CAAC;AAFrE,qBAAqB;IALjC,wDAAS,CAAC;QACP,QAAQ,EAAE,sBAAsB;QAChC,gFAA4C;QAC5C,eAAe,EAAE,yEAA8B;KAClD,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXyF;AACnD;AACC;AACf;AACS;AACI;AACJ;AACE;AACJ;AACd;AACsC;AACF;AACA;AACjC;AACsE;AACxB;AACN;AAC5B;AAE2B;AACG;AACnB;IAQhE,qBAAqB,SAArB,qBAAsB,SAAQ,2DAAc;IAoHrD,YAAY,SAA2B,EAAU,eAAqC,EAAE,KAAwB,EAA+C,IAAI;QAC/J,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD0B,oBAAe,GAAf,eAAe,CAAsB;QAAyE,SAAI,GAAJ,IAAI;QAtFzJ,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QAgB1C,uBAAkB,GAAG,IAAI,wDAAY,EAAO;QAgE5C,sBAAiB,GAAG,IAAI,wDAAY,EAAO;QAG3C,gBAAW,GAAG,IAAI,wDAAY,EAAO;QAqC/C,aAAQ,GAAG,CAAC,CAAO,EAAW,EAAE;YAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACjD,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,KAAK,CAAC,EAAE;gBACxC,0BAA0B;gBAC1B,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,YAAY,EAAE;oBAC1C,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;iBACrF;qBACI,IAAI,IAAI,CAAC,cAAc,EAAE;oBAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;iBACjD;qBACI,IAAI,IAAI,CAAC,YAAY,EAAE;oBACxB,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;iBAC3C;;oBACI,OAAO,IAAI;aACnB;iBACI,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,KAAK,CAAC,EAAE;gBAC7C,kBAAkB;gBAClB,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;oBACpI,kCAAkC;oBAClC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;iBACjF;qBACI,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;oBAC/F,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;iBAC7C;;oBACI,OAAO,IAAI,CAAC;aAEpB;iBACI,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,KAAK,CAAC,EAAE;gBAC7C,aAAa;gBACb,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE;oBACrI,+BAA+B;oBAC/B,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;iBACvE;qBACI,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;oBACrH,cAAc;oBACd,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;iBAClC;gBACD,OAAO,IAAI,CAAC;aACf;iBACI,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,KAAK,CAAC,IAAI,IAAI,CAAC,sBAAsB,KAAK,SAAS,IAAI,IAAI,CAAC,6BAA6B,KAAK,CAAC,EAAE;gBACtI,aAAa;gBACb,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,sBAAsB,KAAK,SAAS,IAAI,IAAI,CAAC,6BAA6B,KAAK,CAAC,EAAE;oBAC5G,OAAO,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;iBACzE;qBACI,IAAI,IAAI,CAAC,sBAAsB,KAAK,SAAS,IAAI,IAAI,CAAC,6BAA6B,KAAK,CAAC,EAAE;oBAC5F,OAAO,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;iBACrC;;oBACI,OAAO,IAAI,CAAC;aACpB;iBACI,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,KAAK,CAAC,IAAI,IAAI,CAAC,sBAAsB,KAAK,SAAS,IAAI,IAAI,CAAC,6BAA6B,KAAK,CAAC,EAAE;gBACtI,aAAa;gBACb,IAAI,IAAI,CAAC,YAAY,EAAE;oBACnB,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;iBAC1C;;oBACI,OAAO,IAAI,CAAC;aACpB;;gBACI,OAAO,IAAI;QACpB,CAAC;QA1FG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACtC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAsB,EAAE,EAAE;YACxD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;QAvGG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QASG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAOG,UAAU;QACV,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;YAChC,OAAO,wEAAa,CAAC;SACxB;aAAM;YACH,OAAO,qEAAU,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SACpD;IACL,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,GAAG,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAKG,UAAU;QACV,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;YAChC,OAAO,wEAAa,CAAC;SACxB;aAAM;YACH,OAAO,qEAAU,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SACpD;IAEL,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,GAAG,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAQG,SAAS;QACT,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;YAC/B,OAAO,4EAAY,CAAC;SACvB;aAAM;YACH,OAAO,yEAAS,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;SAClD;IAEL,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,GAAG,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAKG,WAAW;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;IAC1C,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,CAAC;QACrC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAiBD,kBAAkB;QACd,0FAAoC,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;YAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC;YAC5D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;YACpD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC;YAChE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW;YACjD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB;YAC/D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;YAC5D,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;YAChE,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC;YAC9E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;YACxD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;YAC1D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;QAC9D,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,YAAY,CAAC,IAAU;QAC3B,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc;QACtE,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;QAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACzE,OAAO,SAAS,CAAC;IACrB,CAAC;IA+DD,mBAAmB,CAAC,CAAO;QACvB,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,sBAAsB,KAAK,CAAC,IAAI,IAAI,CAAC,6BAA6B,KAAK,CAAC,EAAE;YAC/E,OAAO,CAAC,IAAI,WAAW,CAAC;SAC3B;aACI,IAAI,IAAI,CAAC,sBAAsB,KAAK,CAAC,IAAI,IAAI,CAAC,6BAA6B,KAAK,CAAC,EAAE;YACpF,OAAO,CAAC,IAAI,WAAW,CAAC;SAC3B;IACL,CAAC;IACD,UAAU,CAAC,CAAO,EAAE,IAAY;QAC5B,IAAI,IAAI,IAAI,GAAG,EAAE;YACb,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;SAClC;aACI;YACD,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;aACpC;SACJ;IACL,CAAC;IAED,eAAe,CAAC,CAAO;QACnB,IAAI,IAAI,CAAC,UAAU,IAAI,SAAS,EAAE;YAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC1B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAClD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAChD,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,CAAC,EAAE;oBACxC,OAAO,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,OAAO,CAAC;iBACzC;aACJ;SACJ;IACL,CAAC;IAED,gBAAgB,CAAC,SAAiB;QAC9B,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;IAChD,CAAC;IAED,kBAAkB,CAAC,aAAqB;QACpC,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC;IACtD,CAAC;IAED,iBAAiB,CAAC,CAAO;QACrB,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAC/B,IAAI,OAAO,GAAS,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;YACvB,sGAAsG;YACtG,OAAO,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YACpF,OAAO,CAAC,IAAI,WAAW,IAAI,CAAC,IAAI,OAAO,CAAC;SAC3C;aAAM,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;YAC9B,yHAAyH;YACzH,OAAO,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YAC9F,OAAO,CAAC,IAAI,WAAW,IAAI,CAAC,IAAI,OAAO,CAAC;SAC3C;;YACI,OAAO,KAAK;IACrB,CAAC;IAGD,gBAAgB,CAAC,CAAO;QACpB,IAAI,IAAI,CAAC,kBAAkB,KAAK,EAAE,EAAE;YAChC,IAAI,IAAI,CAAC,gBAAgB,KAAK,EAAE,EAAE;gBAC9B,IAAI,YAAY,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC/B,IAAI,IAAI,CAAC,gBAAgB,IAAI,GAAG,EAAE;oBAC9B,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG,EAAE;wBACzB,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;wBAC/C,OAAO,iBAAiB,IAAI,CAAC,IAAI,iBAAiB,IAAI,IAAI,CAAC,kBAAkB,CAAC;qBACjF;yBACI,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG,EAAE;wBAC9B,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;wBACxD,MAAM,eAAe,GAAG,IAAI,IAAI,CAC5B,aAAa,CAAC,WAAW,EAAE,EAC3B,aAAa,CAAC,QAAQ,EAAE,EACxB,aAAa,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,kBAAkB,GAAG,CAAC,CACxD,CAAC;wBACF,OAAO,CAAC,IAAI,eAAe,IAAI,CAAC,IAAI,aAAa,CAAC;qBACrD;iBACJ;qBACI,IAAI,IAAI,CAAC,gBAAgB,IAAI,GAAG,EAAE;oBACnC,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;oBAEnD,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG,EAAE,EAAE,0BAA0B;wBACrD,MAAM,mBAAmB,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACvE,MAAM,iBAAiB,GAAG,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC;wBACxD,iBAAiB,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,GAAG,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC;wBACxF,OAAO,CAAC,IAAI,mBAAmB,IAAI,CAAC,IAAI,iBAAiB,CAAC;qBAC7D;yBAAM,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG,EAAE,EAAE,yBAAyB;wBAC3D,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;wBAC/D,MAAM,eAAe,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;wBAC5C,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,yBAAyB;wBACpG,MAAM,iBAAiB,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;wBAE9C,OAAO,CAAC,IAAI,eAAe,IAAI,CAAC,IAAI,iBAAiB,CAAC;qBACzD;iBAEJ;qBACI;oBACD,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG,EAAE;wBACzB,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;wBACnC,OAAO,aAAa,IAAI,CAAC,IAAI,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC;qBACxE;yBACI,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG,EAAE;wBAC9B,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;wBACnC,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,2BAA2B;wBACzF,OAAO,aAAa,IAAI,uBAAuB,IAAI,aAAa,IAAI,EAAE,CAAC;qBAC1E;iBACJ;aACJ;SACJ;IACL,CAAC;IAED,SAAS,CAAC,IAAI;QACV,MAAM,QAAQ,GAAG,0FAAkC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,CAAC;QAC5F,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9C,6BAA6B;SAChC;IACL,CAAC;IAED,aAAa,CAAC,EAAE;QACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,GAAG,+EAA6B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC3D;QACD,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAID,QAAQ;QACJ,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,KAAK,EAAE,CAAC;SACnB;IACL,CAAC;;AAtVM,0BAAI,GAAQ,gBAAiB;AAC7B,6BAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,uGAAgC,CAAC,CAAC,CAAC;;;;;4CAiHqC,kDAAM,SAAC,kFAA4B;;;yBAjGrJ,iDAAK;+BAWL,kDAAM;2BAMN,iDAAK;iCAUL,kDAAM;yBAIN,iDAAK;yBAeL,iDAAK;wBAmBL,iDAAK;0BAgBL,iDAAK;gCAUL,kDAAM;0BAGN,kDAAM;;AAjHE,qBAAqB;IANjC,yDAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;QAC9B,8EAA4C;QAE5C,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,qBAAqB;AAAA;AA2V3B,MAAM,mBAAoB,SAAQ,qEAAS;IACtC,MAAM,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,EAAE,cAAwB,EAAE;QAC5E,IAAI,YAAY,KAAK,IAAI,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjD,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;gBAC/B,OAAO,YAAY,CAAC,UAAU,CAAC;YACnC,CAAC,CAAC;SACL;IACL,CAAC;IAQD,MAAM,CAAC,SAAS;QAEZ,oFAAmB,CAAC;YAChB,GAAG,EAAE,sCAAsC;YAC3C,EAAE,EAAE,gBAAgB;YACpB,OAAO,EAAE,kBAAkB;YAC3B,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,0FAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,gBAAgB,CAAC;YAChD,CAAC;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,+HAA8B,CAAC;YAC5D,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE;gBACN,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,uGAAoB,CAAC;YAClD,KAAK,EAAE,cAAc;YACrB,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,qEAAU;aACzB;SACJ,CAAC;QACF,gFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,uGAAoB,CAAC;YAClD,KAAK,EAAE,cAAc;YACrB,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,qEAAU;aACzB;SACJ,CAAC;QACF,gFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,uGAAoB,CAAC;YAClD,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,yEAAS;aACxB;SACJ,CAAC;QACF,gFAAe,CAAC;YACZ,EAAE,EAAE,gBAAgB;YACpB,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,uGAAoB,CAAC;YAClD,KAAK,EAAE,kBAAkB;YACzB,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE;oBACT,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;oBACjC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;oBAClC,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE;oBACpC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE;oBACnC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;oBACjC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE;oBACnC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;iBACpC;gBACD,iBAAiB,EAAE,SAAS;gBAC5B,eAAe,EAAE,OAAO;aAC3B;SACJ,CAAC;QACF,gFAAe,CAAC;YACZ,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,uGAAoB,CAAC;YAClD,KAAK,EAAE,iBAAiB;YACxB,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE;oBACT,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE;oBACnC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE;oBAChC,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE;oBACrC,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE;iBACzC;gBACD,iBAAiB,EAAE,SAAS;gBAC5B,eAAe,EAAE,OAAO;gBACxB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;oBACX,IAAI,kBAAkB,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC;oBACvD,IAAI,kBAAkB,KAAK,CAAC,EAAE;wBAC1B,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CACzE,UAAU,KAAK,cAAc,IAAI,UAAU,KAAK,gBAAgB,CACnE,CAAC;qBACL;yBACI,IAAI,kBAAkB,KAAK,CAAC,EAAE;wBAC/B,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CACzE,UAAU,KAAK,cAAc,IAAI,UAAU,KAAK,gBAAgB;+BAC7D,UAAU,KAAK,WAAW,IAAI,UAAU,KAAK,YAAY;+BACzD,UAAU,KAAK,cAAc,CACnC,CAAC;qBACL;yBACI,IAAI,kBAAkB,KAAK,CAAC,EAAE;wBAC/B,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CACzE,UAAU,KAAK,cAAc,IAAI,UAAU,KAAK,gBAAgB;+BAC7D,UAAU,KAAK,aAAa,IAAI,UAAU,KAAK,oBAAoB;+BACnE,UAAU,KAAK,kBAAkB,CACvC,CAAC;qBACL;yBACI,IAAI,kBAAkB,KAAK,CAAC,EAAE;wBAC/B,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CACzE,UAAU,KAAK,cAAc,IAAI,UAAU,KAAK,gBAAgB;+BAC7D,UAAU,KAAK,gBAAgB,IAAI,UAAU,KAAK,uBAAuB;+BACzE,UAAU,KAAK,iBAAiB,IAAI,UAAU,KAAK,iBAAiB,CAC1E,CAAC;qBACL;gBACL,CAAC;aACJ;SACJ,CAAC;QACF,gFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,iGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,UAAU;aACtB;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,iGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,eAAe;aAC3B;SACJ,CAAC,CAAC;QACH,oBAAoB;QACpB,sBAAsB;QACtB,gCAAgC;QAChC,0DAA0D;QAC1D,kBAAkB;QAClB,gCAAgC;QAChC,QAAQ;QACR,MAAM;QACN,oBAAoB;QACpB,2BAA2B;QAC3B,gCAAgC;QAChC,0DAA0D;QAC1D,kBAAkB;QAClB,sCAAsC;QACtC,4BAA4B;QAC5B,uDAAuD;QACvD,YAAY;QACZ,QAAQ;QACR,MAAM;QAEN,gFAAe,CAAC;YACZ,EAAE,EAAE,gBAAgB;YACpB,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,uGAAoB,CAAC;YAClD,KAAK,EAAE,oBAAoB;YAC3B,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE;oBACT,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE;oBACpC,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE;iBACzC;gBACD,iBAAiB,EAAE,SAAS;gBAC5B,eAAe,EAAE,OAAO;gBACxB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;oBACX,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CACzE,UAAU,KAAK,cAAc,IAAI,UAAU,KAAK,gBAAgB;2BAC7D,UAAU,KAAG,uBAAuB,CAC1C,CAAC;gBACN,CAAC;aACJ;YAED,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC;YACpC,CAAC;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,uBAAuB;YAC3B,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,uGAAoB,CAAC;YAClD,KAAK,EAAE,uBAAuB;YAC9B,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE;oBACT,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;oBAClC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;iBACpC;gBACD,iBAAiB,EAAE,SAAS;gBAC5B,eAAe,EAAE,OAAO;gBACxB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;oBACX,MAAM,qBAAqB,GAAG,EAAE,CAAC,YAAY,CAAC,qBAAqB;oBACnE,IAAI,qBAAqB,KAAK,CAAC,EAAE;wBAC7B,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CACzE,UAAU,KAAK,cAAc,IAAI,UAAU,KAAK,gBAAgB;+BAC7D,UAAU,KAAK,uBAAuB,CAC5C,CAAC;qBACL;yBACI,IAAI,qBAAqB,KAAK,CAAC,EAAE;wBAClC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CACzE,UAAU,KAAK,cAAc,IAAI,UAAU,KAAK,gBAAgB;+BAC7D,UAAU,KAAK,uBAAuB,CAC5C,CAAC;qBACL;gBACL,CAAC;aACJ;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,IAAI,QAAQ,CAAC;gBACb,0FAAoC,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC1C,QAAQ,GAAG,IAAI,CAAC,cAAc;gBAClC,CAAC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,CAAC,CAAC;YAC5E,CAAC;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,wGAAoB,CAAC;YAClD,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;oBACX,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CACzE,UAAU,KAAK,cAAc,IAAI,UAAU,KAAK,gBAAgB;2BAC7D,UAAU,KAAK,uBAAuB,IAAI,UAAU,KAAK,iBAAiB,CAChF,CAAC;gBACN,CAAC;aACJ;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,IAAI,QAAQ,CAAC;gBACb,0FAAoC,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC1C,QAAQ,GAAG,IAAI,CAAC,cAAc;gBAClC,CAAC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,IAAI,CAAC,qBAAqB,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,CAAC;YAC5F,CAAC;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,wGAAoB,CAAC;YAClD,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;oBACX,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CACzE,UAAU,KAAK,cAAc,IAAI,UAAU,KAAK,gBAAgB;2BAC7D,UAAU,KAAK,uBAAuB,IAAI,UAAU,KAAK,iBAAiB,CAChF,CAAC;gBACN,CAAC;aACJ;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,IAAI,QAAQ,CAAC;gBACb,0FAAoC,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC1C,QAAQ,GAAG,IAAI,CAAC,cAAc;gBAClC,CAAC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,IAAI,CAAC,qBAAqB,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,CAAC;YAC5F,CAAC;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,uGAAoB,CAAC;YAClD,KAAK,EAAE,iBAAiB;YACxB,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE;oBACT,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;oBACjC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;oBAClC,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE;oBACpC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE;oBACnC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;oBACjC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE;oBACnC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;iBACpC;gBACD,iBAAiB,EAAE,SAAS;gBAC5B,eAAe,EAAE,OAAO;aAC3B;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,CAAC;YAC9B,CAAC;SACJ,CAAC,CAAC;QAEH,gFAAe,CAAC;YACZ,EAAE,EAAE,gBAAgB;YACpB,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,uGAAoB,CAAC;YAClD,KAAK,EAAE,mBAAmB;YAC1B,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE;oBACT,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;oBAClC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE;oBACnC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE;oBAChC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE;oBAChC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;oBAC9B,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;oBAC/B,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;oBAC/B,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;oBACjC,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE;oBACpC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;oBAClC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE;oBACpC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE;iBACvC;gBACD,iBAAiB,EAAE,SAAS;gBAC5B,eAAe,EAAE,OAAO;aAC3B;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC;YACpC,CAAC;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,uGAAoB,CAAC;YAClD,KAAK,EAAE,6BAA6B;YACpC,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE;oBACT,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE;oBACtC,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE;iBAC3C;gBACD,iBAAiB,EAAE,SAAS;gBAC5B,eAAe,EAAE,OAAO;gBACxB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;oBACX,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS;oBAC3C,IAAI,SAAS,KAAK,CAAC,EAAE;wBACjB,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CACzE,UAAU,KAAK,WAAW,IAAI,UAAU,KAAK,YAAY,IAAI,UAAU,KAAG,cAAc,CAC3F,CAAC;qBACL;yBACI,IAAI,SAAS,KAAK,CAAC,EAAE;wBACtB,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CACzE,UAAU,KAAK,WAAW,IAAI,UAAU,KAAK,cAAc,IAAI,UAAU,KAAG,cAAc,CAC7F,CAAC;qBACL;gBAEL,CAAC;aACJ;YAED,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC;YACpC,CAAC;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,wGAAoB,CAAC;YAClD,KAAK,EAAE,oBAAoB;YAC3B,QAAQ,EAAE;gBACN,SAAS,EAAE,OAAO;gBAClB,UAAU,EAAE,UAAU;aACzB;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,IAAI,QAAQ,CAAC;gBACb,0FAAoC,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC1C,QAAQ,GAAG,IAAI,CAAC,SAAS;gBAC7B,CAAC,CAAC,CAAC;gBAEH,OAAO,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,QAAQ,IAAI,GAAG,CAAC;YACvD,CAAC;SACJ,CAAC,CAAC;QAEH,gFAAe,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,2GAAmB,CAAC;YACjD,KAAK,EAAE,sBAAsB;YAC7B,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,aAAa;aAChB;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,IAAI,QAAQ,CAAC;gBACb,0FAAoC,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC1C,QAAQ,GAAG,IAAI,CAAC,SAAS;gBAC7B,CAAC,CAAC,CAAC;gBAEH,OAAO,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,QAAQ,IAAI,GAAG,CAAC;YACvD,CAAC;SAEJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,uGAAoB,CAAC;YAClD,KAAK,EAAE,cAAc;YACrB,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE;oBACT,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE;oBAChC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;iBAClC;gBACD,iBAAiB,EAAE,SAAS;gBAC5B,eAAe,EAAE,OAAO;aAC3B;YAED,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC;YACpC,CAAC;SACJ,CAAC,CAAC;QAEH,gFAAe,CAAC;YACZ,EAAE,EAAE,oBAAoB;YACxB,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,2GAAmB,CAAC;YACjD,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;aACb;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,IAAI,QAAQ,CAAC;gBACb,0FAAoC,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC1C,QAAQ,GAAG,IAAI,CAAC,WAAW;gBAC/B,CAAC,CAAC,CAAC;gBAEH,OAAO,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC;YACpC,CAAC;SACJ,CAAC,CAAC;QAEH,gFAAe,CAAC;YACZ,EAAE,EAAE,kBAAkB;YACtB,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,uGAAoB,CAAC;YAClD,KAAK,EAAE,kBAAkB;YACzB,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE;oBACT,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;oBAC/B,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE;oBAChC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;iBACpC;gBACD,iBAAiB,EAAE,SAAS;gBAC5B,eAAe,EAAE,OAAO;aAC3B;YAED,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,IAAI,QAAQ,CAAC;gBACb,0FAAoC,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC1C,QAAQ,GAAG,IAAI,CAAC,WAAW;gBAC/B,CAAC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC;YACpC,CAAC;SACJ,CAAC,CAAC;IAEP,CAAC;;AApde,wBAAI,GAAG,CAAC,sCAAsC,CAAC;AACxD,+BAAW,GAAG,CAAC,gBAAgB,EAAE,uBAAuB;IAC3D,iBAAiB,EAAE,cAAc;IACjC,gBAAgB,EAAE,iBAAiB;IACnC,WAAW,EAAE,YAAY;IACzB,cAAc,EAAE,aAAa;IAC7B,oBAAoB,EAAE,kBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtYK;AAC0D;AAC/D;AACgD;AACV;AACrB;AACqB;AACpB;AACC;AACqB;AACxB;AACF;AACZ;AAE0B;IAQhE,eAAe,SAAf,eAAgB,SAAQ,4DAAc;IAsB/C,YAAoB,YAA0B,EAAE,KAAwB,EAA+C,IAAI;QACvH,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,iBAAY,GAAZ,YAAY,CAAc;QAAyE,SAAI,GAAJ,IAAI;QAEvH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,qEAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IACpF,CAAC;QAnBG,QAAQ;QACR,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;YAC5B,OAAO,IAAI,CAAC,aAAa,CAAC;SAC7B;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;IACvC,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAYD,kBAAkB;QACd,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAEO,eAAe;QACnB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,YAAY,GAAG,gEAAY,CAAC,sEAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;SACxG;IACL,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IACD,sBAAsB;QAClB,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,QAAQ;QACJ,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACjD,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QACpC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACtC,YAAY,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;;AAhDM,oBAAI,GAAQ,UAAW;AACvB,uBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,iGAA0B,CAAC,CAAC,CAAC;;;;4CAoBG,kDAAM,SAAC,kFAA4B;;;uBAjB7G,iDAAK;qBAeL,qDAAS,SAAC,QAAQ;;AApBV,eAAe;IAN3B,yDAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,wEAAsC;QAEtC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,eAAe;AAAA;AAmDrB,MAAM,aAAc,SAAQ,oEAAS;IAExC,MAAM,CAAC,SAAS;QACZ,oFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,UAAU;YACd,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC;YAC1C,CAAC;SACJ,CAAC,CAAC;QAGH,gFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,YAAY;YACnB,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;YAC5B,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;;AA1Be,kBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1EsC;AAC3C;AACC;AACE;AACI;AAElB;AAC0B;IAQhE,iBAAiB,SAAjB,iBAAkB,SAAQ,2DAAc;IAYjD,YAAoB,eAAgC,EAAE,KAAwB,EAA+C,IAAI;QAC7H,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,oBAAe,GAAf,eAAe,CAAiB;QAAyE,SAAI,GAAJ,IAAI;QAHjI,wBAAmB,GAAG,IAAI,CAAC;QAKvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IACD,kBAAkB;QACd,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,sFAAgC,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3E,IAAI,CAAC,mBAAmB,GAAG,QAAQ,KAAK,sEAAa,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAChF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,sFAAgC,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3E,IAAI,QAAQ,KAAK,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE;gBACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC5B;iBAAM;gBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAED,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;YAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7D,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACZ,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAClD,qFAA+B,CAAC,IAAI,CAAC,CAAC;gBACtC,0FAAoC,CAAC;oBACjC,SAAS,EAAE,IAAI,CAAC,EAAE;oBAClB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;oBAC5C,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;iBACvC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAED,QAAQ,CAAC,KAAK,EAAE,aAAa;QACzB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;gBAClC,IAAI,aAAa,EAAE;oBACf,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;iBACzE;qBAAM;oBACH,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;iBAC1E;aACJ;iBAAM;gBACH,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,EAAE,CAAC;aACzC;YACD,IAAI,CAAC,KAAK,EAAE;gBACR,MAAM,MAAM,GAAG,wFAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnE,MAAM,CAAC,iBAAiB,CAAC,GAAG,aAAa,CAAC;gBAC1C,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC9C,IAAI,aAAa,EAAE;oBACf,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC;iBACtC;qBAAM;oBACH,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC;iBACxC;gBACD,wFAAkC,CAAC;oBAC/B,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;oBACtC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;oBAClD,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;iBACvC,CAAC,CAAC;aACN;SACJ;QACD,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,aAAa,CAAC;IAC9D,CAAC;IAED,YAAY,CAAC,IAAI;QACb,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,qFAA+B,CAAC,IAAI,CAAC,CAAC;SACzC;IACL,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACnC,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;YAC7D,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACtC,IAAI,CAAC,CAAC,eAAe,EAAE;oBACnB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;wBAC5B,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;wBAC9B,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC;qBAC9D;iBACJ;qBAAM;oBACH,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;wBAC9B,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;wBAChC,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC;qBAChE;iBACJ;gBACD,OAAO,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,sBAAsB,CAAC;YACpE,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IAED,eAAe;QACX,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC;IACzD,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B;IACL,CAAC;IAED,KAAK;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;SACzB;IACL,CAAC;;AAnIM,sBAAI,GAAQ,UAAW;AACvB,yBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,gGAA0B,CAAC,CAAC,CAAC;;;;4CASS,iDAAM,SAAC,kFAA4B;;;uBAFnH,oDAAS,SAAC,UAAU;;AAVZ,iBAAiB;IAN7B,wDAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,0EAAwC;QAExC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,iBAAiB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfwB;AACqE;AAClE;AAChB;AACqD;AAC8B;AACrC;AACrB;AACL;AAC0B;AACxB;AACW;AACe;AACpB;AACJ;AACF;AACM;AAClB;AAC0B;IAOhE,aAAa,SAAb,aAAc,SAAQ,4DAAc;IA2D7C,YAAoB,SAAuB,EAAE,KAAwB,EAA+C,IAAI,EAAU,cAAmC;QACjK,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,cAAS,GAAT,SAAS,CAAc;QAAyE,SAAI,GAAJ,IAAI;QAAU,mBAAc,GAAd,cAAc,CAAqB;QApDrK,sBAAiB,GAAG,KAAK,CAAC;QAyChB,eAAU,GAAG,IAAI,wDAAY,EAAU;QAQjD,uBAAkB,GAAG,KAAK,CAAC;QAC3B,iBAAY,GAAG,EAAE,CAAC;QAId,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,uFAAgC,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3E,IAAI,CAAC,YAAY,GAAG,QAAQ,KAAK,sEAAa,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,0FAAoC,EAAE,CAAC;QACvD,2FAAqC,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YACzE,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACzB,IAAI,CAAC,aAAa,EAAE,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,kGAAyC,CAAC,GAAG,EAAE;YACnF,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACzB,IAAI,CAAC,aAAa,EAAE,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IA5ED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,KAAK;QAClB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IACD,oBAAoB;IACpB,IAAI,mBAAmB;QACnB,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACvE;QACD,OAAO,EAAE,CAAC;IACd,CAAC;QAKG,IAAI;QACJ,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IACnC,CAAC;IACD,IAAI,IAAI,CAAC,GAAG;QACR,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,GAAG,CAAC;QAC9B,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;SACpE;aAAM;YACH,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;SAC3B;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IA8CD,WAAW;QACP,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,QAAQ,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAC9B,IAAI,+EAA2B,EAAE;YAC7B,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,uFAAmC,CAAC,CAAC,IAAI,EAAE,EAAE;gBACzC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;gBACpB,MAAM,EAAE,wBAAwB;gBAChC,SAAS,EAAE,KAAK;aACnB,CAAC,CAAC;YACH,QAAQ,GAAG,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SAC1B;QACD,IAAI,QAAQ,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;gBACpB,MAAM,EAAE,wBAAwB;gBAChC,SAAS,EAAE,IAAI,CAAC,QAAQ;aAC3B,CAAC,CAAC;YACH,QAAQ,GAAG,EAAE,MAAM,EAAE,CAAE,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAE,EAAC,CAAC;SACrD;QACD,IAAI,CAAC,OAAO,GAAG;YACX,OAAO,EAAE;gBACL,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC;gBACzC,CAAC,YAAY,EAAE,YAAY,CAAC;gBAC5B,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;gBAC7C,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;gBAC5C,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACxC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;gBACxB,CAAC,QAAQ,CAAC;gBACV,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;gBACzC,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC;gBACnJ,CAAC,QAAQ,CAAC;gBACV,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;gBACjB,CAAC,OAAO,CAAC;gBACT,CAAC,OAAO,CAAC;gBACT,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAA0B,wBAAwB;aAC/E;YACD,iBAAiB,EAAE,IAAI;YACvB,gBAAgB,EAAE,KAAK;YACvB,eAAe,EAAE,IAAI;SACxB;IACL,CAAC;IAED,kBAAkB;IAElB,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,IAAI,sCAAsC,CAAC,CAAC;QACxG,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;gBAC9F,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,IAAI,SAAS,EAAE;oBACX,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;iBAC3B;gBACD,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;gBACrD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;SACN;QACD,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1E;aAAM;YACH,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;SAC3B;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,sBAAsB;QAClB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;gBAC9F,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,IAAI,SAAS,EAAE;oBACX,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;iBAC3B;gBACD,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;gBACrD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;SACN;QACD,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1E;aAAM;YACH,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;SAC3B;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YACnD,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;gBACzB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;aAC1D;iBAAM;gBACH,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;gBAC1D,IAAI,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE;oBACxC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;wBAChC,IAAI,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE;4BACzB,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;4BAC7F,IAAI,KAAK,EAAE;gCACP,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;6BAC7B;iCAAM;gCACH,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;6BACtB;yBACJ;oBACL,CAAC,CAAC,CAAC;iBACN;aACJ;YACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;gBAC9B,IAAI,IAAI,GAAG,2FAA+B,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBACjE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;aACzE;iBAAM;gBACH,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;aAC/B;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IACD,eAAe,CAAC,IAAY;QACxB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;QAC/D,IAAI,IAAI,EAAE;YACN,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;SACzB;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,WAAW,CAAC,IAAI;QACZ,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE;YACxB,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;aAClD;iBAAM;gBACH,IAAI,CAAC,UAAU,GAAG;oBACd,YAAY,EAAE,IAAI,CAAC,KAAK;oBACxB,sBAAsB,EAAE,EAAE;iBAC7B,CAAC;aACL;SACJ;aAAM;YACH,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxF,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE;oBAClB,IAAI,KAAK,EAAE;wBACP,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;qBAC3G;iBACJ;qBAAM;oBACH,IAAI,KAAK,EAAE;wBACP,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;qBAC5B;yBAAM;wBACH,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;qBACvF;iBACJ;aACJ;iBAAM;gBACH,IAAI,CAAC,UAAU,GAAG;oBACd,YAAY,EAAE,IAAI,CAAC,KAAK;oBACxB,sBAAsB,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;iBACnE,CAAC;aACL;SACJ;IAEL,CAAC;IACD,QAAQ;QACJ,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,UAAU,EAAE;gBACtD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;aACtB;SACJ;IACL,CAAC;IAED,QAAQ,CAAC,EAAE;QACP,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;YACjC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnC;aAAM;YACH,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACvD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SAC9C;IACL,CAAC;IAED,SAAS,CAAC,EAAE;QACR,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,QAAQ,EAAE;YAC3B,EAAE,CAAC,eAAe,EAAE,CAAC;SACxB;IACL,CAAC;IACD,OAAO,CAAC,KAAK;QACT,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC9C,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClC,IAAI,KAAK,KAAK,cAAc,EAAE;oBAC1B,IAAI,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;oBACrD,IAAI,CAAC,MAAM,EAAE;wBACT,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;wBACzC,MAAM,CAAC,EAAE,GAAG,cAAc,CAAC;wBAC3B,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;wBACzB,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;wBAC9B,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;wBAC5B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;wBAClC,IAAI,IAAI,GAAG,IAAI,CAAC;wBAChB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE;4BAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;wBAChD,CAAC,EAAE,KAAK,CAAC,CAAC;qBACb;oBACD,MAAM,CAAC,KAAK,EAAE,CAAC;iBAClB;qBAAM;oBACH,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;iBACrC;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IACD,YAAY,CAAC,KAAK;QACd,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;SAC1D;IACL,CAAC;IACD,iBAAiB,CAAC,KAAK;QACnB,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;SACvE;IACL,CAAC;IACD,gBAAgB,CAAC,KAAK;QAClB,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE;YACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;YACpC,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzE,IAAI,MAAM,EAAE;gBACR,IAAI,MAAM,CAAC,KAAK,EAAE;oBACd,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;iBACrC;gBACD,IAAI,MAAM,CAAC,UAAU,EAAE;oBACnB,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC,UAAU,CAAC;iBACpD;aACJ;SACJ;IACL,CAAC;;AA9TM,kBAAI,GAAQ,QAAS;AACrB,qBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,+FAAwB,CAAC,CAAC,CAAC;;;;4CAwDE,kDAAM,SAAC,mFAA4B;;;;mBAhC1G,iDAAK;yBAqBL,kDAAM;;AAhDE,aAAa;IALzB,yDAAS,CAAC;QACP,QAAQ,EAAE,YAAY;QACtB,sEAAoC;QACpC,eAAe,EAAE,0EAA8B;KAClD,CAAC;GACW,aAAa;AAAA;AAkUnB,MAAM,WAAY,SAAQ,oEAAS;IAEtC,MAAM,CAAC,SAAS;QACZ,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,QAAQ;YACZ,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC;YACxC,CAAC;SACJ,CAAC;QAEF,iFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;YAC5D,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,8BAA8B;aAC1C;YACD,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;SACT,CAAC;IAEN,CAAC;;AAtCe,gBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5Vb;AACwC;AACrC;AAC2C;AACb;AACrB;AACqB;AACpB;AACsB;AACxB;AACd;AAC0B;IAQhE,YAAY,SAAZ,YAAa,SAAQ,2DAAc;IAmB5C,YAAoB,SAAuB,EAAE,KAAwB,EAA+C,IAAI;QACpH,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,cAAS,GAAT,SAAS,CAAc;QAAyE,SAAI,GAAJ,IAAI;QAEpH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,qEAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAClF,CAAC;IAdD,IAAI,OAAO;QACP,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,OAAO,IAAI,CAAC,YAAY,CAAC;SAC5B;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;IAC3C,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAOD,kBAAkB;QACd,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAED,sBAAsB;QAClB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAED,mBAAmB;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,OAAO,IAAI,IAAI,EAAE;YACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;SACvE;aAAM;YACH,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;SAC1B;IACL,CAAC;;AArCM,iBAAI,GAAQ,OAAQ;AACpB,oBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,8FAAuB,CAAC,CAAC;;;;4CAgBI,kDAAM,SAAC,kFAA4B;;AAnBlG,YAAY;IANxB,yDAAS,CAAC;QACP,QAAQ,EAAE,WAAW;QACrB,qEAAmC;QAEnC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,YAAY;AAAA;AAyClB,MAAM,UAAW,SAAQ,oEAAS;IAErC,MAAM,CAAC,SAAS;QACZ,oFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,OAAO;YACX,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC;YACvC,CAAC;SACJ,CAAC;QAEF,gFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,WAAW;SACrB,CAAC,CAAC;IACP,CAAC;;AAtBe,eAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7Da;AAET;AACf;AACW;AACE;AACJ;AACW;AACzB;AACuD;AAC7B;IAOhE,qBAAqB,SAArB,qBAAsB,SAAQ,2DAAc;IAsBrD,YAAY,KAAwB,EAA+C,IAAI,EAAU,OAA8B;QAC3H,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD4D,SAAI,GAAJ,IAAI;QAAU,YAAO,GAAP,OAAO,CAAuB;QAlB/H,kBAAa,GAAG,EAAE,CAAC;QACnB,cAAS,GAAG,KAAK,CAAC;QAClB,gBAAW,GAAG,IAAI,CAAC;QACnB,UAAK,GAAG,KAAK,CAAC;QAiBV,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,oEAAmB,KAAK,KAAK,CAAC;QAC3C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,qEAAe,CAAC,iBAAiB,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,qFAAoC,CAAC,CAAC,GAAG,EAAE,EAAE;YACrE,IAAI,CAAC,KAAK,GAAG,GAAG,KAAK,KAAK,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,iGAAyC,CAAC,GAAG,EAAE;YACnF,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;gBAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC;gBACzC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC7B,MAAM,KAAK,GAAG;wBACV,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,UAAU;wBAC9C,eAAe,EAAE,MAAM;qBAC1B,CAAC;oBACF,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;wBACnD,IAAI,IAAI,EAAE;4BACN,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACb,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;gCACrD,IAAI,GAAG,EAAE;oCACL,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wCAC3B,MAAM,UAAU,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;wCACjC,IAAI,UAAU,EAAE;4CACZ,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;yCACtC;oCACL,CAAC,CAAC,CAAC;iCACN;4BACL,CAAC,CAAC,CAAC;4BACH,IAAI,CAAC,gBAAgB,EAAE,CAAC;yBAC3B;oBACL,CAAC,CAAC,CAAC;iBACN;aACJ;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IA5CD,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;QAChC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,mFAAiC,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACtF,CAAC;IAuCD,cAAc;QACV,sFAAoC,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACrF,IAAI,CAAC,EAAE;gBACH,IAAI,CAAC,kBAAkB,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC;aACjE;YACD,KAAK,CAAC,cAAc,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB;QACd,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,EAAE;YAChG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC;SACjE;IACL,CAAC;IAED,iBAAiB,CAAC,EAAE;QAChB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,wFAAsC,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE;YAC1D,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;SAChC;QACD,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,gBAAgB;QACZ,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;YACnE,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;gBACpC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClD;iBAAM;gBACH,IAAI,KAAK,GAAG,IAAI,CAAC;gBACjB,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAClC,IAAI,CAAC,KAAK,EAAE;wBACR,OAAO,IAAI,IAAI,CAAC;qBACnB;oBACD,KAAK,GAAG,KAAK,CAAC;oBACd,OAAO,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3C,CAAC,CAAC,CAAC;aACN;SACJ;QACD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;SACtC;IACL,CAAC;IAED,sBAAsB;QAClB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;SAChC;IACL,CAAC;IAED,YAAY;QACR,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,IAAI,IAAI,CAAC,WAAW,EAAE;YAC/D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;SACnC;IACL,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;SACrC;aAAM;YACH,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;SAC9B;IACL,CAAC;IAED,iBAAiB,CAAC,MAAM;QACpB,IAAI,CAAC,WAAW,GAAG,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,iBAAiB,CAAC,EAAE,EAAE,IAAI;QACtB,IAAI,OAAO,CAAC;QACZ,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,EAAE,CAAC;QACP,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACnC,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE;YACtF,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;SACrC;QACD,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7D,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;YACrB,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAC9B;aAAM,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAC1B;QACD,IAAI,OAAO,EAAE;YACT,IAAI,EAAE,CAAC,iBAAiB,EAAE;gBACtB,kFAA0B,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBACvD,kGAAgD,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wBACrH,IAAI,QAAQ,CAAC;wBACb,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;4BACd,IAAI,QAAQ,EAAE;gCACV,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;oCACb,IAAI,EAAE,CAAC,GAAG,IAAI,QAAQ,EAAE;wCACpB,IAAI,IAAI,EAAE;4CACN,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gDACnB,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;6CACnB;iDAAM;gDACH,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;6CACvB;yCACJ;6CAAM;4CACH,IAAI,CAAC,IAAI,CAAC,EAAE;gDACR,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;6CAC9B;iDAAM;gDACH,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;6CACvB;yCACJ;wCACD,OAAO,IAAI,CAAC;qCACf;oCACD,OAAO,KAAK,CAAC;gCACjB,CAAC,CAAC,CAAC;6BACN;iCAAM;gCACH,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;6BACzC;yBACJ;wBACD,IAAI,QAAQ,EAAE;4BACV,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;yBACrF;6BAAM;4BACH,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;yBAC9B;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACN;iBAAM,IAAI,EAAE,CAAC,UAAU,EAAE;gBACtB,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;oBACvF,IAAI,CAAC,EAAE;wBACH,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;qBAC1D;yBAAM;wBACH,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;qBAC9B;gBACL,CAAC,CAAC,CAAC;aACN;SACJ;QACD,EAAE,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEO,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO;QAChE,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACtD,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;SAC/C;QACD,IAAI,OAAO,CAAC;QACZ,IAAI,QAAQ,KAAK,CAAC,EAAE,EAAE,OAAO;YACzB,OAAO,GAAG,SAAS,CAAC;SACvB;aAAM,IAAI,QAAQ,KAAK,CAAC,EAAE,EAAE,qBAAqB;YAC9C,OAAO,GAAG,SAAS,GAAG,GAAG,GAAG,aAAa,CAAC;SAC7C;aAAM;YACH,OAAO,GAAG,aAAa,CAAC;SAC3B;QACD,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACpB,OAAO,EAAE,OAAO;gBAChB,SAAS,EAAE,CAAC,QAAQ,CAAC;gBACrB,cAAc,EAAE,CAAC,OAAO,CAAC;aAC5B,CAAC,CAAC,CAAC;IACR,CAAC;;AA1NM,0BAAI,GAAG,gBAAgB,CAAC;AACxB,6BAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,uGAAgC,CAAC,CAAC,CAAC;;;4CAoBvC,kDAAM,SAAC,kFAA4B;;;;0BAbzE,qDAAS,SAAC,aAAa;0BACvB,qDAAS,SAAC,aAAa;;AAVf,qBAAqB;IALjC,yDAAS,CAAC;QACP,QAAQ,EAAE,yBAAyB;QACnC,+EAA6C;;KAEhD,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfX;AACc;AACkC;AAET;AACA;AACI;AAC0B;AAI9B;AACK;AACP;AACS;AACJ;AAC6B;AACuC;AAClF;AACH;IAMnC,mBAAmB,SAAnB,mBAAmB;IA+C5B,YAAoB,UAA4B,EAAU,OAA8B;QAApE,eAAU,GAAV,UAAU,CAAkB;QAAU,YAAO,GAAP,OAAO,CAAuB;QA3CxF,cAAS,GAAG,EAAE,CAAC;QACf,oBAAe,GAAG,EAAE,CAAC;QACrB,gBAAW,GAAG,KAAK,CAAC;QAeV,mBAAc,GAAG,IAAI,wDAAY,EAAO;QAGxC,oBAAe,GAAG,IAAI,wDAAY,EAAO;QACzC,oBAAe,GAAG,IAAI,wDAAY,EAAW;IAuBvD,CAAC;QArCG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,GAAG,KAAK,IAAI,CAAC,aAAa,EAAE;YAC5B,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YACzB,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAChD;IACL,CAAC;IASO,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ;QACxC,IAAI,KAAK,EAAE;YACP,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACjB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC7B,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAEO,MAAM,CAAC,QAAQ,CAAC,KAAK;QACzB,IAAI,KAAK,EAAE;YACP,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACjB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAKD,QAAQ;QACJ,IAAI,CAAC,WAAW,GAAG,kGAAyC,CAAC,GAAG,EAAE;YAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,YAAY;QACR,IAAI,IAAI,CAAC,KAAK,YAAY,yBAAyB,EAAE;YACjD,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBAC1B,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;gBACnB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;SAClC;IACL,CAAC;IAED,eAAe;QACX,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IAED,SAAS;QACL,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;YAC9B,IAAI,EAAE,EAAE;gBACJ,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE;oBAClC,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC;iBACjD;gBACD,IAAI,EAAE,CAAC,UAAU,EAAE;oBACf,IAAI,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,EAAE;wBAC3C,MAAM,KAAK,GAAG;4BACV,OAAO,EAAE,EAAE;4BACX,IAAI,EAAE,EAAE;4BACR,OAAO,EAAE,CAAC;oCACN,OAAO,EAAE,EAAE,CAAC,KAAK;oCACjB,WAAW,EAAE,EAAE,CAAC,SAAS;oCACzB,YAAY,EAAE,EAAE,CAAC,UAAU;iCAC9B,CAAC;4BACF,iBAAiB,EAAE,EAAE;4BACrB,SAAS,EAAE,EAAE;4BACb,QAAQ,EAAE,IAAI;yBACjB,CAAC;wBACF,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE;4BAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;gCACZ,OAAO,EAAE,EAAE,CAAC,KAAK;gCACjB,WAAW,EAAE,EAAE,CAAC,SAAS;gCACzB,YAAY,EAAE,EAAE,CAAC,UAAU;gCAC3B,KAAK,EAAE,EAAE,CAAC,IAAI;6BACjB,CAAC,CAAC;yBACN;wBACD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;4BAC9C,MAAM,MAAM,GAAG,EAAE,CAAC;4BAClB,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gCACnB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCAC/B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oCACjB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oCACpB,IAAI,KAAK,GAAG,CAAC,CAAC;oCACd,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;wCACZ,MAAM,IAAI,GAAG,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC;wCACzC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;wCACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oCACtB,CAAC,CAAC,CAAC;iCACN;6BACJ;4BACD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;4BACxB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACpC,CAAC,CAAC,CAAC;qBACN;iBACJ;qBAAM;oBACH,IAAI,CAAC,KAAK,GAAG,IAAI,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACzD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wBAC/B,IAAI,CAAC,EAAE;4BACH,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;4BACnB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;yBACnC;oBACL,CAAC,CAAC,CAAC;iBACN;aACJ;SACJ;IACL,CAAC;IAED,cAAc,CAAC,EAAE;QACb,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YACvD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;oBAC/B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;iBAC5C;qBAAM;oBACH,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;wBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,SAAS,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;wBAC3B,cAAc,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;qBAClC,CAAC,CAAC;iBACN;aACJ;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB;IACL,CAAC;IAED,aAAa,CAAC,EAAE,EAAE,IAAI;QAClB,IAAI,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE;YAC1B,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;gBAC/B,IAAI,EAAE,CAAC,OAAO,EAAE;oBACZ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACxC,IAAI,CAAC,UAAU,EAAE,CAAC;iBACrB;qBAAM;oBACH,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACzD,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;wBACZ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBACtC,IAAI,CAAC,UAAU,EAAE,CAAC;qBACrB;iBACJ;aACJ;iBAAM;gBACH,IAAI,EAAE,CAAC,OAAO,EAAE;oBACZ,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC;oBACzE,IAAI,CAAC,OAAO,EAAE;wBACV,OAAO,GAAG;4BACN,OAAO,EAAE,IAAI,CAAC,OAAO;4BACrB,SAAS,EAAE,EAAE;4BACb,cAAc,EAAE,EAAE;yBACrB,CAAC;wBACF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qBACtC;oBACD,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACtC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;iBACrB;qBAAM;oBACH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;wBACrC,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE;4BAClC,IAAI,OAAO,CAAC,SAAS,EAAE;gCACnB,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gCACvD,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;oCACZ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oCACnC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oCACxC,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;wCAChC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qCACrC;oCACD,IAAI,CAAC,UAAU,EAAE,CAAC;iCACrB;6BACJ;iCAAM;gCACH,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;6BACrC;4BACD,OAAO,IAAI,CAAC;yBACf;wBACD,OAAO,KAAK,CAAC;oBACjB,CAAC,CAAC,CAAC;iBACN;aACJ;SACJ;IACL,CAAC;IAED,UAAU;QACN,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;SACvD;QACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;YACtD,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;SAClF;IACL,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YACtD,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAChD;aAAM,IAAI,IAAI,CAAC,WAAW,EAAE;YACzB,IAAI,CAAC,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC;SACxC;QACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;;;;;;;0BAtOA,qDAAS,SAAC,aAAa;uBAQvB,iDAAK;6BAWL,kDAAM;8BAGN,kDAAM;8BACN,kDAAM;;AAzBE,mBAAmB;IAJ/B,yDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,2EAAyC;KAC5C,CAAC;GACW,mBAAmB;AAAA;IA+OnB,iBAAiB,SAAjB,iBAAkB,SAAQ,4DAAc;IA0EjD,YAAY,KAAwB,EAA+C,IAAI;QACnF,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD4D,SAAI,GAAJ,IAAI;QAEnF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC5C,CAAC;IAhED,MAAM,CAAC,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,SAAgB;QAC1D,IAAI,aAAa,CAAC,eAAe,IAAI,aAAa,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3E,IAAI,KAAK,CAAC;YACV,IAAI,SAAS,EAAE;gBACX,IAAI,aAAa,CAAC,UAAU,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;oBACxD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;wBACtB,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;qBACxB;iBACJ;qBAAM;oBACH,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;iBAC1B;aACJ;YACD,wEAA0B,CAAC,aAAa,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;SAC5E;IACL,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,aAAa,EAAE,SAAgB;QACvD,IAAI,aAAa,CAAC,aAAa,EAAE;YAC7B,aAAa,CAAC,cAAc,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;SACjD;aAAM;YACH,aAAa,CAAC,cAAc,GAAG,EAAE,CAAC;SACrC;IACL,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM;QAChC,OAAO,IAAI,OAAO,CAAe,OAAO,CAAC,EAAE;YACvC,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,aAAa;mBACxD,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvE,sFAA8B,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACnE,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,6DAAkB,EAAE;wBACxE,IAAI,KAAK,CAAC;wBACV,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;4BACrD,IAAI,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,EAAE;gCAClE,KAAK,GAAG,QAAQ,CAAC;6BACpB;wBACL,CAAC,CAAC,CAAC;wBACH,IAAI,KAAK,EAAE;4BACP,MAAM,OAAO,GAAG,yFAAmC,CAAC,+EAAqB,CAAC,CAAC;4BAC3E,OAAO,CAAC,6BAA6B,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gCAC9F,IAAI,MAAM,EAAE;oCACR,MAAM,EAAE,GAAG,IAAI,sFAAY,EAAE,CAAC;oCAC9B,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;oCACtB,EAAE,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oCAC3B,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oCACxC,OAAO,CAAC,EAAE,CAAC,CAAC;iCACf;qCAAM;oCACH,OAAO,CAAC,IAAI,CAAC,CAAC;iCACjB;4BACL,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;4BACxB,OAAO;yBACV;qBACJ;oBACD,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;aAC3B;iBAAM;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC;aACjB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAOD,kBAAkB;QACd,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,EAAE;YAChG,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;SACxH;IACL,CAAC;IAED,cAAc;QACV,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACrF,IAAI,CAAC,EAAE;gBACH,IAAI,CAAC,kBAAkB,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC7C,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;gBACrH,IAAI,CAAC,sBAAsB,EAAE,CAAC;aACjC;YACD,KAAK,CAAC,cAAc,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,iBAAiB,CAAC,EAAE;QAChB,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACjF,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;SACtC;IACL,CAAC;IAED,sBAAsB;QAClB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;SAChC;IACL,CAAC;;AA/GM,sBAAI,GAAG,YAAY,CAAC;AACpB,yBAAO,GAAG;IACb,OAAO,EAAE,YAAY;IACrB,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE;QACJ,MAAM,EAAE,EAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAC;QAC7B,KAAK,EAAE,EAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAC;KAC/B;CACJ,CAAC;;;4CAiEqC,kDAAM,SAAC,mFAA4B;;;0BA/DzE,qDAAS,SAAC,aAAa;;AAXf,iBAAiB;IAJ7B,yDAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,QAAQ,EAAE,uIAAuI;KACpJ,CAAC;GACW,iBAAiB;AAAA;AAmHvB,MAAM,yBAAyB;IAoGlC,YAAoB,OAA8B;QAA9B,YAAO,GAAP,OAAO,CAAuB;QA9FlD,aAAQ,GAAG,CAAC,CAAC;QAGL,cAAS,GAAG,IAAI,gFAAQ,EAAE,CAAC;IA4FnC,CAAC;IA1FD,MAAM,CAAC,sBAAsB,CAAC,KAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,gBAA4B,EAClG,aAAa,EAAE,OAA8B;QAC7C,OAAO,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC/C,iFAAyB,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBAClE,MAAM,UAAU,GAAG,IAAI,kFAAQ,EAAE,CAAC;gBAClC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;gBACpB,UAAU,CAAC,EAAE,GAAG,oDAAS,EAAE,CAAC;gBAC5B,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC;gBAClC,UAAU,CAAC,aAAa,GAAG,qEAAe,CAAC;gBAE3C,IAAI,GAAG,GAAG,CAAC,CAAC;gBAEZ,MAAM,QAAQ,GAAG,IAAI,iFAAO,EAAE,CAAC;gBAC/B,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBACxB,QAAQ,CAAC,IAAI,GAAG,sEAAgB,CAAC;gBACjC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC5B,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;gBACxB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAE/B,IAAI,WAAW,GAAc,EAAE,CAAC;gBAChC,IAAI,iBAAiB,CAAC,QAAQ,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBACrE,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC9F;gBACD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC1B,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC;iBAC5B;gBACD,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACpB,MAAM,EAAE,GAAG,IAAI,oFAAU,EAAE,CAAC;oBAC5B,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;oBACvB,EAAE,CAAC,cAAc,GAAG,0DAAe,CAAC;oBACpC,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC;oBACf,EAAE,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC;oBACpB,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,IAAI,iFAAO,EAAE,CAAC;gBAC9B,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,GAAG,qEAAe,CAAC;gBAC/B,yBAAyB;gBAEzB,MAAM,QAAQ,GAAG,IAAI,kFAAQ,EAAE,CAAC;gBAChC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;gBACvB,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;gBAClC,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;gBACzC,QAAQ,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC;gBAE1B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC9B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC9B,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,qEAAe,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBAElE,IAAI,gBAAgB,EAAE;oBAClB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;iBAC9C;gBAED,IAAI,iBAAiB,CAAC,MAAM,EAAE;oBAC1B,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACjC,MAAM,OAAO,GAAG,IAAI,sFAAY,EAAE,CAAC;wBACnC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;wBAC1B,MAAM,EAAE,GAAG,IAAI,kFAAQ,EAAE,CAAC;wBAC1B,EAAE,CAAC,WAAW,GAAG,CAAC,CAAC,SAAS,CAAC;wBAC7B,EAAE,CAAC,WAAW,GAAG,CAAC,CAAC,SAAS,CAAC;wBAC7B,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;wBACvB,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;wBACrB,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;wBACzB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC9B,CAAC,CAAC,CAAC;iBACN;gBAED,IAAI,aAAa,EAAE;oBACf,MAAM,YAAY,GAAG,6EAAyB,CAAC,aAAa,CAAC,CAAC;oBAC9D,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACrB,MAAM,GAAG,GAAG,+GAAsC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC;wBACnE,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,EAAE;4BAC5C,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;yBACtC;oBACL,CAAC,CAAC,CAAC;iBACN;gBAED,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBAC7D,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE;wBAC/B,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;qBAC1B;yBAAM;wBACH,OAAO,CAAC,EAAE,CAAC,CAAC;qBACf;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAKD,UAAU,CAAC,oBAAoB;QAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7D,IAAI,CAAC,aAAa,GAAG,oBAAoB,CAAC;YAC1C,IAAI,oBAAoB,IAAI,oBAAoB,CAAC,SAAS,IAAI,oBAAoB,CAAC,UAAU;mBACtF,oBAAoB,CAAC,SAAS,IAAI,oBAAoB,CAAC,MAAM,EAAE;gBAClE,IAAI,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,EAAE;oBACpD,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;iBAChE;gBACD,IAAI,oBAAoB,CAAC,iBAAiB,EAAE;oBACxC,IAAI,CAAC,iBAAiB,GAAG,oBAAoB,CAAC,iBAAiB,CAAC;iBACnE;gBACD,IAAI,CAAC,UAAU,GAAG,oBAAoB,CAAC,UAAU,CAAC;gBAClD,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC,SAAS,CAAC;gBAChD,IAAI,OAAO,oBAAoB,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBACnD,IAAI,CAAC,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,CAAC;iBACjD;gBACD,sFAA8B,CAAC,oBAAoB,CAAC,SAAS,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACvG,IAAI,IAAI,EAAE;wBACN,MAAM,MAAM,GAAG,EAAE,CAAC;wBAClB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BACpB,IAAI,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;gCACrD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;6BAClB;wBACL,CAAC,CAAC,CAAC;wBACH,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;wBACxB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;4BACnB,IAAI,CAAC,YAAY,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gCACrD,OAAO,CAAC,QAAQ,CAAC,CAAC;4BACtB,CAAC,CAAC,CAAC;yBACN;6BAAM;4BACH,OAAO,CAAC,EAAE,CAAC,CAAC;yBACf;qBACJ;yBAAM;wBACH,OAAO,CAAC,EAAE,CAAC,CAAC;qBACf;gBACL,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9B;iBAAM;gBACH,OAAO,CAAC,EAAE,CAAC,CAAC;aACf;QACL,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,YAAY,CAAC,IAAmB;QAC5B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7D,IAAI,IAAI,YAAY,aAAa,EAAE;gBAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;oBACpC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC7C,IAAI,IAAI,CAAC,iBAAiB,EAAE;wBACxB,sBAAsB;wBACtB,MAAM,gBAAgB,GAAG,EAAE,CAAC;wBAC5B,IAAI,MAAM,GAAG,IAAI,CAAC;wBAClB,OAAO,MAAM,EAAE;4BACX,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,EAAE;gCACpB,MAAM;6BACT;4BACD,MAAM,EAAE,GAAG,IAAI,kFAAQ,EAAE,CAAC;4BAC1B,EAAE,CAAC,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;4BAC5C,EAAE,CAAC,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;4BACrC,EAAE,CAAC,OAAO,GAAG,IAAI,sFAAY,EAAE,CAAC;4BAChC,MAAM,GAAG,GAAG,IAAI,sFAAY,EAAE,CAAC;4BAC/B,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;4BAC7B,GAAG,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;4BAClC,EAAE,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;4BACpB,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;4BAClC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;yBAC1B;wBACD,yBAAyB,CAAC,sBAAsB,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,EAC9F,gBAAgB,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;4BAC7D,MAAM,MAAM,GAAG,EAAE,CAAC;4BAClB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;4BACjC,MAAM,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;4BACtD,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gCACjB,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,EAAE;oCACxD,MAAM,UAAU,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oCAC5D,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;oCACzB,UAAU,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC;oCACpC,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC;oCAClC,UAAU,CAAC,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC;oCAC5C,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oCACxC,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;oCACxC,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC;oCAC7B,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC;oCACrC,IAAI,IAAI,CAAC,YAAY,EAAE;wCACnB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;4CACxB,IAAI,EAAE,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE;gDACnC,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;oDAC1C,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;oDAC3B,OAAO,IAAI,CAAC;iDACf;6CACJ;4CACD,OAAO,KAAK,CAAC;wCACjB,CAAC,CAAC,CAAC;qCACN;oCACD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iCAC3B;4BACL,CAAC,CAAC,CAAC;4BACH,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,QAAQ,EAAE;gCACnE,iFAA6B,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gCACjD,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE;oCAC/B,MAAM,CAAC,OAAO,EAAE,CAAC;iCACpB;6BACJ;4BACD,OAAO,CAAC,MAAM,CAAC,CAAC;wBACpB,CAAC,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;4BACpG,MAAM,MAAM,GAAG,EAAE,CAAC;4BAClB,IAAI,OAAO,EAAE;gCACT,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;gCACjC,MAAM,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gCACtD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCAChB,MAAM,UAAU,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oCAC5D,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC;oCAC7B,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC;oCAClC,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC;oCACrC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oCACxC,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;oCAC3B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC;oCAC7B,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC;oCACrC,IAAI,IAAI,CAAC,YAAY,EAAE;wCACnB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;4CACxB,IAAI,EAAE,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE;gDACnC,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;oDAC7B,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;oDAC3B,OAAO,IAAI,CAAC;iDACf;6CACJ;4CACD,OAAO,KAAK,CAAC;wCACjB,CAAC,CAAC,CAAC;qCACN;oCACD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gCAC5B,CAAC,CAAC,CAAC;gCACH,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,QAAQ,EAAE;oCACnE,iFAA6B,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;oCACjD,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE;wCAC/B,MAAM,CAAC,OAAO,EAAE,CAAC;qCACpB;iCACJ;6BACJ;4BACD,OAAO,CAAC,MAAM,CAAC,CAAC;wBACpB,CAAC,CAAC,CAAC;qBACN;iBACJ;qBAAM;oBACH,OAAO,CAAC,EAAE,CAAC,CAAC;iBACf;aACJ;iBAAM;gBACH,OAAO,CAAC,EAAE,CAAC,CAAC;aACf;QACL,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;;AAGE,MAAM,cAAe,SAAQ,qFAAa;;;QAC7C,aAAQ,GAAG,KAAK,CAAC;IACrB,CAAC;;AAEM,MAAM,aAAc,SAAQ,cAAc;;;QAE7C,UAAK,GAAG,CAAC,CAAC;QACV,cAAS,GAAG,EAAE,CAAC;QACf,kBAAa,GAAG,EAAE,CAAC;QACnB,YAAO,GAAG,sCAAsC,CAAC;QACjD,aAAQ,GAAG,EAAE,CAAC;IAWlB,CAAC;IATG,aAAa,CAAC,QAAQ;QAClB,IAAI,QAAQ,KAAK,CAAC,EAAE,EAAE,OAAO;YACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;SACjC;aAAM,IAAI,QAAQ,KAAK,CAAC,EAAE,EAAE,qBAAqB;YAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;SAC5D;aAAM;YACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;SACrC;IACL,CAAC;;;;;;;;;;;;;;;;;;;;;;;ACtpB0E;AACb;IAQrD,gBAAgB,SAAhB,gBAAgB;IAgBzB,YAAoB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;IAC5C,CAAC;IAVM,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;QAClC,kFAAqB,CAAC;YAClB,WAAW,EAAE,gBAAgB;YAC7B,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,OAAO;SACnB,CAAC,CAAC;IACP,CAAC;IAKD,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,EAAE;YACN,IAAI,IAAI,CAAC,0BAA0B,EAAE;gBACjC,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,0BAA0B,CAAC;aACrE;SACJ;IACL,CAAC;IAED,eAAe;QACX,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;IAChE,CAAC;IAED,iBAAiB,CAAC,EAAE;QAChB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;;;;;;yCA/BA,gDAAK;yBAGL,oDAAS,SAAC,YAAY;;AALd,gBAAgB;IAJ5B,wDAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;QAC9B,0EAAwC;KAC3C,CAAC;GACW,gBAAgB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTwC;AAET;AACF;AAC0B;AAClC;AACiB;AACwB;AAC1B;AAEd;AAC0B;IAOhE,YAAY,SAAZ,YAAa,SAAQ,2DAAc;IA6F5C,YAAoB,UAAsC,EAAE,KAAwB,EAA+C,IAAI;QACnI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,eAAU,GAAV,UAAU,CAA4B;QAAyE,SAAI,GAAJ,IAAI;QAgGvI,WAAM,GAAG,IAAI,CAAC;QA9FV,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,qEAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,qEAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACzE,CAAC;IA7FD,IAAI,SAAS;QACT,QAAQ,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;YACvC,KAAK,8DAAmB;gBACpB,OAAO,aAAa,CAAC;gBACrB,MAAM;YACV,KAAK,+DAAoB;gBACrB,OAAO,MAAM,CAAC;gBACd,MAAM;YACV;gBACI,OAAO,OAAO,CAAC;SACtB;IACL,CAAC;IAED,IAAI,IAAI;QACJ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,IAAI,CAAC,GAAG;QACR,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC3B,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SACrC;aAAM;YACH,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SAC5B;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,EAAE;QACF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACxB;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,EAAE,CAAC,GAAG;QACN,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC3B,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACrC;aAAM;YACH,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAC5B;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,QAAwB,EAAE,KAAK,EAAE,MAAM;QACxD,IAAI,QAAQ,EAAE;YACV,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACvB,IAAI,OAAO,CAAC,QAAQ,EAAE;oBAClB,kFAAgC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC7C,IAAI,IAAI,EAAE;4BACN,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;4BAC1D,IAAI,CAAC,EAAE;gCACH,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;6BACnB;yBACJ;oBACL,CAAC,CAAC,CAAC;iBACN;qBAAM;oBACH,MAAM,IAAI,GAAG,YAAY,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACrE,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;wBACxB,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;wBACpE,IAAI,CAAC,EAAE;4BACH,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;yBACnB;qBACJ;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI;QACtC,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,IAAI,EAAE;YACN,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;gBACpB,MAAM,GAAG,IAAI,CAAC;aACjB;iBAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBACnB,MAAM,KAAK,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;oBACrD,IAAI,KAAK,EAAE;wBACP,MAAM,GAAG,KAAK,CAAC;wBACf,OAAO,IAAI,CAAC;qBACf;oBACD,OAAO,KAAK,CAAC;gBACjB,CAAC,CAAC,CAAC;aACN;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAUD,kBAAkB;QACd,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACnC,IAAI,EAAE,EAAE;YACJ,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3B,IAAI,IAAI,CAAC;YACT,IAAI,EAAE,CAAC,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9E,IAAI,SAAS,EAAE,OAAO,CAAC;gBACvB,IAAI,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;oBACtC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC5C;gBACD,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;oBAClE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC1C;gBACD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;oBACnB,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;wBACjB,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC7B,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC;qBAC9B;iBACJ;qBAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;oBACxB,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;iBAChC;aACJ;YACD,IAAI,EAAE,CAAC,WAAW,EAAE;gBAChB,MAAM,KAAK,GAAG;oBACV,KAAK,EAAE,EAAE,CAAC,WAAW;oBACrB,GAAG,EAAE,IAAI;iBACZ,CAAC;gBACF,IAAI,EAAE,CAAC,SAAS,EAAE;oBACd,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;oBACzB,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;wBAClD,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE;4BACvB,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;4BAChC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAC5B,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;4BAC1B,IAAI,EAAE,CAAC,UAAU,EAAE;gCACf,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gCACtE,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;6BACrE;iCAAM;gCACH,IAAI,CAAC,cAAc,EAAE,CAAC;6BACzB;4BACD,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;4BACxC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;4BACpC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;yBAC9B;wBACD,IAAI,CAAC,cAAc,EAAE,CAAC;oBAC1B,CAAC,CAAC,CAAC;iBACN;qBAAM;oBACH,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;wBAClD,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;4BACd,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;4BACrC,IAAI,MAAM,GAAG,IAAI,CAAC;4BAClB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gCAC1B,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;6BACtC;4BACD,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;4BAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;yBAC1B;wBACD,IAAI,CAAC,cAAc,EAAE,CAAC;oBAC1B,CAAC,CAAC,CAAC;iBACN;gBACD,OAAO;aACV;iBAAM,IAAI,EAAE,CAAC,SAAS,EAAE;gBACrB,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;oBACpE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;wBACd,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;wBACnC,IAAI,QAAQ,GAAG,IAAI,CAAC;wBACpB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;4BAC1B,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;yBACtC;wBACD,IAAI,CAAC,KAAK,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;wBAC1C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;qBAC3B;oBACD,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBACH,OAAO;aACV;iBAAM,IAAI,EAAE,CAAC,aAAa,EAAE;gBACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,IAAI,EAAE,CAAC,UAAU,EAAE;oBACf,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;oBACzE,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;iBAC1E;qBAAM;oBACH,IAAI,CAAC,cAAc,EAAE,CAAC;iBACzB;aACJ;SACJ;IACL,CAAC;IAGD,iBAAiB,CAAC,cAAsB,EAAE,UAAc;QAEpD,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,8DAAmB,IAAI,cAAc,EAAE;YAE7E,IAAI,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC1B,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;aAC1B;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAE1B,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,KAAK,WAAW,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC/G,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACpD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAE,IAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;iBAC/B;gBACD,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,KAAK,WAAW,EAAE;oBAChD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;iBACvB;gBACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACvB,UAAU,CAAC,KAAK,EAAE,CAAC;aACtB;iBACI;gBACD,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBACrB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;iBAC/B;gBACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACxB,UAAU,CAAC,KAAK,EAAE,CAAC;aACtB;SACJ;aACI,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,+DAAoB,IAAI,cAAc,EAAE;SAEtF;IACL,CAAC;IAED,kBAAkB,CAAC,eAAuB,EAAE,UAAc;QAEtD,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,+DAAoB,IAAI,eAAe,EAAE;YAE/E,IAAI,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC3B,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;aACzB;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAE1B,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,KAAK,WAAW,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC/G,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACrD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;iBAC/B;gBACD,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,KAAK,WAAW,EAAE;oBAChD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;iBACvB;gBACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACvB,UAAU,CAAC,KAAK,EAAE,CAAC;aACtB;iBACI;gBACD,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAChD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBACrB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;iBAC/B;gBACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACxB,UAAU,CAAC,KAAK,EAAE,CAAC;aACtB;SACJ;IACL,CAAC;IAED,WAAW,CAAC,IAAa;QACrB,IAAI,QAAQ,CAAC;QACb,IAAI,MAAM,CAAC;QACX,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC1B;SACJ;QACD,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;gBACvC,IAAI,QAAQ,YAAY,IAAI,EAAE;oBAC1B,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;iBAC3C;qBAAM;oBACH,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACzB;gBACD,IAAI,MAAM,YAAY,IAAI,EAAE;oBACxB,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;iBACzC;qBAAM;oBACH,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACzB;aACJ;YACD,IAAI,CAAC,kBAAkB,CAAC,UAAU,GAAG,UAAU,CAAC;YAChD,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;gBACpC,IAAI,IAAI,EAAE;oBACN,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;iBACjG;qBAAM;oBACH,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;iBAC7F;aACJ;iBAAM;gBACH,IAAI,CAAC,cAAc,EAAE,CAAC;aACzB;SACJ;QACD,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;SAC9C;aAAM;YACH,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;SAC1C;IACL,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE;YAC/B,MAAM,QAAQ,GAAG,IAAI,sFAAY,EAAE,CAAC;YACpC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;YACjD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBACvB,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC/B,IAAI,QAAQ,CAAC,KAAK,YAAY,IAAI,EAAE;wBAChC,QAAQ,CAAC,KAAK,GAAG,+EAA6B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;qBAClE;oBACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;wBACvB,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC7B,IAAI,QAAQ,CAAC,GAAG,YAAY,IAAI,EAAE;4BAC9B,QAAQ,CAAC,GAAG,GAAG,+EAA6B,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;yBAC9D;qBACJ;iBACJ;aACJ;YACD,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SACnG;IACL,CAAC;;AArUM,iBAAI,GAAG,QAAQ,CAAC;AAChB,oBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,+FAAwB,CAAC,CAAC,CAAC;;;;4CA2FiB,kDAAM,SAAC,kFAA4B;;AA7FjH,YAAY;IALxB,yDAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,sEAAoC;;KAEvC,CAAC;GACW,YAAY;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClB2B;AAS7B;AACyB;AACZ;AACW;AACmD;AACH;AACV;AACrB;AACqB;AAIhC;AACU;AACd;AACY;AACgB;IAQhE,WAAW,SAAX,WAAY,SAAQ,2DAAc;IAS3C,YACI,KAAwB,EACjB,UAAsB,EACgB,IAAI;QAEjD,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAHZ,eAAU,GAAV,UAAU,CAAY;QACgB,SAAI,GAAJ,IAAI;QAoC3C,oBAAe,GAAG,IAAI,wDAAY,EAAO;QAYzC,mBAAc,GAAG,IAAI,wDAAY,EAAO;QAElD,kBAAa,GAAG,EAAE,CAAC;QAiBnB,kBAAa,GAA8B,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC;QAC7D,oBAAe,GAA8B;YACzC,GAAG,EAAE,gBAAgB;YACrB,GAAG,EAAE,iBAAiB;SACzB;QAED,mBAAc,GAAqB,EAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,KAA8B;gBAC5F,OAAO,IAAI;YAAA,CAAC,EAAC,CAAC;QAvEd,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACvD,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,gBAAgB,IAAI,EAAE,CAAC;YAEzD,oFAA8B,CAAC,GAAG,CAAC,EAAE;gBACjC,IAAI,GAAG,EAAE;oBACL,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;iBAC5B;YACL,CAAC,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;SAC3B;IAEL,CAAC;IAtBD,kBAAkB;IAClB,CAAC;IAsBD,aAAa,CAAC,GAAG;QACb,MAAM,GAAG,GAAG,+CAA+C,GAAG,0BAA0B;QACxF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC;aAClD,IAAI,CACD,oDAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EACf,2DAAU,CAAC,GAAG,EAAE,CAAC,yCAAE,CAAC,KAAK,CAAC,CAAC,CAC9B,CAAC;IACV,CAAC;QAGG,SAAS;QACT,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;IACxC,CAAC;IAED,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,GAAG,CAAC;QACnC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;QAKG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;IACvC,CAAC;IAED,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,GAAG,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;QAOG,UAAU;QACV,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YACxB,OAAO,IAAI,CAAC,SAAS,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;IACzC,CAAC;IACD,IAAI,IAAI,CAAC,GAAG;QACR,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAaD,IAAI,UAAU;QACV,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAG,IAAI,CAAC,UAAU,EAAE;YAChB,OAAO;gBACH,GAAG,EAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,GAAG,MAAM;gBAClD,UAAU,EAAE,IAAI,CAAC,cAAc;aAClC,CAAC;SACL;QACD,OAAO;IACX,CAAC;IAED,OAAO,CAAC,KAAgC;QACpC,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI;YAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACpE,CAAC;IAED,IAAI,CAAC,KAAgC;QACjC,oEAAoE;IACxE,CAAC;;AAvGM,gBAAI,GAAQ,WAAY;AAExB,mBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,kGAA2B,CAAC,CAAC,CAAC;;;;4CASpE,kDAAM,SAAC,kFAA4B;;;wBA0BvC,iDAAK;8BAUL,kDAAM;uBAEN,iDAAK;6BAUL,kDAAM;yBAIN,iDAAK;;AAhEG,WAAW;IANvB,yDAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,oEAAkC;QAElC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,WAAW;AAAA;AA2GjB,MAAM,cAAe,SAAQ,oEAAS;IAGzC,MAAM,CAAC,SAAS;QACZ,oFAAmB,CAAC;YAChB,GAAG,EAAE,sCAAsC;YAC3C,EAAE,EAAE,WAAW;YACf,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC;YAC3C,CAAC;SACJ,CAAC,CAAC;QAEH,gFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;aACtB;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;aACtB;SACJ,CAAC,CAAC;QAEH,qFAA+B,CAAC,CAAC,MAAM,EAAE,EAAE;YACvC,IAAI,MAAM,EAAE;gBACR,IAAI,KAAK,GAAG,EAAE,CAAC;gBACf,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACpB,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;gBAC1D,CAAC,CAAC,CAAC;gBACH,gFAAe,CAAC;oBACZ,EAAE,EAAE,YAAY;oBAChB,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;oBAClD,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,CAAC;oBACT,GAAG,EAAE,CAAC;oBACN,QAAQ,EAAE;wBACN,WAAW,EAAE,QAAQ;wBACrB,QAAQ,EAAE,KAAK;wBACf,WAAW,EAAE,KAAK;wBAClB,eAAe,EAAE,OAAO;wBACxB,iBAAiB,EAAE,SAAS;wBAC5B,cAAc,EAAE,MAAM;qBACzB;iBACJ,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;IACP,CAAC;;AAhEe,mBAAI,GAAG,CAAC,sCAAsC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;AC7IiF;AAC3F;AACO;IAQpD,oBAAoB,SAApB,oBAAoB;IAuC7B,YAAoB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;QArC5C,+DAA+D;QAE/D,uBAAkB,GAAG,EAAE,CAAC;QAExB,qBAAgB,GAAG,EAAE,CAAC;QACtB,0BAAqB,GAAG,EAAE,CAAC;QAC3B,uBAAkB,GAAG,IAAI,4DAAK,EAAE,CAAC;QACjC,aAAQ,GAAG,EAAE;QACb,UAAK,GAAG,EAAE,CAAC;QA+BX,sBAAiB,GAAG,IAAI,CAAC;QASzB,4BAAuB,GAAG,IAAI,CAAC;QAQrB,iBAAY,GAAG,IAAI,uDAAY,EAAS;QAMxC,kBAAa,GAAG,IAAI,uDAAY,EAAU;QAMpD,mBAAc,GAAG,KAAK,CAAC;IA/BwB,CAAC;QA3B5C,aAAa;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,cAAc,CAAC;YAC9C,MAAM,GAAG,GAAG,yEAAkB,CAAC,GAAG,CAAC;YACnC,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC;YACjC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;YAC1B,IAAI,CAAC,gBAAgB,GAAG,yEAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACtD,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;SACjC;aAAM;YACH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;YAC3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,4DAAK,EAAE,CAAC;SACzC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAEG,eAAe;QACf,OAAO,IAAI,CAAC,QAAQ;IACxB,CAAC;IACD,IAAI,eAAe,CAAC,KAAa;QAC7B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;QAKG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;IACjC,CAAC;QAIG,kBAAkB;QAClB,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACxC,CAAC;IACD,IAAI,kBAAkB,CAAC,GAAG;QACtB,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC;IACvC,CAAC;IAED,cAAc;QACV,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAChD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC1C,CAAC;IAGD,cAAc,CAAC,EAAE;QACb,IAAI,CAAC,QAAQ,GAAG,EAAE;QAClB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,cAAc,EAAE;IACzB,CAAC;IAGD,gBAAgB,CAAC,GAAG;QAChB,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,QAAQ,GAAG,2BAA2B,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAC,GAAG,CAAC,GAAG;SAChF;IACL,CAAC;IACD,UAAU,CAAC,QAAQ,EAAE,UAAU;QAC3B,qCAAqC;QACrC,QAAQ,GAAG,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAEtC,+DAA+D;QAC/D,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAE7C,6CAA6C;QAC7C,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;QACxC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;QACxC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;QAExC,oDAAoD;QACpD,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3H,OAAO,cAAc,CAAC;IAC1B,CAAC;IACD,QAAQ;QACJ,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,IAAI,CAAC,uBAAuB,EAAE;gBAC9B,IAAI,CAAC,kBAAkB,GAAG,CAAC,GAAG,sFAAgC,EAAE,GAAG,sFAAgC,CAAC,CAAC;aACxG;iBAAM;gBACH,IAAI,CAAC,kBAAkB,GAAG,CAAC,GAAG,sFAAgC,CAAC,CAAC;aACnE;SACJ;IACL,CAAC;IAED,eAAe;QACX,iCAAiC;QACjC,iCAAiC;QACjC,oEAAoE;QACpE,gBAAgB;QAChB,+DAA+D;QAC/D,cAAc;QACd,qEAAqE;QACrE,OAAO;QACP,kCAAkC;QAClC,GAAG;IACP,CAAC;IAED,aAAa,CAAC,EAAE;QACZ,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,MAAM,KAAK,GAAG,oEAAa,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE;gBACzH,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACpC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;aACzB;SACJ;IACL,CAAC;IAED,UAAU,CAAC,EAAE;QACT,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE;YACjB,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;YAC5B,IAAI,CAAC,aAAa,GAAG,oEAAa,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;IACL,CAAC;IAED,WAAW;QACP,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,YAAY,CAAC,YAAqB;QAC9B,IAAI,CAAC,kBAAkB,CAAC,cAAc,GAAG,IAAI,CAAC;QAC9C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,gBAAgB,GAAG,yEAAkB,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAC1E,IAAI,CAAC,qBAAqB,GAAG,yEAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACzE,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;IAED,aAAa;QACT,IAAI,CAAC,aAAa,GAAG,0EAAmB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACnE,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,WAAW,CAAC,YAAqB;QAC7B,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,CAAC,kBAAkB,CAAC,GAAG,yEAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACzE,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,IAAI,EAAE;YAC7G,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;SAC7B;aAAM;YACH,MAAM,CAAC,GACH,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YAC7H,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;SACjD;QACD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,qBAAqB;QACrB,oEAAoE;QACpE,gBAAgB;QAChB,qCAAqC;QACrC,+DAA+D;QAC/D,sCAAsC;QACtC,OAAO;QACP,GAAG;IACP,CAAC;;;;;;4BAzKA,gDAAK;8BAqBL,gDAAK;2BAUL,gDAAK;iCASL,gDAAK;2BAOL,iDAAM;4BAKN,gDAAK;4BACL,iDAAM;;AAhEE,oBAAoB;IANhC,wDAAS,CAAC;QACP,QAAQ,EAAE,kBAAkB;QAC5B,2EAAyC;QAEzC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,oBAAoB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACVuE;AACpB;AAC1B;IAQ7C,wBAAwB,SAAxB,wBAAwB;;QAEjC,uBAAkB,GAAG,IAAI,4DAAK,EAAE,CAAC;QACjC,kBAAa,GAAW,EAAE;QAehB,wBAAmB,GAAG,IAAI,uDAAY,EAAS;QAE/C,iBAAY,GAAG,IAAI,uDAAY,EAAS;QACxC,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QAW5C,kBAAa,GAAG,IAAI,uDAAY,EAAO;QACjD,sBAAiB,GAAG,IAAI,CAAC;QASzB,4BAAuB,GAAG,IAAI,CAAC;QAW/B,cAAS,GAAG,EAAE,CAAC;IAYnB,CAAC;QA5DO,aAAa;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,GAAG,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAChC,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;YAC9B,IAAI,CAAC,SAAS,GAAG;gBACb,MAAM,EAAE,yEAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC;aACtD,CAAC;YACF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAC1D;IACL,CAAC;QAQG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;QAKG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;IACjC,CAAC;QAIG,kBAAkB;QAClB,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACxC,CAAC;IACD,IAAI,kBAAkB,CAAC,GAAG;QACtB,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC;IACvC,CAAC;IAKD,mBAAmB,CAAC,KAAK;QACrB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;IACvC,CAAC;IACD,WAAW,CAAC,KAAK;QACb,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,WAAW,CAAC,EAAE;QACV,gGAA2B,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;;;4BA5DA,gDAAK;kCAcL,iDAAM;2BAEN,iDAAM;iCACN,iDAAM;sBAEN,gDAAK;4BASL,iDAAM;2BAEN,gDAAK;iCASL,gDAAK;4BAOL,gDAAK;+BACL,gDAAK;;AAnDG,wBAAwB;IANpC,wDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,+EAA6C;QAE7C,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,wBAAwB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVqC;AAChB;AACa;AACb;AACM;AACkB;IAQrE,cAAc,SAAd,cAAc;;QACvB,aAAQ,GAAG,KAAK,CAAC;QACjB,WAAM,GAAwB,EAAE,CAAC;QACjC,iBAAY,GAAiB,+EAAkB,CAAC;QAEhD,kBAAa,GAAG,CAAC,CAAC,CAAC;IA2IvB,CAAC;QAxIO,QAAQ;QACR,MAAM,MAAM,GAAG,IAAI,kEAAQ,EAAE,CAAC;QAC9B,QAAQ,IAAI,CAAC,YAAY,EAAE;YACvB,KAAK,+EAAkB;gBACnB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBACxB,MAAM,KAAK,GAAG,+FAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC3D,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC;oBACpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC7B;qBAAM;oBACH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,oFAAiB,EAAE,CAAC,CAAC;iBAC/C;gBACD,MAAM;YACV,KAAK,kFAAqB;gBACtB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBACxB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;wBAC1B,MAAM,KAAK,GAAG,+FAA4B,CAAC,KAAK,CAAC,CAAC;wBAClD,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC;wBACpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC9B,CAAC,CAAC,CAAC;iBACN;qBAAM;oBACH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,oFAAiB,EAAE,CAAC,CAAC;iBAC/C;gBACD,MAAM;YACV;gBACI,OAAO,IAAI,CAAC;SACnB;QACD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;QAChC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,MAAM,CAAC,UAAU,GAAG,IAAI,4DAAK,EAAE,CAAC;YAChC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC;YAC1B,MAAM,CAAC,QAAQ,GAAG,IAAI,4DAAK,EAAE,CAAC;YAC9B,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC;YACxB,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;SACzB;aAAM;YACH,MAAM,CAAC,UAAU,GAAG,IAAI,4DAAK,EAAE,CAAC;YAChC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC;YAC1B,MAAM,CAAC,QAAQ,GAAG,IAAI,4DAAK,EAAE,CAAC;YAC9B,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;YACtB,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC;SAC3B;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,IAAI,QAAQ,CAAC,GAAa;QACtB,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE;YACrD,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,MAAM,MAAM,GAAG,+FAA4B,CAAC,GAAG,CAAC,CAAC;gBACjD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC;gBACrB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;YACtB,IAAI,GAAG,CAAC,IAAI,EAAE;gBACV,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAClC;iBAAM;gBACH,IAAI,CAAC,eAAe,CAAC,+EAAkB,CAAC;aAC3C;SACJ;aAAM;YACH,IAAI,CAAC,YAAY,GAAG,+EAAkB,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC;SACzC;IACL,CAAC;IACD,YAAY;IAEZ,IAAI,aAAa;QACb,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;SACnC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oBAAoB,CAAC,KAAK;QACtB,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,eAAe,CAAC,IAAI;QAChB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,YAAY,KAAK,+EAAkB,EAAE;YAC1C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,oFAAiB,EAAE,CAAC,CAAC;aAC7C;YACD,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;SACxC;aAAM,IAAI,IAAI,CAAC,YAAY,KAAK,kFAAqB,EAAE;YACpD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,oFAAiB,EAAE,CAAC,CAAC;aAC7C;YACD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,MAAM,GAAG,GAAG,IAAI,oFAAiB,EAAE,CAAC;gBACpC,GAAG,CAAC,KAAK,GAAG,uEAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACnD,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACzB;YACD,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;SACxC;aAAM;YACH,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC;SACzC;IACL,CAAC;IAED,4BAA4B,CAAC,KAAK;QAC9B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAC1C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC3C;aAAM;YACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC7B;IACL,CAAC;IAED,YAAY;QACR,OAAO,iFAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,YAAY;QACR,MAAM,GAAG,GAAG,IAAI,oFAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;SACxC;IACL,CAAC;IAED,WAAW,CAAC,QAAQ;QAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,WAAW,CAAC,EAAE;QACV,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;SACjC;IACL,CAAC;;;uBAxIA,gDAAK;;AAPG,cAAc;IAN1B,wDAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,8EAA4C;QAE5C,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,cAAc;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACb2B;AAC+C;AACzE;AACW;AAE6D;AACS;AACZ;AAC2B;AACrC;AACrB;AAEJ;AACJ;AACQ;AACR;AAC6B;AAED;AACnB;AACmB;AACZ;AACe;AACpB;AACJ;AACJ;AACV;AAC0B;IAQhE,WAAW,SAAX,WAAY,SAAQ,4DAAc;IAyC3C,YAAY;IACZ,YAAY,KAAwB,EAA+C,IAAI;QACnF,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD4D,SAAI,GAAJ,IAAI;QAtCvF,mBAAc,GAAG,EAAE,CAAC;QAwChB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAClF,CAAC;IAvCD,IAAI,GAAG;QACH,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,mBAAmB,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE;YACxF,OAAO,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;SACtF;aAAM;YACH,OAAO,IAAI,CAAC;SACf;IACL,CAAC;QAKG,OAAO;QACP,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YAC3B,OAAO,IAAI,CAAC,YAAY,CAAC;SAC5B;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;IAC5B,CAAC;QAKG,OAAO;QACP,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YAC3B,OAAO,IAAI,CAAC,YAAY,CAAC;SAC5B;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAQD,kBAAkB;QACd,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YACzE,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,mGAA0C,CAAC,GAAG,EAAE;YACpF,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAED,oBAAoB;QAChB,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,iFAA8B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACjF,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,kBAAkB,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE;gBAC9E,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBAC7F,IAAI,CAAC,mBAAmB,EAAE,CAAC;aAC9B;iBAAM;gBACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;aAChC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,mBAAmB;QACf,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,eAAe,EAAE;YAC/C,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,sCAAsC,EAAE;gBACvE,2EAAwB,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBACzE,IAAI,SAAS,CAAC;oBACd,IAAI,IAAI,EAAE;wBACN,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC;qBAChE;oBACD,IAAI,SAAS,EAAE;wBACX,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC;qBAC3C;yBAAM;wBACH,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;qBACnD;oBACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC/B,CAAC,CAAC,CAAC;gBACH,OAAO;aACV;iBAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,sCAAsC,EAAE;gBAC9E,IAAI,CAAC,cAAc,GAAG,4FAA+B,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aAC/E;iBAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,sCAAsC,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;gBACpH,IAAI,CAAC,cAAc,GAAG,6CAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;aACjG;iBAAM;gBACH,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;aACnD;SACJ;aAAM;YACH,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;SAC5B;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;;AAhGM,gBAAI,GAAQ,MAAO;AACnB,mBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,6FAAsB,CAAC,CAAC,CAAC;;;4CAwC7B,kDAAM,SAAC,mFAA4B;;;sBAzBzE,iDAAK;sBAaL,iDAAK;;AA9BG,WAAW;IANvB,yDAAS,CAAC;QACP,QAAQ,EAAE,UAAU;QACpB,oEAAkC;QAElC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,WAAW;AAAA;AAmGjB,MAAM,SAAU,SAAQ,oEAAS;IAGpC,MAAM,CAAU,eAAe,CAAC,IAAI;QAChC,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACjC,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC1B,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aAClD;SACJ;IAEL,CAAC;IACO,MAAM,CAAC,UAAU,CAAC,EAAE;QACxB,IAAI,WAAW,GAAG,0FAAmC,CAAc,gEAAW,CAAC,CAAC;QAChF,WAAW,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9D,IAAI,KAAK,EAAE;gBACR,MAAM,QAAQ,GAAG,EAAE,CAAC;gBACpB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACjB,QAAQ,CAAC,IAAI,CAAC;wBACV,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,KAAI,CAAC,OAAO,CAAC,YAAY,EAAC,KAAI,CAAC,OAAO;wBAC5D,GAAG,EAAE,IAAI,CAAC,GAAG;qBAChB,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBACH,iFAA6B,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACnD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;aACpC;QACL,CAAC,CAAC;IACN,CAAC;IACD,MAAM,CAAC,SAAS;QACZ,SAAS,CAAC,gBAAgB,EAAE,CAAC;QAC7B,qFAAmB,CAAC;YAChB,GAAG,EAAE,sCAAsC;YAC3C,EAAE,EAAE,MAAM;YACV,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC;YACtC,CAAC;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;YAC5D,KAAK,EAAE,QAAQ;YACf,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;YAC5D,KAAK,EAAE,WAAW;YAClB,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,oBAAoB;YACxB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,iEAAe,CAAC,+GAAuB,CAAC;YACrD,KAAK,EAAE,sBAAsB;YAC7B,aAAa,EAAE,+FAA0B;YACzC,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;oBACf,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;wBACf,OAAO,SAAS,CAAC,YAAY,CAAC,mBAAmB,CAAC;wBAClD,OAAO,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC;wBAClC,MAAM,KAAK,GAAG,IAAI,yFAAwB,EAAE,CAAC;wBAC7C,KAAK,CAAC,UAAU,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;4BAC1C,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACvC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;oCAClB,YAAY,EAAE,CAAC;oCACf,KAAK,EAAE,IAAI;iCACd,CAAC,CAAC;4BACP,CAAC,CAAC,CAAC;wBACP,iGAA0C,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBACpD,uFAAgC,CAAC,IAAI,CAAC,CAAC;qBAC1C;gBACL,CAAC;aACJ;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,OAAO;YACd,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,SAAS,EAAE,MAAM;aACpB;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;YACpC,CAAC;SACJ,CAAC,CAAC;QACH,IAAI,WAAW,GAAG,0FAAmC,CAAc,gEAAW,CAAC,CAAC;QAChF,WAAW,CAAC,uBAAuB,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;YACzD,IAAI,UAAU,EAAE;gBACZ,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACtB,IAAI,CAAC,IAAI,CAAC;wBACN,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,EAAE,EAAE,IAAI,CAAC,GAAG;qBACf,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBACH,iFAAe,CAAC;oBACZ,EAAE,EAAE,qBAAqB;oBACzB,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;oBAClD,KAAK,EAAE,uBAAuB;oBAC9B,GAAG,EAAE,CAAC;oBACN,QAAQ,EAAE;wBACN,OAAO,EAAE,UAAU;wBACnB,WAAW,EAAE,IAAI;wBACjB,eAAe,EAAE,SAAS;wBAC1B,iBAAiB,EAAE,SAAS;wBAC5B,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;4BACf,IAAI,MAAM,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,mBAAmB,EAAE;gCAC1E,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;6BACjE;wBACL,CAAC;qBACJ;oBACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;wBACtB,OAAO,IAAI,CAAC,kBAAkB,CAAC;oBACnC,CAAC;iBACJ,CAAC,CAAC;gBACH,iFAAe,CAAC;oBACZ,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;oBAClD,KAAK,EAAE,OAAO;oBACd,GAAG,EAAE,CAAC;oBACN,QAAQ,EAAE;wBACN,OAAO,EAAE,UAAU;wBACnB,cAAc,EAAE,SAAS,CAAC,QAAQ;wBAClC,eAAe,EAAE,KAAK;wBACtB,iBAAiB,EAAE,SAAS;wBAC5B,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;wBAEjB,CAAC;qBACJ;oBACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;wBACtB,OAAO,IAAI,CAAC,mBAAmB,CAAC;oBACpC,CAAC;iBACJ,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;QAEH,iFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,cAAc;YACrB,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,cAAc,IAAI,sCAAsC;YACxE,CAAC;YACD,QAAQ,EAAE;gBACN,SAAS,EAAE,MAAM;aACpB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,iEAAe,CAAC,+GAAuB,CAAC;YACrD,KAAK,EAAE,iBAAiB;YACxB,aAAa,EAAE,+FAA0B;YACzC,GAAG,EAAE,EAAE;SACV,CAAC,CAAC;IACP,CAAC;;AA9Ke,cAAI,GAAG,CAAC,sCAAsC,CAAC;AACjD,kBAAQ,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxI5E;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAOauE,eAAe,SAAfA,eAAe,SAASH,2DAAT,CAAuB;EA8B/C3uB,YAAY8E,SAAZ,EAAyC7E,KAAzC,EAAgHoG,IAAhH,EAAoH;IAChH,MAAMpG,KAAN,EAAaoG,IAAb;IAD4G;IA1BhH,wBAAmB,KAAnB;IAEA,iBAAY,IAAZ;IA0BI,KAAK0oB,YAAL,CAAkB3xB,IAAlB,CAAuB,IAAIoxB,qEAAJ,CAAoB,YAApB,EAAkC,QAAlC,EAA4C,cAA5C,CAAvB;IACA,KAAKO,YAAL,CAAkB3xB,IAAlB,CAAuB,IAAIoxB,qEAAJ,CAAoB,WAApB,EAAiC,QAAjC,EAA2C,aAA3C,CAAvB;IACA,KAAKQ,SAAL,CAAelqB,SAAS,CAACmqB,WAAzB;EACH;;EAzBa,IAAVC,UAAU;IACV,OAAO,KAAKC,eAAZ;EACH;;EACa,IAAVD,UAAU,CAACnuB,GAAD,EAAI;IACd,KAAKouB,eAAL,GAAuBpuB,GAAvB;IACA,KAAKquB,YAAL;EACH;;EAIY,IAATC,SAAS;IACT,OAAO,KAAKC,cAAZ;EACH;;EACY,IAATD,SAAS,CAACtuB,GAAD,EAAI;IACb,KAAKuuB,cAAL,GAAsBvuB,GAAtB;IACA,KAAKquB,YAAL;EACH;;EAWDJ,SAAS,CAACO,IAAD,EAAK;IACV,MAAMC,QAAQ,GAAGZ,0FAAA,GAAqCrwB,IAArC,CAA0ChB,CAAC,IAAIA,CAAC,CAACmyB,IAAF,CAAOC,QAAP,OAAsBJ,IAArE,CAAjB;;IACA,IAAIC,QAAJ,EAAc;MACV,KAAKI,SAAL,GAAiBJ,QAAQ,CAAC9iB,IAAT,CAAciN,KAAd,CAAoB,CAApB,EAAuB,CAAvB,CAAjB;IACH;EACJ;;EAEDlR,eAAe;IACX,MAAMA,eAAN;IACA,KAAKonB,gBAAL,GAAwB,IAAxB;IACA,KAAKT,YAAL;EACH;;EACDU,kBAAkB,IACjB;;EACDV,YAAY;IACR,IAAI,KAAKW,SAAL,IAAkB,KAAKA,SAAL,CAAerH,aAArC,EAAoD;MAChD,KAAKqH,SAAL,CAAerH,aAAf,CAA6BsH,SAA7B,GAAyC,EAAzC;;MACA,IAAI,KAAKb,eAAL,IAAwB,KAAKG,cAAjC,EAAiD;QAC7C,MAAMW,EAAE,GAAG,KAAKC,kBAAhB;QACA,IAAIC,OAAO,GAAG,kCAAkC,KAAKP,SAAvC,GAAmD,GAAjE;;QACA,IAAIK,EAAE,IAAIA,EAAE,CAACG,aAAb,EAA4B;UACxBD,OAAO,IAAI,eAAeF,EAAE,CAACG,aAAlB,GAAkC,GAA7C;QACH;;QACDD,OAAO,IAAI,GAAX;QACA,MAAME,SAAS,GAAG3c,QAAQ,CAACI,aAAT,CAAuB,QAAvB,CAAlB;QACAuc,SAAS,CAAC3pB,IAAV,GAAiB,iBAAjB;QACA2pB,SAAS,CAACC,SAAV,GAAsBH,OAAtB;QACA,KAAKJ,SAAL,CAAerH,aAAf,CAA6BnU,WAA7B,CAAyC8b,SAAzC;QACA,MAAME,SAAS,GAAG7c,QAAQ,CAACI,aAAT,CAAuB,QAAvB,CAAlB;QACAyc,SAAS,CAAC7pB,IAAV,GAAiB,iBAAjB;QACA6pB,SAAS,CAACtc,KAAV,GAAkB,IAAlB;QACAsc,SAAS,CAACxc,GAAV,GAAgB,+DAA+D,KAAKob,eAApF;QACA,KAAKY,SAAL,CAAerH,aAAf,CAA6BnU,WAA7B,CAAyCgc,SAAzC;QACA,MAAMC,IAAI,GAAG9c,QAAQ,CAACI,aAAT,CAAuB,MAAvB,CAAb;QACA0c,IAAI,CAACC,MAAL,GAAc,KAAKnB,cAAnB;QACAkB,IAAI,CAACE,SAAL,CAAeC,GAAf,CAAmB,gBAAnB;;QACA,IAAIV,EAAE,IAAI3oB,KAAK,CAACC,OAAN,CAAc0oB,EAAE,CAACW,UAAjB,CAAN,IAAsCX,EAAE,CAACW,UAAH,CAAchyB,MAAd,GAAuB,CAAjE,EAAoE;UAChE4xB,IAAI,CAACK,YAAL,CAAkB,aAAlB,EAAiCZ,EAAE,CAACW,UAAH,CAActT,IAAd,CAAmB,GAAnB,CAAjC;QACH,CAFD,MAEO;UACHkT,IAAI,CAACK,YAAL,CAAkB,aAAlB,EAAiC,kBAAjC;QACH;;QACD,KAAKd,SAAL,CAAerH,aAAf,CAA6BnU,WAA7B,CAAyCic,IAAzC;MACH;;MACD,KAAKvwB,KAAL,CAAW0B,aAAX;IACH;EACJ;;AAlF8C;AACxCmtB,uBAAY,UAAZ;AACAA,0BAAU9nB,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACW,SAAL,CAAeknB,iGAAf,CAAX,CAAV;;;;;;;;;UA4B6DV,kDAAMA;IAAAnhB,OAAClQ,kFAAD;;;;;;UArBzE6C,iDAAKA;;;UAULA,iDAAKA;;;UASL0S,qDAASA;IAAArF,OAAC,WAAD;;;AA5BD8hB,eAAe,uDAL3BnyB,yDAAS,CAAC;EACP4C,QAAQ,EAAE,cADH;EAEPC,UAAAA,8DAFO;EAGPgP,eAAe,EAAEf,0EAA8BgB;AAHxC,CAAD,CAKkB,GAAfqgB,eAAe,CAAf;AAAAA;AAqFP,MAAOkC,aAAP,SAA6B1C,oEAA7B,CAAsC;EAExB,OAAT2C,SAAS;IACZvC,oFAAA,CAAoB;MAChBpsB,GAAG,EAAE,sCADW;MAEhB8E,EAAE,EAAE,UAFY;MAGhBW,OAAO,EAAE,YAHO;MAIhBvG,KAAK,EAAE,GAJS;MAKhBwI,OAAO,EAAEqkB,yFALO;MAMhB6C,OAAO,EAAE3C,8FANO;MAOhB6C,OAAO,EAAE,CAAC,MAAD,CAPO;MAQhBC,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CARU;MAShB7uB,eAAe,EAAGrE,IAAD,IAAS;QACtB,OAAOA,IAAI,CAACW,WAAL,IAAoB,UAA3B;MACH;IAXe,CAApB;IAcA2vB,gFAAA,CAAgB;MACZrnB,EAAE,EAAE,eADQ;MAEZ+I,MAAM,EAAE,UAFI;MAGZnG,OAAO,EAAE,IAAIpG,iEAAJ,CAAoBwqB,sGAApB,CAHG;MAIZkD,KAAK,EAAE,SAJK;MAKZC,GAAG,EAAE,CALO;MAMZ/pB,QAAQ,EAAE;QACNgqB,WAAW,EAAE,SADP;QAENC,QAAQ,EAAE,KAFJ;QAGNC,WAAW,EAAE,CACT;UACI3pB,OAAO,EAAE,QADb;UAEI4E,KAAK,EAAE;QAFX,CADS,EAIN;UACC5E,OAAO,EAAE,SADV;UAEC4E,KAAK,EAAE;QAFR,CAJM,CAHP;QAWNglB,eAAe,EAAE,OAXX;QAYNC,iBAAiB,EAAE;MAZb;IANE,CAAhB;IAqBAnD,gFAAA,CAAgB;MACZrnB,EAAE,EAAE,YADQ;MAEZ+I,MAAM,EAAE,UAFI;MAGZnG,OAAO,EAAE,IAAIpG,iEAAJ,CAAoBwqB,sGAApB,CAHG;MAIZkD,KAAK,EAAE,UAJK;MAKZC,GAAG,EAAE,CALO;MAMZ/pB,QAAQ,EAAE;QACNgqB,WAAW,EAAE,UADP;QAENC,QAAQ,EAAE,IAFJ;QAGNC,WAAW,EAAE,CACT;UACI3pB,OAAO,EAAE,QADb;UAEI4E,KAAK,EAAE;QAFX,CADS,EAIN;UACC5E,OAAO,EAAE,cADV;UAEC4E,KAAK,EAAE;QAFR,CAJM,EAON;UACC5E,OAAO,EAAE,oBADV;UAEC4E,KAAK,EAAE;QAFR,CAPM,EAUN;UACC5E,OAAO,EAAE,aADV;UAEC4E,KAAK,EAAE;QAFR,CAVM,EAaN;UACC5E,OAAO,EAAE,YADV;UAEC4E,KAAK,EAAE;QAFR,CAbM,EAgBN;UACC5E,OAAO,EAAE,QADV;UAEC4E,KAAK,EAAE;QAFR,CAhBM,CAHP;QAuBNglB,eAAe,EAAE,OAvBX;QAwBNC,iBAAiB,EAAE;MAxBb;IANE,CAAhB;EAiCH;;AAvEuC;AACxBZ,qBAAO,CAAC,sCAAD,CAAP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1GkC;AACwC;AACM;AACc;AAC3B;AACrB;AACE;AACmB;AACpB;AACmB;AACG;AACxB;AACF;AACZ;AAC0B;IAOhE,WAAW,SAAX,WAAY,SAAQ,4DAAc;IAiB3C,YAAY,KAAwB,EAA+C,IAAI;QACnF,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD4D,SAAI,GAAJ,IAAI;QAEnF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,qEAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5E,CAAC;IAdD,IAAI,IAAI;QACJ,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,OAAO,IAAI,CAAC,SAAS,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IACnC,CAAC;IACD,IAAI,IAAI,CAAC,GAAG;QACR,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAOD,kBAAkB;IAClB,CAAC;;AArBM,gBAAI,GAAQ,MAAO;AACnB,mBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,6FAAsB,CAAC,CAAC,CAAC;;;4CAc7B,kDAAM,SAAC,mFAA4B;;AAjBjE,WAAW;IALvB,yDAAS,CAAC;QACP,QAAQ,EAAE,UAAU;QACpB,oEAAkC;QAClC,eAAe,EAAE,0EAA8B;KAClD,CAAC;GACW,WAAW;AAAA;AAyBjB,MAAM,SAAU,SAAQ,oEAAS;IAEpC,MAAM,CAAC,SAAS;QACZ,oFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,MAAM;YACV,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,UAAU,IAAI,IAAI,CAAC,WAAW,IAAI,gBAAgB,CAAE;YACjH,CAAC;SACJ,CAAC;QACF,qFAA+B,CAAC,CAAC,KAAK,EAAE,EAAE;YACtC,IAAI,KAAK,EAAE;gBACP,IAAI,KAAK,GAAG,EAAE,CAAC;gBACf,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACnB,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;gBAC/B,CAAC,CAAC;gBACF,gFAAe,CAAC;oBACZ,EAAE,EAAE,MAAM;oBACV,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;oBAClD,KAAK,EAAE,QAAQ;oBACf,QAAQ,EAAE;wBACN,WAAW,EAAE,UAAU;wBACvB,QAAQ,EAAE,KAAK;wBACf,WAAW,EAAE,KAAK;wBAClB,iBAAiB,EAAE,OAAO;wBAC1B,eAAe,EAAE,OAAO;wBACxB,cAAc,EAAE,OAAO;qBAC1B;iBACJ,CAAC;gBACF,gFAAe,CAAC;oBACZ,EAAE,EAAE,YAAY;oBAChB,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,IAAI,iEAAe,CAAC,oHAAoB,CAAC;oBAClD,IAAI,EAAE,sEAAU;oBAChB,KAAK,EAAE,cAAc;oBACrB,aAAa,EAAE,4FAAwB;oBACvC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;wBACtB,OAAO,IAAI,CAAC,IAAI,CAAC;oBACrB,CAAC;oBACD,QAAQ,EAAE;wBACN,OAAO,EAAE,CAAC;qBACb;iBACJ,CAAC,CAAC;gBACH,gFAAe,CAAC;oBACZ,EAAE,EAAE,WAAW;oBACf,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,IAAI,iEAAe,CAAC,oHAAoB,CAAC;oBAClD,IAAI,EAAE,sEAAU;oBAChB,KAAK,EAAE,aAAa;oBACpB,aAAa,EAAE,4FAAwB;oBACvC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;wBACtB,OAAO,IAAI,CAAC,IAAI,CAAC;oBACrB,CAAC;oBACD,QAAQ,EAAE;wBACN,OAAO,EAAE,CAAC;qBACb;iBACJ,CAAC,CAAC;aAEN;QACL,CAAC,CAAC,CAAC;IACP,CAAC;;AAlEe,cAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/Cb;AACgD;AAC7C;AACwC;AACV;AACrB;AACqB;AACE;AACxB;AACd;AAC0B;IAQhE,aAAa,SAAb,aAAc,SAAQ,2DAAc;IAO7C,YAAoB,SAAuB,EAAE,KAAwB,EAA+C,IAAI;QACpH,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,cAAS,GAAT,SAAS,CAAc;QAAyE,SAAI,GAAJ,IAAI;IAExH,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IACD,sBAAsB;QAClB,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IACD,SAAS;QACL,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE;YAC7B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;SACzF;IACL,CAAC;;AAnBM,kBAAI,GAAQ,QAAS;AACrB,qBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,8FAAwB,CAAC,CAAC,CAAC;;;;4CAIE,kDAAM,SAAC,kFAA4B;;AAPlG,aAAa;IANzB,yDAAS,CAAC;QACP,QAAQ,EAAE,YAAY;QACtB,sEAAoC;QAEpC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,aAAa;AAAA;AAuBnB,MAAM,WAAY,SAAQ,oEAAS;IAEtC,MAAM,CAAC,SAAS;QACZ,oFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,QAAQ;YACZ,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC;YACxC,CAAC;SACJ,CAAC;QAEF,gFAAe,CAAC;YACZ,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE;gBACN,SAAS,EAAE,MAAM;aACpB;SACJ,CAAC,CAAC;IACP,CAAC;;AAzBe,gBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1Cb;AACsF;AACvF;AAEf;AACwD;AACM;AACe;AAC5B;AACrB;AACN;AACM;AACQ;AACT;AACsB;AAEE;AACxB;AACF;AACa;AACzB;AAC0B;IAQhE,YAAY,SAAZ,YAAa,SAAQ,4DAAc;IAsD5C,YAAoB,YAA0B,EAAU,MAAiB,EAAE,KAAwB,EAA+C,IAAI;QAClJ,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,iBAAY,GAAZ,YAAY,CAAc;QAAU,WAAM,GAAN,MAAM,CAAW;QAAyE,SAAI,GAAJ,IAAI;QAzB5I,sBAAiB,GAAG,IAAI,wDAAY,EAAO;QAqB3C,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QAMhD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IApDD,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD,IAAI,GAAG,CAAC,KAAK;QACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE;YAC1B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE;gBACzB,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;YAC7B,CAAC,CAAC;SACL;IACL,CAAC;QAKG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;QASG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,IAAI,CAAC,eAAe,IAAI,GAAG,EAAE;YAC7B,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;gBACrD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;aAC/B;YACD,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAC7D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACpD;IACL,CAAC;IAWD,kBAAkB;QACd,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;IACD,QAAQ;QACJ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,KAAK,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC;IACD,sBAAsB;QAClB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;IACD,SAAS;QACL,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;gBAC/B,yCAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACvB;iBAAM,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;gBAC7D,OAAO,IAAI,6CAAU,CAAC,CAAC,UAAU,EAAE,EAAE;oBACjC,iFAA+B,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;wBACjF,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;wBAC3C,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;4BAC/B,IAAI,IAAI,CAAC,eAAe,EAAE;gCACtB,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;6BACnC;yBACJ;wBACD,IAAI,QAAQ,EAAE;4BACV,IAAI,MAAM,CAAC,OAAO,EAAE;gCAChB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;oCAClE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gCAC3B,CAAC,CAAC,CAAC;6BACN;iCAAM;gCACH,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;oCAC/B,UAAU,CAAC,IAAI,CAAC,mFAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;iCACzD;qCAAM;oCACH,UAAU,CAAC,IAAI,CAAC,mFAAkB,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;iCACjF;6BACJ;yBACJ;6BAAM;4BACH,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;yBACtB;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC;aACL;iBAAM;gBACH,yCAAE,CAAC,EAAE,CAAC,CAAC;aACV;SACJ;aAAM;YACH,yCAAE,CAAC,EAAE,CAAC,CAAC;SACV;IACL,CAAC;IAED,SAAS;QACL,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kFAAkB,EAAE;gBACnD,UAAU,EAAE,+BAA+B;gBAC3C,IAAI,EAAE;oBACF,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW;oBAC7C,aAAa,EAAE,IAAI;iBACtB;aACJ,CAAC,CAAC;YACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBACvC,IAAI,MAAM,EAAE;oBACR,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;iBAC5B;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SAC1B;IACL,CAAC;IAED,cAAc,CAAC,EAAE;QACb,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO;QACH,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;;AAtIM,iBAAI,GAAQ,OAAQ;AACpB,oBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,8FAAuB,CAAC,CAAC,CAAC;;;;;4CAmDiC,kDAAM,SAAC,mFAA4B;;;0BAlCxI,iDAAK;gCASL,kDAAM;yBAMN,iDAAK;+BAeL,kDAAM;;AAlDE,YAAY;IANxB,yDAAS,CAAC;QACP,QAAQ,EAAE,WAAW;QACrB,qEAAmC;QAEnC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,YAAY;AAAA;AA0IlB,MAAM,UAAW,SAAQ,oEAAS;IAErC,MAAM,CAAC,SAAS;QACZ,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,OAAO;YACX,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC;YACvC,CAAC;SACJ,CAAC;QACF,oBAAoB;QACpB,wBAAwB;QACxB,uBAAuB;QACvB,0DAA0D;QAC1D,kBAAkB;QAClB,kCAAkC;QAClC,SAAS;QACT,aAAa;QACb,KAAK;QACL,iFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,cAAc;aAC1B;YACD,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;YAC5B,CAAC;SACJ,CAAC;QACF,IAAI,YAAY,GAAG,yFAAmC,CAAe,kEAAY,CAAC,CAAC;QACnF,YAAY,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACxC,iFAAe,CAAC;gBACZ,EAAE,EAAE,aAAa;gBACjB,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;gBAClD,KAAK,EAAE,qBAAqB;gBAC5B,GAAG,EAAE,CAAC;gBACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;oBACtB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC5B,CAAC;gBACD,QAAQ,EAAE;oBACN,WAAW,EAAE,UAAU;oBACvB,QAAQ,EAAE,KAAK;oBACf,WAAW,EAAE,IAAI;oBACjB,iBAAiB,EAAE,SAAS;oBAC5B,eAAe,EAAE,KAAK;iBACzB;aACJ,CAAC;QACN,CAAC,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,IAAI,iEAAe,CAAC,qHAAyB,CAAC;YACvD,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC;YAChD,CAAC;SACJ,CAAC;QAEF,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,aAAa;YACpB,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,oEAAS;aACxB;SAEJ,CAAC;IACN,CAAC;;AA/Ee,eAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACxKiG;AAClG;AAElE,MAAM,gBAAgB,GAAG;IACrB,SAAS,EAAE;QACP,QAAQ,EAAE,QAAQ;KACrB;CACJ,CAAC;AACF,MAAM,oBAAoB,GAAG;IACzB,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,GAAG;CACpB,CAAC;IAaW,kBAAkB,SAAlB,kBAAkB;;QAMlB,cAAS,GAAG,IAAI;QAGf,oBAAe,GAAG,IAAI,uDAAY,EAAO;QASzC,SAAI,GAAG,IAAI,uDAAY,EAAU;QACjC,WAAM,GAAG,IAAI,uDAAY,EAAU;IA+JjD,CAAC;IA3JG,eAAe;QACX,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC;QAC1D,IAAI,OAAO,GAAG,oBAAoB,CAAC;QACnC,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3D;QACD,wCAAwC;QACxC,mCAAmC;QACnC,aAAa;QACb,IAAI;QACJ,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,CAAC;YACpC,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC;YAC7D,SAAS,8BAA8B,CAAC,WAAW;gBAC/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBACnC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;wBAC9B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE;4BACjC,aAAa,CAAC,QAAQ,CAAC,CAAC;4BACxB,OAAO,CAAC,IAAI,CAAC,CAAC;yBACjB;oBACL,CAAC,EAAE,GAAG,CAAC,CAAC;gBACZ,CAAC,CAAC;YACN,CAAC;YACD,OAAO;gBACH,MAAM,IAAI,GAAG,SAAS,CAAC;gBACvB,OAAO,8BAA8B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAC,CAAC,CAAC,CAAC;YACxH,CAAC,CAAC;QACN,CAAC,CAAC,EAAE,CAAC;QAGL,iDAAiD;QACjD,kDAAkD;QAClD,IAAI;QACJ,qDAAqD;QACrD,+BAA+B;QAC/B,oEAAoE;QACpE,qEAAqE;QACrE,QAAQ;QACR,4CAA4C;QAC5C,8CAA8C;QAC9C,wDAAwD;QACxD,oDAAoD;QACpD,sDAAsD;QACtD,oCAAoC;QACpC,2CAA2C;QAC3C,6CAA6C;QAC7C,kDAAkD;QAClD,+CAA+C;QAC/C,QAAQ;QACR,2BAA2B;QAC3B,6DAA6D;QAC7D,8DAA8D;QAC9D,QAAQ;QACR,mBAAmB;QACnB,oBAAoB;QACpB,kBAAkB;QAClB,kBAAkB;QAClB,sBAAsB;QACtB,uBAAuB;QACvB,mDAAmD;QACnD,qDAAqD;QACrD,mDAAmD;QACnD,2FAA2F;QAC3F,iDAAiD;QACjD,mDAAmD;QACnD,WAAW;QACX,cAAc;QACd,mDAAmD;QACnD,qDAAqD;QACrD,iEAAiE;QACjE,gGAAgG;QAChG,gFAAgF;QAChF,kFAAkF;QAClF,WAAW;QACX,OAAO;QACP,uDAAuD;QACvD,yDAAyD;QACzD,6EAA6E;QAC7E,0DAA0D;QAC1D,6DAA6D;QAE7D,uCAAuC;QACvC,8DAA8D;QAC9D,2DAA2D;QAC3D,yDAAyD;QACzD,OAAO;QAEP,iDAAiD;QACjD,iFAAiF;QACjF,gEAAgE;QAChE,+EAA+E;QAC/E,gEAAgE;QAEhE,sEAAsE;QACtE,wEAAwE;QAExE,yBAAyB;QACzB,0BAA0B;QAC1B,KAAK;QACL,8BAA8B;QAC9B,yEAAyE;QACzE,qCAAqC;QACrC,kEAAkE;QAClE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/C,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IACD,WAAW;QACP,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,gCAAgC;IACpC,CAAC;IAEO,iBAAiB;QACrB,uDAAuD;QACvD,8BAA8B;QAC9B,IAAI;QACJ,0EAA0E;QAC1E,mDAAmD;QACnD,IAAI;QACJ,+DAA+D;QAC/D,sCAAsC;QACtC,IAAI;QACJ,2DAA2D;QAC3D,kCAAkC;QAClC,IAAI;QACJ,4DAA4D;QAC5D,mCAAmC;QACnC,IAAI;QACJ,gEAAgE;QAChE,uCAAuC;QACvC,IAAI;QACJ,wDAAwD;QACxD,6BAA6B;QAC7B,IAAI;QACJ,gEAAgE;QAChE,uCAAuC;QACvC,IAAI;IACR,CAAC;IAEO,oBAAoB;QACxB,gEAAgE;QAChE,kEAAkE;QAClE,wEAAwE;QACxE,oEAAoE;QACpE,qEAAqE;QACrE,yEAAyE;QACzE,oEAAoE;QACpE,yEAAyE;IAC7E,CAAC;IAED,MAAM;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IACD,IAAI;QACA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;;;8BA/KA,oDAAS,SAAC,6EAA2B;wBAIrC,gDAAK;sBACL,gDAAK;8BAEL,iDAAM;mBASN,iDAAM;qBACN,iDAAM;wBAEN,oDAAS,SAAC,aAAa;;AArBf,kBAAkB;IAP9B,wDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,2EAAuC;QAEvC,aAAa,EAAE,iEAAsB;QACrC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxBuB;AAC0F;AAClD;AACM;AACH;AACA;AAC2B;AACrC;AACrB;AACQ;AACN;AACH;AACsB;AACpB;AACC;AACkB;AACG;AACxB;AACI;AAClB;AAC0B;IAQhE,iBAAiB,SAAjB,iBAAkB,SAAQ,4DAAc;IA6GjD,YAAoB,eAAgC,EAAE,KAAwB,EAA+C,IAAI;QAC7H,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,oBAAe,GAAf,eAAe,CAAiB;QAAyE,SAAI,GAAJ,IAAI;QAzGjI,UAAK,GAAG,IAAI,CAAC;QAGb,oBAAe,GAAG,eAAe,CAAC;QAWxB,sBAAiB,GAAG,IAAI,wDAAY,EAAO;QAY3C,oBAAe,GAAG,IAAI,wDAAY,EAAU;QAa5C,kBAAa,GAAG,IAAI,wDAAY,EAAU;QAa1C,kBAAa,GAAG,IAAI,wDAAY,EAAU;QAgB1C,2BAAsB,GAAG,IAAI,wDAAY,EAAU;QAgBnD,eAAU,GAAG,IAAI,wDAAY,EAAU;QAgBvC,eAAU,GAAG,IAAI,wDAAY,EAAU;QACjD,iBAAY,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,kBAAa,GAAG,EAAE,CAAC;QACnB,iBAAY,GAAG,EAAE,CAAC;QAId,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvF,CAAC;QA1GG,WAAW;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;IAC1C,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,CAAC;QACrC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAChE,CAAC;QAMG,SAAS;QACT,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;IACxC,CAAC;IACD,IAAI,SAAS,CAAC,GAAW;QACrB,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,GAAG,CAAC;QACnC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;QAOG,OAAO;QACP,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,GAAW;QACnB,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,GAAG,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;QAOG,OAAO;QACP,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,GAAW;QACnB,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,GAAG,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;QAOG,gBAAgB;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;IAC/C,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAW;QAC5B,IAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC1C,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE;YACpF,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;SAC9F;QACD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC1E,CAAC;QAOG,IAAI;QACJ,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,SAAS,EAAE;YACvC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;SAClC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,IAAI,IAAI,CAAC,GAAW;QAChB,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,GAAG,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAOD,IAAI,QAAQ;QACR,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;YACzC,OAAO,IAAI,CAAC,aAAa,CAAC;SAC7B;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;IACvC,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;IAC7B,CAAC;IAiBD,kBAAkB;QACd,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1E,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;gBAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC7D,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;oBACZ,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAClD,sFAA+B,CAAC,IAAI,CAAC,CAAC;oBACtC,2FAAoC,CAAC;wBACjC,SAAS,EAAE,IAAI,CAAC,EAAE;wBAClB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;wBAC5C,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;qBACvC,CAAC,CAAC;oBACH,IAAI,CAAC,YAAY,EAAE,CAAC;oBACpB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;iBAC9B;aACJ;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,sBAAsB;QAClB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,YAAY;QACR,MAAM,aAAa,GAAG,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;YACnG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACzC,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,EAAE;oBACpB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACzB;qBAAM;oBACH,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACxB;YACL,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAED,QAAQ;QACJ,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,KAAK,EAAE,CAAC;SACnB;IACL,CAAC;IAED,QAAQ,CAAC,EAAE;QACP,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,KAAK,QAAQ,EAAE;YAE3C,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,IAAI,WAAW,GAAG,KAAK,CAAC;YAExB,IAAI,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACnD,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE;gBACrC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvC,WAAW,GAAG,IAAI,CAAC;aAEtB;iBAAM,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE;gBAC5C,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvC,WAAW,GAAG,IAAI,CAAC;aACtB;YAED,IAAI,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE;gBAE5D,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC;gBAC/C,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAEjF,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,eAAe,CAAC,QAAQ,EAAE,EAAE;oBAC5E,iFAAuB,CAAC,2EAA2E,EAAE,yCAAyC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;iBAC/M;aACJ;YAED,IAAI,WAAW,EAAE;gBACb,iFAAuB,CAAC,2GAA2G,EAAE,0BAA0B,EAAE,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;aACtN;YACD,IAAI,WAAW,EAAE;gBACb,iFAAuB,CAAC,2GAA2G,EAAE,0BAA0B,EAAE,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;aACtN;YAED,IAAI,eAAe,EAAE;gBACjB,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC;aACrC;SACJ;QACD,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE;YAC1C,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACvD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SAC9C;IACL,CAAC;IAED,OAAO,CAAC,KAAK;QACT,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACzF,KAAK,CAAC,cAAc,EAAE,CAAC;SAC1B;aAAM;YACH,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe;gBACvC,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,CAAC,EAAE;gBACtG,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAClC,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;oBAClC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBACxC,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;aAC5C;iBAAM;gBACH,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;aACvC;SACJ;IACL,CAAC;IAED,QAAQ,CAAC,KAAK;QACV,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;;AArOM,sBAAI,GAAQ,YAAa;AACzB,yBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,mGAA4B,CAAC,CAAC,CAAC;;;;4CA2GO,kDAAM,SAAC,mFAA4B;;;0BApGnH,iDAAK;gCASL,kDAAM;wBAGN,iDAAK;8BASL,kDAAM;sBAIN,iDAAK;4BASL,kDAAM;sBAIN,iDAAK;4BASL,kDAAM;+BAIN,iDAAK;qCAYL,kDAAM;mBAIN,iDAAK;yBAYL,kDAAM;yBAgBN,kDAAM;;AAxGE,iBAAiB;IAN7B,yDAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,0EAAwC;QAExC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,iBAAiB;AAAA;AAwOvB,MAAM,eAAgB,SAAQ,oEAAS;IAE1C,MAAM,CAAC,SAAS;QACZ,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,YAAY;YAChB,OAAO,EAAE,cAAc;YACvB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC;YAC5C,CAAC;SACJ,CAAC,CAAC;QACH,oBAAoB;QACpB,IAAI,UAAU,GAAG,CAAC;gBACd,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,OAAO;aACjB,EAAE;gBACC,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE,MAAM;aAChB,EAAE;gBACC,OAAO,EAAE,YAAY;gBACrB,KAAK,EAAE,gBAAgB;aAC1B,EAAE;gBACC,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,OAAO;aACjB,EAAE;gBACC,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,OAAO;aACjB,EAAE;gBACC,OAAO,EAAE,UAAU;gBACnB,KAAK,EAAE,QAAQ;aAClB,EAAE;gBACC,OAAO,EAAE,YAAY;gBACrB,KAAK,EAAE,UAAU;aACpB,EAAE;gBACC,OAAO,EAAE,UAAU;gBACnB,KAAK,EAAE,QAAQ;aAClB,EAAE;gBACC,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,KAAK;aACf,EAAE;gBACC,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE,MAAM;aAChB,EAAE;gBACC,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE,MAAM;aAChB,EAAE;gBACC,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE,KAAK;aACf,EAAE;gBACC,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE,MAAM;aAChB,CAAC;QAEF,uBAAuB;QACvB,IAAI,UAAU,GAAG,CAAC;gBACd,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE,MAAM;aAChB,EAAE;gBACC,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE,MAAM;aAChB,EAAE;gBACC,OAAO,EAAE,WAAW;gBACpB,KAAK,EAAE,SAAS;aACnB,EAAE;gBACC,OAAO,EAAE,WAAW;gBACpB,KAAK,EAAE,SAAS;aACnB,EAAE;gBACC,OAAO,EAAE,aAAa;gBACtB,KAAK,EAAE,KAAK;aACf,EAAE;gBACC,OAAO,EAAE,UAAU;gBACnB,KAAK,EAAE,QAAQ;aAClB,EAAE;gBACC,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,OAAO;aACjB,EAAE;gBACC,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE,KAAK;aACf,CAAC;QACF,YAAY;QACZ,iFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;YAC5D,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;YAC5D,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,WAAW,EAAE,QAAQ;gBACrB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,UAAU;gBACvB,eAAe,EAAE,OAAO;gBACxB,iBAAiB,EAAE,SAAS;aAC/B;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,WAAW,EAAE,QAAQ;gBACrB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,UAAU;gBACvB,eAAe,EAAE,OAAO;gBACxB,iBAAiB,EAAE,SAAS;aAC/B;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,YAAY;aACxB;YACD,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;SACT,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,iBAAiB;aAC7B;YACD,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;SACT,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,CAAC;YAC9B,CAAC;YACD,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,oEAAS;aACxB;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC;YACrD,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,gBAAgB;aAC5B;YACD,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAC9E,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,sBAAsB;YAC1B,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,wBAAwB;aACpC;YACD,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;YACrD,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC;YACtC,CAAC;YACD,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;aACtB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC;YACtC,CAAC;YACD,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;aACtB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,kBAAkB;YACtB,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,oBAAoB;YAC3B,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC;YACtC,CAAC;YACD,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;gBACV,IAAI,EAAE,CAAC;aACV;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,mBAAmB;aAC/B;YACD,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE;SACV,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,eAAe,CAAC;YAChC,CAAC;YACD,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;gBACV,IAAI,EAAE,CAAC;aACV;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,kBAAkB;YACtB,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,oBAAoB;aAChC;YACD,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE;SACV,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE;YACP,UAAU,EAAE;gBACR;oBACI,EAAE,EAAE,MAAM;oBACV,MAAM,EAAE,YAAY;oBACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;oBACjD,KAAK,EAAE,WAAW;oBAClB,aAAa,EAAE,6FAAwB;iBAC1C;gBACD;oBACI,EAAE,EAAE,UAAU;oBACd,MAAM,EAAE,YAAY;oBACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;oBAClD,QAAQ,EAAE;wBACN,OAAO,EAAE,YAAY;qBACxB;iBACJ;aACJ;YACD,QAAQ,EAAE;gBACN,eAAe,EAAE,GAAG,EAAE;oBAClB,MAAM,IAAI,GAAG,IAAI,uEAAa,EAAE,CAAC;oBACjC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;oBAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACrB,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;oBACxB,IAAI,CAAC,KAAK,GAAG,IAAI,uEAAU,EAAE,CAAC;oBAC9B,OAAO,IAAI,CAAC;gBAChB,CAAC;aACJ;YACD,aAAa,EAAE,6FAAwB;SAC1C,CAAC,CAAC;IACP,CAAC;;AArUe,oBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrQb;AACgF;AAC9E;AACD;AACuC;AACM;AACb;AACrB;AACV;AACuB;AACQ;AAEb;AACe;AACpB;AAClB;AAC0B;IAOhE,YAAY,SAAZ,YAAa,SAAQ,4DAAc;IAK5C,kBAAkB;IAClB,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;SAChC;IACL,CAAC;;AAXM,iBAAI,GAAQ,cAAe;AAC3B,oBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,qGAA8B,CAAC,CAAC,CAAC;;2BAC3E,qDAAS,SAAC,cAAc;;AAHhB,YAAY;IALxB,yDAAS,CAAC;QACP,QAAQ,EAAE,mBAAmB;QAC7B,+EAA6C;QAC7C,eAAe,EAAE,0EAA8B;KAClD,CAAC;GACW,YAAY;AAAA;IAqBZ,mBAAmB,SAAnB,mBAAmB;IAsD5B,YAAoB,OAA4B,EAAU,SAA2B,EAAS,KAAwB;QAAlG,YAAO,GAAP,OAAO,CAAqB;QAAU,cAAS,GAAT,SAAS,CAAkB;QAAS,UAAK,GAAL,KAAK,CAAmB;QAnDtH,cAAS,GAAG,EAAE,CAAC;QAGf,kBAAkB;QAClB,kBAAa,GAAG,KAAK,CAAC;QASZ,mBAAc,GAAG,IAAI,wDAAY,EAAW;QAGtD,mBAAmB;QACnB,mBAAc,GAAG,KAAK,CAAC;QAUb,oBAAe,GAAG,IAAI,wDAAY,EAAW;QACvD,YAAY;QAEZ,0BAA0B;QAC1B,0BAAqB,GAAG,2FAA0B,CAAC;QAezC,2BAAsB,GAAG,IAAI,wDAAY,EAAoB;QAG7D,oBAAe,GAAG,IAAI,wDAAY,EAAE;IAG9C,CAAC;QA9CG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAY;QACrB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;QAOG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAY;QACtB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAOG,gBAAgB;QAChB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACtC,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAqB;QACtC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YACzB,GAAG,GAAG,2FAA0B,CAAC;SACpC;QACD,IAAI,GAAG,KAAK,IAAI,CAAC,qBAAqB,EAAE;YACpC,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC;YACjC,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SAChE;IACL,CAAC;IASD,QAAQ;QACJ,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YACvF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACvB,8BAA8B;gBAC9B,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;YACpB,CAAC,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;YAC/C,IAAI,GAAG,GAAG;gBACN,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC/B,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,WAAW;aACpB,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAClB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAClB,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE;wBACxB,GAAG,GAAG,IAAI,CAAC;wBACX,OAAO,IAAI,CAAC;qBACf;oBACD,OAAO,KAAK,CAAC;gBACjB,CAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;YAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,gBAAgB,CAAC,IAAI;QACjB,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,EAAE;YAChC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB;QACD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IAC7B,CAAC;IAED,eAAe;QACX,oEAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9E,CAAC;IAED,UAAU;QACN,QAAQ,IAAI,CAAC,qBAAqB,EAAE;YAChC,KAAK,sFAAqB;gBACtB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACvB,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC;oBAClB,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC;gBAChD,CAAC,CAAC,CAAC;gBACH,MAAM;YACV,KAAK,2FAA0B;gBAC3B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACvB,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC;oBACtB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;gBACrB,CAAC,CAAC,CAAC;gBACH,MAAM;YACV,KAAK,0FAAyB;gBAC1B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACvB,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC;oBACzB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;gBACrB,CAAC,CAAC,CAAC;gBACH,MAAM;YACV,KAAK,sFAAqB;gBACtB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACvB,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC;oBAC/C,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;gBACrB,CAAC,CAAC,CAAC;YACP,KAAK,6FAA4B;gBAC7B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACvB,MAAM,WAAW,GAAG,4FAA+B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;oBACnE,IAAI,WAAW,EAAE;wBACb,CAAC,CAAC,UAAU,GAAG,WAAW,CAAC;qBAC9B;yBAAM;wBACH,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC;qBACzB;oBACD,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;gBACrB,CAAC,CAAC,CAAC;gBACH,MAAM;SACb;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;SACxB;IACL,CAAC;;;;;;;;sBA5IA,qDAAS,SAAC,mEAAc;uBAIxB,iDAAK;6BAQL,kDAAM;oBAEN,iDAAK;wBAGL,iDAAK;8BASL,kDAAM;+BAKN,iDAAK;qCAcL,kDAAM;8BAGN,kDAAM;;AApDE,mBAAmB;IAN/B,yDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,6EAA2C;QAE3C,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,mBAAmB;AAAA;AAkJzB,MAAM,iBAAkB,SAAQ,oEAAS;IAE5C,MAAM,CAAC,SAAS;QACZ,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,cAAc;YAClB,OAAO,EAAE,iBAAiB;YAC1B,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,cAAc,CAAC;YAC9C,CAAC;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,oBAAoB;aAChC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,kBAAkB;YACtB,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,iFAAgB;aAC/B;SACJ,CAAC;IACN,CAAC;;AAlCe,sBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/LhB;AACmF;AACjG;AACY;AACiB;AACD;AACN;AACJ;AACgB;AACT;AACgB;AACN;AACI;AACkE;AAC7E;AACG;AACN;AACQ;AACgB;AACb;AACE;AACqB;IAQnF,UAAU,SAAV,UAAU;IA8QnB,YAAoB,KAAwB,EAAU,SAAoB;QAAtD,UAAK,GAAL,KAAK,CAAmB;QAAU,cAAS,GAAT,SAAS,CAAW;QA7Q1E,aAAQ,GAAG,0EAAQ,CAAC;QAwBV,uBAAkB,GAAG,IAAI,wDAAY,EAAO;QA4B5C,wBAAmB,GAAG,IAAI,wDAAY,EAAO;QACvD,YAAY;QACZ,mBAAmB;QACnB,mBAAc,GAAG,IAAI,CAAC;QAWZ,oBAAe,GAAG,IAAI,wDAAY,EAAO;QAczC,2BAAsB,GAAG,IAAI,wDAAY,EAAO;QAchD,yBAAoB,GAAG,IAAI,wDAAY,EAAO;QAc9C,8BAAyB,GAAG,IAAI,wDAAY,EAAO;QAcnD,yBAAoB,GAAG,IAAI,wDAAY,EAAO;QAkB9C,uBAAkB,GAAG,IAAI,wDAAY,EAAO;QAgB5C,wBAAmB,GAAG,IAAI,wDAAY,EAAO;QAc7C,mBAAc,GAAG,IAAI,wDAAY,EAAO;QAClD,YAAY;QACZ,wBAAwB;QACxB,wBAAmB,GAAG,KAAK,CAAC;QAWlB,yBAAoB,GAAG,IAAI,wDAAY,EAAO;QAc9C,mBAAc,GAAG,IAAI,wDAAY,EAAO;QAgBxC,iBAAY,GAAG,IAAI,wDAAY,EAAO;QAChD,YAAY;QACZ,2BAAsB,GAAG,KAAK,CAAC;QAoBrB,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QACpD,YAAY;QAEZ,iBAAiB;QACjB,iBAAY,GAAG,KAAK,CAAC;QAUX,kBAAa,GAAG,IAAI,wDAAY,EAAO;QAIjD,aAAQ,GAAG,EAAE,CAAC;QACd,kBAAa,GAAG,EAAE,CAAC;QACnB,cAAS,GAAG,EAAE,CAAC;QAEf,kBAAa,GAAG,KAAK,CAAC;QACZ,gBAAW,GAAG,IAAI,wDAAY,EAAO;QAErC,kBAAa,GAAG,IAAI,wDAAY,EAAO;QACvC,cAAS,GAAG,IAAI,wDAAY,EAAO;QACnC,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QACpD,mBAAc,GAAG,KAAK,CAAC;QAGvB,oBAAe,GAAG,KAAK,CAAC;IAEsD,CAAC;QAzQ3E,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC;SACxC;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;YAC9C,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC;YACzC,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC;SACvC;QACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;QAOG,aAAa;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,GAAG,IAAI,SAAS,EAAE;YAClB,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxB,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC;gBACrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;aACjC;YACD,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gBAC9C,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;YAC9B,IAAI,GAAG,EAAE;gBACL,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACZ,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;gBACxB,CAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAC1D;IACL,CAAC;QAQG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;QAQG,gBAAgB;QAChB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACtC,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG;QACpB,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC;QACjC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACjE,CAAC;QAQG,cAAc;QACd,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QAClB,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;QAC/B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC7D,CAAC;QAQG,mBAAmB;QACnB,OAAO,IAAI,CAAC,wBAAwB,CAAC;IACzC,CAAC;IACD,IAAI,mBAAmB,CAAC,GAAG;QACvB,IAAI,CAAC,wBAAwB,GAAG,GAAG,CAAC;QACpC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACvE,CAAC;QAQG,cAAc;QACd,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QAClB,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;QAC/B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC7D,CAAC;QAOG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,GAAG,IAAI,SAAS,EAAE;YAClB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;YAC7B,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;aAC3C;YACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACrD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;QAOG,aAAa;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,GAAG,IAAI,SAAS,EAAE;YAClB,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;YAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACvD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;QAOG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;QAQG,cAAc;QACd,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QAClB,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;QAC/B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC7D,CAAC;QAQG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;QAQG,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACV,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;QAClC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;QAMG,iBAAiB;QACjB,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACvC,CAAC;IACD,IAAI,iBAAiB,CAAC,GAAG;QACrB,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAC;IACtC,CAAC;QAKG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAA0B;QACrC,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;QAQG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAY;QACpB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;IAsBD,iBAAiB;IACT,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI;QAC1C,IAAI,MAAM,CAAC;QACX,IAAI,QAAQ,IAAI,IAAI,EAAE;YAClB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;oBACrF,MAAM,GAAG,IAAI,CAAC;oBACd,OAAO,IAAI,CAAC;iBACf;gBACD,MAAM,GAAG,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC1D,IAAI,MAAM,EAAE;oBACR,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,CAAC;SACN;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,IAAmB,EAAE,YAAoB,EAAE,EAAY,EAAE,MAAsB;QACtG,MAAM,MAAM,GAAG,cAAc,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAC/E,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE;YAChB,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;YACvB,IAAI,IAAI,CAAC,WAAW,IAAI,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,QAAQ,IAAI,IAAI,CAAC,WAAW,IAAI,QAAQ,EAAE;gBAC1H,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;aAC1B;SACJ;aAAM,IAAI,IAAI,CAAC,WAAW,EAAE;YACzB,MAAM,QAAQ,GAAG,0EAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5C,IAAI,QAAQ,EAAE;gBACV,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;aAC/B;YACD,IAAI,IAAI,CAAC,WAAW,IAAI,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,QAAQ,IAAI,IAAI,CAAC,WAAW,IAAI,QAAQ,EAAE;gBAC1H,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;gBACnB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;aAC1B;SACJ;QACD,MAAM,IAAI,GAAG,kGAAuC,EAAE,CAAC;QACvD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,KAAK,UAAU,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,CAAC,CAAC,EAAE;gBACzH,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC1B,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;aACxB;YACD,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;gBACjC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;oBAC1B,IAAI,YAAY,EAAE;wBACd,YAAY,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;qBAC3C;yBAAM;wBACH,YAAY,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;qBAClC;oBACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;wBAC1B,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;wBAC1E,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACpC,CAAC,CAAC,CAAC;iBACN;aACJ;iBAAM,IAAI,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE;gBACtC,IAAI,IAAI,KAAK,QAAQ,EAAE;oBACnB,IAAI,YAAY,EAAE;wBACd,YAAY,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;qBAC3C;yBAAM;wBACH,YAAY,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;qBAClC;oBACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;wBAC1B,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;wBAC1E,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACpC,CAAC,CAAC,CAAC;iBACN;aACJ;iBAAM,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,gBAAgB,EAAE;gBAChH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBAC1B,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBAC1E,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC;oBAC5B,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC;oBAC5B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACpC,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBAC1B,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;oBAC1E,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACpC,CAAC,CAAC,CAAC;aACN;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS;QAC/C,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAC7B,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,KAAK,EAAE,CAAC;SACzC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,EAAE,GAAG,oDAAS,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;SAC7E;IACL,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI;QACrC,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;SAC1B;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACtB,UAAU,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI;QAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;YACpB,OAAO,IAAI,CAAC;SACf;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;SAC5E;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,UAAU;QAC1C,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC;QACrB,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC;QACvB,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC;QACtB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACvB,IAAI,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACzB,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS;QAC5C,IAAI,QAAQ,EAAE;YACV,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACjB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,UAAU,EAAE;oBAC/B,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;iBACnD;YACL,CAAC,CAAC,CAAC;SACN;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM;QAC7C,IAAI,QAAQ,EAAE;YACV,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACjB,MAAM,CAAC,CAAC,CAAC,CAAC;gBACV,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACd,IAAI,CAAC,CAAC,WAAW,EAAE;gBACf,IAAI,CAAC,CAAC,aAAa,EAAE;oBACjB,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;iBAC5C;gBACD,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;aAC3C;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACd,IAAI,CAAC,CAAC,WAAW,EAAE;gBACf,IAAI,CAAC,CAAC,aAAa,EAAE;oBACjB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;oBAC3C,IAAI,OAAO,QAAQ,KAAK,SAAS,EAAE;wBAC/B,CAAC,CAAC,UAAU,GAAG,QAAQ,CAAC;qBAC3B;iBACJ;gBACD,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;aAC5C;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACD,YAAY;IACZ,QAAQ;QACJ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAE7B,IAAI,mFAA4B,EAAE;YAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,IAAI,uFAAgC,IAAI,4FAAqC,IAAI,4FAAqC,IAAI,mBAAmB,EAAE;gBAC3I,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;aAC/B;iBAAM;gBACH,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;aAChC;YACD,iGAA0C,CAAC,CAAC,IAAQ,EAAE,EAAE;gBACpD,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,mBAAmB,EAAE;oBACvD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;iBAC/B;qBAAM;oBACH,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;iBAChC;gBACD,6BAA6B;YACjC,CAAC,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;SACnC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,0FAAmC,CAAC,CAAC,GAAG,EAAE,EAAE;YAChE,IAAI,GAAG,EAAE;gBACL,IAAI,CAAC,YAAY,EAAE,CAAC;aACvB;QACL,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,yGAAkD,CAAC,GAAG,EAAE;YAC5E,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,yGAAkD,CAAC,CAAC,GAAG,EAAE,EAAE;YAC/E,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC/D,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC9F,IAAI,CAAC,YAAY,EAAE,CAAC;aACvB;QACL,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,uFAAgC,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9D,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;gBAChD,IAAI,KAAK,GAAG,KAAK,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBACpC,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE;wBACzD,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;wBACrB,KAAK,GAAG,IAAI,CAAC;qBAChB;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,KAAK,EAAE;oBACR,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;iBAChC;gBACD,IAAI,CAAC,YAAY,EAAE,CAAC;aACvB;QACL,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,WAAW;QACP,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC7B,GAAG,CAAC,WAAW,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,UAAU,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO;QAC7B,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACtB,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE;oBACnB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;wBACtB,IAAI,OAAO,EAAE;4BACT,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gCACvB,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;4BAC7B,CAAC,CAAC,CAAC;yBACN;wBACD,IAAI,CAAC,eAAe,EAAE,CAAC;wBACvB,UAAU,CAAC,GAAG,EAAE;4BACZ,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;4BAC/D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gCACxB,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAgB,CAAC;gCAC9C,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;6BAClD;wBACL,CAAC,EAAE,GAAG,CAAC,CAAC;qBACX;yBAAM;wBACH,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;qBAC/B;oBACD,IAAI,IAAI,CAAC,iBAAiB,EAAE;wBACxB,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC;qBACxC;oBACD,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;wBAC9C,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;oBACzB,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;oBAC9B,IAAI,IAAI,CAAC,iBAAiB,EAAE;wBACxB,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC;wBACzC,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC;qBACvC;iBACJ;qBAAM;oBACH,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC3C,MAAM,KAAK,GAAG,EAAE,CAAC;wBACjB,IAAI,OAAO,EAAE;4BACT,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;yBAC1B;wBACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;qBAC9C;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IACD,WAAW,CAAC,QAAQ,EAAE,IAAI;QACtB,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACtB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;oBAClD,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;wBAC1B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;qBAChC;oBACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACtC;qBAAM;oBACH,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC3C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;qBACzC;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,YAAY;QACR,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,EAAE;YACtC,IAAI,WAAW,CAAC;YAChB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3C,WAAW,GAAG,EAAE,CAAC;gBACjB,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;aACpD;YACD,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC7C,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;aAC3C;iBAAM;gBACH,MAAM,QAAQ,GAAG,IAAI,gFAAQ,EAAE,CAAC;gBAChC,IAAI,IAAI,CAAC,aAAa,EAAE;oBACpB,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;oBAC7B,KAAK,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;iBAC1E;qBAAM;oBACH,MAAM,IAAI,GAAG,EAAE,CAAC;oBAChB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBACnC,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;wBACpE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACxB,CAAC,CAAC,CAAC;oBACH,KAAK,GAAG,IAAI,CAAC;iBAChB;aACJ;YACD,IAAI,WAAW,EAAE;gBACb,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;aAC7C;YACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3C,IAAI,IAAI,CAAC,iBAAiB,EAAE;oBACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;iBAC9D;gBACD,IAAI,IAAI,CAAC,kBAAkB,EAAE;oBACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;iBAC5D;aACJ;YACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IAED,iBAAiB,CAAC,IAAY;QAC1B,OAAO,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,UAAU,CAAC,IAAI;QACX,gFAA4B,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YACvF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,aAAa,CAAC,QAAQ;QAClB,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,QAAQ,CAAC;QAC9C,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IACnD,CAAC;IAED,QAAQ,CAAC,IAAI;QACT,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,EAAE,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,IAAI;QACP,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;YAC/D,MAAM,YAAY,GAAG,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtF,IAAI,YAAY,EAAE;gBACd,MAAM,GAAG,GAAG,IAAI,uEAAmB,CAAC,iEAAiE,CAAC,CAAC;gBACvG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrC,+FAA2B,CAAC,GAAG,EAAE,IAAI,uEAAmB,CAAC,cAAc,CAAC,EACpE,8FAA4B,EAAE,uFAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBAC5D,IAAI,CAAC,KAAK,sFAAoB,EAAE;wBAC5B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;qBAClC;yBAAM,IAAI,CAAC,KAAK,qFAAmB,EAAE;wBAClC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;qBAC1B;gBACL,CAAC,CAAC,CAAC;aACV;iBAAM;gBACH,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;aAClC;SACJ;aAAM;YACH,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;SAC1B;IACL,CAAC;IAEO,mBAAmB,CAAC,IAAI;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClD,6HAA4C,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC5F,IAAI,CAAC,KAAK,wFAAsB,EAAE;gBAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC7B,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;gBACvB,4FAAqC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;aACjG;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,IAAI;QACP,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,EAAE,EAAE,IAAI;QACZ,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,OAAO,IAAI,IAAI,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACrB;IACL,CAAC;IAED,QAAQ,CAAC,IAAI;QACT,IAAI,mFAA4B,EAAE;YAC9B,IAAI,KAAK,GAAG;gBACR,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,IAAG,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,aAAY,CAAC,CAAC,oBAAmB;gBAC7L,OAAO,EAAE,IAAI,CAAC,aAAa;aAC9B;YACD,sFAA+B,CAAC,KAAK,CAAC,CAAC;YACvC,iFAAuB,CAAC,mBAAmB,EAAE,4BAA4B,CAAC,CAAC;SAC9E;aAAM;YACH,MAAM,MAAM,GAAG,uEAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC3E,IAAI,MAAM,EAAE;gBACR,MAAM,IAAI,GAAG,gEAAY,CAAC,uEAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACzF,MAAM,SAAS,GAAG,EAAE,CAAC;gBACrB,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBACxD,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACpE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3B,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,sFAA+B,CAAC,IAAI,CAAC,CAAC;gBACtC,yFAAkC,CAAC;oBAC/B,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBACpC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;oBACjC,QAAQ,EAAE,MAAM,CAAC,EAAE;iBACtB,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IACD,aAAa,CAAC,IAAI;QACd,IAAI,mFAA4B,EAAE;YAC9B,IAAI,KAAK,GAAG;gBACR,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,IAAI,CAAC,aAAa;aAC9B;YACD,sFAA+B,CAAC,KAAK,CAAC,CAAC;YACvC,iFAAuB,CAAC,mBAAmB,EAAE,4BAA4B,CAAC,CAAC;SAC9E;aAAM;YACH,MAAM,MAAM,GAAG,uEAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC3E,IAAI,MAAM,EAAE;gBACR,MAAM,IAAI,GAAG,gEAAY,CAAC,uEAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACzF,MAAM,SAAS,GAAG,EAAE,CAAC;gBACrB,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBACxD,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACpE,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;gBACxB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3B,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,sFAA+B,CAAC,IAAI,CAAC,CAAC;gBACtC,yFAAkC,CAAC;oBAC/B,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBACpC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;oBACjC,QAAQ,EAAE,MAAM,CAAC,EAAE;iBACtB,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IACD,SAAS,CAAC,IAAI;QACV,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE;YAC5B,IAAI,IAAI,GAAG,+FAAwC,CAAC;YACpD,MAAM,IAAI,GAAG,gEAAY,CAAC,uEAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3E,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YACxD,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;YACpC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,sFAA+B,CAAC,IAAI,CAAC,CAAC;YACtC,yFAAkC,CAAC;gBAC/B,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBACpC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAC7C,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE;aAClC,CAAC,CAAC;SACN;IACL,CAAC;IAED,aAAa,CAAC,EAAE;QACZ,6FAA0B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7C,EAAE,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,aAAa,CAAC,IAAI;QACd,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;YAC1B,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;YACnC,IAAI,CAAC,eAAe,EAAE,CAAC;SAC1B;IACL,CAAC;IAED,eAAe;QACX,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,iBAAiB,CAAC,QAAiB;QAC/B,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;YAC9C,CAAC,CAAC,UAAU,GAAG,QAAQ,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,cAAc,CAAC,EAAE,EAAE,IAAI;QACnB,IAAI,IAAI,CAAC,sBAAsB,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;YACjD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;gBACxC,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACpD,IAAI,KAAK,GAAG,CAAC,EAAE;oBACX,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACtB;qBAAM;oBACH,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBAC5B;gBACD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;aAChC;iBAAM;gBACH,IAAI,IAAI,CAAC,iBAAiB,EAAE;oBACxB,IAAI,IAAI,KAAK,IAAI,CAAC,iBAAiB,EAAE;wBACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;qBAC5B;yBAAM;wBACH,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;qBACvD;iBACJ;qBAAM;oBACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;iBAC5B;aACJ;SACJ;aAAM;YACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC5B;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,kBAAkB;IAClB,SAAS,CAAC,EAAE;QACR,MAAM,WAAW,GAAG;YAChB,OAAO,EAAE,EAAE;YACX,gBAAgB,EAAE,EAAE;YACpB,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,KAAK;SACjB,CAAC;QACF,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACvB,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,SAAS,EAAE;gBAC7B,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBACzB,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACxC;QACL,CAAC,CAAC,CAAC;QACH,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,QAAQ,CAAC,EAAE,EAAE,IAAI;QACb,IAAI,CAAC,SAAS,GAAG,wEAAc,CAAC;QAChC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1B,IAAI,EAAE,EAAE;YACJ,MAAM,WAAW,GAAG,EAAE,CAAC,QAAQ,CAAC;YAChC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC;YACnB,MAAM,WAAW,GAAG,WAAW,KAAK,IAAI,CAAC;YACzC,IAAI,WAAW,IAAI,WAAW,EAAE;gBAC5B,WAAW,CAAC,SAAS,GAAG,wEAAc,CAAC;aAC1C;YACD,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,EAAE,CAAC,aAAa,EAAE;gBAClB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE;oBAC9B,EAAE,CAAC,aAAa,CAAC,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC;iBAC/D;gBACD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC;gBACrD,IAAI,MAAM,CAAC;gBACX,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE;oBACpB,IAAI,GAAG,IAAI,IAAI,EAAE;wBACb,IAAI,CAAC,SAAS,GAAG,0EAAgB,CAAC;wBAClC,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;qBAC/B;yBAAM,IAAI,GAAG,IAAI,IAAI,EAAE;wBACpB,IAAI,CAAC,SAAS,GAAG,yEAAe,CAAC;wBACjC,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;qBAC/B;yBAAM;wBACH,IAAI,CAAC,SAAS,GAAG,yEAAe,CAAC;wBACjC,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC;qBACxB;iBACJ;qBAAM;oBACH,IAAI,CAAC,SAAS,GAAG,yEAAe,CAAC;oBACjC,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC;iBACxB;gBACD,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC1C,IAAI,CAAC,QAAQ,EAAE;oBACX,QAAQ,GAAG;wBACP,OAAO,EAAE,IAAI;wBACb,YAAY,EAAE,IAAI;qBACrB,CAAC;oBACF,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC;oBACtC,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE;wBAC7C,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;wBACzB,QAAQ,CAAC,YAAY,GAAG,IAAI,uEAAmB,CAAC,iCAAiC,CAAC,CAAC;qBACtF;yBAAM;wBACH,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,WAAW,KAAK,MAAM;+BAC3F,MAAM,CAAC,aAAa,CAAC,WAAW,KAAK,MAAM,IAAI,MAAM,CAAC,aAAa,CAAC,WAAW,KAAK,eAAe,IAAI,MAAM,CAAC,aAAa,CAAC,WAAW,KAAK,iBAAiB;+BAC7J,MAAM,CAAC,aAAa,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,WAAW,KAAK,QAAQ,CAAC,EAAE;4BACpG,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;4BACzB,QAAQ,CAAC,YAAY,GAAG,IAAI,uEAAmB,CAAC,iCAAiC,CAAC,CAAC;yBACtF;6BAAM;4BACH,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;4BAC5C,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;4BAC3B,OAAO,MAAM,EAAE;gCACX,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gCACxC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;6BAC1B;4BACD,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE;gCACpF,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;gCACzB,QAAQ,CAAC,YAAY,GAAG,IAAI,uEAAmB,CAAC,iCAAiC,CAAC,CAAC;6BACtF;yBACJ;qBACJ;iBACJ;gBACD,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;aAC9B;YACD,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;IACL,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YACzC,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,KAAK,wEAAc,EAAE;gBACnD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC/D,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,KAAK,KAAK,EAAE;oBAC9C,IAAI,WAAW,CAAC,YAAY,KAAK,IAAI,EAAE;wBACnC,+FAA2B,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,uEAAmB,CAAC,QAAQ,CAAC,EACnF,sFAAoB,EAAE,sFAAsB,CAAC,CAAC;qBACrD;iBACJ;qBAAM;oBACH,IAAI,UAAU,CAAC;oBACf,IAAI,SAAS,CAAC;oBACd,IAAI,QAAQ,CAAC,SAAS,KAAK,yEAAe,EAAE;wBACxC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC;wBAC3B,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;wBAC5B,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;4BACpB,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;yBAC1B;wBACD,UAAU,GAAG,QAAQ,CAAC;wBACtB,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;qBACxC;yBAAM,IAAI,QAAQ,CAAC,MAAM,EAAE;wBACxB,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;wBAC7B,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;wBACvD,IAAI,QAAQ,CAAC,SAAS,KAAK,yEAAe,EAAE;4BACxC,SAAS,EAAE,CAAC;yBACf;qBACJ;oBACD,IAAI,UAAU,EAAE;wBACZ,IAAI,aAAa,GAAG,SAAS,CAAC;wBAC9B,MAAM,YAAY,GAAG,EAAE,CAAC;wBACxB,MAAM,aAAa,GAAG,EAAE,CAAC;wBACzB,MAAM,UAAU,GAAG,EAAE,CAAC;wBACtB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE;4BACrD,IAAI,QAAQ,CAAC,MAAM,EAAE;gCACjB,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gCAC7D,IAAI,SAAS,IAAI,CAAC,EAAE;oCAChB,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE;wCAChC,YAAY,CAAC,IAAI,CAAC;4CACd,IAAI,EAAE,QAAQ;4CACd,SAAS,EAAE,EAAE;yCAChB,CAAC,CAAC;wCACH,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wCAC9B,IAAI,SAAS,GAAG,SAAS,EAAE;4CACvB,aAAa,EAAE,CAAC;yCACnB;qCACJ;yCAAM;wCACH,UAAU,CAAC,IAAI,CAAC;4CACZ,IAAI,EAAE,QAAQ;4CACd,SAAS,EAAE,EAAE;yCAChB,CAAC,CAAC;qCACN;iCACJ;6BACJ;wBACL,CAAC,CAAC,CAAC;wBACH,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;4BACvB,sFAAoC,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gCAC1F,IAAI,KAAK,CAAC;gCACV,IAAI,UAAU,EAAE;oCACZ,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;iCAC5B;gCACD,MAAM,QAAQ,GAAG;oCACb,IAAI,EAAE,UAAU;oCAChB,KAAK,EAAE,CAAC;oCACR,GAAG,EAAE,EAAE;oCACP,QAAQ,EAAE,EAAE;oCACZ,eAAe,EAAE,KAAK;oCACtB,YAAY,EAAE,EAAE;iCACnB,CAAC;gCACF,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE;oCAElC,MAAM,SAAS,GAAG,IAAI,+FAA8B,EAAE,CAAC;oCACvD,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC;oCAChC,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;oCAEpD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;wCACzB,8BAA8B;wCAC9B,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wCACpC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4CACtB,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wCACrC,CAAC,CAAC,CAAC;wCAEH,iCAAiC;wCACjC,MAAM,cAAc,GAAG,IAAI,0FAAyB,EAAE,CAAC;wCACvD,cAAc,CAAC,QAAQ,GAAG,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;wCACtD,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4CACrB,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC;gDACzB,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;gDAClC,SAAS,EAAE,CAAC,CAAC,SAAS;6CACzB,CAAC,CAAC;4CACH,MAAM,KAAK,GAAG,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;4CAC9E,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wCACvD,CAAC,CAAC,CAAC;wCACH,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;qCAC3C;oCACD,MAAM,UAAU,GAAG,EAAE,CAAC;oCACtB,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;wCAClC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wCACrE,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;4CACZ,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;4CACxC,UAAU,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;4CACnD,8BAA8B;4CAC9B,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;4CACpC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;4CACnC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4CAE7B,iCAAiC;4CACjC,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;4CACvF,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;4CACpD,IAAI,eAAe,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;4CAC9F,IAAI,CAAC,eAAe,EAAE;gDAClB,eAAe,GAAG,IAAI,0FAAyB,EAAE,CAAC;gDAClD,eAAe,CAAC,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;gDACtD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;6CAC5C;4CACD,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC;gDAC1B,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;gDAC1C,SAAS,EAAE,SAAS,CAAC,SAAS;6CACjC,CAAC,CAAC;yCACN;oCACL,CAAC,CAAC,CAAC;oCAEH,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;oCACvD,MAAM,SAAS,GAAG,EAAE,CAAC;oCACrB,MAAM,kBAAkB,GAAG,EAAE,CAAC;oCAC9B,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wCACrB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wCACvB,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oCAClD,CAAC,CAAC,CAAC;oCACH,8BAA8B;oCAC9B,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;oCAC3D,iCAAiC;oCACjC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,GAAG,kBAAkB,CAAC,CAAC;oCAElF,IAAI,CAAC,eAAe,EAAE,CAAC;oCAEvB,8FAAuC,CAAC,SAAS,CAAC,CAAC;oCACnD,IAAI,UAAU,CAAC,aAAa,CAAC,aAAa,EAAE;wCACxC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;qCACjD;oCACD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wCAChC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;wCACvC,IAAI,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE;4CACxB,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;yCAC3B;oCACL,CAAC,CAAC,CAAC;oCACH,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gCAC/B,CAAC,CAAC,CAAC;4BACP,CAAC,CAAC,CAAC;yBACN;6BAAM;4BACH,MAAM,SAAS,GAAG,IAAI,+FAA8B,EAAE,CAAC;4BACvD,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC;4BAChC,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;4BAEpD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gCACzB,8BAA8B;gCAC9B,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gCACpC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCACtB,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gCACrC,CAAC,CAAC,CAAC;gCAEH,iCAAiC;gCACjC,MAAM,cAAc,GAAG,IAAI,0FAAyB,EAAE,CAAC;gCACvD,cAAc,CAAC,QAAQ,GAAG,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gCACtD,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCACrB,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC;wCACzB,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;wCAClC,SAAS,EAAE,CAAC,CAAC,SAAS;qCACzB,CAAC,CAAC;oCACH,MAAM,KAAK,GAAG,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oCAC9E,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gCACvD,CAAC,CAAC,CAAC;gCACH,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;6BAC3C;4BAED,MAAM,SAAS,GAAG,EAAE,CAAC;4BACrB,MAAM,kBAAkB,GAAG,EAAE,CAAC;4BAC9B,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACrB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gCACvB,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;4BAClD,CAAC,CAAC,CAAC;4BACH,8BAA8B;4BAC9B,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;4BAC3D,iCAAiC;4BACjC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,GAAG,kBAAkB,CAAC,CAAC;4BAElF,IAAI,CAAC,eAAe,EAAE,CAAC;4BAEvB,8FAAuC,CAAC,SAAS,CAAC,CAAC;4BACnD,IAAI,UAAU,CAAC,aAAa,CAAC,aAAa,EAAE;gCACxC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;6BACjD;4BACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;yBAC9B;qBACJ;iBACJ;gBACD,QAAQ,CAAC,SAAS,GAAG,wEAAc,CAAC;aACvC;YACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACzB;IACL,CAAC;IAED,iBAAiB,CAAC,QAAQ,EAAE,YAAY;QACpC,IAAI,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE;YACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;YACjD,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAC/E,IAAI,SAAS,IAAI,IAAI,EAAE;gBACnB,sFAAoC,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;oBACvG,IAAI,aAAa,IAAI,aAAa,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,IAAI,QAAQ,CAAC,eAAe,EAAE;wBACzF,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;wBACpE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBAC/B;yBAAM;wBACH,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;wBACrE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBACpC;oBACD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBACnD,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,SAAS,EAAE;oBACX,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC/B;qBAAM;oBACH,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACpC;gBACD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;aAClD;SACJ;aAAM;YACH,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,MAAM,KAAK,GAAG,EAAE,CAAC;gBACjB,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACrB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC/B,CAAC,CAAC,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,uEAAmB,CAAC,2BAA2B,CAAC,CAAC;gBACjE,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxC,+FAA2B,CAAC,GAAG,EAAE,IAAI,uEAAmB,CAAC,2BAA2B,CAAC,EACjF,yFAAuB,EAAE,uFAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBACvD,IAAI,CAAC,KAAK,sFAAoB,EAAE;wBAC5B,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;wBACxC,MAAM,IAAI,GAAG,IAAI,yFAAwB,EAAE,CAAC;wBAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;4BACjB,YAAY,EAAE,YAAY;4BAC1B,KAAK,EAAE,IAAI;yBACd,EAAE;4BACC,YAAY,EAAE,cAAc;4BAC5B,KAAK,EAAE,IAAI;yBACd,EAAE;4BACC,YAAY,EAAE,aAAa;4BAC3B,KAAK,EAAE,IAAI;yBACd,CAAC,CAAC;wBACH,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACvB,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;wBACzE,CAAC,CAAC,CAAC;wBACH,iGAA0C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;wBACnD,YAAY,EAAE,CAAC;qBAClB;yBAAM;wBACH,YAAY,EAAE,CAAC;qBAClB;gBACL,CAAC,CAAC,CAAC;aACV;iBAAM;gBACH,YAAY,EAAE,CAAC;aAClB;SACJ;IACL,CAAC;;;;;;;2BAloCA,iDAAK;iCAqBL,kDAAM;4BAIN,iDAAK;kCAwBL,kDAAM;wBAKN,iDAAK;8BASL,kDAAM;+BAKN,iDAAK;qCASL,kDAAM;6BAKN,iDAAK;mCASL,kDAAM;kCAKN,iDAAK;wCASL,kDAAM;6BAKN,iDAAK;mCASL,kDAAM;2BAIN,iDAAK;iCAcL,kDAAM;4BAKN,iDAAK;kCAWL,kDAAM;uBAKN,iDAAK;6BASL,kDAAM;6BAKN,iDAAK;mCASL,kDAAM;uBAKN,iDAAK;6BASL,kDAAM;qBAKN,iDAAK;2BAWL,kDAAM;gCAGN,iDAAK;yBAUL,iDAAK;+BASL,kDAAM;sBAKN,iDAAK;4BASL,kDAAM;0BASN,kDAAM;4BAEN,kDAAM;wBACN,kDAAM;+BACN,kDAAM;;AAxQE,UAAU;IANtB,yDAAS,CAAC;QACP,QAAQ,EAAE,aAAa;QACvB,mEAAiC;QAEjC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,UAAU;AAAA;AA2oChB,MAAM,cAAe,SAAQ,qFAAa;IAwD7C,YAAY,EAAU,EAAE,MAAsB;QAC1C,KAAK,CAAC,EAAE,CAAC,CAAC;QApDd,YAAO,GAAG,IAAI,CAAC;QACf,YAAO,GAAG,IAAI,CAAC;QACf,aAAQ,GAAG,KAAK,CAAC;QACjB,cAAS,GAAG,IAAI,CAAC;QACjB,kBAAa,GAAG,CAAC,CAAC;QAElB,eAAU,GAAG,CAAC,CAAC;QAEf,eAAU,GAAG,KAAK,CAAC;QAIX,sBAAiB,GAAc,wEAAc,CAAC;QAmB9C,eAAU,GAAG,CAAC,CAAC;QAsBnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAzCD,IAAI,SAAS,KAAgB,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC7D,IAAI,SAAS,CAAC,GAAc;QACxB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,QAAQ,GAAG,EAAE;YACT,KAAK,yEAAe;gBAChB,KAAK,CAAC,eAAe,CAAC,GAAG,gCAAgC,CAAC;gBAC1D,MAAM;YACV,KAAK,0EAAgB;gBACjB,KAAK,CAAC,YAAY,CAAC,GAAG,gCAAgC,CAAC;gBACvD,MAAM;YACV,KAAK,yEAAe;gBAChB,KAAK,CAAC,kBAAkB,CAAC,GAAG,sBAAsB,CAAC;gBACnD,MAAM;SACb;QACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC3B,CAAC;IAGD,IAAI,KAAK,KAAa,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/C,IAAI,KAAK,CAAC,GAAW;QACjB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC;IACnD,CAAC;IAGD,IAAI,MAAM,KAAqB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACzD,IAAI,MAAM,CAAC,GAAmB;QAC1B,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;SAC9B;aAAM;YACH,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;SAClB;IACL,CAAC;IAED,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;;AAa3E,MAAM,cAAc;;QAKvB,aAAQ,GAAG,KAAK,CAAC;QACjB,cAAS,GAAa,EAAE,CAAC;IA6G7B,CAAC;IA3GG,MAAM,CAAC,gBAAgB,CAAC,IAAmB,EAAE,YAAoB,EAAE,EAAY,EAAE,MAAsB;QACnG,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrD,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QACjC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;QAClD,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAC7C,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACzB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC7C;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC1C,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACvC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;iBACzB;YACL,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1C;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,WAAW,CAAC,IAAmB,EAAE,YAAoB,EAAE,EAAY,EAAE,MAAsB;QAC/F,MAAM,MAAM,GAAG,cAAc,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAG,kGAAuC,EAAE,CAAC;QACvD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;gBACjC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;oBAC1B,IAAI,YAAY,EAAE;wBACd,YAAY,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;qBAC3C;yBAAM;wBACH,YAAY,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;qBAClC;oBACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;wBAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,WAAW,CAAC,EAAE;4BACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;4BACnE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;yBAC5B;6BAAM,IAAI,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,WAAW,CAAC,EAAE;4BACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;4BACnE,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gCACnD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;6BAC5B;yBACJ;oBACL,CAAC,CAAC,CAAC;iBACN;aACJ;iBAAM,IAAI,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE;gBACtC,IAAI,IAAI,KAAK,QAAQ,EAAE;oBACnB,IAAI,YAAY,EAAE;wBACd,YAAY,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;qBAC3C;yBAAM;wBACH,YAAY,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;qBAClC;oBACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;wBAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,WAAW,CAAC,EAAE;4BACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;4BACnE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;yBAC5B;6BAAM,IAAI,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,WAAW,CAAC,EAAE;4BACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;4BACnE,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gCACnD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;6BAC5B;yBACJ;oBACL,CAAC,CAAC,CAAC;iBACN;aACJ;iBAAM;gBACH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,WAAW,CAAC,EAAE;wBACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;wBACnE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBAC5B;yBAAM,IAAI,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,WAAW,CAAC,EAAE;wBACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;wBACnE,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;4BACnD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;yBAC5B;qBACJ;gBACL,CAAC,CAAC,CAAC;aACN;YACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtB,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC1B,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;aAC/B;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,QAAQ;QACJ,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,IAAI,gFAAQ,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACjE,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrB;iBAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACtB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;aACjC;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAhHc,4BAAa,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7uCjE;AAiBvD;AACc;AACoC;AACX;AACJ;AACa;AAI3B;AACmB;AACA;AACU;AACL;AAIf;AACY;IAQpD,UAAU,SAAV,UAAU;IA0ItB,YAAY;IACZ,YAAY;IAEZ,mBAAmB;IACnB,YACS,eAAyC,EAC1C,KAAwB,EACxB,SAAmB,EAClB,QAAmB;QAHnB,oBAAe,GAAf,eAAe,CAA0B;QAC1C,UAAK,GAAL,KAAK,CAAmB;QACxB,cAAS,GAAT,SAAS,CAAU;QAClB,aAAQ,GAAR,QAAQ,CAAW;QA/I5B,kBAAa,GAAG,EAAE,CAAC;QAGnB,cAAS,GAAG,KAAK,CAAC;QAClB,gBAAW,GAAG,KAAK,CAAC;QAEpB,wBAAwB;QACxB,wBAAmB,GAAG,KAAK,CAAC;QAE5B,iBAAY,GAAG,KAAK,CAAC;QAWX,yBAAoB,GAAG,IAAI,wDAAY,EAAO;QAsB9C,oBAAe,GAAG,IAAI,wDAAY,EAAO;QACnD,YAAY;QACZ,iBAAY,GAAG,CAAC,CAAC;QAeP,iBAAY,GAAG,IAAI,wDAAY,EAAO;QAiBtC,mBAAc,GAAG,IAAI,wDAAY,EAAO;QAcxC,uBAAkB,GAAG,IAAI,wDAAY,EAAO;QAc5C,iBAAY,GAAG,IAAI,wDAAY,EAAO;QAiBtC,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QACpD,YAAY;QACZ,uBAAuB;QACvB,uBAAkB,GAAG,KAAK,CAAC;QAUjB,iBAAY,GAAG,IAAI,wDAAY,EAAO;QAWhD,OAAE,GAAG,oDAAS,EAAE,CAAC;QACjB,kBAAa,GAAG,KAAK,CAAC;QAsRtB,gBAAW,GAAG,OAAO,CAAC;QA6DtB,oBAAe,GAAG,KAAK,CAAC;QAYhB,eAAU,GAAG,KAAK,CAAC;QAuO3B,eAAU,GAAG,KAAK,CAAC;QAenB,mBAAc,GAAG,KAAK,CAAC;QAgBvB,mBAAc,GAAG,KAAK,CAAC;QAwFvB,gBAAW,GAAG,IAAI,CAAC;QAEnB,iBAAY,GAAG,IAAI,CAAC;QACpB,kBAAa,GAAG,IAAI,CAAC;QA0DrB,gBAAW,GAAG,KAAK,CAAC;QAKpB,sBAAsB;QACtB,wBAAmB,GAAG,KAAK,CAAC;IAlwBzB,CAAC;QApIA,cAAc;QACjB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACjC,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QACrB,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;QAC/B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC1D,CAAC;QASG,SAAS;QACZ,OAAO,IAAI,CAAC,cAAc,CAAC;IAC5B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QAChB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACnD,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;SACtE;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC;QASG,MAAM;QACT,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACb,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;QAQG,QAAQ;QACX,IAAI,IAAI,CAAC,cAAc,EAAE;YACxB,OAAO,IAAI,CAAC;SACZ;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACf,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;QAQG,YAAY;QACf,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAC/B,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QACnB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtD,CAAC;QAQG,MAAM;QACT,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACb,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;QAQG,UAAU;QACb,OAAO,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACjB,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;YACpD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;SAC9D;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAClD,CAAC;IAMD,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IAChC,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACpB,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IAgBD,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK;QACjB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IACD,QAAQ;QACP,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;gBAClC,sGAA+C,CAAC,CAAC,IAAI,EAAE,EAAE;oBACxD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC3B,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,2FAAoC,CACxE,CAAC,IAAI,EAAE,EAAE;gBACR,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,sEAAa,EAAE;oBAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;oBACvC,IAAI,CAAC,YAAY,GAAG,IAAI,EAAE,KAAK,IAAI,MAAM,CAAC;iBAC1C;qBAAM;oBACN,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;iBACtB;YACF,CAAC,CACD,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;gBAClC,4FAAqC,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC/C,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC9B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;qBACnD;gBACF,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,uFAAgC,CAChE,CAAC,IAAI,EAAE,EAAE;gBACR,IAAI,IAAI,IAAI,sEAAa,EAAE;oBAC1B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;iBACnB;YACF,CAAC,CACD,CAAC;YACF,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;gBACpC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC;oBACrC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,EAAE;wBAC9C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;wBACzB,IAAI,CAAC,aAAa,EAAE,CAAC;oBACtB,CAAC,CAAC,CAAC;aACJ;YACD,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;gBAChC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;oBAClC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC5C,IAAI,CAAC,IAAI,oBAAoB,EAAE;4BAC9B,IAAI,CAAC,iBAAiB,EAAE,CAAC;yBACzB;oBACF,CAAC,CAAC,CAAC;aACJ;YACD,IACC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;gBAChC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,YAAY,EAChD;gBACD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;oBAChC,yGAAgD,CAAC,CAAC,WAAW,EAAE,EAAE;wBAChE,IAAI,WAAW,EAAE;4BAChB,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;gCACnC,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;gCAC1D,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;oCACjD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iCACtC;gCACD,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;gCACxD,IAAI,IAAI,CAAC,QAAQ,EAAE;oCAClB,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC;iCAChC;6BACD;iCAAM;gCACN,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gCACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;6BACtB;yBACD;6BAAM;4BACN,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;4BACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;yBACtB;wBACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;oBAC5B,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACN,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;oBAChC,4GAAmD,CAAC,CAAC,WAAW,EAAE,EAAE;wBACnE,IAAI,WAAW,EAAE;4BAChB,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;gCACnC,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;gCAC1D,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;oCACjD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iCACtC;gCACD,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;gCACxD,IAAI,IAAI,CAAC,QAAQ,EAAE;oCAClB,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC;iCAChC;6BACD;iCAAM;gCACN,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gCACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;6BACtB;yBACD;6BAAM;4BACN,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;4BACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;yBACtB;wBACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;oBAC5B,CAAC,CAAC,CAAC;aACJ;SACD;IACF,CAAC;IAED,eAAe;QACd,uBAAuB;QACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1B,CAAC;IAED,WAAW;QACV,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC/C,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,qFAA4B,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;SAC3D;IACF,CAAC;IAED,cAAc,CAAC,UAAU;QACxB,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;QACrC,cAAc,CAAC,GAAG,CAAC,mFAA4B,EAAE,UAAU,CAAC,CAAC;QAC7D,OAAO,IAAI,gEAAc,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAC3D,CAAC;IAED,aAAa;QACZ,IACC,CAAC,IAAI,CAAC,WAAW;YACjB,IAAI,CAAC,SAAS;YACd,IAAI,CAAC,SAAS,CAAC,WAAW;YAC1B,0EAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;YACpC,IAAI,CAAC,WAAW,EACf;YACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,uBAAuB;YACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBACpC,qBAAqB;gBACrB,IAAI,CAAC,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;gBAC9D,IAAI,CAAC,cAAc,GAAG,IAAI,iEAAe,CACxC,0EAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO,EAC5C,IAAI,EACJ,IAAI,CAAC,cAAc,CAAC;oBACnB,MAAM,EAAE,IAAI,CAAC,WAAW;oBACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE;oBACjC,aAAa,EAAE,IAAI,CAAC,SAAS;oBAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,cAAc,EAAE,IAAI,CAAC,cAAc;iBACnC,CAAC,CACF,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;SACH;IACF,CAAC;IACD,iBAAiB,CAAC,KAAK;QACtB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,kDAAkD;QAClD,sDAAsD;QACtD,gEAAgE;QAChE,4DAA4D;QAC5D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,SAAS,EAAE,CAAC;QACvD,kDAAkD;QAClD,kEAAkE;QAClE,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC;YACpC,8FAAuC,CAAC,CAAC,IAAI,EAAE,EAAE;gBAChD,IAAI,IAAI,CAAC,mBAAmB,EAAE;oBAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAC7C,CAAC,KAAK,EAAE,EAAE,CACT,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY;wBAC/B,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CACtC,CAAC;oBACF,IAAI,GAAG,EAAE;wBACR,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;qBAC9D;iBACD;gBACD,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;gBACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;QACJ,0FAA0F;QAC1F,6BAA6B;QAC7B,iCAAiC;QACjC,KAAK;QACL,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC;YACzC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;gBACtD,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;gBACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YAC7D,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YACxD,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IACD,YAAY;IACZ,iBAAiB,CAAC,GAAG;QACpB,IAAI,IAAI,CAAC,eAAe,KAAK,GAAG,EAAE;YACjC,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC7B,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;oBAC/D,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;oBAC3B,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;iBAC3B;qBAAM,IAAI,IAAI,CAAC,eAAe,EAAE;oBAChC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC7C,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;4BAC1C,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE;gCAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,EAAE,EAAE;oCACxD,IAAI,IAAI,CAAC,MAAM,EAAE;wCAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wCACjD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qCACvD;yCAAM;wCACN,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;wCAC/C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;qCACrD;iCACD;qCAAM;oCACN,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;iCACtC;6BACD;4BACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BACvD,OAAO,IAAI,CAAC;yBACZ;wBACD,OAAO,KAAK,CAAC;oBACd,CAAC,CAAC,CAAC;iBACH;aACD;SACD;IACF,CAAC;IAED,mBAAmB;QAClB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;gBAC/D,mFAAiC,CAChC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,CACd,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;oBACtB,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC;oBAClC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACf,CAAC,CAAC,CAAC;aACH;iBAAM;gBACN,OAAO,CAAC,IAAI,CAAC,CAAC;aACd;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,cAAc;QACb,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,IAAI,CAAC,eAAe,EAAE;YACzB,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;YAC9B,IACC,IAAI,CAAC,mBAAmB;gBACxB,IAAI,CAAC,mBAAmB,CAAC,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,EACzD;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CACjD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAC/C,CAAC;gBACF,IAAI,KAAK,EAAE;oBACV,IACC,KAAK,CAAC,OAAO,IAAI,IAAI;wBACrB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,EACvC;wBACD,IAAI,KAAK,CAAC,MAAM,EAAE;4BACjB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;yBACnD;6BAAM;4BACN,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;yBACjD;qBACD;oBACD,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC1C;aACD;SACD;QACD,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;QAC9B,OAAO,MAAM,CAAC;IACf,CAAC;IAED,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IACD,IAAI,UAAU,CAAC,KAAK;QACnB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IACD,eAAe;IACf,OAAO;QACN,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;YAClC,IAAI,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC7D,IAAI,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACnE,IAAI,MAAM,IAAI,SAAS,EAAE;gBACxB,IAAI,UAAU,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBAChD,IAAI,aAAa,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC;gBACtD,IACC,aAAa,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC;oBAC/B,aAAa,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,EACxC;oBACD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;iBACrB;qBAAM,IAAI,aAAa,CAAC,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC,CAAC,EAAE;oBAChD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;iBAC1B;qBAAM;oBACN,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;iBAC1B;aACD;SACD;IACF,CAAC;IAEO,OAAO,CAAC,KAAiB,EAAE,OAAoB;QACtD,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAC7C,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC;QACzC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAE1C,IAAI,CAAC,IAAI,GAAG,GAAG,MAAM,EAAE;YACtB,OAAO,KAAK,CAAC;SACb;QAED,IAAI,CAAC,IAAI,MAAM,GAAG,MAAM,EAAE;YACzB,OAAO,QAAQ,CAAC;SAChB;QAED,IAAI,CAAC,IAAI,IAAI,GAAG,MAAM,EAAE;YACvB,OAAO,MAAM,CAAC;SACd;QAED,IAAI,CAAC,IAAI,KAAK,GAAG,MAAM,EAAE;YACxB,OAAO,OAAO,CAAC;SACf;IACF,CAAC;IACO,UAAU,CACjB,IAAyC,EACzC,KAAiB;QAEjB,+CAA+C;QAC/C,wCAAwC;QACxC,IAAI;QACJ,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,aAAa;QACZ,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;YAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;SAC5B;IACF,CAAC;IACD,aAAa;QACZ,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;YAC7B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;SAC7B;IACF,CAAC;IASD,WAAW,CAAC,KAAiB;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAGD,SAAS,CAAC,KAAiB;QAC1B,IAAI,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACxB;IACF,CAAC;IAED,YAAY,CAAC,KAAiB;QAC7B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,WAAW,CAAC,KAAiB;QAC5B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACO,iBAAiB;QACxB,OAAO,CACN,IAAI,CAAC,SAAS;YACd,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC5B,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,sEAAa;YACxC,CAAC,IAAI,CAAC,aAAa,CACnB,CAAC;IACH,CAAC;IAEO,oBAAoB;QAC3B,MAAM,mBAAmB,GAAG;YAC3B,MAAM;YACN,eAAe;YACf,iBAAiB;YACjB,MAAM;YACN,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,gBAAgB;SAChB,CAAC;QACF,OAAO,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACjE,CAAC;IAED,WAAW,CAAC,KAAiB;QAC5B,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;YAC7B,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;YAC5B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;YAE5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACtE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;SACzE;IACF,CAAC;IAEO,eAAe,CACtB,SAAqB,EACrB,QAA4B;QAE5B,IAAI,SAAS,EAAE,IAAI,KAAK,SAAS,EAAE;YAClC,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACjD,OAAO,WAAW,CAAC;SACnB;QAED,QAAQ,SAAS,CAAC,IAAI,EAAE;YACvB,KAAK,uEAAc;gBAClB,OAAO,SAAS,CAAC,KAAK,CAAC;YAExB,KAAK,yEAAgB;gBACpB,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACjD,MAAM,cAAc,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,WAAW,CAAC;gBACrE,OAAO,cAAc,CAAC;YAEvB,KAAK,oEAAW;gBACf,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAC1C,WAAW,EACX,IAAI,CAAC,gBAAgB,CAAC,aAAa,CACnC,CAAC;gBACF,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEtE,KAAK,oEAAW;gBACf,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAC7B,QAAQ,CAAC,eAAe,CAAC,WAAW,IAAI,CAAC,EACzC,MAAM,CAAC,UAAU,IAAI,CAAC,CACtB,CAAC;gBACF,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,aAAa,CAAC;YAExD,KAAK,oEAAW;gBACf,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAC9B,QAAQ,CAAC,eAAe,CAAC,YAAY,IAAI,CAAC,EAC1C,MAAM,CAAC,WAAW,IAAI,CAAC,CACvB,CAAC;gBACF,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,cAAc,CAAC;YAEzD;gBACC,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,WAAW,CAAC;SAC1C;IACF,CAAC;IACO,aAAa,CAAC,QAA4B;QACjD,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,aAAa,CAAC;QACxE,IAAI,aAAa,IAAI,QAAQ,KAAK,OAAO;YAAE,OAAO,aAAa,CAAC,WAAW,CAAC;QAC5E,OAAO,aAAa,CAAC,YAAY,CAAC;IACnC,CAAC;IAEO,uBAAuB,CAAC,KAAiB;QAChD,IAAI,IAAI,CAAC,UAAU,EAAE;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YACjE,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YAEnE,MAAM,WAAW,GAChB,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC;YAC/D,MAAM,YAAY,GACjB,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,aAAa,CAAC,YAAY,CAAC;YAEhE,IAAI,CAAC,eAAe,CACnB,OAAO,EACP,QAAQ,EACR,WAAW,EACX,IAAI,CAAC,SAAS,CAAC,KAAK,CACpB,CAAC;YACF,IAAI,CAAC,eAAe,CACnB,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,IAAI,CAAC,SAAS,CAAC,MAAM,CACrB,CAAC;SACF;IACF,CAAC;IAEO,eAAe,CACtB,QAA4B,EAC5B,QAAgB,EAChB,UAAkB,EAClB,gBAA4B;QAE5B,IAAI,gBAAgB,EAAE,IAAI,KAAK,SAAS,EAAE;YACzC,gBAAgB,GAAG,IAAI,uEAAU,EAAE,CAAC;YACpC,gBAAgB,CAAC,IAAI,GAAG,uEAAc,CAAC;YACvC,gBAAgB,CAAC,KAAK,GAAG,QAAQ,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CACrB,IAAI,CAAC,gBAAgB,CAAC,aAAa,EACnC,QAAQ,EACR,GAAG,QAAQ,IAAI,CACf,CAAC;YACF,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,gBAAgB,CAAC;YAC5C,OAAO;SACP;QAED,MAAM,aAAa,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEhE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CACrB,IAAI,CAAC,gBAAgB,CAAC,aAAa,EACnC,aAAa,EACb,GAAG,QAAQ,IAAI,CACf,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAC1C,QAAQ,EACR,gBAAgB,CAAC,IAAI,EACrB,QAAQ,CACR,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC;QAC1C,qCAAqC;QACrC,gGAAgG;QAEhG,2FAA2F;QAC3F,8CAA8C;QAC9C,WAAW;QACX,wFAAwF;QACxF,6FAA6F;QAC7F,IAAI;IACL,CAAC;IAEO,eAAe,CACtB,EAAU,EACV,IAAc,EACd,QAA4B;QAE5B,MAAM,QAAQ,GAAG,IAAI,uEAAU,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QAErB,QAAQ,IAAI,EAAE;YACb,KAAK,uEAAc;gBAClB,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;gBACpB,OAAO,QAAQ,CAAC;YAEjB,KAAK,yEAAgB;gBACpB,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACjD,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC;gBAC1C,OAAO,QAAQ,CAAC;YAEjB,KAAK,oEAAW;gBACf,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAC1C,WAAW,EACX,IAAI,CAAC,gBAAgB,CAAC,aAAa,CACnC,CAAC;gBACF,QAAQ,CAAC,KAAK,GAAG,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1D,OAAO,QAAQ,CAAC;YAEjB,KAAK,oEAAW;gBACf,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAC7B,QAAQ,CAAC,eAAe,CAAC,WAAW,IAAI,CAAC,EACzC,MAAM,CAAC,UAAU,IAAI,CAAC,CACtB,CAAC;gBACF,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC;gBAC5C,OAAO,QAAQ,CAAC;YAEjB,KAAK,oEAAW;gBACf,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAC9B,QAAQ,CAAC,eAAe,CAAC,YAAY,IAAI,CAAC,EAC1C,MAAM,CAAC,WAAW,IAAI,CAAC,CACvB,CAAC;gBACF,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,cAAc,CAAC,GAAG,GAAG,CAAC;gBAC7C,OAAO,QAAQ,CAAC;YAEjB;gBACC,OAAO,QAAQ,CAAC;SACjB;IACF,CAAC;IAEO,qBAAqB,CAAC,QAAgB,EAAE,OAAY;QAC3D,OAAO,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACpE,CAAC;IAGD,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IACD,IAAI,KAAK,CAAC,KAAK;QACd,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,EAAE;YAC7B,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,sEAAa,EAAE;gBAC9C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;aAC3B;iBAAM;gBACN,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;aACxB;SACD;IACF,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,cAAc,CAAC;IAC5B,CAAC;IACD,IAAI,SAAS,CAAC,KAAK;QAClB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IACD,iBAAiB,CAAC,KAAK;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IACD,eAAe,CAAC,KAAK;QACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,KAAK;QACf,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;YAC7C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;SAClD;IACF,CAAC;IACD,UAAU,CAAC,KAAK;QACf,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;YAC7C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;SAClD;IACF,CAAC;IACD,SAAS,CAAC,KAAK;QACd,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,sEAAa,EAAE;YAC9C,MAAM,QAAQ,GAAG,gGAAyC,EAAE,CAAC;YAC7D,IAAI,QAAQ,EAAE;gBACb,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;aAClB;iBAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;aAClB;SACD;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC5B,CAAC;IACD,QAAQ,CAAC,KAAK;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IACD,YAAY;IACZ,SAAS,CAAC,KAAK;QACd,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,sEAAa,EAAE;YAC9C,MAAM,QAAQ,GAAG,gGAAyC,EAAE,CAAC;YAC7D,IAAI,QAAQ,EAAE;gBACb,sFAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAChD;iBAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBAChC,sFAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAChD;YACD,KAAK,CAAC,eAAe,EAAE,CAAC;SACxB;QACD,MAAM,IAAI,GAAG,IAAI,oEAAY,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;QACjD,mFAA4B,CAAC,IAAI,CAAC,CAAC;QACnC,IACC,IAAI,CAAC,SAAS;YACd,IAAI,CAAC,SAAS,CAAC,OAAO;YACtB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ;YAC/B,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAC/B;YACD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;SAClE;IACF,CAAC;IACD,0BAA0B;IAC1B,8EAA8E;IAC9E,GAAG;IACH,UAAU,CAAC,KAAiB;QAC3B,MAAM,IAAI,GAAG,IAAI,oEAAY,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,mFAA4B,CAAC,IAAI,CAAC,CAAC;QACnC,KAAK,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IACD,IAAI,CAAC,KAAiB;QACrB,sFAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEhD,MAAM,EAAE,GAAG,IAAI,oEAAY,EAAE,CAAC;QAC9B,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;QACjB,oFAA4B,CAAC,EAAE,CAAC,CAAC;QAEjC,KAAK,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IACD,SAAS,CAAC,KAAiB;QAC1B,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IACD,mBAAmB;QAClB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,WAAW,EAAE;YAC5C,IAAI,CAAC,cAAc,GAAG,+EAA6B,CAClD,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,cAAc,CACnB,CAAC;YACF,IAAI,CAAC,WAAW,GAAG,4EAA0B,CAC5C,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,CACd,CAAC;SACF;IACF,CAAC;IAKD,QAAQ,CAAC,KAAK;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,QAAQ,GAAG,0EAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACtD,IAAI,QAAQ,EAAE;gBACb,IAAI,QAAQ,CAAC,OAAO,EAAE;oBACrB,IAAI,CAAC,YAAY,GAAG,IAAI,iEAAe,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;iBACtE;gBACD,IAAI,QAAQ,CAAC,KAAK,EAAE;oBACnB,IAAI,gFAAc,EAAE;wBACnB,IAAI,KAAK,GAAG,qFAAmB,CAC9B,CAAC,GAAG,EAAE,EAAE,CACP,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CACjE,CAAC;wBACF,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;wBAC3B,IAAI,KAAK,EAAE;4BACV,IAAI,CAAC,YAAY,GAAG,IAAI,iEAAe,CACtC,KAAK,CAAC,OAAO,EACb,IAAI,EACJ,IAAI,CACJ,CAAC;yBACF;qBACD;iBACD;aACD;SACD;IACF,CAAC;IACD,qBAAqB,CAAC,KAAK,EAAE,IAAI;QAChC,KAAK,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IACnD,CAAC;IACD,UAAU;QACT,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC1B,CAAC;IACD,MAAM,CAAC,KAAK;QACX,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,0FAAmC,EAAE,CAAC;QACnD,IAAI,IAAI,EAAE;YACT,IAAI,IAAI,YAAY,4EAAkB,EAAE;gBACvC,OAAO;aACP;YACD,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,4FAAqC,EAAE,CAAC;YACvD,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE;gBAC/B,MAAM,OAAO,GAAG,2EAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACxD,IAAI,OAAO,EAAE;oBACZ,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;wBACrB,IAAI,CAAC,CAAC,WAAW,KAAK,UAAU,EAAE;4BACjC,YAAY,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;yBAC7B;oBACF,CAAC,CAAC,CAAC;iBACH;aACD;YACD,gFAA4B,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;SAC/D;IACF,CAAC;IAED,UAAU,CAAC,KAAK;QACf,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC;IACtC,CAAC;IAID,iBAAiB;QAChB,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE;gBACxD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;gBAChC,mFAA0B,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE;oBACpE,IAAI,IAAI,CAAC,YAAY,EAAE;wBACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;qBACvD;gBACF,CAAC,CAAC,CAAC;aACH;iBAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBACpC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;gBACjC,qFAA4B,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;aAC3D;SACD;IACF,CAAC;;;;;;;;;6BAv5BA,iDAAK;mCASL,kDAAM;wBAMN,iDAAK;8BAgBL,kDAAM;qBAMN,iDAAK;2BAWL,kDAAM;uBAKN,iDAAK;6BAYL,kDAAM;2BAKN,iDAAK;iCASL,kDAAM;qBAKN,iDAAK;2BASL,kDAAM;yBAKN,iDAAK;+BAYL,kDAAM;2BAaN,kDAAM;+BA0WN,qDAAS,SAAC,kBAAkB;0BAO5B,wDAAY,SAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;wBAMpC,wDAAY,SAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;2BAMlC,wDAAY,SAAC,YAAY,EAAE,CAAC,QAAQ,CAAC;0BAIrC,wDAAY,SAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;wBA4YpC,qDAAS,SAAC,WAAW;;AAt5BV,UAAU;IANtB,yDAAS,CAAC;QACV,QAAQ,EAAE,aAAa;QACvB,6EAA2C;QAE3C,eAAe,EAAE,0EAA8B;;KAC/C,CAAC;GACW,UAAU;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3C+B;AACqE;AAC3E;AAC8C;AACM;AACe;AAClB;AACV;AACrB;AACqB;AACzB;AACJ;AACF;AAC6B;AACtB;AACN;AAC8B;AACpB;AACJ;AACF;AAC4B;AACxB;AAC6B;AAC3C;AAC0B;IAQhE,cAAc,SAAd,cAAe,SAAQ,4DAAc;IA6G9C,YAAoB,WAAwB,EAAE,KAAwB,EAA+C,IAAI;QACrH,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,gBAAW,GAAX,WAAW,CAAa;QAAyE,SAAI,GAAJ,IAAI;QAxGzH,qBAAgB,GAAG,EAAE,CAAC;QAEtB,oBAAe,GAAG,KAAK,CAAC;QA0Cd,uBAAkB,GAAG,IAAI,wDAAY,EAAO;QA4B5C,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QAY1C,sBAAiB,GAAG,IAAI,wDAAY,EAAO;QAa3C,4BAAuB,GAAG,IAAI,wDAAY,EAAO;QAIjD,0BAAqB,GAAG,IAAI,wDAAY,EAAO;QAC/C,gBAAW,GAAG,IAAI,wDAAY,EAAO;QAC/C,UAAK,GAAG,KAAK,CAAC;QAGV,IAAI,CAAC,cAAc,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAzGD,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;IACzC,CAAC;QAKG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC;QAC7D,IAAI,QAAQ,GAAG,CAAC,EAAE;YACd,MAAM,IAAI,GAAG,IAAI,CAAC;YAClB,MAAM,IAAI,GAAG,IAAI,mBAAmB,CAAC,QAAQ,EAAE,GAAG,EAAE;gBAChD,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;YACjC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzC;aAAM;YACH,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;SAChC;QACD,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9D,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE;YACxC,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;gBACxE,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;oBACxE,MAAM,IAAI,GAAG,EAAE,CAAC;oBAChB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;wBACpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACxB,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;oBAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACpC;aACJ;iBAAM;gBACH,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aACtD;SACJ;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAClD,CAAC;QAMG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE;YACxC,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;gBACxE,MAAM,IAAI,GAAG,EAAE,CAAC;gBAChB,IAAI,GAAG,EAAE;oBACL,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;wBACjB,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC7B,CAAC,CAAC,CAAC;iBACN;gBACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;aACjC;iBAAM;gBACH,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;aAChC;YACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACrD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;QACD,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;QAMG,WAAW;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;QAOG,iBAAiB;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;IACrD,CAAC;IACD,IAAI,iBAAiB,CAAC,GAAG;QACrB,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAChD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;IACjF,CAAC;IAgBD,QAAQ;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;YACxF,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,qEAAmB,KAAK,KAAK,CAAC;QAC3C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,sFAAoC,CAAC,CAAC,GAAG,EAAE,EAAE;YACrE,IAAI,CAAC,KAAK,GAAG,GAAG,KAAK,KAAK,CAAC;YAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW;QACP,KAAK,CAAC,WAAW,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;SACrC;IACL,CAAC;IAED,YAAY;QACR,IAAI,SAAS,CAAC;QACd,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;YACnC,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,KAAK,QAAQ,EAAE;gBAC7D,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC;aACvD;iBAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,EAAE;gBAChD,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;aAC1E;SACJ;QACD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YAC/B,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;gBACpC,SAAS,IAAI,EAAE,CAAC;aACnB;YACD,SAAS,IAAI,CAAC,CAAC;YACf,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC;SAClD;aAAM;YACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACzB;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,kBAAkB;QACd,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE;YACnC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;YAC5D,OAAO;SACV;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC;QAC/D,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;SACrC;QACD,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;SACpC;QACD,uFAAoC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACrF,IAAI,MAAM,EAAE;gBACR,IAAI,MAAM,CAAC,aAAa,EAAE;oBACtB,IAAI,MAAM,CAAC,QAAQ,EAAE;wBACjB,IAAI,CAAC,cAAc,GAAG,IAAI,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,EACnF,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;qBAC/C;yBAAM;wBACH,IAAI,CAAC,cAAc,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;qBAClE;iBACJ;qBAAM;oBACH,IAAI,CAAC,cAAc,GAAG,IAAI,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;iBAC9G;aACJ;iBAAM;gBACH,IAAI,CAAC,cAAc,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;aACpE;YACD,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;oBAC9D,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,EAAE,CAAC;oBAChC,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE;wBAC5D,IAAI,CAAC,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;qBACxD;oBACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC/B,CAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW;QACP,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAED,MAAM;QACF,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACtD;IACL,CAAC;IAED,OAAO;QACH,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,WAAW,CAAC,IAAI;QACZ,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;YAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC5B;IACL,CAAC;IACD,YAAY,CAAC,GAAG;QACZ,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE;YACpB,MAAM,MAAM,GAAG,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;aAC1C;YACD,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACpB,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;gBACpB,IAAI,CAAC,CAAC,QAAQ,EAAE;oBACZ,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACpB;qBAAM;oBACH,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;oBACf,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBACjB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;4BACzB,KAAK,GAAG,CAAC,CAAC;4BACV,OAAO,IAAI,CAAC;yBACf;wBACD,OAAO,KAAK,CAAC;oBACjB,CAAC,CAAC,CAAC;oBACH,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;wBACZ,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;qBAC3B;iBACJ;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;SAC9B;IACL,CAAC;IAED,YAAY;QACR,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;SAClC;IACL,CAAC;IAED,cAAc;QACV,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,UAAU,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,kBAAkB;IACtB,CAAC;IAED,UAAU,CAAC,GAAG,EAAE,GAAG;QACf,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YACpD,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC;SAC9B;QACD,OAAO,GAAG,KAAK,GAAG,CAAC;IACvB,CAAC;;AAtQM,mBAAI,GAAQ,SAAU;AACtB,sBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,gGAAyB,CAAC,CAAC,CAAC;;;;4CA2GE,kDAAM,SAAC,mFAA4B;;;2BA9F3G,iDAAK;iCAkCL,kDAAM;yBAGN,iDAAK;+BAyBL,kDAAM;0BAGN,iDAAK;gCASL,kDAAM;gCAIN,iDAAK;sCASL,kDAAM;oCAIN,kDAAM;0BACN,kDAAM;;AA3GE,cAAc;IAN1B,yDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,uEAAqC;QAErC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,cAAc;AAAA;AAkRpB,MAAe,kBAAkB;IAOpC,YAAsB,OAAuB,EAAE,KAAK;QAA9B,YAAO,GAAP,OAAO,CAAgB;QAL7C,kBAAa,GAAG,IAAI,yEAAoB,EAAE,CAAC;QAC3C,kBAAa,GAAG,EAAE,CAAC;QAEnB,eAAU,GAAG,IAAI,0CAAO,EAAS,CAAC;QAG9B,IAAI,CAAC,aAAa,GAAG,oFAA+B,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1F,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAClE,IAAI,CAAC,aAAa,GAAG,oFAA+B,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,WAAW;QACP,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC3B,IAAI,CAAC,CAAC,WAAW,EAAE;gBACf,CAAC,CAAC,WAAW,EAAE,CAAC;aACnB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,YAAY,CAAC,SAAiB;QAC1B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAKD,cAAc,CAAC,IAAI;QACf,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC9C;QACD,OAAO,EAAE,CAAC;IACd,CAAC;;AAGE,MAAM,gBAAiB,SAAQ,kBAAkB;IAGpD,YAAsB,OAAuB,EAAE,KAAK;QAChD,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QADJ,YAAO,GAAP,OAAO,CAAgB;QAF7C,uBAAkB,GAAG,EAAE,CAAC;QAIpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC3D,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,iBAAiB;QACb,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QACnC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACnB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;SAChC;aAAM;YACH,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;SAChC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAGD,eAAe;QACX,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAChC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBACvC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE;oBACxC,IAAI,CAAC,IAAI,CAAC;wBACN,OAAO,EAAE,OAAO;wBAChB,IAAI,EAAE,CAAC;qBACV,CAAC,CAAC;iBACN;YACL,CAAC,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAChC,IAAI,CAAC,IAAI,CAAC;oBACN,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;oBAC/B,IAAI,EAAE,CAAC;iBACV,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;SACN;QACD,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACxB,KAAK,gEAAS;gBACV,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACf,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE;wBACvB,OAAO,CAAC,CAAC,CAAC;qBACb;oBACD,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE;wBACvB,OAAO,CAAC,CAAC;qBACZ;oBACD,OAAO,CAAC,CAAC;gBACb,CAAC,CAAC,CAAC;gBACH,MAAM;YACV,KAAK,iEAAU;gBACX,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACf,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE;wBACvB,OAAO,CAAC,CAAC;qBACZ;oBACD,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE;wBACvB,OAAO,CAAC,CAAC,CAAC;qBACb;oBACD,OAAO,CAAC,CAAC;gBACb,CAAC,CAAC,CAAC;gBACH,MAAM;SACb;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,QAAQ;IACR,CAAC;;AAGE,MAAM,uBAAwB,SAAQ,kBAAkB;IAK3D,YAAsB,OAAuB,EAAE,KAAK,EAAU,OAAiB,EAAU,EAAe,EAAU,eAAe;QAC7H,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QADJ,YAAO,GAAP,OAAO,CAAgB;QAAiB,YAAO,GAAP,OAAO,CAAU;QAAU,OAAE,GAAF,EAAE,CAAa;QAAU,oBAAe,GAAf,eAAe;QAFjI,eAAU,GAAG,EAAE,CAAC;QAIZ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC;QAC9B,IAAI,CAAC,iBAAiB,GAAG,6EAA0B,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAC3F,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC3D,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACpB,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,eAAe;QACX,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnB;QACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IACjC,CAAC;IAED,QAAQ;IACR,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YACzB,MAAM,SAAS,GAAG,IAAI,sEAAa,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3C,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjC,SAAS,CAAC,QAAQ,GAAG,wEAAc,CAAC;aACvC;iBAAM;gBACH,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC9B,OAAO;iBACV;gBACD,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC;gBACvB,SAAS,CAAC,QAAQ,GAAG,qEAAW,CAAC;aACpC;YACD,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;YAClC,MAAM,MAAM,GAAG,8EAA0B,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAClE,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;gBAChC,IAAI,IAAI,CAAC,WAAW,EAAE;oBAClB,MAAM,MAAM,GAAG,IAAI,sEAAa,EAAE,CAAC;oBACnC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;oBAC7C,MAAM,CAAC,QAAQ,GAAG,uEAAa,CAAC;oBAChC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;oBAChC,gFAA4B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;iBAChD;gBACD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;oBAC5B,MAAM,IAAI,GAAG,IAAI,kEAAW,EAAE,CAAC;oBAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;oBAC3C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;oBAChC,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;iBACxB;aACJ;YACD,gFAA4B,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAChD,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC/E,IAAI,IAAI,EAAE;oBACN,MAAM,IAAI,GAAG,EAAE,CAAC;oBAChB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACb,IAAI,CAAC,IAAI,CAAC;4BACN,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;4BAC/B,IAAI,EAAE,CAAC;yBACV,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC9B;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;;AAGE,MAAM,oBAAqB,SAAQ,kBAAkB;IAQxD,YAAsB,OAAuB,EAAE,KAAK,EAAU,WAAwB,EAAU,eAAe;QAC3G,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QADJ,YAAO,GAAP,OAAO,CAAgB;QAAiB,gBAAW,GAAX,WAAW,CAAa;QAAU,oBAAe,GAAf,eAAe;QAL/G,cAAS,GAAG,CAAC,CAAC;QACd,eAAU,GAAG,GAAG,CAAC;QACjB,WAAM,GAAG,KAAK,CAAC;QACf,uBAAkB,GAAG,EAAE,CAAC;QAIpB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC;QAC9B,IAAI,CAAC,iBAAiB,GAAG,6EAA0B,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAC3F,IAAI,CAAC,eAAe,EAAE;YAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACvB;QACD,eAAe,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,eAAe;QACX,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,QAAQ,CAAC,uBAA+B;QACpC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;YACnC,MAAM,MAAM,GAAG,8EAA0B,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAClE,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;gBAChC,IAAI,IAAI,CAAC,WAAW,EAAE;oBAClB,MAAM,MAAM,GAAG,IAAI,sEAAa,EAAE,CAAC;oBACnC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;oBAC7C,MAAM,CAAC,QAAQ,GAAG,uEAAa,CAAC;oBAChC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;oBAChC,gFAA4B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;iBAChD;gBACD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;oBAC5B,MAAM,IAAI,GAAG,IAAI,kEAAW,EAAE,CAAC;oBAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;oBAC3C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;oBAChC,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;iBACxB;aACJ;YACD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;YACnD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;YAClD,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;gBACxF,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;gBACpB,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,MAAM,IAAI,GAAG,EAAE,CAAC;oBAChB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACb,IAAI,CAAC,IAAI,CAAC;4BACN,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;4BAC/B,IAAI,EAAE,CAAC;yBACV,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;oBACH,IAAI,uBAAuB,EAAE;wBACzB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;wBAC/B,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;qBACtB;yBAAM;wBACH,IAAI,CAAC,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,IAAI,CAAC,CAAC;qBACnE;oBACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;iBACjD;qBAAM;oBACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;iBACtB;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;;AAGE,MAAM,mBAAmB;IAK5B,YAAY,aAAqB,EAAE,QAAa;QAFxC,WAAM,GAAG,KAAK,CAAC;QAGnB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,GAAG,CAAC,MAAe;QACf,IAAI,MAAM,EAAE;YACR,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACtB;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE;YACjF,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnB;IACL,CAAC;;AAGE,MAAM,YAAa,SAAQ,oEAAS;IAMvC,MAAM,CAAU,eAAe,CAAC,IAAI;QAChC,YAAY,CAAC,mBAAmB,EAAE,CAAC;IACvC,CAAC;IACD,MAAM,CAAU,iBAAiB,CAAC,IAAI;QAClC,YAAY,CAAC,mBAAmB,EAAE,CAAC;IACvC,CAAC;IACD,MAAM,CAAC,SAAS;QACZ,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,qFAAmB,CAAC;YAChB,GAAG,EAAE,sCAAsC;YAC3C,EAAE,EAAE,SAAS;YACb,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;YACzC,CAAC;SACJ,CAAC,CAAC;QAEH,iFAAe,CAAC;YACZ,EAAE,EAAE,mBAAmB;YACvB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,qBAAqB;YAC5B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,YAAY,CAAC,eAAe,IAAI,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC;YAC/E,CAAC;YACD,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,cAAc,EAAE,YAAY,CAAC,oBAAoB;gBACjD,eAAe,EAAE,MAAM;gBACvB,iBAAiB,EAAE,mBAAmB;aACzC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,gBAAgB;YACpB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,qHAA0B,CAAC;YACxD,KAAK,EAAE,sBAAsB;YAC7B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,YAAY,CAAC,eAAe,IAAI,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC;YAC/E,CAAC;YACD,QAAQ,EAAE;gBACN,WAAW,EAAE,sBAAsB;gBACnC,YAAY,EAAE,YAAY,CAAC,YAAY;aAC1C;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,mBAAmB;YACvB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,qBAAqB;YAC5B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,CAAC,YAAY,CAAC,eAAe,IAAI,CAAC,YAAY,CAAC,eAAe,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACnH,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,OAAO;YACX,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE;gBACN,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,4DAAK;aACpB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,gBAAgB;YACpB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,kBAAkB;aAC9B;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;YAC1C,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,YAAY;aACxB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,YAAY;aACxB;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,QAAQ,CAAC;YACzB,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,mBAAmB;aAC/B;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,cAAc;aAC1B;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,MAAM;YACV,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,QAAQ;aACpB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,oGAAsB,CAAC;SACvD,CAAC,CAAC;IACP,CAAC;IACD,MAAM,CAAC,mBAAmB;QACtB,IAAI,YAAY,CAAC,YAAY,IAAI,YAAY,CAAC,cAAc,EAAE;YAC1D,YAAY,CAAC,eAAe,GAAG,IAAI,CAAC;YACpC,uFAAoC,CAAC,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACvG,IAAI,MAAM,EAAE;oBACR,YAAY,CAAC,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC;oBAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;oBACnC,IAAI,MAAM,EAAE;wBACR,MAAM,SAAS,GAAG,EAAE,CAAC;wBACrB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;4BACnB,MAAM,GAAG,GAAG,IAAI,wFAAwB,EAAE,CAAC;4BAC3C,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC;4BAC1B,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,iBAAiB,CAAC;4BACnC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACxB,CAAC,CAAC,CAAC;wBACH,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;qBAC7C;oBACD,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC;oBACpE,IAAI,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oBACjD,mBAAmB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC,CAAC;oBAChF,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBAC5D,uFAAgC,CAAC,IAAI,CAAC,CAAC;iBAC1C;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;;AAlKe,iBAAI,GAAG,CAAC,sCAAsC,CAAC;AAC/C,wBAAW,GAAG,SAAS,CAAC;AACzB,iCAAoB,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;AACvE,yBAAY,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;AChlBc;IAQnF,oBAAoB,SAApB,oBAAoB;;QAgBnB,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QACtD,YAAY;QAEZ,qBAAqB;QACrB,qBAAgB,GAAG,EAAE,CAAC;QAWZ,sBAAiB,GAAG,IAAI,uDAAY,EAAO;QAe3C,4BAAuB,GAAG,IAAI,uDAAY,EAAO;QAIjD,gBAAW,GAAG,IAAI,uDAAY,EAAO;IAQnD,CAAC;QApDO,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,IAAI,CAAC,iBAAiB,KAAK,GAAG,EAAE;YAChC,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;YAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACxD;IACL,CAAC;QASG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;QASG,iBAAiB;QACjB,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACvC,CAAC;IACD,IAAI,iBAAiB,CAAC,GAAG;QACrB,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAC;QAClC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACnE,CAAC;IAQD,WAAW,CAAC,IAAI;QACZ,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;YAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC/B;IACL,CAAC;;;2BApDA,gDAAK;iCAWL,iDAAM;0BAMN,gDAAK;gCASL,iDAAM;gCAMN,gDAAK;sCASL,iDAAM;0BAIN,iDAAM;;AAlDE,oBAAoB;IANhC,wDAAS,CAAC;QACP,QAAQ,EAAE,aAAa;QACvB,8EAA4C;QAE5C,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,oBAAoB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACR0F;AACjE;AACgB;AACN;AACO;AACV;AACd;AAC0B;IAQhE,iBAAiB,SAAjB,iBAAkB,SAAQ,2DAAc;IAkEjD,YAAoB,OAA2B,EAAE,KAAwB,EAA+C,IAAI;QACxH,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,YAAO,GAAP,OAAO,CAAoB;QAAyE,SAAI,GAAJ,IAAI;QAlDlH,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QAe5C,sBAAiB,GAAG,IAAI,uDAAY,EAAO;QAe3C,kBAAa,GAAG,IAAI,uDAAY,EAAO;QAevC,sBAAiB,GAAG,IAAI,uDAAY,EAAO;QAOjD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC5C,CAAC;QA5DG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;QAQG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;QASG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;QASG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;IAYD,kBAAkB;QACd,gFAA8B,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACpF,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,GAAG;QACC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI;QACA,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;gBACvF,IAAI,IAAI,EAAE;oBACN,IAAI,IAAI,CAAC,OAAO,EAAE;wBACd,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;wBACpD,IAAI,IAAI,CAAC,UAAU,EAAE;4BACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;yBAC5C;wBACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;qBAC5B;yBAAM;wBACH,kFAAwB,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;qBACnD;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IACD,MAAM;QACF,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC7F,IAAI,IAAI,EAAE;oBACN,kFAAwB,CAAC,8BAA8B,GAAG,IAAI,GAAG,GAAG,EAAE,SAAS,CAAC,CAAC;iBACpF;qBAAM;oBACH,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;oBACxE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;iBAC5B;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,gBAAgB,CAAC,IAAI;QACjB,MAAM,MAAM,GAAG,IAAI,sEAAa,EAAE,CAAC;QACnC,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC/C,MAAM,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,QAAQ,IAAI,CAAC,IAAI,EAAE;YACf,OAAO;YACP,KAAK,sCAAsC;gBACvC,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC;gBAC/B,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;gBAC7B,MAAM;YACV,QAAQ;YACR,KAAK,sCAAsC,CAAC;YAC5C,KAAK,sCAAsC,CAAC;YAC5C,KAAK,sCAAsC;gBACvC,MAAM,CAAC,WAAW,GAAG,gBAAgB,CAAC;gBACtC,MAAM;YACV,OAAO;YACP,KAAK,sCAAsC;gBACvC,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC;gBAChC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBAC3C,MAAM;YACV,OAAO;YACP,KAAK,sCAAsC;gBACvC,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC;gBAChC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;gBACxB,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;gBAC3C,MAAM,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;gBACxC,MAAM,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC;gBACpC,MAAM;YACV,SAAS;YACT,KAAK,sCAAsC,CAAC;YAC5C,KAAK,sCAAsC,CAAC;YAC5C,KAAK,sCAAsC;gBACvC,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC;gBAC/B,MAAM,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC;gBAC/B,MAAM;YACV,kBAAkB;YAClB,KAAK,sCAAsC;gBACvC,MAAM,CAAC,WAAW,GAAG,oBAAoB,CAAC;gBAC1C,MAAM;YACV,OAAO;YACP,KAAK,sCAAsC,CAAC;YAC5C,KAAK,sCAAsC,CAAC;YAC5C,KAAK,sCAAsC;gBACvC,MAAM,CAAC,WAAW,GAAG,cAAc,CAAC;gBACpC,MAAM,CAAC,cAAc,CAAC,GAAG,sCAAsC,CAAC;gBAChE,MAAM,CAAC,mBAAmB,CAAC,GAAG,aAAa,CAAC;gBAC5C,MAAM,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC;gBAClC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACxB,MAAM;SACb;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAjKM,sBAAI,GAAQ,YAAa;AACzB,yBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,kGAA4B,CAAC,CAAC,CAAC;;;;4CA+DE,iDAAM,SAAC,kFAA4B;;;2BA1D9G,gDAAK;iCAQL,iDAAM;0BAMN,gDAAK;gCASL,iDAAM;sBAMN,gDAAK;4BASL,iDAAM;0BAMN,gDAAK;gCASL,iDAAM;;AA7DE,iBAAiB;IAN7B,wDAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,0EAAwC;QAExC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,iBAAiB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACf4C;AACT;AACd;AAC0B;IAQhE,gBAAgB,SAAhB,gBAAiB,SAAQ,2DAAc;;;QAKhD,aAAQ,GAAG,KAAK,CAAC;QACjB,gBAAW,GAAG,KAAK,CAAC;IAWxB,CAAC;IAPG,kBAAkB;QACd,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,0FAAoC,EAAE,CAAC;QACvD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,2FAAqC,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9E,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC5B,CAAC,CAAC,CAAC;IACP,CAAC;;AAdM,qBAAI,GAAQ,SAAU;AACtB,wBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,+FAAyB,CAAC,CAAC,CAAC;;qBAKtE,gDAAK;;AARG,gBAAgB;IAN5B,wDAAS,CAAC;QACP,QAAQ,EAAE,SAAS;QACnB,yEAAqC;QAErC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,gBAAgB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACXsC;AACE;AACN;IAQlD,YAAY,SAAZ,YAAY;IAgBrB,YAAoB,YAA0B,EAAU,eAAgC;QAApE,iBAAY,GAAZ,YAAY,CAAc;QAAU,oBAAe,GAAf,eAAe,CAAiB;QAfxF,UAAK,GAAG,KAAK,CAAC;QACd,oBAAe,GAAG,IAAI,CAAC;QAGvB,gBAAW,GAAG;YACV,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,IAAI;SACnB,CAAC;QACF,YAAO,GAAG;YACN,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,aAAa;SACtB,CAAC;QACF,cAAS,GAAG,KAAK,CAAC;QAGd,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5D,IAAI,KAAK,EAAE;gBACP,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;gBACnC,IAAI,KAAK,GAAG,KAAK,CAAC;gBAClB,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;oBAC5C,IAAI,QAAQ,CAAC,SAAS,EAAE;wBACpB,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC;wBAC1C,IAAI,QAAQ,CAAC,GAAG,EAAE;4BACd,KAAK,GAAG,IAAI,CAAC;yBAChB;wBACD,IAAI,QAAQ,CAAC,IAAI,KAAK,sCAAsC,EAAE;4BAC1D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;4BACtB,KAAK,GAAG,IAAI,CAAC;yBAChB;wBACD,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;qBACpC;gBACL,CAAC,CAAC;gBACF,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK,CAAC;aACjC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS,CAAC,KAAK;QACX,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;YACvB,IAAI,CAAC,KAAK,EAAE,CAAC;SAChB;IACL,CAAC;IAED,KAAK;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAC1C,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC7H;aAAM;YACH,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACtD,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,gBAAgB;QAEZ,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC5C,IAAI,QAAQ,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;oBAC5C,IAAI,QAAQ,CAAC,GAAG,EAAE;wBACd,KAAK,GAAG,IAAI,CAAC;qBAChB;oBACD,IAAI,QAAQ,CAAC,IAAI,KAAK,sCAAsC,EAAE;wBAC1D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;wBACtB,KAAK,GAAG,IAAI,CAAC;qBAChB;oBACD,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;iBACpC;YACL,CAAC,CAAC;YACF,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK,CAAC;SACjC;IACL,CAAC;;;;;;AA5EQ,YAAY;IANxB,wDAAS,CAAC;QACP,QAAQ,EAAE,OAAO;QACjB,qEAAmC;QAEnC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,YAAY;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACV4E;AAChE;AACgC;AACY;AACN;AACI;AACZ;AACF;AACa;AAC3B;AAC0B;IAQhE,aAAa,SAAb,aAAc,SAAQ,4DAAc;IAwC7C,YAAY,KAAwB,EAA+C,IAAI;QACnF,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD4D,SAAI,GAAJ,IAAI;QAnCvF,YAAO,GAAiB,EAAE,CAAC;QAqCvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,qEAAe,CAAC,iBAAiB,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,qEAAe,CAAC,kBAAkB,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAC3F,CAAC;QAzCG,eAAe;QACf,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACrB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,eAAe,CAAC,GAAqB;QACrC,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,EAAE;YACL,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACZ,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,IAAI,gBAAgB;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,QAAQ,EAAE;YACV,OAAO,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;SAC/B;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAQ;QACzB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;QAC9D,IAAI,QAAQ,EAAE;YACV,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;SAC5B;IACL,CAAC;IAaD,kBAAkB;IAClB,CAAC;IAED,eAAe,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;YACvB,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACrB,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACZ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC9B,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;oBACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC/B,CAAC,EAAE,EAAE,CAAC,CAAC;aACV;YACD,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;SACnD;IACL,CAAC;IAED,QAAQ,CAAC,EAAE,EAAE,CAAC;QACV,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;YACvB,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE;gBAChB,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;aACtD;YACD,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE;gBAChB,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;aACpD;YACD,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;YACnC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YACjC,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;SACnD;IACL,CAAC;IAED,aAAa,CAAC,EAAE,EAAE,CAAC;QACf,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC5C,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;gBACb,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;gBAC9C,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAClB,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;aACnD;YACD,EAAE,CAAC,eAAe,EAAE,CAAC;SACxB;IACL,CAAC;IAED,SAAS;QACL,MAAM,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;QACvC,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;QAClB,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;QAClB,SAAS,CAAC,KAAK,GAAG,GAAG,CAAC;QACtB,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC;QACvB,SAAS,CAAC,EAAE,GAAG,oDAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,YAAY;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,GAAG,EAAE;YACL,8FAA2B,CAAC,IAAI,uEAAmB,CAAC,gDAAgD,CAAC,EACjG,IAAI,uEAAmB,CAAC,uBAAuB,CAAC,EAAE,yFAAuB,EAAE,sFAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC7G,IAAI,GAAG,KAAK,qFAAoB,EAAE;oBAC9B,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAClD,IAAI,eAAe,GAAG,CAAC,CAAC,EAAE;wBACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;wBACxC,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;wBACpD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;qBAC9B;iBACJ;YACL,CAAC,CAAC,CAAC;SACV;IACL,CAAC;IAED,aAAa;QACT,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC/D,CAAC;IAED,cAAc;QACV,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;;AAhIM,kBAAI,GAAQ,QAAS;AACrB,qBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,+FAAwB,CAAC,CAAC,CAAC;;;4CAqC/B,kDAAM,SAAC,kFAA4B;;;8BAjCzE,iDAAK;;AAPG,aAAa;IANzB,yDAAS,CAAC;QACP,QAAQ,EAAE,QAAQ;QAClB,sEAAoC;QAEpC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,aAAa;AAAA;AAqInB,MAAM,cAAc;;QACvB,MAAC,GAAG,GAAG,CAAC;QACR,MAAC,GAAG,GAAG,CAAC;QACR,WAAM,GAAG,GAAG,CAAC;QACb,UAAK,GAAG,GAAG,CAAC;IAEhB,CAAC;;AAEM,MAAM,UAAU;IAInB,YAAY,GAAmB;QAF/B,aAAQ,GAAG,KAAK,CAAC;QAGb,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;IACxB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrKwH;AACxE;AACqB;AACL;AACJ;AACd;AACU;AACgB;IAQhE,oBAAoB,SAApB,oBAAqB,SAAQ,2DAAc;IASpD,YAAoB,MAAiB,EAAE,KAAwB,EAA+C,IAAI;QAC9G,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,WAAM,GAAN,MAAM,CAAW;QAAyE,SAAI,GAAJ,IAAI;QAHlH,UAAK,GAAG,CAAC,CAAC;QACV,eAAU,GAAG,EAAE,CAAC;IAIhB,CAAC;IAED,QAAQ;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,uGAA6C,CAAC,CAAC,CAAC,EAAE;YACvF,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,EAAE;gBACH,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACX,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;wBACV,IAAI,KAAK,KAAK,CAAC,EAAE;4BACb,QAAQ,EAAE,CAAC,WAAW,EAAE;gCACpB,KAAK,6EAAiB;oCAClB,KAAK,CAAC,YAAY,CAAC,GAAG,gBAAgB,CAAC;oCACvC,MAAM;gCACV,KAAK,mFAAuB;oCACxB,KAAK,CAAC,YAAY,CAAC,GAAG,iBAAiB,CAAC;oCACxC,MAAM;gCACV,KAAK,+EAAmB;oCACpB,KAAK,CAAC,YAAY,CAAC,GAAG,gBAAgB,CAAC;oCACvC,MAAM;gCACV,KAAK,+EAAmB;oCACpB,KAAK,CAAC,YAAY,CAAC,GAAG,gBAAgB,CAAC;oCACvC,MAAM;6BACb;yBACJ;wBACD,KAAK,EAAE,CAAC;qBACX;gBACL,CAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB;IAClB,CAAC;IAED,IAAI;QACA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sEAAmB,EAAE,EAAE,UAAU,EAAE,qBAAqB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;YAC1C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SACrC;IACL,CAAC;;AAxDM,yBAAI,GAAQ,eAAgB;AAC5B,4BAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,qGAA+B,CAAC,CAAC,CAAC;;;;4CAMX,iDAAM,SAAC,kFAA4B;;;qBAJpG,oDAAS,SAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,qDAAU,EAAE;;AALhC,oBAAoB;IANhC,wDAAS,CAAC;QACP,QAAQ,EAAE,mBAAmB;QAC7B,6EAA2C;QAE3C,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,oBAAoB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfgF;AACxC;AAClB;AACY;AACE;AACK;AACV;AACK;AACF;AAEqB;AAC5D;AACwB;IAOvC,mBAAmB,SAAnB,mBAAmB;IAe5B,YAAoB,SAA4C,EAAU,SAA2B,EACjE,IAAS;QADzB,cAAS,GAAT,SAAS,CAAmC;QAAU,cAAS,GAAT,SAAS,CAAkB;QACjE,SAAI,GAAJ,IAAI,CAAK;QAd7C,iBAAY,GAAG,EAAE,CAAC;QAClB,wBAAmB,GAAG,CAAC,CAAC,CAAC;QAIzB,WAAM,GAAG,KAAK,CAAC;QAEf,kBAAa,GAAG,EAAE,CAAC;QAGnB,gBAAW,GAAG,EAAE,CAAC;QACjB,aAAQ,GAAG,EAAE,CAAC;QAsBd,oBAAe,GAAG,IAAI,CAAC;QAlBnB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,mFAAuB,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,6EAAiB,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,+EAAmB,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,+EAAmB,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAEtD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,QAAQ,GAAQ,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC5D,IAAI,QAAQ,EAAE;YACV,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SACnC;QACD,IAAI,QAAQ,IAAI,IAAI,EAAE;YAClB,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE;gBAC7C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;aAC/B;SACJ;IACL,CAAC;IAED,QAAQ;QACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;QACjE,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,8DAAmB,EAAE;YACxE,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;SACtC;QACK,8EAAyB,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,0EAAqB,CAAC;QACrC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,wFAAkC,CAAC,CAAC,MAAM,EAAE,EAAE;YAClE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,uGAA6C,CAAC,CAAC,CAAC,EAAE;YACtE,IAAI,CAAC,EAAE;gBACH,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;aAC7B;iBAAM;gBACH,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aACzB;YACD,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,WAAW;QACP,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC3B,CAAC,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,cAAc;QACV,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC,EAAE;YAC9B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACzB,QAAQ,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACzB,IAAI,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,mBAAmB,EAAE;oBAC5C,QAAQ,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC9C;YACL,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,SAAS;QACL,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,YAAY;QACR,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,0FAAgC,EAAE,CAAC;IACvC,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,WAAW,CAAC,IAAI;QACZ,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE;YAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;SAClC;IACL,CAAC;IAED,IAAI;QACA,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAClD,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;YAC3B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC;YACzD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;SACrC;IACL,CAAC;IAED,OAAO;QACH,2EAAsB,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACrC,6EAAwB,EAAE,CAAC;YAC3B,kFAA6B,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACP,CAAC;IACD,eAAe;QACX,kFAA6B,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,eAAe;QACX,kFAA6B,EAAE,CAAC;IACpC,CAAC;IACD,YAAY,CAAC,IAAI;QACb,IAAI,IAAI,GAAG;YACP,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;SAClD;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,2EAAgB,EAAE;YACjC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SAChE;QACD,wGAA8B,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,CAAC,IAAI;QACR,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,QAAQ,IAAI,CAAC,MAAM,EAAE;YACjB,KAAK,6EAAkB;gBAAE,MAAM,GAAG,cAAc,CAAC;gBAAC,MAAM;YACxD,KAAK,6EAAkB;gBAAE,MAAM,GAAG,cAAc,CAAC;gBAAC,MAAM;YACxD,KAAK,gFAAqB;gBAAE,MAAM,GAAG,iBAAiB,CAAC;gBAAC,MAAM;YAC9D,KAAK,2EAAgB;gBAAE,MAAM,GAAG,YAAY,CAAC;gBAAC,MAAM;SACvD;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,CAAC,MAAM,IAAI,6EAAkB,EAAE;YACnC,IAAI,CAAC,MAAM,GAAG,gFAAqB,CAAC;YACpC,qFAAgC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC1E,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE;oBAC7B,IAAI,CAAC,MAAM,GAAG,6EAAkB,CAAC;iBACpC;qBAAM;oBACH,IAAI,CAAC,MAAM,GAAG,2EAAgB,CAAC;oBAC/B,IAAI,MAAM,CAAC,QAAQ,EAAE;wBACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;qBAC/C;iBACJ;YACL,CAAC,CAAC;SACL;IACL,CAAC;IACD,WAAW,CAAC,IAAI;QACZ,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;YACnB,oFAA+B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC1D,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE;oBAC7B,IAAI,CAAC,MAAM,GAAG,6EAAkB,CAAC;iBACpC;qBAAM;oBACH,IAAI,CAAC,MAAM,GAAG,2EAAgB,CAAC;oBAC/B,IAAI,MAAM,CAAC,QAAQ,EAAE;wBACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;qBAC/C;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IACD,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YACvB,oFAA+B,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC9D,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE;oBAC7B,IAAI,CAAC,MAAM,GAAG,6EAAkB,CAAC;iBACpC;qBAAM;oBACH,IAAI,CAAC,MAAM,GAAG,2EAAgB,CAAC;oBAC/B,IAAI,MAAM,CAAC,QAAQ,EAAE;wBACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;qBAC/C;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;;;;;4CA7KI,kDAAM,SAAC,sEAAe;;AAhBlB,mBAAmB;IAN/B,yDAAS,CAAC;QACP,QAAQ,EAAE,yBAAyB;QACnC,4EAA0C;QAE1C,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,mBAAmB;AAAA;AAgMzB,MAAM,oBAAoB;IAmB7B,YAAoB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;QACxC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;YACtC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;YACtD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;gBACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;aAC1D;iBAAM;gBACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;aACjC;SACJ;aAAM;YACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;YAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;SACjC;QACD,IAAI,CAAC,mBAAmB,GAAG,6CAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrE,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,GAAG,EAAE;YACnE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;SACjF;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE;YAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;SAC9D;aAAM;YACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;SACpC;QACD,IAAI,CAAC,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAClE,CAAC;IA5BD,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7B,CAAC;IA4BD,OAAO;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,kBAAkB;QACd,MAAM,SAAS,GAAG,wFAAkC,CAAC;QACrD,IAAI,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;QAC7E,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC;QACzF,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACvE,OAAO,IAAI,CAAC;IAChB,CAAC;;AAtDc,2BAAM,GAAG;IACpB,CAAC,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE;IACnC,CAAC,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE;IACnC,CAAC,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE;IACnC,CAAC,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE;CACvC,CAAC;;;;;;;;;;;;;;;;;;;;;;;ACzNkG;IAQ3F,qBAAqB,SAArB,qBAAqB;IAehC,YAAY;IAEZ;QAHU,sBAAiB,GAAG,IAAI,uDAAY,EAAO;IAIrD,CAAC;QAZG,WAAW;QACb,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACjB,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAQD,QAAQ;IAER,CAAC;;;;0BAjBA,gDAAK;gCASL,iDAAM;;AAdI,qBAAqB;IANjC,wDAAS,CAAC;QACT,QAAQ,EAAE,oBAAoB;QAC9B,8EAA4C;QAE1C,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACR+C;AACkC;AAC5C;AACJ;IAqBtD,kBAAkB,SAAlB,kBAAkB;;QAcjB,eAAU,GAAG,IAAI,uDAAY,EAAO;QAC9C,YAAY;QAEZ,kBAAa,GAAG,EAAE,CAAC;QACnB,uBAAkB,GAAG,KAAK,CAAC;IAiD/B,CAAC;QA7DO,IAAI;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,CAAC,GAAG;QACR,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAQD,QAAQ;QACJ,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,GAAG,+GAAsD,CAAC,CAAC,IAAI,EAAE,EAAE;YAChH,IAAI,IAAI,EAAE;gBACN,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACxC,IAAI,OAAO,IAAI,IAAI,EAAE;oBACjB,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,OAAO,CAAC;iBACtC;qBAAM;oBACH,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC;iBACpC;gBACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBAClF,IAAI,CAAC,CAAC,SAAS,EAAE;wBACb,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBAC1C,IAAI,SAAS,IAAI,IAAI,EAAE;4BACnB,OAAO,CAAC,SAAS,CAAC;yBACrB;wBACD,OAAO,IAAI,CAAC;qBACf;oBACD,OAAO,KAAK,CAAC;gBACjB,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aACvG;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW;QACP,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IAID,KAAK,CAAC,KAAiB;QACnB,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;YAC3D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAC3B;aAAM;YACH,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC5B;IACL,CAAC;IACD,YAAY;IAEZ,QAAQ;QACJ,gFAAyB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;;;mBA7DA,gDAAK;yBASL,iDAAM;;AAdE,kBAAkB;IAlB9B,wDAAS,CAAC;QACP,QAAQ,EAAE,yBAAyB;QACnC,2EAAyC;QAEzC,UAAU,EAAE;YACR,4DAAO,CAAC,YAAY,EAAE;gBAClB,+DAAU,CAAC,QAAQ,EAAE;oBACjB,0DAAK,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC;oBACpC,4DAAO,CAAC,GAAG,CAAC;iBACf,CAAC;gBACF,+DAAU,CAAC,QAAQ,EAAE;oBACjB,4DAAO,CAAC,GAAG,EAAE,0DAAK,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC;iBACrD,CAAC;gBACF,0DAAK,CAAC,GAAG,EAAE,0DAAK,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC;aAClD,CAAC;SACL;QACD,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxBuB;AAC+F;AAChG;AACI;AAE2C;AACe;AAC5B;AACrB;AACN;AACM;AACQ;AACa;AAEE;AACxB;AACF;AACa;AACzB;AAC0B;IAQhE,mBAAmB,SAAnB,mBAAoB,SAAQ,4DAAc;IAyCnD,YAAoB,YAA0B,EAAU,MAAiB,EAAU,SAAuB,EAAE,KAAwB,EAA+C,IAAI;QACnL,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,iBAAY,GAAZ,YAAY,CAAc;QAAU,WAAM,GAAN,MAAM,CAAW;QAAU,cAAS,GAAT,SAAS,CAAc;QAAyE,SAAI,GAAJ,IAAI;QAvB7K,sBAAiB,GAAG,IAAI,wDAAY,EAAO;QAmB3C,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QAMhD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;QAnCG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;QASG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;YACrD,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB;QACD,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;IAWD,kBAAkB;QACd,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IACD,QAAQ;QACJ,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,KAAK,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC;IAED,sBAAsB;QAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB;IACL,CAAC;IACD,+BAA+B;IAC/B,mCAAmC;IACnC,iCAAiC;IACjC,kCAAkC;IAClC,sCAAsC;IACtC,wCAAwC;IACxC,sCAAsC;IACtC,GAAG;IAGH,SAAS;QACL,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;gBAC/B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;aAC9B;iBAAM,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;gBACvC,8EAA4B,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;oBACzE,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;oBAC3C,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;wBAC/B,IAAI,IAAI,CAAC,eAAe,EAAE;4BACtB,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;yBACnC;qBACJ;oBACD,IAAI,QAAQ,EAAE;wBACV,IAAI,MAAM,CAAC,OAAO,EAAE;4BAChB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;gCACjE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;gCAChB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;4BAC/B,CAAC,CAAC,CAAC;yBACN;6BAAM;4BACH,MAAM,GAAG,GAAG,mFAAkB,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;4BACzE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC;yBACjE;qBACJ;yBAAM;wBACH,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;qBACjB;oBACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC/B,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAED,gBAAgB;QACZ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kFAAkB,EAAE;gBACnD,UAAU,EAAE,+BAA+B;gBAC3C,IAAI,EAAE;oBACF,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW;oBAC7C,aAAa,EAAE,IAAI;iBACtB;aACJ,CAAC,CAAC;YACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBACvC,IAAI,MAAM,EAAE;oBACR,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;iBAC5B;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,gBAAgB;QACZ,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SAC1B;IACL,CAAC;IAED,cAAc,CAAC,EAAE;QACb,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,OAAO;QACH,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;;AAhIM,wBAAI,GAAQ,cAAe;AAC3B,2BAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,qGAA8B,CAAC,CAAC,CAAC;;;;;;4CAsC2D,kDAAM,SAAC,mFAA4B;;;0BAhCzK,iDAAK;gCASL,kDAAM;yBAMN,iDAAK;+BAaL,kDAAM;;AArCE,mBAAmB;IAN/B,yDAAS,CAAC;QACP,QAAQ,EAAE,kBAAkB;QAC5B,4EAA0C;QAE1C,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,mBAAmB;AAAA;AAoIzB,MAAM,iBAAkB,SAAQ,oEAAS;IAE5C,MAAM,CAAC,SAAS;QACZ,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,cAAc;YAClB,OAAO,EAAE,eAAe;YACxB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,cAAc,CAAC;YAC9C,CAAC;SACJ,CAAC;QACF,oBAAoB;QACpB,wBAAwB;QACxB,8BAA8B;QAC9B,0DAA0D;QAC1D,kBAAkB;QAClB,kCAAkC;QAClC,SAAS;QACT,aAAa;QACb,KAAK;QAEL,IAAI,YAAY,GAAG,yFAAmC,CAAe,kEAAY,CAAC,CAAC;QACnF,YAAY,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACxC,iFAAe,CAAC;gBACZ,EAAE,EAAE,aAAa;gBACjB,MAAM,EAAE,cAAc;gBACtB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;gBAClD,KAAK,EAAE,qBAAqB;gBAC5B,GAAG,EAAE,CAAC;gBACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;oBACtB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC5B,CAAC;gBACD,QAAQ,EAAE;oBACN,WAAW,EAAE,UAAU;oBACvB,QAAQ,EAAE,KAAK;oBACf,WAAW,EAAE,IAAI;oBACjB,iBAAiB,EAAE,SAAS;oBAC5B,eAAe,EAAE,KAAK;iBACzB;aACJ,CAAC;QACN,CAAC,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,IAAI,iEAAe,CAAC,qHAAyB,CAAC;YACvD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC;YAChD,CAAC;YACD,GAAG,EAAE,CAAC;SACT,CAAC;IACN,CAAC;;AAtDe,sBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChKhB;AACgB;AACsB;AACF;AACA;AACjC;AACwC;AAE5B;AACW;IAOhE,kBAAkB,SAAlB,kBAAmB,SAAQ,2DAAc;IAIlD,kBAAkB;IAClB,CAAC;;AAJM,uBAAI,GAAQ,WAAY;AACxB,0BAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,iGAA2B,CAAC,CAAC,CAAC;AAFhE,kBAAkB;IAL9B,wDAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,4EAA0C;QAC1C,eAAe,EAAE,yEAA8B;KAClD,CAAC;GACW,kBAAkB;AAAA;AAOxB,MAAM,cAAe,SAAQ,oEAAS;IAEzC,MAAM,CAAC,SAAS;QACZ,oFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,WAAW;YACf,OAAO,EAAE,cAAc;YACvB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC;YAC3C,CAAC;SACJ,CAAC;QAEF,gFAAe,CAAC;YACZ,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,6BAA6B;aACzC;SACJ,CAAC;IACN,CAAC;;AAxBe,mBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxBhB;AACgB;AACsB;AACF;AACA;AACjC;AAEwC;AAC5B;AACW;IAOhE,YAAY,SAAZ,YAAa,SAAQ,2DAAc;IAI5C,kBAAkB;IAClB,CAAC;;AAJM,iBAAI,GAAQ,cAAe;AAC3B,oBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,oGAA8B,CAAC,CAAC,CAAC;AAFnE,YAAY;IALxB,wDAAS,CAAC;QACP,QAAQ,EAAE,mBAAmB;QAC7B,qEAAmC;QACnC,eAAe,EAAE,yEAA8B;KAClD,CAAC;GACW,YAAY;AAAA;AAOlB,MAAM,QAAS,SAAQ,oEAAS;IAEnC,MAAM,CAAC,SAAS;QACZ,oFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,cAAc;YAClB,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,cAAc,CAAC;YAC9C,CAAC;SACJ,CAAC;QAEF,gFAAe,CAAC;YACZ,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,sBAAsB;aAClC;SACJ,CAAC;IACN,CAAC;;AAxBe,aAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxBb;AACqE;AAC7B;AACM;AACe;AAClB;AAC8B;AACxC;AACrB;AACN;AACM;AACQ;AACa;AACD;AACG;AACxB;AACF;AACZ;AAC0B;IAOhE,gBAAgB,SAAhB,gBAAiB,SAAQ,4DAAc;IAuBhD,YAAY;IAEZ,YAAoB,YAA0B,EAAE,KAAwB,EAA+C,IAAI;QACvH,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,iBAAY,GAAZ,YAAY,CAAc;QAAyE,SAAI,GAAJ,IAAI;QApB3H,cAAS,GAAG,KAAK,CAAC;QAiBR,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QAKhD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC5C,CAAC;QAnBG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB;QACD,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;IAWD,kBAAkB;QACd,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IACD,sBAAsB;QAClB,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IACD,SAAS;QACL,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;YAChE,8EAA4B,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC9E,IAAI,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;gBAChD,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACf,IAAI,IAAI,CAAC,eAAe,EAAE;wBACtB,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;qBACnC;iBACJ;gBACD,IAAI,QAAQ,EAAE;oBACV,IAAI,MAAM,CAAC,OAAO,EAAE;wBAChB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;4BACjE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;4BAChB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;wBAC/B,CAAC,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,CAAC,GAAG,GAAG,oFAAkB,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;qBAC3E;iBACJ;qBAAM;oBACH,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;iBACjB;gBACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,QAAQ,CAAC,EAAE;QACP,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,CAAC,EAAE;QACN,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAC9C,CAAC;;AArEM,qBAAI,GAAQ,WAAY;AACxB,wBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,kGAA2B,CAAC,CAAC,CAAC;;;;4CAuBE,kDAAM,SAAC,mFAA4B;;;yBAhB7G,iDAAK;+BAaL,kDAAM;;AAtBE,gBAAgB;IAL5B,yDAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,yEAAuC;QACvC,eAAe,EAAE,0EAA8B;KAClD,CAAC;GACW,gBAAgB;AAAA;AAwEtB,MAAM,cAAe,SAAQ,oEAAS;IAEzC,MAAM,CAAC,SAAS;QACZ,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,WAAW;YACf,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC;YAC3C,CAAC;SACJ,CAAC;QACF,IAAI,YAAY,GAAG,yFAAmC,CAAe,kEAAY,CAAC,CAAC;QACnF,YAAY,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACxC,iFAAe,CAAC;gBACZ,EAAE,EAAE,aAAa;gBACjB,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;gBAClD,KAAK,EAAE,qBAAqB;gBAC5B,GAAG,EAAE,CAAC;gBACN,QAAQ,EAAE;oBACN,WAAW,EAAE,UAAU;oBACvB,QAAQ,EAAE,KAAK;oBACf,WAAW,EAAE,IAAI;oBACjB,iBAAiB,EAAE,SAAS;oBAC5B,eAAe,EAAE,KAAK;iBACzB;aACJ,CAAC;QACN,CAAC,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,qHAAyB,CAAC;YACvD,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,CAAC;YAC5B,CAAC;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,gBAAgB;YACpB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,oBAAoB;aAChC;YACD,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,CAAC;YAC5B,CAAC;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,gBAAgB;YACvB,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,WAAW,CAAC;YACnD,CAAC;YACD,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAC,CAAC;aACZ;SACJ,CAAC,CAAC;QACH,IAAI,QAAQ,GAAG,CAAC;gBACR,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,GAAG;aACb,EAAE;gBACC,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,IAAI;aACd,EAAE;gBACC,OAAO,EAAE,MAAM;gBACf,KAAK,EAAE,KAAK;aACf,EAAE;gBACC,OAAO,EAAE,MAAM;gBACf,KAAK,EAAE,KAAK;aACf,CAAC;QAEN,iFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,YAAY;YACnB,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,WAAW,EAAE,aAAa;gBAC1B,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,QAAQ;gBACrB,eAAe,EAAE,OAAO;gBACxB,iBAAiB,EAAE,SAAS;aAC/B;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,CAAC;YAC5B,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,iIAA6B,CAAC;YAC3D,KAAK,EAAE,kBAAkB;YACzB,aAAa,EAAE,6FAAwB;YACvC,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,CAAC;wBACN,UAAU,EAAE,YAAY;wBACxB,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,iBAAiB;qBAC7B,EAAE;wBACC,UAAU,EAAE,cAAc;wBAC1B,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,YAAY;qBACxB,EAAE;wBACC,UAAU,EAAE,aAAa;wBACzB,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,kBAAkB;qBAC9B,CAAC;aACL;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,CAAC;YAC5B,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;;AA7He,mBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;AClG2B;AAC7B;AACY;AAC1B;AAC0B;IAQhE,wBAAwB,SAAxB,wBAAyB,SAAQ,2DAAc;IAKxD,YAAoB,mBAAwC,EAAE,KAAwB,EAA+C,IAAI;QACrI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,wBAAmB,GAAnB,mBAAmB,CAAqB;QAAyE,SAAI,GAAJ,IAAI;QAUzI,aAAQ,GAAG,EAAE,CAAC;QARV,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC;IAQD,kBAAkB;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IACD,aAAa;QACT,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;YAC7C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;SACxD;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YACtC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;SAChD;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,YAAY;QACR,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE;YACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC3B,OAAO;SACV;QACD,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,GAAG;QACC,IAAI,CAAC,UAAU,GAAG;YACd,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;SAC5B;IACL,CAAC;IACD,IAAI;QACA,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE;gBACnE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC;gBACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBAEvB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,IAAI,CAAC,YAAY,EAAE,CAAC;YACxB,CAAC,CAAC;SACL;aAAM;YACH,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB;IACL,CAAC;IACD,MAAM;QACF,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE;gBACtG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE;oBAC3E,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;oBAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;gBACxB,CAAC,CAAC,CAAC;YACP,CAAC,CAAC;SACL;IACL,CAAC;IAED,aAAa;QACT,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC3G,CAAC;IACD,cAAc;QACV,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE;YACpC,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACzF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC3B,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;SACN;IACL,CAAC;;AAjFM,6BAAI,GAAQ,mBAAoB;AAChC,gCAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,yGAAmC,CAAC,CAAC,CAAC;;;;4CAEQ,iDAAM,SAAC,kFAA4B;;AALnH,wBAAwB;IANpC,wDAAS,CAAC;QACP,QAAQ,EAAE,wBAAwB;QAClC,iFAA+C;QAE/C,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,wBAAwB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZiB;AACoB;AAC0B;AACH;AACV;AACrB;AACuB;AACF;AACE;AACtC;AAC0B;IAQhE,WAAW,SAAX,WAAY,SAAQ,2DAAc;;;QAI3C,8BAAyB,GAAO,6FAAwB,CAAC;QAgBzD,eAAU,GAAG,GAAG,CAAC;QAgBjB,wBAAmB,GAAG,EAAE,CAAC;IAoB7B,CAAC;IAnDG,IAAI,oBAAoB;QACpB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,OAAO,2FAAsB,CAAC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;SAC/E;aAAM;YACH,OAAO,2FAAsB,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;SACjE;IACL,CAAC;IACD,IAAI,oBAAoB,CAAC,KAAK;QAC1B,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,GAAG,KAAK,CAAC;SACxD;aAAM;YACH,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;SAC1C;IACL,CAAC;IAGD,IAAI,KAAK;QACL,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;SACzC;aAAM;YACH,OAAO,IAAI,CAAC,UAAU,CAAC;SAC1B;IACL,CAAC;IACD,IAAI,KAAK,CAAC,KAAK;QACX,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,KAAK,CAAC;SAC1C;aAAM;YACH,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SAC3B;IACL,CAAC;IAGD,IAAI,cAAc;QACd,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,OAAO,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC;SACjD;aAAM;YACH,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACnC;IACL,CAAC;IACD,IAAI,cAAc,CAAC,KAAK;QACpB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,kBAAkB,CAAC,cAAc,GAAG,KAAK,CAAC;SAClD;aAAM;YACH,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;SACpC;IACL,CAAC;IAID,kBAAkB;IAClB,CAAC;;AArDM,gBAAI,GAAQ,IAAK;AACjB,mBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,2FAAoB,CAAC,CAAC,CAAC;;qBAiDjE,iDAAK;;AApDG,WAAW;IANvB,yDAAS,CAAC;QACP,QAAQ,EAAE,IAAI;QACd,oEAAgC;QAEhC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,WAAW;AAAA;AAyDjB,MAAM,OAAQ,SAAQ,oEAAS;IAElC,MAAM,CAAC,SAAS;QACZ,oFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;YACpC,CAAC;SACJ,CAAC;QAEF,gFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;gBACV,IAAI,EAAE,CAAC;aACV;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,gBAAgB;YACpB,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,oBAAoB;YAC3B,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;gBACV,IAAI,EAAE,CAAC;aACV;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,sBAAsB;YAC1B,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,wBAAwB;YAC/B,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,2FAAsB;aACrC;SACJ,CAAC;IAEN,CAAC;;AAlDe,YAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5Eb;AAC8F;AACtD;AACG;AACA;AAC2B;AACrC;AACrB;AAER;AACA;AAC6B;AACD;AACG;AACxB;AACd;AAC0B;IAQhE,kBAAkB,SAAlB,kBAAmB,SAAQ,4DAAc;IAqDlD,YAAY,KAAwB,EAA+C,IAAI;QACnF,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD4D,SAAI,GAAJ,IAAI;QArC7E,iBAAY,GAAG,IAAI,wDAAY,EAAO;QAetC,uBAAkB,GAAG,IAAI,wDAAY,EAAO;QAe5C,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QAKpD,oBAAe,GAAG,IAAI,CAAC;QAInB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;QAjDG,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACV,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAQG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAMG,UAAU;QACV,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAcD,kBAAkB;QACd,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAED,sBAAsB;QAClB,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAED,UAAU;QACN,sFAAoC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACrF,IAAI,CAAC,eAAe,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YACxD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,OAAO;gBACzC,0EAAwB,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBACzE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;oBACnB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC/B,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;gBACnD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;aAC9B;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,QAAQ,CAAC,EAAE;QACP,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,UAAU,EAAE;YAClE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;SAC5B;aAAM,IAAI,IAAI,CAAC,UAAU,EAAE;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,KAAK,EAAE;gBACP,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAChB,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE;wBAC9C,MAAM,CAAC,KAAK,EAAE,CAAC;wBACf,OAAO,IAAI,CAAC;qBACf;oBACD,OAAO,KAAK,CAAC;gBACjB,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;;AAnGM,uBAAI,GAAQ,aAAc;AAC1B,0BAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,oGAA6B,CAAC,CAAC,CAAC;;;4CAmDpC,kDAAM,SAAC,mFAA4B;;;qBA/CzE,iDAAK;2BAUL,kDAAM;2BAKN,iDAAK;iCAUL,kDAAM;yBAGN,iDAAK;+BAYL,kDAAM;yBAGN,wDAAY,SAAC,YAAY;0BACzB,qDAAS,SAAC,aAAa;;AAlDf,kBAAkB;IAN9B,yDAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,2EAAyC;QAEzC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,kBAAkB;AAAA;AAsGxB,MAAM,gBAAiB,SAAQ,oEAAS;IAE3C,MAAM,CAAC,SAAS;QACZ,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,aAAa;YACjB,OAAO,EAAE,eAAe;YACxB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,aAAa,CAAC;YAC7C,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,gBAAgB;YACvB,UAAU,EAAE;gBACR;oBACI,EAAE,EAAE,SAAS;oBACb,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;oBAC5D,KAAK,EAAE,WAAW;oBAClB,MAAM,EAAE,CAAC;oBACT,GAAG,EAAE,CAAC;oBACN,QAAQ,EAAE;wBACN,QAAQ,EAAE,QAAQ;qBACrB;iBACJ;gBACD;oBACI,EAAE,EAAE,OAAO;oBACX,MAAM,EAAE,YAAY;oBACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;oBACjD,KAAK,EAAE,SAAS;oBAChB,aAAa,EAAE,6FAAwB;oBACvC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;wBACtB,OAAO,IAAI,CAAC,cAAc,IAAI,sCAAsC;oBACxE,CAAC;oBACD,QAAQ,EAAE;wBACN,SAAS,EAAC,MAAM;qBACnB;iBACJ;gBACD;oBACI,EAAE,EAAE,OAAO;oBACX,MAAM,EAAE,YAAY;oBACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;oBACjD,KAAK,EAAE,SAAS;oBAChB,aAAa,EAAE,6FAAwB;oBACvC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;wBACtB,OAAO,IAAI,CAAC,cAAc,IAAI,sCAAsC,IAAI,IAAI,CAAC,cAAc,IAAI,sCAAsC,IAAI,IAAI,CAAC,cAAc,IAAI,sCAAsC;oBAC1M,CAAC;oBACD,QAAQ,EAAE;wBACN,SAAS,EAAE,QAAQ;qBACtB;iBACJ;gBACD;oBACI,EAAE,EAAE,OAAO;oBACX,MAAM,EAAE,YAAY;oBACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;oBAClD,QAAQ,EAAE;wBACN,OAAO,EAAE,SAAS;qBACrB;oBACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;wBACtB,OAAO,IAAI,CAAC,cAAc,IAAI,sCAAsC;oBACxE,CAAC;iBACJ;aACJ;YACD,QAAQ,EAAE;gBACN,eAAe,EAAE,GAAG,EAAE;oBAClB,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;oBACvC,OAAO,IAAI,CAAC;gBAChB,CAAC;gBACD,iBAAiB,EAAC,SAAS;aAC9B;YACD,aAAa,EAAE,6FAAwB;SAC1C,CAAC,CAAC;IACP,CAAC;;AA/Ee,qBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;AC/HI;AACK;IAM/D,sBAAsB,SAAtB,sBAAsB;IA0D/B,YAAoB,YAAmC;QAAnC,iBAAY,GAAZ,YAAY,CAAuB;QAzDvD,qBAAqB;QACrB,qBAAgB,GAAG,EAAE,CAAC;QAWZ,sBAAiB,GAAG,IAAI,uDAAY,EAAO;QACrD,YAAY;QACZ,cAAc;QACd,cAAS,GAAG,EAAE,CAAC;QAWL,eAAU,GAAG,IAAI,uDAAY,EAAO;QAC9C,YAAY;QACZ,iBAAiB;QACjB,iBAAY,GAAG,EAAE,CAAC;QAWR,kBAAa,GAAG,IAAI,uDAAY,EAAO;QAuBvC,kBAAa,GAAG,IAAI,uDAAY,EAAO;IALjD,CAAC;QAvDG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,GAAG,KAAK,IAAI,CAAC,gBAAgB,EAAE;YAC/B,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;YAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACtD;IACL,CAAC;QAMG,IAAI;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,CAAC,GAAG;QACR,IAAI,GAAG,KAAK,IAAI,CAAC,SAAS,EAAE;YACxB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACxC;IACL,CAAC;QAMG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,GAAG,KAAK,IAAI,CAAC,YAAY,EAAE;YAC3B,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC9C;IACL,CAAC;IAMD,gBAAgB;QACZ,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAChB,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;gBAChC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;aAChC;iBAAM;gBACH,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;aACjC;QACL,CAAC,CAAC;IACN,CAAC;IAKD,YAAY;QACR,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;;;;;;0BA5DA,gDAAK;gCAUL,iDAAM;mBAIN,gDAAK;yBAUL,iDAAM;sBAIN,gDAAK;4BAUL,iDAAM;4BAuBN,iDAAM;;AAhEE,sBAAsB;IAJlC,wDAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,gFAA8C;KACjD,CAAC;GACW,sBAAsB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACPnC;AACA;AACA;AACA;IAMagB,0BAA0B,SAA1BA,0BAA0B;EAiCnChyB,YAAoBiyB,YAApB,EAAuD;IAAnC,iCAAmC,CAhCvD;;IACA,uBAAkB,EAAlB;IAWU,wBAAmB,IAAIvyB,uDAAJ,EAAnB,CAoB6C,CAnBvD;IACA;;IACA,iBAAY,EAAZ;IAWU,kBAAa,IAAIA,uDAAJ,EAAb;IASV,yBAAoB,IAApB;EAFC;;EA9Ba,IAAVwyB,UAAU;IACV,OAAO,KAAKC,eAAZ;EACH;;EACa,IAAVD,UAAU,CAACnxB,GAAD,EAAI;IACd,IAAIA,GAAG,KAAK,KAAKoxB,eAAjB,EAAkC;MAC9B,KAAKA,eAAL,GAAuBpxB,GAAvB;MACA,KAAKqxB,gBAAL,CAAsB1wB,IAAtB,CAA2B,KAAKywB,eAAhC;IACH;EACJ;;EAMO,IAAJ5xB,IAAI;IACJ,OAAO,KAAK8xB,SAAZ;EACH;;EACO,IAAJ9xB,IAAI,CAACQ,GAAD,EAAI;IACR,IAAIA,GAAG,KAAK,KAAKsxB,SAAjB,EAA4B;MACxB,KAAKA,SAAL,GAAiBtxB,GAAjB;MACA,KAAKuxB,UAAL,CAAgB5wB,IAAhB,CAAqB,KAAK2wB,SAA1B;IACH;EACJ;;EAWDE,YAAY;IACR,IAAIC,SAAS,GAAG,IAAIT,gFAAJ,EAAhB;IACAS,SAAS,CAAC9lB,IAAV,GAAiB,gBAAjB;IACA,KAAKwlB,UAAL,CAAgB90B,IAAhB,CAAqBo1B,SAArB;IACA,KAAKC,iBAAL,GAAyBD,SAAzB;IACA,KAAKE,eAAL;EACH;;EAEDC,cAAc;IACV,KAAKT,UAAL,CAAgBrmB,MAAhB,CAAuB,KAAKqmB,UAAL,CAAgB3mB,OAAhB,CAAwB,KAAKknB,iBAA7B,CAAvB,EAAwE,CAAxE;IACA,KAAKA,iBAAL,GAAyB,IAAzB;IACA,KAAKG,YAAL,GAAoB,IAApB;EACH;;EACDC,eAAe,CAACC,GAAD,EAAI;IACf,KAAKL,iBAAL,GAAyBK,GAAzB;IACA,KAAKJ,eAAL;EACH;;EAEKA,eAAe;IAAA;;IAAA;MACjB,KAAI,CAACK,WAAL,GAAmB;QACfC,CAAC,EAAE,EADY;QAEfC,CAAC,EAAE;MAFY,CAAnB;MAIA,KAAI,CAACL,YAAL,GAAoB,IAApB;;MACA,IAAI,KAAI,CAACH,iBAAL,CAAuBS,iBAA3B,EAA8C;QAC1C,KAAI,CAACN,YAAL,GAAoB,KAAI,CAACryB,IAAL,CAAUhC,IAAV,CAAgBC,KAAD,IAAU;UAAG,OAAO,KAAI,CAACi0B,iBAAL,CAAuBS,iBAAvB,IAA4C10B,KAAK,CAAC4I,EAAzD;QAA6D,CAAzF,CAApB;;QACA,IAAI,KAAI,CAACwrB,YAAL,CAAkBO,YAAtB,EAAoC,CAEnC,CAFD,MAEO;UACH,IAAI,CAAC,KAAI,CAACV,iBAAL,CAAuBO,CAA5B,EAA+B;YAC3B,KAAI,CAACP,iBAAL,CAAuBO,CAAvB,GAA2B,EAA3B;UACH;;UACD,IAAI,CAAC,KAAI,CAACP,iBAAL,CAAuBQ,CAA5B,EAA+B;YAC3B,KAAI,CAACR,iBAAL,CAAuBQ,CAAvB,GAA2B,EAA3B;UACH;;UACD,KAAI,CAACG,QAAL,CAAc,KAAI,CAACR,YAAL,CAAkBS,eAAlB,CAAkCC,WAAhD,EAA6D,KAAI,CAACP,WAAL,CAAiBC,CAA9E,EAAiF,KAAI,CAACP,iBAAL,CAAuBO,CAAxG;;UACA,KAAI,CAACI,QAAL,CAAc,KAAI,CAACR,YAAL,CAAkBS,eAAlB,CAAkCE,WAAhD,EAA6D,KAAI,CAACR,WAAL,CAAiBE,CAA9E,EAAiF,KAAI,CAACR,iBAAL,CAAuBQ,CAAxG;QACH;MACJ;IApBgB;EAqBpB;;EAEDO,uBAAuB;IACnB,KAAKf,iBAAL,CAAuBO,CAAvB,GAA2B,EAA3B;IACA,KAAKP,iBAAL,CAAuBQ,CAAvB,GAA2B,EAA3B;IACA,KAAKP,eAAL;EACH;;EAEDU,QAAQ,CAACzT,IAAD,EAAO8T,IAAP,EAAaC,aAAb,EAA0B;IAAA;;IAC9B,IAAI,CAACA,aAAL,EAAoB;MAChBA,aAAa,GAAG,EAAhB;IACH;;IACD,KAAK,IAAI1tB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2Z,IAAI,CAACgU,KAAL,CAAW/0B,MAA/B,EAAuCoH,CAAC,EAAxC,EAA4C;MACxC,IAAI4tB,IAAI,GAAG;QACP7rB,OAAO,EAAE,UAAU/B,CADZ;QAEPoB,EAAE,EAAEpB,CAAC,GAAG,EAFD;QAGPkK,MAAM,EAAE,EAHD;QAIPb,QAAQ,EAAE;MAJH,CAAX;;MAMA,IAAI,CAACqkB,aAAa,CAACE,IAAI,CAACxsB,EAAN,CAAlB,EAA6B;QACzB,IAAIysB,OAAO,GAAG,IAAI/B,oFAAJ,EAAd;QACA+B,OAAO,CAACC,MAAR,GAAiBF,IAAI,CAACxsB,EAAtB;QACAysB,OAAO,CAAC3jB,MAAR,GAAiB,EAAjB;;QACA,IAAIlK,CAAC,IAAI,CAAT,EAAY;UACR6tB,OAAO,CAACv0B,QAAR,GAAmB,IAAnB;QACH;;QACDo0B,aAAa,CAACE,IAAI,CAACxsB,EAAN,CAAb,GAAyBysB,OAAzB;MACH;;MACD,IAAIE,EAAE,GAAG,EAAT;MACApU,IAAI,CAACgU,KAAL,CAAW3tB,CAAX,EAAcguB,MAAd,CAAqB90B,OAArB,CAA8B+0B,KAAD,IAAU;QACnCA,KAAK,CAAC/jB,MAAN,CAAahR,OAAb;UAAA,kKAAqB,WAAOkR,KAAP,EAAgB;YACjC,IAAI8jB,GAAG,GAAG;cACNnsB,OAAO,EAAEqI,KAAK,CAACrI,OAAN,CAAcosB,YADjB;cAENxnB,KAAK,EAAEyD,KAAK,CAACgkB,QAFP;cAGNhtB,EAAE,EAAEgJ,KAAK,CAACgG,KAHJ;cAINie,OAAO,EAAE;YAJH,CAAV;;YAMA,IAAI,CAACX,aAAa,CAACE,IAAI,CAACxsB,EAAN,CAAb,CAAuB8I,MAAvB,CAA8BgkB,GAAG,CAAC9sB,EAAlC,CAAL,EAA4C;cACxC,IAAIktB,QAAQ,GAAG,IAAIzC,qFAAJ,EAAf;cACAyC,QAAQ,CAACC,OAAT,GAAmBL,GAAG,CAACvnB,KAAvB;cACAonB,EAAE,CAACG,GAAG,CAAC9sB,EAAL,CAAF,GAAaktB,QAAb;YACH,CAJD,MAIO;cACHP,EAAE,CAACG,GAAG,CAAC9sB,EAAL,CAAF,GAAassB,aAAa,CAACE,IAAI,CAACxsB,EAAN,CAAb,CAAuB8I,MAAvB,CAA8BgkB,GAAG,CAAC9sB,EAAlC,CAAb;YACH;;YACD,MAAMotB,SAAS,SAASzlB,kFAAA,CAA2BqB,KAAK,CAACgG,KAAjC,EAAwC,MAAI,CAACwc,YAAL,CAAkB6B,WAA1D,CAAxB;;YACA,IAAID,SAAJ,EAAe;cACX,MAAI,CAACvC,YAAL,CAAkByC,UAAlB,CAA6BF,SAAS,CAACrkB,MAAV,CAAiBA,MAAjB,CAAwBwkB,YAArD,EAAmEvkB,KAAK,CAACgG,KAAzE,EAAgF,IAAhF,EAAsF,IAAtF,EAA4F9Y,SAA5F,CAAsGs3B,OAAO,IAAG;gBAC5G,MAAMC,UAAU,GAAG,EAAnB;;gBACA,IAAID,OAAJ,EAAa;kBACTA,OAAO,CAAC11B,OAAR,CAAgBoQ,CAAC,IAAG;oBAChBulB,UAAU,CAACz3B,IAAX,CAAgB;sBACZ2K,OAAO,EAAEuH,CAAC,CAACvH,OADC;sBAEZ4E,KAAK,EAAE2C,CAAC,CAAClI;oBAFG,CAAhB;kBAIH,CALD;gBAMH;;gBACD,IAAI,CAAC,MAAI,CAACitB,OAAV,EAAmB;kBACf,MAAI,CAACA,OAAL,GAAe,EAAf;gBACH;;gBACD,MAAI,CAACA,OAAL,CAAajkB,KAAK,CAACgG,KAAnB,IAA4Bye,UAA5B;cACH,CAdD;YAeH;;YACDjB,IAAI,CAAC1jB,MAAL,CAAY9S,IAAZ,CAAiB82B,GAAjB;UACH,CAjCD;;UAAA;YAAA;UAAA;QAAA;MAkCH,CAnCD;MAoCAR,aAAa,CAACE,IAAI,CAACxsB,EAAN,CAAb,CAAuB8I,MAAvB,GAAgC6jB,EAAhC;MACApU,IAAI,CAACgU,KAAL,CAAW3tB,CAAX,EAAcqJ,QAAd,CAAuBnQ,OAAvB,CAAgC41B,OAAD,IAAY;QACvClB,IAAI,CAACvkB,QAAL,CAAcjS,IAAd,CAAmB;UACf2K,OAAO,EAAE+sB,OAAO,CAAC/sB,OAAR,CAAgBosB,YADV;UAEfxnB,KAAK,EAAEmoB,OAAO,CAACV,QAFA;UAGfhtB,EAAE,EAAE0tB,OAAO,CAACC;QAHG,CAAnB;MAKH,CAND;MAOAtB,IAAI,CAACr2B,IAAL,CAAUw2B,IAAV;IACH;EACJ;;EAEDoB,SAAS,CAACC,KAAD,EAAM;IACX,IAAIhd,MAAM,GAAG,EAAb;IACAgd,KAAK,CAACtB,KAAN,CAAYz0B,OAAZ,CAAqB00B,IAAD,IAAS;MACzBA,IAAI,CAACI,MAAL,CAAY90B,OAAZ,CAAqB+0B,KAAD,IAAU;QAC1BA,KAAK,CAAC/jB,MAAN,CAAahR,OAAb,CAAsBkR,KAAD,IAAU;UAC3B6H,MAAM,CAAC7a,IAAP,CAAYkG,MAAM,CAAC4xB,MAAP,CAAc,EAAd,EAAkB9kB,KAAlB,CAAZ;QACH,CAFD;MAGH,CAJD;IAKH,CAND;IAOA,OAAO6H,MAAP;EACH;;EACDkd,WAAW,CAACF,KAAD,EAAM;IACb,IAAIhd,MAAM,GAAG,EAAb;IACAgd,KAAK,CAACtB,KAAN,CAAYz0B,OAAZ,CAAqB00B,IAAD,IAAS;MACzBA,IAAI,CAACvkB,QAAL,CAAcnQ,OAAd,CAAuB41B,OAAD,IAAY;QAC9B7c,MAAM,CAAC7a,IAAP,CAAYkG,MAAM,CAAC4xB,MAAP,CAAc,EAAd,EAAkBJ,OAAlB,CAAZ;MACH,CAFD;IAGH,CAJD;IAKA,OAAO7c,MAAP;EACH;;AA5KkC;;;;;;;;UAGlCtY,gDAAKA;;;UAULC,iDAAMA;;;UAIND,gDAAKA;;;UAULC,iDAAMA;;;AA3BEoyB,0BAA0B,sDAJtCr1B,wDAAS,CAAC;EACP4C,QAAQ,EAAE,oBADH;EAEPC,UAAAA,0EAAAA;AAFO,CAAD,CAI6B,GAA1BwyB,0BAA0B,CAA1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTyC;AACiG;AAElH;AACW;AAC8C;AACM;AACb;AACrB;AACN;AACE;AACJ;AACa;AACgB;AACpB;AACE;AACR;AAC4B;AACxB;AAC6B;AAC3C;AAC0B;IAQhE,gBAAgB,SAAhB,gBAAiB,SAAQ,4DAAc;IA+ChD,YAAoB,WAAwB,EAAE,OAAwB,EAAE,KAAwB,EAC/C,IAAI;QACjD,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAFH,gBAAW,GAAX,WAAW,CAAa;QACK,SAAI,GAAJ,IAAI;QA1CrD,aAAQ,GAAS,IAAI,IAAI,EAAE,CAAC;QAE5B,YAAO,GAAiB,IAAI,0CAAO,EAAE,CAAC;QAEtC,WAAM,GAAe,EAAE,CAAC;QAExB,oBAAe,GAAG,IAAI,CAAC;QAkBb,sBAAiB,GAAG,IAAI,wDAAY,EAAO;QAcrD,mBAAc,GAAG,EAAE,CAAC;QAOhB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QAE9C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnC,iCAAiC;QACjC,+BAA+B;QAC/B,kCAAkC;IACtC,CAAC;QAvCG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,GAAG,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAC9B,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;YAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACtD;IACL,CAAC;IAED,YAAY;IAEZ,oBAAoB;IACpB,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;IAC3B,CAAC;IAsBD,WAAW;QACP,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAChC,MAAM,IAAI,GAAQ;oBACd,KAAK,EAAE,WAAW;oBAClB,KAAK,EAAE,IAAI,IAAI,EAAE;oBACjB,GAAG,EAAE,IAAI,IAAI,EAAE;oBACf,IAAI,EAAE,CAAC;iBACV,CAAC;gBACF,IAAI,IAAI,CAAC,aAAa,EAAE;oBACpB,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,IAAI,EAAE;wBACxC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;qBACnD;oBACD,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;wBACjC,IAAI,CAAC,SAAS,GAAG;4BACb,WAAW,EAAE,IAAI;4BACjB,QAAQ,EAAE,IAAI;yBACjB,CAAC;qBACL;oBACD,IAAI,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE;wBACpC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;qBACtD;oBACD,IAAI,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE;wBACpC,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;qBAChE;oBACD,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;wBAClC,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;qBAC5D;oBACD,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE;wBACrC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;qBACxD;iBACJ;gBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,uBAAuB,EAAE,CAAC;SAClC;IACL,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,sBAAsB;QAClB,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,uBAAuB;QACnB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,UAAU,CAAC,GAAG,EAAE;YACZ,MAAM,IAAI,GAAG;gBACT,aAAa,EAAE;oBACX,IAAI,EAAE,EAAE;oBACR,MAAM,EAAE,EAAE;oBACV,KAAK,EAAE,EAAE,CAAE,sDAAsD;iBACpE;gBACD,WAAW,EAAE,UAAU;gBACvB,aAAa,EAAE,EAAE;gBACjB,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,IAAI;gBAClB,YAAY,EAAE,IAAI;gBAClB,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;gBACxC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC5C,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;gBACvC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;gBACzC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;gBACzC,MAAM,EAAE,IAAI,CAAC,MAAM;aACtB,CAAC;YACF,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACzB,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;oBAClC,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE;wBACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BACnE,IAAI,CAAC,GAAG,CAAC,EAAE;gCACP,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,GAAG,CAAC;6BAClC;4BACD,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yBACvE;qBACJ;oBACD,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,EAAE;wBACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BACrE,IAAI,CAAC,GAAG,CAAC,EAAE;gCACP,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,GAAG,CAAC;6BACpC;4BACD,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;yBAC3E;qBACJ;oBACD,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,EAAE;wBACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BACpE,IAAI,CAAC,GAAG,CAAC,EAAE;gCACP,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,GAAG,CAAC;6BACnC;4BACD,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;yBACzE;qBACJ;iBACJ;gBACD,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,IAAI,EAAE;oBACxC,IAAI,CAAC,WAAW,GAAG,0EAAY,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;iBACnE;aACJ;YACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,EAAE,CAAC,CAAC,CAAC;IACV,CAAC;IAED,OAAO;QACH,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,GAAG,6EAA2B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACjF,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,MAAM,OAAO,GAAG,IAAI,wEAAc,EAAE,CAAC;gBACrC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;oBAC7C,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wBACtC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;4BAC5B,MAAM,IAAI,GAAG,IAAI,sEAAa,EAAE,CAAC;4BACjC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;4BACrB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;4BAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;4BACxC,gFAA4B,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;yBAC/C;oBACL,CAAC,CAAC,CAAC;iBACN;gBACD,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;oBACzF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC/B,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAED,gBAAgB,CAAC,UAAyB;QACtC,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC7C,WAAW,CAAC,QAAQ,EAAE,CAAC;QACvB,WAAW,CAAC,QAAQ,CAAC;YACjB,EAAE,EAAE,oDAAS,EAAE;YACf,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,UAAU,CAAC,QAAQ;YAC1B,GAAG,EAAE,UAAU,CAAC,MAAM;YACtB,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,IAAI,EAAE,EAAE;SACX,CAAC,CAAC;IACP,CAAC;IAED,gBAAgB,CAAC,SAAwB;QACrC,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,YAAY,CAAC,MAAkB;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,SAAS,CAAC,OAAoB;IAC9B,CAAC;IAED,YAAY,CAAC,UAA0B;QACnC,IAAI,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE;YACpC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;SACvG;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;YAClC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;SACnG;QACD,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,YAAY,CAAC,UAA0B;QACnC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IACxE,CAAC;;AAxOM,qBAAI,GAAQ,WAAY;AACxB,wBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,kGAA2B,CAAC,CAAC,CAAC;;;;;4CA6CpE,kDAAM,SAAC,mFAA4B;;;gCAlCvC,qDAAS,SAAC,UAAU;0BAKpB,iDAAK;gCAWL,kDAAM;;AA9BE,gBAAgB;IAN5B,yDAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,eAAe,EAAE,0EAA8B;QAE/C,yEAAqC;;KACxC,CAAC;GACW,gBAAgB;AAAA;AA4OtB,MAAM,cAAe,SAAQ,oEAAS;IAOzC,MAAM,CAAU,eAAe,CAAC,IAAI;QAChC,IAAI,cAAc,CAAC,YAAY,IAAI,cAAc,CAAC,YAAY,CAAC,WAAW,IAAI,WAAW,EAAE;YACvF,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,aAAa,EAAE;gBAC5C,cAAc,CAAC,YAAY,CAAC,aAAa,GAAG;oBACxC,IAAI,EAAE,IAAI;oBACV,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE,IAAI;iBACd,CAAC;aACL;YACD,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;SACnF;QACD,cAAc,CAAC,mBAAmB,EAAE,CAAC;IACzC,CAAC;IACD,MAAM,CAAU,iBAAiB,CAAC,IAAI;QAClC,cAAc,CAAC,mBAAmB,EAAE,CAAC;IACzC,CAAC;IACD,MAAM,CAAC,SAAS;QACZ,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,WAAW;YACf,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC;YAC3C,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,0EAAY;aAC3B;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,mBAAmB;YAC1B,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,cAAc,EAAE,cAAc,CAAC,oBAAoB;gBACnD,eAAe,EAAE,MAAM;gBACvB,iBAAiB,EAAE,mBAAmB;aACzC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,mBAAmB;YAC1B,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,cAAc,EAAE,cAAc,CAAC,mBAAmB;gBAClD,eAAe,EAAE,MAAM;gBACvB,iBAAiB,EAAE,mBAAmB;aACzC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,iBAAiB;YACxB,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,cAAc,EAAE,cAAc,CAAC,mBAAmB;gBAClD,eAAe,EAAE,MAAM;gBACvB,iBAAiB,EAAE,mBAAmB;aACzC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,kBAAkB;YACtB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,oBAAoB;YAC3B,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,cAAc,EAAE,cAAc,CAAC,sBAAsB;gBACrD,eAAe,EAAE,MAAM;gBACvB,iBAAiB,EAAE,mBAAmB;aACzC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,eAAe;aAC3B;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,gBAAgB;aAC5B;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,oGAAsB,CAAC;SACvD,CAAC,CAAC;QAEH,IAAI,aAAa,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAC,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QAErM,iFAAe,CAAC;YACZ,EAAE,EAAE,MAAM;YACV,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,eAAe;YACtB,UAAU,EAAE,cAAc,CAAC,gBAAgB;YAC3C,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,aAAa;gBAC1B,iBAAiB,EAAE,OAAO;gBAC1B,eAAe,EAAE,OAAO;aAC3B;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,iBAAiB;YACxB,UAAU,EAAE,cAAc,CAAC,gBAAgB;YAC3C,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,aAAa;gBAC1B,iBAAiB,EAAE,OAAO;gBAC1B,eAAe,EAAC,OAAO;aAC1B;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,OAAO;YACX,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,gBAAgB;YACvB,UAAU,EAAE,cAAc,CAAC,gBAAgB;YAC3C,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,aAAa;gBAC1B,iBAAiB,EAAE,OAAO;gBAC1B,eAAe,EAAE,OAAO;aAC3B;SACJ,CAAC,CAAC;IACP,CAAC;IACO,MAAM,CAAC,mBAAmB;QAC9B,cAAc,CAAC,eAAe,GAAG,IAAI,CAAC;QACtC,gDAAgD;QAChD,+CAA+C;QAC/C,kDAAkD;QAClD,IAAI,cAAc,CAAC,cAAc,IAAI,cAAc,CAAC,YAAY,EAAE;YAC9D,MAAM,EAAE,GAAG,6EAA2B,CAAC,cAAc,CAAC,cAAc,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;YACnG,IAAI,EAAE,EAAE;gBACJ,wEAAsB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;oBACvC,cAAc,CAAC,eAAe,GAAG,MAAM,CAAC;oBACxC,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;wBACvF,OAAO,OAAO,CAAC,IAAI,KAAK,sCAAsC,CAAC;oBACnE,CAAC,CAAC,CAAC;oBACH,cAAc,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;wBACtF,OAAO,OAAO,CAAC,IAAI,KAAK,sCAAsC,CAAC;oBACnE,CAAC,CAAC,CAAC;oBACH,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;wBACzF,OAAO,OAAO,CAAC,IAAI,KAAK,sCAAsC,CAAC;oBACnE,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;;AA9Le,mBAAI,GAAG,CAAC,sCAAsC,CAAC;AAChD,+BAAgB,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;AACnE,mCAAoB,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;AACvE,kCAAmB,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;AACtE,qCAAsB,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9QtC;AACa;AAC5B;AAC6D;AACc;AAC3B;AACrB;AACE;AACmB;AAClB;AACQ;AACY;AACtB;AAChB;AAC0B;IAQhE,cAAc,SAAd,cAAe,SAAQ,4DAAc;IAG9C,kBAAkB;IAElB,CAAC;IACD,MAAM;QACF,kFAA0B,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;;AAPM,mBAAI,GAAQ,gBAAiB;AAC7B,sBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,0GAAmC,CAAC,CAAC,CAAC;AAFxE,cAAc;IAN1B,yDAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;QAC9B,uEAAqC;QAErC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,cAAc;AAAA;AAWpB,MAAM,YAAa,SAAQ,oEAAS;IAGvC,MAAM,CAAU,iBAAiB,CAAC,MAAM;QACpC,IAAI,MAAM,EAAE;YACR,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;gBACjB,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;aACvB;YACD,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAChD;IACL,CAAC;IACD,MAAM,CAAC,SAAS;QACZ,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,SAAS;YACb,OAAO,EAAE,iBAAiB;YAC1B,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,gBAAgB,CAAC;YAChD,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,MAAM;YACV,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE;gBACN,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,uEAAW;aAC1B;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,YAAY;YACnB,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,QAAQ,EAAE;gBACN,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,+EAAe;aAC9B;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,OAAO;YACX,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,oHAAoB,CAAC;YAClD,IAAI,EAAE,sEAAU;YAChB,KAAK,EAAE,SAAS;YAChB,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,QAAQ,EAAE;gBACN,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,oHAAoB,CAAC;YAClD,IAAI,EAAE,sEAAU;YAChB,KAAK,EAAE,UAAU;YACjB,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,QAAQ,EAAE;gBACN,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;IACP,CAAC;;AAvEe,iBAAI,GAAG,CAAC,sCAAsC,CAAC;AAChD,uBAAU,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5BzD;AACsC;AACkB;AACrB;AACgB;AACZ;AAE9D,MAAM,aAAa,GAAG,SAAS,CAAC;IAMnB,qBAAqB,SAArB,qBAAqB;IA8DjC,YACS,KAAwB,EACxB,WAAwB,EACxB,WAAqC;QAFrC,UAAK,GAAL,KAAK,CAAmB;QACxB,gBAAW,GAAX,WAAW,CAAa;QACxB,gBAAW,GAAX,WAAW,CAA0B;QAL9C,iBAAY,GAAY,KAAK,CAAC;IAM3B,CAAC;QA/DA,OAAO;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACd,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;IACrB,CAAC;QAIG,SAAS;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QAChB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;IACvB,CAAC;QAIG,cAAc;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QACrB,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;IAC5B,CAAC;QAGG,OAAO;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACd,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;IACrB,CAAC;IAiCD,QAAQ;QACP,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,WAAW;QACV,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC3B,CAAC;IACD,iBAAiB;QAChB,IAAI,CAAC,cAAc,GAAG;YACrB,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;SACT,CAAC;IACH,CAAC;IACD,WAAW,CAAC,OAAsB;QACjC,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE;YAC5B,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;gBACpD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC/B,OAAO;aACP;YACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,OAAO;SACP;QACD,IACC,OAAO,CAAC,YAAY,CAAC;YACrB,OAAO,CAAC,YAAY,CAAC;YACrB,OAAO,CAAC,oBAAoB,CAAC;YAC7B,OAAO,CAAC,aAAa,CAAC;YACtB,OAAO,CAAC,aAAa,CAAC;YACtB,OAAO,CAAC,oBAAoB,CAAC;YAC7B,OAAO,CAAC,aAAa,CAAC;YACtB,OAAO,CAAC,qBAAqB,CAAC,EAC7B;YACD,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,OAAO;SACP;QACD,IACC,OAAO,CAAC,gBAAgB,CAAC;YACzB,OAAO,CAAC,QAAQ,CAAC;YACjB,OAAO,CAAC,QAAQ,CAAC;YACjB,OAAO,CAAC,YAAY,CAAC;YACrB,OAAO,CAAC,cAAc,CAAC;YACvB,OAAO,CAAC,aAAa,CAAC;YACtB,OAAO,CAAC,YAAY,CAAC;YACrB,OAAO,CAAC,cAAc,CAAC;YACvB,OAAO,CAAC,aAAa,CAAC;YACtB,OAAO,CAAC,gBAAgB,CAAC;YACzB,OAAO,CAAC,gBAAgB,CAAC;YACzB,OAAO,CAAC,WAAW,CAAC;YACpB,OAAO,CAAC,eAAe,CAAC;YACxB,OAAO,CAAC,eAAe,CAAC;YACxB,OAAO,CAAC,WAAW,CAAC,EACnB;YACD,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC3B;IACF,CAAC;IAEO,uBAAuB;QAC9B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAE3B,kEAAkE;QAClE,UAAU,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;IACJ,CAAC;IACD,aAAa;QACZ,IACC,CAAC,IAAI,CAAC,UAAU;YAChB,CAAC,IAAI,CAAC,mBAAmB;YACzB,CAAC,IAAI,CAAC,kBAAkB;YACxB,CAAC,IAAI,CAAC,WAAW,EAChB;YACD,IAAI,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YAC9C,OAAO;SACP;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,MAAM,OAAO,GAAG,8EAA0B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE/D,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;YACpE,OAAO,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAC7C;QACD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;YAClE,MAAM,cAAc,GAAG;gBACtB,KAAK,EAAE,IAAI,CAAC,kBAAkB;gBAC9B,SAAS,EAAE,IAAI,CAAC,WAAW;gBAC3B,KAAK,EAAE,IAAI,CAAC,kBAAkB;aAC9B,CAAC;YACF,OAAO,CAAC,YAAY,GAAG,CAAC,cAAc,CAAC,CAAC;SACxC;QACD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,WAAW,EAAE;YAChD,OAAO,CAAC,WAAW,GAAG;gBACrB,KAAK,EAAE,IAAI,CAAC,kBAAkB;gBAC9B,aAAa,EAAE,IAAI,CAAC,WAAW;aAC/B,CAAC;SACF;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACtB,OAAO,OAAO,CAAC,WAAW,CAAC;SAC3B;QACD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QACtB,IACC,IAAI,CAAC,mBAAmB;YACxB,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,kBAAkB;YACvB,IAAI,CAAC,WAAW,EACf;YACD,IAAI,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,WAAW;iBACd,0BAA0B,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;iBACpD,SAAS,CAAC;gBACV,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;oBACd,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC5B,IAAI,MAAM,CAAC;wBACX,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC;4BACvC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAChC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EACZ,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,kBAAkB,CACtB,CAAC;4BACJ,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAE3B,IAAI,IAAI,CAAC,WAAW,EAAE;4BACrB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;yBAC9B;6BAAM;4BACN,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC;yBAC5C;qBACD;oBACD,IAAI,CAAC,UAAU,EAAE,CAAC;oBAClB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;oBACrB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC5B,CAAC;gBACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;oBAChB,kFAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC3D,CAAC;aACD,CAAC,CAAC;YACJ,OAAO;SACP;IACF,CAAC;IACD,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW;QAC/C,kEAAkE;QAClE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAEtD,sEAAsE;QACtE,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAE9C,OAAO,UAAU,CAAC;IACnB,CAAC;IACD,gBAAgB,CAAC,IAAI;QACpB,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC1E,oDAAoD;QACpD,IAAI,SAAS,GAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAElD,mCAAmC;QACnC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,sCAAsC;YACtC,4CAA4C;YAC5C,mEAAmE;YACnE,MAAM;YACN,iCAAiC;YACjC,IAAI;YACJ,qCAAqC;YACrC,+CAA+C;YAC/C,gCAAgC;YAChC,IAAI;YACJ,oCAAoC;YACpC,8CAA8C;YAC9C,+BAA+B;YAC/B,IAAI;YACJ,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAElD,uDAAuD;QACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACrD,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACjC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACtE,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;YACH,MAAM,UAAU,GAAG;gBAClB,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,WAAW;aACjB,CAAC;YACF,OAAO,UAAU,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;IACD,8BAA8B,CAAC,IAAI;QAClC,MAAM,SAAS,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;QAEtE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACtD,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;IACD,gBAAgB,CAAC,IAAI,EAAE,SAAS;QAC/B,MAAM,WAAW,GAAG,EAAE,CAAC;QAEvB,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YAEnC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;gBAC7B,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACjC;iBAAM;gBACN,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnC;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;IACpB,CAAC;IACD,UAAU;QACT,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,IAAI,CAAC,YAAY,EAAE;gBACtB,IAAI,CAAC,WAAW;qBACd,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;qBAC9B,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE;oBAC1B,IAAI,WAAW,GAAG,EAAE,CAAC;oBACrB,IAAI,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC1D,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;4BACrC,WAAW,CAAC,IAAI,CAAC,yEAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;wBAC7C,CAAC,CAAC,CAAC;qBACH;oBACD,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC1C,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC;qBAClC;oBACD,IAAI,CAAC,SAAS,GAAG;wBAChB,GAAG,IAAI,CAAC,SAAS;wBACjB,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;qBAC9D,CAAC;oBACF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC5B,CAAC,CAAC,CAAC;gBACJ,OAAO;aACP;YACD,IAAI,CAAC,SAAS,GAAG;gBAChB,GAAG,IAAI,CAAC,SAAS;gBACjB,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;aAC9D,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC3B;IACF,CAAC;IACD,sBAAsB,CAAC,UAAiB;QACvC,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACtD,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAC3C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CACjE,CAAC;gBACF,MAAM,WAAW,GAAG;oBACnB,GAAG,MAAM;oBACT,eAAe,EAAE,oBAAoB;iBACrC,CAAC;gBACF,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;oBAC9B,WAAW,CAAC,WAAW;wBACtB,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBACzD,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC;oBACzB,WAAW,CAAC,OAAO,GAAG,GAAG,CAAC;iBAC1B;gBACD,OAAO,WAAW,CAAC;YACpB,CAAC,CAAC,CAAC;YACH,OAAO,aAAa,CAAC;SACrB;QACD,MAAM,eAAe,GAAG,EAAE,CAAC;QAC3B,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC7C,eAAe,CAAC,IAAI,CACnB,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CACvD,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO;YACN;gBACC,GAAG,UAAU,CAAC,CAAC,CAAC;gBAChB,eAAe,EAAE,eAAe;aAChC;SACD,CAAC;IACH,CAAC;IAED,mBAAmB;QAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACpB,kFAAwB,CAAC,4BAA4B,EAAE,SAAS,CAAC,CAAC;YAClE,OAAO;SACP;QACD,IAAI,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SAC3C;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACxB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SAC1C;QACD,IAAI,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SAC3C;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACxB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SAC1C;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;SAC/C;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;SAC/C;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;SAC9C;QACD,IAAI,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;SAClD;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,MAAM,KAAK,GAAG,yEAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;SAC1C;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;SAC9C;QACD,IAAI,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;SAClD;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,MAAM,KAAK,GAAG,yEAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;SAC1C;QACD,IAAI,IAAI,CAAC,cAAc,EAAE;YACxB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;SAC5D;QACD,IAAI,IAAI,CAAC,cAAc,EAAE;YACxB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;SAC5D;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,KAAK,GAAG,yEAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACzC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACpB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;SACjD;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAC3C,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBACvC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;gBACrC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;aACrC;YACD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBACxC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;gBACtC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;aACtC;SACD;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IACD,oBAAoB,CAAC,WAAW;QAC/B,MAAM,UAAU,GAAG;YAClB,SAAS;YACT,UAAU;YACV,OAAO;YACP,OAAO;YACP,KAAK;YACL,MAAM;YACN,MAAM;YACN,QAAQ;YACR,WAAW;YACX,SAAS;YACT,UAAU;YACV,UAAU;SACV,CAAC;QAEF,0DAA0D;QAC1D,IAAI,WAAW,IAAI,CAAC,IAAI,WAAW,IAAI,EAAE,EAAE;YAC1C,uCAAuC;YACvC,OAAO,UAAU,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,6BAA6B;SACjE;aAAM;YACN,OAAO,sBAAsB,CAAC;SAC9B;IACF,CAAC;;;;;;;;sBAhcA,gDAAK;wBASL,gDAAK;6BASL,gDAAK;sBAQL,gDAAK;wBAOL,gDAAK;2BACL,gDAAK;6BACL,gDAAK;yBACL,gDAAK;qBACL,gDAAK;qBACL,gDAAK;yBACL,gDAAK;2BACL,gDAAK;0BACL,gDAAK;yBACL,gDAAK;2BACL,gDAAK;0BACL,gDAAK;6BACL,gDAAK;6BACL,gDAAK;wBACL,gDAAK;iCACL,gDAAK;0BACL,gDAAK;iCACL,gDAAK;0BACL,gDAAK;0BACL,gDAAK;kCACL,gDAAK;yBACL,gDAAK;4BACL,gDAAK;4BACL,gDAAK;4BACL,gDAAK;;AA3DM,qBAAqB;IALjC,wDAAS,CAAC;QACV,QAAQ,EAAE,eAAe;QACzB,8EAA4C;;KAE5C,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpB2C;AAK3C;AACiC;AACC;AAE7D,MAAM,wBAAwB;;IASxB,yBAAyB,SAAzB,yBAAyB;IA0BrC,YACS,SAAkD,EAC1B,SAAmC,EAC3D,KAAwB;QAFxB,cAAS,GAAT,SAAS,CAAyC;QAC1B,cAAS,GAAT,SAAS,CAA0B;QAC3D,UAAK,GAAL,KAAK,CAAmB;QA5BjC,kBAAa,GAAG;YACf,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,IAAI;YACd,+BAA+B;SAC/B,CAAC;QA0BD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IA1BD,MAAM,CAAC,UAAU,CAChB,QAAkC,EAClC,OAA0B;QAE1B,MAAM,MAAM,GAAG,IAAI,qEAAe,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QACvB,MAAM,CAAC,UAAU,GAAG,4BAA4B,CAAC;QACjD,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,MAAM,MAAM,GAAG,sFAAgC,CAC9C,yBAAyB,EACzB,MAAM,CACN,CAAC;QACF,IAAI,OAAO,EAAE;YACZ,MAAM,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;gBACpC,OAAO,CAAC,CAAC,CAAC,CAAC;YACZ,CAAC,CAAC,CAAC;SACH;IACF,CAAC;IAWD,QAAQ,KAAU,CAAC;IAEnB,aAAa,CAAC,QAAQ;QACrB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,KAAK;QACZ,gFAA0B,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;;;;2DAfC,iDAAM,SAAC,qEAAe;;;AA5BZ,yBAAyB;IALrC,wDAAS,CAAC;QACV,QAAQ,EAAE,4BAA4B;QACtC,kFAAgD;;KAEhD,CAAC;GACW,yBAAyB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClBsC;AACzB;AACA;AACc;AAIZ;AACQ;AAC0B;AACA;AACjC;AACY;AACkC;AAC7B;AACf;AACU;AACL;AACM;AACL;AACwB;AAKX;AACmB;AACpC;AACW;AACP;AACsC;AACrC;AACkC;AACP;AACvB;AACY;AACrB;AACgB;AAKG;AAC7E,MAAM,SAAS,GAAG,MAAM,CAAC;AACzB,MAAM,kBAAkB,GAAG,SAAS,CAAC;AACrC,MAAM,aAAa,GAAG,SAAS,CAAC;IAMnB,sBAAsB,SAAtB,sBAAuB,SAAQ,2DAAc;IA+EzD,YACC,KAAwB,EAChB,WAAqC,EACrC,WAAwB,EACa,IAAI;QAEjD,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAJX,gBAAW,GAAX,WAAW,CAA0B;QACrC,gBAAW,GAAX,WAAW,CAAa;QACa,SAAI,GAAJ,IAAI;QA/ElD,YAAO,GAAQ;YACd,UAAU,EAAE,IAAI;YAChB,mBAAmB,EAAE,KAAK;YAC1B,WAAW,EAAE,CAAC;YACd,OAAO,EAAE;gBACR,MAAM,EAAE;oBACP,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE;wBACP,KAAK,EAAE,SAAS;qBAChB;iBACD;aACD;YACD,MAAM,EAAE;gBACP,CAAC,EAAE;oBACF,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE;wBACN,OAAO,EAAE,IAAI;wBACb,IAAI,EAAE,EAAE;wBACR,KAAK,EAAE,OAAO;wBACd,IAAI,EAAE;4BACL,MAAM,EAAE,GAAG;4BACX,IAAI,EAAE,EAAE;yBACR;qBACD;oBACD,KAAK,EAAE;wBACN,KAAK,EAAE,kBAAkB;wBACzB,IAAI,EAAE;4BACL,MAAM,EAAE,GAAG;yBACX;qBACD;oBACD,IAAI,EAAE;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,aAAa;wBACpB,UAAU,EAAE,KAAK;qBACjB;iBACD;gBACD,CAAC,EAAE;oBACF,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE;wBACN,OAAO,EAAE,IAAI;wBACb,IAAI,EAAE,EAAE;wBACR,KAAK,EAAE,OAAO;wBACd,IAAI,EAAE;4BACL,MAAM,EAAE,GAAG;4BACX,IAAI,EAAE,EAAE;yBACR;qBACD;oBACD,KAAK,EAAE;wBACN,KAAK,EAAE,kBAAkB;qBACzB;oBACD,IAAI,EAAE;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,aAAa;wBACpB,UAAU,EAAE,KAAK;qBACjB;iBACD;aACD;SACD,CAAC;QACF,cAAS,GAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC9C,YAAO,GAAY,KAAK,CAAC;QACzB,mBAAc,GAAG;YAChB,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;SACT,CAAC;QACF,UAAK,GAAG,KAAK,CAAC;QAGd,aAAQ,GAAG,GAAG,CAAC;QAQd,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,YAAY,CAAC,IAAI,CACrB,IAAI,sEAAe,CAAC,cAAc,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAChE,CAAC;IACH,CAAC;IAED,QAAQ;QACP,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,qEAAmB,IAAI,KAAK,CAAC;QAC1C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,sFAAoC,CAAC,CAAC,GAAG,EAAE,EAAE;YACxE,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC/D,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAE3B,UAAU,CAAC,GAAG,EAAE;gBACf,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;gBACpB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC5B,CAAC,EAAE,GAAG,CAAC;QACR,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,kBAAkB;QACjB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,qCAAqC;QACrC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,8FAAwC,CACzE,CAAC,KAAK,EAAE,EAAE;YACT,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC5B,CAAC,CACD,CAAC;QACF,IAAI,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,aAAa,EAAE,CAAC;SACrB;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC5B,CAAC;IACD,cAAc;QACb,IAAI,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,aAAa,EAAE,CAAC;SACrB;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC5B,CAAC;QAGG,UAAU;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;IACtC,CAAC;IACD,IAAI,UAAU,CAAC,GAAW;QACzB,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,GAAG,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAGG,eAAe;QAClB,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;IAC3C,CAAC;IACD,IAAI,eAAe,CAAC,GAAY;QAC/B,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,GAAG,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAGG,aAAa;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;IACzC,CAAC;IACD,IAAI,aAAa,CAAC,GAAW;QAC5B,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,GAAG,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAGG,YAAY;QACf,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;IACxC,CAAC;IACD,IAAI,YAAY,CAAC,GAAW;QAC3B,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,GAAG,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAGG,cAAc;QACjB,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;IAC1C,CAAC;IACD,IAAI,cAAc,CAAC,GAAW;QAC7B,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,GAAG,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAGG,YAAY;QACf,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;IACxC,CAAC;IACD,IAAI,YAAY,CAAC,GAAmB;QACnC,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,GAAG,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAGG,SAAS;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;IACrC,CAAC;IAED,IAAI,SAAS,CAAC,GAAW;QACxB,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,GAAG,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAGG,YAAY;QACf,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;IACxC,CAAC;IAED,IAAI,YAAY,CAAC,GAAW;QAC3B,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAEG,WAAW;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;IACvC,CAAC;IACD,IAAI,WAAW,CAAC,GAAW;QAC1B,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAGG,MAAM;QACT,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;IAClC,CAAC;IACD,IAAI,MAAM,CAAC,GAAW;QACrB,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,GAAG,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAGG,UAAU;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;IACtC,CAAC;IACD,IAAI,UAAU,CAAC,GAAY;QAC1B,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,GAAG,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAGG,YAAY;QACf,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;IACxC,CAAC;IACD,IAAI,YAAY,CAAC,GAAY;QAC5B,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,GAAG,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAEG,aAAa;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;IACzC,CAAC;IACD,IAAI,aAAa,CAAC,GAAY;QAC7B,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,GAAG,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAEG,aAAa;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;IACzC,CAAC;IACD,IAAI,aAAa,CAAC,GAAY;QAC7B,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,GAAG,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;IACvC,CAAC;IACD,IAAI,WAAW,CAAC,GAAW;QAC1B,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAEG,cAAc;QACjB,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;IAC1C,CAAC;IACD,IAAI,cAAc,CAAC,GAAW;QAC7B,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,GAAG,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAGG,MAAM;QACT,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;IAClC,CAAC;IACD,IAAI,MAAM,CAAC,GAAW;QACrB,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,GAAG,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAGG,UAAU;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;IACtC,CAAC;IACD,IAAI,UAAU,CAAC,GAAY;QAC1B,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,GAAG,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAGG,YAAY;QACf,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;IACxC,CAAC;IACD,IAAI,YAAY,CAAC,GAAY;QAC5B,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,GAAG,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAEG,WAAW;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;IACvC,CAAC;IACD,IAAI,WAAW,CAAC,GAAW;QAC1B,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAGG,cAAc;QACjB,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;IAC1C,CAAC;IACD,IAAI,cAAc,CAAC,GAAW;QAC7B,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,GAAG,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAEG,SAAS;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;IACrC,CAAC;IACD,IAAI,SAAS,CAAC,GAAW;QACxB,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,GAAG,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAEG,mBAAmB;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC;IAC/C,CAAC;IACD,IAAI,mBAAmB,CAAC,GAAW;QAClC,IAAI,CAAC,aAAa,CAAC,mBAAmB,GAAG,GAAG,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAEG,kBAAkB;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC;IAC9C,CAAC;IACD,IAAI,kBAAkB,CAAC,GAAW;QACjC,IAAI,CAAC,aAAa,CAAC,kBAAkB,GAAG,GAAG,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAEG,WAAW;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;IACvC,CAAC;IACD,IAAI,WAAW,CAAC,GAAW;QAC1B,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAEG,kBAAkB;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC;IAC9C,CAAC;IACD,IAAI,kBAAkB,CAAC,GAAW;QACjC,IAAI,CAAC,aAAa,CAAC,kBAAkB,GAAG,GAAG,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;QAGG,WAAW;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;IACvC,CAAC;IACD,IAAI,WAAW,CAAC,GAAW;QAC1B,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IACD,aAAa;QACZ,IACC,CAAC,IAAI,CAAC,YAAY;YAClB,CAAC,IAAI,CAAC,mBAAmB;YACzB,CAAC,IAAI,CAAC,kBAAkB;YACxB,CAAC,IAAI,CAAC,WAAW,EAChB;YACD,IAAI,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YAC9C,OAAO;SACP;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,MAAM,OAAO,GAAG,+EAA0B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/D,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;YACpE,OAAO,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAC7C;QACD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;YAClE,MAAM,cAAc,GAAG;gBACtB,KAAK,EAAE,IAAI,CAAC,kBAAkB;gBAC9B,SAAS,EAAE,IAAI,CAAC,WAAW;gBAC3B,KAAK,EAAE,IAAI,CAAC,kBAAkB;aAC9B,CAAC;YACF,OAAO,CAAC,YAAY,GAAG,CAAC,cAAc,CAAC,CAAC;SACxC;QACD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,WAAW,EAAE;YAChD,OAAO,CAAC,WAAW,GAAG;gBACrB,KAAK,EAAE,IAAI,CAAC,kBAAkB;gBAC9B,aAAa,EAAE,IAAI,CAAC,WAAW;aAC/B,CAAC;SACF;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACtB,OAAO,OAAO,CAAC,WAAW,CAAC;SAC3B;QACD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QACtB,IACC,IAAI,CAAC,mBAAmB;YACxB,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,kBAAkB;YACvB,IAAI,CAAC,WAAW,EACf;YACD,IAAI,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,WAAW;iBACd,0BAA0B,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC;iBACtD,SAAS,CAAC;gBACV,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;oBACd,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC5B,IAAI,MAAM,CAAC;wBACX,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC;4BACvC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAChC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EACZ,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,kBAAkB,CACtB,CAAC;4BACJ,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAE3B,IAAI,IAAI,CAAC,WAAW,EAAE;4BACrB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;yBAC9B;6BAAM;4BACN,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC;yBAC5C;qBACD;oBACD,IAAI,CAAC,UAAU,EAAE,CAAC;oBAClB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;oBACrB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC5B,CAAC;gBACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;oBAChB,mFAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC3D,CAAC;aACD,CAAC,CAAC;YACJ,OAAO;SACP;IACF,CAAC;IACD,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW;QAC/C,kEAAkE;QAClE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAEtD,sEAAsE;QACtE,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAE9C,OAAO,UAAU,CAAC;IACnB,CAAC;IACD,gBAAgB,CAAC,IAAI;QACpB,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC1E,oDAAoD;QACpD,IAAI,SAAS,GAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAElD,mCAAmC;QACnC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,sCAAsC;YACtC,4CAA4C;YAC5C,mEAAmE;YACnE,MAAM;YACN,iCAAiC;YACjC,IAAI;YACJ,qCAAqC;YACrC,+CAA+C;YAC/C,gCAAgC;YAChC,IAAI;YACJ,oCAAoC;YACpC,8CAA8C;YAC9C,+BAA+B;YAC/B,IAAI;YACJ,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAElD,uDAAuD;QACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACrD,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACjC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACtE,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;YACH,MAAM,UAAU,GAAG;gBAClB,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,WAAW;aACjB,CAAC;YACF,OAAO,UAAU,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;IACD,8BAA8B,CAAC,IAAI;QAClC,MAAM,SAAS,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;QAEtE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACtD,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;IACD,gBAAgB,CAAC,IAAI,EAAE,SAAS;QAC/B,MAAM,WAAW,GAAG,EAAE,CAAC;QAEvB,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YAEnC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;gBAC7B,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACjC;iBAAM;gBACN,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnC;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;IACpB,CAAC;IACD,UAAU;QACT,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,IAAI,CAAC,YAAY,EAAE;gBACtB,IAAI,CAAC,WAAW;qBACd,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;qBAC9B,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE;oBAC1B,IAAI,WAAW,GAAG,EAAE,CAAC;oBACrB,IAAI,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC1D,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;4BACrC,WAAW,CAAC,IAAI,CAAC,0EAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;wBAC7C,CAAC,CAAC,CAAC;qBACH;oBACD,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC1C,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC;qBAClC;oBACD,IAAI,CAAC,SAAS,GAAG;wBAChB,GAAG,IAAI,CAAC,SAAS;wBACjB,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;qBAC9D,CAAC;oBACF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC5B,CAAC,CAAC,CAAC;gBACJ,OAAO;aACP;YACD,IAAI,CAAC,SAAS,GAAG;gBAChB,GAAG,IAAI,CAAC,SAAS;gBACjB,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;aAC9D,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC3B;IACF,CAAC;IACD,sBAAsB,CAAC,UAAiB;QACvC,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACtD,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAC3C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CACjE,CAAC;gBACF,MAAM,WAAW,GAAG;oBACnB,GAAG,MAAM;oBACT,eAAe,EAAE,oBAAoB;iBACrC,CAAC;gBACF,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;oBAC9B,WAAW,CAAC,WAAW;wBACtB,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBACzD,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC;oBACzB,WAAW,CAAC,OAAO,GAAG,GAAG,CAAC;iBAC1B;gBACD,OAAO,WAAW,CAAC;YACpB,CAAC,CAAC,CAAC;YACH,OAAO,aAAa,CAAC;SACrB;QACD,MAAM,eAAe,GAAG,EAAE,CAAC;QAC3B,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;YAClB,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBAC5C,eAAe,CAAC,IAAI,CACnB,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CACvD,CAAC;YACH,CAAC,CAAC,CAAC;SACH;QACD,OAAO;YACN;gBACC,GAAG,UAAU,CAAC,CAAC,CAAC;gBAChB,eAAe,EAAE,eAAe;aAChC;SACD,CAAC;IACH,CAAC;IAED,mBAAmB;QAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACpB,mFAAwB,CAAC,4BAA4B,EAAE,SAAS,CAAC,CAAC;YAClE,OAAO;SACP;QACD,+CAA+C;QAC/C,8CAA8C;QAC9C,gDAAgD;QAChD,IAAI;QACJ,oEAAoE;QACpE,yCAAyC;QACzC,iDAAiD;QACjD,KAAK;QACL,yCAAyC;QACzC,gDAAgD;QAChD,gEAAgE;QAChE,KAAK;QACL,IAAI;QACJ,IAAI,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SAC3C;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACxB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SAC1C;QACD,IAAI,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SAC3C;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACxB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SAC1C;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;SAC/C;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;SAC/C;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;SAC9C;QACD,IAAI,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;SAClD;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,MAAM,KAAK,GAAG,0EAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;SAC1C;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;SAC9C;QACD,IAAI,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;SAClD;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,MAAM,KAAK,GAAG,0EAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;SAC1C;QACD,IAAI,IAAI,CAAC,cAAc,EAAE;YACxB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;SAC5D;QACD,IAAI,IAAI,CAAC,cAAc,EAAE;YACxB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;SAC5D;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,KAAK,GAAG,0EAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACzC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACpB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;SACjD;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAC3C,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBACvC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;gBACrC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;aACrC;YACD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBACxC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;gBACtC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;aACtC;SACD;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IACD,oBAAoB,CAAC,WAAW;QAC/B,MAAM,UAAU,GAAG;YAClB,SAAS;YACT,UAAU;YACV,OAAO;YACP,OAAO;YACP,KAAK;YACL,MAAM;YACN,MAAM;YACN,QAAQ;YACR,WAAW;YACX,SAAS;YACT,UAAU;YACV,UAAU;SACV,CAAC;QAEF,0DAA0D;QAC1D,IAAI,WAAW,IAAI,CAAC,IAAI,WAAW,IAAI,EAAE,EAAE;YAC1C,uCAAuC;YACvC,OAAO,UAAU,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,6BAA6B;SACjE;aAAM;YACN,OAAO,sBAAsB,CAAC;SAC9B;IACF,CAAC;IAED,WAAW;QACV,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAC1B,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;SACpC;IACF,CAAC;;AA/qBM,2BAAI,GAAQ,WAAY;AACxB,8BAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,kGAA2B,CAAC,CAAC,CAAC;;;;;4CAiFvE,kDAAM,SAAC,kFAA4B;;;yBA+CpC,iDAAK;8BASL,iDAAK;4BASL,iDAAK;2BASL,iDAAK;6BASL,iDAAK;2BASL,iDAAK;wBASL,iDAAK;2BAUL,iDAAK;0BASL,iDAAK;qBASL,iDAAK;yBASL,iDAAK;2BASL,iDAAK;4BAQL,iDAAK;4BAQL,iDAAK;6BAgBL,iDAAK;qBASL,iDAAK;yBASL,iDAAK;2BASL,iDAAK;0BAQL,iDAAK;6BASL,iDAAK;wBAQL,iDAAK;kCAQL,iDAAK;iCAQL,iDAAK;0BAQL,iDAAK;iCAQL,iDAAK;0BASL,iDAAK;;AAnWM,sBAAsB;IALlC,yDAAS,CAAC;QACV,QAAQ,EAAE,qBAAqB;QAC/B,iFAA+C;;KAE/C,CAAC;GACW,sBAAsB;AAAA;AAmrB5B,MAAM,oBAAqB,SAAQ,oEAAS;IAElD,MAAM,CAAU,eAAe,CAAC,IAAI;QACnC,oBAAoB,CAAC,SAAS,EAAE,CAAC;QACjC,oBAAoB,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC;IACO,MAAM,CAAC,gBAAgB,CAAC,aAAkB,EAAE,MAAW;QAC9D,IAAI,aAAa,EAAE;YAClB,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC;YAClC,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC;YACpC,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC;YACnC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,aAAa,CAAC,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChE,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;oBAC5C,oBAAoB,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACrD,CAAC,CAAC,CAAC;aACH;SACD;IACF,CAAC;IAQO,MAAM,CAAC,SAAS;QACvB,IAAI,oBAAoB,CAAC,YAAY,EAAE;YACtC,IACC,CAAC,oBAAoB,CAAC,YAAY,CAAC,aAAa,IAAI,IAAI;gBACvD,oBAAoB,CAAC,YAAY,CAAC,YAAY,IAAI,IAAI,CAAC;gBACxD,oBAAoB,CAAC,YAAY,CAAC,UAAU,IAAI,CAAC,EAChD;gBACD,oBAAoB,CAAC,WAAW;qBAC9B,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC;qBACxC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;oBACrB,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC1C,CAAC,CAAC,CAAC;aACJ;YACD,IAAI,oBAAoB,CAAC,YAAY,CAAC,aAAa,EAAE;gBACpD,oBAAoB,CAAC,gBAAgB;qBACnC,SAAS,EAAE;qBACX,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;oBACrB,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC9C,CAAC,CAAC,CAAC;gBACJ,IAAI,oBAAoB,CAAC,YAAY,CAAC,YAAY,EAAE;oBACnD,IAAI,CAAC,gBAAgB;yBACnB,aAAa,CAAC,oBAAoB,CAAC,YAAY,CAAC,YAAY,CAAC;yBAC7D,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;wBACrB,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBACxD,CAAC,CAAC,CAAC;oBACJ,oBAAoB,CAAC,WAAW;yBAC9B,aAAa,CACb,SAAS,EACT,UAAU,EACV,oBAAoB,CAAC,YAAY,CAAC,YAAY,CAC9C;yBACA,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;wBACrB,oBAAoB,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC7D,CAAC,CAAC,CAAC;oBACJ,IAAI,oBAAoB,CAAC,YAAY,CAAC,UAAU,IAAI,IAAI,EAAE;wBACzD,QAAQ,oBAAoB,CAAC,YAAY,CAAC,UAAU,EAAE;4BACrD,KAAK,oBAAoB,CAAC,YAAY;gCACrC,MAAM;4BACP,KAAK,CAAC;gCACL,MAAM;4BACP,KAAK,CAAC;gCACL,oBAAoB,CAAC,WAAW;qCAC9B,OAAO,CACP,SAAS,EACT,gCAAgC,EAChC,oBAAoB,CAAC,YAAY,CAAC,aAAa,CAC/C;qCACA,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;oCACnB,MAAM,SAAS,GAAG,EAAE,CAAC;oCACrB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wCACpB,SAAS,CAAC,IAAI,CAAC;4CACd,KAAK,EAAE,GAAG,CAAC,GAAG;4CACd,OAAO,EAAE,GAAG,CAAC,OAAO;yCACpB,CAAC,CAAC;oCACJ,CAAC,CAAC,CAAC;oCACH,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gCAC7C,CAAC,CAAC,CAAC;gCACJ,MAAM;4BACP,KAAK,CAAC;gCACL,oBAAoB,CAAC,WAAW;qCAC9B,OAAO,CACP,SAAS,EACT,sBAAsB,EACtB,oBAAoB,CAAC,YAAY,CAAC,aAAa,CAC/C;qCACA,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE;oCACxB,MAAM,MAAM,GAAG,EAAE,CAAC;oCAClB,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wCACzB,MAAM,CAAC,IAAI,CAAC;4CACX,KAAK,EAAE,GAAG,CAAC,GAAG;4CACd,OAAO,EAAE,GAAG,CAAC,OAAO;yCACpB,CAAC,CAAC;oCACJ,CAAC,CAAC,CAAC;oCACH,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gCAC1C,CAAC,CAAC,CAAC;gCACJ,MAAM;yBACP;qBACD;yBAAM;wBACN,oBAAoB,CAAC,WAAW;6BAC9B,OAAO,CACP,SAAS,EACT,gCAAgC,EAChC,oBAAoB,CAAC,YAAY,CAAC,aAAa,CAC/C;6BACA,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;4BACnB,IAAI,MAAM,GAAG,EAAE,CAAC;4BAChB,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gCAC5B,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CACrB,CAAC,GAAG,EAAE,EAAE,CACP,GAAG,CAAC,GAAG,IAAI,oBAAoB,CAAC,YAAY,CAAC,YAAY,CAC1D,CAAC;gCACF,IAAI,MAAM,EAAE;oCACX,oBAAoB,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC;oCACjD,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wCACpB,MAAM,CAAC,IAAI,CAAC;4CACX,KAAK,EAAE,GAAG,CAAC,GAAG;4CACd,OAAO,EAAE,GAAG,CAAC,OAAO;yCACpB,CAAC,CAAC;oCACJ,CAAC,CAAC,CAAC;oCACH,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iCACzC;6BACD;wBACF,CAAC,CAAC,CAAC;wBACJ,oBAAoB,CAAC,WAAW;6BAC9B,OAAO,CACP,SAAS,EACT,sBAAsB,EACtB,oBAAoB,CAAC,YAAY,CAAC,aAAa,CAC/C;6BACA,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;4BACnB,IAAI,MAAM,GAAG,EAAE,CAAC;4BAChB,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gCAC5B,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CACrB,CAAC,GAAG,EAAE,EAAE,CACP,GAAG,CAAC,GAAG,IAAI,oBAAoB,CAAC,YAAY,CAAC,YAAY,CAC1D,CAAC;gCACF,IAAI,MAAM,EAAE;oCACX,oBAAoB,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC;oCACjD,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wCACpB,MAAM,CAAC,IAAI,CAAC;4CACX,KAAK,EAAE,GAAG,CAAC,GAAG;4CACd,OAAO,EAAE,GAAG,CAAC,OAAO;yCACpB,CAAC,CAAC;oCACJ,CAAC,CAAC,CAAC;oCACH,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iCACzC;6BACD;wBACF,CAAC,CAAC,CAAC;qBACJ;iBACD;aACD;SACD;IACF,CAAC;IAKO,MAAM,CAAC,eAAe;QAC7B,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IACC,oBAAoB,CAAC,YAAY;YACjC,oBAAoB,CAAC,YAAY,CAAC,YAAY,EAC7C;YACD,IACC,oBAAoB,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO;gBACtD,oBAAoB,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAChE;gBACD,MAAM,IAAI,GAAG,EAAE,CAAC;gBAChB,oBAAoB,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAC7D,CAAC,GAAG,EAAE,EAAE;oBACP,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC,CACD,CAAC;gBACF,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC7B;YACD,IACC,oBAAoB,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO;gBACtD,oBAAoB,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAChE;gBACD,UAAU,GAAG,2FAAkC,CAC9C,oBAAoB,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CACzD,CAAC;aACF;YACD,IACC,oBAAoB,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI;gBACnD,oBAAoB,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAC7D;gBACD,MAAM,IAAI,GAAG,EAAE,CAAC;gBAChB,oBAAoB,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBACjE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;gBACnE,CAAC,CAAC,CAAC;gBACH,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC3B;SACD;QACD,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAKD,MAAM,CAAC,SAAS;QACf,oBAAoB,CAAC,gBAAgB;YACpC,0FAAmC,CAAmB,0EAAgB,CAAC,CAAC;QACzE,oBAAoB,CAAC,WAAW;YAC/B,0FAAmC,CAAc,gEAAW,CAAC,CAAC;QAC/D,oBAAoB,CAAC,mBAAmB;YACvC,0FAAmC,CAAc,+DAAW,CAAC,CAAC;QAC/D,oBAAoB,CAAC,eAAe;YACnC,0FAAmC,CAClC,kFAAwB,CACxB,CAAC;QACH,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,oBAAoB,CAAC,mBAAmB;aACtC,gBAAgB,EAAE;aAClB,SAAS,CAAC,CAAC,YAAiB,EAAE,EAAE;YAChC,IAAI,YAAY,EAAE;gBACjB,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aACjD;QACF,CAAC,CAAC,CAAC;QACJ,oFAAmB,CAAC;YACnB,GAAG,EAAE,sCAAsC;YAC3C,EAAE,EAAE,iBAAiB;YACrB,OAAO,EAAE,sBAAsB;YAC/B,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;YACvB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC9B,MAAM,QAAQ,GAAG,yFAAmC,EAAE,CAAC;oBACvD,IACC,QAAQ;wBACR,QAAQ,CAAC,WAAW;wBACpB,QAAQ,CAAC,WAAW,KAAK,WAAW,EACnC;wBACD,MAAM,MAAM,GAAG,2EAAsB,EAAE,CAAC;wBACxC,MAAM,UAAU,GAAG,qFAAgC,CAAC,MAAM,CAAC,CAAC;wBAC5D,uFAAoC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,IAAI,CAC9D,CAAC,MAAM,EAAE,EAAE;4BACV,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;wBAC3C,CAAC,CACD,CAAC;qBACF;yBAAM;wBACN,OAAO,CAAC,KAAK,CAAC,CAAC;qBACf;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;SACD,CAAC,CAAC;QAEH,sFAAgC,CAAC,CAAC,EAAE,EAAE,EAAE;YACvC,IAAI,EAAE,IAAI,uEAAa,IAAI,oBAAoB,CAAC,YAAY,EAAE;gBAC7D,oBAAoB,CAAC,SAAS,EAAE,CAAC;aACjC;QACF,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG;YACd,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;YAClC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;YACjC,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE;YACpC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;SAClC,CAAC;QAEF,gFAAe,CAAC;YACf,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,kBAAkB;YACzB,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACT,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,MAAM;gBACnB,iBAAiB,EAAE,SAAS;gBAC5B,eAAe,EAAE,OAAO;gBACxB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBACjB,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE;wBACzB,OAAO,oBAAoB,CAAC,YAAY,CAAC,YAAY,CAAC;wBACtD,OAAO,oBAAoB,CAAC,YAAY,CAAC,aAAa,CAAC;wBACvD,OAAO,oBAAoB,CAAC,YAAY,CAAC,cAAc,CAAC;wBACxD,OAAO,oBAAoB,CAAC,YAAY,CAAC,YAAY,CAAC;wBACtD,MAAM,KAAK,GAAG,IAAI,yFAAwB,EAAE,CAAC;wBAC7C;4BACC,cAAc;4BACd,gBAAgB;4BAChB,eAAe;4BACf,cAAc;yBACd,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;4BACf,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;gCACrB,YAAY,EAAE,CAAC;gCACf,KAAK,EAAE,IAAI;6BACX,CAAC,CAAC;wBACJ,CAAC,CAAC,CAAC;wBACH,oBAAoB,CAAC,gBAAgB,CACpC,oBAAoB,CAAC,YAAY,EACjC,KAAK,CAAC,UAAU,CAChB,CAAC;wBACF,gGAA0C,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBACpD,QAAQ,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;4BAC1B,KAAK,IAAI;gCACR,MAAM;4BACP,KAAK,CAAC;gCACL,oBAAoB,CAAC,WAAW;qCAC9B,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC;qCACxC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;oCACrB,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gCAC1C,CAAC,CAAC,CAAC;gCACJ,MAAM;4BACP,KAAK,CAAC,CAAC;4BACP,KAAK,CAAC;gCACL,oBAAoB,CAAC,gBAAgB;qCACnC,SAAS,EAAE;qCACX,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;oCACrB,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gCAC9C,CAAC,CAAC,CAAC;gCACJ,MAAM;yBACP;qBACD;gBACF,CAAC;aACD;SACD,CAAC,CAAC;QAEH,gFAAe,CAAC;YACf,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;YACrD,CAAC;YACD,QAAQ,EAAE;gBACT,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,KAAK;gBACf,cAAc,EAAE,oBAAoB,CAAC,UAAU;gBAC/C,iBAAiB,EAAE,SAAS;gBAC5B,eAAe,EAAE,KAAK;gBACtB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBACjB,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;wBAC9C,IAAI,oBAAoB,CAAC,YAAY,EAAE;4BACtC,IAAI,oBAAoB,CAAC,YAAY,CAAC,YAAY,IAAI,IAAI,EAAE;gCAC3D,oBAAoB,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;gCACtD,oBAAoB,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;6BACtD;4BACD,IAAI,oBAAoB,CAAC,YAAY,CAAC,UAAU,IAAI,CAAC,EAAE;gCACtD,oBAAoB,CAAC,WAAW;qCAC9B,OAAO,CACP,SAAS,EACT,gCAAgC,EAChC,oBAAoB,CAAC,YAAY,CAAC,aAAa,CAC/C;qCACA,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;oCACnB,MAAM,SAAS,GAAG,EAAE,CAAC;oCACrB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wCACpB,SAAS,CAAC,IAAI,CAAC;4CACd,KAAK,EAAE,GAAG,CAAC,GAAG;4CACd,OAAO,EAAE,GAAG,CAAC,OAAO;yCACpB,CAAC,CAAC;oCACJ,CAAC,CAAC,CAAC;oCACH,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gCAC7C,CAAC,CAAC,CAAC;6BACJ;4BACD,IAAI,oBAAoB,CAAC,YAAY,CAAC,UAAU,IAAI,CAAC,EAAE;gCACtD,oBAAoB,CAAC,WAAW;qCAC9B,OAAO,CACP,SAAS,EACT,sBAAsB,EACtB,oBAAoB,CAAC,YAAY,CAAC,aAAa,CAC/C;qCACA,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE;oCACxB,MAAM,MAAM,GAAG,EAAE,CAAC;oCAClB,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wCACzB,MAAM,CAAC,IAAI,CAAC;4CACX,KAAK,EAAE,GAAG,CAAC,GAAG;4CACd,OAAO,EAAE,GAAG,CAAC,OAAO;yCACpB,CAAC,CAAC;oCACJ,CAAC,CAAC,CAAC;oCACH,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gCAC1C,CAAC,CAAC,CAAC;6BACJ;yBACD;qBACD;gBACF,CAAC;aACD;SACD,CAAC,CAAC;QAEH,gFAAe,CAAC;YACf,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC;YACnD,CAAC;YACD,QAAQ,EAAE;gBACT,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,KAAK;gBACf,cAAc,EAAE,oBAAoB,CAAC,MAAM;gBAC3C,iBAAiB,EAAE,SAAS;gBAC5B,eAAe,EAAE,OAAO;gBACxB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;oBACd,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC;oBACjC,IAAI,QAAQ,EAAE;wBACb,IAAI,CAAC,gBAAgB;6BACnB,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC;6BACpC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;4BACrB,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBACxD,CAAC,CAAC,CAAC;wBACJ,oBAAoB,CAAC,WAAW;6BAC9B,aAAa,CACb,SAAS,EACT,UAAU,EACV,oBAAoB,CAAC,YAAY,CAAC,YAAY,CAC9C;6BACA,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;4BACrB,oBAAoB,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBAC7D,CAAC,CAAC,CAAC;wBACJ,MAAM,YAAY,GAAG,EAAE,CAAC;wBACxB,IAAI,QAAQ,CAAC,UAAU,IAAI,CAAC,IAAI,QAAQ,CAAC,aAAa,IAAI,IAAI,EAAE;4BAC/D,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC;4BAC9B,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;yBACnC;wBACD,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;wBAClC,QAAQ,CAAC,YAAY,GAAG,IAAI,wEAAc,EAAE,CAAC;wBAC7C,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;wBAClC,oBAAoB,CAAC,eAAe,EAAE,CAAC;wBACvC,sFAAgC,CAAC,IAAI,CAAC,CAAC;qBACvC;gBACF,CAAC;aACD;SACD,CAAC,CAAC;QAEH,gFAAe,CAAC;YACf,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,IAAI,iEAAe,CAAC,iGAAkB,CAAC;YAChD,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,OAAO,IAAI,CAAC,YAAY,CAAC;YAC1B,CAAC;YACD,QAAQ,EAAE;gBACT,OAAO,EAAE,oBAAoB;gBAC7B,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;oBACd,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC;oBACjC,IAAI,QAAQ,IAAI,QAAQ,CAAC,YAAY,EAAE;wBACtC,IAAI,CAAC,gBAAgB;6BACnB,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC;6BACpC,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE;4BACzB,IAAI,UAAU,EAAE;gCACf,MAAM,QAAQ,GAAG,IAAI,gHAAwB,EAAE,CAAC;gCAChD,QAAQ,CAAC,eAAe;oCACvB,8EAAyB,CAAC,QAAQ,CAAC,CAAC;gCACrC,IAAI,QAAQ,CAAC,YAAY,EAAE;oCAC1B,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAC,YAAY,CAAC;iCAChD;gCACD,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC;gCAC3C,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oCAChC,MAAM,GAAG,GAAG,IAAI,4GAAoB,EAAE,CAAC;oCACvC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;oCAClB,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC;oCACtB,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;oCACrC,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,gBAAgB,CAAC;oCAC5C,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gCAC5B,CAAC,CAAC,CAAC;gCAEH,wHAAgC,CAC/B,QAAQ,EACR,kCAAkC,EAClC,CAAC,CAAC,EAAE,EAAE;oCACL,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC;oCAC1B,oBAAoB,CAAC,eAAe,EAAE,CAAC;oCACvC,2FAAqC,CACpC,QAAQ,CAAC,EAAE,EACX,cAAc,EACd,CAAC,CACD,CAAC;gCACH,CAAC,CACD,CAAC;6BACF;wBACF,CAAC,CAAC,CAAC;qBACJ;gBACF,CAAC;aACD;SACD,CAAC,CAAC;QAEH,gFAAe,CAAC;YACf,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,iBAAiB;YACzB,UAAU,EAAE,oBAAoB,CAAC,UAAU;YAC3C,OAAO,EAAE,IAAI,iEAAe,CAAC,uGAAoB,CAAC;YAClD,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,OAAO,CACN,IAAI,CAAC,YAAY;oBACjB,IAAI,CAAC,YAAY,CAAC,OAAO;oBACzB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CACpC,CAAC;YACH,CAAC;YACD,QAAQ,EAAE;gBACT,QAAQ,EAAE,IAAI;aACd;SACD,CAAC,CAAC;QAEH,gFAAe,CAAC;YACf,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,iBAAiB;YACzB,UAAU,EAAE,oBAAoB,CAAC,UAAU;YAC3C,OAAO,EAAE,IAAI,iEAAe,CAAC,uGAAoB,CAAC;YAClD,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,OAAO,CACN,IAAI,CAAC,YAAY;oBACjB,IAAI,CAAC,YAAY,CAAC,OAAO;oBACzB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CACpC,CAAC;YACH,CAAC;YACD,QAAQ,EAAE;gBACT,QAAQ,EAAE,IAAI;aACd;SACD,CAAC,CAAC;QAEH,gFAAe,CAAC;YACf,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,iBAAiB;YACzB,UAAU,EAAE,oBAAoB,CAAC,QAAQ;YACzC,OAAO,EAAE,IAAI,iEAAe,CAAC,uGAAoB,CAAC;YAClD,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,OAAO,CACN,IAAI,CAAC,YAAY;oBACjB,IAAI,CAAC,YAAY,CAAC,IAAI;oBACtB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CACjC,CAAC;YACH,CAAC;YACD,QAAQ,EAAE;gBACT,QAAQ,EAAE,IAAI;aACd;SACD,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG;YACf,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;YACpC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE;YACtC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;SAClC,CAAC;QACF,gFAAe,CAAC;YACf,EAAE,EAAE,qBAAqB;YACzB,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,4BAA4B;YACnC,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACT,WAAW,EAAE,WAAW;gBACxB,cAAc,EAAE,oBAAoB,CAAC,YAAY;gBACjD,QAAQ,EAAE,KAAK;gBACf,eAAe,EAAE,MAAM;gBACvB,iBAAiB,EAAE,MAAM;aACzB;SACD,CAAC,CAAC;QACH,gFAAe,CAAC;YACf,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACT,WAAW,EAAE,YAAY;gBACzB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,OAAO;gBACpB,eAAe,EAAE,OAAO;gBACxB,iBAAiB,EAAE,SAAS;aAC5B;SACD,CAAC,CAAC;QAEH,gFAAe,CAAC;YACf,EAAE,EAAE,oBAAoB;YACxB,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,OAAO,IAAI,CAAC,WAAW,CAAC;YACzB,CAAC;YACD,QAAQ,EAAE;gBACT,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,iBAAiB;gBAC9B,cAAc,EAAE,oBAAoB,CAAC,YAAY;gBACjD,QAAQ,EAAE,KAAK;gBACf,eAAe,EAAE,MAAM;gBACvB,iBAAiB,EAAE,MAAM;aACzB;SACD,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG;YACxB,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;YAClC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE;YAC1C,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE;YACtC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;YAClC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;SAClC,CAAC;QAEF,gFAAe,CAAC;YACf,EAAE,EAAE,oBAAoB;YACxB,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,qBAAqB;YAC5B,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE;gBACT,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,qBAAqB;gBAClC,cAAc,EAAE,oBAAoB,CAAC,kBAAkB;gBACvD,QAAQ,EAAE,KAAK;gBACf,eAAe,EAAE,MAAM;gBACvB,iBAAiB,EAAE,MAAM;aACzB;SACD,CAAC,CAAC;QAEH,gFAAe,CAAC;YACf,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE;gBACT,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,eAAe;gBAC5B,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,gBAAgB;gBAC7B,eAAe,EAAE,OAAO;gBACxB,iBAAiB,EAAE,SAAS;aAC5B;SACD,CAAC,CAAC;QAEH,gFAAe,CAAC;YACf,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,IAAI,iEAAe,CAAC,oGAAmB,CAAC;YACjD,KAAK,EAAE,qBAAqB;YAC5B,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE;gBACT,SAAS,EAAE,QAAQ;aACnB;SACD,CAAC,CAAC;QAEH,gFAAe,CAAC;YACf,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,IAAI,iEAAe,CAAC,iGAAkB,CAAC;YAChD,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE;gBACT,OAAO,EAAE,WAAW;gBACpB,MAAM,EAAE,CAAC,EAAO,EAAE,EAAE;oBACnB,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC;oBACjC,IACC,CAAC,QAAQ,CAAC,SAAS;wBACnB,CAAC,QAAQ,CAAC,kBAAkB;wBAC5B,CAAC,QAAQ,CAAC,WAAW;wBACrB,CAAC,QAAQ,CAAC,mBAAmB;wBAC7B,CAAC,QAAQ,CAAC,YAAY;wBACtB,CAAC,QAAQ,CAAC,UAAU;wBACpB,CAAC,QAAQ,CAAC,aAAa,EACtB;wBACD,mFAAwB,CACvB,yCAAyC,EACzC,SAAS,CACT,CAAC;wBACF,OAAO;qBACP;oBACD,IAAI,QAAQ,IAAI,QAAQ,CAAC,YAAY,EAAE;wBACtC,MAAM,OAAO,GAAG,+EAA0B,CAAC,QAAQ,CAAC,CAAC;wBACrD,IACC,QAAQ,CAAC,mBAAmB;4BAC5B,QAAQ,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EACtC;4BACD,OAAO,CAAC,OAAO,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;yBACjD;wBACD,IACC,QAAQ,CAAC,kBAAkB;4BAC3B,QAAQ,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EACrC;4BACD,MAAM,cAAc,GAAG;gCACtB,KAAK,EAAE,QAAQ,CAAC,kBAAkB;gCAClC,SAAS,EAAE,QAAQ,CAAC,WAAW;gCAC/B,KAAK,EAAE,QAAQ,CAAC,kBAAkB;6BAClC,CAAC;4BACF,OAAO,CAAC,YAAY,GAAG,CAAC,cAAc,CAAC,CAAC;yBACxC;wBACD,IAAI,QAAQ,CAAC,kBAAkB,IAAI,QAAQ,CAAC,WAAW,EAAE;4BACxD,OAAO,CAAC,WAAW,GAAG;gCACrB,KAAK,EAAE,QAAQ,CAAC,kBAAkB;gCAClC,aAAa,EAAE,QAAQ,CAAC,WAAW;6BACnC,CAAC;yBACF;wBACD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;4BAC1B,OAAO,OAAO,CAAC,WAAW,CAAC;yBAC3B;wBACD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;4BAC1B,OAAO,OAAO,CAAC,WAAW,CAAC;yBAC3B;wBACD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;wBACtB,SAAS,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW;4BACxD,kEAAkE;4BAClE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;4BAEtD,sEAAsE;4BACtE,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;4BAE9C,OAAO,UAAU,CAAC;wBACnB,CAAC;wBACD,oBAAoB,CAAC,eAAe;6BAClC,0BAA0B,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;6BAC1D,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;4BACnB,IAAI,MAAM,CAAC;4BACX,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gCAC5B,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,GAAG,CAAC;oCAC/C,CAAC,CAAC,CAAC,MAAM,GAAG,iBAAiB,CAC3B,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EACZ,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,kBAAkB,CAC1B,CAAC;oCACJ,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;6BAC3B;4BACD,+GAAoC,CACnC,MAAM,EACN,CAAC,QAAa,EAAE,EAAE;gCACjB,IAAI,QAAQ,EAAE;iCACb;4BACF,CAAC,CACD,CAAC;wBACH,CAAC,CAAC,CAAC;qBACJ;gBACF,CAAC;aACD;SACD,CAAC,CAAC;IACJ,CAAC;;AAvwBe,yBAAI,GAAG,CAAC,sCAAsC,CAAC,CAAC;AAmBjD,+BAAU,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;AAC7D,2BAAM,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;AACzD,iCAAY,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;AAC/D,uCAAkB,GAAyB,IAAI,kDAAe,CAC5E,IAAI,CACJ,CAAC;AACa,6BAAQ,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;AAsI3D,+BAAU,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;AAC7D,+BAAU,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;AAC7D,6BAAQ,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACx4BrB;AAC8D;AAChB;AACH;AACV;AACrB;AACqB;AACL;AACO;AACxB;AACd;AAC0B;IAQhE,aAAa,SAAb,aAAc,SAAQ,4DAAc;IAO7C,YAAY,KAAwB,EAA+C,IAAI;QACnF,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD4D,SAAI,GAAJ,IAAI;QAF7E,iBAAY,GAAG,IAAI,wDAAY,EAAO;QAI5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,8FAAwC,CAAC,CAAC,KAAK,EAAE,EAAE;YACjF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,QAAQ,CAAC,EAAE;QACP,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QAClC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,QAAQ;QACJ,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,KAAK,EAAE,CAAC;SACnB;IACL,CAAC;;AA3BM,kBAAI,GAAQ,QAAS;AACrB,qBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,+FAAwB,CAAC,CAAC,CAAC;;;4CAI/B,kDAAM,SAAC,kFAA4B;;;2BAFzE,kDAAM;;AALE,aAAa;IANzB,yDAAS,CAAC;QACP,QAAQ,EAAE,YAAY;QACtB,sEAAoC;QAEpC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,aAAa;AAAA;AA+BnB,MAAM,WAAY,SAAQ,oEAAS;IAEtC,MAAM,CAAC,SAAS;QACZ,oFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,QAAQ;YACZ,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC;YACxC,CAAC;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,oFAAiB;aAChC;SACJ,CAAC;QACF,gFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;aACtB;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;aACtB;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,MAAM;YACV,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;aACtB;SACJ,CAAC,CAAC;IACP,CAAC;;AArDe,gBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnDb;AACwC;AACM;AACH;AAC2B;AACrC;AACrB;AACJ;AACO;AACkB;AACJ;AACf;AACqB;AACxB;AACd;AAC0B;IAQhE,cAAc,SAAd,cAAe,SAAQ,4DAAc;IAI9C,YAAY,KAAwB,EAA+C,IAAI;QACnF,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD4D,SAAI,GAAJ,IAAI;QAEnF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IAED,WAAW,CAAC,KAAK;QACb,MAAM,UAAU,GAAG,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,uBAAuB,EAAE,KAAK,CAAC,uBAAuB,EAAC,CAAC;QACjH,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IACjD,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,+FAAwC,CAAC,CAAC,KAAK,EAAE,EAAE;YACjF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;YACxD,IAAI,WAAW,KAAK,iGAA6B,IAAI,WAAW,KAAK,+FAA2B,EAAE;gBAC9F,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,iGAA6B,CAAC;aACvE;SACJ;IACL,CAAC;;AAxBa,mBAAI,GAAG,SAAU;AACjB,sBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,gGAAyB,CAAC,CAAC;;;4CAEtC,kDAAM,SAAC,mFAA4B;;AAJjE,cAAc;IAN1B,yDAAS,CAAC;QACP,QAAQ,EAAE,aAAa;QACvB,uEAAmC;QAEnC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,cAAc;AAAA;AA2BpB,MAAM,YAAa,SAAQ,oEAAS;IAGvC,MAAM,CAAC,SAAS;QACZ,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,SAAS;YACb,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;YACzC,CAAC;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE;oBACT,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE;oBACnC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE;iBACtC;gBACD,iBAAiB,EAAE,SAAS;gBAC5B,eAAe,EAAE,OAAO;aAC3B;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,UAAU,EAAE;gBACR;oBACI,EAAE,EAAE,MAAM;oBACV,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;oBAC5D,KAAK,EAAE,SAAS;oBAChB,QAAQ,EAAE;wBACN,QAAQ,EAAE,QAAQ;qBACrB;iBACJ;gBACD;oBACI,EAAE,EAAE,aAAa;oBACjB,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;oBAClD,KAAK,EAAE,eAAe;oBACtB,QAAQ,EAAE;wBACN,WAAW,EAAE,UAAU;wBACvB,QAAQ,EAAE,KAAK;wBACf,UAAU,EAAE,uEAAW;wBACvB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;4BACX,EAAE,CAAC,YAAY,CAAC,WAAW,GAAG,uEAAW,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;wBACzF,CAAC;qBACJ;iBACJ;aACJ;YACD,QAAQ,EAAE;gBACN,iBAAiB,EAAE,MAAM;gBACzB,eAAe,EAAE,GAAG,EAAE;oBAClB,MAAM,IAAI,GAAG,IAAI,uEAAa,EAAE,CAAC;oBACjC,IAAI,CAAC,WAAW,GAAG,4EAAgB,CAAC;oBACpC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;oBAC1B,IAAI,CAAC,IAAI,GAAG,2FAAuC,CAAC,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,YAAY,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;oBAC1H,OAAO,IAAI,CAAC;gBAChB,CAAC;aACJ;SACJ,CAAC,CAAC;IACP,CAAC;;AA3Ee,iBAAI,GAAG,CAAC,sCAAsC,CAAC;AAC/C,wBAAW,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpDW;AACa;AACiC;AACH;AAC2B;AACrC;AACrB;AACJ;AACO;AACkB;AACxB;AACK;AACqB;AACxB;AACd;AAC0B;IAQhE,UAAU,SAAV,UAAW,SAAQ,4DAAc;;;QAI1C,kBAAa,GAAG,CAAC,CAAC,CAAC;QACnB,cAAS,GAAG,KAAK,CAAC;QAClB,WAAM,GAAG,KAAK,CAAC;IA6EnB,CAAC;IA3EW,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU;QACpC,IAAI,IAAI,EAAE;YACN,IAAI,IAAI,KAAK,UAAU,EAAE;gBACrB,OAAO,IAAI,CAAC;aACf;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;aACtE;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,2FAAoC,CAAC,CAAC,CAAC,EAAE;YACzE,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,KAAK,uEAAa,EAAE;gBACpG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACtC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;wBAC3B,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,EAAE;4BAC1B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;yBAC1B;wBACD,OAAO,IAAI,CAAC;qBACf;oBACD,OAAO,KAAK,CAAC;gBACjB,CAAC,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,UAAU,CAAC,EAAE;QACT,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,EAAE,EAAE;gBACJ,EAAE,CAAC,eAAe,EAAE,CAAC;aACxB;SACJ;IACL,CAAC;IAED,OAAO,CAAC,EAAE;QACN,IAAI,EAAE,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,KAAK,uEAAa,EAAE;YAC1G,sFAA+B,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YACvE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACzB;IACL,CAAC;IAED,SAAS;QACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,UAAU,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACxB,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;IAED,UAAU,CAAC,KAAK;QACZ,IAAI,KAAK,EAAE;YACP,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC1E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnB,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBACvB,IAAI,OAAO,CAAC,OAAO,EAAE;wBACjB,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;qBAC9B;gBACL,CAAC,CAAC;aACL;SACJ;IACL,CAAC;IACD,SAAS,CAAC,QAAQ,EAAE,MAAM;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,IAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,OAAO,CAAC,WAAW,IAAI,WAAW,EAAE;gBACpC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACxB;YACD,IAAI,OAAO,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;aAC5C;SACJ;IACL,CAAC;;AAjFM,eAAI,GAAQ,KAAM;AAClB,kBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,4FAAqB,CAAC,CAAC,CAAC;AAF1D,UAAU;IANtB,yDAAS,CAAC;QACP,QAAQ,EAAE,SAAS;QACnB,mEAAiC;QAEjC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,UAAU;AAAA;AAoFhB,MAAM,QAAS,SAAQ,oEAAS;IAGnC,MAAM,CAAC,SAAS;QACZ,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC;YACrC,CAAC;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,UAAU,EAAE;gBACR;oBACI,EAAE,EAAE,SAAS;oBACb,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;oBAC5D,KAAK,EAAE,WAAW;oBAClB,QAAQ,EAAE;wBACN,QAAQ,EAAE,QAAQ;qBACrB;iBACJ;gBACD;oBACI,EAAE,EAAE,aAAa;oBACjB,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;oBAClD,KAAK,EAAE,eAAe;oBACtB,QAAQ,EAAE;wBACN,WAAW,EAAE,UAAU;wBACvB,QAAQ,EAAE,KAAK;wBACf,UAAU,EAAE,uEAAW;wBACvB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;4BACX,EAAE,CAAC,YAAY,CAAC,WAAW,GAAG,uEAAW,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;wBACzF,CAAC;qBACJ;iBACJ;aACJ;YACD,QAAQ,EAAE;gBACN,iBAAiB,EAAE,SAAS;gBAC5B,eAAe,EAAE,GAAG,EAAE;oBAClB,MAAM,IAAI,GAAG,IAAI,uEAAa,EAAE,CAAC;oBACjC,IAAI,CAAC,WAAW,GAAG,4EAAgB,CAAC;oBACpC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;oBAC1B,IAAI,CAAC,IAAI,GAAG,2FAAuC,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;oBAClH,IAAI,CAAC,OAAO,GAAG,2FAAuC,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;oBACrH,OAAO,IAAI,CAAC;gBAChB,CAAC;aACJ;SACJ,CAAC,CAAC;IACP,CAAC;;AA3De,aAAI,GAAG,CAAC,sCAAsC,CAAC;AAC/C,oBAAW,GAAG,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;AC1GjB;AAC6C;AACd;IAQzC,qBAAqB,SAArB,qBAAuB,SAAQ,2DAAc;IAQtD,YAAoB,KAAwB,EAA+C,IAAI;QAC3F,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,UAAK,GAAL,KAAK,CAAmB;QAA+C,SAAI,GAAJ,IAAI;QAJ/F,oBAAe,GAAG,KAAK,CAAC;QAGd,uBAAkB,GAAG,IAAI,uDAAY,EAAO;IAGtD,CAAC;IATD,kBAAkB;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAQD,QAAQ;IACR,CAAC;IAED,eAAe;QACX,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,gBAAgB,CAAC,KAAK;QAClB,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;;;;4CAf8C,iDAAM,SAAC,kFAA4B;;;sBAHjF,gDAAK;uBACL,gDAAK;iCACL,iDAAM;;AAPE,qBAAqB;IANjC,wDAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,+EAA6C;QAE7C,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbuB;AACqC;AAC7C;AACY;AACQ;AACC;AACC;AACH;AACd;AACuB;IAQhE,+BAA+B,SAA/B,+BAAgC,SAAQ,2DAAc;IAuB/D,YAAY,KAAwB,EAA+C,IAAI;QACnF,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD4D,SAAI,GAAJ,IAAI;QAjBvF,YAAO,GAAG,EAAE,CAAC;QACb,oBAAe,GAAG,EAAE,CAAC;QAWrB,kBAAa,GAAG,IAAI,sEAAa,EAAE,CAAC;QAOhC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,qEAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9E,CAAC;IAhBD,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACV,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAGD,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAOD,kBAAkB;QACd,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;YACxF,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,UAAU;QACN,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,aAAa,GAAG,+DAAY,CAAC,sEAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACtG,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;gBACrC,IAAI,CAAC,SAAS,GAAG,4EAA0B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;gBAC9F,IAAI,IAAI,CAAC,SAAS,EAAE;oBAChB,IAAI,CAAC,aAAa,EAAE,CAAC;iBACxB;aACJ;SACJ;IACL,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;YAC1C,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAChE,OAAO,CAAC,IAAI,CAAC;oBACT,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI;oBAC7C,IAAI,EAAE,GAAG;iBACZ,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;IACL,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;IAC3C,CAAC;IACD,gBAAgB;QACZ,IAAI,uFAAiC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE;YACxF,MAAM,IAAI,GAAG,uFAAiC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;YAC1G,IAAI,IAAI,EAAE;gBACN,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC/D,IAAI,GAAG,EAAE;wBACL,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;wBAClC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;qBACvC;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;SAClB;IACL,CAAC;IAED,OAAO;QACH,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SACvC;IACL,CAAC;IACD,iBAAiB;QACb,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAEpC,iFAA2B,CAAC,IAAI,CAAC,MAAM,EAAE;gBACrC,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;gBAC9B,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE;aACrC,CAAC,CAAC;SACN;IACL,CAAC;IAED,MAAM,CAAC,KAAK;QACR,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,YAAY,EAAE;YAC5C,IAAI,QAAQ,EAAE,OAAO,CAAC;YACtB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBACzD,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAI,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClG,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;oBAC/D,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;iBACjD;qBAAM;oBACH,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBAC3D,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;iBAC7C;aACJ;iBAAM;gBACH,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC;gBAC/B,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC;aAChC;YACD,wEAAe,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;aACrC;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;IACL,CAAC;IAED,WAAW;QACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACtC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACnC,OAAO,CAAC,CAAC;aACZ;YACD,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACnC,OAAO,CAAC,CAAC,CAAC;aACb;YACD,OAAO,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;SACrC;IACL,CAAC;IAED,oBAAoB;QAChB,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACrB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,oBAAoB,CAAC,GAAG;QACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC3G;aAAM;YACH,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;SAC5C;IACL,CAAC;;AA5JM,oCAAI,GAAQ,uBAAwB;AACpC,uCAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,6GAAuC,CAAC,CAAC,CAAC;;;4CAoB9C,kDAAM,SAAC,kFAA4B;;AAvBjE,+BAA+B;IAN3C,yDAAS,CAAC;QACP,QAAQ,EAAE,6BAA6B;QACvC,gFAA8C;QAE9C,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,+BAA+B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdrB;AACgC;AAEM;AACpB;AACW;AACP;AACgB;AACI;AACJ;AACF;AACU;AACY;AACV;AACd;AACS;AACH;AACH;AACU;AAEA;AACA;AACJ;AACI;AACA;AACA;AACE;AACN;AACL;AACiB;AACV;AACd;AAC+B;AACgB;AACxB;IAOhE,gBAAgB,SAAhB,gBAAiB,SAAQ,4DAAc;IA4mBhD,mBAAmB;IACnB,YAAoB,SAA2B,EAAS,OAA2B,EAAU,iBAAgD,EAAU,KAAwB,EAA+C,IAAI;QAC9N,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,cAAS,GAAT,SAAS,CAAkB;QAAS,YAAO,GAAP,OAAO,CAAoB;QAAU,sBAAiB,GAAjB,iBAAiB,CAA+B;QAAU,UAAK,GAAL,KAAK,CAAmB;QAA+C,SAAI,GAAJ,IAAI;QAzmBlO,oBAAoB;QACpB,gBAAW,GAAG,KAAK,CAAC;QACpB,SAAI,GAAG,IAAI,CAAC;QACZ,oBAAe,GAAG,KAAK,CAAC;QAuBd,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QACpD,YAAY;QAGZ,qBAAqB;QACrB,gBAAW,GAAmB,IAAI,wEAAc,EAAE,CAAC;QAYzC,iBAAY,GAAG,IAAI,wDAAY,EAAO;QAmCtC,6BAAwB,GAAG,IAAI,wDAAY,EAAO;QAelD,iBAAY,GAAG,IAAI,wDAAY,EAAO;QAiDtC,eAAU,GAAG,IAAI,wDAAY,EAAO;QAwB9C,YAAY;QAGZ,0BAA0B;QAC1B,wBAAwB;QACxB,UAAU;QACV,0BAA0B;QAC1B,+BAA+B;QAC/B,qDAAqD;QACrD,cAAc;QACd,4CAA4C;QAC5C,OAAO;QACP,GAAG;QACH,6BAA6B;QAC7B,+BAA+B;QAC/B,oDAAoD;QACpD,gFAAgF;QAChF,cAAc;QACd,2CAA2C;QAC3C,uEAAuE;QACvE,OAAO;QACP,GAAG;QACH,6DAA6D;QAC7D,YAAY;QACZ,oBAAoB;QACpB,8BAA8B;QAE9B,UAAU;QACV,oBAAoB;QACpB,+BAA+B;QAC/B,+CAA+C;QAC/C,cAAc;QACd,sCAAsC;QACtC,OAAO;QACP,GAAG;QACH,uBAAuB;QACvB,+BAA+B;QAC/B,8CAA8C;QAC9C,oEAAoE;QACpE,cAAc;QACd,qCAAqC;QACrC,2DAA2D;QAC3D,OAAO;QACP,GAAG;QAEH,uDAAuD;QACvD,YAAY;QAEZ,oBAAe,GAAG,KAAK,CAAC;QA4Cd,0BAAqB,GAAG,IAAI,wDAAY,EAAO;QAEzD,YAAY;QACZ,oBAAoB;QACpB,oBAAe,GAAe,6EAAiB,CAAC;QAoBtC,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QACpD,YAAY;QACZ,kBAAkB;QAClB,kBAAa,GAAW,GAAG,CAAC;QAclB,mBAAc,GAAG,IAAI,wDAAY,EAAO;QAuBxC,yBAAoB,GAAG,IAAI,wDAAY,EAAO;QAIxD,WAAM,GAAG,QAAQ,CAAC;QAkCR,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QACpD,YAAY;QACZ,wBAAwB;QACxB,wBAAmB,GAAY,KAAK,CAAC;QAoB3B,yBAAoB,GAAG,IAAI,wDAAY,EAAO;QACxD,YAAY;QACZ,2BAA2B;QAC3B,2BAAsB,GAAY,KAAK,CAAC;QAoB9B,4BAAuB,GAAG,IAAI,wDAAY,EAAO;QAC3D,YAAY;QACZ,uBAAuB;QACvB,uBAAkB,GAAY,KAAK,CAAC;QAoB1B,wBAAmB,GAAG,IAAI,wDAAY,EAAO;QACvD,YAAY;QACZ,mBAAmB;QACnB,mBAAc,GAAY,KAAK,CAAC;QAoBtB,oBAAe,GAAG,IAAI,wDAAY,EAAO;QACnD,YAAY;QACZ,oBAAoB;QACpB,oBAAe,GAAW,KAAK,CAAC;QA0BtB,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QACpD,YAAY;QACZ,kBAAkB;QAClB,kBAAa,GAAW,KAAK,CAAC;QA0BpB,mBAAc,GAAG,IAAI,wDAAY,EAAO;QA+BxC,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QASpD,gBAAW,GAAG,EAAE,CAAC;QAEjB,YAAO,GAAG,IAAI,CAAC;QAcL,kBAAa,GAAG,IAAI,wDAAY,EAAO;QACjD,mBAAc,GAAiB,IAAI,0CAAO,EAAE,CAAC;QAqBnC,2BAAsB,GAAG,IAAI,wDAAY,EAAO;QAsBhD,4BAAuB,GAAG,IAAI,wDAAY,EAAO;QAC3D,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,kBAAa,GAAG,EAAE,CAAC;QACnB,UAAK,GAAG,KAAK,CAAC;QAkBd,mBAAc,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAidxB,uBAAkB,GAAG,IAAI,wDAAY,EAAO;QAStD,WAAM,GAAQ,EAAE,CAAC;QAkCP,wBAAmB,GAAG,IAAI,wDAAY,EAAO;QAOvD,mBAAc,GAAG,KAAK,CAAC;QAjhBnB,IAAI,CAAC,aAAa,GAAG,8EAA4B,CAAC,kEAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;QAClF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,iBAAiB,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,KAAK,GAAG,oEAAmB,IAAI,KAAK,CAAC;QAC1C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,qFAAoC,CAAC,CAAC,GAAG,EAAE,EAAE;YACrE,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;QA3mBG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACrB;QACD,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAUG,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACV,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QASG,kBAAkB;QAClB,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACxC,CAAC;IACD,IAAI,kBAAkB,CAAC,GAAG;QACtB,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC;QACnC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACjE,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACtB;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACtD,IAAI,IAAI,KAAK,IAAI,EAAE;gBACf,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aAC1B;;gBACI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAChC,CAAC,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACtD,IAAI,KAAK,KAAK,IAAI,EAAE;gBAChB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;aAC1B;;gBACI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAC/B,CAAC,CAAC;IACN,CAAC;QAMG,MAAM;QACN,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,QAAQ,IAAI,CAAC,UAAU,EAAE;gBACrB,KAAK,4EAAgB;oBACjB,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;gBAC1C,KAAK,6EAAiB,CAAC;gBACvB,KAAK,8EAAkB;oBACnB,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;aAC9C;SACJ;IACL,CAAC;IAED,YAAY;IACZ,wBAAwB;IACxB,IAAI,cAAc;QACd,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;SAC1C;aAAM,IAAI,IAAI,CAAC,IAAI,EAAE;YAClB,OAAO,IAAI,CAAC,IAAI;SACnB;aAAM;YACH,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QAClB,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,GAAG,CAAC;SACzC;aAAM,IAAI,IAAI,CAAC,IAAI,EAAE;YAClB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;SACnB;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAKG,IAAI;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,CAAC,GAAG;QACR,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACpB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChB,MAAM,EAAE,GAAG,EAAE,CAAC;gBACd,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAChB,MAAM,MAAM,GAAG,IAAI,wDAAG,EAAE,CAAC;oBACzB,MAAM,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC;oBACvB,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC;oBAClB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;aACvB;iBAAM;gBACH,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;aACxB;SACJ;aAAM;YACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACzB;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,YAAY;IACZ,IAAI,QAAQ;QACR,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;SAC3B;QACD,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,QAAQ,IAAI,CAAC,UAAU,EAAE;gBACrB,KAAK,4EAAgB;oBACjB,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC;gBAClD,KAAK,6EAAiB,CAAC;gBACvB,KAAK,8EAAkB;oBACnB,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC;aACrD;SACJ;IACL,CAAC;IAED,IAAI,YAAY;QACZ,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;SAC7C;aAAM;YACH,OAAO,CAAC,CAAC;SACZ;IACL,CAAC;IAmDD,yBAAyB;IACzB,IAAI,sBAAsB;QACtB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,KAAK,GAAG,IAAI,gFAAe,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE;gBACzC,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,gBAAgB,EAAE;oBAC1D,KAAK,CAAC,gBAAgB,GAAG,0EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;iBACzG;gBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,gBAAgB,EAAE;oBAC1D,KAAK,CAAC,gBAAgB,GAAG,0EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;iBACzG;gBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,EAAE;oBAC9C,KAAK,CAAC,IAAI,GAAG,0EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;iBACjF;gBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,gBAAgB,EAAE;oBAC1D,KAAK,CAAC,gBAAgB,GAAG,0EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;iBACzG;aACJ;YACD,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;QAIG,eAAe;QACf,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;SAC7C;aAAM;YACH,OAAO,IAAI,CAAC,oBAAoB,CAAC;SACpC;IACL,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,GAAG,CAAC;YACzC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;SACvE;aAAM;YACH,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;YAChC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;SAC9D;IACL,CAAC;QASG,UAAU;QACV,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;SACxC;aAAM;YACH,OAAO,IAAI,CAAC,eAAe,CAAC;SAC/B;IACL,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,GAAG,CAAC;YACpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SAC7D;aAAM;YACH,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACpD;IACL,CAAC;QAQG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,GAAG,CAAC;SACvC;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;QAQG,cAAc;QACd,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;SAC5C;aAAM;YACH,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACnC;IACL,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QAClB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,GAAG,CAAC;YACxC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;SACrE;aAAM;YACH,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;YAC/B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAC5D;IACL,CAAC;QAQG,UAAU;QACV,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;SACxC;aAAM;YACH,OAAO,IAAI,CAAC,eAAe,CAAC;SAC/B;IACL,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,GAAG,CAAC;YAEpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SAC7D;aAAM;YACH,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACpD;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IACD,SAAS;QACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,QAAQ,IAAI,CAAC,UAAU,EAAE;YACrB,KAAK,6EAAiB,CAAC;YACvB,KAAK,qFAAyB;gBAC1B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;gBACvB,MAAM;YACV,KAAK,4EAAgB,CAAC;YACtB,KAAK,yEAAa;gBACd,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;gBACzB,MAAM;SACb;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAOG,cAAc;QACd,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;SAC5C;aAAM;YACH,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACnC;IACL,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QAClB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,GAAG,CAAC;YACxC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;SACrE;aAAM;YACH,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;YAC/B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAC5D;IACL,CAAC;QAQG,iBAAiB;QACjB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC;SAC/C;aAAM;YACH,OAAO,IAAI,CAAC,sBAAsB,CAAC;SACtC;IACL,CAAC;IACD,IAAI,iBAAiB,CAAC,GAAG;QACrB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,GAAG,CAAC;YAC3C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;SAC3E;aAAM;YACH,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAC;YAClC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;SAClE;IACL,CAAC;QAQG,aAAa;QACb,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;SACvC;aAAM;YACH,OAAO,IAAI,CAAC,kBAAkB,CAAC;SAClC;IACL,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,GAAG,CAAC;YACnC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;SAC/D;aAAM;YACH,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;YAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAC1D;IACL,CAAC;QAQG,SAAS;QACT,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;SACvC;aAAM;YACH,OAAO,IAAI,CAAC,cAAc,CAAC;SAC9B;IACL,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,GAAG,CAAC;YACnC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;SAC3D;aAAM;YACH,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAClD;IACL,CAAC;QAQG,UAAU;QACV,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;gBAChC,OAAO,KAAK,CAAC;aAChB;YACD,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;SACxC;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gBACvB,OAAO,KAAK,CAAC;aAChB;YACD,OAAO,IAAI,CAAC,eAAe,CAAC;SAC/B;IACL,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,GAAG,CAAC;YACpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SAC7D;aAAM;YACH,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACpD;IACL,CAAC;QAQG,QAAQ;QACR,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;gBAC9B,OAAO,KAAK,CAAC;aAChB;YACD,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;SACtC;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACrB,OAAO,KAAK,CAAC;aAChB;YACD,OAAO,IAAI,CAAC,aAAa,CAAC;SAC7B;IACL,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,GAAG,CAAC;YAClC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;SACzD;aAAM;YACH,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAChD;IACL,CAAC;QAQG,UAAU;QACV,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,IAAI,CAAC,EAAE;gBACzF,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;aACxC;iBAAM;gBACH,OAAO,EAAE,CAAC;aACb;SACJ;aAAM;YACH,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,EAAE;gBACvE,OAAO,IAAI,CAAC,eAAe,CAAC;aAC/B;iBAAM;gBACH,OAAO,EAAE,CAAC;aACb;SACJ;IACL,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,GAAG,CAAC;YACpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SAC7D;aAAM;YACH,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACpD;IACL,CAAC;QAeG,OAAO;QACP,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACnC;aAAM;YACH,OAAO,IAAI,CAAC,YAAY,CAAC;SAC5B;IACL,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;QAMG,gBAAgB;QAChB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;SACnD;aAAM;YACH,OAAO,IAAI,CAAC,qBAAqB,CAAC;SACrC;IACL,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG;QACpB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,GAAG,CAAC;YAC/C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;SAC/E;aAAM;YACH,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC;YACjC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SAChE;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;QAMG,iBAAiB;QACjB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,OAAO,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;SACpD;aAAM;YACH,OAAO,IAAI,CAAC,sBAAsB,CAAC;SACtC;IACL,CAAC;IACD,IAAI,iBAAiB,CAAC,GAAG;QACrB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,GAAG,GAAG,CAAC;YAChD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;SAChF;aAAM;YACH,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAC;YAClC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;SAClE;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAyBD,kBAAkB;QACd,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC;QAC/D,IAAI,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7F,IAAI,IAAI,CAAC,UAAU,IAAI,4EAAgB,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;YAC5E,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;SAC/B;QACD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvB,CAAC;IACD,sBAAsB;QAClB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,sIAAsI;QACtI,IAAI,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7F,IAAI,IAAI,CAAC,UAAU,IAAI,4EAAgB,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;YAC5E,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;SAC/B;QACD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,kBAAkB;QACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,YAAqB;QACxB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QACjD,IAAI,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE;YAC5B,KAAK,CAAC,WAAW,EAAE,CAAC;SACvB;QACD,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,YAAY,EAAE;gBACd,IAAI,IAAI,CAAC,eAAe,EAAE;oBACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC;iBACpC;aACJ;iBAAM;gBACH,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,IAAI,0EAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;aACrE;SACJ;aAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAChC,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAC5D;aAAM,IAAI,CAAC,YAAY,EAAE;YACtB,sFAAoC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACrF,IAAI,MAAM,EAAE;oBACR,IAAI,MAAM,CAAC,aAAa,EAAE;wBACtB,IAAI,MAAM,CAAC,QAAQ,EAAE;4BACjB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;4BACrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;4BACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,sEAAa,EAAE,CAAC;4BAC5C,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gCACrD,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gCAClD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;oCAC9B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,wEAAc,CAAC;oCAChD,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;iCACtD;qCAAM;oCACH,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,qEAAW,CAAC;oCAC7C,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,EAAE,CAAC;iCACpC;gCACD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;oCACrE,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;wCAC9B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,wEAAc,CAAC;wCAChD,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;qCACtD;yCAAM;wCACH,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,qEAAW,CAAC;wCAC7C,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,EAAE,CAAC;qCACpC;oCACD,IAAI,CAAC,QAAQ,EAAE,CAAC;gCACpB,CAAC,CAAC,CAAC;6BACN;iCAAM;gCACH,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,KAAK,CAAC;gCACnC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,qEAAW,CAAC;gCAC7C,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,EAAE,CAAC;gCACjC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;oCACrC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;iCAC7D;gCACD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;oCACrE,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,EAAE,CAAC;oCACjC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wCAClB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;qCAC1C;oCACD,IAAI,CAAC,QAAQ,EAAE,CAAC;gCACpB,CAAC,CAAC,CAAC;6BACN;4BACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;4BAC/C,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,IAAI,uEAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,gFAAoB,CAAC,CAAC,CAAC;yBACnH;6BAAM;4BACH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;4BACjD,mBAAmB;4BACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC;4BACjC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gCACrE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;4BAClB,CAAC,CAAC,CAAC;4BACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;4BAC/C,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,IAAI,0EAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;yBACrE;qBACJ;yBAAM;wBACH,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;wBACrC,IAAI,CAAC,iBAAiB,GAAG,4EAA0B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;wBAC1F,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;wBAC/C,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,IAAI,uEAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,gFAAoB,CAAC,CAAC,CAAC;qBACnH;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAEO,kBAAkB,CAAC,MAAM;QAC7B,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;QAC9B,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE;YACnC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;SACnD;QACD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YACnF,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE;YAC/B,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;SAC/C;QACD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YAC3E,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,eAAe;QACX,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,YAAY;IAEZ,oBAAoB;IACpB,iBAAiB;IACjB,aAAa,CAAC,GAAG;QACb,IAAI,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACzD,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,GAAG,EAAE;YACL,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC;YAC3B,UAAU,GAAG,QAAQ,CAAC;YACtB,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE;gBACtB,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;aACrC;SACJ;QACD,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,GAAG,EAAE;YACL,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACzB,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBAChC,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;wBAChC,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;qBAClC;yBAAM;wBACH,OAAO,CAAC,CAAC;qBACZ;iBACJ;qBAAM,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBACvC,OAAO,CAAC,CAAC,CAAC;iBACb;qBAAM;oBACH,OAAO,CAAC,CAAC;iBACZ;YACL,CAAC,CAAC,CAAC;SACN;QACD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACrB,IAAI,GAAG,CAAC,SAAS,EAAE;gBACf,cAAc,IAAI,CAAC,CAAC;aACvB;QACL,CAAC,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,EAAE;gBACxC,MAAM,MAAM,GAAG,IAAI,sEAAa,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;gBACvB,MAAM,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC9D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACpC;YACD,IAAG,IAAI,CAAC,UAAU,KAAG,IAAI,IAAI,IAAI,CAAC,SAAS,KAAG,IAAI,EAAC;gBAC/C,MAAM,IAAI,GAAG,IAAI,kEAAW,EAAE,CAAC;gBAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC5B,IAAG,IAAI,CAAC,SAAS,IAAE,KAAK,EAAC;oBACrB,IAAI,CAAC,KAAK,GAAG,gEAAS,CAAC;iBAC1B;qBACG;oBACA,IAAI,CAAC,KAAK,GAAG,iEAAU,CAAC;iBAC3B;gBACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAE,sBAAsB;gBAC9C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC/B;YACD,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE;gBAC/B,MAAM,IAAI,GAAG,IAAI,kEAAW,EAAE,CAAC;gBAC/B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;gBACrB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;gBACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC/B;YAED,IAAI,GAAG,CAAC,SAAS,EAAE;gBACf,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;gBACnD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,GAAW,EAAE,EAAE;oBAChD,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;wBAC3C,KAAK,IAAI,CAAC,CAAC;wBACX,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,IAAI,KAAK,EAAE;4BACzD,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;yBAC/B;6BAAM,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,GAAG,KAAK,GAAG,cAAc,EAAE;4BAClF,MAAM,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;yBAChC;wBAED,IAAI,GAAG,CAAC,eAAe,EAAE;4BACrB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;yBACvC;wBACD,IAAI,MAAM,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,QAAQ,EAAE;4BACvD,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,wEAAc,EAAE;gCACtC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;6BACpC;iCAAM,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,0EAAgB,EAAE;gCAC/C,UAAU,IAAI,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;6BAC/C;4BACD,MAAM,CAAC,eAAe,GAAG,8EAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;yBAC7D;6BAAM;4BACH,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;yBAC3B;wBACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBAElB,IAAI,KAAK,KAAK,cAAc,EAAE;4BAC1B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gCACtB,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;oCAChC,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;wCAChC,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;qCAClC;yCAAM;wCACH,OAAO,CAAC,CAAC;qCACZ;iCACJ;qCAAM,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;oCACvC,OAAO,CAAC,CAAC,CAAC;iCACb;qCAAM;oCACH,OAAO,CAAC,CAAC;iCACZ;4BACL,CAAC,CAAC,CAAC;4BACH,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gCACvB,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;gCACzD,IAAI,OAAO,GAAG,EAAE,EAAE;oCACd,OAAO,GAAG,GAAG,CAAC;iCACjB;gCACD,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oCACrB,CAAC,CAAC,KAAK,GAAG,IAAI,sEAAU,EAAE,CAAC;oCAC3B,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;oCACxB,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,wEAAc,CAAC;oCAC9B,CAAC,CAAC,eAAe,GAAG,8EAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gCACpD,CAAC,CAAC,CAAC;6BACN;4BACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;4BAEzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;4BACxB,IAAI,IAAI,CAAC,kBAAkB,EAAE;gCACzB,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;6BAC5D;4BACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;yBAC9B;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IACO,eAAe,CAAC,GAAG,EAAE,WAAW;QACpC,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,MAAM,MAAM,GAAQ;gBAChB,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;gBAClC,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;gBACzC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;gBACzC,YAAY,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;gBAC7C,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;gBACrD,UAAU,EAAE,MAAM;gBAClB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;gBACjC,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;gBACvC,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;gBACtC,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;gBACxC,OAAO,EAAE,CAAC;gBACV,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;aAC/B,CAAC;YACF,IAAI,GAAG,CAAC,KAAK,IAAI,sCAAsC,IAAI,GAAG,CAAC,KAAK,KAAK,sCAAsC,EAAE;gBAC7G,0EAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC9C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;oBACxC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;oBACxB,MAAM,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;oBACxC,MAAM,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC;oBACpC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,OAAO,CAAC,MAAM,CAAC,CAAC;aACnB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAID,oBAAoB,CAAC,KAAK;QACtB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACvB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC;SACpC;QACD,IAAI,CAAC,MAAM,GAAG,8EAA0B,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,gFAA4B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACpE;QACD,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC;QACrE,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC;QACrE,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5C,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5D,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACvB,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;SACrC;IACL,CAAC;IACD,MAAM,CAAC,KAAK;QACR,IAAI,IAAI,CAAC,UAAU,IAAI,4EAAgB,EAAE;YACrC,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;gBAC7B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;gBAC3B,IAAI,IAAI,CAAC,eAAe,EAAE;oBACtB,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC/E;aACJ;iBAAM,IAAI,IAAI,CAAC,eAAe,EAAE;gBAC7B,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;aACrE;SACJ;IACL,CAAC;IACD,QAAQ,CAAC,KAAoB;QACzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACvB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvD,IAAI,OAAO,GAAG,8EAA0B,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACjE,IAAI,IAAI,CAAC,gBAAgB,EAAE;oBACvB,gFAA4B,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;iBAChE;gBACD,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;oBACvD,IAAI,IAAI,GAAG,EAAE,CAAC;oBAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACjD,IAAI,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;wBAClC,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACpC,IAAI,MAAM,CAAC,UAAU,EAAE;4BACnB,IAAI,CAAC,GAAG,IAAI,kEAAW,EAAE,CAAC;4BAC1B,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;4BACrB,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,iEAAU,CAAC,CAAC,CAAC,gEAAS,CAAC;4BACpD,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;4BACf,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yBAChB;qBACJ;oBACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;wBACjB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;qBACvB;iBACJ;gBACD,IAAI,KAAK,CAAC,OAAO,EAAE;oBACf,IAAI,cAAc,GAAG,IAAI,sEAAa,EAAE,CAAC;oBACzC,cAAc,CAAC,cAAc,GAAG,mEAAU,CAAC;oBAC3C,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAAC;wBACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BACrC,IAAI,MAAM,GAAQ,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC5C,IAAI,OAAO,GAAG,IAAI,sEAAa,EAAE,CAAC;4BAElC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,KAAK,EAAE;gCAC1C,OAAO,CAAC,cAAc,GAAG,mEAAU,CAAC;6BACvC;iCAAM;gCACH,OAAO,CAAC,cAAc,GAAG,kEAAS,CAAC;6BACtC;4BACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gCACvB,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;oCACtB,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gCACpD,CAAC,CAAC,CAAC;6BACN;iCAAM;gCACH,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;6BACnD;4BACD,IAAI,OAAO,CAAC,OAAO,EAAE;gCACjB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;oCACzB,cAAc,CAAC,OAAO,GAAG,EAAE,CAAC;iCAC/B;gCACD,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;6BACxC;yBACJ;qBACJ;oBACD,IAAI,cAAc,CAAC,OAAO,EAAE;wBACxB,IAAI,OAAO,CAAC,OAAO,EAAE;4BACjB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;yBACxC;6BAAM;4BACH,OAAO,CAAC,OAAO,GAAG,CAAC,cAAc,CAAC,CAAC;yBACtC;qBACJ;iBACJ;gBACD,IAAI,IAAI,CAAC,eAAe,EAAE;oBACtB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;wBACxD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;wBACtB,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBAChD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBAC5C,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;qBAClC;yBAAM;wBACH,IAAI,IAAI,CAAC,UAAU,IAAI,4EAAgB,EAAE;4BACrC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;yBACrE;qBACJ;iBACJ;aACJ;SACJ;aAAM;YACH,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;SAChC;IACL,CAAC;IACD,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI;QAC/B,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE;YACtB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBAClB,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;aACxB;YACD,IAAI,CAAC,GAAG,IAAI,sEAAa,EAAE,CAAC;YAC5B,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;YACd,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YACvB,CAAC,CAAC,QAAQ,GAAG,wEAAc,CAAC;YAC5B,QAAQ,MAAM,CAAC,SAAS,EAAE;gBACtB,KAAK,gEAAsB;oBACvB,CAAC,CAAC,QAAQ,GAAG,wEAAc,CAAC;oBAC5B,MAAM;gBACV,KAAK,oEAA0B;oBAC3B,CAAC,CAAC,QAAQ,GAAG,2EAAiB,CAAC;oBAC/B,MAAM;gBACV,KAAK,kEAAwB;oBACzB,CAAC,CAAC,QAAQ,GAAG,uEAAa,CAAC;oBAC3B,MAAM;gBACV,KAAK,mEAAyB;oBAC1B,CAAC,CAAC,QAAQ,GAAG,0EAAgB,CAAC;oBAC9B,MAAM;gBACV,KAAK,+EAAqC;oBACtC,CAAC,CAAC,QAAQ,GAAG,+EAAqB,CAAC;oBACnC,MAAM;gBACV,KAAK,sEAA4B;oBAC7B,CAAC,CAAC,QAAQ,GAAG,0EAAgB,CAAC;oBAC9B,MAAM;gBACV,KAAK,kFAAwC;oBACzC,CAAC,CAAC,QAAQ,GAAG,+EAAqB,CAAC;oBACnC,MAAM;aACb;YACD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC3B;QACD,OAAM;IACV,CAAC;IACD,YAAY;IACZ,iBAAiB;IACjB,OAAO;QACH,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACvD,CAAC;IAGD,gBAAgB,CAAC,KAAK;QAClB,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,YAAY,CAAC,IAAI;QACb,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,UAAU,CAAC,KAAK;QACZ,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE;YACzB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACtC;IACL,CAAC;IACD,aAAa,CAAC,GAAG;QACb,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED,aAAa,CAAC,GAAG;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,eAAe,CAAC,GAAG,EAAE,KAAa;QAC9B,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IACD,cAAc;QACV,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IACD,QAAQ;QACJ,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,UAAU,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC,EAAE,EAAE,CAAC,CAAC;SACV;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAID,WAAW,CAAC,KAAK;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IACD,aAAa,CAAC,KAAK;QACf,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,cAAc,CAAC,KAAK;QAChB,QAAQ;QACR,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IACD,aAAa;QACT,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC/B,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACvB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC3B,CAAC,CAAC,CAAC;iBACN;aACJ;iBAAM;gBACH,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACvC;SACJ;QACD,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IACD,YAAY;IACZ,UAAU,CAAC,KAAK;QACZ,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE;YACxB,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACjF,IAAI,GAAG,EAAE;gBACL,GAAG,CAAC,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;aAC1D;SACJ;QACD,iFAA2B,CAAC,IAAI,CAAC,MAAM,EAAE;YACrC,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE;YACzB,KAAK,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;IACP,CAAC;IACD,aAAa,CAAC,KAAK;QACf,IAAI,KAAK,CAAC,OAAO,EAAE;YACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC3C,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;aACjC;SACJ;QACD,iFAA2B,CAAC,IAAI,CAAC,MAAM,EAAE;YACrC,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE;YACzB,KAAK,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;IACP,CAAC;IACD,YAAY;IAEZ,gBAAgB;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,IAAI,uFAAiC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE;gBACnF,IAAI,MAAM,GAAG,EAAE,CAAC;gBAChB,MAAM,IAAI,GAAG,uFAAiC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;gBACrG,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;oBAC3B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC1D,IAAI,GAAG,IAAI,GAAG,CAAC,eAAe,EAAE;4BAC5B,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,eAAe,CAAC;4BACtC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;4BACnB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;yBACpB;6BAAM;4BACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;yBACrB;oBACL,CAAC,CAAC;oBACF,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC;oBAClC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBAC9D,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE;4BACzB,OAAO,CAAC,CAAC;yBACZ;wBACD,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE;4BACzB,OAAO,CAAC,CAAC,CAAC;yBACb;wBACD,OAAO,CAAC,CAAC;oBACb,CAAC,CAAC,CAAC;iBACN;aACJ;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IACD,oBAAoB;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IACD,oBAAoB,CAAC,GAAG;QACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAGD,QAAQ,CAAC,KAAmB;QACxB,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE;YACxB,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,IAAI,UAAU,GAAG,EAAE,CAAC;gBACpB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC9B,IAAI,CAAC,GAAG,IAAI,CAAC;oBACb,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;wBACjC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;qBAC/E;oBACD,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE;wBACnD,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;wBACpB,GAAG,CAAC,eAAe,GAAG,8EAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACpD,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,wEAAc,EAAE;4BACnC,UAAU,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;yBACjC;6BAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,0EAAgB,EAAE;4BAC5C,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;yBACvD;qBACJ;yBAAM;wBACH,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;qBACxB;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;oBACvB,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE;wBACtB,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;qBACrC;oBACD,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;oBACjF,IAAI,OAAO,GAAG,EAAE,EAAE;wBACd,OAAO,GAAG,GAAG,CAAC;qBACjB;oBACD,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;wBACrB,CAAC,CAAC,KAAK,GAAG,IAAI,sEAAU,EAAE,CAAC;wBAC3B,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;wBACxB,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,wEAAc,CAAC;wBAC9B,CAAC,CAAC,eAAe,GAAG,8EAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBACpD,CAAC,CAAC,CAAC;iBACN;aACJ;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IAID,aAAa,CAAC,KAAK;QACf,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,EAAE;YACzC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,iCAAiC;YACjC,mDAAmD;SACtD;IACL,CAAC;;AAzwCM,qBAAI,GAAQ,WAAY;AACxB,wBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,kGAA2B,CAAC,CAAC,CAAC;;;;;;4CA2mByG,kDAAM,SAAC,mFAA4B;;;yBA7lBpN,iDAAK;+BAcL,kDAAM;qBAON,iDAAK;2BAUL,kDAAM;iCAMN,iDAAK;uCA6BL,kDAAM;qBAGN,iDAAK;2BAYL,kDAAM;mBAuBN,iDAAK;yBA0BL,kDAAM;8BAkGN,iDAAK;oCAkBL,kDAAM;yBAMN,iDAAK;+BAkBL,kDAAM;uBAKN,iDAAK;6BAYL,kDAAM;6BAKN,iDAAK;mCAkBL,kDAAM;yBAKN,iDAAK;+BAiCL,kDAAM;6BAKN,iDAAK;mCAkBL,kDAAM;gCAKN,iDAAK;sCAkBL,kDAAM;4BAKN,iDAAK;kCAkBL,kDAAM;wBAKN,iDAAK;8BAkBL,kDAAM;yBAKN,iDAAK;+BAwBL,kDAAM;uBAKN,iDAAK;6BAwBL,kDAAM;yBAKN,iDAAK;+BA0BL,kDAAM;sBAYN,iDAAK;4BAaL,kDAAM;+BAIN,iDAAK;qCAkBL,kDAAM;gCAIN,iDAAK;sCAkBL,kDAAM;iCAweN,kDAAM;kCA2CN,kDAAM;4BAwIN,wDAAY,SAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,cACzC,wDAAY,SAAC,cAAc,EAAE,CAAC,QAAQ,CAAC;;AAlwC/B,gBAAgB;IAN5B,yDAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,yEAAuC;QAEvC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,gBAAgB;AAAA;IAiyChB,sBAAsB,SAAtB,sBAAsB;IAkB/B,YAAmB,EAAS,EAAS,YAA0B,EAAS,EAAqB;QAA1E,OAAE,GAAF,EAAE,CAAO;QAAS,iBAAY,GAAZ,YAAY,CAAc;QAAS,OAAE,GAAF,EAAE,CAAmB;QACzF,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE;YAC5E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,EAAE;YACpF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC7C,CAAC;IAED,OAAO,CAAC,KAAY;QAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3C,IAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACxD;YACD,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC5C;QAED,mEAAyB,EAAE,CAAC;IAChC,CAAC;IAED,OAAO;QACH,6DAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACpE,CAAC;IAED,MAAM;QACF,gEAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACvE,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;IACpE,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,2BAA2B,EAAE;YAClC,IAAI,CAAC,2BAA2B,CAAC,WAAW,EAAE,CAAC;SAClD;QAED,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC;SAC9C;IACL,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;YACxC,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;YAClC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC;SAC5H;aACI;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;YAC7H,IAAI,MAAM,EAAE;gBACR,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACjB,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;wBACvC,MAAM,GAAG,KAAK,CAAC;qBAClB;gBACL,CAAC,CAAC;aACL;YACD,OAAO,MAAM,CAAC;SACjB;IACL,CAAC;IAED,0BAA0B;QACtB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;YACxB,OAAO,KAAK,CAAC;SAChB;aACI;YACD,KAAK,IAAI,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;gBACvC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;oBAC9B,OAAO,KAAK,CAAC;iBAChB;aACJ;YACD,OAAO,IAAI,CAAC;SACf;IACL,CAAC;;;;;;;;2BAjGA,qDAAS,SAAC,KAAK;uBAEf,iDAAK;sBAEL,iDAAK;mBAEL,iDAAK;wBAEL,iDAAK;;AAVG,sBAAsB;IApBlC,yDAAS,CAAC;QACP,QAAQ,EAAE,yBAAyB;QACnC,QAAQ,EAAE;;;;;;;;;;;KAWT;QACD,eAAe,EAAE,0EAA8B;QAC/C,aAAa,EAAE,kEAAsB;QACrC,IAAI,EAAE;YACF,OAAO,EAAE,WAAW;SACvB;KACJ,CAAC;GACW,sBAAsB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;AC70CI;AAC0B;AACR;AACa;AACA;AAGE;AAIjE,MAAe,gBAAgB;;QACxB,cAAS,GAAG,EAAE,CAAC;QAEzB,kBAAkB;QACV,cAAS,GAAG,GAAG,CAAC;QAWxB,YAAY;QAEZ,iBAAiB;QACP,sBAAiB,GAAG,KAAK,CAAC;QAC5B,iBAAY,GAAG,EAAE,CAAC;QAgBnB,eAAU,GAAe,4EAAiB,CAAC;QAC3C,kBAAa,GAAG,CAAC,CAAC;QAClB,eAAU,GAAG,KAAK,CAAC,IAAI,CAAM,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC7D,cAAS,GAAU,EAAE,CAAC;QAEtB,gBAAW,GAA6B,IAAI,iDAAe,CAAU,KAAK,CAAC,CAAC;QAC5E,YAAO,GAA6B,IAAI,iDAAe,CAAU,KAAK,CAAC,CAAC;IAwCnF,CAAC;IA5EG,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAW;QACpB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ,EAAE;YACtC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC3C;QACD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACxB,CAAC;IAMD,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,KAAK;QACb,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACtB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,gBAAgB,IAAI,KAAK,CAAC,CAAC;YAC9G,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC7B;aAAM;YACH,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;SAC1B;IACL,CAAC;IAkBM,UAAU;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAEM,OAAO;QACV,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAEM,KAAK,CAAC,KAAa,EAAE,GAAW;QACnC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QACzC,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;QACnC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE;YAC1B,OAAO,EAAE,CAAC;SACb;QACD,IAAI,SAAS,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU,IAAI,2EAAgB,EAAE;YAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE;gBACR,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC9E,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;gBACvC,OAAO;aACV;SACJ;QACD,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,EAAE;gBACT,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBACvB,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;aACzB;SACJ;IACL,CAAC;;AAGE,MAAM,mBAAoB,SAAQ,gBAAgB;IAUrD,YAAY,YAAY,EAAE,OAAO,EAAE,UAAsB;QACrD,KAAK,EAAE,CAAC;QATJ,eAAU,GAAe,+EAAoB,CAAC;QAG9C,aAAQ,GAAG,CAAC,CAAC;QACb,WAAM,GAAmB,IAAI,uEAAc,EAAE,CAAC;QAE9C,cAAS,GAAG,IAAI,CAAC;QAIrB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC3B,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;YAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAChC;IACL,CAAC;IAEM,iBAAiB,CAAC,OAAwB;QAC7C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;YAC9B,MAAM,EAAE,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAClB,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACvB;aAAM;YACH,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACzB;IACL,CAAC;IACM,SAAS,CAAC,MAAuB;QACpC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;IACjC,CAAC;IACM,QAAQ,CAAC,IAAmB;QAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAC5B,CAAC;IAES,SAAS,CAAC,IAAY,EAAE,QAAgB;QAC9C,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBACrG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,GAAG,QAAQ,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACrD,mCAAmC;YACnC,+BAA+B;YAC/B,aAAa;YACb,IAAI;YACJ,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBACzF,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAEM,OAAO;QACV,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAEM,eAAe,CAAC,KAAa,EAAE,GAAW;QAC7C,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtE,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,IAAI,CAAC,OAAO,EAAE;oBACd,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;wBACtD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;4BAC5E,IAAI,MAAM,EAAE;gCACR,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;gCACtB,IAAI,IAAI,CAAC,UAAU,KAAK,6EAAkB,EAAE;oCACxC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;oCACvC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,wDAAG,EAAE,CAAC,CAAC;oCACjF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oCAC5B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;iCAC1B;qCAAM;oCACH,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;wCAC7D,IAAI,GAAG,EAAE;4CACL,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;yCAC5B;6CAAM;4CACH,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;yCAC1B;wCACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,wDAAG,EAAE,CAAC,CAAC;wCACjF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wCAC5B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oCAC3B,CAAC,CAAC,CAAC;iCACN;6BACJ;wBACL,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;iBACN;qBAAM;oBACH,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;wBAC5E,IAAI,MAAM,EAAE;4BACR,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;4BACtB,IAAI,IAAI,CAAC,UAAU,KAAK,6EAAkB,EAAE;gCACxC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;gCACvC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,wDAAG,EAAE,CAAC,CAAC;gCACjF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCAC5B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;6BAC1B;iCAAM;gCACH,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;oCAChE,IAAI,IAAI,EAAE;wCACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;qCAC7B;yCAAM;wCACH,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;qCAC1B;oCACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,wDAAG,EAAE,CAAC,CAAC;oCACjF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oCAC5B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gCAC3B,CAAC,CAAC,CAAC;6BACN;yBACJ;oBACL,CAAC,CAAC,CAAC;iBACN;aACJ;iBAAM;gBACH,IAAI,IAAI,CAAC,UAAU,KAAK,6EAAkB,EAAE;oBACxC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;oBACvC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,wDAAG,EAAE,CAAC,CAAC;oBACjF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC5B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;iBAC1B;qBAAM;oBACH,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC7E,IAAI,IAAI,EAAE;4BACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;yBAC7B;6BAAM;4BACH,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;yBAC1B;wBACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,wDAAG,EAAE,CAAC,CAAC;wBACjF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC5B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBAC3B,CAAC,CAAC,CAAC;iBACN;aACJ;SACJ;IACL,CAAC;IAEO,UAAU,CAAC,MAAM,EAAE,IAAI;QAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzB,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,EAAE;YACR,IAAI,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,UAAU,IAAI,+EAAoB,EAAE;gBACzC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACpB,MAAM,GAAG,GAAG,IAAI,wDAAG,EAAE,CAAC;oBACtB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;oBAChB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;oBAC5B,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;oBAClB,KAAK,EAAE,CAAC;oBACR,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACpB,MAAM,IAAI,GAAG,EAAE,CAAC;oBAChB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;wBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;4BAChB,QAAQ,EAAE,KAAK;4BACf,IAAI,EAAE,KAAK;4BACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;yBAC1B,CAAC;wBACF,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;oBACvB,CAAC,CAAC,CAAC;oBACH,MAAM,GAAG,GAAG,IAAI,wDAAG,EAAE,CAAC;oBACtB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;oBAChB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;oBAChB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;oBAC5B,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;oBAClB,KAAK,EAAE,CAAC;oBACR,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC,CAAC,CAAC;aACN;SACJ;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAE5B,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,IAAI,CAAC,UAAU,KAAK,6EAAkB,EAAE;gBACxC,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE;oBACnB,MAAM,aAAa,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;oBAC9C,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;oBAC1B,OAAO,GAAG,IAAI,aAAa,EAAE;wBACzB,GAAG,IAAI,EAAE,CAAC;qBACb;oBACD,OAAO,IAAI,CAAC,aAAa,GAAG,GAAG,EAAE;wBAC7B,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;qBAC5B;iBACJ;aACJ;iBAAM;gBACH,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE;oBAClB,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;iBAC1C;aACJ;YACD,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,wDAAG,EAAE,CAAC,CAAC;YACjF,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACpC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjB,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC9B,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;gBAE1B,IAAI,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC;gBAEhC,IAAI,MAAM,GAAG,EAAE,EAAE;oBACb,QAAQ,IAAI,MAAM,GAAG,EAAE,CAAC;iBAC3B;gBACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC;aACnD;SACJ;aAAM;YACH,IAAI,IAAI,CAAC,UAAU,KAAK,6EAAkB,EAAE;gBACxC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE;oBAC/B,MAAM,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;oBAC5B,OAAO,IAAI,CAAC,aAAa,GAAG,GAAG,EAAE;wBAC7B,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;wBACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;4BACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,wDAAG,EAAE,CAAC,CAAC;yBACnC;qBACJ;iBACJ;aACJ;YACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;SAClD;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;;AAGE,MAAM,sBAAuB,SAAQ,gBAAgB;IAKxD,YAAY,KAAK;QACb,KAAK,EAAE,CAAC;QALJ,cAAS,GAAU,EAAE,CAAC;QACtB,aAAQ,GAAoB,EAAE,CAAC;QAC/B,UAAK,GAAkB,EAAE,CAAC;QAI9B,IAAI,KAAK,EAAE;YACP,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aACzB;YACD,IAAI,KAAK,CAAC,UAAU,EAAE;gBAClB,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;qBACzB;yBAAM;wBACH,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;qBACvB;oBACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAEM,SAAS,CAAC,MAAuB;QACpC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;IAC3B,CAAC;IACM,iBAAiB,CAAC,OAAwB;IACjD,CAAC;IACM,QAAQ,CAAC,KAAoB;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IACM,eAAe,CAAC,KAAa,EAAE,GAAW;QAC7C,MAAM,QAAQ,GAAG,iFAA6B,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1F,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;QACrC,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,QAAQ,CAAC,MAAM,IAAI,EAAE,EAAE;YACvB,SAAS,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;SACnC;aAAM;YACH,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,OAAO,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE;gBAChC,SAAS,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,EAAE,CAAC,CAAC;gBACjE,SAAS,IAAI,EAAE,CAAC;gBAChB,SAAS,EAAE,CAAC;aACf;SACJ;QACD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC;IAES,SAAS,CAAC,IAAY,EAAE,QAAgB;QAC9C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7XgD;AAG9B;AACgC;AACM;AACI;AACA;AACJ;AACQ;AACY;AACV;AACd;AACS;AACI;AAGA;AACJ;AACI;AACA;AACA;AACE;AACN;AACL;AACiB;AACV;AACI;AAClB;AACuB;IAQhE,iBAAiB,SAAjB,iBAAkB,SAAQ,4DAAc;IA0ajD,mBAAmB;IACnB,YAAoB,SAA2B,EAAS,WAA+B,EAAU,eAAgC,EAAU,KAAwB,EAAS,SAAmB,EAA+C,IAAI;QAC9O,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,cAAS,GAAT,SAAS,CAAkB;QAAS,gBAAW,GAAX,WAAW,CAAoB;QAAU,oBAAe,GAAf,eAAe,CAAiB;QAAU,UAAK,GAAL,KAAK,CAAmB;QAAS,cAAS,GAAT,SAAS,CAAU;QAA+C,SAAI,GAAJ,IAAI;QAxalP,oBAAoB;QACpB,gBAAW,GAAG,KAAK,CAAC;QACpB,oBAAe,GAAG,KAAK,CAAC;QACxB,aAAQ,GAAG,KAAK,CAAC;QAKjB,WAAM,GAAmB,IAAI,wEAAc,EAAE,CAAC;QAcpC,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QAc1C,6BAAwB,GAAG,IAAI,wDAAY,EAAO;QAqClD,eAAU,GAAG,IAAI,wDAAY,EAAO;QAuBpC,2BAAsB,GAAG,IAAI,wDAAY,EAAO;QAuBhD,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QA4C1C,0BAAqB,GAAG,IAAI,wDAAY,EAAO;QAEzD,YAAY;QACZ,oBAAoB;QACpB,oBAAe,GAAe,6EAAiB,CAAC;QAoBtC,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QAuB1C,yBAAoB,GAAG,IAAI,wDAAY,EAAO;QAuB9C,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QACpD,YAAY;QACZ,wBAAwB;QACxB,wBAAmB,GAAY,KAAK,CAAC;QAoB3B,yBAAoB,GAAG,IAAI,wDAAY,EAAO;QACxD,YAAY;QACZ,2BAA2B;QAC3B,2BAAsB,GAAY,KAAK,CAAC;QAoB9B,4BAAuB,GAAG,IAAI,wDAAY,EAAO;QAC3D,YAAY;QACZ,uBAAuB;QACvB,uBAAkB,GAAY,KAAK,CAAC;QAoB1B,wBAAmB,GAAG,IAAI,wDAAY,EAAO;QACvD,YAAY;QACZ,mBAAmB;QACnB,mBAAc,GAAY,KAAK,CAAC;QAoBtB,oBAAe,GAAG,IAAI,wDAAY,EAAO;QAuBzC,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QAqB1C,kBAAa,GAAG,IAAI,wDAAY,EAAO;QAqBvC,2BAAsB,GAAG,IAAI,wDAAY,EAAO;QAqBhD,4BAAuB,GAAG,IAAI,wDAAY,EAAO;QAC3D,YAAY;QACZ,YAAY;QACZ,iBAAY,GAAC,GAAG,CAAC;QA4JjB,oBAAe,GAAG,KAAK,CAAC;QA4HxB,kBAAa,GAAG,CAAC,CAAC;QAClB,SAAI,GAAG,EAAE,CAAC;QACV,cAAS,GAAG,EAAE,CAAC;QAuJf,YAAO,GAAG,KAAK,CAAC;QAraZ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;QAClF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,iBAAiB,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAC3F,2GAA2G;IAC/G,CAAC;QAraG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;QAQG,kBAAkB;QAClB,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACxC,CAAC;IACD,IAAI,kBAAkB,CAAC,GAAG;QACtB,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC;QACnC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACrE,CAAC;IAGD,YAAY;IACZ,wBAAwB;IACxB,IAAI,cAAc;QACd,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;SAC1C;aAAM,IAAI,IAAI,CAAC,IAAI,EAAE;YAClB,OAAO,IAAI,CAAC,IAAI;SACnB;aAAM;YACH,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QAClB,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,GAAG,CAAC;SACzC;aAAM,IAAI,IAAI,CAAC,IAAI,EAAE;YAClB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;SACnB;IACL,CAAC;QAOG,IAAI;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,CAAC,GAAG;QACR,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,YAAY,GAAG,4EAAwB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SACpF;aAAM;YACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC5B;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;QAQG,gBAAgB;QAChB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;SAC9C;aAAM;YACH,OAAO,IAAI,CAAC,qBAAqB,CAAC;SACrC;IACL,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG;QACpB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,GAAG,CAAC;YAC1C,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC;YACjC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SAChE;IACL,CAAC;QAOG,UAAU;QACV,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;SACxC;aAAM;YACH,OAAO,IAAI,CAAC,eAAe,CAAC;SAC/B;IACL,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,GAAG,CAAC;YACpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SAC7D;aAAM;YACH,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACpD;IACL,CAAC;IAGD,YAAY;IACZ,yBAAyB;IACzB,IAAI,sBAAsB;QACtB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,KAAK,GAAG,IAAI,gFAAe,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE;gBACzC,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,gBAAgB,EAAE;oBAC1D,KAAK,CAAC,gBAAgB,GAAG,0EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;iBACzG;gBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,gBAAgB,EAAE;oBAC1D,KAAK,CAAC,gBAAgB,GAAG,0EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;iBACzG;gBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,EAAE;oBAC9C,KAAK,CAAC,IAAI,GAAG,0EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;iBACjF;gBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,gBAAgB,EAAE;oBAC1D,KAAK,CAAC,gBAAgB,GAAG,0EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;iBACzG;aACJ;YACD,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;QAIG,eAAe;QACf,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;SAC7C;aAAM;YACH,OAAO,IAAI,CAAC,oBAAoB,CAAC;SACpC;IACL,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,GAAG,CAAC;YACzC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;SACvE;aAAM;YACH,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;YAChC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;SAC9D;IACL,CAAC;QASG,UAAU;QACV,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;SACxC;aAAM;YACH,OAAO,IAAI,CAAC,eAAe,CAAC;SAC/B;IACL,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,GAAG,CAAC;YACpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SAC7D;aAAM;YACH,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACpD;IACL,CAAC;QAQG,cAAc;QACd,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;SAC5C;aAAM;YACH,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACnC;IACL,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QAClB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,GAAG,CAAC;YACxC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;SACrE;aAAM;YACH,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;YAC/B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAC5D;IACL,CAAC;QAQG,UAAU;QACV,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;SACxC;aAAM;YACH,OAAO,IAAI,CAAC,eAAe,CAAC;SAC/B;IACL,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,GAAG,CAAC;YACpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SAC7D;aAAM;YACH,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACpD;IACL,CAAC;QAQG,cAAc;QACd,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;SAC5C;aAAM;YACH,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACnC;IACL,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QAClB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,GAAG,CAAC;YACxC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;SACrE;aAAM;YACH,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;YAC/B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAC5D;IACL,CAAC;QAQG,iBAAiB;QACjB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC;SAC/C;aAAM;YACH,OAAO,IAAI,CAAC,sBAAsB,CAAC;SACtC;IACL,CAAC;IACD,IAAI,iBAAiB,CAAC,GAAG;QACrB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,GAAG,CAAC;YAC3C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;SAC3E;aAAM;YACH,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAC;YAClC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;SAClE;IACL,CAAC;QAQG,aAAa;QACb,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;SACvC;aAAM;YACH,OAAO,IAAI,CAAC,kBAAkB,CAAC;SAClC;IACL,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,GAAG,CAAC;YACnC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;SAC/D;aAAM;YACH,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;YAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAC1D;IACL,CAAC;QAQG,SAAS;QACT,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;SACvC;aAAM;YACH,OAAO,IAAI,CAAC,cAAc,CAAC;SAC9B;IACL,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,GAAG,CAAC;YACnC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;SAC3D;aAAM;YACH,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAClD;IACL,CAAC;QAQG,UAAU;QACV,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;SACxC;aAAM;YACH,OAAO,IAAI,CAAC,eAAe,CAAC;SAC/B;IACL,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,GAAG,CAAC;YACpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SAC7D;aAAM;YACH,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACpD;IACL,CAAC;QAYG,OAAO;QACP,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACnC;aAAM;YACH,OAAO,IAAI,CAAC,YAAY,CAAC;SAC5B;IACL,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;QAKG,gBAAgB;QAChB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;SACnD;aAAM;YACH,OAAO,IAAI,CAAC,qBAAqB,CAAC;SACrC;IACL,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG;QACpB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,GAAG,CAAC;YAC/C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;SAC/E;aAAM;YACH,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC;YACjC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SAChE;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;QAKG,iBAAiB;QACjB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,OAAO,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;SACpD;aAAM;YACH,OAAO,IAAI,CAAC,sBAAsB,CAAC;SACtC;IACL,CAAC;IACD,IAAI,iBAAiB,CAAC,GAAG;QACrB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,GAAG,GAAG,CAAC;YAChD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;SAChF;aAAM;YACH,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAC;YAClC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;SAClE;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;QAM2B,UAAU,CAAC,OAAmB;QACtD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;QACzB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,IAAI,GAAG,EAAE;YAC5E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY,GAAC,IAAI,CAAC;SACtE;IACL,CAAC;IAeD,aAAa,CAAC,GAAG;QACb,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC/B,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBAChC,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBAChC,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;iBAClC;qBAAM;oBACH,OAAO,CAAC,CAAC;iBACZ;aACJ;iBAAM,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBACvC,OAAO,CAAC,CAAC,CAAC;aACb;iBAAM;gBACH,OAAO,CAAC,CAAC;aACZ;QACL,CAAC,CAAC,CAAC;QACH,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,QAAQ,GAAG,GAAG,CAAC;QACnB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACrB,IAAI,GAAG,CAAC,SAAS,EAAE;gBACf,cAAc,IAAI,CAAC,CAAC;aACvB;QACL,CAAC,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,EAAE;gBACxC,MAAM,MAAM,GAAG,IAAI,sEAAa,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;gBACvB,MAAM,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC9D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACpC;YACD,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE;gBAC/B,MAAM,IAAI,GAAG,IAAI,kEAAW,EAAE,CAAC;gBAC/B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;gBACrB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;gBACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC/B;YAED,IAAI,GAAG,CAAC,SAAS,EAAE;gBACf,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;gBACnD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,GAAW,EAAE,EAAE;oBAChD,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE;wBACtD,QAAQ,IAAI,CAAC,CAAC;qBACjB;yBAAM;wBAEH,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,0EAAgB,EAAE;4BACrC,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;yBAC/B;qBACJ;oBACD,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;wBAC3C,KAAK,IAAI,CAAC,CAAC;wBACX,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,GAAG,CAAC,EAAE;4BACzD,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;yBAC7B;6BAAM,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,IAAI,QAAQ,CAAC,MAAM,EAAE;4BAChF,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;yBAC7B;wBACD,IAAI,GAAG,CAAC,eAAe,EAAE;4BACrB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;yBACvC;wBACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBAClB,IAAI,KAAK,KAAK,cAAc,EAAE;4BAC1B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gCACf,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,EAAE;oCAClD,CAAC,CAAC,KAAK,GAAG,IAAI,sEAAU,EAAE,CAAC;oCAC3B,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;oCACtC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,0EAAgB,CAAC;iCACnC;4BACL,CAAC,CAAC,CAAC;4BACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;4BACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;4BACxB,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gCAC/C,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gCAC5C,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gCAC5D,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gCAChD,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;6BACrC;yBACJ;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IACD,eAAe,CAAC,GAAG,EAAE,UAAU;QAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,MAAM,GAAG;gBACX,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;gBACtC,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;gBAClC,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;gBACzC,YAAY,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;gBAC7C,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;gBACrD,UAAU,EAAE,MAAM;gBAClB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;gBACjC,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;gBACvC,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;gBACtC,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,OAAO,EAAE,CAAC;aACb,CAAC;YACF,IAAI,GAAG,CAAC,KAAK,IAAI,sCAAsC,IAAI,GAAG,CAAC,KAAK,KAAK,sCAAsC,EAAE;gBAC7G,0EAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC9C,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;oBACjC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;oBACxB,MAAM,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;oBACxC,MAAM,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC;oBACpC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,OAAO,CAAC,MAAM,CAAC,CAAC;aACnB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACD,sBAAsB;QAClB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAKD,kBAAkB;QAEd,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;QAChE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;QACjE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;QAGjE,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QACjD,IAAI,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE;YAC5B,KAAK,CAAC,WAAW,EAAE,CAAC;SACvB;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE;YAChC,OAAO,CAAC,WAAW,EAAE,CAAC;SACzB;QACD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,4FAAqC,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9E,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC;QAC/D,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAC3B;aAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAChC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC/C,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC/B;aAAM;YACH,sFAAoC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACrF,IAAI,MAAM,EAAE;oBACR,IAAI,MAAM,CAAC,aAAa,EAAE;wBACtB,IAAI,MAAM,CAAC,QAAQ,EAAE;4BACjB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;4BACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,sEAAa,EAAE,CAAC;4BAC5C,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gCACrD,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gCAClD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;oCAC9B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,wEAAc,CAAC;oCAChD,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;iCACtD;qCAAM;oCACH,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,qEAAW,CAAC;oCAC7C,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,EAAE,CAAC;iCACpC;gCACD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;oCACrE,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;wCAC9B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,wEAAc,CAAC;wCAChD,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;qCACtD;yCAAM;wCACH,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,qEAAW,CAAC;wCAC7C,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,EAAE,CAAC;qCACpC;oCACD,IAAI,CAAC,cAAc,EAAE,CAAC;gCAC1B,CAAC,CAAC,CAAC;6BACN;iCAAM;gCACH,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,KAAK,CAAC;gCACnC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,qEAAW,CAAC;gCAC7C,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,EAAE,CAAC;gCACjC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;oCACrC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;iCAC7D;gCACD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;oCACrE,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,EAAE,CAAC;oCACjC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wCAClB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;qCAC1C;oCACD,IAAI,CAAC,cAAc,EAAE,CAAC;gCAC1B,CAAC,CAAC,CAAC;6BACN;4BACD,IAAI,CAAC,aAAa,EAAE,CAAC;4BACrB,IAAI,CAAC,oBAAoB,EAAE,CAAC;yBAC/B;6BAAM;4BACH,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;4BACjD,IAAI,CAAC,SAAS,EAAE,CAAC;4BACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC;4BACjC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gCACrE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;4BAClB,CAAC,CAAC,CAAC;4BACH,IAAI,CAAC,aAAa,EAAE,CAAC;4BACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;yBAC3B;qBACJ;yBAAM;wBACH,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;wBACrC,IAAI,CAAC,iBAAiB,GAAG,4EAA0B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;wBAC1F,IAAI,CAAC,aAAa,EAAE,CAAC;wBACrB,IAAI,CAAC,oBAAoB,EAAE,CAAC;qBAC/B;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAChF,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;gBAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,uFAAgC,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3E,IAAI,QAAQ,KAAK,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE;gBACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC5B;iBAAM;gBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACD,YAAY,CAAC,GAAG;QACZ,IAAI,GAAG,EAAE;YACL,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACjB,IAAI,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gBACtF,IAAI,KAAK,EAAE;oBACP,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;iBACpB;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,eAAe;QACX,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,KAAK,CAAC,eAAe,EAAE,CAAC;IAC5B,CAAC;IACD,YAAY;IACZ,oBAAoB;IACpB,aAAa;QACT,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1G,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;SAClD;IACL,CAAC;IAMD,oBAAoB;QAChB,iCAAiC;QACjC,uGAAuG;QACvG,GAAG;QACH,uEAAuE;QACvE,uEAAuE;QACvE,4GAA4G;QAC5G,gEAAgE;QAChE,+GAA+G;QAC/G,GAAG;QACH,qBAAqB;QACrB,2FAA2F;QAC3F,6BAA6B;QAE7B,KAAK;QACL,qFAAqF;QACrF,mCAAmC;QACnC,OAAO;QACP,8BAA8B;QAC9B,wCAAwC;QACxC,GAAG;QAGH,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;YACpC,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;oBACtD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;wBAC5E,IAAI,MAAM,EAAE;4BACR,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;4BACtB,IAAI,IAAI,CAAC,UAAU,KAAK,8EAAkB,EAAE;gCACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;6BAC3B;iCAAM;gCACH,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;oCAC7D,IAAI,GAAG,EAAE;wCACL,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;qCAC5B;yCAAM;wCACH,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;qCAC1B;oCACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gCAC5B,CAAC,CAAC,CAAC;6BACN;yBACJ;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC5E,IAAI,MAAM,EAAE;wBACR,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;wBACtB,IAAI,IAAI,CAAC,UAAU,KAAK,8EAAkB,EAAE;4BACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;yBAC3B;6BAAM;4BACH,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;gCAChE,IAAI,IAAI,EAAE;oCACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;iCAC7B;qCAAM;oCACH,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;iCAC1B;gCACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;4BAC5B,CAAC,CAAC,CAAC;yBACN;qBACJ;gBACL,CAAC,CAAC,CAAC;aACN;SACJ;aAAM;YACH,IAAI,IAAI,CAAC,UAAU,KAAK,8EAAkB,EAAE;gBACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;aAC3B;iBAAM;gBACH,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC7E,IAAI,IAAI,EAAE;wBACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;qBAC7B;yBAAM;wBACH,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;qBAC1B;oBACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC5B,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IACD,kCAAkC;IAClC,+BAA+B;IAC/B,2CAA2C;IAC3C,uDAAuD;IACvD,yHAAyH;IACzH,aAAa;IACb,mBAAmB;IACnB,SAAS;IACT,kCAAkC;IAClC,gCAAgC;IAChC,oDAAoD;IACpD,kEAAkE;IAClE,8BAA8B;IAC9B,yHAAyH;IACzH,8CAA8C;IAC9C,eAAe;IACf,gBAAgB;IAChB,2GAA2G;IAC3G,8CAA8C;IAC9C,eAAe;IACf,SAAS;IACT,GAAG;IACH,QAAQ,CAAC,KAAK;QACV,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;YACpC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBAClG,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBACtD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;iBAC3B;YACL,CAAC,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBACzF,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBACtD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;iBAC3B;YACL,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IACD,UAAU,CAAC,MAAM;QACb,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,EAAE;YACR,IAAI,IAAI,CAAC,UAAU,IAAI,gFAAoB,EAAE;gBACzC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACpB,MAAM,GAAG,GAAG,IAAI,wDAAG,EAAE,CAAC;oBACtB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;oBAChB,8BAA8B;oBAC9B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACpB,MAAM,IAAI,GAAG,EAAE,CAAC;oBAChB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;wBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;4BAChB,QAAQ,EAAE,KAAK;4BACf,IAAI,EAAE,KAAK;4BACX,yBAAyB;yBAC5B,CAAC;wBACF,qBAAqB;oBACzB,CAAC,CAAC,CAAC;oBACH,MAAM,GAAG,GAAG,IAAI,wDAAG,EAAE,CAAC;oBACtB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;oBAChB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;oBAChB,8BAA8B;oBAC9B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;SACvC;IACL,CAAC;IAGD,YAAY;IACZ,iBAAiB;IACjB,OAAO;QACH,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IACD,gBAAgB,CAAC,KAAK;QAClB,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IACD,gBAAgB,CAAC,IAAI;QACjB,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACb,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;IACrD,CAAC;IACD,YAAY,CAAC,IAAI;QACb,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IACD,WAAW,CAAC,IAAI;QACZ,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;YAC/B,6BAA6B;SAChC;IACL,CAAC;IACD,aAAa,CAAC,MAAM;QAChB,MAAM,KAAK,GAAG;YACV,OAAO,EAAE,EAAE;SACd,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACpC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SAC1E;QACD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,gFAA4B,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;SAClC;QACD,6BAA6B;IACjC,CAAC;IACD,cAAc;QACV,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACvB,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC5B,CAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;SAClC;aAAM,IAAI,IAAI,CAAC,IAAI,EAAE;YAClB,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;YACf,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACrB,CAAC,EAAE,EAAE,CAAC,CAAC;SACV;QACD,6BAA6B;IACjC,CAAC;IAED,SAAS;QACL,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACvB,IAAI,CAAC,MAAM,GAAG,8EAA0B,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACjE,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC5C,IAAI,IAAI,CAAC,gBAAgB,EAAE;oBACvB,gFAA4B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;iBACpE;gBACD,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACpD,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC5D,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACnD;SACJ;QACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,6BAA6B;IACjC,CAAC;IACD,aAAa,CAAC,KAAK;QACf,iFAA2B,CAAC,IAAI,CAAC,MAAM,EAAE;YACrC,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE;YACzB,KAAK,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QACH,6BAA6B;IACjC,CAAC;IACD,YAAY;IAEZ,gBAAgB;QACZ,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,uFAAiC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE;YACnF,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,uFAAiC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;YACrG,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;gBAC3B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC1D,IAAI,GAAG,IAAI,GAAG,CAAC,eAAe,EAAE;wBAC5B,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,eAAe,CAAC;wBACtC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;wBACnB,wEAAwE;wBACxE,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE;4BACvC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;yBAChC;wBACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;qBACpB;yBAAM;wBACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACrB;gBACL,CAAC,CAAC;gBACF,yBAAyB;gBACzB,gCAAgC;gBAChC,gDAAgD;gBAChD,6BAA6B;gBAC7B,gFAAgF;gBAChF,oDAAoD;gBACpD,0CAA0C;gBAC1C,WAAW;gBACX,OAAO;gBACP,IAAI;gBACJ,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC;gBAClC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBAC9D,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE;wBACzB,OAAO,CAAC,CAAC;qBACZ;oBACD,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE;wBACzB,OAAO,CAAC,CAAC,CAAC;qBACb;oBACD,OAAO,CAAC,CAAC;gBACb,CAAC,CAAC,CAAC;aACN;SACJ;QACD,6BAA6B;IACjC,CAAC;IAED,oBAAoB;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IACD,oBAAoB,CAAC,GAAG;QACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IACD,YAAY,CAAC,EAAE;QACX,IAAI,EAAE,EAAE;YACJ,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;YAC1B,IAAI,IAAI,EAAE;gBACN,MAAM,QAAQ,GAAG,EAAE,CAAC;gBACpB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACf,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;gBAC7B,CAAC,CAAC,CAAC;gBACH,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACb,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;gBAC1B,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAKD,cAAc;IAEd,CAAC;IAED,cAAc,CAAC,UAAU;QACrB,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;QACrC,cAAc,CAAC,GAAG,CAAC,mFAA4B,EAAE,UAAU,CAAC,CAAC;QAC7D,OAAO,IAAI,gEAAc,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAC9D,CAAC;IAED,UAAU,CAAC,KAAK,EAAE,IAAI;QAClB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,OAAO,GAAQ,wFAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvE,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE;gBAC/C,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,GAAG,EAAE,CAAC;aACrD;YACD,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;SACrE;IACL,CAAC;IACD,eAAe,CAAC,KAAK,EAAE,IAAI;QACvB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,OAAO,GAAG,wFAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClE,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,EAAE;gBAChD,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,GAAG,EAAE,CAAC;aACtD;YACD,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;SACtE;IACL,CAAC;IACD,eAAe,CAAC,KAAK,EAAE,IAAI;QACvB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,OAAO,GAAG,wFAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClE,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,EAAE;gBAChD,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,GAAG,EAAE,CAAC;aACtD;YACD,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;SACtE;IACL,CAAC;IAED,aAAa,CAAC,OAAO,EAAE,IAAI;QACvB,IAAI,IAAI,EAAE;YACN,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACzC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC3C,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;SAC7B;QACD,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;YACnC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,EAAE,CAAC;SACzC;QACD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,WAAW,CAAC,KAAK,EAAE,IAAI;QACnB,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC;IAC3D,CAAC;IACD,WAAW,CAAC,KAAK,EAAE,IAAI;QACnB,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,iBAAiB,CAAC;IACzD,CAAC;IAED,YAAY,CAAC,IAAI;QACb,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,sFAA+B,CAAC,IAAI,CAAC,CAAC;SACzC;IACL,CAAC;IACD,KAAK,CAAC,IAAI,EAAE,QAAQ;QAChB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IACD,KAAK,CAAC,IAAI;QACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;;AAvjCM,sBAAI,GAAQ,YAAa;AACzB,yBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,mGAA4B,CAAC,CAAC,CAAC;;;;;;;4CAyawH,kDAAM,SAAC,mFAA4B;;;yBA3ZpO,iDAAK;+BASL,kDAAM;iCAKN,iDAAK;uCASL,kDAAM;mBAwBN,iDAAK;yBAaL,kDAAM;+BAMN,iDAAK;qCAiBL,kDAAM;yBAKN,iDAAK;+BAkBL,kDAAM;8BA0BN,iDAAK;oCAkBL,kDAAM;yBAMN,iDAAK;+BAkBL,kDAAM;6BAKN,iDAAK;mCAkBL,kDAAM;yBAKN,iDAAK;+BAkBL,kDAAM;6BAKN,iDAAK;mCAkBL,kDAAM;gCAKN,iDAAK;sCAkBL,kDAAM;4BAKN,iDAAK;kCAkBL,kDAAM;wBAKN,iDAAK;8BAkBL,kDAAM;yBAKN,iDAAK;+BAkBL,kDAAM;sBASN,iDAAK;4BAYL,kDAAM;+BAGN,iDAAK;qCAkBL,kDAAM;gCAGN,iDAAK;sCAkBL,kDAAM;yBAKN,qDAAS,SAAC,WAAW;;AAnab,iBAAiB;IAN7B,yDAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,0EAAwC;QAExC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,iBAAiB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrCwB;AAC4F;AACpD;AACM;AACwB;AACrC;AACrB;AACqB;AACpB;AACC;AAEqB;AACxB;AACd;AAC0B;IAQhE,eAAe,SAAf,eAAgB,SAAQ,4DAAc;IAmC/C,YAAY;IAEZ,YAAY,KAAwB,EAA+C,IAAI;QACnF,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD4D,SAAI,GAAJ,IAAI;QAlB7E,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QAe1C,sBAAiB,GAAG,IAAI,wDAAY,EAAO;QAKjD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;QA/BG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAOG,WAAW;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;IAC1C,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,CAAC;QACrC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAUD,kBAAkB;IAClB,CAAC;IAED,QAAQ;QACJ,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,KAAK,EAAE,CAAC;SACnB;IACL,CAAC;IAED,QAAQ,CAAC,EAAE;QACP,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC3D,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,IAAI,CAAC,aAAa,GAAG,IAAI,sEAAa,EAAE,CAAC;SAC5C;IACL,CAAC;;AA1DM,oBAAI,GAAG,UAAU,CAAC;AAClB,uBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,iGAA0B,CAAC,CAAC,CAAC;;;4CAkCjC,kDAAM,SAAC,mFAA4B;;;yBA7BzE,iDAAK;+BAWL,kDAAM;0BAIN,iDAAK;gCAWL,kDAAM;;AAlCE,eAAe;IAN3B,yDAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,wEAAsC;QAEtC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,eAAe;AAAA;AA8DrB,MAAM,aAAc,SAAQ,oEAAS;IAExC,MAAM,CAAC,SAAS;QACZ,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,UAAU;YACd,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAC,MAAM,EAAC,MAAM,CAAC;YAC5B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC;YAC1C,CAAC;SACJ,CAAC;QAEF,iFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;YAC5D,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,kBAAkB;YACtB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,oBAAoB;aAChC;YACD,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;SACT,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,qEAAU;aACzB;SACJ,CAAC;IACN,CAAC;;AAlDe,kBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrFb;AAC+C;AACzE;AACkE;AACM;AACH;AAC2B;AACrC;AACrB;AACR;AACA;AAC6B;AAC1B;AACM;AACO;AACe;AACpB;AACJ;AACd;AAC0B;IAQhE,gBAAgB,SAAhB,gBAAiB,SAAQ,4DAAc;IAiChD,YAAY;IACZ,YAAY,KAAwB,EAA+C,IAAI;QACnF,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD4D,SAAI,GAAJ,IAAI;QA9BvF,mBAAc,GAAG,EAAE,CAAC;QAgChB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAClF,CAAC;QA5BG,OAAO;QACP,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YAC3B,OAAO,IAAI,CAAC,YAAY,CAAC;SAC5B;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;IAC5B,CAAC;QAKG,OAAO;QACP,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YAC3B,OAAO,IAAI,CAAC,YAAY,CAAC;SAC5B;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAQD,kBAAkB;QACd,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YACzE,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,mGAA0C,CAAC,GAAG,EAAE;YACpF,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAED,oBAAoB;QAChB,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,iFAA8B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACjF,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,kBAAkB,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE;gBAC9E,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBAC7F,IAAI,CAAC,mBAAmB,EAAE,CAAC;aAC9B;iBAAM;gBACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;aAChC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,mBAAmB;QACf,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;YACvD,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,sCAAsC,EAAE;gBACvE,0EAAwB,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBACzE,IAAI,SAAS,CAAC;oBACd,IAAI,IAAI,EAAE;wBACN,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC;qBAChE;oBACD,IAAI,SAAS,EAAE;wBACX,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC;qBAC3C;yBAAM;wBACH,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;qBACnD;oBACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC/B,CAAC,CAAC,CAAC;gBACH,OAAO;aACV;iBAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,sCAAsC,EAAE;gBAC9E,IAAI,CAAC,cAAc,GAAG,4FAA+B,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aAC/E;iBAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,sCAAsC,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;gBACpH,IAAI,CAAC,cAAc,GAAG,6CAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;aACjG;iBAAM;gBACH,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;aACnD;SACJ;aAAM;YACH,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;SAC5B;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;;AAxFM,qBAAI,GAAQ,WAAY;AACxB,wBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,kGAA2B,CAAC,CAAC,CAAC;;;4CAgClC,kDAAM,SAAC,mFAA4B;;;sBAzBzE,iDAAK;sBAaL,iDAAK;;AAtBG,gBAAgB;IAN5B,yDAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,yEAAuC;QAEvC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,gBAAgB;AAAA;AA2FtB,MAAM,cAAe,SAAQ,oEAAS;IAEzC,MAAM,CAAC,SAAS;QACZ,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,WAAW;YACf,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC;YAC3C,CAAC;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;YAC5D,KAAK,EAAE,QAAQ;YACf,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;YAC5D,KAAK,EAAE,WAAW;YAClB,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,cAAc;YACrB,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,cAAc,IAAI,sCAAsC;YACxE,CAAC;YACD,QAAQ,EAAE;gBACN,SAAS,EAAE,MAAM;aACpB;SACJ,CAAC,CAAC;QAEH,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAC,SAAS;YACf,QAAQ,EAAE;gBACN,OAAO,EAAE,UAAU;gBACnB,UAAU,EAAE,gEAAO;aACtB;YACD,GAAG,EAAE,CAAC;SACT,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,iBAAiB;aAC7B;YACD,GAAG,EAAE,CAAC;SACT,CAAC,CAAC;IACP,CAAC;;AArEe,mBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvHb;AACqE;AAClF;AACqD;AACM;AACH;AAC2B;AACrC;AACrB;AACQ;AAClB;AACS;AACsB;AACpB;AACsB;AACxB;AACd;AAEyB;AACC;IAOhE,cAAc,SAAd,cAAe,SAAQ,4DAAc;IAwJ9C,YAAY,KAAwB,EAA+C,IAAI,EAAU,mBAAwC;QACrI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD4D,SAAI,GAAJ,IAAI;QAAU,wBAAmB,GAAnB,mBAAmB,CAAqB;QApJzI,UAAK,GAAG,IAAI,CAAC;QAaH,sBAAiB,GAAG,IAAI,wDAAY,EAAO;QAY3C,kBAAa,GAAG,IAAI,wDAAY,EAAU;QAU1C,oBAAe,GAAG,IAAI,wDAAY,EAAU;QA0B5C,kBAAa,GAAG,IAAI,wDAAY,EAAU;QAa1C,kBAAa,GAAG,IAAI,wDAAY,EAAU;QAgB1C,2BAAsB,GAAG,IAAI,wDAAY,EAAU;QAgBnD,eAAU,GAAG,IAAI,wDAAY,EAAU;QA6BjD,cAAS,GAAG,KAAK,CAAC;QAQlB,UAAK,GAAG,KAAK,CAAC;QA4BJ,eAAU,GAAG,IAAI,wDAAY,EAAU;QACjD,iBAAY,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,kBAAa,GAAG;YACZ,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,WAAW;YAClB,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,iBAAiB;YACxB,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,YAAY;SACzB,CAAC;QACF,SAAI,GAAG;YACH,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;SACrC;QACD,SAAI,GAAG;YACH,GAAG,EAAE,CAAC;YACN,MAAM,EAAE,EAAE;YACV,GAAG,EAAE,EAAE;YACP,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,EAAE;SACb,CAAC;QACF,gBAAW,GAAG;YACV,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE,CAAC,MAAM;SACnB,CAAC;QAtDE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACxC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAClF,CAAC;QAzJG,WAAW;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;IAC1C,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,CAAC;QACrC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAChE,CAAC;QAMG,SAAS;QACT,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;IACxC,CAAC;IACD,IAAI,SAAS,CAAC,GAAW;QACrB,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,GAAG,CAAC;QACnC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;QAIG,OAAO;QACP,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,GAAW;QACnB,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,GAAG,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;QAOG,OAAO;QACP,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YAC3B,OAAO,IAAI,CAAC,YAAY,CAAC;SAC5B;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAIG,OAAO;QACP,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,GAAW;QACnB,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,GAAG,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;QAOG,OAAO;QACP,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,GAAW;QACnB,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,GAAG,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;QAOG,gBAAgB;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;IAC/C,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAW;QAC5B,IAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC1C,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE;YACpF,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;SAC9F;QACD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC1E,CAAC;QAOG,IAAI;QACJ,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,SAAS,EAAE;YACvC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;SAClC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,IAAI,IAAI,CAAC,GAAW;QAChB,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,GAAG,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAOD,IAAI,QAAQ;QACR,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;YACzC,OAAO,IAAI,CAAC,aAAa,CAAC;SAC7B;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;IACvC,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;IAC7B,CAAC;IACD,YAAY;IACZ,IAAI,SAAS;QACT,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;YACxD,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,0EAAe,EAAE;gBACjF,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;oBAC3B,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;iBAClD;aACJ;iBAAM;gBACH,MAAM,GAAG,oEAAS,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;aACpD;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAGD,IAAI,eAAe;QACf,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,IAAI,UAAU,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE;YAC3G,OAAO,MAAM,CAAC;SACjB;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;IAC7C,CAAC;IAmBD,QAAQ;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,oEAAmB,IAAI,KAAK,CAAC;QAC1C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,qFAAoC,CAAC,CAAC,GAAG,EAAE,EAAE;YACrE,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;IAuCD,kBAAkB;QACd,gEAAgE;QAChE,wBAAwB;IAC5B,CAAC;IAGD,uBAAuB;IACvB,wDAAwD;IACxD,6BAA6B;IAC7B,IAAI;IACJ,QAAQ;QACJ,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,KAAK,EAAE,CAAC;SACnB;IACL,CAAC;IACD,eAAe,CAAC,IAAI,GAAG,IAAI,EAAE,QAAQ,GAAG,KAAK;QACzC,IAAI,EAAE,GAAG,IAAI,CAAC;QACd,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;YACxD,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;gBAC9B,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,0EAAe,EAAE;oBACjD,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;iBACjD;qBAAM;oBACH,IAAI,GAAG,GAAG,oEAAS,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;oBAClD,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;iBACnC;aACJ;YACD,IAAI,CAAC,KAAK,EAAE;gBACR,OAAO,IAAI,CAAC;aACf;YACD,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE;gBAC/B,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;aAC1C;YACD,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;gBAC9C,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;aAC1C;YAED,IAAI,IAAI,EAAE;gBACN,IAAI,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE;oBACzC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACzB;qBAAM;oBACH,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE;wBACnB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;4BACnB,EAAE,GAAG,KAAK,CAAC;4BACX,MAAM;yBACT;qBACJ;iBACJ;aACJ;YACD,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;gBACjC,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC3C,IAAI,QAAQ,EAAE;oBACV,EAAE,GAAG,IAAI,CAAC;iBACb;aACJ;SACJ;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;YACjC,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE;gBAClB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBAChB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;aAC9B;SACJ;aAAM;YACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACrB;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IACD,QAAQ,CAAC,EAAE;QACP,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,KAAK,QAAQ,EAAE;YAE3C,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,IAAI,WAAW,GAAG,KAAK,CAAC;YAExB,IAAI,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACnD,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE;gBACrC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvC,WAAW,GAAG,IAAI,CAAC;aAEtB;iBAAM,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE;gBAC5C,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvC,WAAW,GAAG,IAAI,CAAC;aACtB;YAED,IAAI,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE;gBAE5D,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC;gBAC/C,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAEjF,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,eAAe,CAAC,QAAQ,EAAE,EAAE;oBAC5E,iFAAuB,CAAC,2EAA2E,EAAE,yCAAyC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;iBAC/M;aACJ;YAED,IAAI,WAAW,EAAE;gBACb,iFAAuB,CAAC,2GAA2G,EAAE,0BAA0B,EAAE,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;aACtN;YACD,IAAI,WAAW,EAAE;gBACb,iFAAuB,CAAC,2GAA2G,EAAE,0BAA0B,EAAE,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;aACtN;YAED,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;gBACzB,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC;aACrC;SACJ;QACD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;YAC9B,MAAM,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;YAC7C,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACpC;IACL,CAAC;IACD,YAAY,CAAC,CAAC;QACV,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YAC7E,CAAC,+DAAqB,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3I,CAAC;IACD,MAAM,CAAC,CAAC;QACJ,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC;QAChC,OAAO,+DAAqB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,WAAW,CAAC,CAAC;QACT,OAAO,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC;IAC9C,CAAC;IACD,OAAO,CAAC,KAAK;QACT,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE;YACnB,kFAA2B,CAAC,KAAK,CAAC,CAAC;SACtC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE;YAC5H,KAAK,CAAC,cAAc,EAAE,CAAC;SAC1B;QACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACzF,KAAK,CAAC,cAAc,EAAE,CAAC;SAC1B;aAAM;YACH,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe;gBACvC,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,CAAC,EAAE;gBACtG,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAClC,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;oBAClC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBACxC,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;aAC5C;iBAAM;gBACH,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;aACvC;SACJ;IACL,CAAC;IAED,QAAQ,CAAC,KAAK;QACV,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IACD,KAAK,CAAC,KAAK;QACP,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;YACjC,IAAI,CAAC,eAAe,EAAE,CAAC;SAC1B;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IACD,eAAe;QACX,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,+BAA+B;IAC/B,YAAY,CAAC,KAAK;QACd,IAAI,IAAI,CAAC,OAAO,IAAI,eAAe,EAAE;YACjC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9D,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IAGD,4CAA4C;IAC5C,aAAa,CAAC,GAAG;QACb,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;;AA9XM,mBAAI,GAAQ,SAAU;AACtB,sBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,gGAAyB,CAAC,CAAC,CAAC;;;4CAsJhC,kDAAM,SAAC,mFAA4B;;;;0BAhJzE,iDAAK;gCASL,kDAAM;wBAGN,iDAAK;4BASL,kDAAM;sBACN,iDAAK;8BASL,kDAAM;sBAIN,iDAAK;sBAaL,iDAAK;4BASL,kDAAM;sBAIN,iDAAK;4BASL,kDAAM;+BAIN,iDAAK;qCAYL,kDAAM;mBAIN,iDAAK;yBAYL,kDAAM;yBAiEN,kDAAM;;AA/KE,cAAc;IAN1B,yDAAS,CAAC;QACP,QAAQ,EAAE,aAAa;QACvB,uEAAqC;QAErC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,cAAc;AAAA;AAiYpB,MAAM,YAAa,SAAQ,oEAAS;IAEvC,MAAM,CAAC,SAAS;QACZ,qFAAmB,CAAC;YAChB,GAAG,EAAE,sCAAsC;YAC3C,EAAE,EAAE,SAAS;YACb,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;YACzC,CAAC;SACJ,CAAC,CAAC;QACH,oBAAoB;QACpB,IAAI,UAAU,GAAG,CAAC;gBACd,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,OAAO;aACjB,EAAE;gBACC,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE,MAAM;aAChB,EAAE;gBACC,OAAO,EAAE,YAAY;gBACrB,KAAK,EAAE,gBAAgB;aAC1B,EAAE;gBACC,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,OAAO;aACjB,EAAE;gBACC,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,OAAO;aACjB,EAAE;gBACC,OAAO,EAAE,UAAU;gBACnB,KAAK,EAAE,QAAQ;aAClB,EAAE;gBACC,OAAO,EAAE,YAAY;gBACrB,KAAK,EAAE,UAAU;aACpB,EAAE;gBACC,OAAO,EAAE,UAAU;gBACnB,KAAK,EAAE,QAAQ;aAClB,EAAE;gBACC,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,KAAK;aACf,EAAE;gBACC,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE,MAAM;aAChB,EAAE;gBACC,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE,MAAM;aAChB,EAAE;gBACC,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE,KAAK;aACf,EAAE;gBACC,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE,MAAM;aAChB,CAAC;QAEF,uBAAuB;QACvB,IAAI,UAAU,GAAG,CAAC;gBACd,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE,MAAM;aAChB,EAAE;gBACC,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE,MAAM;aAChB,EAAE;gBACC,OAAO,EAAE,WAAW;gBACpB,KAAK,EAAE,SAAS;aACnB,EAAE;gBACC,OAAO,EAAE,WAAW;gBACpB,KAAK,EAAE,SAAS;aACnB,EAAE;gBACC,OAAO,EAAE,aAAa;gBACtB,KAAK,EAAE,KAAK;aACf,EAAE;gBACC,OAAO,EAAE,UAAU;gBACnB,KAAK,EAAE,QAAQ;aAClB,EAAE;gBACC,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,OAAO;aACjB,EAAE;gBACC,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE,KAAK;aACf,CAAC;QAEF,IAAI,QAAQ,GAAG;YACX;gBACI,OAAO,EAAE,WAAW;gBACpB,KAAK,EAAE,SAAS;aACnB;YACD;gBACI,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE,MAAM;aAChB;YACD;gBACI,OAAO,EAAE,YAAY;gBACrB,KAAK,EAAC,EAAE;aACX;SACJ;QACD,iFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;YAC5D,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;YAC5D,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,WAAW,EAAE,QAAQ;gBACrB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,UAAU;gBACvB,eAAe,EAAE,OAAO;gBACxB,iBAAiB,EAAE,SAAS;aAC/B;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,WAAW,EAAE,QAAQ;gBACrB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,UAAU;gBACvB,eAAe,EAAE,OAAO;gBACxB,iBAAiB,EAAE,SAAS;aAC/B;SACJ,CAAC,CAAC;QAEH,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,WAAW,EAAE,QAAQ;gBACrB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,QAAQ;gBACrB,eAAe,EAAE,OAAO;gBACxB,iBAAiB,EAAE,SAAS;aAC/B;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,YAAY;aACxB;YACD,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;SACT,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,iBAAiB;aAC7B;YACD,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;SACT,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,CAAC;YAC9B,CAAC;YACD,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,oEAAS;aACxB;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC;YACrD,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,gBAAgB;aAC5B;YACD,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAC9E,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,sBAAsB;YAC1B,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,wBAAwB;aACpC;YACD,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;YACrD,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAC9E,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC;YACtC,CAAC;YACD,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;aACtB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC;YACtC,CAAC;YACD,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;aACtB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,kBAAkB;YACtB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,oBAAoB;YAC3B,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC;YACtC,CAAC;YACD,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;gBACV,IAAI,EAAE,CAAC;aACV;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,mBAAmB;aAC/B;YACD,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE;SACV,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,eAAe,CAAC;YAChC,CAAC;YACD,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;gBACV,IAAI,EAAE,CAAC;aACV;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,kBAAkB;YACtB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,oBAAoB;aAChC;YACD,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE;SACV,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,gBAAgB;aAC5B;YACD,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC;YACxC,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;;AAvVe,iBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5ZkD;AAExD;AACE;AACI;AACE;AACJ;AACJ;AACM;AAChB;AAC0B;IAQhE,kBAAkB,SAAlB,kBAAmB,SAAQ,2DAAc;IAalD,YAAoB,OAAoB,EAAE,KAAwB,EAA+C,IAAI;QACjH,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,YAAO,GAAP,OAAO,CAAa;QAAyE,SAAI,GAAJ,IAAI;QAGjH,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,2GAAoD,CAAC,GAAG,CAAC,EAAE;YAC1F,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,GAAG,EAAE;gBACL,IAAI,CAAC,OAAO,CAAC,oCAAoC,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBACzF,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC5C,MAAM,OAAO,GAAG,IAAI,uEAAc,EAAE,CAAC;wBACrC,MAAM,MAAM,GAAG,IAAI,qEAAa,EAAE,CAAC;wBACnC,OAAO,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;wBAC3B,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;wBACpB,MAAM,CAAC,QAAQ,GAAG,oEAAW,CAAC;wBAC9B,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC;wBACtB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;4BACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;wBACzB,CAAC,CAAC,CAAC;qBACN;gBACL,CAAC,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IA9BD,IAAI,QAAQ;QACR,IAAI,+DAAW,IAAI,2EAAuB,EAAE;YACxC,OAAO,+EAA8B,CAAC;SACzC;aAAM;YACH,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IA0BD,kBAAkB;IAElB,CAAC;IAED,WAAW,CAAC,KAAK;QACb,wEAAoB,CAAC,yEAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;YAC1C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SACrC;IACL,CAAC;;AA/CM,uBAAI,GAAQ,aAAc;AAC1B,0BAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,oGAA6B,CAAC,CAAC,CAAC;;;;4CAWN,kDAAM,SAAC,kFAA4B;;;qBAFvG,qDAAS,SAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,sDAAU,EAAE;;AAXhC,kBAAkB;IAN9B,yDAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,2EAAyC;QAEzC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClBuB;AAU/B;AACuE;AAC8B;AACrC;AACrB;AACqB;AACnB;AACqB;AACxB;AACd;AAC0B;IAQhE,eAAe,SAAf,eAAgB,SAAQ,4DAAc;IAqB/C,YAAY;IAEZ,YAAY,KAAwB,EAA+C,IAAI;QACnF,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD4D,SAAI,GAAJ,IAAI;QAnBvF,eAAU,GAAG,IAAI,CAAC;QAElB,UAAK,GAAG,IAAI,CAAC;QAcH,sBAAiB,GAAG,IAAI,wDAAY,EAAO;QAU3C,gBAAW,GAAG,IAAI,wDAAY,EAAU;QAL9C,uCAAuC;IAC3C,CAAC;QAfG,WAAW;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;IAC1C,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,CAAC;QACrC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAChE,CAAC;IAcD,kBAAkB;IAClB,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;QAClD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChJ,CAAC;IAGD,QAAQ,CAAC,EAAE;QACP,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IACD,kBAAkB;QACd,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,IAAI,CAAC,aAAa,GAAG,IAAI,sEAAa,EAAE,CAAC;SAC5C;IACL,CAAC;;AA/CM,oBAAI,GAAQ,UAAW;AACvB,uBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,iGAA0B,CAAC,CAAC,CAAC;;;4CAqBjC,kDAAM,SAAC,kFAA4B;;;0BAbzE,iDAAK;gCAUL,kDAAM;0BAUN,kDAAM;;AA9BE,eAAe;IAN3B,yDAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,wEAAsC;QAEtC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,eAAe;AAAA;AAkDrB,MAAM,aAAc,SAAQ,oEAAS;IAExC,MAAM,CAAC,SAAS;QACZ,oFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,UAAU;YACd,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC;YAC1C,CAAC;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;YAC5D,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE;gBACN,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,kBAAkB;YACtB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,oBAAoB;aAChC;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,cAAc;aAC1B;SACJ,CAAC,CAAC;IACP,CAAC;;AAxCe,kBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/E+E;AAC/F;AACgB;AACF;AACwB;AACF;AACA;AACjC;AACsE;AAC1D;AACL;AACA;AAEgB;IAQhE,mBAAmB,SAAnB,mBAAoB,SAAQ,2DAAc;IA8CtD,YACS,WAAwB,EAChC,KAAwB,EACqB,IAAI;QAEjD,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAJX,gBAAW,GAAX,WAAW,CAAa;QAEa,SAAI,GAAJ,IAAI;QAtBxC,eAAU,GAAG,IAAI,wDAAY,EAAO;QAapC,oBAAe,GAAG,IAAI,wDAAY,EAAO;QAYlD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CACrB,IAAI,qEAAe,CAAC,WAAW,EAAE,SAAS,EAAE,eAAe,CAAC,CAC5D,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,qEAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5E,CAAC;QApDG,OAAO;QACV,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YAC9B,OAAO,IAAI,CAAC,YAAY,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACnC,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACd,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;IACzB,CAAC;QAKG,IAAI;QACP,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IAChC,CAAC;IACD,IAAI,IAAI,CAAC,GAAG;QACX,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,GAAG,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;QAOG,SAAS;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QAChB,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC;IAsBD,kBAAkB,KAAI,CAAC;IAEvB,OAAO;QACN,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;SAC7B;aAAM;YACN,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAExB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;SAC/B;IACF,CAAC;IACD,QAAQ;QACP,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YACrD,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,KAAY,EAAE,EAAE;gBACjD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,IAAI,KAAK,CAAC,WAAW,EAAE;oBACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;iBAChC;YACd,CAAC,CAAC,CAAC;SACH;IACF,CAAC;IACD,QAAQ;QACP,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;YACzD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SACxC;IACF,CAAC;IAEE,YAAY,CAAC,MAAe;QACxB,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YAElD,MAAM,SAAS,GAAU,IAAI,CAAC,YAAY,CAAC;YAC3C,SAAS,CAAC,WAAW,GAAG,MAAM,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBACvD,yEAAoB,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;SACN;IACR,CAAC;;AAlGM,wBAAI,GAAQ,cAAe;AAC3B,2BAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,qGAA8B,CAAC,CAAC,CAAC;;;;4CA+C1E,kDAAM,SAAC,kFAA4B;;;sBA5CpC,iDAAK;mBAaL,iDAAK;yBASL,kDAAM;wBAIN,iDAAK;8BASL,kDAAM;2BAGN,qDAAS,SAAC,cAAc,EAAE,EAAE,IAAI,EAAE,sDAAU,EAAE;;AA3CnC,mBAAmB;IAN/B,yDAAS,CAAC;QACV,QAAQ,EAAE,kBAAkB;QAC5B,4EAA0C;QAE1C,eAAe,EAAE,0EAA8B;;KAC/C,CAAC;GACW,mBAAmB;AAAA;AAqGzB,MAAM,iBAAkB,SAAQ,oEAAS;IAE5C,MAAM,CAAC,SAAS;QACZ,oFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,cAAc;YAClB,OAAO,EAAE,gBAAgB;YACzB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,cAAc,CAAC;YAC9C,CAAC;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;YAC5D,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC,CAAC;IACP,CAAC;;AA1Be,sBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3Hb;AACqE;AACtE;AACE;AACd;AACqD;AACM;AACH;AAC2B;AACrC;AACrB;AACV;AACS;AACsB;AACpB;AACA;AACO;AACe;AACpB;AACJ;AACI;AAClB;AACI;AACiB;AACK;IAQhE,2BAA2B,SAA3B,2BAA4B,SAAQ,4DAAc;IAgF3D,YAAoB,MAAiB,EAAE,KAAwB,EAA+C,IAAI,EAC9G,cAAmC,EAAU,SAA2B;QACxE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAFH,WAAM,GAAN,MAAM,CAAW;QAAyE,SAAI,GAAJ,IAAI;QACjE,cAAS,GAAT,SAAS,CAAkB;QA9E5E,iBAAY,GAAG,EAAE,CAAC;QAWR,sBAAiB,GAAG,IAAI,wDAAY,EAAO;QAoCrD,UAAK,GAAG,IAAI,CAAC;QAEb,kBAAa,GAAG;YACZ,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,WAAW;YAClB,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,iBAAiB;YACxB,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,YAAY;SACzB,CAAC;QACF,gBAAW,GAAG;YACV,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE,CAAC,MAAM;SACnB,CAAC;QACF,SAAI,GAAG;YACH,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;SACrC;QACD,iBAAY,GAAG,CAAC,GAAG,CAAC,CAAC;QAErB,UAAK,GAAG,KAAK,CAAC;QAIV,cAAc,CAAC,UAAU,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YACzF,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,IAAI,SAAS,EAAE;gBACX,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;aAC3B;YACD,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAC,WAAW,EAAE,CAAC;YACtD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YACzE,IAAI,CAAC,aAAa,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,GAAG,kGAAyC,CAAC,GAAG,EAAE;YAClF,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;aAC9B;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,oEAAmB,KAAK,KAAK,CAAC;QAC3C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,qFAAoC,CAAC,CAAC,GAAG,EAAE,EAAE;YACrE,IAAI,CAAC,KAAK,GAAG,GAAG,KAAK,KAAK,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sEAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC5C,CAAC;QA3GG,WAAW;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;IAC1C,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,CAAC;QACrC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAChE,CAAC;IAGD,YAAY;IAEZ,IAAI,YAAY;QACZ,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;SAC5C;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,YAAY,CAAC,IAAI;QACjB,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC;SAC5C;aAAM;YACH,IAAI,CAAC,UAAU,GAAG;gBACd,YAAY,EAAE,IAAI;gBAClB,sBAAsB,EAAE,EAAE;aAC7B,CAAC;SACL;IACL,CAAC;IAED,IAAI,SAAS;QACT,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,CAAC,EAAE;YAChG,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;SAC5C;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,UAAU;QACV,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC,UAAU,KAAK,QAAQ,EAAE;YACxD,OAAO;gBACH,MAAM,EAAE,sEAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC;aACzD,CAAC;SACL;QACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC9B,CAAC;IAmED,kBAAkB;IAClB,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YACnD,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;gBACzB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;aAC1D;iBAAM;gBACH,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;gBAC1D,IAAI,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE;oBACxC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;wBAChC,IAAI,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE;4BACzB,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;4BAC7F,IAAI,KAAK,EAAE;gCACP,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;6BAC7B;iCAAM;gCACH,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;6BACtB;yBACJ;wBACD,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;oBACvB,CAAC,CAAC,CAAC;iBACN;aACJ;SACJ;IACL,CAAC;IACD,QAAQ;QACJ,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,KAAK,EAAE,CAAC;SACnB;IACL,CAAC;IACD,WAAW,CAAC,IAAI;QACZ,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE;YACxB,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;aAClD;iBAAM;gBACH,IAAI,CAAC,UAAU,GAAG;oBACd,YAAY,EAAE,IAAI,CAAC,KAAK;oBACxB,sBAAsB,EAAE,EAAE;iBAC7B,CAAC;aACL;SACJ;aAAM;YACH,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxF,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE;oBAClB,IAAI,KAAK,EAAE;wBACP,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;qBAC3G;iBACJ;qBAAM;oBACH,IAAI,KAAK,EAAE;wBACP,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;qBAC5B;yBAAM;wBACH,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;qBACvF;iBACJ;aACJ;iBAAM;gBACH,IAAI,CAAC,UAAU,GAAG;oBACd,YAAY,EAAE,IAAI,CAAC,KAAK;oBACxB,sBAAsB,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;iBACnE,CAAC;aACL;SACJ;IACL,CAAC;IAED,UAAU;QACN,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,MAAM,GAAG,gEAAY,CAAC,6EAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YAC/F,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kFAAwB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACzF,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBACzC,IAAI,MAAM,IAAI,MAAM,CAAC,EAAE,EAAE;oBACrB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;iBACjC;YACL,CAAC,CAAC,CAAC;SACN;aAAM;YACH,MAAM,EAAE,GAAG,IAAI,6EAAgB,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kFAAwB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACrF,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBACzC,IAAI,MAAM,IAAI,MAAM,CAAC,EAAE,EAAE;oBACrB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;iBACjC;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,cAAc;QACV,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC1B,IAAI,CAAC,CAAC,IAAI,IAAI,SAAS,EAAE;gBACrB,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;aACvD;iBAAM;gBACH,IAAI,OAAO,CAAC;gBACZ,IAAI,CAAC,CAAC,WAAW,EAAE;oBACf,OAAO,GAAG,4FAA+B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;iBAC5D;gBACD,IAAI,CAAC,OAAO,EAAE;oBACV,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;iBACvB;gBACD,CAAC,CAAC,aAAa,GAAG,OAAO,CAAC;aAC7B;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,eAAe,CAAC,IAAI,GAAG,IAAI,EAAE,QAAQ,GAAG,KAAK;QACzC,IAAI,EAAE,GAAG,IAAI,CAAC;QACd,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;YACxD,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;gBAC9B,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,yEAAe,EAAE;oBACjD,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;iBACjD;qBAAM;oBACH,IAAI,GAAG,GAAG,mEAAS,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;oBAClD,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;iBACnC;aACJ;YACD,IAAI,CAAC,KAAK,EAAE;gBACR,OAAO,IAAI,CAAC;aACf;YACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;gBACnC,IAAI,KAAK,GAAG,IAAI,CAAC;gBACjB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC/B,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;oBACtB,IAAI,EAAE,GAAG,IAAI,CAAC;oBACd,IAAI,IAAI,EAAE;wBACN,IAAI,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE;4BACzC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;yBACzB;6BAAM;4BACH,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE;gCACnB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oCACnB,EAAE,GAAG,KAAK,CAAC;oCACX,MAAM;iCACT;6BACJ;yBACJ;qBACJ;oBACD,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE;wBAClB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;qBACnB;oBACD,IAAI,CAAC,EAAE,EAAE;wBACL,KAAK,GAAG,KAAK,CAAC;qBACjB;gBACL,CAAC,CAAC;gBACF,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;oBACjC,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,CAAC;oBAC9C,IAAI,QAAQ,EAAE;wBACV,EAAE,GAAG,IAAI,CAAC;qBACb;iBACJ;gBACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;aAC9B;iBAAM;gBACH,IAAI,IAAI,GAAG,IAAI,CAAC;gBAChB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;oBAC5C,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;iBACvD;gBACD,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;oBAC9C,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;iBACvD;gBAED,IAAI,IAAI,EAAE;oBACN,IAAI,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE;wBACzC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACzB;yBAAM;wBACH,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE;4BACnB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gCACnB,EAAE,GAAG,KAAK,CAAC;gCACX,MAAM;6BACT;yBACJ;qBACJ;iBACJ;gBACD,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;oBACjC,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC;oBAC3C,IAAI,QAAQ,EAAE;wBACV,EAAE,GAAG,IAAI,CAAC;qBACb;iBACJ;aACJ;SACJ;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;YACjC,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE;gBAClB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBAChB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;aAC9B;SACJ;aAAM;YACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACrB;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IACD,YAAY,CAAC,CAAC;QACV,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YAC7E,CAAC,+DAAqB,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3I,CAAC;IACD,MAAM,CAAC,CAAC;QACJ,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC;QAChC,OAAO,+DAAqB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,WAAW,CAAC,CAAC;QACT,OAAO,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC;IAC9C,CAAC;IACD,OAAO,CAAC,KAAK;QACT,sBAAsB;QACtB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE;YACnB,kFAA2B,CAAC,KAAK,CAAC,CAAC;SACtC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE;YAC5H,KAAK,CAAC,cAAc,EAAE,CAAC;SAC1B;QACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACzF,KAAK,CAAC,cAAc,EAAE,CAAC;SAC1B;aAAM;YACH,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe;gBACvC,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,CAAC,EAAE;gBACtG,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAClC,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;oBAClC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBACxC,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;aAC5C;iBAAM;gBACH,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;aACvC;SACJ;IACL,CAAC;IAED,QAAQ,CAAC,KAAK;QACV,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IACD,KAAK,CAAC,KAAK;QACP,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;YACjC,IAAI,CAAC,eAAe,EAAE,CAAC;SAC1B;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;QAIG,OAAO;QACP,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YAC3B,OAAO,IAAI,CAAC,YAAY,CAAC;SAC5B;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;;AArWM,gCAAI,GAAQ,oBAAqB;AACjC,mCAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,2GAAoC,CAAC,CAAC,CAAC;;;;4CA8EhB,kDAAM,SAAC,mFAA4B;;;;;0BA3EpG,iDAAK;gCASL,kDAAM;sBA8UN,iDAAK;;AA5VG,2BAA2B;IANvC,yDAAS,CAAC;QACP,QAAQ,EAAE,wBAAwB;QAClC,qFAAmD;QAEnD,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,2BAA2B;AAAA;AAyWjC,MAAM,uBAAwB,SAAQ,oEAAS;IAElD,MAAM,CAAC,SAAS;QACZ,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,oBAAoB;YACxB,OAAO,EAAE,sBAAsB;YAC/B,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,oBAAoB,CAAC;YACpD,CAAC;SACJ,CAAC;QAEF,iFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;YAC5D,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE;gBACN,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EAAE,IAAI,iEAAe,CAAC,8HAA8B,CAAC;YAC5D,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE;gBACN,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,cAAc;aAC1B;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,iBAAiB;aAC7B;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,eAAe;YACtB,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,CAAC;YAC9B,CAAC;YACD,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,mEAAS;aACxB;SACJ,CAAC;QACF,iFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,UAAU;YACjB,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC;YACrD,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,gBAAgB;aAC5B;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAC9E,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,sBAAsB;YAC1B,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,wBAAwB;aACpC;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;YACrD,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,WAAW;YAClB,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAC9E,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,mBAAmB;aAC/B;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,eAAe;YACtB,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,eAAe,CAAC;YAChC,CAAC;YACD,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;gBACV,IAAI,EAAE,CAAC;aACV;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,gBAAgB;aAC5B;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,SAAS,CAAC;YAC1B,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,aAAa;YACpB,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,SAAS,CAAC;YAC1B,CAAC;YACD,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;gBACV,IAAI,EAAE,CAAC;aACV;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,cAAc;YACrB,QAAQ,EAAE;gBACN,WAAW,EAAC,UAAU;gBACtB,UAAU,EAAE,sEAAU;aACzB;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,SAAS,CAAC;YAC1B,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;;AApKe,4BAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;AC1YuE;AACrF;AACqB;AACF;IAQ3D,kBAAkB,SAAlB,kBAAkB;IA+E3B,YAAoB,MAAiB,EAAU,KAAwB;QAAnD,WAAM,GAAN,MAAM,CAAW;QAAU,UAAK,GAAL,KAAK,CAAmB;QA9D7D,2BAAsB,GAAG,IAAI,uDAAY,EAAO;QAahD,mBAAc,GAAG,IAAI,uDAAY,EAAW;QAc5C,sBAAiB,GAAG,IAAI,uDAAY,EAAO;QACrD,YAAY;QAEZ,kBAAkB;QAClB,kBAAa,GAAG,IAAI,CAAC;QAWX,mBAAc,GAAG,IAAI,uDAAY,EAAO;QAClD,YAAY;QAEZ,qBAAqB;QACrB,mBAAc,GAAG,KAAK,CAAC;QAWb,oBAAe,GAAG,IAAI,uDAAY,EAAO;QAGzC,UAAK,GAAG,IAAI,uDAAY,EAAoB;IAGtD,CAAC;QA3EG,gBAAgB;QAChB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACtC,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG;QACpB,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC;QACjC,IAAI,CAAC,GAAG,EAAE;YACN,IAAI,CAAC,qBAAqB,GAAG,IAAI,4EAAgB,EAAE,CAAC;SACvD;QACD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACjE,CAAC;QAQG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAY;QACrB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;QAQG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;QASG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;QASG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;IAUD,OAAO;QACH,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SAC/C;IACL,CAAC;IAED,cAAc,CAAC,EAAE;QACb,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,qBAAqB,CAAC,YAAY,GAAG,EAAE,CAAC;YAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;SAClB;IACL,CAAC;IAED,UAAU,CAAC,EAAE;QACT,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iFAAwB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;YAC7G,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;SAC3D;IACL,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YAC5C,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SACtC;IACL,CAAC;IAED,aAAa;QACT,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;;;;;;;+BA1GA,gDAAK;uBAWL,gDAAK;yBACL,gDAAK;qCACL,iDAAM;uBAIN,gDAAK;6BASL,iDAAM;0BAKN,gDAAK;gCASL,iDAAM;uBAMN,gDAAK;6BASL,iDAAM;wBAMN,gDAAK;8BASL,iDAAM;oBAGN,iDAAM;sBACN,oDAAS,SAAC,SAAS,EAAE,EAAE,IAAI,EAAE,qDAAU,EAAE;;AA9EjC,kBAAkB;IAN9B,wDAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,mFAAiD;QAEjD,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACXoD;AACV;AAC0B;AAC9B;IAQxD,wBAAwB,SAAxB,wBAAwB;IAMjC,YAAoB,SAAiD,EAAkC,IAAS,EAAU,cAAmC;QAAzI,cAAS,GAAT,SAAS,CAAwC;QAAkC,SAAI,GAAJ,IAAI,CAAK;QAAU,mBAAc,GAAd,cAAc,CAAqB;QAJ7J,qBAAgB,GAAqB,IAAI,4EAAgB,EAAE,CAAC;QAC5D,iBAAY,GAAG,EAAE,CAAC;QAClB,uBAAkB,GAAG,EAAE,CAAC;QAGpB,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;QAC9B,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC;SACrC;QACD,cAAc,CAAC,UAAU,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YACzF,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,QAAQ;IACR,CAAC;IAED,eAAe,CAAC,IAAY;QACxB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,IAAI;YACjC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBACnB,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;gBACtB,OAAO,IAAI,CAAC;aACf;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,aAAa,CAAC,EAAE,EAAE,IAAI;QAClB,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACnH,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI;QACtB,IAAI,IAAI,GAAG,IAAI,mFAAuB,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,MAAM;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,eAAe;QACX,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC;QACxD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,IAAI;YACpC,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBAClB,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;oBACtB,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,EAAE;gBACX,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAExC,CAAC;;;;4CAhEuE,iDAAM,SAAC,qEAAe;;;AANrF,wBAAwB;IANpC,wDAAS,CAAC;QACP,QAAQ,EAAE,4BAA4B;QACtC,kFAAgD;QAEhD,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,wBAAwB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAQa6D,WAAW,SAAXA,WAAW,SAASlH,4DAAT,CAAuB;EAqF3C3uB,YAAoB81B,WAApB,EAA8C71B,KAA9C,EAAqHoG,IAArH,EAAyH;IACrH,MAAMpG,KAAN,EAAaoG,IAAb;IADgB;IAAiG,iBAAI,CAjFzH;;IACA,0BAAqB,EAArB,CAgFyH,CAvEzH;IAEA;;IACA,kBAAa,EAAb;IAWU,mBAAc,IAAI3G,wDAAJ,EAAd;IAaA,+BAA0B,IAAIA,wDAAJ,EAA1B;IAaA,+BAA0B,IAAIA,wDAAJ,EAA1B;IAGA,wBAAmB,IAAIA,wDAAJ,EAAnB;IACA,mBAAc,IAAIA,wDAAJ,EAAd;IAEV,cAAS,KAAT;IAEA,iBAAY,CAAZ;IACA,kBAAa,GAAb;IACA,gBAAW,IAAIiW,gFAAJ,EAAX;IAEA,iBAAY,EAAZ;IAqBI,KAAKogB,SAAL,CAAe34B,IAAf,CAAoB,kBAApB;IACA,KAAK24B,SAAL,CAAe34B,IAAf,CAAoB,aAApB;EACH;;EAjFgB,IAAbye,aAAa;IACb,OAAO,KAAKC,kBAAZ;EACH;;EACgB,IAAbD,aAAa,CAAC9a,GAAD,EAAI;IACjB,KAAK+a,kBAAL,GAA0B/a,GAA1B;EACH;;EAOQ,IAALk0B,KAAK;IACL,OAAO,KAAKe,UAAZ;EACH;;EACQ,IAALf,KAAK,CAACl0B,GAAD,EAAI;IACT,KAAKi1B,UAAL,GAAkBj1B,GAAlB;IACA,KAAKk1B,WAAL,CAAiBv0B,IAAjB,CAAsB,KAAKs0B,UAA3B;EACH;;EAOoB,IAAjBpE,iBAAiB;IACjB,OAAO,KAAK1B,kBAAL,CAAwB0B,iBAA/B;EACH;;EACoB,IAAjBA,iBAAiB,CAAC7wB,GAAD,EAAI;IACrB,KAAKmvB,kBAAL,CAAwB0B,iBAAxB,GAA4C7wB,GAA5C;IACA,KAAKm1B,uBAAL,CAA6Bx0B,IAA7B,CAAkC,KAAKwuB,kBAAL,CAAwB0B,iBAA1D;EACH;;EAOoB,IAAjBpW,iBAAiB;IACjB,OAAO,KAAK0U,kBAAL,CAAwB1U,iBAA/B;EACH;;EACoB,IAAjBA,iBAAiB,CAACza,GAAD,EAAI;IACrB,KAAKmvB,kBAAL,CAAwB1U,iBAAxB,GAA4Cza,GAA5C;IACA,KAAKo1B,uBAAL,CAA6Bz0B,IAA7B,CAAkC,KAAKwuB,kBAAL,CAAwB1U,iBAA1D;EACH;;EAiBa,OAAP4a,OAAO,CAAC/vB,IAAD,EAAY2N,EAAZ,EAAwB5D,KAAxB,EAAuCimB,aAAvC,EAAsE/vB,IAAtE,EAAkF;IAC5F,MAAMuN,IAAI,GAAG,IAAIyiB,YAAJ,CAAiBtiB,EAAjB,CAAb;;IACA,IAAI3N,IAAJ,EAAU;MACNwN,IAAI,CAAC9L,OAAL,GAAe1B,IAAI,CAACspB,QAAL,EAAf;MACA9b,IAAI,CAACtT,IAAL,GAAY8F,IAAZ;;MACA,IAAIgwB,aAAJ,EAAmB;QACfxiB,IAAI,CAAC9L,OAAL,GAAesuB,aAAa,CAACE,UAAd,CAAyBlwB,IAAzB,CAAf;MACH;;MACD,IAAIC,IAAJ,EAAU;QACNuN,IAAI,CAACtN,IAAL,GAAYF,IAAI,CAACC,IAAD,CAAhB;MACH;IACJ;;IACDuN,IAAI,CAACuC,KAAL,GAAahG,KAAb;IACA,OAAOyD,IAAP;EACH;;EAQDic,kBAAkB;IACd,KAAK0G,YAAL,GAAoBhB,6EAAA,CAA4B,KAAKh4B,MAAjC,EAAyC,KAAK0yB,kBAA9C,CAApB;;IACA,IAAI,KAAKsG,YAAT,EAAuB;MACnBpB,wEAAA,CAAuB,KAAKoB,YAA5B,EAA0Ct1B,IAA1C,CAAgDhD,MAAD,IAAW;QACtD,IAAIA,MAAJ,EAAY;UACR,MAAMy4B,MAAM,GAAGz4B,MAAM,CAAC,QAAD,CAArB;;UACA,IAAIy4B,MAAJ,EAAY;YACR,KAAKC,SAAL,GAAiBD,MAAjB;UACH;QACJ;;QACD,KAAKE,cAAL;MACH,CARD;IASH;EACJ;;EAEDC,kBAAkB,CAACpzB,KAAD,EAAM;IACpB,KAAKmY,aAAL,GAAqBnY,KAArB;IACA,KAAKiZ,gBAAL,CAAsBjb,IAAtB,CAA2BgC,KAA3B;IACA,KAAKqzB,YAAL,CAAkB,kBAAlB,EAAsCrzB,KAAtC;EACH;;EAEDuc,aAAa,CAACvc,KAAD,EAAM;IACf,KAAKwc,WAAL,CAAiBxe,IAAjB,CAAsBgC,KAAtB;IACA,KAAKqzB,YAAL,CAAkB,aAAlB,EAAiCrzB,KAAjC;EACH;;EAEDszB,YAAY;IACR,IAAI,KAAK9G,kBAAT,EAA6B;MACzB,KAAK+G,QAAL;IACH;EACJ;;EAEDA,QAAQ;IACJ,IAAI,CAAC,KAAKC,MAAN,IAAgB,KAAKV,YAAzB,EAAuC;MACnC,MAAMW,GAAG,GAAG3B,4EAAA,CAA2B,KAAKh4B,MAAhC,EAAwC,KAAK0yB,kBAA7C,CAAZ;MACA,MAAM/uB,MAAM,GAAGo0B,8EAAA,CAA2B4B,GAA3B,CAAf;;MACA,IAAI,CAAC,KAAKlC,KAAV,EAAiB;QACb,KAAKA,KAAL,GAAa,EAAb;MACH;;MACD,IAAI,KAAKqC,SAAL,IAAkB,KAAK95B,MAAL,CAAY+5B,MAAlC,EAA0C;QACtC,KAAK/5B,MAAL,CAAY+5B,MAAZ,CAAmBr4B,OAAnB,CAA4Bs4B,GAAD,IAAQ;UAC/B,IAAI,KAAKF,SAAL,CAAeE,GAAG,CAACD,MAAnB,CAAJ,EAAgC;YAC5B,MAAMp5B,IAAI,GAAG,IAAIu3B,qEAAJ,EAAb;YACAv3B,IAAI,CAACuO,IAAL,GAAY8qB,GAAG,CAAC9qB,IAAhB;YACAvO,IAAI,CAACs5B,QAAL,GAAgBD,GAAG,CAAC/B,QAApB;YACAt3B,IAAI,CAACwO,KAAL,GAAa,KAAK2qB,SAAL,CAAeE,GAAG,CAACD,MAAnB,CAAb;YACAhC,gFAAA,CAA6Bp0B,MAA7B,EAAqChD,IAArC;UACH;QACJ,CARD;MASH;;MACDgD,MAAM,CAACw2B,QAAP,GAAkB,IAAlB;MAAwB,KAAKC,SAAL,GAAiB,KAAKC,UAAtB;MACxB12B,MAAM,CAAC22B,MAAP,GAAgB,IAAhB;MAAsB32B,MAAM,CAACw2B,QAAP,GAAkB,KAAKE,UAAvB;MACtB,KAAK/B,WAAL,CAAiBiC,aAAjB,CAA+B,aAA/B,EAA8C,KAAKvB,YAAnD,EAAiEr1B,MAAjE,EAAyE7D,SAAzE,CAAoF+I,IAAD,IAAS;QACxF,IAAI,CAACA,IAAL,EAAW;UACP,KAAK6wB,MAAL,GAAc,IAAd;QACH,CAFD,MAEO;UACH,MAAMjb,KAAK,GAAG,KAAKgZ,KAAL,CAAWtb,KAAX,EAAd;UACA,KAAKie,SAAL,IAAkB,CAAlB;UACAvxB,IAAI,CAACnH,OAAL,CAAaC,CAAC,IAAG;YACb,MAAM0U,IAAI,GAAGgiB,WAAW,CAACO,OAAZ,CAAoBj3B,CAApB,EAAuB,KAAK64B,QAAL,CAAcjiB,MAArC,EAA6C,CAA7C,EAAgD,KAAKkiB,aAArD,EAAoE,KAAK/H,kBAAL,CAAwB3pB,IAA5F,CAAb;;YACA,IAAI,KAAKkR,KAAL,IAAc,KAAKA,KAAL,CAAWygB,UAA7B,EAAyC;cACrCrkB,IAAI,CAAC8C,WAAL,GAAmB,KAAKc,KAAL,CAAWygB,UAAX,CAAsBC,WAAtB,CAAkCh5B,CAAlC,CAAnB;YACH;;YACD8c,KAAK,CAAC7e,IAAN,CAAWyW,IAAX;UACH,CAND;UAOA,KAAKohB,KAAL,GAAahZ,KAAb;QACH;;QACD,KAAKhc,KAAL,CAAW0B,aAAX;MACH,CAhBD;IAiBH;EACJ;;EAEDk1B,cAAc;IACV,KAAKK,MAAL,GAAc,KAAd;IACA,KAAKU,SAAL,GAAiB,CAAjB;IACA,KAAK3C,KAAL,GAAa,EAAb;IACA,KAAK+C,QAAL,CAAcliB,KAAd;IACA,KAAKmiB,aAAL,GAAqB5C,oFAAA,CAAgC,KAAKnF,kBAArC,EAAyD,KAAK0G,SAA9D,CAArB;;IACA,IAAI,KAAK1G,kBAAT,EAA6B;MACzB,KAAKzY,KAAL,GAAa,IAAI4gB,cAAJ,CAAmB,KAAK7B,YAAxB,EAAsC,KAAKI,SAA3C,EAAsD,KAAKd,WAA3D,EAAwE,KAAKkC,QAA7E,EAAuF,KAAK9H,kBAA5F,CAAb;IACH,CAFD,MAEO;MACH,KAAKzY,KAAL,GAAa,IAAb;IACH;;IACD,KAAKwf,QAAL;EACH;;AA/K0C;AACpCpB,mBAAY,MAAZ;AACAA,sBAAU7uB,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACW,SAAL,CAAeknB,6FAAf,CAAX,CAAV;;;;;;;;;UAmFkEV,kDAAMA;IAAAnhB,OAAClQ,mFAAD;;;;;;UA9E9E6C,iDAAKA;;;UAYLA,iDAAKA;;;UASLC,kDAAMA;;;UAIND,iDAAKA;;;UASLC,kDAAMA;;;UAIND,iDAAKA;;;UASLC,kDAAMA;;;UAGNA,kDAAMA;;;UACNA,kDAAMA;;;AA1DEi2B,WAAW,uDANvBl5B,yDAAS,CAAC;EACP4C,QAAQ,EAAE,UADH;EAEPC,UAAAA,0DAFO;EAIPgP,eAAe,EAAEf,0EAJV;;AAAA,CAAD,CAMc,GAAXooB,WAAW,CAAX;AAAAA;AAkLP,MAAOS,YAAP,SAA4B5gB,qFAA5B,CAAyC;;;IAE3C,aAAQ,CAAR;EACH;;AAH8C;AAKzC,MAAgB6iB,eAAhB,CAA+B;EAKjCv4B,YAAsBw4B,QAAtB,EAA0C5zB,OAA1C,EAA0EozB,QAA1E,EAA4F;IAAtE;IAAoB;IAAgC;IAJ1E,qBAAgC,IAAI1C,yEAAJ,EAAhC;IACA,mBAAc,KAAd;EAIC;;AANgC;AAY/B,MAAgBmD,gBAAhB,SAAyCF,eAAzC,CAAwD;;;IAC1D,qBAAgB,KAAhB;IACA,eAAU,KAAV;EA6DH;;EAzDSpe,YAAY,CAACtG,IAAD,EAAoB;IAAA;;IAAA;MAClC,MAAMoE,MAAM,GAAG,EAAf;;MACA,IAAIpE,IAAI,IAAIA,IAAI,CAAC,MAAD,CAAZ,IAAwB,KAAI,CAAC2kB,QAA7B,IAAyC,KAAI,CAACA,QAAL,CAAcE,MAA3D,EAAmE;QAC/D,MAAM7yB,QAAQ,GAAGgO,IAAI,CAAC,MAAD,CAAJ,CAAa,KAAI,CAAC2kB,QAAL,CAAc9rB,IAA3B,CAAjB;QACA,IAAIrG,IAAJ;;QACA,IAAI,KAAI,CAACmyB,QAAL,CAAcG,QAAd,IAA0B,CAAC,KAAI,CAACH,QAAL,CAAcI,SAA7C,EAAwD;UACpD,MAAMz3B,MAAM,GAAGw0B,2FAAA,EAAf;UACAx0B,MAAM,CAAC23B,OAAP,GAAiB,EAAjB;UACA33B,MAAM,CAACiwB,OAAP,GAAiB,EAAjB;UACA,MAAM2H,SAAS,GAAG,IAAIrD,qEAAJ,EAAlB;UACAqD,SAAS,CAACrsB,IAAV,GAAiB,KAAI,CAACssB,OAAtB;UACA73B,MAAM,CAAC23B,OAAP,CAAe17B,IAAf,CAAoB27B,SAApB;;UACA,IAAI,KAAI,CAACE,aAAT,EAAwB;YACpB,IAAIpzB,QAAQ,IAAI,IAAhB,EAAsB;cAClBkzB,SAAS,CAACtB,QAAV,GAAqBhC,uEAArB;cACAsD,SAAS,CAACpsB,KAAV,GAAkB9G,QAAlB;cACAQ,IAAI,SAAS,KAAI,CAACzB,OAAL,CAAamzB,aAAb,CAA2B,aAA3B,EAA0C,KAAI,CAACvB,YAA/C,EAA6Dr1B,MAA7D,EAAqEg4B,SAArE,EAAb;YACH;UACJ,CAND,MAMO,IAAI7xB,KAAK,CAACC,OAAN,CAAc1B,QAAd,CAAJ,EAA6B;YAChCkzB,SAAS,CAACtB,QAAV,GAAqBhC,oEAArB;YACAsD,SAAS,CAACpsB,KAAV,GAAkB9G,QAAlB;YACAQ,IAAI,SAAS,KAAI,CAACzB,OAAL,CAAamzB,aAAb,CAA2B,aAA3B,EAA0C,KAAI,CAACvB,YAA/C,EAA6Dr1B,MAA7D,EAAqEg4B,SAArE,EAAb;UACH;QACJ,CAlBD,MAkBO,IAAI7xB,KAAK,CAACC,OAAN,CAAc1B,QAAd,CAAJ,EAA6B;UAChCQ,IAAI,GAAGR,QAAP;QACH;;QACD,IAAIQ,IAAJ,EAAU;UACN,IAAI+J,KAAK,GAAG,CAAZ;;UACA,IAAI,OAAOyD,IAAI,CAAC,OAAD,CAAX,KAAyB,QAA7B,EAAuC;YACnCzD,KAAK,GAAGyD,IAAI,CAAC,OAAD,CAAZ;UACH;;UACDzD,KAAK;UACL/J,IAAI,CAACnH,OAAL,CAAaC,CAAC,IAAG;YACb,MAAMk6B,QAAQ,GAAGxD,WAAW,CAACO,OAAZ,CAAoBj3B,CAApB,EAAuB,KAAI,CAAC64B,QAAL,CAAcjiB,MAArC,EAA6C3F,KAA7C,EAAoD,KAAI,CAAC6nB,aAAzD,EAAwE,KAAI,CAAC1xB,IAA7E,CAAjB;;YACA,IAAI,KAAI,CAAC+yB,WAAT,EAAsB;cAClBD,QAAQ,CAAC1iB,WAAT,GAAuB,KAAI,CAACwhB,WAAL,CAAiBh5B,CAAjB,CAAvB;YACH,CAFD,MAEO,IAAI,KAAI,CAAC+4B,UAAT,EAAqB;cACxBmB,QAAQ,CAAC1iB,WAAT,GAAuB,KAAI,CAACuhB,UAAL,CAAgBC,WAAhB,CAA4Bh5B,CAA5B,CAAvB;YACH;;YACD8Y,MAAM,CAAC7a,IAAP,CAAYi8B,QAAZ;UACH,CARD;QASH;MACJ;;MACD,OAAOphB,MAAP;IA3CkC;EA4CrC;;EAEDkgB,WAAW,CAAC9xB,IAAD,EAAK;IACZ,IAAIA,IAAI,IAAI,KAAKmyB,QAAjB,EAA2B;MACvB,MAAMz3B,GAAG,GAAGsF,IAAI,CAAC,KAAKmyB,QAAL,CAAc9rB,IAAf,CAAhB;;MACA,IAAI,KAAKusB,aAAT,EAAwB;QACpB,OAAOl4B,GAAG,IAAI,IAAd;MACH,CAFD,MAEO;QACH,OAAOuG,KAAK,CAACC,OAAN,CAAcxG,GAAd,KAAsBA,GAAG,CAACnC,MAAJ,GAAa,CAA1C;MACH;IACJ;;IACD,OAAO,KAAP;EACH;;AA9DyD;AAiExD,MAAOy5B,cAAP,CAAqB;EAIvBr4B,YAAsBu5B,YAAtB,EAA8CC,SAA9C,EAAmE50B,OAAnE,EACcozB,QADd,EAC0C3qB,MAD1C,EACgD;IAD1B;IAAwB;IAAqB;IACrD;IAA4B;;IACtC,IAAI,KAAKA,MAAL,IAAe,KAAKA,MAAL,CAAYosB,YAA/B,EAA6C;MACzC,IAAI,KAAKpsB,MAAL,CAAYosB,YAAZ,CAAyBC,SAA7B,EAAwC;QACpC,IAAI,KAAKrsB,MAAL,CAAYosB,YAAZ,CAAyBE,QAA7B,EAAuC;UACnC,KAAKzB,UAAL,GAAkB,IAAI0B,uBAAJ,CAA4BL,YAA5B,EACdC,SAAS,CAACj7B,IAAV,CAAeY,CAAC,IAAIA,CAAC,CAACiI,EAAF,KAAS,KAAKiG,MAAL,CAAYosB,YAAZ,CAAyBE,QAAtD,CADc,EAEdH,SAAS,CAACj7B,IAAV,CAAeY,CAAC,IAAIA,CAAC,CAACiI,EAAF,KAAS,KAAKiG,MAAL,CAAYosB,YAAZ,CAAyBI,aAAtD,CAFc,EAGdL,SAAS,CAACj7B,IAAV,CAAeY,CAAC,IAAIA,CAAC,CAACiI,EAAF,KAAS,KAAKiG,MAAL,CAAYosB,YAAZ,CAAyB9iB,WAAtD,CAHc,EAId/R,OAJc,EAILozB,QAJK,EAIK3C,oFAAA,CAAgChoB,MAAhC,EAAwCmsB,SAAxC,CAJL,EAIyD,KAAKnsB,MAAL,CAAY9G,IAJrE,CAAlB;QAKH,CAND,MAMO,IAAI,KAAK8G,MAAL,CAAYosB,YAAZ,CAAyBK,SAA7B,EAAwC;UAC3C,KAAK5B,UAAL,GAAkB,IAAI6B,wBAAJ,CAA6BR,YAA7B,EACdC,SAAS,CAACj7B,IAAV,CAAeY,CAAC,IAAIA,CAAC,CAACiI,EAAF,KAAS,KAAKiG,MAAL,CAAYosB,YAAZ,CAAyBK,SAAtD,CADc,EACoDl1B,OADpD,EAC6DozB,QAD7D,EAEd3C,oFAAA,CAAgChoB,MAAhC,EAAwCmsB,SAAxC,CAFc,EAEsC,KAAKnsB,MAAL,CAAY9G,IAFlD,CAAlB;QAGH;MACJ,CAZD,MAYO;QACH,MAAMyzB,UAAU,GAAGR,SAAS,CAACj7B,IAAV,CAAeY,CAAC,IAAIA,CAAC,CAACiI,EAAF,KAAS,KAAKiG,MAAL,CAAYosB,YAAZ,CAAyBQ,WAAtD,CAAnB;;QACA,IAAID,UAAJ,EAAgB;UACZ,KAAK9B,UAAL,GAAkB,IAAIgC,eAAJ,CAAoBF,UAApB,EAAgCp1B,OAAhC,EAAyCozB,QAAzC,EAAmD,KAAK3qB,MAAL,CAAYosB,YAA/D,CAAlB;QACH;MACJ;IACJ;EACJ;;EAEKtf,YAAY,CAACtG,IAAD,EAAoB;IAAA;;IAAA;MAClC,IAAIA,IAAI,IAAI,MAAI,CAACqkB,UAAjB,EAA6B;QACzB,MAAM9nB,KAAK,GAAGyD,IAAI,CAAC,OAAD,CAAlB;;QACA,IAAI,OAAOzD,KAAP,KAAiB,QAArB,EAA+B;UAC3B,IAAI+pB,UAAU,GAAG,MAAI,CAACjC,UAAtB;;UACA,KAAK,IAAIlyB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGoK,KAAJ,IAAa+pB,UAA7B,EAAyCn0B,CAAC,EAA1C,EAA8C;YAC1C,IAAIm0B,UAAU,CAACb,WAAf,EAA4B;cACxB;YACH;;YACDa,UAAU,GAAGA,UAAU,CAACjC,UAAxB;UACH;;UACD,IAAIiC,UAAJ,EAAgB;YACZ,OAAOA,UAAU,CAAChgB,YAAX,CAAwBtG,IAAxB,CAAP;UACH;QACJ;MACJ;;MACD,OAAO,EAAP;IAhBkC;EAiBrC;;AA7CsB;AAgDrB,MAAO+lB,uBAAP,SAAuCrB,eAAvC,CAAsD;EAGxDv4B,YAAoBu5B,YAApB,EAA4Ca,WAA5C,EAAmEC,gBAAnE,EAA+FC,aAA/F,EACc11B,OADd,EAC8CozB,QAD9C,EAC4E3B,aAD5E,EACqH/vB,IADrH,EACyH;IACrH,MAAM8zB,WAAN,EAAmBx1B,OAAnB,EAA4BozB,QAA5B;IAFgB;IAAwB;IAAuB;IAA4B;IACjF;IAAgC;IAA8B;IAAyC;;IAEjH,IAAIoC,WAAJ,EAAiB;MACb,IAAIA,WAAW,CAACxyB,IAAZ,KAAqB,sCAAzB,EAAiE;QAC7D,KAAK2yB,cAAL,GAAsB,KAAtB;MACH,CAFD,MAEO,IAAIF,gBAAJ,EAAsB;QACzB,IAAID,WAAW,CAACxyB,IAAZ,KAAqByyB,gBAAgB,CAACzyB,IAAtC,IAA8CwyB,WAAW,CAAC1tB,IAAZ,KAAqB2tB,gBAAgB,CAAC3tB,IAAxF,EAA8F;UAC1F,KAAK6tB,cAAL,GAAsBF,gBAAgB,CAAC3tB,IAAvC;QACH;MACJ,CAJM,MAIA,IAAI0tB,WAAW,CAACxyB,IAAZ,KAAqB,sCAAzB,EAAiE;QACpE,KAAK2yB,cAAL,GAAsB,KAAtB;MACH;IACJ;;IACD,KAAKtC,aAAL,GAAqB5B,aAArB;IACA,KAAKiD,WAAL,GAAmB,IAAnB;EACH;;EAEKnf,YAAY,CAACtG,IAAD,EAAoB;IAAA;;IAAA;MAClC,MAAMoE,MAAM,GAAG,EAAf;;MACA,IAAI,MAAI,CAACsiB,cAAT,EAAyB;QACrB,MAAMp5B,MAAM,GAAG,IAAIw0B,uEAAJ,EAAf;QACAx0B,MAAM,CAAC23B,OAAP,GAAiB,EAAjB;QACA33B,MAAM,CAACiwB,OAAP,GAAiB,EAAjB;QACA,IAAIhhB,KAAK,GAAG,CAAZ;;QACA,IAAIyD,IAAJ,EAAU;UACN,IAAIA,IAAI,CAAC,MAAD,CAAR,EAAkB;YACd,MAAMklB,SAAS,GAAG,IAAIrD,qEAAJ,EAAlB;YACAqD,SAAS,CAACrsB,IAAV,GAAiB,MAAI,CAAC8rB,QAAL,CAAc9rB,IAA/B;YACAqsB,SAAS,CAACtB,QAAV,GAAqBhC,uEAArB;YACAsD,SAAS,CAACpsB,KAAV,GAAkBkH,IAAI,CAAC,MAAD,CAAJ,CAAa,MAAI,CAAC0mB,cAAlB,CAAlB;YACAp5B,MAAM,CAAC23B,OAAP,CAAe17B,IAAf,CAAoB27B,SAApB;UACH;;UACD,IAAI,OAAOllB,IAAI,CAAC,OAAD,CAAX,KAAyB,QAA7B,EAAuC;YACnCzD,KAAK,GAAGyD,IAAI,CAAC,OAAD,CAAZ;UACH;QACJ;;QACDzD,KAAK;QACL,MAAM/J,IAAI,SAAS,MAAI,CAACzB,OAAL,CAAamzB,aAAb,CAA2B,aAA3B,EAA0C,MAAI,CAACwB,YAA/C,EAA6Dp4B,MAA7D,EAAqEg4B,SAArE,EAAnB;;QACA,IAAI9yB,IAAJ,EAAU;UACNA,IAAI,CAACnH,OAAL,CAAaC,CAAC,IAAG;YACb,MAAMk6B,QAAQ,GAAGxD,WAAW,CAACO,OAAZ,CAAoBj3B,CAApB,EAAuB,MAAI,CAAC64B,QAAL,CAAcjiB,MAArC,EAA6C3F,KAA7C,EAAoD,MAAI,CAAC6nB,aAAzD,EAAwE,MAAI,CAAC3xB,IAA7E,CAAjB;YACA+yB,QAAQ,CAAC1iB,WAAT,GAAuB,MAAI,CAACwhB,WAAL,CAAiBh5B,CAAjB,CAAvB;YACA8Y,MAAM,CAAC7a,IAAP,CAAYi8B,QAAZ;UACH,CAJD;QAKH;MACJ;;MACD,OAAOphB,MAAP;IA7BkC;EA8BrC;;EAEDkgB,WAAW,CAAC9xB,IAAD,EAAK;IACZ,IAAI,KAAKi0B,aAAL,IAAsBj0B,IAA1B,EAAgC;MAC5B,OAAOA,IAAI,CAAC,KAAKi0B,aAAL,CAAmB5tB,IAApB,CAAX;IACH;;IACD,OAAO,IAAP;EACH;;AA1DuD;AA6DtD,MAAOqtB,wBAAP,SAAwCtB,gBAAxC,CAAwD;EAC1Dz4B,YAAsBu5B,YAAtB,EAA8CiB,cAA9C,EAAwE51B,OAAxE,EACcozB,QADd,EAC4C3B,aAD5C,EACqF/vB,IADrF,EACyF;IACrF,MAAMk0B,cAAN,EAAsB51B,OAAtB,EAA+BozB,QAA/B;IAFkB;IAAwB;IAA0B;IAC1D;IAA8B;IAAyC;IAEjF,KAAKxB,YAAL,GAAoB+C,YAApB;IACA,KAAKtB,aAAL,GAAqB5B,aAArB;IACA,KAAKiD,WAAL,GAAmB,IAAnB;IACA,KAAK/yB,IAAL,GAAYD,IAAZ;EACH;;AARyD;AAWxD,MAAO4zB,eAAP,SAA+BzB,gBAA/B,CAA+C;EAEjDz4B,YAAsBy6B,SAAtB,EAA2C71B,OAA3C,EAA2EozB,QAA3E,EAAyG0C,SAAzG,EAAkH;IAC9G,MAAMD,SAAN,EAAiB71B,OAAjB,EAA0BozB,QAA1B;IADkB;IAAqB;IAAgC;IAA8B;;IAErG,IAAIyC,SAAJ,EAAe;MACX,KAAKjE,YAAL,GAAoBiE,SAAS,CAACE,YAA9B;;MACA,IAAIF,SAAS,CAAC9B,QAAV,IAAsB,CAAC8B,SAAS,CAAC7B,SAAjC,IAA8C6B,SAAS,CAACG,UAAxD,IAAsEH,SAAS,CAACG,UAAV,CAAqBh8B,MAArB,KAAgC,CAA1G,EAA6G;QACzG,KAAKq6B,aAAL,GAAqB,IAArB;QACA,KAAKD,OAAL,GAAeyB,SAAS,CAACG,UAAV,CAAqB,CAArB,CAAf;MACH;;MACD,IAAIF,SAAS,IAAID,SAAS,CAAC/B,MAAvB,IAAiC+B,SAAS,CAAC7yB,IAAV,KAAmB,sCAAxD,EAAgG;QAC5F,KAAKrB,IAAL,GAAYm0B,SAAS,CAACn0B,IAAtB;QACA6uB,wEAAA,CAAuBqF,SAAS,CAACE,YAAjC,EAA+Cz5B,IAA/C,CAAqDhD,MAAD,IAAW;UAC3D,IAAIA,MAAJ,EAAY;YACR,MAAMy4B,MAAM,GAAGz4B,MAAM,CAAC,QAAD,CAArB;;YACA,IAAIy4B,MAAJ,EAAY;cACR,KAAKsB,aAAL,GAAqB5C,oFAAA,CAAgCqF,SAAhC,EAA2C/D,MAA3C,CAArB;;cACA,IAAI+D,SAAS,CAACG,SAAd,EAAyB;gBACrB,IAAIH,SAAS,CAACG,SAAV,CAAoBnB,SAAxB,EAAmC;kBAC/B,IAAIgB,SAAS,CAACG,SAAV,CAAoBlB,QAAxB,EAAkC;oBAC9B,KAAKzB,UAAL,GAAkB,IAAI0B,uBAAJ,CAA4B,KAAKpD,YAAjC,EACdG,MAAM,CAACp4B,IAAP,CAAYY,CAAC,IAAIA,CAAC,CAACiI,EAAF,KAASszB,SAAS,CAACG,SAAV,CAAoBlB,QAA9C,CADc,EAEdhD,MAAM,CAACp4B,IAAP,CAAYY,CAAC,IAAIA,CAAC,CAACiI,EAAF,KAASszB,SAAS,CAACG,SAAV,CAAoBhB,aAA9C,CAFc,EAGdlD,MAAM,CAACp4B,IAAP,CAAYY,CAAC,IAAIA,CAAC,CAACiI,EAAF,KAASszB,SAAS,CAACG,SAAV,CAAoBlkB,WAA9C,CAHc,EAId/R,OAJc,EAILozB,QAJK,EAIK,KAAKC,aAJV,EAIyByC,SAAS,CAACn0B,IAJnC,CAAlB;kBAKH,CAND,MAMO,IAAIm0B,SAAS,CAACG,SAAV,CAAoBf,SAAxB,EAAmC;oBACtC,KAAK5B,UAAL,GAAkB,IAAI6B,wBAAJ,CAA6B,KAAKvD,YAAlC,EACdG,MAAM,CAACp4B,IAAP,CAAYY,CAAC,IAAIA,CAAC,CAACiI,EAAF,KAASszB,SAAS,CAACG,SAAV,CAAoBf,SAA9C,CADc,EAEdl1B,OAFc,EAELozB,QAFK,EAEK,KAAKC,aAFV,EAEyByC,SAAS,CAACn0B,IAFnC,CAAlB;kBAGH;gBACJ,CAZD,MAYO;kBACH,MAAMyzB,UAAU,GAAGrD,MAAM,CAACp4B,IAAP,CAAYY,CAAC,IAAIA,CAAC,CAACiI,EAAF,KAASszB,SAAS,CAACG,SAAV,CAAoBZ,WAA9C,CAAnB;;kBACA,IAAID,UAAJ,EAAgB;oBACZ,KAAK9B,UAAL,GAAkB,IAAIgC,eAAJ,CAAoBF,UAApB,EAAgCp1B,OAAhC,EAAyCozB,QAAzC,EAAmD0C,SAAS,CAACG,SAA7D,CAAlB;kBACH;gBACJ;cACJ;YACJ;UACJ;QACJ,CA3BD;MA4BH;IACJ;EACJ;;AA1CgD;;;;;;;;;;;;;;;;;;;;;;AChZ2C;IAQnF,gBAAgB,SAAhB,gBAAgB;IA+DzB;QA9CU,eAAU,GAAG,IAAI,uDAAY,EAAO;QAcpC,kBAAa,GAAG,IAAI,uDAAY,EAAO;QACjD,YAAY;QAEZ,+BAA+B;QAC/B,+BAA0B,GAAG,KAAK,CAAC;QAYzB,gCAA2B,GAAG,IAAI,uDAAY,EAAO;QAoBrD,gBAAW,GAAG,IAAI,uDAAY,EAAO;QAH3C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;QAzDG,IAAI;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,CAAC,GAAG;QACR,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;QAQG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;QASG,qBAAqB;QACrB,OAAO,IAAI,CAAC,0BAA0B,CAAC;IAC3C,CAAC;IACD,IAAI,qBAAqB,CAAC,GAAG;QACzB,IAAI,CAAC,0BAA0B,GAAG,GAAG,CAAC;QACtC,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC3E,CAAC;IAGD,YAAY;IAEZ,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ;QAC5B,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;YACZ,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;SAClB;QACD,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;QAChF,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE;YACzD,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACrB,gBAAgB,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAOD,QAAQ;QACJ,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IAED,SAAS;QACL,IAAI,IAAI,CAAC,0BAA0B,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC3E,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACvB,gBAAgB,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;SACN;IACL,CAAC;;;;mBA5EA,gDAAK;yBAUL,iDAAM;sBAKN,gDAAK;4BASL,iDAAM;oCAMN,gDAAK;0CAUL,iDAAM;0BAoBN,iDAAM;;AAnEE,gBAAgB;IAN5B,wDAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,yEAAuC;QAEvC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,gBAAgB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACRmE;AACtB;IAoB7D,oBAAoB,SAApB,oBAAoB;;QAkBnB,cAAS,GAAG,IAAI,uDAAY,EAAO;QAmBnC,kBAAa,GAAG,IAAI,uDAAY,EAAO;QAcvC,sBAAiB,GAAG,IAAI,uDAAY,EAAO;QACrD,YAAY;QAEZ,gBAAW,GAAG,EAAE,CAAC;QACjB,aAAQ,GAAG,EAAE,CAAC;IAclB,CAAC;QAhEO,GAAG;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD,IAAI,GAAG,CAAC,GAAG;QACP,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACpB,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;SACrE;QACD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;QAQG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;SAClF;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;QAQG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;IAQD,QAAQ;QACJ,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;SACpC;IACL,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvC,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;SACpC;IACL,CAAC;;;kBAhEA,gDAAK;wBAcL,iDAAM;sBAKN,gDAAK;4BAcL,iDAAM;0BAKN,gDAAK;gCASL,iDAAM;;AAnDE,oBAAoB;IAlBhC,wDAAS,CAAC;QACP,QAAQ,EAAE,mBAAmB;QAC7B,6EAA2C;QAE3C,UAAU,EAAE;YACR,4DAAO,CAAC,YAAY,EAAE;gBAClB,+DAAU,CAAC,QAAQ,EAAE;oBACjB,0DAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAC,CAAC;oBACxC,4DAAO,CAAC,OAAO,EAAE,0DAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;iBAC1D,CAAC;gBACF,+DAAU,CAAC,QAAQ,EAAE;oBACjB,0DAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;oBACjD,4DAAO,CAAC,OAAO,EAAE,0DAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC;iBAC9D,CAAC;aACL,CAAC;SACL;QACD,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,oBAAoB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrBjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;IAQaM,aAAa,SAAbA,aAAa,SAASxM,4DAAT,CAAuB;EAwG7C3uB,YAAoBo7B,YAApB,EAAgDn7B,KAAhD,EAAuHoG,IAAvH,EAA2H;IACvH,MAAMpG,KAAN,EAAaoG,IAAb;IADgB;IAAmG;IArGvH,aAAQ;MACJ,QAAQ;QACJ0B,OAAO,EAAE,KADL;QAEJ4E,KAAK,EAAE,MAFH;QAGJ/E,IAAI,EAAE;MAHF,CADJ;MAMJ,4BAA4B;QACxBG,OAAO,EAAE,eADe;QAExB4E,KAAK,EAAE,0BAFiB;QAGxB/E,IAAI,EAAE;MAHkB,CANxB;MAWJ,qEAAqE;QACjEG,OAAO,EAAE,aADwD;QAEjE4E,KAAK,EAAE,mEAF0D;QAGjE/E,IAAI,EAAE;MAH2D,CAXjE;MAgBJ,cAAc;QACVG,OAAO,EAAE,MADC;QAEV4E,KAAK,EAAE,YAFG;QAGV/E,IAAI,EAAE;MAHI,CAhBV;MAqBJ,WAAW;QACPG,OAAO,EAAE,OADF;QAEP4E,KAAK,EAAE,SAFA;QAGP/E,IAAI,EAAE;MAHC,CArBP;MA0BJ,aAAa;QACTG,OAAO,EAAE,MADA;QAET4E,KAAK,EAAE,WAFE;QAGT/E,IAAI,EAAE;MAHG,CA1BT;MA+BJ,WAAW;QACPG,OAAO,EAAE,OADF;QAEP4E,KAAK,EAAE,SAFA;QAGP/E,IAAI,EAAE;MAHC,CA/BP;MAoCJ,WAAW;QACPG,OAAO,EAAE,OADF;QAEP4E,KAAK,EAAE,SAFA;QAGP/E,IAAI,EAAE;MAHC,CApCP;MAyCJ,QAAQ;QACJG,OAAO,EAAE,KADL;QAEJ4E,KAAK,EAAE,MAFH;QAGJ/E,IAAI,EAAE;MAHF;IAzCJ,CAAR;IA+GA,qBAAgB,KAAhB;IARI,KAAKmnB,YAAL,CAAkB3xB,IAAlB,CAAuB,IAAIoxB,sEAAJ,CAAoB,SAApB,EAA+B,QAA/B,EAAyC,QAAzC,CAAvB;IACA,KAAKO,YAAL,CAAkB3xB,IAAlB,CAAuB,IAAIoxB,sEAAJ,CAAoB,MAApB,EAA4B,QAA5B,EAAsC,QAAtC,CAAvB;IACA,KAAKO,YAAL,CAAkB3xB,IAAlB,CAAuB,IAAIoxB,sEAAJ,CAAoB,MAApB,EAA4B,QAA5B,EAAsC,QAAtC,CAAvB;IACA,KAAKuH,SAAL,CAAe34B,IAAf,CAAoB,gBAApB;IACA,KAAK24B,SAAL,CAAe34B,IAAf,CAAoB,gBAApB;IACA,KAAK24B,SAAL,CAAe34B,IAAf,CAAoB,eAApB;IACA,KAAK24B,SAAL,CAAe34B,IAAf,CAAoB,cAApB;EACH;;EA9DO,IAAJmoB,IAAI;IACJ,IAAI,KAAK8V,SAAL,IAAkB,IAAtB,EAA4B;MACxB,OAAO,KAAKA,SAAZ;IACH;;IACD,IAAI,KAAKnL,kBAAL,CAAwB3K,IAA5B,EAAkC;MAC9B,OAAO,KAAK2K,kBAAL,CAAwB3K,IAA/B;IACH;;IACD,OAAO,EAAP;EACH;;EACO,IAAJA,IAAI,CAACxkB,GAAD,EAAI;IACR,KAAKs6B,SAAL,GAAiBt6B,GAAjB;EACH;;EAGU,IAAPgH,OAAO;IACP,IAAI,KAAKuzB,YAAL,IAAqB,IAAzB,EAA+B;MAC3B,OAAO,KAAKA,YAAZ;IACH;;IACD,OAAO,KAAKpL,kBAAL,CAAwBnoB,OAA/B;EACH;;EACU,IAAPA,OAAO,CAAChH,GAAD,EAAI;IACX,KAAKu6B,YAAL,GAAoBv6B,GAApB;;IACA,IAAI,KAAKw6B,MAAT,EAAiB;MACb,KAAKA,MAAL,CAAYxzB,OAAZ,GAAsBhH,GAAtB;IACH;;IACD,KAAKd,KAAL,CAAW0B,aAAX;EACH;;EAGO,IAAJ4E,IAAI;IACJ,IAAI,KAAKi1B,SAAL,IAAkB,IAAtB,EAA4B;MACxB,OAAO,KAAKA,SAAZ;IACH;;IACD,OAAO,KAAKtL,kBAAL,CAAwB3pB,IAA/B;EACH;;EACO,IAAJA,IAAI,CAACxF,GAAD,EAAI;IACR,KAAKy6B,SAAL,GAAiBz6B,GAAjB;;IACA,IAAI,KAAKw6B,MAAT,EAAiB;MACb,KAAKA,MAAL,CAAYh1B,IAAZ,GAAmBxF,GAAnB;IACH;;IACD,KAAKd,KAAL,CAAW0B,aAAX;EACH;;EAEY,IAAT85B,SAAS;IACT,IAAI,KAAKvL,kBAAL,IAA2B,KAAKA,kBAAL,CAAwBuL,SAAnD,IAAgE,KAAKvL,kBAAL,CAAwBuL,SAAxB,CAAkC78B,MAAlC,GAA2C,CAA/G,EAAkH;MAC9G,OAAO,KAAKsxB,kBAAL,CAAwBuL,SAAxB,CAAkCne,IAAlC,CAAuC,IAAvC,CAAP;IACH;;IACD,OAAO,IAAP;EACH;;EAgBDwS,kBAAkB;IACd,KAAK4L,eAAL;;IACA,IAAI5uB,MAAM,CAAC,oBAAD,CAAV,EAAkC;MAC9B,KAAK6uB,aAAL,GAAqB,IAArB;IACH;EACJ;;EAEOD,eAAe;IACnB,IAAI,KAAKxL,kBAAT,EAA6B;MACzB,KAAK0L,YAAL,GAAoBltB,gEAAY,CAAC7R,uEAAD,EAAgBmK,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACW,SAAL,CAAe,KAAKuoB,kBAApB,CAAX,CAAhB,CAAhC;IACH;EACJ;;EACD2L,QAAQ,CAACn4B,KAAD,EAAM;IACV,IAAIqK,EAAE,GAAG;MACLuQ,MAAM,EAAE;QACJuO,KAAK,EAAEnpB;MADH;IADH,CAAT;IAKA,KAAKo4B,aAAL,CAAmB/tB,EAAnB;EACH;;EACDguB,kBAAkB;IACd,KAAKL,eAAL;EACH;;EACDM,sBAAsB;IAClB,KAAKN,eAAL;EACH;;EACKO,cAAc,CAACv4B,KAAD,EAAM;IAAA;;IAAA;MACtB,IAAG,CAAC,KAAI,CAACiR,QAAN,IAAkB,KAAI,CAACunB,QAA1B,EAAoC;QAChC,OAAO,KAAI,CAACC,cAAL,CAAoBz4B,KAApB,CAAP;MACH;;MACD,IAAI,KAAI,CAACi4B,aAAT,EAAwB;QACpB,MAAMS,UAAU,GAAG;UACfC,KAAK,EAAE,EADQ;UAEfC,sBAAsB,EAAE,KAAI,CAACpM,kBAAL,CAAwBqM,YAAxB,GAAuC,IAAvC,GAA8C,KAFvD;UAGfC,QAAQ,EAAE,KAAI,CAACtM,kBAAL,CAAwBuB,QAAxB,GAAmC,IAAnC,GAA0C;QAHrC,CAAnB;;QAKA,IAAI,KAAI,CAACvB,kBAAL,CAAwBuL,SAA5B,EAAuC;UACnCW,UAAU,CAACC,KAAX,GAAmB,EAAnB;;UAEA,KAAI,CAACnM,kBAAL,CAAwBuL,SAAxB,CAAkCv8B,OAAlC,CAA2Cu9B,EAAD,IAAO;YAC7C,IAAIC,GAAG,GAAG,KAAI,CAACC,KAAL,CAAWF,EAAX,CAAV;YACA,IAAIt+B,IAAI,GAAG;cACPy+B,WAAW,EAAEH,EADN;cAEPI,MAAM,EAAE;YAFD,CAAX;;YAIA,IAAIH,GAAJ,EAAS;cACLv+B,IAAI,CAACy+B,WAAL,GAAmBF,GAAG,CAAC30B,OAAvB;cACA5J,IAAI,CAAC0+B,MAAL,CAAYH,GAAG,CAAC90B,IAAhB,IAAwB,EAAxB;YACH;;YACDw0B,UAAU,CAACC,KAAX,CAAiBj/B,IAAjB,CAAsBe,IAAtB;UAEH,CAZD;QAaH;;QAED,IAAI2+B,WAAW,SAAShwB,MAAM,CAAC,oBAAD,CAAN,CAA6BsvB,UAA7B,CAAxB;;QACA,IAAIU,WAAW,IAAIA,WAAW,CAACl+B,MAAZ,GAAqB,CAAxC,EAA2C;UACvC,IAAI8E,KAAK,GAAG;YACR4a,MAAM,EAAE;cACJuO,KAAK,EAAE;YADH;UADA,CAAZ;;UAKA,IAAI,KAAI,CAACqD,kBAAL,CAAwBuB,QAA5B,EAAsC;YAClC,IAAIrX,KAAK,GAAG0iB,WAAW,CAACl+B,MAAxB;YACA,IAAIoH,CAAC,GAAG,CAAR;YACA82B,WAAW,CAAC59B,OAAZ,CAAqB69B,UAAD,IAAe;cAC/BA,UAAU,CAACC,OAAX,GAAqB97B,IAArB,CAA2B4rB,IAAD,IAAS;gBAC/BppB,KAAK,CAAC4a,MAAN,CAAauO,KAAb,CAAmBzvB,IAAnB,CAAwB0vB,IAAxB;gBACA9mB,CAAC,IAAI,CAAL;;gBACA,IAAIA,CAAC,IAAIoU,KAAT,EAAgB;kBACZ,KAAI,CAAC0hB,aAAL,CAAmBp4B,KAAnB;gBACH;cACJ,CAND;YAOH,CARD;UASH,CAZD,MAYO;YACHo5B,WAAW,CAAC,CAAD,CAAX,CAAeE,OAAf,GAAyB97B,IAAzB,CAA+B4rB,IAAD,IAAS;cACnCppB,KAAK,CAAC4a,MAAN,CAAauO,KAAb,CAAmBzvB,IAAnB,CAAwB0vB,IAAxB;;cACA,KAAI,CAACgP,aAAL,CAAmBp4B,KAAnB;YACH,CAHD;UAIH;QACJ,CAjDmB,CAkDpB;QACA;QAEA;QACA;QACA;;MACH;IA5DqB;EA6DzB;;EACDo4B,aAAa,CAACp4B,KAAD,EAAM;IACf,IAAG,CAAC,KAAKiR,QAAN,IAAkB,KAAKunB,QAA1B,EAAoC;MAChC,OAAO,KAAKC,cAAL,CAAoBz4B,KAApB,CAAP;IACH;;IAED,IAAI,KAAKwsB,kBAAL,KAA4B,KAAKA,kBAAL,CAAwB+M,WAAxB,IAAuC,KAAK/M,kBAAL,CAAwBgN,UAA3F,CAAJ,EAA4G;MACxG,IAAIC,YAAY,GAAG,IAAnB;;MACA,IAAI,KAAKjN,kBAAL,CAAwBuB,QAA5B,EAAsC;QAClC0L,YAAY,GAAGz5B,KAAK,CAAC4a,MAAN,CAAauO,KAA5B;MACH,CAFD,MAEO;QACHsQ,YAAY,GAAGz5B,KAAK,CAAC4a,MAAN,CAAauO,KAAb,CAAmB,CAAnB,CAAf;MACH;;MACD,KAAKkK,YAAL,CAAkB,gBAAlB,EAAoCoG,YAApC;;MACA,IAAI,KAAKjN,kBAAL,CAAwBgN,UAA5B,EAAwC;QACpC,KAAKnG,YAAL,CAAkB,eAAlB,EAAmCoG,YAAnC;QACA,MAAMC,MAAM,GAAG,IAAIC,UAAJ,EAAf;;QACAD,MAAM,CAACjpB,MAAP,GAAiB5F,CAAD,IAAM;UAClB,KAAK+uB,UAAL,GAAkBF,MAAM,CAACl/B,MAAzB;UACAi/B,YAAY,CAAC92B,IAAb,GAAoB+2B,MAAM,CAACl/B,MAA3B;UACA,KAAK64B,YAAL,CAAkB,gBAAlB,EAAoCoG,YAApC;QACH,CAJD;;QAKA,IAAI,KAAKjN,kBAAL,CAAwBqN,QAAxB,IAAoC,KAAxC,EAA+C;UAC3CH,MAAM,CAACI,kBAAP,CAA0BL,YAA1B;QACH,CAFD,MAEO;UACHC,MAAM,CAACK,aAAP,CAAqBN,YAArB;QACH;MACJ,CAbD,MAaO;QACH,IAAI,KAAKjN,kBAAL,CAAwBwN,gBAA5B,EAA8C;UAC1C,KAAKtC,YAAL,CAAkBuC,WAAlB,CAA8B,KAAKzN,kBAAL,CAAwB+M,WAAtD,EAAmE,KAAK1X,IAAxE,EAA8EjoB,SAA9E,CAAwFsgC,CAAC,IAAG;YACxF,IAAIA,CAAC,IAAIA,CAAC,CAACh/B,MAAF,GAAW,CAApB,EAAuB;cACnB,MAAMuI,KAAK,GAAG,EAAd;;cACA,IAAI,KAAK+oB,kBAAL,CAAwBuB,QAA5B,EAAsC;gBAClCnqB,KAAK,CAACu2B,IAAN,CAAWV,YAAX,EAAyBj+B,OAAzB,CAAkC4tB,IAAD,IAAe;kBAC5C,MAAMtuB,KAAK,GAAGo/B,CAAC,CAACr/B,IAAF,CAAQu/B,CAAD,IAAOA,CAAC,CAACpxB,IAAF,IAAUogB,IAAI,CAACQ,IAA7B,CAAd;;kBACA,IAAI9uB,KAAK,IAAI,IAAb,EAAmB;oBACf2I,KAAK,CAAC/J,IAAN,CAAW0vB,IAAI,CAACQ,IAAhB;kBACH;gBACJ,CALD;cAMH,CAPD,MAOO;gBACH,MAAM9uB,KAAK,GAAGo/B,CAAC,CAACr/B,IAAF,CAAQu/B,CAAD,IAAOA,CAAC,CAACpxB,IAAF,IAAUywB,YAAY,CAAC7P,IAArC,CAAd;;gBACA,IAAI9uB,KAAK,IAAI,IAAb,EAAmB;kBACf2I,KAAK,CAAC/J,IAAN,CAAW+/B,YAAY,CAAC7P,IAAxB;gBACH;cACJ;;cAED,IAAInmB,KAAK,IAAIA,KAAK,CAACvI,MAAN,GAAe,CAA5B,EAA+B;gBAC3B,IAAIm/B,IAAI,GAAG,EAAX;;gBACA,IAAI52B,KAAK,CAACvI,MAAN,GAAe,CAAnB,EAAsB;kBAClBm/B,IAAI,GAAG,gGAAP;gBACH,CAFD,MAEO;kBACHA,IAAI,GAAG,kFAAP;gBACH;;gBAED,MAAMC,GAAG,GAAG,IAAI5oB,uEAAJ,CAAwB2oB,IAAxB,CAAZ;gBACA,MAAME,IAAI,GAAG92B,KAAK,CAACmW,IAAN,CAAW,IAAX,CAAb;gBACA0gB,GAAG,CAACE,YAAJ,CAAiB9gC,IAAjB,CAAsB6gC,IAAtB;gBACAxoB,+FAAA,CAA4BuoB,GAA5B,EAAiC,IAAI5oB,uEAAJ,CAAwB,wBAAxB,CAAjC,EAAoFG,0FAApF,EACIC,uFADJ,EAC6BtU,IAD7B,CACmCm9B,GAAD,IAAQ;kBAClC,IAAIA,GAAG,KAAKpD,sFAAZ,EAAkC;oBAC9B,KAAKsD,cAAL,CAAoBpB,YAApB;kBACH;gBACJ,CALL;cAMH,CAjBD,MAiBO;gBACH,KAAKoB,cAAL,CAAoBpB,YAApB;cACH;YACJ,CApCD,MAoCO;cACH,KAAKoB,cAAL,CAAoBpB,YAApB;YACH;UACJ,CAxCD;QAyCH,CA1CD,MA0CO;UACH,KAAKqB,UAAL,CAAgBrB,YAAhB;QACH;MACJ;IAEJ;EACJ;;EAEDsB,aAAa,CAACtB,YAAD,EAAa;IACtB,IAAIuB,MAAM,GAAG,EAAb;;IACA,IAAI,KAAKxO,kBAAL,CAAwByO,WAA5B,EAAyC;MACrC,IAAI,KAAKzO,kBAAL,CAAwBuB,QAA5B,EAAsC;QAClCnqB,KAAK,CAACu2B,IAAN,CAAWV,YAAX,EAAyBj+B,OAAzB,CAAkC4tB,IAAD,IAAe;UAC5C,IAAIA,IAAI,CAAC7uB,IAAL,GAAY,KAAKiyB,kBAAL,CAAwByO,WAAxC,EAAqD;YACjDD,MAAM,CAACthC,IAAP,CAAY,KAAKwhC,QAAL,CAAc9R,IAAd,CAAZ;UACH;QACJ,CAJD;MAKH,CAND,MAMO;QACH,IAAIqQ,YAAY,CAACl/B,IAAb,GAAoB,KAAKiyB,kBAAL,CAAwByO,WAAhD,EAA6D;UACzDD,MAAM,CAACthC,IAAP,CAAY,KAAKwhC,QAAL,CAAczB,YAAd,CAAZ;QACH;MACJ;IACJ;;IACD,IAAIuB,MAAM,CAAC9/B,MAAP,GAAgB,CAApB,EAAuB;MACnB,KAAKm4B,YAAL,CAAkB,cAAlB,EAAkC2H,MAAlC;MACA1zB,OAAO,CAACC,GAAR,CAAYyzB,MAAZ;IACH;;IACD,OAAOA,MAAM,CAAC9/B,MAAP,IAAiB,CAAxB;EACH;;EACDggC,QAAQ,CAAC9R,IAAD,EAAU;IACd,IAAI3uB,IAAI,GAAQ,EAAhB;IACAA,IAAI,CAACmvB,IAAL,GAAYR,IAAI,CAACQ,IAAjB;IACAnvB,IAAI,CAACF,IAAL,GAAY6uB,IAAI,CAAC7uB,IAAjB;IACAE,IAAI,CAACuI,IAAL,GAAYomB,IAAI,CAACpmB,IAAjB;IACA,OAAOvI,IAAP;EACH;;EACDqgC,UAAU,CAACrB,YAAD,EAAa;IACnB,IAAIA,YAAY,IAAI,KAAKjN,kBAArB,IAA2C,KAAKA,kBAAL,CAAwB+M,WAAvE,EAAoF;MAChF,MAAM4B,UAAU,GAAG,IAAIC,QAAJ,EAAnB;;MAEA,IAAI,KAAKL,aAAL,CAAmBtB,YAAnB,CAAJ,EAAsC;QAClC,IAAI,KAAKjN,kBAAL,CAAwBuB,QAA5B,EAAsC;UAClCnqB,KAAK,CAACu2B,IAAN,CAAWV,YAAX,EAAyBj+B,OAAzB,CAAkC4tB,IAAD,IAAe;YAC5C+R,UAAU,CAACE,MAAX,CAAkB,KAAKxZ,IAAL,GAAYuH,IAAI,CAACQ,IAAnC,EAAyCR,IAAzC,EAA+C,KAAKvH,IAAL,GAAYuH,IAAI,CAACQ,IAAhE;UACH,CAFD;QAGH,CAJD,MAIO;UACHuR,UAAU,CAACE,MAAX,CAAkB,KAAKxZ,IAAL,GAAY4X,YAAY,CAAC7P,IAA3C,EAAiD6P,YAAjD,EAA+D,KAAK5X,IAAL,GAAY4X,YAAY,CAAC7P,IAAxF;QACH;;QACD,KAAKyJ,YAAL,CAAkB,eAAlB,EAAmCoG,YAAnC;QACA,KAAK/B,YAAL,CAAkB4D,UAAlB,CAA6B,KAAK9O,kBAAL,CAAwB+M,WAArD,EAAkE4B,UAAlE,EAA8EvhC,SAA9E,CAAyFY,MAAD,IAAW;UAC/F,IAAIA,MAAM,CAACwI,IAAP,KAAgBo0B,yEAApB,EAA4C;YACxC,KAAK/D,YAAL,CAAkB,gBAAlB,EAAoC74B,MAAM,CAACghC,IAA3C;UACH;QACJ,CAJD;MAKH;IACJ;EACJ;;EACDX,cAAc,CAACpB,YAAD,EAAa;IACvB,IAAIA,YAAY,IAAI,KAAKjN,kBAArB,IAA2C,KAAKA,kBAAL,CAAwB+M,WAAvE,EAAoF;MAChF,MAAM4B,UAAU,GAAG,IAAIC,QAAJ,EAAnB;;MACA,IAAI,KAAKL,aAAL,CAAmBtB,YAAnB,CAAJ,EAAsC;QAClC,IAAI,KAAKjN,kBAAL,CAAwBuB,QAA5B,EAAsC;UAClCnqB,KAAK,CAACu2B,IAAN,CAAWV,YAAX,EAAyBj+B,OAAzB,CAAkC4tB,IAAD,IAAe;YAC5C+R,UAAU,CAACE,MAAX,CAAkB,KAAKxZ,IAAL,GAAYuH,IAAI,CAACQ,IAAnC,EAAyCR,IAAzC,EAA+C,KAAKvH,IAAL,GAAYuH,IAAI,CAACQ,IAAhE;UACH,CAFD;QAGH,CAJD,MAIO;UACHuR,UAAU,CAACE,MAAX,CAAkB,KAAKxZ,IAAL,GAAY4X,YAAY,CAAC7P,IAA3C,EAAiD6P,YAAjD,EAA+D,KAAK5X,IAAL,GAAY4X,YAAY,CAAC7P,IAAxF;QACH;;QACD,KAAKyJ,YAAL,CAAkB,eAAlB,EAAmCoG,YAAnC;QACA,KAAK/B,YAAL,CAAkB+D,cAAlB,CAAiC,KAAKjP,kBAAL,CAAwB+M,WAAzD,EAAsE4B,UAAtE,EAAkFvhC,SAAlF,CAA4FiR,CAAC,IAAG;UAC5F,IAAIA,CAAC,CAAC7H,IAAF,KAAWo0B,yEAAf,EAAuC;YACnC,KAAK/D,YAAL,CAAkB,gBAAlB,EAAoCxoB,CAAC,CAAC2wB,IAAtC;UACH;QACJ,CAJD;MAKH;IACJ;EACJ;;EACDE,SAAS;IACL,MAAMnnB,MAAM,GAAG,EAAf;;IACA,IAAI,KAAKiY,kBAAL,IAA2B,OAAO,KAAKA,kBAAL,CAAwBmP,MAA/B,KAA0C,QAAzE,EAAmF;MAC/EpnB,MAAM,CAAC,SAAD,CAAN,GAAoB,KAAKiY,kBAAL,CAAwBmP,MAAxB,GAAiC,CAArD;IACH;;IACD,OAAOpnB,MAAP;EACH;;EAEDqnB,aAAa;IACT,OAAO,MAAMA,aAAN,EAAP;EACH,CAvW4C,CAyW7C;EACA;;;EACAnD,cAAc,CAACz4B,KAAD,EAAM;IAChBA,KAAK,CAAC67B,cAAN;IACA77B,KAAK,CAACumB,eAAN;IACA,OAAO,KAAP;EACH;;AA/W4C;AACtCkR,qBAAY,QAAZ;AACAA,wBAAUn0B,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACW,SAAL,CAAeknB,+FAAf,CAAX,CAAV;;;;;;;;;UAsGoEV,kDAAMA;IAAAnhB,OAAClQ,mFAAD;;;;;;UAFhFuV,qDAASA;IAAArF,OAAC,QAAD;;;AAtGDmuB,aAAa,uDANzBx+B,yDAAS,CAAC;EACP4C,QAAQ,EAAE,YADH;EAEPC,UAAAA,4DAFO;EAIPgP,eAAe,EAAEf,0EAJV;;AAAA,CAAD,CAMgB,GAAb0tB,aAAa,CAAb;AAAAA;AAiXP,MAAOsE,WAAP,SAA2BnR,oEAA3B,CAAoC;EAEtB,OAAT2C,SAAS;IACZvC,qFAAA,CAAoB;MAChBpsB,GAAG,EAAC,sCADY;MAEhB8E,EAAE,EAAE,QAFY;MAGhBW,OAAO,EAAE,UAHO;MAIhBvG,KAAK,EAAE,GAJS;MAKhBwI,OAAO,EAAEqkB,yFALO;MAMhB6C,OAAO,EAAE3C,+FANO;MAOhB6C,OAAO,EAAE,CAAC,MAAD,CAPO;MAQhBC,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,EAAiB,MAAjB,CARU;MAShB7uB,eAAe,EAAGrE,IAAD,IAAS;QACtB,OAAOA,IAAI,CAACW,WAAL,IAAoB,QAA3B;MACH;IAXe,CAApB,EADY,CAcZ;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;IACA,IAAIs8B,YAAY,GAAGxsB,yFAAA,CAAkDssB,kEAAlD,CAAnB;IACAE,YAAY,CAACsE,SAAb,GAAyBpiC,SAAzB,CAAoC+I,IAAD,IAAS;MACxCooB,iFAAA,CAAgB;QACZrnB,EAAE,EAAE,aADQ;QAEZ+I,MAAM,EAAE,QAFI;QAGZnG,OAAO,EAAE,IAAIpG,iEAAJ,CAAoBwqB,sGAApB,CAHG;QAIZkD,KAAK,EAAE,qBAJK;QAKZC,GAAG,EAAE,CALO;QAMZ/uB,eAAe,EAAGrE,IAAD,IAAS;UACtB,OAAO,CAACA,IAAI,CAAC++B,UAAb;QACH,CARW;QASZ11B,QAAQ,EAAE;UACNgqB,WAAW,EAAE,UADP;UAENC,QAAQ,EAAE,KAFJ;UAGNC,WAAW,EAAErrB,IAHP;UAINurB,iBAAiB,EAAE,SAJb;UAKND,eAAe,EAAE;QALX;MATE,CAAhB;MAiBA,IAAI8J,SAAS,GAAG,CAAC;QACb1zB,OAAO,EAAE,KADI;QAEb4E,KAAK,EAAE;MAFM,CAAD,EAGb;QACC5E,OAAO,EAAE,eADV;QAEC4E,KAAK,EAAE;MAFR,CAHa,EAMb;QACC5E,OAAO,EAAE,aADV;QAEC4E,KAAK,EAAE;MAFR,CANa,EASb;QACC5E,OAAO,EAAE,MADV;QAEC4E,KAAK,EAAE;MAFR,CATa,EAYb;QACC5E,OAAO,EAAE,OADV;QAEC4E,KAAK,EAAE;MAFR,CAZa,EAeb;QACC5E,OAAO,EAAE,MADV;QAEC4E,KAAK,EAAE;MAFR,CAfa,EAkBb;QACC5E,OAAO,EAAE,OADV;QAEC4E,KAAK,EAAE;MAFR,CAlBa,EAqBb;QACC5E,OAAO,EAAE,OADV;QAEC4E,KAAK,EAAE;MAFR,CArBa,EAwBb;QACC5E,OAAO,EAAE,KADV;QAEC4E,KAAK,EAAE;MAFR,CAxBa,CAAhB;MA4BA8hB,iFAAA,CAAgB;QACZrnB,EAAE,EAAE,WADQ;QAEZ+I,MAAM,EAAE,QAFI;QAGZnG,OAAO,EAAE,IAAIpG,iEAAJ,CAAoBwqB,sGAApB,CAHG;QAIZkD,KAAK,EAAE,aAJK;QAKZ9uB,eAAe,EAAGrE,IAAD,IAAS;UACtB,OAAO,CAACA,IAAI,CAAC++B,UAAb;QACH,CAPW;QAQZ11B,QAAQ,EAAE;UACNgqB,WAAW,EAAE,UADP;UAENC,QAAQ,EAAE,IAFJ;UAGNC,WAAW,EAAE+J,SAHP;UAIN7J,iBAAiB,EAAE,SAJb;UAKND,eAAe,EAAE;QALX;MARE,CAAhB;MAgBAlD,iFAAA,CAAgB;QACZrnB,EAAE,EAAE,cADQ;QAEZ+I,MAAM,EAAE,QAFI;QAGZnG,OAAO,EAAE,IAAIpG,iEAAJ,CAAoBm3B,gGAApB,CAHG;QAIZvzB,QAAQ,EAAE;UACNO,OAAO,EAAE;QADH;MAJE,CAAhB;MAQA0mB,iFAAA,CAAgB;QACZrnB,EAAE,EAAE,aADQ;QAEZ+I,MAAM,EAAE,QAFI;QAGZnG,OAAO,EAAE,IAAIpG,iEAAJ,CAAoBo3B,mGAApB,CAHG;QAIZ1J,KAAK,EAAE,eAJK;QAKZ9uB,eAAe,EAAGrE,IAAD,IAAS;UACtB,OAAO,CAACA,IAAI,CAAC++B,UAAb;QACH,CAPW;QAQZ11B,QAAQ,EAAE;UACNm4B,SAAS,EAAE;QADL;MARE,CAAhB;MAYAlR,iFAAA,CAAgB;QACZrnB,EAAE,EAAE,MADQ;QAEZ+I,MAAM,EAAE,QAFI;QAGZnG,OAAO,EAAE,IAAIpG,iEAAJ,CAAoBo3B,mGAApB,CAHG;QAIZ1J,KAAK,EAAE,QAJK;QAKZ9uB,eAAe,EAAGrE,IAAD,IAAS;UACtB,OAAO,CAACA,IAAI,CAAC++B,UAAb;QACH;MAPW,CAAhB;MASAzO,iFAAA,CAAgB;QACZrnB,EAAE,EAAE,kBADQ;QAEZ+I,MAAM,EAAE,QAFI;QAGZnG,OAAO,EAAE,IAAIpG,iEAAJ,CAAoBm3B,gGAApB,CAHG;QAIZvzB,QAAQ,EAAE;UACNO,OAAO,EAAE;QADH,CAJE;QAOZvF,eAAe,EAAGrE,IAAD,IAAS;UACtB,OAAO,CAACA,IAAI,CAAC++B,UAAb;QACH;MATW,CAAhB;MAWAzO,iFAAA,CAAgB;QACZrnB,EAAE,EAAE,UADQ;QAEZ+I,MAAM,EAAE,QAFI;QAGZnG,OAAO,EAAE,IAAIpG,iEAAJ,CAAoBm3B,gGAApB,CAHG;QAIZvzB,QAAQ,EAAE;UACNO,OAAO,EAAE;QADH;MAJE,CAAhB;MAQA,IAAI63B,SAAS,GAAG,CACZ;QACI73B,OAAO,EAAE,UADb;QAEIH,IAAI,EAAE;MAFV,CADY,EAKZ;QACIG,OAAO,EAAE,OADb;QAEIH,IAAI,EAAE;MAFV,CALY,CAAhB;MAUA6mB,iFAAA,CAAgB;QACZrnB,EAAE,EAAE,UADQ;QAEZ+I,MAAM,EAAE,QAFI;QAGZnG,OAAO,EAAE,IAAIpG,iEAAJ,CAAoBwqB,sGAApB,CAHG;QAIZkD,KAAK,EAAE,YAJK;QAKZ9uB,eAAe,EAAGrE,IAAD,IAAS;UACtB,OAAOA,IAAI,CAAC++B,UAAZ;QACH,CAPW;QAQZ11B,QAAQ,EAAE;UACNgqB,WAAW,EAAE,UADP;UAENC,QAAQ,EAAE,IAFJ;UAGNC,WAAW,EAAEkO,SAHP;UAINhO,iBAAiB,EAAE,SAJb;UAKND,eAAe,EAAE;QALX;MARE,CAAhB;IAgBH,CAxID;EA2IH;;AArKqC;AACtB8N,mBAAO,CAAC,sCAAD,CAAP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjZkH;AAC9E;AAEA;AACe;AACN;AACF;AACA;AACQ;AACpB;AACsC;AACvB;AACqB;AACA;AACjC;AAC8C;AACvB;IAOhE,eAAe,SAAf,eAAgB,SAAQ,2DAAc;IAiB/C,YAAoB,YAA0B,EAAE,KAAwB,EAA+C,IAAI;QACvH,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,iBAAY,GAAZ,YAAY,CAAc;QAAyE,SAAI,GAAJ,IAAI;QAZ3H,qBAAgB,GAAG,KAAK,CAAC;QAEzB,cAAS,GAAG,KAAK,CAAC;QAClB,aAAQ,GAAG,EAAE,CAAC;QAsBJ,kBAAa,GAAG,IAAI,wDAAY,EAAO;IAXjD,CAAC;IARD,IAAI,IAAI;QACJ,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;YACzB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;SAClC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;QAMG,OAAO;QACP,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,GAAG,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IAID,kBAAkB;QACd,IAAI,CAAC,SAAS,GAAG,mEAAkB,CAAC;QACpC,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,QAAQ,GAAG,wEAAuB,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,oFAAmC,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACrF,IAAI,CAAC,QAAQ,GAAG,wEAAuB,CAAC;gBACxC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,GAAG,yEAAwB,CAAC;SAClD;QACD,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;QACD,IAAI,CAAC,gBAAgB,GAAG,kGAAyC,EAAE,CAAC;IACxE,CAAC;IACD,qBAAqB;QACjB,8EAA6B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvD,CAAC;IACD,MAAM;QACF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IAC7B,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAC9B,MAAM,GAAG,GAAG,wFAAmC,EAAE,CAAC;YAClD,IAAI,GAAG,EAAE;gBACL,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;aAC1D;SACJ;IACL,CAAC;IAED,gBAAgB;QACZ,oNAAoN;QACpN,sHAAsH;IAC1H,CAAC;IAED,UAAU;QACN,uFAAuB,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IAC7B,CAAC;;AAxEM,oBAAI,GAAQ,UAAW;AACvB,uBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,iGAA0B,CAAC,CAAC,CAAC;;;;4CAcG,kDAAM,SAAC,kFAA4B;;;sBAP7G,qDAAS,SAAC,mEAAc;sBAWxB,iDAAK;4BASL,kDAAM;;AA9BE,eAAe;IAN3B,yDAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,wEAAoC;QAEpC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,eAAe;AAAA;AA6ErB,MAAM,aAAc,SAAQ,qEAAS;IAExC,MAAM,CAAC,SAAS;QACZ,oFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,UAAU;YACd,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,0FAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC;YAC1C,CAAC;SACJ,CAAC,CAAC;QACH,IAAI,QAAQ,GAAG;YACX;gBACI,OAAO,EAAE,aAAa;gBACtB,KAAK,EAAE,QAAQ;aAClB;YACD;gBACI,OAAO,EAAE,kBAAkB;gBAC3B,KAAK,EAAE,OAAO;aACjB;SACJ;QACD,gFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,uGAAoB,CAAC;YAClD,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE;gBACN,WAAW,EAAE,WAAW;gBACxB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,QAAQ;gBACrB,eAAe,EAAE,OAAO;gBACxB,iBAAiB,EAAE,SAAS;aAC/B;SACJ,CAAC,CAAC;IACP,CAAC;;AAxCe,kBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACrGqC;AACjD;IAQ1C,yBAAyB,SAAzB,yBAAyB;IAoClC,YAAY;IAEZ,YAAoB,SAA2B;QAA3B,cAAS,GAAT,SAAS,CAAkB;QApC/C,cAAS,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE;YAC1D,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE;YAC9C,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE;YAChD,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,EAAE;YAClD,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAcxC,0BAAqB,GAAG,IAAI,uDAAY,EAAO;QAe/C,uBAAkB,GAAG,IAAI,uDAAY,EAAO;IAItD,CAAC;QA3BG,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;QAChC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC/D,CAAC;QASG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;IAQD,QAAQ;IACR,CAAC;IAED,gBAAgB,CAAC,KAAK,EAAE,QAAQ;QAC5B,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,UAAU,CAAC,QAAQ;QACf,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,OAAO;QACH,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;YAC9B,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC;SACpC;QACD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC;YAC7B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC;YAC/C,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SAC1B,CAAC,CAAC;IACP,CAAC;;;;;;8BAlDA,gDAAK;oCASL,iDAAM;2BAMN,gDAAK;iCASL,iDAAM;;AAnCE,yBAAyB;IANrC,wDAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;QAC9B,kFAAgD;QAEhD,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,yBAAyB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTgB;AACgF;AACxC;AACM;AACe;AAC5B;AACrB;AACA;AACQ;AACa;AAEE;AACxB;AACF;AACZ;AAC0B;IAQhE,YAAY,SAAZ,YAAa,SAAQ,4DAAc;IAkB5C,YAAoB,YAA0B,EAAE,KAAwB,EAA+C,IAAI;QACvH,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,iBAAY,GAAZ,YAAY,CAAc;QAAyE,SAAI,GAAJ,IAAI;QAEvH,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;IACrB,CAAC;IACD,kBAAkB;QACd,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,yFAAmC,CAAC,CAAC,OAAO,EAAE,EAAE;YACjF,IAAI,OAAO,EAAE;gBACT,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;gBAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;aAClB;QACL,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;YACvC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE;gBACvF,IAAI,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC,CAAC;SACL;IACL,CAAC;IACD,OAAO;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACrF,IAAI,MAAM,EAAE;YACR,IAAI,MAAM,CAAC,OAAO,EAAE;gBAChB,wFAAwF;gBACxF,KAAK;aACR;iBAAM;gBACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,UAAU,CAAC,GAAG,EAAE;oBACZ,IAAI,CAAC,OAAO,GAAG;wBACX,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;wBACzC,KAAK,EAAE,IAAI;wBACX,WAAW,EAAE,MAAM;wBACnB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;wBACtD,KAAK,EAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAChD,OAAO,EAAE,CAAC;gCACN,GAAG,EAAE,mFAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;gCAC5D,IAAI,EAAE,WAAW;6BACpB,CAAC;qBACL;oBACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC/B,CAAC,EAAE,EAAE,CAAC,CAAC;aACV;SACJ;IACL,CAAC;IACD,kBAAkB;IAClB,CAAC;;AA5DM,iBAAI,GAAQ,OAAQ;AACpB,oBAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,8FAAuB,CAAC,CAAC,CAAC;;;;4CAgBM,kDAAM,SAAC,mFAA4B;;AAlBrG,YAAY;IANxB,yDAAS,CAAC;QACP,QAAQ,EAAE,WAAW;QACrB,qEAAmC;QAEnC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,YAAY;AAAA;AA+DlB,MAAM,UAAW,SAAQ,oEAAS;IAErC,MAAM,CAAC,SAAS;QACZ,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,OAAO;YACX,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC9B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC;YACvC,CAAC;SACJ,CAAC;QACF,IAAI,YAAY,GAAG,yFAAmC,CAAe,kEAAY,CAAC,CAAC;QACnF,YAAY,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACxC,iFAAe,CAAC;gBACZ,EAAE,EAAE,aAAa;gBACjB,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;gBAClD,KAAK,EAAE,qBAAqB;gBAC5B,GAAG,EAAE,CAAC;gBACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;oBACtB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC5B,CAAC;gBACD,QAAQ,EAAE;oBACN,WAAW,EAAE,UAAU;oBACvB,QAAQ,EAAE,KAAK;oBACf,WAAW,EAAE,IAAI;oBACjB,iBAAiB,EAAE,SAAS;oBAC5B,eAAe,EAAE,KAAK;iBACzB;aACJ,CAAC;QACN,CAAC,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,IAAI,iEAAe,CAAC,qHAAyB,CAAC;YACvD,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,CAAC;YAC5B,CAAC;SACJ,CAAC;QAEF,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,YAAY;aACxB;YACD,GAAG,EAAE,CAAC;YACN,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC;YAC7C,CAAC;SACJ,CAAC;IACN,CAAC;;AAzDe,eAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;ACvFnE,0BAA0B;AAC0F;AACrF;IAOlB,kBAAkB,SAAlB,kBAAkB;IAe3B,YACY,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAC9B,CAAC;IAEL,QAAQ;QACJ,IAAI,CAAC,MAAM,GAAG,oDAAO,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,aAAa;QAErF,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;SACzB;IACL,CAAC;;;;;;qBA5BA,oDAAS,SAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;sBACpC,gDAAK;;AAFG,kBAAkB;IAL9B,wDAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,qNAAqN;QAC/N,eAAe,EAAE,yEAA8B;KAClD,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;ACT0B;IAGnC,SAAS,SAAT,SAAS;;QA4C3B,YAAY;QACZ,iBAAY,GAAG,EAAE,CAAC;QAClB,gBAAW,GAAG,KAAK,CAAC;QACpB,gBAAW,GAAG,KAAK,CAAC;IAgDxB,CAAC;QA1FO,GAAG;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD,IAAI,GAAG,CAAC,GAAG;QACP,IAAI,GAAG,KAAK,IAAI,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACpB,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;IACL,CAAC;QAMG,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACV,IAAI,GAAG,KAAK,IAAI,CAAC,WAAW,EAAE;YAC1B,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;IACL,CAAC;QAMG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAQ;QAClB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,EAAE;YACxF,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;gBACtD,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1B,CAAC,CAAC;SACL;IACL,CAAC;IAMD,QAAQ;QACJ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,iBAAiB;IACjB,KAAK,CAAC,KAAiB;QACnB,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;YAC3D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAC3B;aAAM;YACH,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC5B;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE;YACrC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,cAAc,CAAC;gBAC/C,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;gBAC7B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;aAC/B,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,mBAAmB,EAAE,CAAC;YAC1D,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,EAAE;gBAC7C,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;aACzD;SAEJ;IACL,CAAC;IACD,YAAY;IAEZ,cAAc;QACV,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;oBACxB,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;iBAC9D;gBACD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE;oBACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBAC7D,IAAI,QAAQ,EAAE;wBACV,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;wBAClE,IAAI,WAAW,EAAE;4BACb,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;yBACnD;qBACJ;iBACJ;aACJ;YACD,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;SAChC;IACL,CAAC;;;kBA1FA,gDAAK;qBAcL,gDAAK;wBAcL,gDAAK;;AAhCY,SAAS;IAD9B,wDAAS,EAAE;GACU,SAAS;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACH2C;AAC9C;AAC8C;AACF;IAO3D,WAAW,SAAX,WAAW;;QACpB,cAAS,GAAG,EAAE,CAAC;QACf,oBAAe,GAAoB,kFAAoB,CAAC;IAiG5D,CAAC;QA3FO,GAAG;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD,IAAI,GAAG,CAAC,GAAG;QACP,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACpB,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;QAOG,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACV,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;QAMG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,uBAAuB,EAAE;YAC1D,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;gBACrD,IAAI,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC,CAAC;SACL;IACL,CAAC;IACD,YAAY;IACZ,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM;QAC5B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,EAAE;YACR,IAAI,MAAM,CAAC,MAAM,EAAE;gBACf,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;aAC3B;YACD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,WAAW,EAAE;gBAChD,IAAI,MAAM,CAAC,IAAI,KAAK,iBAAiB,IAAI,MAAM,CAAC,UAAU,EAAE;oBACxD,MAAM,IAAI,6CAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;iBACpD;qBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,IAAI,MAAM,CAAC,gBAAgB,IAAI,IAAI,EAAE;oBAC3E,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;iBAC/D;qBAAM,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,EAAE;oBAC3C,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;oBACzD,IAAI,EAAE,EAAE;wBACJ,IAAI,kGAA2C,EAAE;4BAC7C,MAAM,IAAI,0GAAmD,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;yBAC7E;6BAAM;4BACH,MAAM,IAAI,EAAE,CAAC,OAAO,CAAC;yBACxB;qBACJ;iBACJ;qBAAM;oBACH,MAAM,IAAI,IAAI,CAAC;iBAClB;aACJ;YACD,IAAI,MAAM,CAAC,MAAM,EAAE;gBACf,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;aAC3B;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,OAAO;QACH,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACvD,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE;gBACtF,QAAQ,IAAI,CAAC,eAAe,EAAE;oBAC1B,KAAK,kFAAoB;wBACrB,IAAI,CAAC,eAAe,GAAG,kFAAoB,CAAC;wBAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;wBAC5B,MAAM;oBACV;wBACI,IAAI,CAAC,eAAe,GAAG,kFAAoB,CAAC;wBAC5C,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;wBACxE,MAAM;iBACb;aACJ;iBAAM;gBACH,IAAI,CAAC,eAAe,GAAG,kFAAoB,CAAC;gBAC5C,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;aACrE;SACJ;aAAM;YACH,IAAI,CAAC,eAAe,GAAG,kFAAoB,CAAC;YAC5C,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACvB;IACL,CAAC;;;kBA3FA,gDAAK;qBAaL,gDAAK;wBAYL,gDAAK;;AAhCG,WAAW;IALvB,wDAAS,CAAC;QACP,QAAQ,EAAE,kBAAkB;QAC5B,QAAQ,EAAE,+HAA+H;QACzI,eAAe,EAAE,0EAA+B;KACnD,CAAC;GACW,WAAW;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACVgF;IAS3F,sBAAsB,SAAtB,sBAAsB;;QAiC/B,YAAY;QACZ,wBAAwB;QACxB,wBAAmB,GAAG,KAAK,CAAC;QAsBlB,aAAQ,GAAG,IAAI,uDAAY,EAAO;QAClC,gBAAW,GAAG,IAAI,uDAAY,EAAO;QAE/C,iBAAY,GAAG,EAAE;QACjB,gBAAW,GAAG,KAAK,CAAC;IAuCxB,CAAC;QA/FO,GAAG;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD,IAAI,GAAG,CAAC,GAAQ;QACZ,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACpB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;QAMG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;IAC5B,CAAC;IAID,KAAK,CAAC,KAAiB;QACnB,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;YAC3D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAC3B;aAAM;YACH,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC5B;IACL,CAAC;QAMG,cAAc;QACd,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QAClB,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;QAC/B,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;QAMG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAQ;QAClB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;IAC9B,CAAC;IAQD,QAAQ;QACJ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,YAAY;QACR,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,EAAE;oBACxC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE;wBAChD,QAAQ,CAAC,GAAG,CAAC,GAAG;4BACZ,eAAe,EAAE,KAAK,GAAG,EAAE,GAAG,IAAI;yBACrC,CAAC;qBACL;yBAAM;wBACH,QAAQ,CAAC,GAAG,CAAC,GAAG;4BACZ,cAAc,EAAE,KAAK,GAAG,EAAE,GAAG,IAAI;yBACpC,CAAC;qBACL;iBACJ;aACJ;YACD,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;SAChC;IACL,CAAC;IAED,gBAAgB,CAAC,KAAK;QAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK;QACvB,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,cAAc,CAAC,KAAK;QAChB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;;;kBA/FA,gDAAK;sBAYL,gDAAK;6BAqBL,gDAAK;wBAYL,gDAAK;uBAQL,iDAAM;0BACN,iDAAM;;AA1DE,sBAAsB;IANlC,wDAAS,CAAC;QACP,QAAQ,EAAE,8BAA8B;QACxC,gFAA8C;QAE9C,eAAe,EAAE,0EAA+B;;KACnD,CAAC;GACW,sBAAsB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACTgC;AACzB;IAQ7B,aAAa,SAAb,aAAc,SAAQ,mDAAS;;AAA/B,aAAa;IANzB,wDAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;QAC9B,sEAAoC;QAEpC,eAAe,EAAE,0EAA+B;;KACnD,CAAC;GACW,aAAa;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACT+C;AAIlD;AACiC;AAEC;AACpB;AACN;AACkC;AACA;AAEd;AACgD;AAC7C;AACU;AACQ;AACR;AACA;AACJ;AACI;AACE;AACN;IAQ/C,kBAAkB,SAAlB,kBAAkB;IA4kB3B,YAAoB,KAAwB,EAAU,gBAAkC,EACpF,eAAgC,EAAU,SAAuB;QADjD,UAAK,GAAL,KAAK,CAAmB;QAAU,qBAAgB,GAAhB,gBAAgB,CAAkB;QAC1C,cAAS,GAAT,SAAS,CAAc;QA5kBrE,oBAAoB;QACpB,OAAE,GAAG,oDAAS,EAAE,CAAC;QACjB,kBAAa,GAAG,EAAE,CAAC;QAInB,gBAAW,GAAG,KAAK,CAAC;QA0CV,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QA+D1C,eAAU,GAAG,IAAI,wDAAY,EAAO;QAgBpC,oBAAe,GAAG,IAAI,wDAAY,EAAO;QACnD,YAAY;QACZ,YAAY;QACZ,gBAAgB;QAChB,WAAM,GAAmB,IAAI,wEAAc,EAAE,CAAC;QAK9C,YAAY;QACZ,mBAAmB;QACnB,sBAAsB;QACtB,iBAAY,GAAU,EAAE,CAAC;QACzB,sBAAiB,GAAuB,EAAE,CAAC;QACjC,wBAAmB,GAAG,IAAI,wDAAY,EAAkB;QAClE,YAAY;QACZ,uBAAuB;QACvB,oBAAe,GAA0C,EAAE,CAAC;QAClD,yBAAoB,GAAG,IAAI,wDAAY,EAAmB;QAG1D,yBAAoB,GAAG,IAAI,wDAAY,EAAmB;QAyBpE,YAAY;QACZ,gBAAgB;QAChB,mBAAc,GAAG,CAAC,CAAC;QAkBT,mBAAc,GAAG,IAAI,wDAAY,EAAO;QAIlD,mBAAc,GAAG,EAAE,CAAC;QACpB,oBAAe,GAAG,EAAE,CAAC;QACrB,oBAAe,GAAG,EAAE,CAAC;QACrB,qBAAgB,GAAG,EAAE,CAAC;QACtB,oBAAe,GAAG,EAAE,CAAC;QA0CX,0BAAqB,GAAG,IAAI,wDAAY,EAAO;QACzD,YAAY;QACZ,oBAAoB;QACpB,oBAAe,GAAG,IAAI,CAAC;QAWb,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QACpD,YAAY;QACZ,mBAAmB;QACnB,mBAAc,GAAG,KAAK,CAAC;QAWb,oBAAe,GAAG,IAAI,wDAAY,EAAO;QACnD,YAAY;QACZ,mBAAmB;QACnB,mBAAc,GAAG,KAAK,CAAC;QAWb,oBAAe,GAAG,IAAI,wDAAY,EAAO;QACnD,YAAY;QACZ,oBAAoB;QACpB,oBAAe,GAAG,EAAE,CAAC;QACrB,kBAAa,GAAG,KAAK,CAAC;QAaZ,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QAY1C,2BAAsB,GAAG,IAAI,wDAAY,EAAO;QAC1D,YAAY;QACZ,oBAAoB;QACb,WAAM,GAAG;YACZ,WAAW,EAAE,aAAa;YAC1B,cAAc,EAAE,gBAAgB;YAChC,eAAe,EAAE,iBAAiB;YAClC,sBAAsB,EAAE,wBAAwB;YAChD,SAAS,EAAE,WAAW;YACtB,YAAY,EAAE,cAAc;YAC5B,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,WAAW;YACtB,gBAAgB,EAAE,kBAAkB;SACvC;QAED,oBAAe,GAAe,gFAAoB,CAAC;QA6CzC,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QACpD,YAAY;QACZ,yBAAyB;QACzB,yBAAoB,GAAG,KAAK,CAAC;QAUnB,0BAAqB,GAAG,IAAI,wDAAY,EAAO;QACzD,YAAY;QACZ,oBAAoB;QACpB,oBAAe,GAAG,EAAE,CAAC;QAcX,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QACpD,YAAY;QAEZ,oBAAoB;QACpB,oBAAe,GAAe,4EAAiB,CAAC;QActC,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QACpD,YAAY;QACZ,wBAAwB;QACxB,wBAAmB,GAAmB,oFAAqB,CAAC;QAalD,yBAAoB,GAAG,IAAI,wDAAY,EAAO;QACxD,YAAY;QACZ,oBAAoB;QACpB,oBAAe,GAAe,yEAAa,CAAC;QAUlC,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QAa1C,yBAAoB,GAAG,IAAI,wDAAY,EAAO;QAa9C,4BAAuB,GAAG,IAAI,wDAAY,EAAO;QAO3D,kBAAa,GAAG,KAAK,CAAC;QAqBZ,kBAAa,GAAG,IAAI,wDAAY,EAAO;QAYvC,2BAAsB,GAAG,IAAI,wDAAY,EAAO;QAYhD,4BAAuB,GAAG,IAAI,wDAAY,EAAO;QAC3D,YAAY;QAEZ,aAAQ,GAAG,KAAK,CAAC;QASP,cAAS,GAAG,IAAI,wDAAY,EAAO;QAE7C,yBAAoB,GAAG,KAAK,CAAC;QASnB,0BAAqB,GAAG,IAAI,wDAAY,EAAO;QAEzD,qBAAgB,GAAG,KAAK,CAAC;QASf,sBAAiB,GAAG,IAAI,wDAAY,EAAO;QAG3C,iBAAY,GAAG,IAAI,wDAAY,EAAO;QACtC,kBAAa,GAAG,IAAI,wDAAY,EAAO;QACvC,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QAC1C,iBAAY,GAAG,IAAI,wDAAY,EAAO;QACtC,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QACpD,4BAAuB,GAAG,IAAI,0CAAO,EAAE,CAAC;QASxC,qBAAgB,GAAG;YACf,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,QAAQ;SACvB,CAAC;QA8HF,YAAY;QACZ,eAAe;QACf,gBAAW,GAAG,EAAE,CAAC;QAmGjB,uBAAkB,GAAG,EAAE,CAAC;QACxB,0BAAqB,GAAG,EAAE,CAAC;QAgpBjB,gBAAW,GAAG,IAAI,wDAAY,EAAiB;QAC/C,kBAAa,GAAG,IAAI,wDAAY,EAAmB;QAmG7D,uBAAkB,GAAG,KAAK,CAAC;QAl9BvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,eAAe,GAAG,IAAI,sEAAe,EAAE,CAAC;QAC7C,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE;YAC3E,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,GAAG,IAAI,sEAAe,EAAE,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC;IACtC,CAAC;QApkBG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;SACvC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,UAAU,EAAE;YACZ,UAAU,CAAC,WAAW,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;SAC1C;QACD,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;gBACzE,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;gBACvB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;gBACvB,IAAI,CAAC,WAAW,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;gBACxE,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;oBACrB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;oBACnB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;iBAC9B;YACL,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;QASG,IAAI;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,CAAC,GAAG;QACR,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,MAAM,EAAE,GAAG,EAAE,CAAC;YACd,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;aACtC;YACD,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAChB,MAAM,MAAM,GAAG,IAAI,wDAAG,EAAE,CAAC;gBACzB,MAAM,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC;gBACvB,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC;gBAClB,IAAI,IAAI,CAAC,UAAU,KAAK,kFAAsB,EAAE;oBAC5C,IAAI,IAAI,CAAC,OAAO,EAAE;wBACd,IAAI,IAAI,GAAG,EAAE,CAAC;wBACd,IAAI,QAAQ,GAAG,CAAC,CAAC;wBACjB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;4BAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;gCAChB,QAAQ,EAAE,KAAK;gCACf,IAAI,EAAE,KAAK;gCACX,QAAQ,EAAE,QAAQ;6BACrB,CAAC;4BACF,QAAQ,IAAI,CAAC,CAAC;wBAClB,CAAC,CAAC,CAAC;wBACH,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;qBACtB;iBACJ;gBACD,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACvB;aAAM;YACH,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;SACxB;QACD,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAC3B;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;QAGG,YAAY;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAC3B;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;QAOG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;SAC7B;aAAM;YACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC9B;QACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAuBD,YAAY;IACZ,YAAY;IACZ,mBAAmB;IACnB,IAAI,YAAY;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;SAChE;aAAM;YACH,OAAO,CAAC,CAAC;SACZ;IACL,CAAC;QACwB,OAAO,CAAC,OAAmB;QAChD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;IAC1B,CAAC;QAG2B,UAAU,CAAC,OAAmB;QACtD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC7B,CAAC;QAGyB,QAAQ,CAAC,OAAsB;QACrD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;QAM2B,UAAU,CAAC,OAAmB;QACtD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC7B,CAAC;QAMG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;QAYG,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;QAChC,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,IAAI,CAAC,UAAU,IAAI,kFAAsB,EAAE;gBAC3C,IAAI,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE;oBACvC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;iBAC9E;gBACD,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;oBAC3B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;oBAC1E,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,GAAG,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;oBACjF,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;oBAC3E,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;iBAC7E;gBACD,IAAI,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE;oBACvC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;iBACzE;aACJ;YACD,IAAI,IAAI,CAAC,UAAU,IAAI,gFAAoB,EAAE;gBACzC,IAAI,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE;oBACvC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;iBAC7E;gBACD,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;oBAC3B,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,GAAG,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;oBAChF,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,GAAG,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;oBACjF,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,GAAG,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;iBACpF;gBACD,IAAI,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE;oBACvC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;iBACxE;aACJ;YACD,IAAI,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE;gBACvC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;aAC9E;SACJ;QACD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC/D,CAAC;QAQG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;QAQG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;QAQG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;QAQG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACpD;IACL,CAAC;QAOG,gBAAgB;QAChB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACtC,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG;QACpB,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC;QACjC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACjE,CAAC;QAkBG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,GAAG,IAAI,IAAI,EAAE;YACb,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,GAAG,IAAI,gFAAoB,EAAE;gBAC7B,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,aAAa,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,gBAAgB,CAAC;gBAC9C,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,iBAAiB,CAAC;gBAChD,IAAI,CAAC,MAAM,CAAC,sBAAsB,GAAG,wBAAwB,CAAC;gBAE9D,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,WAAW,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,cAAc,CAAC;gBAE1C,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC;gBAElC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,WAAW,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,kBAAkB,CAAC;gBAClD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;oBACrB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;iBAC7B;aACJ;iBAAM;gBACH,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,mBAAmB,CAAC;gBAC9C,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,sBAAsB,CAAC;gBACpD,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,uBAAuB,CAAC;gBACtD,IAAI,CAAC,MAAM,CAAC,sBAAsB,GAAG,8BAA8B,CAAC;gBAEpE,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,WAAW,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,cAAc,CAAC;gBAE1C,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,gBAAgB,CAAC;gBAExC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,iBAAiB,CAAC;gBAC1C,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,wBAAwB,CAAC;gBACxD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;oBACrB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;iBAC7B;aACJ;YACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACpD;IACL,CAAC;QAOG,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;QAChC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC/D,CAAC;QAQG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,GAAG,IAAI,IAAI,CAAC,eAAe,EAAE;YAC7B,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACpD;IACL,CAAC;QASG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,GAAG,IAAI,IAAI,EAAE;YACb,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACpD;IACL,CAAC;QAQG,cAAc;QACd,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QAClB,IAAI,GAAG,IAAI,IAAI,EAAE;YACb,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;YAC/B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAC5D;IACL,CAAC;QAOG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;QAOG,cAAc;QACd,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QAClB,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;QAC/B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC7D,CAAC;QAOG,iBAAiB;QACjB,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACvC,CAAC;IACD,IAAI,iBAAiB,CAAC,GAAG;QACrB,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAC;QAClC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACnE,CAAC;QAWG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;YACjD,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC7B;YACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,UAAU,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC/B,CAAC,EAAE,EAAE,CAAC,CAAC;SACV;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;QAKG,gBAAgB;QAChB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACtC,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG;QACpB,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC;QACjC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;QAKG,iBAAiB;QACjB,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACvC,CAAC;IACD,IAAI,iBAAiB,CAAC,GAAG;QACrB,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAC;QAClC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;QAMG,GAAG;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD,IAAI,GAAG,CAAC,GAAG;QACP,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;QAKG,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;QAChC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;QAKG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAqCO,aAAa;QACjB,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,qBAAqB,CAAC,IAAI,EAAE,MAAM;QAC9B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;YACnG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACpD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;YAC7C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;YACnC,IAAI,GAAG,CAAC,QAAQ,EAAE;gBACd,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;aACjD;YACD,IAAI,GAAG,CAAC,aAAa,EAAE;gBACnB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;aACtD;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,eAAe;QACX,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC;QAC/D,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QACzD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC9B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;YAC3E,CAAC,CAAC;SACL;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,WAAW;QACP,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACxC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,GAAG,EAAE;gBACL,GAAG,CAAC,WAAW,EAAE,CAAC;aACrB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACD,YAAY;IACZ,qBAAqB;IACrB,SAAS,CAAC,KAAK;QACX,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC5C,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QACxC,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;QAC9C,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;QAC9C,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAED,kBAAkB;QACd,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC;QAC/D,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QACzD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,YAAY;IACZ,mBAAmB;IACnB,gBAAgB;QACZ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,KAAoB,EAAE,EAAE;YAChE,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC;YAClD,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE;gBAClC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;gBACzE,IAAI,IAAI,CAAC,SAAS,EAAE;oBAChB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;iBAC9D;aACJ;iBAAM,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,GAAG,UAAU,EAAE;gBAC1C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;gBACxD,IAAI,IAAI,CAAC,SAAS,EAAE;oBAChB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;iBAC9D;aACJ;iBAAM,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,GAAG,YAAY,EAAE;gBAC5C,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;gBACzE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;aAC3D;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACD,YAAY;IACZ,oBAAoB;IACpB,WAAW;QACP,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,KAAK,EAAE;YACP,KAAK,CAAC,WAAW,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;SAC1C;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,IAAI,CAAC,UAAU,IAAI,2EAAgB,EAAE;gBACrC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;oBAC9C,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC3E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBAC1B,CAAC,CAAC,CAAC;iBACN;aACJ;SACJ;IACL,CAAC;IAID,cAAc,CAAC,MAAM;QACjB,IAAI,MAAM,CAAC,eAAe,EAAE;SAC3B;aAAM;YACH,IAAI,MAAM,CAAC,KAAK,EAAE;gBACd,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,wEAAc,EAAE;oBACtC,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;iBAC/C;qBAAM,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,0EAAgB,EAAE;oBAC/C,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;wBAC9G,yDAAyD;qBAC5D;yBAAM;wBACH,IAAI,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,uCAAsC;wBAC1E,IAAI,IAAI,CAAC,UAAU,KAAK,4EAAgB,EAAE;4BACtC,SAAS,IAAI,EAAE,CAAC;yBACnB;wBACD,MAAM,GAAG,GAAG,SAAS,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;wBACnD,MAAM,CAAC,eAAe,GAAG,GAAG,CAAC;qBAChC;iBACJ;aACJ;SACJ;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;QACvC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,MAAM,CAAC,QAAQ,EAAE;YACjB,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,IAAI,IAAI,EAAE,CAAC;aACd;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,GAAG,KAAK,MAAM,EAAE;oBAChB,MAAM;iBACT;gBACD,IAAI,GAAG,CAAC,QAAQ,EAAE;oBACd,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,aAAa,EAAE;wBACnC,IAAI,IAAI,GAAG,CAAC,aAAa,CAAC;qBAC7B;yBAAM,IAAI,GAAG,CAAC,eAAe,EAAE;wBAC5B,IAAI,IAAI,GAAG,CAAC,eAAe,CAAC;qBAC/B;yBAAM,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE;wBACtC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC;qBACrB;yBAAM;wBACH,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;qBAC5E;iBACJ;aACJ;YACD,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;SAChC;IACL,CAAC;IAEO,aAAa,CAAC,MAAM;QACxB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,4BAA4B;QAC5B,kBAAkB;QAClB,GAAG;QACH,0BAA0B;QAC1B,kBAAkB;QAClB,GAAG;QACH,oDAAoD;QACpD,kBAAkB;QAClB,GAAG;QACH,IAAI,MAAM,CAAC,QAAQ,EAAE;YACjB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC5B,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE;oBACtB,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,wEAAc,EAAE;wBAChD,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;qBACzC;yBAAM;wBACH,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;qBAChD;iBACJ;gBACD,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC;SAChC;aAAM,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YAChE,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACjC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE;oBACtB,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,wEAAc,EAAE;wBAChD,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;qBACzC;yBAAM;wBACH,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;qBAChD;iBACJ;gBACD,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC;SAClC;aAAM;YACH,KAAK,IAAI,MAAM,CAAC,eAAe,CAAC;SACnC;QACD,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE;YACR,KAAK,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;SACzC;QACD,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;QACtC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;QAC9B,KAAK,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;QAC7B,OAAO,KAAK,CAAC;IACjB,CAAC;IAID,eAAe;QACX,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY,EAAE;YAC3C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACpD;IACL,CAAC;IAEO,wBAAwB,CAAC,OAAO;QACpC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAClB,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE;gBACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;gBACxD,IAAI,QAAQ,EAAE;oBACV,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;oBAChE,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;oBACzC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;wBAC/B,IAAI,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACrD,IAAI,CAAC,SAAS,EAAE;4BACZ,SAAS,GAAG,EAAE,CAAC;4BACf,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;yBACpD;wBACD,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;wBACpC,QAAQ,SAAS,EAAE;4BACf,KAAK,OAAO;gCACR,SAAS,CAAC,iBAAiB,CAAC,GAAG,YAAY,CAAC;gCAC5C,MAAM;4BACV,KAAK,QAAQ;gCACT,SAAS,CAAC,iBAAiB,CAAC,GAAG,QAAQ,CAAC;gCACxC,MAAM;4BACV,KAAK,KAAK;gCACN,SAAS,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAAC;gCAC1C,MAAM;yBACb;qBACJ;iBACJ;aACJ;YACD,IAAI,GAAG,CAAC,QAAQ,EAAE;gBACd,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;aAC/C;YACD,IAAI,GAAG,CAAC,aAAa,EAAE;gBACnB,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;aACpD;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,IAAI;QACtB,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACb,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE;oBACf,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC;oBACzB,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAC9C,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;iBACtD;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IACD,YAAY;IACZ,iBAAiB;IACjB,KAAK,CAAC,KAAiB;QACnB,kEAAkE;QAClE,8BAA8B;QAC9B,UAAU;QACV,+BAA+B;QAC/B,GAAG;IACP,CAAC;IACD,YAAY;IACZ,iBAAiB;IACjB,OAAO;QACH,gDAAgD;IACpD,CAAC;IAED,QAAQ,CAAC,KAAK;QACV,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QACtB,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;QACzB,MAAM,KAAK,GAAe,KAAK,CAAC,KAAK,CAAC;QACtC,IAAI,IAAI,CAAC,eAAe,KAAK,gFAAoB,EAAE;YAC/C,IAAI,IAAI,CAAC,UAAU,KAAK,6EAAiB,EAAE;gBACvC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;oBACnC,IAAI,KAAK,KAAK,GAAG,EAAE;wBACf,OAAO;qBACV;oBACD,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;iBAC1B;gBACD,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACpB,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;wBAC3B,QAAQ,EAAE,GAAG,CAAC,KAAK;wBACnB,OAAO,EAAE,GAAG,CAAC,IAAI;qBACpB,CAAC,CAAC,CAAC;aACP;iBAAM,IAAI,IAAI,CAAC,UAAU,KAAK,yEAAa,EAAE;gBAC1C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxD,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE;oBACxE,IAAI,KAAK,CAAC,OAAO,EAAE;wBACf,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;4BACtC,IAAI,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gCAC1B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gCACpC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,EAAE;oCACrB,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE;wCACpB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,2EAAgB,CAAC;4CAC7C,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC;4CACrB,IAAI,EAAE,CAAC,CAAC,IAAI;yCACf,CAAC,CAAC,CAAC;qCACP;oCACD,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE;wCACtB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,2EAAgB,CAAC;4CAC7C,MAAM,EAAE,CAAC,CAAC,MAAM;4CAChB,IAAI,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC;yCACtB,CAAC,CAAC,CAAC;qCACP;iCACJ;gCACD,OAAO,IAAI,CAAC;6BACf;4BACD,OAAO,KAAK,CAAC;wBACjB,CAAC,CAAC,EAAE;4BACA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,2EAAgB,CAAC;gCAC7C,MAAM,EAAE,GAAG,CAAC,KAAK;gCACjB,IAAI,EAAE,GAAG,CAAC,KAAK;6BAClB,CAAC,CAAC,CAAC;yBACP;qBACJ;yBAAM;wBACH,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACvE,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;wBACpE,IAAI,GAAG,CAAC,KAAK,GAAG,UAAU,EAAE;4BACxB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC;4BACxB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;4BACvB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;yBAClC;6BAAM;4BACH,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;4BACzB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;4BACtB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;yBACjC;qBACJ;oBACD,MAAM,YAAY,GAAG,EAAE,CAAC;oBACxB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC/B,IAAI,IAAI,EAAE;wBACN,MAAM,UAAU,GAAmB,EAAE,CAAC;wBACtC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gCACrC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gCACvB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;gCACvB,UAAU,CAAC,IAAI,CAAC;oCACZ,QAAQ,EAAE,CAAC;oCACX,OAAO,EAAE,MAAM,CAAC,IAAI;iCACvB,CAAC,CAAC;gCACH,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;6BAC7B;wBACL,CAAC,CAAC,CAAC;wBACH,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;qBAC7C;oBACD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;iBACpC;qBAAM;oBACH,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,2EAAgB,CAAC;4BAC3C,MAAM,EAAE,GAAG,CAAC,KAAK;4BACjB,IAAI,EAAE,GAAG,CAAC,KAAK;yBAClB,CAAC,CAAC,CAAC;oBACJ,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACpB,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC1B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;4BAC3B,QAAQ,EAAE,GAAG,CAAC,KAAK;4BACnB,OAAO,EAAE,GAAG,CAAC,IAAI;yBACpB,CAAC,CAAC,CAAC;iBACP;aACJ;iBAAM,IAAI,IAAI,CAAC,eAAe,IAAI,qFAAyB,EAAE;gBAC1D,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;gBACvB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;wBAC3B,QAAQ,EAAE,GAAG,CAAC,KAAK;wBACnB,OAAO,EAAE,GAAG,CAAC,IAAI;qBACpB,CAAC,CAAC,CAAC;aACP;SACJ;aAAM;YACH,IAAI,IAAI,CAAC,eAAe,KAAK,6EAAiB,EAAE;gBAC5C,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;oBACjC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;oBACtC,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE;wBAClE,OAAO;qBACV;iBACJ;gBACD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC7B,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;wBACvB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACpC,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBACH,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACnC,IAAI,CAAC,eAAe,GAAG,CAAC;wBACpB,GAAG,EAAE,GAAG;wBACR,WAAW,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;qBAC1B,CAAC,CAAC;gBACH,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;wBAC5B,UAAU,EAAE,GAAG,CAAC,IAAI;wBACpB,QAAQ,EAAE,GAAG,CAAC,KAAK;qBACtB,CAAC,CAAC,CAAC;aACP;iBAAM,IAAI,IAAI,CAAC,eAAe,KAAK,4EAAgB,EAAE;gBAClD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACpC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;wBACf,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;4BAC7B,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE;gCACjB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;gCAChC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gCAC3B,OAAO,IAAI,CAAC;6BACf;4BACD,OAAO,KAAK,CAAC;wBACjB,CAAC,CAAC,EAAE;4BACA,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;gCAC5B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;6BACrC;yBACJ;6BAAM;4BACH,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;4BACrC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;yBAChC;wBACD,OAAO,IAAI,CAAC;qBACf;oBACD,OAAO,KAAK,CAAC;gBACjB,CAAC,CAAC,EAAE;oBACA,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACnC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;wBACtB,GAAG,EAAE,GAAG;wBACR,WAAW,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;qBAC1B,CAAC,CAAC;iBACN;gBACD,MAAM,UAAU,GAAoB,EAAE,CAAC;gBACvC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC7B,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;wBACvB,UAAU,CAAC,IAAI,CAAC;4BACZ,UAAU,EAAE,EAAE;4BACd,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK;yBACxB,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAC9C;iBAAM,IAAI,IAAI,CAAC,eAAe,KAAK,yEAAa,EAAE;gBAC/C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC3E,IAAI,IAAI,CAAC;gBACT,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;oBACnC,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;oBACzB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;wBACnC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;4BAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;4BACzB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gCAC7C,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;6BAC/C;yBACJ;oBACL,CAAC,CAAC,CAAC;iBACN;gBACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC5C,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE;oBACxE,IAAI,KAAK,CAAC,OAAO,EAAE;wBACf,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;4BACtC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE;gCACjC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gCACpC,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE;oCACtB,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE;wCACpB,IAAI,CAAC,CAAC,MAAM,GAAG,QAAQ,EAAE;4CACrB,IAAI,QAAQ,GAAG,CAAC,CAAC,IAAI,EAAE;gDACnB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,2EAAgB,CAAC;oDAC7C,MAAM,EAAE,GAAG,CAAC,KAAK;oDACjB,IAAI,EAAE,GAAG,CAAC,KAAK;oDACf,MAAM,EAAE,QAAQ,GAAG,CAAC;oDACpB,IAAI,EAAE,CAAC,CAAC,IAAI;iDACf,CAAC,CAAC,CAAC;6CACP;4CACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,2EAAgB,CAAC;gDAC7C,MAAM,EAAE,GAAG,CAAC,KAAK;gDACjB,IAAI,EAAE,GAAG,CAAC,KAAK;gDACf,MAAM,EAAE,CAAC,CAAC,MAAM;gDAChB,IAAI,EAAE,QAAQ,GAAG,CAAC;6CACrB,CAAC,CAAC,CAAC;yCACP;6CAAM;4CACH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,2EAAgB,CAAC;gDAC7C,MAAM,EAAE,GAAG,CAAC,KAAK;gDACjB,IAAI,EAAE,GAAG,CAAC,KAAK;gDACf,MAAM,EAAE,QAAQ,GAAG,CAAC;gDACpB,IAAI,EAAE,CAAC,CAAC,IAAI;6CACf,CAAC,CAAC,CAAC;yCACP;wCACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,2EAAgB,CAAC;4CAC7C,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC;4CACrB,IAAI,EAAE,CAAC,CAAC,IAAI;4CACZ,MAAM,EAAE,CAAC,CAAC,MAAM;4CAChB,IAAI,EAAE,CAAC,CAAC,IAAI;yCACf,CAAC,CAAC,CAAC;wCACJ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,2EAAgB,CAAC;4CAC7C,MAAM,EAAE,CAAC,CAAC,MAAM;4CAChB,IAAI,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC;4CACnB,MAAM,EAAE,CAAC,CAAC,MAAM;4CAChB,IAAI,EAAE,CAAC,CAAC,IAAI;yCACf,CAAC,CAAC,CAAC;qCACP;yCAAM;wCACH,IAAI,CAAC,CAAC,MAAM,GAAG,QAAQ,EAAE;4CACrB,IAAI,QAAQ,GAAG,CAAC,CAAC,IAAI,EAAE;gDACnB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,2EAAgB,CAAC;oDAC7C,MAAM,EAAE,GAAG,CAAC,KAAK;oDACjB,IAAI,EAAE,GAAG,CAAC,KAAK;oDACf,MAAM,EAAE,QAAQ,GAAG,CAAC;oDACpB,IAAI,EAAE,CAAC,CAAC,IAAI;iDACf,CAAC,CAAC,CAAC;6CACP;4CACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,2EAAgB,CAAC;gDAC7C,MAAM,EAAE,GAAG,CAAC,KAAK;gDACjB,IAAI,EAAE,GAAG,CAAC,KAAK;gDACf,MAAM,EAAE,CAAC,CAAC,MAAM;gDAChB,IAAI,EAAE,QAAQ,GAAG,CAAC;6CACrB,CAAC,CAAC,CAAC;yCACP;6CAAM;4CACH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,2EAAgB,CAAC;gDAC7C,MAAM,EAAE,GAAG,CAAC,KAAK;gDACjB,IAAI,EAAE,GAAG,CAAC,KAAK;gDACf,MAAM,EAAE,QAAQ,GAAG,CAAC;gDACpB,IAAI,EAAE,CAAC,CAAC,IAAI;6CACf,CAAC,CAAC,CAAC;yCACP;wCACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,2EAAgB,CAAC;4CAC7C,MAAM,EAAE,CAAC,CAAC,MAAM;4CAChB,IAAI,EAAE,GAAG,CAAC,KAAK,GAAE,CAAC;4CAClB,MAAM,EAAE,CAAC,CAAC,MAAM;4CAChB,IAAI,EAAE,CAAC,CAAC,IAAI;yCACf,CAAC,CAAC,CAAC;qCACP;iCACJ;qCAAM;oCACH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,2EAAgB,CAAC;wCAC7C,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC;wCACrB,IAAI,EAAE,CAAC,CAAC,IAAI;wCACZ,MAAM,EAAE,CAAC,CAAC,MAAM;wCAChB,IAAI,EAAE,CAAC,CAAC,IAAI;qCACf,CAAC,CAAC,CAAC;oCACJ,IAAI,CAAC,CAAC,MAAM,GAAG,QAAQ,EAAE;wCACrB,IAAI,QAAQ,GAAG,CAAC,CAAC,IAAI,EAAE;4CACnB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,2EAAgB,CAAC;gDAC7C,MAAM,EAAE,GAAG,CAAC,KAAK;gDACjB,IAAI,EAAE,GAAG,CAAC,KAAK;gDACf,MAAM,EAAE,QAAQ,GAAG,CAAC;gDACpB,IAAI,EAAE,CAAC,CAAC,IAAI;6CACf,CAAC,CAAC,CAAC;yCACP;wCACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,2EAAgB,CAAC;4CAC7C,MAAM,EAAE,GAAG,CAAC,KAAK;4CACjB,IAAI,EAAE,GAAG,CAAC,KAAK;4CACf,MAAM,EAAE,CAAC,CAAC,MAAM;4CAChB,IAAI,EAAE,QAAQ,GAAG,CAAC;yCACrB,CAAC,CAAC,CAAC;qCACP;yCAAM;wCACH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,2EAAgB,CAAC;4CAC7C,MAAM,EAAE,GAAG,CAAC,KAAK;4CACjB,IAAI,EAAE,GAAG,CAAC,KAAK;4CACf,MAAM,EAAE,QAAQ,GAAG,CAAC;4CACpB,IAAI,EAAE,CAAC,CAAC,IAAI;yCACf,CAAC,CAAC,CAAC;qCACP;iCACJ;gCACD,OAAO,IAAI,CAAC;6BACf;4BACD,OAAO,KAAK,CAAC;wBACjB,CAAC,CAAC,EAAE;4BACA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,2EAAgB,CAAC;gCAC7C,MAAM,EAAE,GAAG,CAAC,KAAK;gCACjB,IAAI,EAAE,GAAG,CAAC,KAAK;gCACf,MAAM,EAAE,QAAQ;gCAChB,IAAI,EAAE,QAAQ;6BACjB,CAAC,CAAC,CAAC;yBACP;qBACJ;yBAAM;wBACH,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACvE,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;wBAChE,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;wBAChE,IAAI,GAAG,CAAC,KAAK,GAAG,MAAM,EAAE;4BACpB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC;4BACxB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;4BACnB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;yBAClC;6BAAM;4BACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;4BACrB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;4BACtB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;yBACjC;wBACD,IAAI,QAAQ,GAAG,MAAM,EAAE;4BACnB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;4BACvB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;4BACnB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;yBAClC;6BAAM;4BACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;4BACrB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;4BACrB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;yBACjC;qBACJ;oBACD,MAAM,UAAU,GAAG,EAAE,CAAC;oBACtB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;wBACnC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;4BAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;4BACzB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gCAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gCAC5B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;gCACvC,UAAU,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG;oCACtB,UAAU,EAAE,OAAO;oCACnB,QAAQ,EAAE,CAAC;iCACd,CAAC;6BACL;yBACJ;oBACL,CAAC,CAAC,CAAC;oBACH,MAAM,aAAa,GAAG,EAAE,CAAC;oBACzB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBAChC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;oBACtC,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;iBACjD;qBAAM;oBACH,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,2EAAgB,CAAC;4BAC3C,MAAM,EAAE,GAAG,CAAC,KAAK;4BACjB,IAAI,EAAE,GAAG,CAAC,KAAK;4BACf,MAAM,EAAE,QAAQ;4BAChB,IAAI,EAAE,QAAQ;yBACjB,CAAC,CAAC,CAAC;oBACJ,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACnC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;4BAC5B,UAAU,EAAE,GAAG,CAAC,IAAI;4BACpB,QAAQ,EAAE,GAAG,CAAC,KAAK;yBACtB,CAAC,CAAC,CAAC;iBACP;aACJ;iBAAM,IAAI,IAAI,CAAC,eAAe,IAAI,qFAAyB,EAAE;gBAC1D,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;gBAC1B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;wBAC5B,UAAU,EAAE,GAAG,CAAC,IAAI;wBACpB,QAAQ,EAAE,GAAG,CAAC,KAAK;qBACtB,CAAC,CAAC,CAAC;aACP;SACJ;IACL,CAAC;IACD,cAAc,CAAC,GAAG;QACd,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;SAC1E;IACL,CAAC;IACD,WAAW,CAAC,GAAG;QACX,IAAI,IAAI,CAAC,UAAU,KAAK,4EAAgB,EAAE;YACtC,IAAI,GAAG,CAAC,QAAQ,EAAE;gBACd,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC/B;iBAAM;gBACH,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;aAC/D;YACD,MAAM,UAAU,GAAmB,EAAE,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAC1B,UAAU,CAAC,IAAI,CAAC;oBACZ,QAAQ,EAAE,CAAC,CAAC,KAAK;oBACjB,OAAO,EAAE,CAAC,CAAC,IAAI;iBAClB,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC7C;IACL,CAAC;IACD,qBAAqB;IACrB,uCAAuC;IACvC,0DAA0D;IAC1D,kEAAkE;IAClE,sCAAsC;IACtC,4CAA4C;IAC5C,cAAc;IACd,uDAAuD;IACvD,yFAAyF;IACzF,6CAA6C;IAC7C,mCAAmC;IACnC,iCAAiC;IACjC,+CAA+C;IAC/C,uDAAuD;IACvD,uCAAuC;IACvC,sDAAsD;IACtD,2BAA2B;IAC3B,yBAAyB;IACzB,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;IAClB,iDAAiD;IACjD,+CAA+C;IAC/C,sDAAsD;IACtD,qBAAqB;IACrB,iBAAiB;IACjB,6CAA6C;IAC7C,WAAW;IACX,6CAA6C;IAC7C,OAAO;IACP,GAAG;IACH,OAAO,CAAC,GAAG;QACP,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAChB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;aACtB;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACf,QAAQ,EAAE,GAAG;gBACb,IAAI,EAAE,IAAI;aACb,CAAC,CAAC;SACN;IACL,CAAC;IACD,aAAa,CAAC,GAAG;QACb,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACrD,OAAO,KAAK,CAAC,QAAQ,KAAK,GAAG,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC1D;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,aAAa,CAAC,GAAG;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACrD,OAAO,KAAK,CAAC,QAAQ,KAAK,GAAG,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC1D;QACD,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;IACrB,CAAC;IACD,UAAU,CAAC,KAAK;QACZ,MAAM,EAAE,GAAkB,KAAK,CAAC,KAAK,CAAC;QACtC,IAAI,IAAI,CAAC;QACT,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;SAC1C;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;SACzB;QACD,IAAI,IAAI,EAAE;YACN,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACrD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;gBAC3D,QAAQ,EAAE,CAAC,GAAG,EAAE;oBACZ,KAAK,YAAY;wBACb,IAAI,WAAW,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;4BACzC,QAAQ,IAAI,CAAC,CAAC;4BACd,WAAW,GAAG,CAAC,CAAC;yBACnB;wBACD,IAAI,QAAQ,GAAE,IAAI,CAAC,MAAM,EAAE;4BACvB,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;4BACrE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;yBAC3E;wBACD,MAAM;oBACV,KAAK,WAAW;wBACZ,IAAI,WAAW,KAAK,CAAC,EAAE;4BACnB,QAAQ,IAAI,CAAC,CAAC;4BACd,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;yBACrC;wBACD,IAAI,QAAQ,IAAI,CAAC,EAAE;4BACf,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;4BACrE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;yBAC3E;wBACD,MAAM;oBACV,KAAK,SAAS;wBACV,IAAI,QAAQ,GAAG,CAAC,EAAE;4BACd,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;4BACrE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;yBAC3E;wBACD,MAAM;oBACV,KAAK,WAAW;wBACZ,IAAI,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;4BAC5B,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;4BACrE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;yBAC3E;wBACD,MAAM;oBACV,KAAK,OAAO;wBACR,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAK,EAAE;4BACxE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;yBACnE;wBACD,MAAM;iBACb;aACJ;iBAAM;gBACH,QAAQ,EAAE,CAAC,GAAG,EAAE;oBACZ,KAAK,KAAK;wBACN,IAAI,WAAW,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;4BACzC,QAAQ,IAAI,CAAC,CAAC;4BACd,WAAW,GAAG,CAAC,CAAC;yBACnB;wBACD,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE;4BACxB,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;4BACrE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;4BACxE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;4BACjE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;yBACvE;wBACD,MAAM;oBACV,KAAK,QAAQ;wBACT,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;wBACjE,MAAM;oBACV,KAAK,OAAO;wBACR,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;wBACjE,MAAM;iBACb;aACJ;SACJ;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAGD,UAAU,CAAC,EAAE;QACT,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QACzB,MAAM,KAAK,GAAe,EAAE,CAAC,KAAK,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAChB,IAAI,KAAK,GAAG,IAAI,CAAC;gBACjB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBACzB,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,KAAK,MAAM,EAAE;wBAC7C,KAAK,GAAG,KAAK,CAAC;qBACjB;oBACD,IAAI,GAAG,KAAK,MAAM,EAAE;wBAChB,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC;qBAC3B;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,KAAK,EAAE;oBACP,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;iBACzB;aACJ;SACJ;aAAM;YACH,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACzB,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,KAAK,MAAM,EAAE;oBAC7C,KAAK,GAAG,KAAK,CAAC;iBACjB;gBACD,IAAI,GAAG,KAAK,MAAM,EAAE;oBAChB,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC;iBAC3B;YACL,CAAC,CAAC,CAAC;YACH,IAAI,KAAK,EAAE;gBACP,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;aACzB;SACJ;QACD,IAAI,MAAM,CAAC,UAAU,EAAE;YACnB,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,EAAE;gBAC9B,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;aAC7B;iBAAM,IAAI,MAAM,CAAC,UAAU,KAAK,KAAK,EAAE;gBACpC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC;aAC9B;iBAAM,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,EAAE;gBACrC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC;aAC9B;YACD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;oBAC1D,OAAO,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC;gBACtC,CAAC,CAAC,CAAC;gBACH,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3B,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,EAAE;wBAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qBAClE;yBAAM;wBACH,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,gEAAU,CAAC;qBAC/B;iBACJ;qBAAM;oBACH,MAAM,IAAI,GAAG,IAAI,kEAAW,EAAE,CAAC;oBAC/B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;oBACxB,IAAI,CAAC,KAAK,GAAG,+DAAS,CAAC;oBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC/B;aACJ;iBAAM;gBACH,MAAM,IAAI,GAAG,IAAI,kEAAW,EAAE,CAAC;gBAC/B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;gBACxB,IAAI,CAAC,KAAK,GAAG,+DAAS,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC/B;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC3C;IACL,CAAC;IAKD,YAAY,CAAC,MAAM;QACf,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;QAC7B,IAAI,MAAM,CAAC,IAAI,EAAE;YACb,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;SAC5B;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC3D,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI,EAAE;YAC5B,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;YAC3B,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvB,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;gBAClC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC;gBACxC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC;aAC5B;iBAAM;gBACH,MAAM,IAAI,GAAG,IAAI,sEAAa,EAAE,CAAC;gBACjC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;gBACvB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC;gBACtC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClC;SACJ;aAAM;YACH,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACtE;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;IAClD,CAAC;IACD,YAAY,CAAC,MAAM;QACf,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;IAClD,CAAC;IACD,YAAY;IACZ,gBAAgB;IAChB,UAAU,CAAC,KAAgB;QACvB,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;YAC7C,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;SAC7C;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IACD,YAAY;IAEJ,UAAU;QACd,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;SACrC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,MAAM,EAAE;gBACR,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;aAClC;iBAAM;gBACH,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;aAChC;SACJ;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,2EAAgB,EAAE;YAC7C,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,IAAI,MAAM,EAAE;oBACR,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;iBAClC;qBAAM;oBACH,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;iBAChC;aACJ;SACJ;aAAM,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;YAChE,IAAI,MAAM,EAAE;gBACR,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;aACnD;iBAAM;gBACH,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;aACjD;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,OAAO;QACtC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAClB,IAAI,GAAG,CAAC,QAAQ,EAAE;oBACd,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;wBACzC,MAAM,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;qBACxE;yBAAM;wBACH,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;qBACzB;iBACJ;qBAAM,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC1D,MAAM,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;iBAC7E;qBAAM;oBACH,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;iBACzB;YACL,CAAC,CAAC,CAAC;SACN;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,2BAA2B;QACvB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACtD,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QACjE,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAC9C,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,qBAAqB,CAAC,KAAK;QACvB,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACnD,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC5C,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;YACzB,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,GAAE,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;YAC1C,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;YACzC,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;YACxB,IAAI,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC;YACvB,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE;gBAC9C,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM;aAC/C;YACD,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACzB,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;aAC5D;SACJ;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;SACzB;QACD,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACjB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC3C,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACrB;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,MAAM,UAAU,GAAmB,EAAE,CAAC;QACtC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC1B,UAAU,CAAC,IAAI,CAAC;gBACZ,QAAQ,EAAE,CAAC,CAAC,KAAK;gBACjB,OAAO,EAAE,CAAC,CAAC,IAAI;aAClB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;;;;;;;;;yBAtjDA,iDAAK;+BAgCL,kDAAM;mBAMN,iDAAK;2BA4CL,iDAAK;yBAaL,kDAAM;wBAIN,iDAAK;8BAYL,kDAAM;uBAON,wDAAY,SAAC,mEAAc;kCAO3B,kDAAM;mCAIN,kDAAM;mCAGN,kDAAM;sBAWN,qDAAS,SAAC,QAAQ;yBAKlB,qDAAS,SAAC,WAAW;uBAKrB,qDAAS,SAAC,SAAS;yBAQnB,qDAAS,SAAC,WAAW;uBAOrB,iDAAK;6BASL,kDAAM;8BASN,iDAAK;oCAyCL,kDAAM;yBAKN,iDAAK;+BASL,kDAAM;wBAKN,iDAAK;8BASL,kDAAM;wBAKN,iDAAK;8BASL,kDAAM;yBAKN,iDAAK;+BAYL,kDAAM;+BAIN,iDAAK;qCAQL,kDAAM;yBAgBN,iDAAK;+BA4CL,kDAAM;8BAIN,iDAAK;oCASL,kDAAM;yBAKN,iDAAK;+BAYL,kDAAM;yBAMN,iDAAK;+BAYL,kDAAM;6BAKN,iDAAK;mCAWL,kDAAM;yBAIN,iDAAK;+BASL,kDAAM;6BAIN,iDAAK;mCASL,kDAAM;gCAIN,iDAAK;sCASL,kDAAM;sBAQN,iDAAK;4BAoBL,kDAAM;+BAGN,iDAAK;qCASL,kDAAM;gCAGN,iDAAK;sCASL,kDAAM;kBAIN,iDAAK;wBAQL,kDAAM;8BAGN,iDAAK;oCAQL,kDAAM;0BAGN,iDAAK;gCAQL,kDAAM;2BAGN,kDAAM;4BACN,kDAAM;+BACN,kDAAM;2BACN,kDAAM;+BACN,kDAAM;0BAi4BN,kDAAM;4BACN,kDAAM;;AA77CE,kBAAkB;IAN9B,yDAAS,CAAC;QACP,QAAQ,EAAE,mBAAmB;QAC7B,2EAAuC;QAEvC,eAAe,EAAE,2EAA+B;;KACnD,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/B0B;AACV;AACN;AACI;AACc;AACI;AACE;AACV;AACE;AACF;AACU;AACK;AACX;AACE;AACH;AACqB;AACf;AACJ;AACS;AACJ;AACA;AACpB;AACuB;AACnB;AACU;AACZ;AACmB;AACb;IAoCxC,eAAe,SAAf,eAAe;;AAAf,eAAe;IAlC3B,wDAAQ,CAAC;QACN,YAAY,EAAE;YACV,oEAAkB;YAClB,wDAAY;YACZ,0DAAa;YACb,sDAAW;YACX,0EAAmB;YACnB,sEAAiB;YACjB,yEAAiB;YACjB,8DAAe;YACf,2EAAqB;YACrB,6EAAsB;SACzB;QACD,OAAO,EAAE;YACL,0DAAY;YACZ,qEAAa;YACb,0FAAuB;YACvB,wDAAW;YACX,oEAAe;YACf,4EAAkB;YAClB,oEAAc;YACd,kEAAa;YACb,sEAAe;YACf,0EAAiB;YACjB,kEAAa;YACb,4EAAkB;YAClB,iFAAoB;YACpB,wEAAgB;YAChB,sEAAe;YACf,uEAAsB;YACtB,2EAAwB;SAC3B;QACD,OAAO,EAAE,CAAC,oEAAkB,CAAC;KAChC,CAAC;GACW,eAAe;AAAA;;;;;;;;;;;;;;;;;;;;;;;;AC/DqD;AACe;IA4BnF,YAAY,SAAZ,YAAY;;QAyCX,YAAO,GAAG,IAAI,uDAAY,EAAO;QAKjC,kBAAa,GAAG,IAAI,uDAAY,EAAO;QAKvC,kBAAa,GAAG,IAAI,uDAAY,EAAO;QAKvC,aAAQ,GAAG,IAAI,uDAAY,EAAO;QAKlC,gBAAW,GAAG,IAAI,uDAAY,EAAO;QAOrC,aAAQ,GAAG,IAAI,uDAAY,EAAO;IAyBhD,CAAC;QAvFO,GAAG;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD,IAAI,GAAG,CAAC,GAAQ;QACZ,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;IACxB,CAAC;QAOG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;IAC5B,CAAC;QAOG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAQ;QAClB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;IAC9B,CAAC;IACD,YAAY;IAEZ,eAAe,CAAC,GAAG;QACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAGD,qBAAqB,CAAC,GAAG;QACrB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAGD,qBAAqB,CAAC,GAAG;QACrB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAGD,gBAAgB,CAAC,KAAK;QAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAGD,mBAAmB,CAAC,GAAG;QACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAGD,gBAAgB,CAAC,KAAK;QAClB,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAID,WAAW,CAAC,KAAK;QACb,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,KAAK,CAAC,eAAe,EAAE,CAAC;IAC5B,CAAC;IAID,KAAK,CAAC,KAAiB;QACnB,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;YAC3D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAC3B;aAAM;YACH,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC5B;IACL,CAAC;IACD,YAAY;IACZ,cAAc;QACV,qJAAqJ;QACrJ,cAAc;QACd,6EAA6E;QAC7E,OAAO;QACP,GAAG;IACP,CAAC;;;kBAvFA,gDAAK;sBAYL,gDAAK;wBAYL,gDAAK;sBAYL,iDAAM;4BAKN,iDAAM;4BAKN,iDAAM;uBAKN,iDAAM;0BAKN,iDAAM;uBAON,iDAAM;;AApEE,YAAY;IAzBxB,wDAAS,CAAC;QACP,QAAQ,EAAE,mBAAmB;QAC7B,qEAAmC;QAEnC,UAAU,EAAE;YACR,4DAAO,CAAC,mBAAmB,EAAE;gBACzB,0DAAK,CAAC,WAAW,EAAE,0DAAK,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;gBACpE,0DAAK,CAAC,cAAc,EAAE,0DAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;gBACzE,0DAAK,CAAC,UAAU,EAAE,0DAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;gBACpE,+DAAU,CAAC,uBAAuB,EAAE;oBAChC,4DAAO,CAAC,OAAO,CAAC;iBACnB,CAAC;gBACF,+DAAU,CAAC,uBAAuB,EAAE;oBAChC,4DAAO,CAAC,OAAO,CAAC;iBACnB,CAAC;gBACF,+DAAU,CAAC,0BAA0B,EAAE;oBACnC,4DAAO,CAAC,OAAO,CAAC;iBACnB,CAAC;gBACF,+DAAU,CAAC,0BAA0B,EAAE;oBACnC,4DAAO,CAAC,OAAO,CAAC;iBACnB,CAAC;aACL,CAAC;SACL;QACD,eAAe,EAAE,0EAA+B;;KACnD,CAAC;GACW,YAAY;AAAA;;;;;;;;;;;;;;;;;;;;;;;;AC7BwD;AAG1D;IAwBV,qBAAqB,SAArB,qBAAqB;;QAiIpB,sBAAiB,GAAG,IAAI,uDAAY,EAAO;QAQ3C,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QAK5C,uBAAkB,GAAG,IAAI,uDAAY,EAAO;IAsB1D,CAAC;IAlKG,eAAe;QACX,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,EAAE;YAC3D,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACxC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAChF,CAAC,CAAC,CAAC;SACN;IACL,CAAC;QAKG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAQ;QAClB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;IAC9B,CAAC;QAMG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;IAC5B,CAAC;IAID,KAAK,CAAC,KAAiB;QACnB,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;YAC3D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAC3B;aAAM;YACH,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC5B;IACL,CAAC;IACD,YAAY;IAEZ,WAAW,CAAC,MAAM,EAAE,QAAQ;QACxB,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC;SAC5C;IACL,CAAC;IACD,aAAa,CAAC,KAAK,EAAE,MAAM;QACvB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IACD,UAAU,CAAC,KAAK,EAAE,MAAM;QACpB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IACD,YAAY,CAAC,KAAK,EAAE,MAAM;QACtB,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACpC,IAAI,MAAM,CAAC,UAAU,EAAE;YACnB,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;YAC1B,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAClD;SACJ;IACL,CAAC;IACO,eAAe,CAAC,KAAK,EAAE,MAAM;QACjC,IAAI,MAAM,CAAC,eAAe,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;YAC7C,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;YACzB,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1C,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;SAClC;IACL,CAAC;IACD,mBAAmB,CAAC,MAAM;QACtB,IAAI,MAAM,EAAE;YACR,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACjB,IAAI,MAAM,CAAC,QAAQ,EAAE;oBACjB,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;iBACtC;aACJ;iBAAM,IAAI,MAAM,CAAC,aAAa,EAAE;gBAC7B,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;aAC3C;YACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtB,IAAI,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC;gBACtC,MAAM,GAAG,GAAG;oBACR,SAAS,EAAE,EAAE;oBACb,SAAS,EAAE,EAAE;oBACb,GAAG,EAAE,CAAC;iBACT,CAAC;gBACF,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACtB,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC1B,IAAI,UAAU,GAAG,CAAC,CAAC;oBACnB,IAAI,KAAK,CAAC,eAAe,EAAE;wBACvB,UAAU,GAAG,KAAK,CAAC,eAAe,CAAC;qBACtC;oBACD,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC/B,GAAG,CAAC,GAAG,IAAI,UAAU,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBACH,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE;oBACb,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBAC3B,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;oBACtF,CAAC,CAAC,CAAC;oBACH,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;wBACtB,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;oBACpC,CAAC,CAAC,CAAC;iBACN;aACJ;SACJ;IACL,CAAC;IAED,iBAAiB,CAAC,MAAM;QACpB,IAAI,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE;YAC/B,IAAI,MAAM,GAAG,MAAM,CAAC;YACpB,OAAO,MAAM,EAAE;gBACX,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACjE,IAAI,YAAY,EAAE;oBACd,MAAM,GAAG,YAAY,CAAC;iBACzB;qBAAM;oBACH,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBAC3C,MAAM;iBACT;aACJ;SACJ;IACL,CAAC;IAID,UAAU,CAAC,MAAM,EAAE,KAAK;QACpB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,kBAAkB,CAAC,KAAK;QACpB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAGD,YAAY,CAAC,MAAM;QACf,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAGD,YAAY,CAAC,MAAM;QACf,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IACD,YAAY;IACZ,QAAQ,CAAC,MAAM;QACX,IAAI,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;QAC/F,0CAA0C;QAC1C,gHAAgH;QAChH,4DAA4D;QAC5D,iFAAiF;QACjF,OAAO;QACP,gDAAgD;QAChD,gFAAgF;QAChF,uFAAuF;QACvF,OAAO;QACP,4DAA4D;QAC5D,4EAA4E;QAC5E,OAAO;QACP,GAAG;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;;;uBAlKA,uDAAY,SAAC,KAAK;wBAWlB,gDAAK;sBAWL,gDAAK;gCA0GL,iDAAM;iCAQN,iDAAM;iCAKN,iDAAM;;AA9IE,qBAAqB;IAtBjC,wDAAS,CAAC;QACP,QAAQ,EAAE,6BAA6B;QACvC,+EAA6C;QAE7C,eAAe,EAAE,0EAA+B;QAChD,UAAU,EAAE;YACR,4DAAO,CAAC,cAAc,EAAE;gBACpB,0DAAK,CAAC,KAAK,EAAE,0DAAK,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC9D,0DAAK,CAAC,MAAM,EAAE,0DAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;gBACjE,0DAAK,CAAC,MAAM,EAAE,0DAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;gBACpC,+DAAU,CAAC,aAAa,EAAE;oBACtB,4DAAO,CAAC,OAAO,CAAC;iBACnB,CAAC;gBACF,+DAAU,CAAC,cAAc,EAAE;oBACvB,4DAAO,CAAC,OAAO,CAAC;iBACnB,CAAC;gBACF,+DAAU,CAAC,aAAa,EAAE;oBACtB,4DAAO,CAAC,OAAO,CAAC;iBACnB,CAAC;aACL,CAAC;SACL;;KACJ,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACzBX;AACmB;IAQ7B,eAAe,SAAf,eAAgB,SAAQ,mDAAS;IAqB1C,YAAY,IAAqB;QAC7B,KAAK,EAAE,CAAC;QAJF,aAAQ,GAAG,IAAI,uDAAY,EAAO;QAKxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IACzC,CAAC;QAhBG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;IAC7B,CAAC;IAaD,SAAS;QACL,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YACvE,IAAI,OAAO,EAAE;gBACT,OAAO,CAAC,kBAAkB,CAAC,CAAC,MAAsC,EAAE,EAAE;oBAClE,IAAI,MAAM,CAAC,GAAG,KAAK,UAAU,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI,EAAE;wBAC3D,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;qBACvC;oBACD,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;wBACnE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;qBACvC;gBACL,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAED,cAAc,CAAC,KAAoB;QAC/B,qBAAqB;IACzB,CAAC;IAED,gBAAgB,CAAC,IAAI;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YACzB,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;SAC1B;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE;YACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC5C;IACL,CAAC;IACD,YAAY;QACR,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE;YACrC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC;gBAClC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK;gBACxB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;gBAC5B,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC7C,QAAQ,EAAE,IAAI,CAAC,SAAS;aAC3B,CAAC,CAAC;SACN;IACL,CAAC;IAED,QAAQ,CAAC,KAAK;QACV,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,SAAS,CAAC,KAAiB;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC;QACrD,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,SAAS,GAAG;YAC5C,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;YAC7B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;SAC/B;QACD,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO;QACH,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,GAAG;YAC1C,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;YAC7B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;SAC/B;QACD,oCAAoC;QACpC,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,EAAE;YAC7C,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;YACpD,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;SACtD;QACD,QAAQ;QACR,+CAA+C;QAC/C,GAAG;IACP,CAAC;IACD,QAAQ,CAAC,KAAiB;QACtB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;QACpD,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;QACnD,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,SAAS,GAAG,KAAK,CAAC;QACtD,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,SAAS,GAAG;YAC5C,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;YAC7B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;SAC/B;IACL,CAAC;IAED,YAAY;QACR,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,IAAI,CAAC,SAAS,CAAC,eAAe,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;YACzG,IAAI,IAAI,CAAC,cAAc,CAAC,iBAAiB,IAAI,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC5F,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBACrD,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE;oBAC1D,MAAM,GAAG,IAAI,CAAC;iBACjB;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;;;;;uBAjHA,oDAAS,SAAC,MAAM,EAAE,EAAE,IAAI,EAAE,qDAAU,EAAE;uBAKtC,gDAAK;uBAWL,iDAAM;;AAlBE,eAAe;IAN3B,wDAAS,CAAC;QACP,QAAQ,EAAE,sBAAsB;QAChC,wEAAsC;QAEtC,eAAe,EAAE,0EAA+B;;KACnD,CAAC;GACW,eAAe;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXuD;AACV;AACf;AACS;AAEa;IAQnE,YAAY,SAAZ,YAAY;IASrB,YAAoB,SAA+B,EAAkC,IAAS;QAA1E,cAAS,GAAT,SAAS,CAAsB;QAAkC,SAAI,GAAJ,IAAI,CAAK;QAF9F,aAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,uFAAqB,EAAE,CAAC,CAAC,CAAC;QAGhD,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;YAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;SACvC;QACD,IAAI,CAAC,KAAK,GAAG,8EAA4B,CAAC,qEAAU,CAAC,CAAC;QACtD,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;IAClC,CAAC;IAED,QAAQ;IACR,CAAC;IAED,EAAE;QACE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACjB,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,MAAM,EAAE,MAAM;SACjB,CAAC,CAAC;IACP,CAAC;IACD,MAAM;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACjB,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,MAAM,EAAE,QAAQ;SACnB,CAAC;IACN,CAAC;;;;4CA3BqD,iDAAM,SAAC,qEAAe;;AATnE,YAAY;IANxB,wDAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,qEAAiC;QAEjC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,YAAY;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACboE;IAShF,oBAAoB,SAApB,oBAAoB;IAS7B,eAAe;QACX,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE;YACrC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC/C;IACL,CAAC;IAED,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACtC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;SAC/C;IACL,CAAC;IAED,eAAe;QACX,MAAM,MAAM,GAAG;YACX,MAAM,EAAE,IAAI;SACf,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;SAC1D;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;;8BAzBA,oDAAS,SAAC,UAAU;;AAPZ,oBAAoB;IANhC,wDAAS,CAAC;QACP,QAAQ,EAAE,sBAAsB;QAChC,6EAA2C;QAE3C,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,oBAAoB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTjC;AAGA;AACA;AACA;AACA;AACA;IAQaU,UAAU,SAAVA,UAAU;EA4DnBngC,YAAoBogC,SAApB,EAAyF/5B,IAAzF,EACYgc,eADZ,EAC+DpiB,KAD/D,EACuF;IADnE;IAAqE;IAC7E;IAAmD;IAC3D,KAAKogC,UAAL,GAAkBh6B,IAAI,CAAC9F,IAAvB;IACA6/B,SAAS,CAACE,YAAV,GAAyB,IAAzB;;IACA,IAAIF,SAAS,CAACG,kBAAV,CAA6BC,OAA7B,CAAqCC,MAAzC,EAAiD;MAC7C,KAAKC,eAAL,GAAuB,IAAIxuB,GAAJ,CAAQ,CAAC,CAAC,YAAD,EAAe,SAAf,CAAD,CAAR,CAAvB;IACH;EACJ;;EA3DuB,OAAV2M,UAAU,CAACxY,IAAD,EAAiB;IACrC,IAAIA,IAAJ,EAAU;MACN,MAAMkM,MAAM,GAAG,IAAIstB,qEAAJ,EAAf;MACAttB,MAAM,CAAClM,IAAP,GAAc;QACV9F,IAAI,EAAE8F;MADI,CAAd;;MAGA,IAAI,CAACA,IAAI,CAACs6B,KAAN,IAAet6B,IAAI,CAACu6B,cAAL,IAAuB,IAA1C,EAAgD;QAC5Cv6B,IAAI,CAACs6B,KAAL,GAAa,cAAb;MACH;;MACD,IAAI,OAAOt6B,IAAI,CAACw6B,OAAZ,KAAwB,QAA5B,EAAsC;QAClCx6B,IAAI,CAACw6B,OAAL,GAAeZ,kFAAf;MACH;;MACD,IAAI55B,IAAI,CAAC06B,UAAL,KAAoB,IAAxB,EAA8B;QAC1BxuB,MAAM,CAACyuB,QAAP,GAAkB;UACdC,GAAG,EAAE,GADS;UAEdC,IAAI,EAAE;QAFQ,CAAlB;QAIA3uB,MAAM,CAAC4uB,QAAP,GAAkB,MAAlB;QACA5uB,MAAM,CAACkuB,MAAP,GAAgB,MAAhB;MACH,CAPD,MAOO;QACH,IAAIp6B,IAAI,CAAC+6B,MAAT,EAAiB;UACb7uB,MAAM,CAACkuB,MAAP,GAAgBp6B,IAAI,CAAC+6B,MAAL,GAAc,IAA9B;UACA7uB,MAAM,CAAC8uB,SAAP,GAAmB,SAAnB;QACH,CAHD,MAGO,IAAIh7B,IAAI,CAACi7B,UAAT,EAAqB;UACxB/uB,MAAM,CAACkuB,MAAP,GAAgBp6B,IAAI,CAACi7B,UAArB;UACA/uB,MAAM,CAAC8uB,SAAP,GAAmB,SAAnB;QACH;;QACD,IAAIh7B,IAAI,CAACjI,KAAT,EAAgB;UACZmU,MAAM,CAAClI,KAAP,GAAehE,IAAI,CAACjI,KAAL,GAAa,IAA5B;QACH,CAFD,MAEO,IAAIiI,IAAI,CAACk7B,SAAT,EAAoB;UACvBhvB,MAAM,CAAClI,KAAP,GAAehE,IAAI,CAACk7B,SAApB;QACH;MACJ;;MACD,IAAIl7B,IAAI,CAACm7B,SAAL,KAAmB,KAAvB,EAA8B;QAC1BjvB,MAAM,CAACkvB,SAAP,GAAmB,KAAnB;MACH;;MACDlvB,MAAM,CAACmvB,SAAP,GAAmBrsB,oEAAA,IAAqB,KAArB,GAA2B,KAA3B,GAAiC,KAApD;MACA,OAAO2qB,sFAAA,CAAiCG,UAAjC,EAA6C5tB,MAA7C,CAAP;IACH,CArCD,MAqCO;MACHvH,OAAO,CAACmI,KAAR,CAAc,yBAAd;IACH;;IACD,OAAO,IAAP;EACH;;EAEkC,OAAfyuB,eAAe,CAACv7B,IAAD,EAAiB;IAAA;MAChD,MAAMw7B,MAAM,GAAG1B,UAAU,CAACthB,UAAX,CAAsBxY,IAAtB,CAAf;;MACA,IAAIw7B,MAAJ,EAAY;QACR,aAAaA,MAAM,CAACC,WAAP,GAAqB3I,SAArB,EAAb;MACH;;MACD,OAAO+G,8EAAP;IALgD;EAMnD;;EAWDz3B,eAAe;IACX,IAAI,KAAK43B,UAAT,EAAqB;MACjB,IAAI,KAAKA,UAAL,CAAgB0B,WAApB,EAAiC;QAC7B,MAAMpc,OAAO,GAAG,KAAKtD,eAAL,CAAqBuD,uBAArB,CAA6C,KAAKya,UAAL,CAAgB0B,WAA7D,CAAhB;QACA,MAAMvc,SAAS,GAAGG,OAAO,CAACqc,MAAR,CAAe,KAAKvc,gBAAL,CAAsBwc,cAArC,CAAlB;QACA,KAAKC,aAAL,GAAqB1c,SAAS,CAAC7hB,QAA/B;QACA,KAAKu+B,aAAL,CAAmB/B,UAAnB,GAAgC,IAAhC;;QACA,IAAI,KAAKE,UAAL,CAAgB74B,QAAhB,IAA4B,OAAO,KAAK06B,aAAL,CAAmBC,UAA1B,KAAyC,UAAzE,EAAqF;UACjF,KAAKD,aAAL,CAAmBC,UAAnB,CAA8B,KAAK9B,UAAL,CAAgB74B,QAA9C;QACH;;QACD,KAAKie,gBAAL,CAAsB2c,MAAtB,CAA6B5c,SAAS,CAAC6c,QAAvC;QACA7c,SAAS,CAAC8c,QAAV,CAAmB5Z,aAAnB,CAAiCgI,SAAjC,CAA2CC,GAA3C,CAA+C,aAA/C,EAA8D,UAA9D,EAA0E,MAA1E,EAAkF,UAAlF;QACAnL,SAAS,CAAC+c,iBAAV,CAA4B5gC,aAA5B;MACH;IACJ;EACJ;;EAEK6gC,aAAa,CAACjH,MAAD,EAAO;IAAA;;IAAA;MACtB,IAAI,KAAI,CAAC2G,aAAT,EAAwB;QACpB,IAAI,OAAO,KAAI,CAACA,aAAL,CAAmBO,qBAA1B,KAAoD,UAAxD,EAAoE;UAChE,MAAM,KAAI,CAACP,aAAL,CAAmBO,qBAAnB,CAAyClH,MAAzC,CAAN;QACH;;QACD,IAAI,KAAI,CAAC2G,aAAL,CAAmBQ,mBAAnB,KAA2C,IAA/C,EAAqD;UACjD,MAAM,KAAI,CAACC,cAAL,CAAoBzC,8EAApB,CAAN;QACH;MACJ;IARqB;EASzB;;EAEK0C,aAAa;IAAA;;IAAA;MACf,MAAMC,OAAO,SAAS,MAAI,CAACC,cAAL,CAAoB7C,gFAApB,CAAtB;;MACA,IAAI4C,OAAJ,EAAa;QACT,IAAI,MAAI,CAACxC,UAAL,IAAmB,OAAO,MAAI,CAACA,UAAL,CAAgB0C,OAAvB,KAAmC,UAA1D,EAAsE;UAClE,MAAI,CAAC1C,UAAL,CAAgB0C,OAAhB,CAAwB,IAAxB;QACH;;QACD,MAAI,CAAC3C,SAAL,CAAe4C,KAAf,CAAqB9C,gFAArB;MACH;IAPc;EAQlB;;EAEK+C,SAAS;IAAA;;IAAA;MACX,MAAMJ,OAAO,SAAS,MAAI,CAACC,cAAL,CAAoB7C,4EAApB,CAAtB;;MACA,IAAI4C,OAAJ,EAAa;QACT,MAAM,MAAI,CAACF,cAAL,CAAoBzC,4EAApB,CAAN;MACH;IAJU;EAKd;;EAEKyC,cAAc,CAACzkC,MAAD,EAAqB;IAAA;;IAAA;MACrC,IAAI8kC,KAAK,GAAG,IAAZ;MACA,IAAI3gC,EAAE,GAAG,IAAT;;MACA,IAAG,MAAI,CAAC6/B,aAAL,CAAmBgB,WAAtB,EAAkC;QAC9B,IAAG,OAAO,MAAI,CAAChB,aAAL,CAAmBgB,WAA1B,KAAwC,UAA3C,EAAsD;UAClD,MAAMC,KAAK,SAAS,MAAI,CAACjB,aAAL,CAAmBgB,WAAnB,EAApB;;UACA,IAAGC,KAAH,EAAS;YACL9gC,EAAE,GAAG8gC,KAAL;UACH;QACJ;MACJ;;MACD,IAAI,MAAI,CAAC9C,UAAL,IAAmB,OAAO,MAAI,CAACA,UAAL,CAAgB0C,OAAvB,KAAmC,UAAtD,IAAoE,MAAI,CAACb,aAAzE,IACA,OAAO,MAAI,CAACA,aAAL,CAAmBkB,eAA1B,KAA8C,UADlD,EAC8D;QAC1D,MAAMC,EAAE,SAAS,MAAI,CAACnB,aAAL,CAAmBkB,eAAnB,EAAjB;;QACA,IAAG/gC,EAAE,KAAGugB,SAAL,IAAkBvgB,EAAE,KAAG,IAA1B,EAA+B;UAC3B2gC,KAAK,GAAG,MAAI,CAAC3C,UAAL,CAAgB0C,OAAhB,CAAwBM,EAAxB,EAA2BhhC,EAA3B,CAAR;QACH,CAFD,MAGK2gC,KAAK,GAAG,MAAI,CAAC3C,UAAL,CAAgB0C,OAAhB,CAAwBM,EAAxB,CAAR;MACR;;MACD,IAAIL,KAAJ,EAAW;QACP,MAAI,CAAC5C,SAAL,CAAe4C,KAAf,CAAqB9kC,MAArB;MACH;IArBoC;EAsBxC;;EAEK4kC,cAAc,CAACvH,MAAD,EAAqB;IAAA;;IAAA;MACrC,IAAItjB,MAAM,GAAG,IAAb;;MACA,IAAI,MAAI,CAACiqB,aAAL,IAAsB,OAAO,MAAI,CAACA,aAAL,CAAmBoB,yBAA1B,KAAwD,UAAlF,EAA8F;QAC1FrrB,MAAM,SAAS,MAAI,CAACiqB,aAAL,CAAmBoB,yBAAnB,CAA6C/H,MAA7C,CAAf;MACH;;MACD,OAAOtjB,MAAP;IALqC;EAMxC;;AAhJkB;;;;;;;UA4DuCkW,iDAAMA;IAAAnhB,OAAC+yB,qEAAD;;;;;;;;;;UAtD/D1tB,oDAASA;IAAArF,OAAC,SAAD,EAAY;MAAEC,IAAI,EAAE4U,2DAAgBA;IAAxB,CAAZ;;;AANDse,UAAU,sDANtBxjC,wDAAS,CAAC;EACP4C,QAAQ,EAAE,aADH;EAEPC,UAAAA,yDAFO;EAIPgP,eAAe,EAAEf,yEAJV;;AAAA,CAAD,CAMa,GAAV0yB,UAAU,CAAV;;;;;;;;;;;;;;;;;;;;;;;;;;;ACf6B;AAC2B;AACE;AACU;AACN;AACpB;AACY;IAMtD,eAAe,SAAf,eAAe;;QACxB,WAAM,GAAG,EAAE,CAAC;QACZ,kBAAa,GAAG,EAAE,CAAC;QACnB,aAAQ,GAAG,KAAK,CAAC;QACjB,aAAQ,GAAG,EAAE,CAAC;QACd,iBAAY,GAAY,KAAK,CAAC;IAkHlC,CAAC;IAjHG,MAAM,CAAC,UAAU,CAAC,aAAuB,EAAE,QAAiB,EAAE,OAAO,EAAE,WAAmB,EAAE,EAAE,eAAwB,KAAK;QACvH,0EAAqB,CAAC;YAClB,WAAW,EAAE,eAAe;YAC5B,QAAQ,EAAE;gBACN,aAAa,EAAE,aAAa;gBAC5B,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,QAAQ;gBAClB,YAAY,EAAE,YAAY;aAC7B;YACD,KAAK,EAAE,mBAAmB;YAC1B,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;gBACf,IAAI,CAAC,IAAI,OAAO,EAAE;oBACd,IAAI,CAAC,IAAI,EAAE,EAAE;wBACT,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;qBAClB;;wBACI,OAAO,CAAC,CAAC,CAAC,CAAC;iBACnB;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC;SACJ,CAAC;IACN,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,CAAC;QAChB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;YACvB,IAAI,IAAyB,CAAC;YAC9B,IAAI,MAA2B,CAAC;YAChC,QAAQ,CAAC,EAAE;gBACP,KAAK,CAAC,EAAE,WAAW;oBACf,IAAI,GAAG,IAAI,uEAAmB,CAAC,gBAAgB,CAAC,CAAC;oBACjD,MAAM,GAAG,IAAI,uEAAmB,CAAC,kBAAkB,CAAC,CAAC;oBACrD,MAAM;gBACV,KAAK,CAAC,EAAE,iBAAiB;oBACrB,IAAI,GAAG,IAAI,uEAAmB,CAAC,sBAAsB,CAAC,CAAC;oBACvD,MAAM,GAAG,IAAI,uEAAmB,CAAC,wBAAwB,CAAC,CAAC;oBAC3D,MAAM;gBACV,KAAK,CAAC,EAAE,UAAU;oBACd,IAAI,GAAG,IAAI,uEAAmB,CAAC,eAAe,CAAC,CAAC;oBAChD,MAAM,GAAG,IAAI,uEAAmB,CAAC,iBAAiB,CAAC,CAAC;oBACpD,MAAM;gBACV,KAAK,CAAC,EAAE,WAAW;oBACf,IAAI,GAAG,IAAI,uEAAmB,CAAC,gBAAgB,CAAC,CAAC;oBACjD,MAAM,GAAG,IAAI,uEAAmB,CAAC,kBAAkB,CAAC,CAAC;oBACrD,MAAM;gBACV,KAAK,CAAC,EAAE,cAAc;oBAClB,IAAI,GAAG,IAAI,uEAAmB,CAAC,0BAA0B,CAAC,CAAC;oBAC3D,MAAM,GAAG,IAAI,uEAAmB,CAAC,4BAA4B,CAAC,CAAC;oBAC/D,MAAM;gBACV,KAAK,CAAC,EAAE,WAAW;oBACf,IAAI,GAAG,IAAI,uEAAmB,CAAC,oBAAoB,CAAC,CAAC;oBACrD,MAAM,GAAG,IAAI,uEAAmB,CAAC,sBAAsB,CAAC,CAAC;oBACzD,MAAM;gBACV,KAAK,CAAC,EAAE,YAAY;oBAChB,IAAI,GAAG,IAAI,uEAAmB,CAAC,qBAAqB,CAAC,CAAC;oBACtD,MAAM,GAAG,IAAI,uEAAmB,CAAC,uBAAuB,CAAC,CAAC;oBAC1D,MAAM;gBAEV,KAAK,CAAC,EAAE,kBAAkB;oBACtB,IAAI,GAAG,IAAI,uEAAmB,CAAC,iBAAiB,CAAC,CAAC;oBAClD,MAAM,GAAG,IAAI,uEAAmB,CAAC,mBAAmB,CAAC,CAAC;oBACtD,MAAM;gBACV;oBACI,OAAO;aACd;YACD,sFAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,sFAAoB,EAAE,mFAAoB,CAAC,CAAC;SACzF;IACL,CAAC;IAED,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,EAAE;YACN,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;gBACnC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBAC5B,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;wBACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;qBAC7C;gBACL,CAAC,CAAC,CAAC;aACN;YACD,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;gBACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;aACjC;YACD,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;aACjC;YACD,IAAI,IAAI,EAAE,YAAY,KAAK,SAAS,IAAI,IAAI,EAAE,YAAY,KAAK,IAAI,EAAE;gBACjE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;aACzC;SACJ;IACL,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,WAAW;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD,yBAAyB,CAAC,MAAM;QAC5B,IAAI,MAAM,IAAI,4EAAe,EAAE;YAC3B,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,EAAE;gBACpD,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC/B,OAAO,KAAK;aACf;YACD,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC1C,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,EAAE;oBAC5C,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBAC/B,OAAO,KAAK,CAAC;iBAChB;aACJ;iBAAM;gBACH,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC/B,OAAO,KAAK,CAAC;aAChB;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;;AAtHQ,eAAe;IAJ3B,wDAAS,CAAC;QACP,QAAQ,EAAE,mBAAmB;QAC7B,yEAAuC;KAC1C,CAAC;GACW,eAAe;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACZmD;AACxB;AACa;AACA;IAOvD,qBAAqB,SAArB,qBAAqB;IAyC9B,YAAoB,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;QAxC7C,sBAAiB,GAAG,EAAE,CAAC;QACvB,mBAAc,GAAG,EAAE,CAAC;QACpB,UAAK,GAAG,CAAC,CAAC;QAEV,iBAAY,GAAG,EAAE,CAAC;QAgClB,cAAS,GAAG,EAAE,CAAC;QACf,kBAAa,GAAG,EAAE,CAAC;QACT,iBAAY,GAAG,IAAI,uDAAY,EAAO;QAG5C,IAAI,CAAC,iBAAiB,GAAG,8EAA4B,CAAC,yEAAY,CAAC,CAAC;IACxE,CAAC;IAnCD,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAGD,IAAI,mBAAmB;QACnB,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,mBAAmB,CAAC,GAAG;QACvB,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;QAChC,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAGD,IAAI,0BAA0B;QAC1B,OAAO,IAAI,CAAC,2BAA2B,CAAC;IAC5C,CAAC;IACD,IAAI,0BAA0B,CAAC,GAAG;QAC9B,IAAI,CAAC,2BAA2B,GAAG,GAAG,CAAC;QACvC,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAaD,KAAK,KAAK,CAAC;IAEX,QAAQ;QACJ,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;YAChD,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gBAClF,IAAI,CAAC,EAAE;oBACH,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;iBAC3B;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gBACjE,IAAI,CAAC,EAAE;oBACH,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;oBACvB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;iBACtB;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;SAC3B;IACL,CAAC;IAED,eAAe;IACf,CAAC;IAED,eAAe;QACX,IAAI,SAAS,CAAC;QACd,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SAC/C;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAC9C,CAAC,IAAI,CAAC,2BAA2B,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC;YACxG,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;YAC7F,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,SAAS,CAAC,KAAK,EAAE,IAAI;QACjB,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,KAAK;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;;;;;;4BAxDA,gDAAK;2BAKL,iDAAM;;AAvCE,qBAAqB;IALjC,wDAAS,CAAC;QACP,QAAQ,EAAE,wBAAwB;QAClC,8EAA0C;;KAE7C,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVyF;AAClD;AACxB;AACa;AACK;AACb;AACW;AACJ;AACY;IAQ5D,aAAa,SAAb,aAAa;IAUtB,YAAY,SAAsC,EAAkC,IAAS,EAAU,OAAoB;QAAvC,SAAI,GAAJ,IAAI,CAAK;QAAU,YAAO,GAAP,OAAO,CAAa;QAH3H,mBAAc,GAAG,KAAK,CAAC;QAmBb,iBAAY,GAAG,IAAI,uDAAY,EAAO;QAf5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC;IACnC,CAAC;QAKG,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACV,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAGH,YAAY;IACV,QAAQ;QACJ,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,6EAAkB,EAAE;gBAC/E,IAAI,CAAC,SAAS,GAAG,4FAAsC,CAAC,CAAC,CAAC,EAAE;oBACxD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;wBACtB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;qBACvB;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,GAAG,4FAAkC,CAAC,CAAC,CAAC,EAAE;oBACnD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;wBACtB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;qBAC3B;gBACL,CAAC,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,EAAE,CAAC;gBAClB,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;oBACzE,IAAI,IAAI,CAAC,UAAU,YAAY,wDAAM,EAAE;wBACnC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;4BACzC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;gCAClB,IAAI,IAAI,GAAG,iFAA6B,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gCACnF,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;oCACtB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;iCACnD;6BACJ;iCAAM;gCACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;6BAC1C;wBACL,CAAC,CAAC,CAAC;qBACN;iBACJ;gBACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBAC1D,IAAI,MAAM,EAAE;wBACR,IAAI,CAAC,aAAa,GAAG,+DAAY,CAAC,wDAAM,EAAE,MAAM,CAAC,CAAC;wBAClD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;wBAC3B,uFAAiC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;wBACtD,uFAA6B,CAAC,MAAM,CAAC,CAAC;wBACtC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;qBAC/B;gBACL,CAAC,CAAC,CAAC;aACN;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,IAAI,8EAAmB,EAAE;gBAC9F,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,EAAE;oBACzC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;wBACpF,IAAI,MAAM,EAAE;4BACR,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;4BACvB,IAAI,CAAC,aAAa,GAAG,+DAAY,CAAC,wDAAM,EAAE,MAAM,CAAC,CAAC;4BAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;4BACjC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE;gCACrD,UAAU,CAAC,GAAG,EAAE;oCACZ,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;gCACxF,CAAC,EAAE,GAAG,CAAC,CAAC;4BACZ,CAAC,CAAC,CAAC;yBACN;oBACL,CAAC,CAAC,CAAC;iBACN;aACJ;SACJ;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,uFAAiC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACtD;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,uFAA6B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACtD;IACL,CAAC;;;;4CAtFoD,iDAAM,SAAC,sEAAe;;;;qBAO1E,gDAAK;2BASL,iDAAM;;AA1BE,aAAa;IANzB,wDAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,sEAAkC;QAElC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,aAAa;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChB1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEM,MAAOuD,YAAP,CAAmB;EACrB1jC,YAAmB6a,QAAnB,EAAoD8oB,WAApD,EAA+D;IAA5C;IAAiC;EACnD;;AAFoB;IAUZC,sBAAsB,SAAtBA,sBAAsB;EA6F/B;EAEA5jC,YAAoB6jC,gBAApB,EAAsD;IAAlC;IA3FpB,2BAAsB,KAAtB;IAEU,sBAAiB,IAAInkC,wDAAJ,EAAjB;IAGV,mBAAc,KAAd;IAsDA,4BAA4B,IAAI8jC,yHAAJ,EAA5B,CAgCsD,CApBtD;;IACA,iBAAiC,IAAID,kGAAJ,EAAjC;IAgBU,kBAAa,IAAI7jC,wDAAJ,EAAb;EAIT;;EApFoB,IAAjBokC,iBAAiB;IACjB,OAAO,KAAKzR,SAAL,CAAeoC,WAAtB;EACH;;EACoB,IAAjBqP,iBAAiB,CAAC/iC,GAAD,EAAI;IACrB;IACA;MACI,KAAKsxB,SAAL,CAAeoC,WAAf,GAA6B1zB,GAA7B;MACA,KAAK0zB,WAAL,GAAmB,KAAKpC,SAAL,CAAeoC,WAAlC;MACA,KAAKsP,oBAAL,CAA0BtP,WAA1B,GAAwC1zB,GAAxC;IACH;EACJ;;EAGe,IAAZoyB,YAAY;IACZ,OAAO,KAAKd,SAAL,CAAec,YAAtB;EACH;;EACe,IAAZA,YAAY,CAACpyB,GAAD,EAAI;IAChB;IACA;MACI,KAAKsxB,SAAL,CAAec,YAAf,GAA8BpyB,GAA9B;MACA,KAAKijC,eAAL,GAAuB,KAAK3R,SAAL,CAAegB,eAAtC,CAFJ,CAGI;IACH;EACJ;;EAGe,IAAZ4Q,YAAY;IACZ,IAAI,KAAK5R,SAAL,CAAegB,eAAf,CAA+BC,WAAnC,EAAgD;MAC5C,OAAO,KAAKjB,SAAL,CAAegB,eAAf,CAA+BC,WAA/B,CAA2C4Q,OAAlD;IACH;;IACD,OAAO,KAAP;EACH;;EACe,IAAZD,YAAY,CAACljC,GAAD,EAAI;IAChB,IAAI,KAAKsxB,SAAL,CAAegB,eAAf,CAA+BC,WAAnC,EAAgD;MAC5C,KAAKjB,SAAL,CAAegB,eAAf,CAA+BC,WAA/B,CAA2C4Q,OAA3C,GAAqDnjC,GAArD;IACH;EACJ;;EAGe,IAAZojC,YAAY;IACZ,IAAI,KAAK9R,SAAL,CAAegB,eAAf,CAA+BE,WAAnC,EAAgD;MAC5C,OAAO,KAAKlB,SAAL,CAAegB,eAAf,CAA+BE,WAA/B,CAA2C2Q,OAAlD;IACH;;IACD,OAAO,KAAP;EACH;;EACe,IAAZC,YAAY,CAACpjC,GAAD,EAAI;IAChB,IAAI,KAAKsxB,SAAL,CAAegB,eAAf,CAA+BE,WAAnC,EAAgD;MAC5C,KAAKlB,SAAL,CAAegB,eAAf,CAA+BE,WAA/B,CAA2C2Q,OAA3C,GAAqDnjC,GAArD;IACH;EACJ;;EAIkB,IAAfijC,eAAe;IACf,OAAO,KAAKD,oBAAZ;EACH;;EACkB,IAAfC,eAAe,CAACjjC,GAAD,EAAI;IAEnBA,GAAG,CAAC0zB,WAAJ,GAAkB,KAAKl0B,IAAL,CAAUk0B,WAA5B;IACA,KAAKsP,oBAAL,GAA4BhjC,GAA5B;IACA,KAAKR,IAAL,CAAU8yB,eAAV,GAA4BtyB,GAA5B;EACH;;EAKO,IAAJR,IAAI;IACJ,OAAO,KAAK8xB,SAAZ;EACH;;EACO,IAAJ9xB,IAAI,CAACQ,GAAD,EAAI;IACR,IAAIA,GAAJ,EAAS;MACL,KAAKsxB,SAAL,GAAiBtxB,GAAjB;MACAA,GAAG,CAACsyB,eAAJ,CAAoBoB,WAApB,GAAkC1zB,GAAG,CAAC0zB,WAAtC;MACA,KAAKuP,eAAL,GAAuBjjC,GAAG,CAACsyB,eAA3B;MACA,KAAKoB,WAAL,GAAmB1zB,GAAG,CAAC0zB,WAAvB;MACA,KAAKtB,YAAL,GAAoBpyB,GAAG,CAACoyB,YAAxB;MACA,KAAKb,UAAL,CAAgB5wB,IAAhB,CAAqB,KAAK2wB,SAA1B;IACH;EACJ;;EAQDr1B,QAAQ;IACJ,KAAK6mC,gBAAL,CAAsBO,SAAtB,GAAkC9mC,SAAlC,CAA4C+mC,MAAM,IAAG;MACjD,KAAKC,aAAL,GAAqBD,MAArB;IACH,CAFD;EAGH;;EAEKE,uBAAuB;IAAA;MACzB,MAAMtsB,MAAM,SAASxC,uFAAA,CAA4B,IAAIL,uEAAJ,CAAwB,uEAAxB,CAA5B,EACjB,IAAIA,uEAAJ,CAAwB,SAAxB,CADiB,EACmBG,8FADnB,EACiDC,sFADjD,CAArB;;MAEA,IAAIyC,MAAM,KAAKgjB,qFAAf,EAAqC;QACjC,OAAO,IAAP;MACH,CAFD,MAGK,OAAO,KAAP;IANoB;EAO5B;;EAEDwJ,qBAAqB,CAAC12B,EAAD,EAAG;IACpB,KAAK22B,aAAL,GAAqB32B,EAArB;IACA,KAAK42B,mBAAL,GAA2B,IAA3B;EACH;;EAEDC,wBAAwB;IACpB,KAAKF,aAAL,GAAqB,IAArB;IACA,KAAKC,mBAAL,GAA2B,KAA3B;EACH;;EAEDE,IAAI;IACA,KAAKC,WAAL,GAAmB,CAAC,KAAKA,WAAzB;EACH;;EAEDC,gBAAgB;IACZ,KAAKC,cAAL,CAAoBtjC,IAApB,CAAyB,KAAK2wB,SAA9B;EACH;;AAjI8B;AAEjBuR,kDAAkD,IAAI7hB,0CAAJ,EAAlD;;;;;;;;UAIbniB,kDAAMA;;;UAKND,iDAAKA;;;UAaLA,iDAAKA;;;UAaLA,iDAAKA;;;UAaLA,iDAAKA;;;UAcLA,iDAAKA;;;UAaLA,iDAAKA;;;UAeLC,kDAAMA;;;AA5FEgkC,sBAAsB,uDALlCjnC,yDAAS,CAAC;EACP4C,QAAQ,EAAE,yBADH;EAEPC,UAAAA,qEAFO;;AAAA,CAAD,CAKyB,GAAtBokC,sBAAsB,CAAtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtB6B;AACiB;AACqC;AACF;AACyB;AACvB;IAOnF,yBAAyB,SAAzB,yBAAyB;;QAElC,SAAI,GAAwB,IAAI,kGAAmB,EAAE,CAAC;QACtD,wBAAmB,GAAY,IAAI,CAAC;QACpC,kBAAa,GAAG,CAAC;gBACb,OAAO,EAAE,aAAa;aACzB,CAAC,CAAC;QACH,oBAAe,GAAG,KAAK,CAAC;IA0B5B,CAAC;IAxBG,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,EAAE;YACN,IAAI,IAAI,CAAC,IAAI,EAAE;gBACX,MAAM,IAAI,GAAG,4DAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,CAAC,IAAI,GAAG,8DAAW,CAAC,kGAAmB,EAAE,IAAI,CAAC,CAAC;gBACnD,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;oBACtC,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;iBACxD;gBACD,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;oBAC3B,MAAM,MAAM,GAAG,4DAAS,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBACpD,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;wBAC7B,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,8DAAW,CAAC,yHAAyB,EAAE,MAAM,CAAC,CAAC;qBAC9E;yBAAM;wBACH,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,8DAAW,CAAC,gGAAe,EAAE,MAAM,CAAC,CAAC;qBACpE;iBACJ;aACJ;SACJ;IACL,CAAC;IAED,eAAe;QACX,wHAA2C,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;;AAhCQ,yBAAyB;IALrC,wDAAS,CAAC;QACP,QAAQ,EAAE,6BAA6B;QACvC,mFAA+C;;KAElD,CAAC;GACW,yBAAyB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACZoG;AACjE;AACZ;IAShD,2BAA2B,SAA3B,2BAA2B;IAiBpC,YAAY;IAEZ,YAAoB,SAAoD,EAAkC,IAAS,EAAU,eAAyC,EAAU,WAAwB;QAApL,cAAS,GAAT,SAAS,CAA2C;QAAkC,SAAI,GAAJ,IAAI,CAAK;QAAU,oBAAe,GAAf,eAAe,CAA0B;QAAU,gBAAW,GAAX,WAAW,CAAa;QAH9L,qBAAgB,GAAG,IAAI,uDAAY,EAAE;QAI3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;IAClC,CAAC;QAdG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;IAUD,QAAQ;QACJ,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED,SAAS;QACL,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI;QACA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;;;;4CAf0E,iDAAM,SAAC,qEAAe;;;;;yBAZhG,gDAAK;+BASL,iDAAM;;AAhBE,2BAA2B;IAPvC,wDAAS,CAAC;QACP,QAAQ,EAAE,6BAA6B;QACvC,oFAAkD;QAElD,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GAEW,2BAA2B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXoH;AACnF;AACF;AAEmB;AAC7B;IAQhD,sBAAsB,SAAtB,sBAAsB;IAW/B,YAAoB,SAA+B,EAAkC,IAAS,EAAU,eAAyC,EAAU,WAAwB;QAA/J,cAAS,GAAT,SAAS,CAAsB;QAAkC,SAAI,GAAJ,IAAI,CAAK;QAAU,oBAAe,GAAf,eAAe,CAA0B;QAAU,gBAAW,GAAX,WAAW,CAAa;QAPnL,kBAAa,GAAG,EAAE,CAAC;QAQf,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE;YAC1G,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;YAC5B,IAAI,gGAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBACpE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAChD,IAAI,CAAC,MAAM,GAAG,gGAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACjF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBACzC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;oBACrB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBAChD;aACJ;SACJ;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACnC;IACL,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,IAAI,IAAI,GAAG,IAAI,CAAC;gBAChB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;oBACrB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;iBAC9B;gBACD,IAAI,IAAI,EAAE;oBACN,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;oBACnE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;oBAClE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;oBAC/B,IAAI,IAAI,CAAC,SAAS,EAAE;wBAChB,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;4BAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gCAChE,IAAI,KAAK,EAAE;oCACP,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;wCACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK;oCACzC,CAAC,CAAC;iCACL;4BACL,CAAC,CAAC;yBACL;6BAAM;4BACH,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gCACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK;4BACzC,CAAC,CAAC;yBACL;wBACD,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;qBACtC;iBACJ;gBACD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;oBACpB,cAAc;iBACjB;aACJ;SACJ;IACL,CAAC;IAED,qBAAqB,CAAC,MAAM;QACxB,IAAI,MAAM,EAAE;YACR,IAAI,MAAM,CAAC,OAAO,EAAE;gBAChB,MAAM,CAAC,OAAO,EAAE,CAAC;aACpB;YACD,IAAI,MAAM,CAAC,YAAY,EAAE;gBACrB,IAAI,MAAM,CAAC,WAAW,IAAI,4EAAe,EAAE;oBACvC,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC;oBACvC,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE;wBAC/E,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;4BACzB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;yBAC/C;wBACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;oBAC7C,CAAC,CAAC,CAAC;iBACN;qBAAM;oBACH,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;wBACzB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;qBAC/C;oBACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;iBAC5C;aACJ;SACJ;IACL,CAAC;;;;4CA/EqD,iDAAM,SAAC,qEAAe;;;;;+BAT3E,oDAAS,SAAC,SAAS,EAAE,EAAE,IAAI,EAAE,2DAAgB,EAAE;;AAFvC,sBAAsB;IANlC,wDAAS,CAAC;QACP,QAAQ,EAAE,0BAA0B;QACpC,+EAA2C;QAE3C,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,sBAAsB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACbgC;AACI;AACQ;AACzB;IAOzC,eAAe,SAAf,eAAe;;QACxB,cAAS,GAAG,EAAE,CAAC;IAoEnB,CAAC;IAlEG,MAAM,CAAC,UAAU,CAAC,MAAM;QACpB,0EAAqB,CAAC;YAClB,WAAW,EAAE,eAAe;YAC5B,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;YAC5B,KAAK,EAAE,oBAAoB;YAC3B,OAAO,EAAE,4EAAe;SAC3B,CAAC,CAAC;IACP,CAAC;IAEO,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,QAAQ,GAAG,QAAQ,EAAE;YACrB,OAAO,CAAC,CAAC,CAAC;SACb;QACD,IAAI,QAAQ,GAAG,QAAQ,EAAE;YACrB,OAAO,CAAC,CAAC;SACZ;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAEO,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI;QAC/B,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBACrC,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBAC3B,IAAI,CAAC,IAAI,EAAE;wBACP,IAAI,GAAG,EAAE,CAAC;wBACV,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;qBAC1B;oBACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACxB;YACL,CAAC,CAAC,CAAC;SACN;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACtB,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;YACrB,MAAM,IAAI,GAAG,EAAE,CAAC;YAChB,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACb,MAAM,IAAI,GAAG,IAAI,oFAAa,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACjB,MAAM,KAAK,GAAG,IAAI,oFAAa,CAAC,EAAE,EAAE,CAAC,CAAC;oBACtC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;oBACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBACzC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC9B;IACL,CAAC;;AApEQ,eAAe;IAL3B,wDAAS,CAAC;QACP,QAAQ,EAAE,mBAAmB;QAC7B,yEAAqC;QACrC,eAAe,EAAE,yEAA8B;KAClD,CAAC;GACW,eAAe;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACVc;AAC6B;AAChB;IAM1C,gBAAgB,SAAhB,gBAAgB;;QACzB,WAAM,GAAG,KAAK,CAAC;IAkBnB,CAAC;IAhBG,MAAM,CAAC,UAAU,CAAC,OAAO;QACrB,0EAAqB,CAAC;YAClB,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,4EAAe;YACxB,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACX,OAAO,CAAC,CAAC,CAAC,CAAC;gBACX,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,KAAK,EAAE,cAAc;SACxB,CAAC,CAAC;IACP,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;;AAlBQ,gBAAgB;IAJ5B,wDAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;QAC9B,0EAAwC;KAC3C,CAAC;GACW,gBAAgB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACR7B;AACA;AACA;AACA;AACA;AACA;AAEA;IAQaqB,UAAU,SAAVA,UAAU;EAInBjlC,YAAYogC,SAAZ,EAAiF/5B,IAAjF,EAA0F;IAAT;IAC7E,KAAKg6B,UAAL,GAAkBh6B,IAAI,CAAC9F,IAAvB;IACA6/B,SAAS,CAACE,YAAV,GAAyBj6B,IAAI,CAAC9F,IAAL,IAAa8F,IAAI,CAAC9F,IAAL,CAAUsgC,OAAV,KAAsBtrB,wFAA5D;EACH;;AAPkB;;;;;;;UAI+B4Y,iDAAMA;IAAAnhB,OAAC+yB,qEAAD;;;;AAJ/CkF,UAAU,uDANtBtoC,wDAAS,CAAC;EACP4C,QAAQ,EAAE,YADH;EAEPC,UAAAA,+DAFO;EAIPgP,eAAe,EAAEf,yEAJV;;AAAA,CAAD,CAMa,GAAVw3B,UAAU,CAAV;AAAAA;AAUP,MAAOxvB,gBAAP,CAAuB;EACF,OAAVoJ,UAAU,CAACqmB,OAAD,EAA+BC,KAA/B,EAA4DC,OAA5D,EAAyF9+B,IAAzF,EACnB+D,KADmB,EACHo2B,MADG,EACc4E,aADd,EACsD;IAAA;MACzE,MAAM9yB,MAAM,GAAG,IAAIstB,qEAAJ,EAAf;;MACA,IAAI,CAACsF,KAAL,EAAY;QACRA,KAAK,GAAG,IAAI/vB,uEAAJ,CAAwB,cAAxB,CAAR;MACH;;MACD7C,MAAM,CAAClM,IAAP,GAAc;QACV9F,IAAI,EAAE;UACF+kC,OAAO,EAAEJ,OADP;UAEFvE,KAAK,EAAEwE,KAFL;UAGFtE,OAAO,EAAG,OAAOuE,OAAP,KAAmB,QAApB,GAAgCA,OAAhC,GAA0C7vB,4FAHjD;UAIFhP,IAAI,EAAED,IAAI,IAAIkP,kFAJZ;UAKF+vB,aAAa,EAAEF,aAAa,IAAI;QAL9B;MADI,CAAd;;MASA,IAAI,OAAOh7B,KAAP,KAAiB,QAArB,EAA+B;QAC3BkI,MAAM,CAAClI,KAAP,GAAeA,KAAK,GAAG,IAAvB;MACH,CAFD,MAEO;QACHkI,MAAM,CAAClI,KAAP,GAAe,OAAf;MACH;;MACD,IAAI,OAAOo2B,MAAP,KAAkB,QAAtB,EAAgC;QAC5BluB,MAAM,CAACkuB,MAAP,GAAgBA,MAAM,GAAG,IAAzB;MACH;;MACDluB,MAAM,CAACizB,QAAP,GAAkB,MAAlB;MACAjzB,MAAM,CAAC8uB,SAAP,GAAmB,MAAnB;MACA9uB,MAAM,CAACmvB,SAAP,GAAmBrsB,oEAAA,IAAuB,KAAvB,GAA+B,KAA/B,GAAuC,KAA1D;MACA,MAAM+qB,SAAS,GAAGJ,sFAAA,CAAiCiF,UAAjC,EAA6C1yB,MAA7C,CAAlB;MACA,MAAM0F,MAAM,SAASmoB,SAAS,CAAC0B,WAAV,GAAwB3I,SAAxB,EAArB;MACA,OAAOlhB,MAAP;IA3ByE;EA4B5E;;AA9BwB;;;;;;;;;;;;;;;;;;;;;;;ACzBsC;AAEN;AACU;AAChB;IAO1C,mBAAmB,SAAnB,mBAAmB;IAU5B;QATA,aAAQ,GAAqB,IAAI,CAAC;QAClC,aAAQ,GAAqB,IAAI,CAAC;QAClC,aAAQ,GAAG,KAAK,CAAC;QAEjB,kBAAa,GAAG;YACZ,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,IAAI;SACjB,CAAC;IAGF,CAAC;IACD,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,EAAE;YACN,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAChC,IAAI,CAAC,QAAQ,GAAG;oBACZ,IAAI,EAAE,IAAI,CAAC,QAAQ;oBACnB,QAAQ,EAAE,MAAM;iBACnB,CAAC;gBACF,IAAI,CAAC,QAAQ,GAAG;oBACZ,IAAI,EAAE,IAAI,CAAC,QAAQ;oBACnB,QAAQ,EAAE,MAAM;iBACnB,CAAC;gBACF,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;aACzB;iBAAM;gBACH,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACf,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;iBACjC;qBAAM;oBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;iBACxB;aACJ;SACJ;QAED,IAAI,2EAAuB,EAAE;YACzB,IAAI,uFAAmC,EAAE;gBACrC,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,SAAS,CAAC;aACxC;iBAAM;gBACH,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;aACnC;SACJ;IACL,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK;QAC7B,0EAAqB,CAAC;YAClB,WAAW,EAAE,mBAAmB;YAChC,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,4EAAe;YACxB,UAAU,EAAE,OAAO;YACnB,SAAS,EAAE,OAAO;SACrB,CAAC,CAAC;IACP,CAAC;;;AAnDQ,mBAAmB;IAL/B,wDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,6EAA2C;QAC3C,eAAe,EAAE,yEAA8B;KAClD,CAAC;GACW,mBAAmB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACXsD;AACxC;AACyB;AACF;AACU;AACxB;IAO1C,mBAAmB,SAAnB,mBAAmB;IA2B5B,YAAoB,OAAiC,EAAU,KAAwB;QAAnE,YAAO,GAAP,OAAO,CAA0B;QAAU,UAAK,GAAL,KAAK,CAAmB;QA1BvF,WAAM,GAAG,EAAE,CAAC;QACZ,YAAO,GAAG,IAAI,CAAC;QACf,kBAAa,GAAG;YACZ,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,IAAI;YACd,oBAAoB,EAAE,KAAK;SAC9B,CAAC;IAqBF,CAAC;IAnBD,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK;QAC7B,0EAAqB,CAAC;YAClB,WAAW,EAAE,mBAAmB;YAChC,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,4EAAe;YACxB,UAAU,EAAE,OAAO;YACnB,SAAS,EAAE,OAAO;SACrB,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK;QAC1C,mBAAmB,CAAC,UAAU,CAAC;YAC3B,QAAQ,EAAE,IAAI;YACd,cAAc,EAAE,WAAW;SAC9B,EAAE,KAAK,CAAC,CAAC;IACd,CAAC;IAKD,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,EAAE;YACN,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,KAAK,CAAC;gBACV,IAAI,IAAI,CAAC,MAAM,EAAE;oBACb,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;iBACnD;qBAAM;oBACH,KAAK,GAAG,IAAI,uEAAc,EAAE,CAAC;iBAChC;gBACD,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;gBAChB,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC7E,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7B,MAAM,IAAI,GAAG,EAAE,CAAC;wBAChB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BACf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;wBAC1C,CAAC,CAAC,CAAC;wBACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;qBACnD;oBACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;oBACrB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC/B,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACf,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;wBACtB,MAAM,SAAS,GAAG,EAAE,CAAC;wBACrB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;4BACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;4BACjC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBAC3B,CAAC,CAAC,CAAC;wBACH,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC;qBACpC;oBACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;wBACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC;qBAC3B;oBACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;wBAC3B,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;qBAChC;iBACJ;gBACD,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,4DAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC1F,IAAI,MAAM,EAAE;wBACR,MAAM,IAAI,GAAG,EAAE,CAAC;wBAChB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BACf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;wBAC1C,CAAC,CAAC,CAAC;wBACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBAClC;oBACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;oBACrB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC/B,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;;;;;;AAjFQ,mBAAmB;IAL/B,wDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,6EAA2C;QAC3C,eAAe,EAAE,yEAA8B;KAClD,CAAC;GACW,mBAAmB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACZU;AACY;IAOzC,+BAA+B,SAA/B,+BAA+B;IAI1C,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO;QACxD,0EAAqB,CAAC;YACpB,WAAW,EAAE,+BAA+B;YAC5C,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE;gBACR,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,SAAS;gBACpB,WAAW,EAAE,SAAS;aACvB;YACD,OAAO,EAAE,CAAC,CAAC,EAAE;gBACX,IAAI,CAAC,IAAI,OAAO,EAAE;oBAChB,OAAO,CAAC,CAAC,CAAC,CAAC;iBACZ;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,UAAU,EAAE,OAAO;YACnB,SAAS,EAAE,OAAO;SACnB,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,IAAI;QACb,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;YAC5C,IAAI,CAAC,QAAQ,GAAG;gBACd,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;gBACjC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;gBACjC,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC;SACH;IACH,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;;AApCU,+BAA+B;IAL3C,wDAAS,CAAC;QACT,QAAQ,EAAE,8BAA8B;QACxC,gFAA8C;;KAE/C,CAAC;GACW,+BAA+B;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACRkD;IAQjF,iBAAiB,SAAjB,iBAAiB;IAa1B,YAAoB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;QAZ5C,SAAI,GAAG,IAAI,CAAC;QACZ,gBAAW,GAAG,IAAI,CAAC;QACnB,eAAU,GAAG,KAAK,CAAC;QACnB,kBAAa,GAAG,CAAC;gBACb,OAAO,EAAE,aAAa;gBACtB,EAAE,EAAE,CAAC;aACR,EAAE;gBACC,OAAO,EAAE,aAAa;gBACtB,EAAE,EAAE,CAAC;aACR,CAAC,CAAC;QACH,wBAAmB,GAAG,IAAI,CAAC;QAC3B,WAAM,GAAG,IAAI,CAAC;IAEd,CAAC;IAED,QAAQ,KAAW,CAAC;IAEpB,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,EAAE;YACN,IAAI,IAAI,CAAC,IAAI,EAAE;gBACX,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aACzB;YACD,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;aACvC;SACJ;IACL,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,qBAAqB,CAAC,MAAM;QACxB,IAAI,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE;YAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;SAC3B;aAAM;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACtB;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;;;;;AAxCQ,iBAAiB;IAN7B,wDAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;QAC9B,0EAAwC;QAExC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,iBAAiB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACRqD;AACO;IAU7E,cAAc,SAAd,cAAc;IAIzB,YAAoB,SAAuC,EAAkC,IAAS;QAAlF,cAAS,GAAT,SAAS,CAA8B;QAAkC,SAAI,GAAJ,IAAI,CAAK;QACpG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;IAChC,CAAC;IAED,QAAQ;IACR,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;;;;4CAT6D,iDAAM,SAAC,qEAAe;;AAJzE,cAAc;IAN1B,wDAAS,CAAC;QACT,QAAQ,EAAE,iBAAiB;QAC3B,uEAAmC;QAEjC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,cAAc;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACXuB;AAC4B;IAQjE,eAAe,SAAf,eAAe;IAE1B,YACS,GAAqB,EACrB,MAA2B;QAD3B,QAAG,GAAH,GAAG,CAAkB;QACrB,WAAM,GAAN,MAAM,CAAqB;QAEtC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAElB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;;;;;;AAZU,eAAe;IAL3B,wDAAS,CAAC;QACT,QAAQ,EAAE,sBAAsB;QAChC,kFAAgD;;KAEjD,CAAC;GACW,eAAe;AAAA;;;;;;;;;;;;;;;;;;;;;;ACTc;AACY;IAMzC,+BAA+B,SAA/B,+BAA+B;IAIxC,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAAE,OAAO;QAC3C,0EAAqB,CAAC;YAClB,WAAW,EAAE,+BAA+B;YAC9C,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE;gBACR,gBAAgB,EAAE,gBAAgB;aACnC;YACD,OAAO,EAAE,CAAC,CAAC,EAAE;gBACX,IAAI,CAAC,IAAI,OAAO,EAAE;oBAChB,OAAO,CAAC,CAAC,CAAC,CAAC;iBACZ;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAG;YACpC,IAAI,CAAC,QAAQ,GAAG;gBACZ,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aAC1C,CAAC;SACH;IACH,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;;AA9BU,+BAA+B;IAJ3C,wDAAS,CAAC;QACP,QAAQ,EAAE,yBAAyB;QACnC,+EAA6C;KAChD,CAAC;GACW,+BAA+B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACP+E;AACtD;IAQxD,kBAAkB,SAAlB,kBAAkB;IAiC3B,YAAoB,OAA4B,EAAU,KAAwB;QAA9D,YAAO,GAAP,OAAO,CAAqB;QAAU,UAAK,GAAL,KAAK,CAAmB;QA/BlF,cAAS,GAAG,EAAE,CAAC;QAaL,2BAAsB,GAAG,IAAI,uDAAY,EAAO;QAC1D,YAAY;QAEZ,oBAAoB;QACpB,oBAAe,GAAG,IAAI,CAAC;QASb,qBAAgB,GAAG,IAAI,uDAAY,EAAO;QAG1C,uBAAkB,GAAG,IAAI,uDAAY,EAAO;IAGtD,CAAC;QA3BG,gBAAgB;QAChB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACtC,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG;QACpB,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC;QACjC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACjE,CAAC;QAOG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;IASD,QAAQ;QACJ,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YACvF,IAAI,SAAS,EAAE;gBACX,MAAM,IAAI,GAAG,EAAE,CAAC;gBAChB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAClB,IAAI,CAAC,IAAI,CAAC;wBACN,OAAO,EAAE,CAAC,CAAC,OAAO;wBAClB,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,KAAK,EAAE,EAAE;qBACZ,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW;QACP,MAAM,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACtC,IAAI,EAAE,IAAI,EAAE,CAAC,YAAY,EAAE;YACvB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC1B,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9D,IAAI,KAAK,EAAE;oBACP,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;iBAC5B;qBAAM;oBACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;iBACnB;YACL,CAAC,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAClD;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,eAAe,CAAC,IAAI;QAChB,MAAM,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACtC,IAAI,EAAE,EAAE;YACJ,IAAI,EAAE,CAAC,YAAY,EAAE;gBACjB,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9D,IAAI,KAAK,EAAE;oBACP,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;oBACzB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;iBACxB;qBAAM;oBACH,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC/E;aACJ;iBAAM;gBACH,EAAE,CAAC,YAAY,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;aAC7E;YACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC/B;IACL,CAAC;IAED,oBAAoB;QAChB,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;;;;;;;+BApFA,gDAAK;qCASL,iDAAM;yBAKN,gDAAK;+BAQL,iDAAM;iCAGN,iDAAM;;AA/BE,kBAAkB;IAN9B,wDAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,2EAAyC;QAEzC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACT+D;AACvB;AACI;AACpB;IAQ1C,iBAAiB,SAAjB,iBAAiB;IA0B1B,YAAoB,OAA2B,EAAU,KAAwB;QAA7D,YAAO,GAAP,OAAO,CAAoB;QAAU,UAAK,GAAL,KAAK,CAAmB;QAxBjF,eAAU,GAAG,KAAK,CAAC;QACnB,kBAAa,GAAG,CAAC;gBACb,OAAO,EAAE,aAAa;gBACtB,EAAE,EAAE,CAAC;aACR,EAAE;gBACC,OAAO,EAAE,aAAa;gBACtB,EAAE,EAAE,CAAC;aACR,CAAC,CAAC;QACH,wBAAmB,GAAG,IAAI,CAAC;QAG3B,YAAO,GAAG,IAAI,CAAC;IAcf,CAAC;IAZM,MAAM,CAAC,UAAU,CAAC,GAAW;QAChC,IAAI,GAAG,EAAE;YACL,0EAAqB,CAAC;gBAClB,WAAW,EAAE,iBAAiB;gBAC9B,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;gBACtB,KAAK,EAAE,wBAAwB;gBAC/B,OAAO,EAAE,8EAAiB;aAC7B,CAAC,CAAC;SACN;IACL,CAAC;IAKD,QAAQ;QACJ,IAAI,IAAI,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBAC5D,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;gBAC/B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IAED,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE;YAClB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;SACvB;IACL,CAAC;IAED,qBAAqB,CAAC,MAAM;QACxB,IAAI,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE;YAC3B,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBAC1C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,MAAM,OAAO,GAAG;oBACZ,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG;oBAC9B,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU;oBAC5C,YAAY,EAAE,EAAE;iBACnB,CAAC;gBACF,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;oBACpC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBAC3C,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,EAAE;4BACpB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;gCACtB,IAAI,EAAE,CAAC,CAAC,IAAI;gCACZ,KAAK,EAAE,CAAC,CAAC,KAAK;6BACjB,CAAC,CAAC;yBACN;wBACD,OAAO,CAAC,CAAC,OAAO,CAAC;oBACrB,CAAC,CAAC,CAAC;iBACN;gBACD,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;aAC3D;SACJ;IACL,CAAC;;;;;;AAvEQ,iBAAiB;IAN7B,wDAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;QAC9B,0EAAwC;QAExC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,iBAAiB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACX9B;AACA;AACA;AACA;AACA;IAQa0tB,aAAa,SAAbA,aAAa;EA2CtB3lC,YAAoB4E,OAApB,EAA2C;IAAvB;IAxCpB,aAAQ,EAAR;IAUA,kBAAa,KAAb;IACA,qBAAgB,CAAC;MACbmD,OAAO,EAAE,aADI;MAEbX,EAAE,EAAE;IAFS,CAAD,EAGb;MACCW,OAAO,EAAE,aADV;MAECX,EAAE,EAAE;IAFL,CAHa,CAAhB;IAOA,2BAAsB,IAAtB;IACA,eAAU,IAAV;EAsBC;;EAvCO,IAAJsF,IAAI;IAEJ,OAAO,KAAKk5B,KAAZ;EACH;;EACO,IAAJl5B,IAAI,CAAC3L,GAAD,EAAI;IACR,KAAK6kC,KAAL,GAAa7kC,GAAb;EACH;;EAauB,OAAV8d,UAAU,CAACgnB,OAAD,EAAQ;IAC5B1F,0EAAA,CAAsB;MAClB4B,WAAW,EAAE4D,aADK;MAElBn+B,QAAQ,EAAE,IAFQ;MAGlBm5B,KAAK,EAAE,yBAHW;MAIlBE,OAAO,EAAEZ,8EAJS;MAKlB8C,OAAO,EAAE8C;IALS,CAAtB;EASH;;EAGDzC,eAAe;IAEX,OAAO,KAAKllC,MAAZ;EACH;;EAMDlB,QAAQ,IACP;;EAEDmlC,UAAU,CAAC97B,IAAD,EAAK,CAEd;;EAGKo8B,qBAAqB,CAAClH,MAAD,EAAO;IAAA;;IAAA;MAC9B,KAAI,CAACr9B,MAAL,GAAc,IAAd;;MACA,IAAIq9B,MAAM,IAAIA,MAAM,CAACn0B,EAAP,KAAc,CAA5B,EAA+B;QAC3B,IAAI,KAAI,CAACsF,IAAL,KAAc,EAAlB,EAAsB;UAClB,MAAMuL,MAAM,SAAS,KAAI,CAACrT,OAAL,CAAakhC,OAAb,CAAqB,KAAI,CAACF,KAA1B,EAAiCzM,SAAjC,EAArB;;UACI,IAAIlhB,MAAJ,EAAY;YAER,KAAI,CAAC/Z,MAAL,GAAc,EAAd;YACI,KAAI,CAACA,MAAL,CAAY,KAAZ,IAAqB+Z,MAAM,CAAC8tB,eAAP,CAAuB,CAAvB,CAArB;YACA,KAAI,CAAC7nC,MAAL,CAAY,MAAZ,IAAsB+Z,MAAM,CAAClQ,OAA7B;YACA,KAAI,CAAC7J,MAAL,CAAY,KAAZ,IAAqB+Z,MAAM,CAAC3V,GAA5B;YAGJojC,oFAAA,CAA2B,kBAAkB,KAAI,CAACxnC,MAAL,CAAY,KAAZ,CAA7C,EAAiE,8CAAjE;UACH;QACR;MACJ;IAhB6B;EAiBjC;;AAvEqB;;;;;;;;UAIrByB,gDAAKA;;;AAJGgmC,aAAa,sDANzBhpC,wDAAS,CAAC;EACP4C,QAAQ,EAAE,gBADH;EAEPC,UAAAA,4DAFO;EAIPgP,eAAe,EAAEf,yEAJV;;AAAA,CAAD,CAMgB,GAAbk4B,aAAa,CAAb;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZsD;AACI;AACQ;AACa;AAC3B;AACA;AACE;AAE5D,MAAM,4BAA4B;;QAErC,iBAAY,GAAa,EAAE,CAAC;IAGhC,CAAC;;IAOY,wBAAwB,SAAxB,wBAAwB;;QAEjC,wBAAmB,GAAG,IAAI,CAAC;QAC3B,kBAAa,GAAG;YACZ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,qFAAoB,EAAE;YAC7C,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,oFAAmB,EAAE;SACjD,CAAC;QACF,WAAM,GAAG,uFAAsB,CAAC;IAmWpC,CAAC;IAjWG,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO;QAC/C,MAAM,MAAM,GAAG,IAAI,OAAO,CAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7D,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,IAAI,OAAO,KAAK,OAAO,EAAE;gBACnD,MAAM,gBAAgB,GAAG,EAAE,CAAC;gBAC5B,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBAC1B,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;wBAC5B,MAAM,cAAc,GAAG,EAAE,CAAC;wBAC1B,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BAC1B,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE;gCAC5B,MAAM,IAAI,GAAG,uEAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gCACzC,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,EAAE;oCACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;oCACtD,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,iCAAiC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;oCAClG,IAAI,OAAO,EAAE;wCACT,cAAc,CAAC,IAAI,CAAC;4CAChB,MAAM,EAAE,GAAG;4CACX,eAAe,EAAE,IAAI;yCACxB,CAAC,CAAC;qCACN;iCACJ;6BACJ;wBACL,CAAC,CAAC,CAAC;wBACH,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;4BAC3B,gBAAgB,CAAC,IAAI,CAAC;gCAClB,QAAQ,EAAE,EAAE;gCACZ,cAAc,EAAE,cAAc;6BACjC,CAAC,CAAC;yBACN;qBACJ;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC7B,MAAM,QAAQ,GAAG,IAAI,4BAA4B,EAAE,CAAC;oBACpD,QAAQ,CAAC,IAAI,GAAG,8DAA8D,CAAC;oBAC/E,QAAQ,CAAC,QAAQ,GAAG,wBAAwB,CAAC;oBAC7C,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACzB,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACnD,CAAC,CAAC,CAAC;oBACH,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;oBAC1B,MAAM,IAAI,GAAe;wBACrB,WAAW,EAAE,wBAAwB;wBACrC,QAAQ,EAAE,QAAQ;wBAClB,OAAO,EAAE,8EAAiB;wBAC1B,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;4BACX,IAAI,CAAC,KAAK,qFAAoB,EAAE;gCAC5B,MAAM,KAAK,GAAG,IAAI,8FAA8B,EAAE,CAAC;gCACnD,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;gCAC3B,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oCAC1B,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;wCAC5B,IAAI,GAAG,CAAC,eAAe,EAAE;4CACrB,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,eAAe,CAAC;yCAC7C;oCACL,CAAC,CAAC,CAAC;oCACH,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;gCACtD,CAAC,CAAC,CAAC;gCACH,4FAAsC,CAAC,KAAK,CAAC,CAAC;6BACjD;4BACD,OAAO,CAAC,CAAC,CAAC,CAAC;4BACX,OAAO,IAAI,CAAC;wBAChB,CAAC;wBACD,KAAK,EAAE,wBAAwB;qBAClC,CAAC;oBACF,0EAAqB,CAAC,IAAI,CAAC,CAAC;oBAC5B,OAAO;iBACV;aACJ;YACD,OAAO,CAAC,qFAAoB,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY;QAC9E,MAAM,QAAQ,GAAG,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC;QACnD,MAAM,WAAW,GAAG;YAChB,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,EAAE;SAChB,CAAC;QACF,SAAS,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC;QAClC,IAAI,aAAa,CAAC,SAAS,EAAE;YACzB,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAChC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;SACN;QACD,IAAI,aAAa,CAAC,QAAQ,EAAE;YACxB,MAAM,UAAU,GAAG,CAAC,GAAG,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC1C,IAAI,aAAa,CAAC,WAAW,KAAK,UAAU,EAAE;gBAC1C,YAAY,IAAI,aAAa,CAAC,IAAI,GAAG,GAAG,CAAC;aAC5C;YACD,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACnC,wBAAwB,CAAC,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YAC7F,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAAC,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO;QAC5E,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE;YAC5B,eAAe,CAAC,SAAS,GAAG,EAAE,CAAC;YAC/B,wBAAwB,CAAC,mBAAmB,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,EAAE,eAAe,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SAC3G;QACD,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC7C,IAAI,CAAC,KAAK,UAAU,EAAE;gBAClB,MAAM,WAAW,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjD,OAAO,WAAW,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;aACxE;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,MAAM,CAAC,0BAA0B,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO;QACxE,MAAM,gBAAgB,GAAG,EAAE,CAAC;QAC5B,MAAM,EAAE,GAAG;YACP,MAAM,EAAE,MAAM;SACjB,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YAC1B,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;gBAC5B,MAAM,cAAc,GAAG,EAAE,CAAC;gBAC1B,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBAC1B,IAAI,GAAG,CAAC,QAAQ,EAAE;wBACd,IAAI,GAAG,CAAC,MAAM,KAAK,0BAA0B,EAAE;4BAC3C,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE;gCACjE,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ;oCAClC,wBAAwB,CAAC,kBAAkB,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE;oCAC3F,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;oCACtD,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC;oCAC7B,cAAc,CAAC,IAAI,CAAC;wCAChB,MAAM,EAAE,GAAG;wCACX,eAAe,EAAE,IAAI;qCACxB,CAAC,CAAC;iCACN;6BACJ;yBACJ;6BAAM,IAAI,GAAG,CAAC,MAAM,KAAK,+BAA+B,EAAE;4BACvD,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gCAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gCACtD,IAAI,MAAM,GAAG,KAAK,CAAC;gCACnB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCACvB,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,EAAE;wCACxB,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ;4CACvB,wBAAwB,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE;4CAChF,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC;4CACrB,MAAM,GAAG,IAAI,CAAC;yCACjB;qCACJ;gCACL,CAAC,CAAC,CAAC;gCACH,IAAI,MAAM,EAAE;oCACR,cAAc,CAAC,IAAI,CAAC;wCAChB,MAAM,EAAE,GAAG;wCACX,eAAe,EAAE,IAAI;qCACxB,CAAC,CAAC;iCACN;6BACJ;yBACJ;6BAAM,IAAI,GAAG,CAAC,MAAM,KAAK,yBAAyB,EAAE;4BACjD,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gCAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gCACtD,IAAI,MAAM,GAAG,KAAK,CAAC;gCACnB,IAAI,WAAW,GAAG,KAAK,CAAC;gCACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oCACpB,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;wCACpB,IAAI,CAAC,WAAW,EAAE;4CACd,WAAW,GAAG,IAAI,CAAC,QAAQ,KAAK,QAAQ;gDACpC,wBAAwB,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;4CACtF,IAAI,CAAC,WAAW,EAAE;gDACd,OAAO,IAAI,CAAC;6CACf;yCACJ;wCACD,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC;wCACjB,MAAM,GAAG,IAAI,CAAC;qCACjB;oCACD,OAAO,KAAK,CAAC;gCACjB,CAAC,CAAC,CAAC;gCACH,IAAI,MAAM,EAAE;oCACR,cAAc,CAAC,IAAI,CAAC;wCAChB,MAAM,EAAE,GAAG;wCACX,eAAe,EAAE,IAAI;qCACxB,CAAC,CAAC;iCACN;6BACJ;yBACJ;6BAAM,IAAI,GAAG,CAAC,MAAM,KAAK,8BAA8B,EAAE;4BACtD,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gCAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gCACtD,IAAI,MAAM,GAAG,KAAK,CAAC;gCACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCACtB,IAAI,WAAW,GAAG,KAAK,CAAC;oCACxB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wCACjB,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;4CACpB,IAAI,CAAC,WAAW,EAAE;gDACd,WAAW,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ;oDACjC,wBAAwB,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;gDACnF,IAAI,CAAC,WAAW,EAAE;oDACd,OAAO,IAAI,CAAC;iDACf;6CACJ;4CACD,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC;4CACjB,MAAM,GAAG,IAAI,CAAC;yCACjB;wCACD,OAAO,KAAK,CAAC;oCACjB,CAAC,CAAC,CAAC;gCACP,CAAC,CAAC,CAAC;gCACH,IAAI,MAAM,EAAE;oCACR,cAAc,CAAC,IAAI,CAAC;wCAChB,MAAM,EAAE,GAAG;wCACX,eAAe,EAAE,IAAI;qCACxB,CAAC,CAAC;iCACN;6BACJ;yBACJ;qBACJ;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3B,gBAAgB,CAAC,IAAI,CAAC;wBAClB,QAAQ,EAAE,EAAE;wBACZ,cAAc,EAAE,cAAc;qBACjC,CAAC,CAAC;iBACN;aACJ;QACL,CAAC,CAAC,CAAC;QACH,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,2BAA2B,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO;QACjE,MAAM,MAAM,GAAG,IAAI,OAAO,CAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7D,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,IAAI,OAAO,KAAK,OAAO,EAAE;gBACnD,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,0BAA0B,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gBACjH,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC7B,MAAM,QAAQ,GAAG,IAAI,4BAA4B,EAAE,CAAC;oBACpD,QAAQ,CAAC,IAAI,GAAG,8DAA8D,CAAC;oBAC/E,QAAQ,CAAC,QAAQ,GAAG,wBAAwB,CAAC;oBAC7C,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACzB,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACnD,CAAC,CAAC,CAAC;oBACH,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;oBAC1B,MAAM,IAAI,GAAe;wBACrB,WAAW,EAAE,wBAAwB;wBACrC,QAAQ,EAAE,QAAQ;wBAClB,OAAO,EAAE,8EAAiB;wBAC1B,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;4BACX,IAAI,CAAC,KAAK,qFAAoB,EAAE;gCAC5B,MAAM,KAAK,GAAG,IAAI,8FAA8B,EAAE,CAAC;gCACnD,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;gCAC3B,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oCAC1B,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;wCAC5B,IAAI,GAAG,CAAC,eAAe,EAAE;4CACrB,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,eAAe,CAAC;yCAC7C;oCACL,CAAC,CAAC,CAAC;oCACH,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;gCACtD,CAAC,CAAC,CAAC;gCACH,4FAAsC,CAAC,KAAK,CAAC,CAAC;6BACjD;4BACD,OAAO,CAAC,CAAC,CAAC,CAAC;4BACX,OAAO,IAAI,CAAC;wBAChB,CAAC;wBACD,KAAK,EAAE,wBAAwB;qBAClC,CAAC;oBACF,0EAAqB,CAAC,IAAI,CAAC,CAAC;oBAC5B,OAAO;iBACV;aACJ;YACD,OAAO,CAAC,qFAAoB,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY;QACrD,MAAM,MAAM,GAAG,IAAI,OAAO,CAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7D,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE;gBAC5B,MAAM,EAAE,GAAG,wBAAwB,CAAC,0BAA0B,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;gBAC7G,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;oBACf,MAAM,QAAQ,GAAG,IAAI,4BAA4B,EAAE,CAAC;oBACpD,QAAQ,CAAC,IAAI,GAAG,gEAAgE,CAAC;oBACjF,QAAQ,CAAC,QAAQ,GAAG,+BAA+B,CAAC;oBACpD,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACX,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACnD,CAAC,CAAC,CAAC;oBACH,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC;oBAC3B,MAAM,IAAI,GAAe;wBACrB,WAAW,EAAE,wBAAwB;wBACrC,QAAQ,EAAE,QAAQ;wBAClB,OAAO,EAAE,8EAAiB;wBAC1B,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;4BACX,OAAO,CAAC,CAAC,CAAC,CAAC;4BACX,OAAO,IAAI,CAAC;wBAChB,CAAC;wBACD,KAAK,EAAE,YAAY;qBACtB,CAAC;oBACF,0EAAqB,CAAC,IAAI,CAAC,CAAC;oBAC5B,OAAO;iBACV;aACJ;YACD,OAAO,CAAC,qFAAoB,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW;QACxC,MAAM,MAAM,GAAG,IAAI,OAAO,CAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7D,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE;gBAC5B,MAAM,gBAAgB,GAAG,EAAE,CAAC;gBAC5B,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBAC1B,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO;wBAC1B,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;4BACvB,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE;gCAC5B,MAAM,IAAI,GAAG,uEAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gCACzC,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,EAAE;oCACjC,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3B,IAAI,CAAC,kBAAkB,CAAC,iCAAiC,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;iCAC5F;6BACJ;4BACD,OAAO,KAAK,CAAC;wBACjB,CAAC,CAAC,EAAE;wBACJ,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;qBACrC;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC7B,MAAM,QAAQ,GAAG,IAAI,4BAA4B,EAAE,CAAC;oBACpD,QAAQ,CAAC,IAAI,GAAG,gEAAgE,CAAC;oBACjF,QAAQ,CAAC,QAAQ,GAAG,8BAA8B,CAAC;oBACnD,QAAQ,CAAC,YAAY,GAAG,gBAAgB,CAAC;oBACzC,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC;oBAC3B,MAAM,IAAI,GAAe;wBACrB,WAAW,EAAE,wBAAwB;wBACrC,QAAQ,EAAE,QAAQ;wBAClB,OAAO,EAAE,8EAAiB;wBAC1B,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;4BACX,OAAO,CAAC,CAAC,CAAC,CAAC;4BACX,OAAO,IAAI,CAAC;wBAChB,CAAC;wBACD,KAAK,EAAE,YAAY;qBACtB,CAAC;oBACF,0EAAqB,CAAC,IAAI,CAAC,CAAC;oBAC5B,OAAO;iBACV;aACJ;YACD,OAAO,CAAC,qFAAoB,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,UAAU,CAAC,IAAI;QACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE;YACnD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,uFAAsB,EAAE,CAAC,CAAC;SACnF;IACL,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,qBAAqB,CAAC,MAAM;QACxB,IAAI,MAAM,EAAE;YACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;SAC3B;IACL,CAAC;;AAzWQ,wBAAwB;IALpC,wDAAS,CAAC;QACP,QAAQ,EAAE,6BAA6B;QACvC,mFAAiD;QACjD,eAAe,EAAE,yEAA8B;KAClD,CAAC;GACW,wBAAwB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpBoE;AAClD;AACc;AACE;AACU;AACjD;AACuC;IAQ1D,mBAAmB,SAAnB,mBAAmB;IA6C5B,YAAoB,SAA0B,EAAU,KAAwB;QAA5D,cAAS,GAAT,SAAS,CAAiB;QAAU,UAAK,GAAL,KAAK,CAAmB;QAzChF,eAAU,GAAG,KAAK,CAAC;QACnB,kBAAa,GAAG,CAAC;gBACb,OAAO,EAAE,UAAU;gBACnB,EAAE,EAAE,CAAC;aACR,EAAE;gBACC,OAAO,EAAE,yBAAyB;gBAClC,EAAE,EAAE,CAAC;aACR,EAAE;gBACC,OAAO,EAAE,mBAAmB;gBAC5B,EAAE,EAAE,CAAC;aACR,EAAE;gBACC,OAAO,EAAE,aAAa;gBACtB,EAAE,EAAE,CAAC;aACR,CAAC,CAAC;QACH,wBAAmB,GAAG,KAAK,CAAC;QAE5B,YAAO,GAAG,IAAI,CAAC;QACf,kBAAa,GAAG;YACZ,QAAQ,EAAE,MAAM;SACnB,CAAC;IAuBF,CAAC;IAnBM,MAAM,CAAC,UAAU,CAAC,OAAe;QACpC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,OAAO,EAAE;gBACT,0EAAqB,CAAC;oBAClB,WAAW,EAAE,mBAAmB;oBAChC,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG;oBAC/B,KAAK,EAAE,qBAAqB;oBAC5B,OAAO,EAAE,8EAAiB;oBAC1B,UAAU,EAAE,OAAO;oBACnB,SAAS,EAAE,OAAO;oBAClB,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;wBACb,OAAO,CAAC,GAAG,CAAC,CAAC;oBACjB,CAAC;iBACJ,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAKD,QAAQ;QACJ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,QAAQ;QACf,IAAI,QAAQ,CAAC,OAAO,EAAE;YAClB,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;YAChC,iGAAwC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBACjD,IAAI,CAAC,aAAa,GAAG,8CAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;oBAClD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;gBAC9D,CAAC,CAAC,CAAC;gBACH,MAAM,YAAY,GAAG,mGAA0C,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACzE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBACpC,IAAI,MAAM,CAAC,KAAK,KAAK,0FAAwB;wBACzC,MAAM,CAAC,IAAI,KAAK,4DAA4D,EAAE;wBAC9E,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC;wBACrC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;wBAC3B,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE;4BACtB,UAAU,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;yBACnG;wBACD,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,KAAK,IAAI,EAAE;4BAC1C,IAAI,IAAI,CAAC,aAAa,EAAE;gCACpB,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;6BACpC;4BACD,YAAY,CAAC,WAAW,EAAE,CAAC;yBAC9B;qBACJ;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,SAAS,CAAC,MAAM;QACZ,UAAU,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvF,CAAC;IAED,qBAAqB,CAAC,MAAM;QACxB,IAAI,MAAM,EAAE;YACR,QAAQ,MAAM,CAAC,EAAE,EAAE;gBACf,KAAK,CAAC;oBACF,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC;oBACtE,MAAM;gBACV,KAAK,CAAC;oBACF,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;oBACrE,MAAM;gBACV,KAAK,CAAC;oBACF,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;oBAC7D,IAAI,IAAI,CAAC,aAAa,EAAE;wBACpB,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;qBACpC;oBACD,MAAM;gBACV,KAAK,CAAC;oBACF,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;oBAC7D,IAAI,IAAI,CAAC,aAAa,EAAE;wBACpB,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;qBACpC;oBACD,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;wBACpB,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;qBAC5C;oBACD,MAAM;aACb;SACJ;IACL,CAAC;;;;;;;qBA5GA,oDAAS,SAAC,QAAQ;;AAFV,mBAAmB;IAL/B,wDAAS,CAAC;QACP,QAAQ,EAAE,sBAAsB;QAChC,4EAA0C;QAC1C,eAAe,EAAE,yEAA8B;KAClD,CAAC;GACW,mBAAmB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdqB;AACsE;AAClE;AACA;AAEA;AACS;AACK;AACO;AACN;AACI;AAChB;AAEe;IAQ9D,mBAAmB,SAAnB,mBAAmB;IAsE5B,YAAoB,YAA0B,EAAU,SAAuB,EAAU,YAA6B,EAAU,KAAwB;QAApI,iBAAY,GAAZ,YAAY,CAAc;QAAU,cAAS,GAAT,SAAS,CAAc;QAAU,iBAAY,GAAZ,YAAY,CAAiB;QAAU,UAAK,GAAL,KAAK,CAAmB;QAxD9I,wBAAmB,GAAG,IAAI,wDAAY,EAAO;QAoB7C,oBAAe,GAAG,IAAI,wDAAY,EAAO;QAGzC,iBAAY,GAAG,IAAI,wDAAY,EAAO;QAgBhD,UAAK,GAAG,EAAE,CAAC;QACX,kBAAa,GAAC,EAAE,CAAC;QAEjB,SAAI,GAAG,CAAC,IAAI,CAAC,CAAC;QACd,iBAAY,GAAG,KAAK,CAAC;QAErB,mBAAc,GAAG,KAAK,CAAC;QACvB,cAAS,GAAG,KAAK,CAAC;QAClB,mBAAc,GAAG,CAAC,CAAC;QACnB,wBAAmB,GAAG,KAAK,CAAC;QAC5B,gBAAW,GAAG,KAAK,CAAC;QACpB,aAAQ,GAAG,KAAK,CAAC;QACjB,aAAQ,GAAG,IAAI,CAAC;QAGhB,YAAO,GAAG,KAAK,CAAC;IAGhB,CAAC;QAjEG,aAAa;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;QAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC3D,CAAC;QASG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC3C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SACzB;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACxB;QACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;QAQG,SAAS;QACT,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;YAChB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC5B;aAAM;YACH,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC7B;IACL,CAAC;IAsBD,QAAQ;QACJ,8EAA4B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,gBAAgB;IAChB,YAAY;QACR,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACnI,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC/B,CAAC;IACD,oBAAoB;QAChB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAChC,CAAC;IACD,YAAY;IACZ,YAAY,CAAC,IAAI;QACb,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACrB,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;SAC7B;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YAErB,IAAI,CAAC,aAAa,GAAG;gBACjB,SAAS,EAAE;oBACP,SAAS,EAAE;wBACP,IAAI,EAAE,gFAAgF;wBACtF,IAAI,EAAE,OAAO;qBAChB;iBACJ;gBACD,WAAW,EAAE,IAAI;gBACjB,YAAY,EAAE,GAAG,CAAE,+BAA+B;aACrD,CAAC;YAEF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;SAClD;IACL,CAAC;IACD,YAAY,CAAC,QAAQ;QACjB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,MAAM,GAAG,GAAG,mFAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC;gBAC3B,SAAS,EAAE;oBACP,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC9B;aACJ,CAAC,CAAC;QACP,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IACD,IAAI;QACA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;IACD,UAAU;QACN,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,oBAAoB,CAAC,OAAO;QACxB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACpB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAEhC,OAAO,CAAC,EAAE,EAAE;YACR,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SACjC;QAED,OAAO,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,UAAU;QACN,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5F,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM;QACF,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,MAAM,IAAI,GAAG,IAAI,uEAAmB,CAAC,8DAA8D,CAAC,CAAC;YACrG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvC,8FAA2B,CAAC,IAAI,EAAE,IAAI,uEAAmB,CAAC,YAAY,CAAC,EACnE,yFAAuB,EAAE,sFAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACvD,IAAI,CAAC,KAAK,qFAAoB,EAAE;oBAC5B,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBACpH;YACL,CAAC,CAAC,CAAC;SACV;aAAM;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,uEAAmB,CAAC,+DAA+D,CAAC,CAAC;YACtG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,8FAA2B,CAAC,IAAI,EAAE,IAAI,uEAAmB,CAAC,YAAY,CAAC,EACnE,yFAAuB,EAAE,sFAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACvD,IAAI,CAAC,KAAK,qFAAoB,EAAE;oBAC5B,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;wBACxE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACrD,IAAI,CAAC,OAAO,EAAE,CAAC;oBACnB,CAAC,CAAC,CAAC;iBACN;YACL,CAAC,CAAC,CAAC;SACV;IACL,CAAC;IACD,MAAM,CAAC,KAAK;QACR,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,QAAQ,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/B,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACpF,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC3E,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACzB,QAAQ,CAAC,CAAC,IAAI,EAAE;oBACZ,KAAK,qEAAkB;wBACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;wBACtB,MAAM;oBACV,KAAK,+EAA4B;wBAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;wBAC3D,IAAI,IAAI,CAAC,cAAc,KAAK,GAAG,EAAE;4BAC7B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;4BAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;4BACvB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;yBAC3B;wBACD,MAAM;oBACV,KAAK,yEAAsB;wBACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;wBAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;wBACf,MAAM;oBACV;wBACI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;wBACxB,MAAM;iBACb;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IACD,aAAa,CAAC,IAAI;QACd,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,QAAQ,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/B,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC/E,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACzB,QAAQ,KAAK,CAAC,IAAI,EAAE;oBAChB,KAAK,qEAAkB;wBACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;wBACtB,MAAM;oBACV,KAAK,+EAA4B;wBAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;wBACnE,IAAI,IAAI,CAAC,cAAc,KAAK,GAAG,EAAE;4BAC7B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;4BAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;4BACvB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;yBAC3B;wBACD,MAAM;oBACV,KAAK,yEAAsB;wBACvB,IAAI,CAAC,OAAO,EAAE,CAAC;wBACf,MAAM;oBACV;wBACI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;wBACxB,MAAM;iBACb;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IACD,OAAO;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;YACzE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBAC5B,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;aAC9C;iBAAM;gBACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;aACnB;YACD,IAAI,MAAM,EAAE;gBACR,MAAM,KAAK,GAAG,mFAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACnD,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACpB,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;wBACzC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;4BACpF,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;4BACjB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;wBAC/B,CAAC,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;qBACrE;oBACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;oBAC9E,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC3F,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBAClC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;aAExC;YACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,YAAY;QAER,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAC/C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACnF;aAAM;YACH,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;SACxC;IACL,CAAC;IAED,cAAc,CAAC,MAAM;QACjB,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;YACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SACxD;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC/B;QACD,IAAI,CAAC,WAAW,GAAC,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IACD,UAAU;QACN,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACzB,IAAI,MAAM,KAAK,IAAI,EAAE;gBACjB,IAAI,IAAI,MAAM,CAAC;aAClB;QACL,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,YAAY,CAAC,KAAK;QACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IACD,cAAc;QACV,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;;;;;;;;;4BAxTA,iDAAK;kCASL,kDAAM;wBAMN,iDAAK;8BAcL,kDAAM;2BAGN,kDAAM;wBAEN,iDAAK;;AAvCG,mBAAmB;IAN/B,yDAAS,CAAC;QACP,QAAQ,EAAE,mBAAmB;QAC7B,4EAA0C;QAE1C,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,mBAAmB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACrB2C;AACF;IAQ5D,kBAAkB,SAAlB,kBAAkB;IAM3B,YAAoB,SAA2C,EAAkC,IAAS;QAAtF,cAAS,GAAT,SAAS,CAAkC;QAAkC,SAAI,GAAJ,IAAI,CAAK;QAJ1G,cAAS,GAAG,IAAI,CAAC;QAKb,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACxC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACxC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;SACnC;IACL,CAAC;IAED,SAAS;QACL,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,aAAa;QACT,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,cAAc,CAAC,EAAE;QACb,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,KAAK,UAAU,EAAE;YAC/E,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;SACzC;IACL,CAAC;;;;4CApBiE,iDAAM,SAAC,qEAAe;;AAN/E,kBAAkB;IAN9B,wDAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,2EAAuC;QAEvC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACT/B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;IAQaY,0BAA0B,SAA1BA,0BAA0B;EA8CnCvmC,YAAoBwmC,EAApB,EAA6C5hC,OAA7C,EAAmF6hC,WAAnF,EAAqHxmC,KAArH,EAAuJymC,SAAvJ,EAAuLC,GAAvL,EAAuN5xB,QAAvN,EAAsQrB,QAAtQ,EAAwR;IAApQ;IAAyB;IAAsC;IAAkC;IAAkC;IAAgC;IAAgC;IAA+C;IA7B/P,aAAe,EAAf;IACA,gBAAkB,EAAlB;IACA,eAAU,EAAV;IACA,mBAAqB,EAArB;IACP,oBAAe,IAAf;IACA,qBAAgB,KAAhB;IACA,uBAAkB,KAAlB;IACA,qBAAuB,EAAvB;IAIA,sBAAiB,EAAjB;IACA,qBAAiC,EAAjC;IACA,qBAAgB,EAAhB;IACA,yBAAqC,EAArC;IACA,aAAQ,EAAR;IAEA,iBAAY,EAAZ;IAGA,wBAAmB,MAAM,IAAzB,CASwR,CATzP;;IAC/B,oBAAe,WAAf;IACA,eAAU,EAAV;IACA,cAAS,EAAT;IACA,oBAAwB,KAAxB;IAEA,qBAAwB,gBAAxB;IAII,KAAKkzB,OAAL,GAAelzB,QAAQ,CAAC4uB,QAAT,CAAkBuE,QAAlB,GAA6B,IAA7B,GAAoCnzB,QAAQ,CAAC4uB,QAAT,CAAkBwE,QAArE;IACA,MAAMC,MAAM,GAAG,KAAKC,aAAL,CAAmB,KAAKJ,OAAxB,EAAiCK,OAAjC,CAAyC,kBAAzC,EAA4D,EAA5D,CAAf;IACA,KAAKF,MAAL,GAAcA,MAAM,IAAI,WAAV,GAAwB,eAAxB,GAA0CA,MAAxD;EACH;;EAhDsB,OAAhBG,gBAAgB;IACnB,OAAO;MACHn/B,OAAO,EAAE,uBADN;MAEHX,EAAE,EAAE,qBAFD;MAGHb,IAAI,EAAE,iBAHH;MAIH/E,KAAK,EAAE,CAJJ;MAKH2O,MAAM,EAAE,UALL;MAMH3D,QAAQ,EAAE;QACNE,IAAI,EAAE,gDADA;QAENC,KAAK,EAAE;MAFD,CANP;MAUH3C,OAAO,EAAEu8B;IAVN,CAAP;EAYH;;EAsCDvpC,QAAQ;IACJ,KAAKmqC,SAAL;IACA,KAAKC,YAAL;IACA,KAAKC,YAAL,GAAoBC,gBAAgB,CAAC5zB,QAAQ,CAAC6zB,eAAV,CAAhB,CAA2CC,gBAA3C,CAA4D,iBAA5D,CAApB;EAEH;;EAGDL,SAAS;IACL,KAAKM,oBAAL,GAA4B,KAAKjB,EAAL,CAAQkB,KAAR,CAAc;MACtCC,EAAE,EAAE,CAAC,IAAD,CADkC;MAEtCC,OAAO,EAAE,CAAC,IAAD,EAAO1B,gEAAP,CAF6B;MAGtC4B,OAAO,EAAE,CAAC,IAAD,EAAO,CAAC5B,gEAAD,EAAsBA,iEAAA,CAAqB,EAArB,CAAtB,EAAgDA,+DAAA,CAAmB,iBAAnB,CAAhD,CAAP,CAH6B;MAItC+B,UAAU,EAAE,CAAC,GAAG,KAAKlB,MAAM,EAAf,EAAmBb,gEAAnB,CAJ0B;MAKtCgC,OAAO,EAAE,CAAC,KAAKtB,OAAN,EAAe,CAACV,gEAAD,CAAf,CAL6B;MAMtCiC,KAAK,EAAE,CAAC,IAAD,EAAO,CAACjC,gEAAD,EAAsBA,6DAAtB,CAAP,CAN+B;MAOtCmC,YAAY,EAAE,CAAC,IAAD,EAAOnC,gEAAP,CAPwB;MAQtCoC,gBAAgB,EAAE,CAAC,IAAD,EAAOpC,gEAAP,CARoB;MAStCqC,KAAK,EAAE,CAAC,IAAD,EAAOrC,gEAAP,CAT+B;MAUtCsC,aAAa,EAAE,CAAC,IAAD,EAAOtC,gEAAP,CAVuB;MAWzC;MACGuC,mBAAmB,EAAE,CAAC,IAAD,EAAOvC,gEAAP,CAZiB;MAatCwC,MAAM,EAAE,CAAC,IAAD,EAAO,CAACxC,gEAAD,EAAsBA,iEAAA,CAAqB,EAArB,CAAtB,EAAgDA,+DAAA,CAAmB,iBAAnB,CAAhD,CAAP,CAb8B;MActCyC,uBAAuB,EAAE,CAAC,IAAD,EAAO,CAACzC,gEAAD,EAAsBA,iEAAA,CAAqB,EAArB,CAAtB,CAAP,CAda;MAetC0C,mBAAmB,EAAE,CAAC,IAAD,EAAO,CAAC1C,gEAAD,CAAP,CAfiB;MAgBtC2C,IAAI,EAAE,CAAC,IAAD,CAhBgC;MAiBtCC,YAAY,EAAE,CAAC,KAAKzB,YAAN,CAjBwB;MAkBtC0B,WAAW,EAAE,CAAC,aAAD;IAlByB,CAAd,CAA5B;EAoBH;;EAEDC,gBAAgB,CAAClc,IAAD,EAAOmc,OAAP,EAAwB;IACpC,IAAInc,IAAJ,EAAU;MACN,MAAMoc,QAAQ,GAAGpc,IAAI,CAACQ,IAAL,CAAU1I,WAAV,EAAjB;MACA,MAAMukB,SAAS,GAAGD,QAAQ,CAACzkB,KAAT,CAAe,GAAf,EAAoB2kB,GAApB,EAAlB;MACA,MAAMC,SAAS,GAAGJ,OAAO,CAACK,QAAR,CAAiB,MAAMH,SAAvB,CAAlB,CAHM,CAIV;MACD;;MACK,IAAG,CAACE,SAAJ,EAAe;QACX;QACA;QACA;QACA3D,kFAAA,CAAyB,0CAA0CuD,OAAO,SAA1E,EAAqF,SAArF;MACH;;MACD,OAAOI,SAAP;IACH;;IACD,OAAO,IAAP,CAfoC,CAevB;EAChB;;EAEDE,aAAa,CAAC/qC,KAAD,EAAM;IACf,MAAM8uB,IAAI,GAAG9uB,KAAK,CAACyoC,OAAN,CAAc,KAAd,EAAqB,EAArB,CAAb;IACA,MAAMgB,UAAU,GAAG,GAAG,KAAKlB,MAAL,GAAc,GAAd,GAAoBzZ,IAAI,EAA9C;IACA,KAAKma,oBAAL,CAA0B+B,UAA1B,CAAqC;MACjCvB;IADiC,CAArC;EAGH;;EAEDwB,QAAQ;IACJ,IAAIC,IAAI,GAAG,EAAX;;IACA,IAAI,KAAKC,aAAT,EAAwB;MACpB,IAAI,KAAKC,WAAT,EAAsB;QAClB,MAAMC,OAAO,GAAG,KAAKD,WAAL,CAAiBhlB,WAAjB,EAAhB;QACA8kB,IAAI,GAAG,KAAKC,aAAL,CAAmBxoC,MAAnB,CAA0BhC,CAAC,IAAIA,CAAC,CAACuN,IAAF,CAAOkY,WAAP,GAAqBrZ,OAArB,CAA6Bs+B,OAA7B,IAAwC,CAAC,CAAxE,CAAP;MACH,CAHD,MAGO;QACHH,IAAI,CAACtsC,IAAL,CAAU,GAAG,KAAKusC,aAAlB;MACH;IACJ;;IACD,KAAKG,iBAAL,GAAyBJ,IAAzB;EACH;;EAEDK,QAAQ;IACJ,KAAK5C,SAAL;IACA,KAAK6C,aAAL,GAAqB,KAArB;IACA,KAAKC,YAAL;EACH;;EAEDC,MAAM,CAACC,GAAD,EAAI;IACN,KAAKF,YAAL,GADM,CAEP;;IACC,KAAKG,OAAL,GAAe,yBAAyBD,GAAG,CAACvC,OAAO,EAAnD;IACAuC,GAAG,CAACxC,EAAJ,GAAS,GAAT,CAJM,CAIO;;IACb,KAAKF,oBAAL,CAA0B+B,UAA1B,CAAqCW,GAArC,EALM,CAMP;EACF;;EAEDE,UAAU,CAACF,GAAD,EAAI;IACV,IAAIA,GAAG,CAACG,UAAJ,IAAkBH,GAAG,CAACG,UAAJ,CAAeC,IAAf,OAA0B,EAA5C,IAAkDJ,GAAG,CAACK,cAAtD,IAAwEL,GAAG,CAACK,cAAJ,CAAmBD,IAAnB,OAA8B,EAA1G,EAA+G;MAC3G,MAAME,MAAM,GAAG;QACXC,UAAU,EAAG,OADF;QAEXvF,KAAK,EAAE,SAFI;QAGXD,OAAO,EAAE,kHAHE;QAIX7+B,IAAI,EAAE8jC;MAJK,CAAf;MAMA,KAAKQ,aAAL,CAAmBF,MAAnB;IACH,CARD,MASI;MACA,KAAKG,yBAAL,CAA+BT,GAA/B;IACJ;EAGH;;EAGD/C,YAAY;IACR,KAAKyD,OAAL,CAAa,IAAb;IACA,KAAKC,aAAL,GAAqB,EAArB;IACA,KAAKlmC,OAAL,CAAawiC,YAAb,GAA4B9pC,SAA5B,CAAsC+gC,GAAG,IAAG;MACxC,IAAIA,GAAG,IAAIA,GAAG,EAAE0M,MAAL,IAAe,CAA1B,EAA6B;QACzB,MAAMrB,IAAI,GAAG,CAACrL,GAAD,CAAb;QACA,KAAKyM,aAAL,GAAqBpB,IAArB;;QACA,IAAGA,IAAI,CAAC,CAAD,CAAJ,CAAQY,UAAR,IAAsB,EAAtB,IAA4BZ,IAAI,CAAC,CAAD,CAAJ,CAAQc,cAAR,IAA0B,EAAzD,EAA4D;UAC1D,KAAKQ,YAAL,GAAoB,IAApB;UACA,KAAKC,WAAL,GAAmBvB,IAAI,CAAC,CAAD,CAAJ,CAAQwB,OAA3B;UACA,KAAKC,aAAL,GAAqB,eAArB;QACD;MACJ,CARD,MAQO;QACH,KAAKL,aAAL,GAAqB,EAArB;MACH;;MACD,KAAKD,OAAL,CAAa,KAAb;IACH,CAbD;EAcH;;EAEDO,UAAU,CAAC1nC,KAAD,EAAQ2nC,KAAR,EAAelC,SAAf,EAAwB;IAC9B,MAAMrc,IAAI,GAAGppB,KAAK,CAAC4a,MAAN,CAAauO,KAAb,CAAmB,CAAnB,CAAb;IACA,MAAMye,OAAO,GAAG,KAAKtC,gBAAL,CAAsBlc,IAAtB,EAA4Bqc,SAA5B,CAAhB;;IACA,IAAImC,OAAJ,EAAa;MACT,KAAK7D,oBAAL,CAA0B+B,UAA1B,CAAqC;QACjC,CAAC6B,KAAD,GAASve;MADwB,CAArC;IAGH,CAJD,MAIO;MACH,KAAK2a,oBAAL,CAA0B+B,UAA1B,CAAqC;QACjC,CAAC6B,KAAD,GAAS;MADwB,CAArC;IAGH;EACJ;;EAEKE,UAAU,CAAC7nC,KAAD,EAAQ2nC,KAAR,EAAelC,SAAf,EAAwB;IAAA;;IAAA;MACpC,MAAMrc,IAAI,GAAGppB,KAAK,CAAC4a,MAAN,CAAauO,KAAb,CAAmB,CAAnB,CAAb;;MACA,MAAM2e,UAAU,GAAG,KAAI,CAACxC,gBAAL,CAAsBlc,IAAtB,EAA4Bqc,SAA5B,CAAnB;;MACA,MAAMsC,WAAW,SAAS,KAAI,CAACC,uBAAL,CAA6B5e,IAA7B,CAA1B;;MACA,IAAI2e,WAAW,IAAID,UAAnB,EAA+B;QAC3B,KAAI,CAAC/D,oBAAL,CAA0B+B,UAA1B,CAAqC;UACjC,CAAC6B,KAAD,GAASve;QADwB,CAArC;;QAGA,KAAI,CAACsd,OAAL,SAAqB,KAAI,CAACuB,UAAL,CAAgB7e,IAAhB,CAArB;;QACA,KAAI,CAAC6Z,GAAL,CAAShlC,aAAT;MACH,CAND,MAMO;QACH,KAAI,CAAC8lC,oBAAL,CAA0B+B,UAA1B,CAAqC;UACjC,CAAC6B,KAAD,GAAS;QADwB,CAArC;;QAGA,KAAI,CAACjB,OAAL,GAAe,EAAf;MACH;;MACD,KAAI,CAACuB,UAAL,CAAgB7e,IAAhB;IAhBoC;EAiBvC;;EAED8e,OAAO,CAACloC,KAAD,EAAa;IAChB,MAAMopB,IAAI,GAAGppB,KAAK,CAAC4a,MAAN,CAAa,OAAb,EAAsB,CAAtB,KAA4B,IAAzC;;IACA,IAAIwO,IAAI,CAAC,MAAD,CAAJ,GAAe,KAAK+e,gBAAxB,EAA0C;MACtCnG,kFAAA,CAAyB,4EAAzB,EAAuG,SAAvG;MACA;IACH;;IACD,KAAKoG,iBAAL,GAAyBhf,IAAzB;;IACA,IAAI,KAAKgf,iBAAT,EAA4B;MACxB,MAAMhf,IAAI,GAAG,KAAKgf,iBAAlB;MACA,MAAM1O,MAAM,GAAG,IAAIC,UAAJ,EAAf;;MACAD,MAAM,CAACjpB,MAAP,GAAgB5F,CAAC,IAAG;QAChB,KAAKw9B,QAAL,GAAgB3O,MAAM,CAACl/B,MAAvB,CADgB,CAEhB;MACH,CAHD;;MAIAk/B,MAAM,CAACK,aAAP,CAAqB3Q,IAArB;IACH;EACJ;;EAED0R,UAAU,CAACrB,YAAD,EAAez2B,IAAf,EAAmB;IACzB,IAAIy2B,YAAJ,EAAkB;MACd,MAAM6O,MAAM,GAAG,KAAKvE,oBAAL,CAA0Bh4B,GAA1B,CAA8B,MAA9B,EAAsCjR,KAArD;MACA,MAAMytC,OAAO,GAAG;QAACnf,IAAI,EAAEqQ,YAAP;QAAqB+O,UAAU,EAAEF;MAAjC,CAAhB;MACA,OAAO,KAAKpnC,OAAL,CAAaunC,WAAb,CAAyBF,OAAzB,EAAkCzyB,IAAlC,CACH4sB,oDAAG,CAAC1jB,GAAG,IAAG;QACN,IAAIhc,IAAI,IAAI,WAAZ,EAAyB;UACrB,KAAK+gC,oBAAL,CAA0B+B,UAA1B,CAAqC;YACjC4C,YAAY,EAAE1pB,GAAG,CAAC2pB;UADe,CAArC;QAIH;;QACD,IAAI3lC,IAAI,IAAI,OAAZ,EAAqB;UACjB,KAAK4lC,SAAL,GAAiB,CAAC,GAAG,KAAKA,SAAT,EAAoB5pB,GAAG,CAAC2pB,QAAxB,CAAjB;QACH;MACJ,CAVE,CADA,CAAP;IAaH;;IACD,OAAO,IAAP;EACH;;EAEDzB,yBAAyB,CAAE2B,OAAF,EAAS;IAC9B,KAAK1B,OAAL,CAAa,IAAb;IAEA,KAAKjmC,OAAL,CAAa4nC,gBAAb,GAAgClvC,SAAhC,CAA0C;MAC1CJ,IAAI,EAAGmhC,GAAD,IAAQ;QACd,KAAKwM,OAAL,CAAa,KAAb;QACAnF,iFAAA,CAAwB,kHAAkH6G,OAAO,CAACpE,KAAK,EAAvJ,EAA2J,gBAA3J;QAEA,KAAKuE,OAAL;MACC,CANyC;MAO1Cv5B,KAAK,EAAEA,KAAK,IAAG;QACX,IAAGA,KAAK,CAACA,KAAN,CAAYkB,KAAZ,IAAqBlB,KAAK,CAACA,KAAN,CAAYkB,KAAZ,IAAqBuO,SAA7C,EAAuD;UACnD,KAAKioB,OAAL,CAAa,KAAb,EADmD,CAEnD;;UACA;QACH;MACJ;IAbyC,CAA1C;EAcH;;EAED8B,gBAAgB;IACZ,MAAMC,WAAW,GAAG,EAApB,CADY,CAEZ;;IACAtpC,MAAM,CAACC,IAAP,CAAY,KAAKkkC,oBAAL,CAA0BoF,QAAtC,EAAgD3tC,OAAhD,CAAwDmsC,KAAK,IAAG;MAC5D,MAAMyB,OAAO,GAAG,KAAKrF,oBAAL,CAA0Bh4B,GAA1B,CAA8B47B,KAA9B,CAAhB;;MACA,IAAIyB,OAAO,CAACC,OAAZ,EAAqB;QACjB,MAAMC,WAAW,GAAG3B,KAAK,CAACpE,OAAN,CAAc,iBAAd,EAAiC,OAAjC,CAApB;QACA2F,WAAW,CAACxvC,IAAZ,CAAiB4vC,WAAjB;MACH;IACJ,CAND;IAQA,OAAOJ,WAAP;EACH;;EACDK,WAAW;IACP,IAAI,KAAKxF,oBAAL,CAA0Bh4B,GAA1B,CAA8B,SAA9B,EAAyCy9B,QAAzC,CAAkD,SAAlD,CAAJ,EAAkE;MAC9DxH,kFAAA,CAAyB,gDAAzB,EAA2E,SAA3E;MACA;IACH;;IACD,IAAI,CAAC,KAAK+B,oBAAL,CAA0B0F,KAA/B,EAAsC;MAClC,MAAMC,aAAa,GAAG,KAAKT,gBAAL,EAAtB;;MACA,IAAGS,aAAa,CAACxuC,MAAd,GAAuB,CAA1B,EAA6B;QACzB8mC,kFAAA,CAAyB,+BAA+B0H,aAAa,CAAC9vB,IAAd,CAAmB,IAAnB,CAAwB,GAAhF,EAAqF,SAArF;MACH,CAFD,MAGK;QACDooB,kFAAA,CAAyB,8BAA8B0H,aAAa,CAAC9vB,IAAd,CAAmB,IAAnB,CAAwB,GAA/E,EAAoF,SAApF;MACH,CAPiC,CAQlC;;;MACA;IACH;;IACD,MAAMjX,IAAI,GAAG,KAAKohC,oBAAL,CAA0B4F,WAA1B,EAAb,CAhBO,CAiBP;;IACA,MAAMC,QAAQ,GAAG,IAAIxO,QAAJ,EAAjB;IACAwO,QAAQ,CAACvO,MAAT,CAAgB,SAAhB,EAA2B14B,IAAI,CAAC,SAAD,CAA/B;IACAinC,QAAQ,CAACvO,MAAT,CAAgB,SAAhB,EAA2B14B,IAAI,CAAC,SAAD,CAA/B;IACAinC,QAAQ,CAACvO,MAAT,CAAgB,YAAhB,EAA8B14B,IAAI,CAAC,YAAD,CAAlC;IACAinC,QAAQ,CAACvO,MAAT,CAAgB,SAAhB,EAA2B14B,IAAI,CAAC,SAAD,CAA/B;IACAinC,QAAQ,CAACvO,MAAT,CAAgB,OAAhB,EAAyB14B,IAAI,CAAC,OAAD,CAA7B;IACAinC,QAAQ,CAACvO,MAAT,CAAgB,cAAhB,EAAgC14B,IAAI,CAAC,cAAD,CAApC;IACAinC,QAAQ,CAACvO,MAAT,CAAgB,kBAAhB,EAAoC14B,IAAI,CAAC,kBAAD,CAAJ,CAAyBkkC,IAAzB,EAApC;IACA+C,QAAQ,CAACvO,MAAT,CAAgB,OAAhB,EAAyB14B,IAAI,CAAC,OAAD,CAAJ,CAAckkC,IAAd,EAAzB;IACA+C,QAAQ,CAACvO,MAAT,CAAgB,eAAhB,EAAiC14B,IAAI,CAAC,eAAD,CAAJ,CAAsBkkC,IAAtB,EAAjC;IACA+C,QAAQ,CAACvO,MAAT,CAAgB,2BAAhB,EAA6C14B,IAAI,CAAC,2BAAD,CAAjD;IACAinC,QAAQ,CAACvO,MAAT,CAAgB,qBAAhB,EAAuC14B,IAAI,CAAC,qBAAD,CAA3C;IACAinC,QAAQ,CAACvO,MAAT,CAAgB,qBAAhB,EAAuC14B,IAAI,CAAC,qBAAD,CAA3C;IACAinC,QAAQ,CAACvO,MAAT,CAAgB,QAAhB,EAA0B14B,IAAI,CAAC,QAAD,CAAJ,CAAekkC,IAAf,EAA1B;IACA+C,QAAQ,CAACvO,MAAT,CAAgB,yBAAhB,EAA2C14B,IAAI,CAAC,yBAAD,CAAJ,CAAgCkkC,IAAhC,EAA3C;IACA+C,QAAQ,CAACvO,MAAT,CAAgB,MAAhB,EAAwB14B,IAAI,CAAC,MAAD,CAA5B;IACAinC,QAAQ,CAACvO,MAAT,CAAgB,cAAhB,EAAgC14B,IAAI,CAAC,cAAD,CAApC;IACA,KAAKwkC,OAAL,CAAa,IAAb;IACA,KAAKjmC,OAAL,CAAaqoC,WAAb,CAAyBK,QAAzB,EAAmChwC,SAAnC,CAA8C+gC,GAAD,IAAQ;MACjD,KAAKwM,OAAL,CAAa,KAAb;MACAnF,oFAAA,CAA2B,6BAA3B,EAA0D,WAA1D;MACA,KAAKgH,OAAL;IACH,CAJD;EAKH;;EAEDa,aAAa;IACT,IAAI,KAAK9F,oBAAL,CAA0Bh4B,GAA1B,CAA8B,SAA9B,EAAyCy9B,QAAzC,CAAkD,SAAlD,CAAJ,EAAkE;MAC9DxH,kFAAA,CAAyB,gDAAzB,EAA2E,SAA3E;MACA;IACH;;IACD,MAAM8H,cAAc,GAAG,KAAKb,gBAAL,EAAvB;;IACA,MAAMc,WAAW,GAAG,CAAC,UAAD,EAAa,OAAb,EAAsB,UAAtB,EAAkC,SAAlC,EAA6C,2BAA7C,CAApB;;IACA,MAAML,aAAa,GAAGI,cAAc,CAACrsC,MAAf,CAAsBkqC,KAAK,IAAIoC,WAAW,CAACnE,QAAZ,CAAqB+B,KAArB,CAA/B,CAAtB;;IACA,IAAG+B,aAAa,IAAIA,aAAa,CAACxuC,MAAd,GAAuB,CAA3C,EAA8C;MAC1C,IAAGwuC,aAAa,CAACxuC,MAAd,GAAuB,CAA1B,EAA6B;QACzB8mC,kFAAA,CAAyB,+BAA+B0H,aAAa,CAAC9vB,IAAd,CAAmB,IAAnB,CAAwB,GAAhF,EAAqF,SAArF;MACH,CAFD,MAGK;QACDooB,kFAAA,CAAyB,8BAA8B0H,aAAa,CAAC9vB,IAAd,CAAmB,IAAnB,CAAwB,GAA/E,EAAoF,SAApF;MACH;;MACD;IACH;;IACD,MAAMjX,IAAI,GAAG,KAAKohC,oBAAL,CAA0B4F,WAA1B,EAAb,CAjBS,CAkBV;IACC;;IAEA,MAAMC,QAAQ,GAAG,IAAIxO,QAAJ,EAAjB;IACAwO,QAAQ,CAACvO,MAAT,CAAgB,SAAhB,EAA2B14B,IAAI,CAAC,SAAD,CAA/B;IACAinC,QAAQ,CAACvO,MAAT,CAAgB,YAAhB,EAA8B14B,IAAI,CAAC,YAAD,CAAlC;IACAinC,QAAQ,CAACvO,MAAT,CAAgB,SAAhB,EAA2B14B,IAAI,CAAC,SAAD,CAA/B;IACAinC,QAAQ,CAACvO,MAAT,CAAgB,OAAhB,EAAyB14B,IAAI,CAAC,OAAD,CAA7B;IACAinC,QAAQ,CAACvO,MAAT,CAAgB,OAAhB,EAAyB14B,IAAI,CAAC,OAAD,CAAJ,CAAckkC,IAAd,EAAzB;IACA+C,QAAQ,CAACvO,MAAT,CAAgB,MAAhB,EAAwB14B,IAAI,CAAC,MAAD,CAA5B;IACAinC,QAAQ,CAACvO,MAAT,CAAgB,QAAhB,EAA0B14B,IAAI,CAAC,QAAD,CAAJ,CAAekkC,IAAf,EAA1B;IACA+C,QAAQ,CAACvO,MAAT,CAAgB,yBAAhB,EAA2C14B,IAAI,CAAC,yBAAD,CAAJ,CAAgCkkC,IAAhC,EAA3C;;IACA,IAAIlkC,IAAI,CAAC,SAAD,CAAR,EAAqB;MACjBinC,QAAQ,CAACvO,MAAT,CAAgB,SAAhB,EAA2B14B,IAAI,CAAC,SAAD,CAA/B;IACH;;IACD,IAAIA,IAAI,CAAC,cAAD,CAAR,EAA0B;MACtBinC,QAAQ,CAACvO,MAAT,CAAgB,cAAhB,EAAgC14B,IAAI,CAAC,cAAD,CAApC;IACH;;IACD,IAAIA,IAAI,CAAC,kBAAD,CAAR,EAA8B;MAC1BinC,QAAQ,CAACvO,MAAT,CAAgB,kBAAhB,EAAoC14B,IAAI,CAAC,kBAAD,CAAJ,CAAyBkkC,IAAzB,EAApC;IACH;;IACD,IAAIlkC,IAAI,CAAC,eAAD,CAAR,EAA2B;MACvBinC,QAAQ,CAACvO,MAAT,CAAgB,eAAhB,EAAiC14B,IAAI,CAAC,eAAD,CAAJ,CAAsBkkC,IAAtB,EAAjC;IACH,CAzCQ,CA0CT;IACA;IACA;;;IACA,IAAIlkC,IAAI,CAAC,qBAAD,CAAR,EAAiC;MAC7BinC,QAAQ,CAACvO,MAAT,CAAgB,qBAAhB,EAAuC14B,IAAI,CAAC,qBAAD,CAA3C;IACH;;IACD,IAAIA,IAAI,CAAC,qBAAD,CAAR,EAAiC;MAC7BinC,QAAQ,CAACvO,MAAT,CAAgB,qBAAhB,EAAuC14B,IAAI,CAAC,qBAAD,CAA3C;IACH;;IACD,KAAKwkC,OAAL,CAAa,IAAb;IACA,KAAKjmC,OAAL,CAAa2oC,aAAb,CAA2BD,QAA3B,EAAqChwC,SAArC,CAAgD+gC,GAAD,IAAQ;MACnD,KAAKwM,OAAL,CAAa,KAAb;MACAnF,oFAAA,CAA2B,+BAA3B,EAA4D,WAA5D;MACA,KAAKgH,OAAL;IACH,CAJD;EAKH;;EAEDA,OAAO;IACH,KAAKtF,YAAL;IACA,KAAKsG,YAAL,GAAoB,IAApB;IACA,KAAK1D,aAAL,GAAqB,KAArB;EACH;;EAEDa,OAAO,CAACrsC,KAAD,EAAM;IACT1B,iFAAA,CAA2B0B,KAA3B;IACA,KAAKyB,KAAL,CAAW0B,aAAX;EACH;;EAEDsoC,YAAY;IACR,KAAKyD,YAAL,GAAoB,CAAC,KAAKA,YAA1B;EACH;;EAEDE,QAAQ;IACJ,KAAKnG,oBAAL,CAA0B3xB,KAA1B;IACA,KAAK+3B,uBAAL,CAA6B,KAAKpG,oBAAlC;IACA,KAAKwC,YAAL;EACH;;EAED4D,uBAAuB,CAACC,SAAD,EAAqB;IACxCxqC,MAAM,CAACC,IAAP,CAAYuqC,SAAS,CAACjB,QAAtB,EAAgC3tC,OAAhC,CAAwCsE,GAAG,IAAG;MAC1CsqC,SAAS,CAACr+B,GAAV,CAAcjM,GAAd,EAAmBuqC,cAAnB;MACAD,SAAS,CAACr+B,GAAV,CAAcjM,GAAd,EAAmBwqC,eAAnB;IACH,CAHD;EAIH;;EAEKrC,UAAU,CAAC7e,IAAD,EAAU;IAAA;MACtB,OAAO,IAAI9qB,OAAJ,CAAqBC,OAAD,IAAY;QACnC,MAAMm7B,MAAM,GAAG,IAAIC,UAAJ,EAAf;;QACAD,MAAM,CAACjpB,MAAP,GAAiB5F,CAAD,IAAW;UACvB,MAAM0/B,OAAO,GAAG1/B,CAAC,CAAC+P,MAAF,CAASpgB,MAAzB;UACA+D,OAAO,CAACgsC,OAAD,CAAP;QACH,CAHD;;QAKA7Q,MAAM,CAACK,aAAP,CAAqB3Q,IAArB;MACH,CARM,CAAP;IADsB;EAUzB,CAnakC,CAqanC;;;EACM4e,uBAAuB,CAAC5e,IAAD,EAAK;IAAA;;IAAA;MAC9B,MAAMohB,cAAc,GAAG,OAAO,IAA9B,CAD8B,CACM;;MAEpC,IAAIphB,IAAI,CAAC7uB,IAAL,GAAYiwC,cAAhB,EAAgC;QAC5B;QACA;QACA;QACAxI,kFAAA,CAAyB,sDAAzB,EAAiF,SAAjF;QACA,OAAO,KAAP;MACH;;MACD,OAAO,IAAI1jC,OAAJ,CAAqB,CAACC,OAAD,EAAUwO,MAAV,KAAoB;QAC5C,MAAM2sB,MAAM,GAAG,IAAIC,UAAJ,EAAf;;QACAD,MAAM,CAACjpB,MAAP,GAAiB5F,CAAD,IAAM;UAClB,MAAM4/B,GAAG,GAAG,IAAIC,KAAJ,EAAZ;UACAD,GAAG,CAACp6B,GAAJ,GAAUqpB,MAAM,CAACl/B,MAAjB;;UACAiwC,GAAG,CAACh6B,MAAJ,GAAa,MAAK;YACd,IAAI,CAAC,MAAI,CAACk6B,gBAAL,CAAsBF,GAAtB,CAAL,EAAiC;cAC7B;cACA;cACA;cACAzI,kFAAA,CAAyB,sCAAzB,EAAiE,SAAjE;cACAzjC,OAAO,CAAC,KAAD,CAAP;YACH,CAND,MAMO;cACHA,OAAO,CAAC,IAAD,CAAP;YACH;UACJ,CAVD;QAWH,CAdD;;QAgBAm7B,MAAM,CAACK,aAAP,CAAqB3Q,IAArB;MACH,CAnBM,CAAP;IAV8B;EA8BjC;;EAEDuhB,gBAAgB,CAACF,GAAD,EAAsB;IAClC,MAAMG,WAAW,GAAG,CAApB,CADkC,CACX;;IACvB,MAAMC,gBAAgB,GAAGJ,GAAG,CAAC9jC,KAAJ,GAAY8jC,GAAG,CAAC1N,MAAzC;IACA,OAAO+N,IAAI,CAACC,GAAL,CAASF,gBAAgB,GAAGD,WAA5B,KAA4C,IAAnD;EACH;;EAEDtH,aAAa,CAACtkB,GAAD,EAAY;IACrB,MAAMokB,QAAQ,GAAG,IAAI4H,GAAJ,CAAQhsB,GAAR,EAAaokB,QAA9B;IACA,MAAM6H,KAAK,GAAG7H,QAAQ,CAACriB,KAAT,CAAe,GAAf,CAAd,CAFqB,CAEc;;IACnC,OAAOkqB,KAAK,CAACh1B,KAAN,CAAY,CAAC,CAAb,EAAgBi1B,OAAhB,GAA0BtxB,IAA1B,CAA+B,GAA/B,CAAP,CAHqB,CAGuB;EAE/C;;EAEDqtB,aAAa,CAACkE,OAAO,GAAG;IACpBnE,UAAU,EAAG,EADO;IAEpBvF,KAAK,EAAE,EAFa;IAGpBD,OAAO,EAAE,EAHW;IAIpB7+B,IAAI,EAAC;EAJe,CAAX,EAKZ;IACG,OAAO,IAAIrE,OAAJ,CAAqBC,OAAO,IAAG;MAClCwT,8FAAA,CAA4B,IAAIL,uEAAJ,CAAwBy5B,OAAO,CAAC3J,OAAhC,CAA5B,EACI,IAAI9vB,uEAAJ,CAAwBy5B,OAAO,CAAC1J,KAAhC,CADJ,EAC4C5vB,mFAAiB,CAACs5B,OAAO,CAACnE,UAAT,CAD7D,EACmFl1B,6EAAc,CAACq5B,OAAO,CAAC1J,KAAT,CADjG,EACkHjkC,IADlH,CACuH+W,MAAM,IAAG;QAC5H,IAAGA,MAAM,KAAKgjB,qFAAd,EAAmC;UAChC,KAAK2P,yBAAL,CAA+BiE,OAAO,CAACxoC,IAAvC;QACF;;QACD,IAAI4R,MAAM,KAAKgjB,oFAAX,IAAkCA,wFAAtC,EAA+D;UAC3D,OAAO,KAAP;QACH;MACJ,CARD;IAUH,CAXM,CAAP;EAcH;;EAED8T,UAAU,CAACC,YAAD,EAAsB;IAC5B,MAAMC,IAAI,GAAGv7B,QAAQ,CAACI,aAAT,CAAuB,GAAvB,CAAb;;IACA,IAAG,KAAKg3B,aAAL,CAAmBlsC,MAAnB,GAA4B,CAA/B,EAAiC;MAC7BqwC,IAAI,CAACC,IAAL,GAAcF,YAAY,IAAI,SAAjB,GAA+B,KAAKlE,aAAL,CAAmB,CAAnB,EAAsBN,cAArD,GAAsE,KAAKM,aAAL,CAAmB,CAAnB,EAAsBR,UAAzG;MACA2E,IAAI,CAACpe,YAAL,CAAkB,UAAlB,EAA8B,EAA9B;MACAoe,IAAI,CAACE,KAAL;IACH;EACJ;;AAhfkC;;;;;;;;;;;;;;;;;;;UA8C0MhhB,kDAAMA;IAAAnhB,OAACs5B,sDAAD;;;;AA9C1OC,0BAA0B,uDALtC5pC,yDAAS,CAAC;EACP4C,QAAQ,EAAE,yBADH;EAEPC,UAAAA,2EAFO;;AAAA,CAAD,CAK6B,GAA1B+mC,0BAA0B,CAA1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBkF;AACtD;AACc;AACjB;AACO;AACyC;AAC/C;AAEU;AAC8B;AACX;AACC;AACE;AACtB;AAC4C;AAC3B;AACK;AACT;AAC6B;AACjC;AACS;IAOtD,oBAAoB,SAApB,oBAAqB,SAAQ,0EAAgB;IAwCxD,YACU,SAA2B,EAC3B,WAA6B,EAC7B,WAAwB,EACtB,eAAyC,EACzC,KAAwB,EAC1B,MAAc;QAEtB,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAPtB,cAAS,GAAT,SAAS,CAAkB;QAC3B,gBAAW,GAAX,WAAW,CAAkB;QAC7B,gBAAW,GAAX,WAAW,CAAa;QACtB,oBAAe,GAAf,eAAe,CAA0B;QACzC,UAAK,GAAL,KAAK,CAAmB;QAC1B,WAAM,GAAN,MAAM,CAAQ;QA7CxB,oBAAe,GAAG,EAAE,CAAC;QACrB,yBAAoB,GAAG,EAAE,CAAC;QAC1B,YAAO,GAAG,EAAE,CAAC;QACb,iBAAY,GAAG,EAAE,CAAC;QAClB,kBAAa,GAAG,EAAE,CAAC;QACnB,oBAAe,GAAG,IAAI,CAAC;QACvB,oBAAe,GAAG,EAAE,CAAC;QAErB,iBAAY,GAAG,KAAK,CAAC;QAGrB,gBAAW,GAAG,EAAE,CAAC;QAEjB,oBAAe,GAAG,IAAI,wDAAW,CAAC,EAAE,CAAC,CAAC;QAGtC,gBAAW,GAAG,qBAAqB,CAAC;QAEpC,oBAAe,GAAG;YAChB,sCAAsC;YACtC,sCAAsC;YACtC,sCAAsC;YACtC,sCAAsC;YACtC,sCAAsC;YACtC,sCAAsC;YACtC,sCAAsC;YACtC,sCAAsC;YACtC,sCAAsC;YACtC,sCAAsC;YACtC,sCAAsC;YACtC,sCAAsC;YACtC,sCAAsC;YACtC,sCAAsC;YACtC,sCAAsC;YACtC,sCAAsC;YACtC,sCAAsC;YACtC,sCAAsC;SACvC,CAAC;QACF,qBAAgB,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAyM/B,mBAAmB;QACnB,uEAAuE;QACvE,2DAA2D;QAC3D,oCAAoC;QACpC,UAAU;QACV,IAAI;QACJ,eAAU,GAAY,IAAI,CAAC;IArM3B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CACpE,0DAAS,CAAC,EAAE,CAAC,EACb,oDAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAClD,CAAC;IACJ,CAAC;IAED,iBAAiB;QACf,IAAI,GAAG,CAAC;QACR,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE;YAC7B,GAAG,GAAG,oCAAoC,IAAI,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC;SACnF;aAAM;YACL,GAAG,GAAG,8CAA8C;SACrD;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IACD,qBAAqB;QACnB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,QAAQ,CAAC,IAAI;QACX,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE;YAC5D,MAAM,EAAE,GAAG,gEAAY,CAAC,0EAAU,EAAE,UAAU,CAAC,CAAC;YAChD,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,iFAA0B,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACvH,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACjI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACpI,CAAC;IAED,eAAe,CAAC,KAAU;QACxB,MAAM,WAAW,GAAG,OAAO,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QACpG,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IACrH,CAAC;IAED,iBAAiB,CAAC,MAAM;QACtB,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,eAAe,CAAC,KAAK;QACnB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;IAC9C,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE;YAC9D,MAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5F,+DAA+D;YAC/D,wFAAwF;YACxF,MAAM;YACN,IAAI,CAAC,eAAe,GAAG,kBAAkB,CAAC;YAC1C,IAAI,CAAC,eAAe,GAAG,kBAAkB,CAAC;YAC1C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;YACzD,IAAI,QAAQ,EAAE;gBACZ,wCAAwC;gBACxC,IAAI,OAAO,GAAG,EAAE,CAAC;gBACjB,IAAI,YAAY,GAAG,QAAQ,CAAC;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;gBACjE,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,6DAAmB,EAAE;oBAC1E,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,0EAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;iBACpG;qBACI;oBACH,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,0EAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;iBACnE;gBAED,0BAA0B;gBAC1B,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnF,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBAClD,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjF,CAAC,CAAC,CAAC;gBACH,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjF,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;gBACjC,IAAI,CAAC,oBAAoB,GAAG,YAAY,CAAC;gBACzC,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC;gBACrC,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC;gBAC7B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;aAC5B;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACxB,oCAAoC;YACpC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE;YAChC,iFAA0B,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,YAAY,GAAG,qDAAS,CAAsB,KAAK,CAAC,CAAC;YAC3D,MAAM,SAAS,GAAG,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC;YAC1E,MAAM,uBAAuB,GAAG,IAAI,yEAAS,EAAE,CAAC;YAChD,uBAAuB,CAAC,IAAI,GAAG,GAAG,SAAS,oBAAoB,CAAC;YAChE,IAAI,CAAC,WAAW;iBACb,SAAS,CAAC,uBAAuB,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gBACvD,iFAA0B,CAAC,KAAK,CAAC,CAAC;gBAClC,IAAI,CAAC,SAAS,EAAE;gBAChB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YAC3B,CAAC,CAAC;SACL;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,WAAW;QACT,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,cAAc;QACZ,OAAO,iGAAgB,CAAC;IAC1B,CAAC;IAED,YAAY,CAAC,IAAI;QACf,IAAI,CAAC,IAAI,EAAE;YACT,mFAAwB,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;YAC9D,OAAO;SACR;QACD,MAAM,OAAO,GAAG,IAAI,4EAAgB,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,IAAI,4EAAgB,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,yEAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,iFAA0B,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;YACzC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;gBACf,IAAI,MAAM,EAAE;oBACV,qFAA0B,CAAC,eAAe,MAAM,CAAC,OAAO,qBAAqB,EAAE,QAAQ,CAAC,CAAC;oBACzF,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;iBACjC;gBACD,iFAA0B,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,KAAK,EAAE,GAAG,EAAE;gBACV,iFAA0B,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB;QACjB,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,qDAAS,CAAsB,KAAK,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,8BAA8B,CAAC;QAC5F,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACxG,CAAC;IAED,QAAQ,CAAC,OAAO;QACd,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;gBACvE,MAAM,IAAI,GAAG,EAAE,CAAC;gBAChB,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;oBACzB,IAAI,CAAC,IAAI,CAAC;wBACR,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,EAAE,EAAE,MAAM,CAAC,GAAG;wBACd,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,YAAY,EAAE,MAAM,CAAC,YAAY;qBAClC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;SACJ;QACD,iFAA0B,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAUD,UAAU;QACR,MAAM,EAAE,GAAG,IAAI,0EAAU,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,aAAa,CAAC;QAC3B,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;SACpC;QACD,EAAE,CAAC,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;QACxB,EAAE,CAAC,OAAO,GAAG,IAAI,4EAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC/E,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;SACpC;QAED,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,2CAA2C,EAAE;YAC7E,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,oCAAoC;IACpC,qCAAqC;IACrC,8CAA8C;IAC9C,2EAA2E;IAC3E,MAAM;IACN,mDAAmD;IACnD,6CAA6C;IAC7C,iDAAiD;IACjD,MAAM;IACN,kDAAkD;IAClD,qEAAqE;IACrE,kBAAkB;IAClB,IAAI;IAEJ,kBAAkB,CAAC,GAAG;QACpB,IAAI,OAAO,GAAG,2FAA+B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;SACpB;QACD,MAAM,MAAM,GAAG,IAAI,mEAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,GAAG,IAAI,uEAAmB,CAAC,8CAA8C,CAAC,CAAC;QACtF,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,GAAG,IAAI,uEAAmB,CAAC,yBAAyB,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,IAAI,EAAE,OAAO;QAClB,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YACpD,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,GAAG;QACf,MAAM,MAAM,GAAG,IAAI,qEAAW,EAAE,CAAC;QACjC,MAAM,CAAC,QAAQ,GAAG,IAAI,uEAAmB,CAAC,sDAAsD,CAAC,CAAC;QAClG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,CAAC,OAAO,GAAG,IAAI,uEAAmB,CAAC,2CAA2C,CAAC,CAAC;QACtF,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,GAAG,IAAI,uEAAmB,CAAC,sBAAsB,CAAC,CAAC;QAC/D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,wCAAwC;IACxC,gEAAgE;IAChE,oBAAoB;IACpB,0BAA0B;IAC1B,MAAM;IACN,oCAAoC;IACpC,wFAAwF;IACxF,4CAA4C;IAC5C,kEAAkE;IAClE,mBAAmB;IACnB,IAAI;IAEJ,0EAA0E;IAChE,wBAAwB,CAAC,GAAG,EAAE,aAAa,GAAG,EAAE;QACxD,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;YACnB,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,EAAE;gBAC5E,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,OAAO,KAAK,CAAC,CAAC,2DAA2D;aAC9G;SACF;QACD,OAAO,IAAI,CAAC,CAAC,sCAAsC;IACrD,CAAC;IAED,YAAY,CAAC,IAAI,EAAE,OAAO;QACxB,IAAI,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YAC3B,mFAAwB,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;YAC9D,iFAA0B,CAAC,KAAK,CAAC,CAAC;YAClC,OAAO;SACR;QACD,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;YACzD,IAAI,MAAM,EAAE;gBACV,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;aAC7C;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,IAAI,EAAE,MAAM;QACpB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACtC,CAAC;IAED,cAAc,CAAC,IAAI,EAAE,MAAM;QACzB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IAC1C,CAAC;IAED,eAAe;QACb,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;QACxD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7B,IAAG,IAAI,EAAE,UAAU,IAAE,2CAA2C,EAAC;YAC/D,IAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAC;gBACvB,mFAAwB,CAC3B,IAAI,uEAAmB,CAAC,2BAA2B,CAAC,EACpD,SAAS,CACT;gBACG,OAAO;aACR;SACF;QACD,iFAA0B,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;YACrD,IAAI,CAAC,CAAC,WAAW,EAAE;gBACjB,qFAA0B,CAAC,0BAA0B,EAAE,WAAW,CAAC,CAAC;aACrE;iBAAM;gBACL,mFAAwB,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;aAC9C;YACD,iFAA0B,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,mFAAwB,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;YAC9D,OAAO;SACR;QAED,iFAA0B,CAAC,IAAI,CAAC,CAAC;QAEjC,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE;YAChC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,YAAY,GAAG,qDAAS,CAAsB,KAAK,CAAC,CAAC;YAC3D,MAAM,SAAS,GAAG,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC;YAC1E,MAAM,uBAAuB,GAAG,IAAI,yEAAS,EAAE,CAAC;YAChD,uBAAuB,CAAC,IAAI,GAAG,GAAG,SAAS,oBAAoB,CAAC;YAChE,IAAI,CAAC,WAAW;iBACb,SAAS,CAAC,uBAAuB,CAAC;iBAClC,IAAI,CACH,0DAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACrB,IAAI,QAAQ,EAAE;oBACZ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC;oBAChC,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;iBAC9C;YACH,CAAC,CAAC,EACF,oDAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACf,IAAI,QAAQ,EAAE;oBACZ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;oBAC3B,qFAA0B,CAAC,eAAe,IAAI,CAAC,IAAI,sBAAsB,EAAE,WAAW,CAAC,CAAC;iBACzF;YACH,CAAC,CAAC,EACF,2DAAU,CAAC,CAAC,KAAK,EAAE,EAAE;gBACnB,mFAAwB,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC;gBACnE,OAAO,yCAAE,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,CAAC,EACF,yDAAQ,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,iFAA0B,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC,CAAC,CACH;iBACA,SAAS,EAAE,CAAC;YACf,OAAO;SACR;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;QAC7C,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3D,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC3B,qFAA0B,CAAC,eAAe,IAAI,CAAC,IAAI,sBAAsB,EAAE,WAAW,CAAC,CAAC;gBACxF,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,iFAA0B,CAAC,KAAK,CAAC,CAAC;aACnC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB,CAAC,IAAI;QACrB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,mCAAmC,IAAI,CAAC,WAAW,cAAc,CAAC,CAAC;IAC/F,CAAC;;;;;;;;;;AAxbU,oBAAoB;IALhC,yDAAS,CAAC;QACT,QAAQ,EAAE,iBAAiB;QAC3B,6EAA2C;;KAE5C,CAAC;GACW,oBAAoB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3BjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAQa9oC,UAAU,SAAVA,UAAU;EAmCnBuC,YAAmBC,KAAnB,EAA2C;IAAxB;IAhBnB,qBAAgB,EAAhB;IACA,mBAAc,KAAd;IACA,iBAAY,KAAZ;IACA,gBAAW,KAAX;EAa+C;;EAhCrC,IAANzC,MAAM;IACN,OAAO,KAAK8xC,OAAZ;EACH;;EACS,IAAN9xC,MAAM,CAACgB,KAAD,EAAM;IACZ,KAAK8wC,OAAL,GAAe9wC,KAAf;IACA,KAAKyB,KAAL,CAAW0B,aAAX;EACH;;EAGa,IAAVlE,UAAU;IACV,OAAO,KAAK8xC,WAAZ;EACH;;EACa,IAAV9xC,UAAU,CAACe,KAAD,EAAM;IAChB,KAAK+wC,WAAL,GAAmB/wC,KAAnB;IACA,KAAKyB,KAAL,CAAW0B,aAAX;EACH;;EAMD8G,eAAe;IACX,KAAKukB,WAAL,GAAmB,IAAnB;IACA,KAAK/sB,KAAL,CAAW0B,aAAX;EACH;;EAED1C,WAAW;IACP,MAAMsE,IAAI,GAAGD,MAAM,CAACC,IAAP,CAAY,KAAKpG,aAAjB,CAAb;IACAoG,IAAI,CAACrE,OAAL,CAAcsE,GAAD,IAAQ;MACjB,KAAKrG,aAAL,CAAmBqG,GAAnB,EAAwBpE,WAAxB;IACH,CAFD;EAGH;;EAGDpC,QAAQ;IAAA;;IACJ,KAAKG,aAAL,CAAmB,YAAnB,IAAmCL,wFAAA;MAAA,kKAAmC,WAAMoB,MAAN,EAAgB;QAClF,IAAIA,MAAJ,EAAY;UACR,KAAI,CAACT,UAAL,GAAkBS,MAAlB;UACA,KAAI,CAACV,MAAL,GAAcqC,oFAAA,CAAiC,KAAI,CAACpC,UAAtC,CAAd;UACA,MAAM4xC,kFAAA,CAA6B,KAAI,CAAC7xC,MAAlC,CAAN;UACA4xC,yFAAA,CAAiC,KAAI,CAAC5xC,MAAtC;;UACA,KAAI,CAACkyC,iBAAL,CAAuB,KAAI,CAAClyC,MAA5B;;UACA,KAAI,CAACA,MAAL,CAAYK,WAAZ,CAAwBjB,sEAAxB;;UACAuH,+FAAA,CAAuC,YAAvC,EAAqDjD,IAArD,CAA0D,MAAK;YAC3D,KAAI,CAACjB,KAAL,CAAW0B,aAAX;UACH,CAFD;QAGH,CAVD,MAUO;UACH,KAAI,CAACnE,MAAL,GAAc,IAAd;QACH;;QACD,KAAI,CAACoyC,SAAL,GAAiB,IAAjB;;QACA,KAAI,CAAC3vC,KAAL,CAAW0B,aAAX;MACH,CAhBkC;;MAAA;QAAA;MAAA;IAAA,IAAnC;IAiBA,KAAKxE,aAAL,CAAmB,aAAnB,IAAoCgH,+FAAA,CAAwC2rC,KAAD,IAAU;MACjF,IAAI,KAAKtyC,MAAT,EAAiB;QACb2G,+FAAA,CAAuC,YAAvC,EAAqDjD,IAArD,CAA0D,MAAK;UAC3D,KAAKjB,KAAL,CAAW0B,aAAX;QACH,CAFD;MAGH;IACJ,CANmC,CAApC;IAOA,KAAKxE,aAAL,CAAmB,kBAAnB,IAAyCL,kGAAA,CAA8CiQ,IAAD,IAAS;MAC3F,KAAKgjC,QAAL,GAAgBhjC,IAAhB;IACH,CAFwC,CAAzC;IAIA,KAAK5P,aAAL,CAAmB,UAAnB,IAAiCL,sFAAA;MAAA,mKAAiC,WAAOmB,IAAP,EAAe;QAC7E,IAAI,CAAC,KAAI,CAAC8xC,QAAN,IAAkB9xC,IAAlB,IAA0B,KAAI,CAACT,MAA/B,IAAyC,KAAI,CAACC,UAA9C,IAA4D,KAAI,CAACA,UAAL,CAAgBa,WAAhF,EAA6F;UACzF,KAAI,CAACd,MAAL,GAAcqC,oFAAA,CAAiC,KAAI,CAACpC,UAAtC,CAAd;UAEA,MAAM4xC,kFAAA,CAA6B,KAAI,CAAC7xC,MAAlC,CAAN;UACA4xC,yFAAA,CAAiC,KAAI,CAAC5xC,MAAtC;;UACA,IAAI,CAAC,KAAI,CAACA,MAAL,CAAYsB,WAAjB,EAA8B;YAC1B,IAAI,KAAI,CAACtB,MAAL,CAAYukC,WAAhB,EAA6B;cACzB,QAAQ,KAAI,CAACvkC,MAAL,CAAYukC,WAApB;gBACI,KAAKA,4EAAL;kBAAuB,KAAI,CAACvkC,MAAL,CAAYsB,WAAZ,GAA0B,MAA1B;kBAAkC;;gBACzD,KAAKijC,4EAAL;kBAAuB,KAAI,CAACvkC,MAAL,CAAYsB,WAAZ,GAA0B,MAA1B;kBAAkC;;gBACzD,KAAKijC,8EAAL;kBAAyB,KAAI,CAACvkC,MAAL,CAAYsB,WAAZ,GAA0B,QAA1B;kBAAoC;;gBAC7D,KAAKijC,8EAAL;kBAAyB,KAAI,CAACvkC,MAAL,CAAYsB,WAAZ,GAA0B,QAA1B;kBAAoC;cAJjE;YAMH,CAPD,MAOO;cACH,KAAI,CAACtB,MAAL,CAAYsB,WAAZ,GAA0B,MAA1B;YACH;UACJ;;UACD,KAAI,CAAC4wC,iBAAL,CAAuB,KAAI,CAAClyC,MAA5B;;UACA,KAAI,CAACA,MAAL,CAAYK,WAAZ,CAAwBjB,sEAAxB;;UACAuH,+FAAA,CAAuC,YAAvC,EAAqDjD,IAArD,CAA0D,MAAK;YAC3D,KAAI,CAACjB,KAAL,CAAW0B,aAAX;UACH,CAFD;QAGH;MACJ,CAxBgC;;MAAA;QAAA;MAAA;IAAA,IAAjC;EAyBH;;EAED+tC,iBAAiB,CAACriC,MAAD,EAAO;IACpBA,MAAM,CAAC,gBAAD,CAAN,GAA2B,YAA3B;;IACA,IAAIA,MAAM,CAAC1O,QAAP,IAAmB0O,MAAM,CAAC1O,QAAP,CAAgBC,MAAhB,GAAyB,CAAhD,EAAmD;MAC/CyO,MAAM,CAAC1O,QAAP,CAAgBO,OAAhB,CAAyBf,IAAD,IAAS;QAC7B,KAAKuxC,iBAAL,CAAuBvxC,IAAvB;MACH,CAFD;IAGH;EACJ;;AApGkB;;;;;;AAAVV,UAAU,uDANtBd,yDAAS,CAAC;EACP4C,QAAQ,EAAE,YADH;EAEPC,UAAAA,yDAFO;EAIPgP,eAAe,EAAEf,0EAJV;;AAAA,CAAD,CAMa,GAAVhQ,UAAU,CAAV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfyD;AAChB;AACwC;AACpE;AAC0E;AACH;AACA;AACV;AACrB;AACJ;AACa;AACY;AACE;AACxB;AACI;AACN;IAUlD,mBAAmB,SAAnB,mBAAoB,SAAQ,qEAAc;IAqBnD,YAAoB,eAAgC,EAAE,KAAwB,EAA+C,IAAI;QAC7H,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,oBAAe,GAAf,eAAe,CAAiB;QAAyE,SAAI,GAAJ,IAAI;QAJjI,iBAAY,GAAG,KAAK,CAAC;QACrB,SAAI,GAAC,EAAE;IAKP,CAAC;IAdD,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IACD,IAAI,KAAK,CAAC,GAAG;QACT,IAAI,CAAC,UAAU,GAAG,yCAAE,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAWD,kBAAkB;QACd,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;YAClC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC9C,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE;iBAErB;YACL,CAAC,CAAC;SACL;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAE/B,CAAC;IACD,sBAAsB;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,kBAAkB;QACd,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SAC3C;QAED,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAChF,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;gBAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,uFAAgC,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3E,IAAI,QAAQ,KAAK,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE;gBACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC5B;iBAAM;gBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,uFAAgC,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3E,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,+FAAwC,CAAC,CAAC,KAAK,EAAE,EAAE;YACjF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IACD,sBAAsB;IACtB,QAAQ,CAAC,KAAK,EAAE,IAAI;QAChB,IAAI,MAAM,CAAC;QACX,MAAM,GAAG,wFAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;QACnC,MAAM,CAAC,gBAAgB,GAAG,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,CAAC,CAAC;QACvC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,yFAAkC,CAAC;YAC/B,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YACtC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAClD,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;SACvC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,YAAY;IACZ,UAAU,CAAC,IAAI;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;YACZ,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAClD,sFAA+B,CAAC,IAAI,CAAC,CAAC;YACtC,2FAAoC,CAAC;gBACjC,SAAS,EAAE,IAAI,CAAC,EAAE;gBAClB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC5C,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;aACvC,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IACD,YAAY,CAAC,IAAI,EAAE,KAAK;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxC,uFAAgC,CAAC,IAAI,CAAC,CAAC;YACvC,sFAA+B,CAAC,IAAI,CAAC,CAAC;SAEzC;IACL,CAAC;IACD,SAAS,CAAC,KAAK,EAAE,IAAI;QACjB,OAAO,IAAI,CAAC,EAAE,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,KAAyB;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACnE,wEAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3F,yFAAkC,CAAC;YAC/B,SAAS,EAAE,IAAI,CAAC,EAAE;YAClB,KAAK,EAAE,KAAK,CAAC,YAAY;YACzB,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;YACvC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;SAC1C,CAAC,CAAC;IACP,CAAC;;AApHM,wBAAI,GAAQ,eAAgB;AAC5B,2BAAO,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,eAAe;CACxB,CAAC;;;;4CAe+E,kDAAM,SAAC,mFAA4B;;AArB3G,mBAAmB;IAN/B,yDAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;QAC9B,4EAA0C;QAE1C,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,mBAAmB;AAAA;AAwHzB,MAAM,kBAAmB,SAAQ,oEAAS;IAG7C,MAAM,CAAC,SAAS;QACZ,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,qFAAmB,CAAC;YAChB,GAAG,EAAE,sCAAsC;YAC3C,EAAE,EAAE,uBAAuB;YAC3B,OAAO,EAAE,gBAAgB;YACzB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,KAAK,CAAC;YAChB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,eAAe,CAAC;YAC7E,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,kBAAkB;YACtB,MAAM,EAAE,uBAAuB;YAC/B,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,UAAU,EAAE;gBACR;oBACI,EAAE,EAAE,QAAQ;oBACZ,MAAM,EAAE,uBAAuB;oBAC/B,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;oBACjD,KAAK,EAAE,UAAU;oBACjB,QAAQ,EAAE;wBACN,SAAS,EAAE,QAAQ;wBACnB,OAAO,EAAE,CAAC;wBACV,OAAO,EAAE,EAAE;qBACd;iBACJ,EAAE;oBACC,EAAE,EAAE,cAAc;oBAClB,MAAM,EAAE,uBAAuB;oBAC/B,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;oBACjD,KAAK,EAAE,gBAAgB;oBACvB,QAAQ,EAAE;wBACN,SAAS,EAAE,QAAQ;wBACnB,OAAO,EAAE,CAAC;wBACV,OAAO,EAAE,EAAE;qBACd;iBACJ,EAAE;oBACC,EAAE,EAAE,gBAAgB;oBACpB,MAAM,EAAE,uBAAuB;oBAC/B,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;oBAClD,KAAK,EAAE,kBAAkB;oBACzB,QAAQ,EAAE;wBACN,UAAU,EAAE,6EAAc;qBAC7B;iBACJ;aACJ;YACD,QAAQ,EAAE;gBACN,eAAe,EAAE,GAAG,EAAE;oBAClB,MAAM,IAAI,GAAO,EAAE,CAAC;oBACpB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;oBAChB,OAAO,IAAI,CAAC;gBAChB,CAAC;gBACD,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBACxB,OAAO,IAAI,CAAC,MAAM;gBACtB,CAAC;aACJ;SACJ,CAAC,CAAC;IACP,CAAC;;AA/De,uBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjJb;AACqE;AAC1E;AAEd;AAC2D;AACM;AACH;AACA;AACV;AACrB;AACJ;AAEJ;AAEW;AAEM;AACY;AACxB;AACK;AACP;AAC4B;AACxB;AACI;AACN;IAQlD,qBAAqB,SAArB,qBAAsB,SAAQ,qEAAc;IA8CrD,YAAoB,WAAwB,EAAU,eAAgC,EAClF,KAAwB,EAA+C,IAAI;QAC3E,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAFH,gBAAW,GAAX,WAAW,CAAa;QAAU,oBAAe,GAAf,eAAe,CAAiB;QACX,SAAI,GAAJ,IAAI;QAxC/E,oBAAe,GAAG,KAAK,CAAC;QAiBjB,gBAAW,GAAG,IAAI,wDAAY,EAAE;QAkB7B,qBAAgB,GAAG,IAAI,wDAAY,EAAO;IAOpD,CAAC;QArCU,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,IAAW,KAAK,CAAC,GAAG;QAChB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,yCAAE,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACtC;QACD,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;IAC3B,CAAC;QAQG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE;YAChH,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC/B;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAUD,MAAM;QACF,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,kBAAkB;QACd,IAAI,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE;YAChH,IAAI,MAAM,GAAG,IAAI,uEAAa,EAAE;YAChC,MAAM,CAAC,WAAW,GAAG,MAAM;YAC3B,MAAM,CAAC,WAAW,GAAG,6EAAgB;YACrC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC;SAC9C;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;SAChH;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChC,CAAC;IACD,sBAAsB;QAClB,IAAI,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE;YAChH,IAAI,MAAM,GAAG,IAAI,uEAAa,EAAE;YAChC,MAAM,CAAC,WAAW,GAAG,MAAM;YAC3B,MAAM,CAAC,WAAW,GAAG,6EAAgB;YACrC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC;SAC9C;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;SAChH;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC;QAE/D,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YACzE,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,uFAAgC,CAAC,CAAC,CAAC,EAAE;YAClE,IAAI,CAAC,IAAI,uEAAa,EAAE;gBACpB,IAAI,CAAC,oBAAoB,EAAE,CAAC;aAC/B;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,+FAAwC,CAAC,CAAC,KAAK,EAAE,EAAE;YACjF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;YACxF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,sFAAoC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACrF,IAAI,MAAM,EAAE;gBACR,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC;gBACpC,IAAI,MAAM,CAAC,aAAa,EAAE;oBACtB,IAAI,MAAM,CAAC,QAAQ,EAAE;wBACjB,yBAAyB;wBACzB,iHAAiH;qBACpH;yBAAM;wBACH,IAAI,CAAC,oBAAoB,EAAE,CAAC;qBAC/B;iBACJ;qBAAM;oBACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;oBACzF,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;oBAC7G,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;wBACvB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;qBACpC;oBACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;iBAChC;aACJ;iBAAM;gBACH,oEAAoE;aACvE;YACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACvB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC/C,IAAI,CAAC,MAAM,EAAE;wBACT,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;wBACxD,IAAI,CAAC,oBAAoB,EAAE,CAAC;qBAC/B;gBACL,CAAC,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,oBAAoB;QAChB,MAAM,cAAc,GAAG,EAAE,CAAC;QAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACtE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC1C,MAAM,QAAQ,GAAG,EAAE,CAAC;gBACpB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACnC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACrB,MAAM,IAAI,GAAG,gEAAY,CAAC,uEAAa,EAAE,IAAI,CAAC,CAAC;oBAC/C,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;oBACzC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC,CAAC,CAAC;gBACH,cAAc,CAAC,IAAI,CAAC;oBAChB,IAAI,EAAE,KAAK;oBACX,KAAK,EAAE,KAAK;oBACZ,QAAQ,EAAE,QAAQ;oBAClB,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,gBAAgB;iBACxD,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,eAAe,GAAG,yCAAE,CAAC,cAAc,CAAC,CAAC;QAC1C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,cAAc;QACV,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE;gBAC1C,IAAI,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE;oBACrC,iHAAiH;iBACpH;qBAAM;oBACH,IAAI,CAAC,oBAAoB,EAAE,CAAC;iBAC/B;aACJ;iBAAM;gBACH,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;oBACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;iBAChH;gBACD,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC7G,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC;aAC3C;SACJ;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC/C,IAAI,CAAC,MAAM,EAAE;oBACT,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;oBACxD,IAAI,CAAC,oBAAoB,EAAE,CAAC;iBAC/B;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IACD,QAAQ,CAAC,KAAgB;QACrB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;YAC5D,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO;YAC3E,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACvB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;aACpC;SACJ;IACL,CAAC;IACD,YAAY,CAAC,IAAI,EAAE,KAAK;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,uFAAgC,CAAC,IAAI,CAAC,CAAC;YACvC,sFAA+B,CAAC,IAAI,CAAC,CAAC;SACzC;IACL,CAAC;;AAjMM,0BAAI,GAAQ,iBAAkB;AAC9B,6BAAO,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,iBAAiB;CAC1B,CAAC;;;;;4CAyC6B,kDAAM,SAAC,mFAA4B;;;oBApCjE,iDAAK;0BAYL,kDAAM;yBAMN,iDAAK;+BAaL,kDAAM;;AA1CE,qBAAqB;IANjC,yDAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,8EAA4C;QAE5C,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,qBAAqB;AAAA;AAsM3B,MAAM,sBAAsB;IAW/B,YAAY,SAAgC,EAAE,KAAK,EAAU,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;QATrF,eAAU,GAAU,EAAE,CAAC;QAEvB,YAAO,GAAqB,IAAI,0CAAO,EAAE,CAAC;QAE1C,cAAS,GAAG,CAAC,CAAC;QACd,eAAU,GAAG,GAAG,CAAC;QACjB,WAAM,GAAG,KAAK,CAAC;QACf,gBAAW,GAAG,KAAK,CAAC;QAGhB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC;QAC9B,IAAI,CAAC,iBAAiB,GAAG,4EAA0B,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IACnG,CAAC;IAED,eAAe;QACX,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;YACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM,MAAM,GAAG,8EAA0B,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAClE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;YACnD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;YAClD,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;gBACxF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;gBACpB,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;iBACnD;qBAAM;oBACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;iBACtB;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;SACN;IACL,CAAC;;AAEE,MAAM,oBAAqB,SAAQ,oEAAS;IAE/C,MAAM,CAAC,SAAS;QACZ,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,iBAAiB;YACrB,OAAO,EAAE,mBAAmB;YAC5B,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,iBAAiB,CAAC;YACjD,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,mBAAmB;aAC/B;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,kBAAkB;YACtB,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,wEAAW;gBACvB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE;oBACX,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,wEAAW,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;gBACvF,CAAC;aACJ;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,kBAAkB;YACtB,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,UAAU,EAAE;gBACR;oBACI,EAAE,EAAE,QAAQ;oBACZ,MAAM,EAAE,iBAAiB;oBACzB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;oBACjD,KAAK,EAAE,UAAU;oBACjB,QAAQ,EAAE;wBACN,SAAS,EAAE,QAAQ;wBACnB,OAAO,EAAE,CAAC;wBACV,OAAO,EAAE,EAAE;qBACd;iBACJ,EAAE;oBACC,EAAE,EAAE,cAAc;oBAClB,MAAM,EAAE,iBAAiB;oBACzB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;oBACjD,KAAK,EAAE,gBAAgB;oBACvB,QAAQ,EAAE;wBACN,SAAS,EAAE,QAAQ;wBACnB,OAAO,EAAE,CAAC;wBACV,OAAO,EAAE,EAAE;qBACd;iBACJ,EAAE;oBACC,EAAE,EAAE,gBAAgB;oBACpB,MAAM,EAAE,iBAAiB;oBACzB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;oBAClD,KAAK,EAAE,kBAAkB;oBACzB,QAAQ,EAAE;wBACN,UAAU,EAAE,8EAAc;qBAC7B;iBACJ;aACJ;YACD,QAAQ,EAAE;gBACN,eAAe,EAAE,GAAG,EAAE;oBAClB,MAAM,IAAI,GAAQ,EAAE,CAAC;oBACrB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;oBAChB,OAAO,IAAI,CAAC;gBAChB,CAAC;gBACD,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBACxB,OAAO,IAAI,CAAC,MAAM;gBACtB,CAAC;aACJ;SACJ,CAAC,CAAC;IAEP,CAAC;;AA9Fe,yBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvRwD;AACjG;AACoC;AACG;AACI;AACN;IAQlD,YAAY,SAAZ,YAAa,SAAQ,oEAAc;IA2B5C,YAAoB,eAAgC,EAAE,KAAwB,EAA+C,IAAI;QAC7H,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,oBAAe,GAAf,eAAe,CAAiB;QAAyE,SAAI,GAAJ,IAAI;QAJ1H,gBAAW,GAAG,IAAI,uDAAY,EAAE;IAMvC,CAAC;QAjBU,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,IAAW,KAAK,CAAC,GAAG;QAChB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,wCAAE,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACtC;IACL,CAAC;IAUD,kBAAkB;QACd,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAChF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,sFAAgC,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3E,IAAI,QAAQ,KAAK,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE;gBACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC5B;iBAAM;gBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,8FAAwC,CAAC,CAAC,KAAK,EAAE,EAAE;YACjF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;YACxF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,sBAAsB;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,QAAQ,CAAC,KAAK;QACV,IAAI,MAAM,CAAC;QACX,MAAM,GAAG,wFAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,aAAa,CAAC;QAC1D,wFAAkC,CAAC;YAC/B,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YACtC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAClD,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;SACvC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,UAAU,CAAC,IAAI;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5B,qFAA+B,CAAC,IAAI,CAAC,CAAC;YACtC,0FAAoC,CAAC;gBACjC,SAAS,EAAE,IAAI,CAAC,EAAE;gBAClB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC5C,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;aACvC,CAAC,CAAC;SACN;IACL,CAAC;IAED,YAAY,CAAC,IAAI,EAAE,KAAK;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxC,sFAAgC,CAAC,IAAI,CAAC,CAAC;YACvC,qFAA+B,CAAC,IAAI,CAAC,CAAC;SACzC;IACL,CAAC;;AA3FM,iBAAI,GAAQ,QAAS;AACrB,oBAAO,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,QAAQ;CACjB,CAAC;;;;4CAqB+E,iDAAM,SAAC,kFAA4B;;;oBAhBnH,gDAAK;0BAWL,iDAAM;;AAtBE,YAAY;IANxB,wDAAS,CAAC;QACP,QAAQ,EAAE,YAAY;QACtB,qEAAmC;QAEnC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,YAAY;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACb6B;AACoC;AACI;AACM;AACH;AACA;AACiB;AAC3B;AACrB;AACJ;AACM;AACC;AACkB;AACxB;AACA;AACK;AACqB;AACxB;AACF;AACA;IAQlD,oBAAoB,SAApB,oBAAqB,SAAQ,qEAAc;;;QAIpD,UAAK,GAAG,sBAAsB,CAAC;QAC/B,gBAAW,GAAgB,gFAAmB,CAAC;QAC/C,UAAK,GAAG,KAAK,CAAC;QACd,iBAAY,GAAG,EAAE,CAAC;QAClB,iBAAY,GAAG,EAAE,CAAC;QAGlB,aAAQ,GAAG,KAAK,CAAC;IAqGrB,CAAC;IAnGG,kBAAkB;QACd,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;YAC5G,IAAI,QAAQ,EAAE;gBACV,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;aAC9B;iBAAM;gBACH,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,IAAI,CAAC;aAChD;SACJ;QACD,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;YACvC,MAAM,EAAE,GAAG,IAAI,uEAAU,EAAE,CAAC;YAC5B,EAAE,CAAC,IAAI,GAAG,wEAAc,CAAC;YACzB,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC;YACf,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,EAAE,CAAC;SAC7C;QACD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,2FAAoC,CAAC,CAAC,CAAC,EAAE;YAC1E,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;gBACnE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;aACvB;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,uFAAgC,CAAC,CAAC,CAAC,EAAE;YAClE,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,uEAAa,CAAC;YACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,gGAAgG;QAChG,6DAA6D;QAC7D,gCAAgC;QAChC,oDAAoD;QACpD,WAAW;QACX,QAAQ;QACR,KAAK;IACT,CAAC;IAED,iBAAiB;QACb,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;YACtC,SAAS,CAAC,OAAO,CAAC,GAAG,+EAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;SACjF;QACD,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;IAClC,CAAC;IAED,sBAAsB;QAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;YACvC,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,IAAI,CAAC;YAC7C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,WAAW,GAAG,6EAAgB,CAAC;YACpC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACxB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SAC5B;aAAM,IAAI,IAAI,CAAC,WAAW,KAAK,iFAAoB,EAAE;YAClD,IAAI,CAAC,WAAW,GAAG,6EAAgB,CAAC;YACpC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACxB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SAC5B;aAAM;YACH,IAAI,CAAC,WAAW,GAAG,iFAAoB,CAAC;YACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SAC3B;IACL,CAAC;IAED,YAAY;QACR,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,IAAI,CAAC,WAAW,KAAK,6EAAgB,EAAE;YACvC,IAAI,CAAC,WAAW,GAAG,gFAAmB,CAAC;SAC1C;IACL,CAAC;IAED,WAAW,CAAC,QAAiB;QACzB,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,qBAAqB,CAAC;SACtG;aAAM;YACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,sBAAsB,CAAC;SACtG;IACL,CAAC;IAED,WAAW,CAAC,IAAI;QACZ,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,6EAAgB,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,YAAY,CAAC,QAAiB;QAC1B,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;YAC1B,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;gBACtC,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;aACxE;iBAAM;gBACH,KAAK,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;aACzE;SACJ;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC9B,CAAC;;AA9GM,yBAAI,GAAQ,gBAAiB;AAC7B,4BAAO,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;;sBAQ3C,qDAAS,SAAC,SAAS,EAAE,EAAE,IAAI,EAAE,sDAAU,EAAE;;AAVjC,oBAAoB;IANhC,yDAAS,CAAC;QACP,QAAQ,EAAE,4BAA4B;QACtC,8EAA4C;QAE5C,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,oBAAoB;AAAA;AAkH1B,MAAM,mBAAoB,SAAQ,oEAAS;IAE9C,MAAM,CAAC,SAAS;QACZ,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,gBAAgB;YACpB,OAAO,EAAE,kBAAkB;YAC3B,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,gBAAgB,CAAC;YAChD,CAAC;SACJ,CAAC,CAAC;QACH,YAAY;QACZ,iFAAe,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,oHAAoB,CAAC;YAClD,IAAI,EAAE,uEAAU;YAChB,KAAK,EAAE,gBAAgB;YACvB,QAAQ,EAAE;gBACN,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,yBAAyB;aACrC;SACJ,CAAC,CAAC;QACH,MAAM,YAAY,GAAG;YACjB,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;YACpC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE;YACxC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;YACpC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE;SAC3C;QACD,qFAA+B,CAAC,CAAC,KAAK,EAAE,EAAE;YACtC,IAAI,KAAK,EAAE;gBACP,IAAI,KAAK,GAAG,EAAE,CAAC;gBACf,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACnB,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;gBAC/B,CAAC,CAAC;gBACF,iFAAe,CAAC;oBACZ,EAAE,EAAE,UAAU;oBACd,MAAM,EAAE,gBAAgB;oBACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;oBACjD,KAAK,EAAE,UAAU;oBACjB,UAAU,EAAE;wBACR;4BACI,EAAE,EAAE,MAAM;4BACV,MAAM,EAAE,gBAAgB;4BACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;4BACjD,KAAK,EAAE,QAAQ;yBAClB;wBACD;4BACI,EAAE,EAAE,SAAS;4BACb,MAAM,EAAE,gBAAgB;4BACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;4BACjD,KAAK,EAAE,WAAW;yBACrB;wBACD;4BACI,EAAE,EAAE,aAAa;4BACjB,MAAM,EAAE,gBAAgB;4BACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;4BAClD,KAAK,EAAE,eAAe;4BACtB,MAAM,EAAE,CAAC;4BACT,GAAG,EAAE,CAAC;4BACN,QAAQ,EAAE;gCACN,WAAW,EAAE,UAAU;gCACvB,QAAQ,EAAE,KAAK;gCACf,WAAW,EAAE,YAAY;gCACzB,iBAAiB,EAAE,SAAS;gCAC5B,eAAe,EAAE,OAAO;6BAC3B;yBACJ;wBACD;4BACI,EAAE,EAAE,MAAM;4BACV,MAAM,EAAE,gBAAgB;4BACxB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;4BAClD,KAAK,EAAE,QAAQ;4BACf,QAAQ,EAAE;gCACN,WAAW,EAAE,UAAU;gCACvB,QAAQ,EAAE,KAAK;gCACf,WAAW,EAAE,KAAK;gCAClB,iBAAiB,EAAE,OAAO;gCAC1B,eAAe,EAAE,OAAO;gCACxB,cAAc,EAAE,OAAO;6BAC1B;yBACJ;qBACJ;oBACD,QAAQ,EAAE;wBACN,eAAe,EAAE,GAAG,EAAE;4BAClB,MAAM,EAAE,GAAG,IAAI,uEAAa,EAAE,CAAC;4BAC/B,EAAE,CAAC,WAAW,GAAG,MAAM,CAAC;4BACxB,EAAE,CAAC,IAAI,GAAG,2FAAuC,CAAC,4FAAqC,EAAE,EAAE,OAAO,CAAC,CAAC;4BACpG,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;4BACrB,OAAO,EAAE,CAAC;wBACd,CAAC;qBACJ;iBACJ,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;IACP,CAAC;;AA1Ge,wBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9IG;AAChB;AACqE;AACjG;AAE0E;AACb;AACrB;AACJ;AACiC;AAC1B;AACkB;AAEE;AACxB;AACI;AACN;IAQlD,UAAU,SAAV,UAAW,SAAQ,qEAAc;IAqD1C,YAAoB,eAAgC,EAAE,KAAwB,EAA+C,IAAI;QAC7H,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,oBAAe,GAAf,eAAe,CAAiB;QAAyE,SAAI,GAAJ,IAAI;QA/B1H,gBAAW,GAAG,IAAI,wDAAY,EAAE;QA0BhC,sBAAiB,GAAG,IAAI,wDAAY,EAAE;IAO7C,CAAC;QA5CU,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,IAAW,KAAK,CAAC,GAAG;QAChB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,yCAAE,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACtC;IACL,CAAC;QAOU,WAAW;QAClB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;SACzC;aAAM;YACH,OAAO,IAAI,CAAC,WAAW,CAAC;SAC3B;IACL,CAAC;IACD,IAAW,WAAW,CAAC,GAAG;QACtB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,CAAC;YACrC,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;aAC/D;SACJ;aAAM;YACH,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;YAC5B,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aACtD;SACJ;IACL,CAAC;IAWD,kBAAkB;QACd,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAChF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,uFAAgC,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3E,IAAI,QAAQ,KAAK,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE;gBACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC5B;iBAAM;gBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,+FAAwC,CAAC,CAAC,KAAK,EAAE,EAAE;YACjF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;YACxF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;IAClD,CAAC;IACD,sBAAsB;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;IAClD,CAAC;IAED,QAAQ,CAAC,KAAK;QACV,IAAI,MAAM,CAAC;QACX,MAAM,GAAG,wFAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,yFAAkC,CAAC;YAC/B,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YACtC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAClD,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;SACvC,CAAC,CAAC;QACH,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,aAAa,CAAC;IAC9D,CAAC;IAED,UAAU,CAAC,IAAI;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5B,sFAA+B,CAAC,IAAI,CAAC,CAAC;YACtC,2FAAoC,CAAC;gBACjC,SAAS,EAAE,IAAI,CAAC,EAAE;gBAClB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC5C,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;aACvC,CAAC,CAAC;SACN;IACL,CAAC;IAED,YAAY,CAAC,IAAI,EAAE,KAAK;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxC,uFAAgC,CAAC,IAAI,CAAC,CAAC;YACvC,sFAA+B,CAAC,IAAI,CAAC,CAAC;SACzC;IACL,CAAC;IAED,kBAAkB;QACd,QAAQ,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YACpC,KAAK,kFAAsB,CAAC;YAC5B,KAAK,yFAA6B,CAAC;YACnC,KAAK,0FAA8B,CAAC;YACpC,KAAK,iGAAqC;gBACtC,OAAO,YAAY,CAAC;YACxB,KAAK,gFAAoB,CAAC;YAC1B,KAAK,uFAA2B,CAAC;YACjC,KAAK,wFAA4B,CAAC;YAClC,KAAK,+FAAmC;gBACpC,OAAO,UAAU,CAAC;SACzB;IACL,CAAC;IACD,OAAO,CAAC,KAAyB;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC9C,wEAAe,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QACtE,yFAAkC,CAAC;YAC/B,SAAS,EAAE,IAAI,CAAC,EAAE;YAClB,KAAK,EAAE,KAAK,CAAC,YAAY;YACzB,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;YACvC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;SAC1C,CAAC,CAAC;IACP,CAAC;IAED,SAAS,CAAC,KAAK,EAAE,IAAI;QACjB,OAAO,IAAI,CAAC,EAAE,CAAC;IACnB,CAAC;;AAjJM,eAAI,GAAQ,MAAO;AACnB,kBAAO,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,MAAM;CACf,CAAC;;;;4CA+C+E,kDAAM,SAAC,mFAA4B;;;oBA3CnH,iDAAK;0BAWL,kDAAM;0BAKN,iDAAK;gCAqBL,kDAAM;;AA/CE,UAAU;IANtB,yDAAS,CAAC;QACP,QAAQ,EAAE,UAAU;QACpB,mEAAiC;QAEjC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,UAAU;AAAA;AAsJhB,MAAM,SAAU,SAAQ,oEAAS;IAEpC,MAAM,CAAC,SAAS;QACZ,oFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,MAAM;YACV,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC;YACtC,CAAC;SACJ,CAAC,CAAC;QAEH,gFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,uEAAW;aAC1B;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,gBAAgB;YACpB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,cAAc;YACrB,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,2EAAiB;aAChC;SACJ,CAAC,CAAC;QACH,gFAAe,CAAC;YACZ,EAAE,EAAE,kBAAkB;YACtB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,gBAAgB;YACvB,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,8EAAoB;aACnC;SACJ,CAAC,CAAC;IACP,CAAC;;AAjDe,cAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/KV;AACH;AACwC;AACpE;AAC0E;AACH;AACA;AACiB;AAC3B;AACrB;AACJ;AACM;AACL;AACwB;AACxB;AACA;AAED;AACM;AACqB;AACxB;AACI;AACN;IAQlD,UAAU,SAAV,UAAW,SAAQ,qEAAc;IAsB1C,YAAoB,eAAgC,EAAE,KAAwB,EAA+C,IAAI;QAC7H,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,oBAAe,GAAf,eAAe,CAAiB;QAAyE,SAAI,GAAJ,IAAI;QAJjI,iBAAY,GAAG,KAAK,CAAC;IAMrB,CAAC;IAfD,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IACD,IAAI,KAAK,CAAC,GAAG;QACT,IAAI,CAAC,UAAU,GAAG,yCAAE,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAYD,kBAAkB;QACd,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,KAAK,uEAAa,EAAE;YAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAE/B,CAAC;IACD,sBAAsB;QAClB,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,KAAK,uEAAa,EAAE;YAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,kBAAkB;QACd,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3G,MAAM,GAAG,GAAG,IAAI,iEAAU,EAAE,CAAC;YAC7B,GAAG,CAAC,IAAI,GAAG,IAAI,sEAAU,EAAE,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,qEAAW,CAAC;YAC5B,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,GAAG,IAAI,CAAC;SACf;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YACrG,MAAM,GAAG,GAAG,IAAI,iEAAU,EAAE,CAAC;YAC7B,GAAG,CAAC,IAAI,GAAG,IAAI,sEAAU,EAAE,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,qEAAW,CAAC;YAC5B,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,GAAG,IAAI,CAAC;SACf;QACD,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SAC3C;QAED,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAChF,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;gBAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,uFAAgC,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3E,IAAI,QAAQ,KAAK,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE;gBACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC5B;iBAAM;gBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,uFAAgC,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3E,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACvC,IAAI,QAAQ,KAAK,uEAAa,EAAE;gBAC5B,IAAI,CAAC,eAAe,EAAE,CAAC;aAC1B;iBAAM;gBACH,IAAI,CAAC,SAAS,GAAG,yCAAE,CAAC,EAAE,CAAC,CAAC;aAC3B;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,+FAAwC,CAAC,CAAC,KAAK,EAAE,EAAE;YACjF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAGD,sBAAsB;IACtB,QAAQ,CAAC,KAAK,EAAE,IAAI;QAChB,IAAI,MAAM,CAAC;QACX,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;SAC7B;aAAM;YACH,MAAM,GAAG,wFAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7D,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC5B,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACtB,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;YACnB,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;YACnB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC5C;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,yFAAkC,CAAC;gBAC/B,SAAS,EAAE,MAAM,CAAC,EAAE;gBACpB,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;gBACvD,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;gBACvC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;aAC1C,CAAC,CAAC;SACN;aAAM;YACH,yFAAkC,CAAC;gBAC/B,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gBACtC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAClD,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;aACvC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,SAAS,CAAC,KAAK,EAAE,IAAI;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,GAAG,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;SAC3B;QACD,IAAI,CAAC,QAAQ,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7B,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,IAAI;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;IACD,WAAW,CAAC,KAAK,EAAE,IAAI;QACnB,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,2CAA2C,CAAC;IACnF,CAAC;IACD,WAAW,CAAC,KAAK,EAAE,IAAI;QACnB,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,iBAAiB,CAAC;IACzD,CAAC;IACD,YAAY;IACZ,UAAU,CAAC,IAAI;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;YACZ,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAClD,sFAA+B,CAAC,IAAI,CAAC,CAAC;YACtC,2FAAoC,CAAC;gBACjC,SAAS,EAAE,IAAI,CAAC,EAAE;gBAClB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC5C,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;aACvC,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IACD,YAAY,CAAC,IAAI,EAAE,KAAK;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxC,uFAAgC,CAAC,IAAI,CAAC,CAAC;YACvC,sFAA+B,CAAC,IAAI,CAAC,CAAC;SAEzC;IACL,CAAC;IACD,SAAS,CAAC,KAAK,EAAE,IAAI;QACjB,OAAO,IAAI,CAAC,EAAE,CAAC;IACnB,CAAC;IACD,eAAe;IACf,UAAU;QACN,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IACD,eAAe;QACX,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,KAAK,uEAAa,EAAE;YAC/C,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;gBACjF,IAAI,CAAC,aAAa,CAAC,iBAAiB,IAAI,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzF,MAAM,SAAS,GAAG,EAAE,CAAC;gBACrB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;oBACtE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;wBACzE,MAAM,IAAI,GAAG,IAAI,uEAAa,EAAE,CAAC;wBACjC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;wBAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;wBACf,kCAAkC;wBAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;wBACrB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACxB;iBACJ;gBACD,IAAI,CAAC,SAAS,GAAG,yCAAE,CAAC,SAAS,CAAC,CAAC;aAClC;SACJ;aAAM;YACH,IAAI,CAAC,SAAS,GAAG,yCAAE,CAAC,EAAE,CAAC,CAAC;SAC3B;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;;AAvMM,eAAI,GAAQ,MAAO;AACnB,kBAAO,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,MAAM;CACf,CAAC;;;;4CAgB+E,kDAAM,SAAC,mFAA4B;;AAtB3G,UAAU;IANtB,yDAAS,CAAC;QACP,QAAQ,EAAE,UAAU;QACpB,mEAAiC;QAEjC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,UAAU;AAAA;AA4MhB,MAAM,SAAU,SAAQ,oEAAS;IAG5B,MAAM,CAAC,aAAa,CAAC,IAAI;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACjB,MAAM,KAAK,GAA+B,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC;gBACP,UAAU,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;gBACvC,UAAU,EAAE,CAAC;wBACT,YAAY,EAAE,mBAAmB;wBACjC,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,iBAAiB;qBAClD,CAAC;aACL,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACb,KAAK,CAAC,IAAI,CAAC;oBACP,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;oBACnB,UAAU,EAAE,CAAC;4BACT,YAAY,EAAE,QAAQ;4BACtB,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC;yBACzB,CAAC;iBACL,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,iGAA0C,CAAC,KAAK,CAAC,CAAC;YAClD,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SAC/C;IACL,CAAC;IACO,MAAM,CAAC,aAAa,CAAC,IAAI;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACjB,MAAM,KAAK,GAA+B,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC;gBACP,UAAU,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;gBACvC,UAAU,EAAE,CAAC;wBACT,YAAY,EAAE,gBAAgB;wBAC9B,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,cAAc;qBAC/C,CAAC;aACL,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACb,KAAK,CAAC,IAAI,CAAC;oBACP,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;oBACnB,UAAU,EAAE,CAAC;4BACT,YAAY,EAAE,KAAK;4BACnB,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC;yBACzB,CAAC;iBACL,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,iGAA0C,CAAC,KAAK,CAAC,CAAC;YAClD,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SAC/C;IACL,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK;QACvC,IAAI,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC3C,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;YACnB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,uEAAa,EAAE;gBACjC,MAAM,IAAI,MAAM,CAAC;aACpB;iBAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,uEAAa,EAAE;gBACxC,MAAM,IAAI,MAAM,CAAC;aACpB;iBAAM,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;gBAChC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBACpB,KAAK,qEAAW;wBACZ,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;wBACjC,MAAM;oBACV,KAAK,0EAAgB;wBACjB,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;wBAChC,MAAM;oBACV,KAAK,wEAAc;wBACf,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;wBACrC,MAAM;oBACV,KAAK,qEAAW;wBACZ,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;wBACjC,MAAM;oBACV,KAAK,qEAAW;wBACZ,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;wBACjC,MAAM;oBACV,KAAK,qEAAW;wBACZ,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;wBACjC,MAAM;oBACV,KAAK,uEAAa;wBACd,MAAM,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;wBAC1C,MAAM;iBACb;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,SAAS;QACZ,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,qFAAmB,CAAC;YAChB,GAAG,EAAE,sCAAsC;YAC3C,EAAE,EAAE,aAAa;YACjB,OAAO,EAAE,qBAAqB;YAC9B,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,aAAa,EAAE,uGAA4B;YAC3C,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC;YACtC,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,mBAAmB;YACvB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,UAAU,EAAE;gBACR;oBACI,EAAE,EAAE,MAAM;oBACV,MAAM,EAAE,YAAY;oBACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,oHAAoB,CAAC;oBAClD,KAAK,EAAE,QAAQ;oBACf,QAAQ,EAAE;wBACN,WAAW,EAAC,EAAE;qBACjB;iBACJ;aACJ;YACD,QAAQ,EAAE;gBACN,eAAe,EAAE,GAAG,EAAE;oBAClB,MAAM,IAAI,GAAG,IAAI,iEAAU,EAAE,CAAC;oBAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,sEAAU,EAAE,CAAC;oBAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,qEAAW,CAAC;oBAC7B,OAAO,IAAI,CAAC;gBAChB,CAAC;gBACD,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBACxB,OAAO,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACnD,CAAC;gBACD,SAAS,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;oBAC5B,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,YAAY,EAAE;wBAC5C,IAAI,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,YAAY,CAAC,iBAAiB,EAAE;4BACpE,wEAAe,CAAC,SAAS,CAAC,YAAY,CAAC,iBAAiB,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;4BACnG,MAAM,IAAI,GAAG,EAAE,CAAC;4BAChB,IAAI,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE;gCACjC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCACxC,IAAI,MAAM,CAAC;oCACX,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,aAAa,GAAG,CAAC,EAAE;wCACtC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;wCAClC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;qCAC1B;yCAAM,IAAI,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,aAAa,EAAE;wCACjD,IAAI,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,aAAa,EAAE;4CAClE,CAAC,CAAC,MAAM,EAAE,CAAC;4CACX,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;yCAC1B;qCACJ;yCAAM;wCACH,IAAI,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE;4CACtE,CAAC,CAAC,MAAM,EAAE,CAAC;4CACX,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;yCAC1B;qCACJ;oCACD,IAAI,MAAM,EAAE;wCACR,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;wCAC1B,IAAI,IAAI,EAAE;4CACN,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;yCACnB;6CAAM;4CACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;yCACzB;qCACJ;gCACL,CAAC,CAAC,CAAC;6BACN;4BACD,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;yBACjC;qBACJ;gBACL,CAAC;gBACD,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,IAAI,SAAS,CAAC,YAAY,CAAC,iBAAiB,IAAI,SAAS,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;wBACjG,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;wBACzE,IAAI,QAAQ,GAAG,CAAC,CAAC,EAAE;4BACf,SAAS,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;4BAC7D,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,CAAC;4BAC/D,IAAI,MAAM,GAAG,CAAC,EAAE;gCACZ,IAAI,QAAQ,GAAG,MAAM,EAAE;oCACnB,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;iCAC9D;qCAAM;oCACH,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iCAChE;6BACJ;iCAAM;gCACH,KAAK,GAAG,IAAI,CAAC;6BAChB;4BACD,MAAM,IAAI,GAAG,EAAE,CAAC;4BAChB,IAAI,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE;gCACjC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCACxC,IAAI,MAAM,CAAC;oCACX,IAAI,CAAC,CAAC,MAAM,GAAG,QAAQ,GAAG,CAAC,EAAE;wCACzB,CAAC,CAAC,MAAM,EAAE,CAAC;wCACX,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;qCAC1B;oCACD,IAAI,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,EAAE;wCAC5D,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,CAAC;wCAC3D,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;qCAC1B;oCACD,IAAI,MAAM,EAAE;wCACR,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;wCAC1B,IAAI,IAAI,EAAE;4CACN,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;yCACnB;6CAAM;4CACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;yCACzB;qCACJ;gCACL,CAAC,CAAC,CAAC;6BACN;4BACD,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;yBACjC;qBACJ;gBACL,CAAC;aACJ;SACJ,CAAC,CAAC;QACH,qFAAmB,CAAC;YAChB,GAAG,EAAE,sCAAsC;YAC3C,EAAE,EAAE,UAAU;YACd,OAAO,EAAE,kBAAkB;YAC3B,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC;YACtC,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,gBAAgB;YACpB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,UAAU,EAAE;gBACR;oBACI,EAAE,EAAE,MAAM;oBACV,MAAM,EAAE,YAAY;oBACpB,OAAO,EAAE,IAAI,iEAAe,CAAC,oHAAoB,CAAC;oBAClD,KAAK,EAAE,QAAQ;oBACf,QAAQ,EAAE;wBACN,WAAW,EAAE,EAAE;qBAClB;iBACJ;aACJ;YACD,QAAQ,EAAE;gBACN,eAAe,EAAE,GAAG,EAAE;oBAClB,MAAM,IAAI,GAAG,IAAI,iEAAU,EAAE,CAAC;oBAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,sEAAU,EAAE,CAAC;oBAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,qEAAW,CAAC;oBAC7B,OAAO,IAAI,CAAC;gBAChB,CAAC;gBACD,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBACxB,OAAO,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACnD,CAAC;gBACD,SAAS,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;oBAC5B,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,YAAY,EAAE;wBAC5C,IAAI,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,YAAY,CAAC,cAAc,EAAE;4BACjE,wEAAe,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;4BAC3F,MAAM,IAAI,GAAG,EAAE,CAAC;4BAChB,IAAI,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE;gCACjC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCACxC,IAAI,MAAM,CAAC;oCACX,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,aAAa,GAAG,CAAC,EAAE;wCACnC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;wCAC/B,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;qCACvB;yCAAM,IAAI,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,aAAa,EAAE;wCACjD,IAAI,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,aAAa,EAAE;4CAC5D,CAAC,CAAC,GAAG,EAAE,CAAC;4CACR,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;yCACvB;qCACJ;yCAAM;wCACH,IAAI,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE;4CAChE,CAAC,CAAC,GAAG,EAAE,CAAC;4CACR,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;yCACvB;qCACJ;oCACD,IAAI,MAAM,EAAE;wCACR,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;wCAC1B,IAAI,IAAI,EAAE;4CACN,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;yCACnB;6CAAM;4CACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;yCACzB;qCACJ;gCACL,CAAC,CAAC,CAAC;6BACN;4BACD,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;yBACjC;qBACJ;gBACL,CAAC;gBACD,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,IAAI,SAAS,CAAC,YAAY,CAAC,cAAc,IAAI,SAAS,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC3F,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;wBACtE,IAAI,QAAQ,GAAG,CAAC,CAAC,EAAE;4BACf,SAAS,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;4BAC1D,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC;4BAC5D,IAAI,MAAM,GAAG,CAAC,EAAE;gCACZ,IAAI,QAAQ,GAAG,MAAM,EAAE;oCACnB,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;iCAC3D;qCAAM;oCACH,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iCAC7D;6BACJ;iCAAM;gCACH,KAAK,GAAG,IAAI,CAAC;6BAChB;4BACD,MAAM,IAAI,GAAG,EAAE,CAAC;4BAChB,IAAI,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE;gCACjC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCACxC,IAAI,MAAM,CAAC;oCACX,IAAI,CAAC,CAAC,GAAG,GAAG,QAAQ,GAAG,CAAC,EAAE;wCACtB,CAAC,CAAC,GAAG,EAAE,CAAC;wCACR,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;qCACvB;oCACD,IAAI,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE;wCACtD,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC;wCACrD,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;qCACvB;oCACD,IAAI,MAAM,EAAE;wCACR,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;wCAC1B,IAAI,IAAI,EAAE;4CACN,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;yCACnB;6CAAM;4CACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;yCACzB;qCACJ;gCACL,CAAC,CAAC,CAAC;6BACN;4BACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;yBAC5B;qBACJ;gBACL,CAAC;aACJ;SACJ,CAAC,CAAC;QACH,qFAAmB,CAAC;YAChB,GAAG,EAAE,sCAAsC;YAC3C,EAAE,EAAE,cAAc;YAClB,OAAO,EAAE,gBAAgB;YACzB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,KAAK,EAAC,KAAK,CAAC;YACtB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,aAAa,EAAE,uGAA4B;YAC3C,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC;YACpE,CAAC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAC,CAAC;aACZ;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,gBAAgB;YACvB,MAAM,EAAC,CAAC;YACR,OAAO,EAAC,CAAC;YACT,QAAQ,EAAE;gBACN,UAAU,EAAE,kEAAQ;aACvB;SACJ,CAAC,CAAC;IACP,CAAC;;AAvYe,cAAI,GAAG,CAAC,sCAAsC,EAAE,sCAAsC,EAAE,sCAAsC,CAAC;AAC/H,qBAAW,GAAG,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5OsD;AACtC;AACM;AACG;AACI;AACF;AACJ;IAOlD,gBAAgB,SAAhB,gBAAiB,SAAQ,oEAAc;IAgDhD,YAAoB,MAAc,EAAU,eAAgC,EAAE,KAAwB,EAA+C,IAAI;QACrJ,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,WAAM,GAAN,MAAM,CAAQ;QAAU,oBAAe,GAAf,eAAe,CAAiB;QAAyE,SAAI,GAAJ,IAAI;QAzCzJ,oBAAe,GAAG,EAAE,CAAC;QAMrB,iBAAY,GAAG,KAAK,CAAC;QAqCjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;YACxD,IAAI,EAAE,YAAY,0DAAa,EAAE;gBAC7B,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAClB,IAAI,CAAC,QAAQ,CAAC,iGAA0C,EAAE,CAAC,CAAC;aAC/D;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAChF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACP,CAAC;IAjDO,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG;QACtC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAChB,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE;oBAC7B,IAAI,IAAI,GAAG,wBAAwB,CAAC;oBACpC,IAAI,CAAC,CAAC,IAAI,EAAE;wBACR,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;qBACjB;oBACD,IAAI,CAAC,CAAC,GAAG,EAAE;wBACP,MAAM,CAAC,IAAI,CAAC;4BACR,OAAO,EAAE,CAAC,CAAC,KAAK;4BAChB,QAAQ,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG;4BACvB,IAAI,EAAE,IAAI;4BACV,GAAG,EAAE,CAAC,CAAC,GAAG;yBACb,CAAC,CAAC;qBACN;yBAAM,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC5C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;wBAClE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;4BACrB,MAAM,CAAC,IAAI,CAAC;gCACR,OAAO,EAAE,CAAC,CAAC,KAAK;gCAChB,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;gCACxC,IAAI,EAAE,IAAI;gCACV,QAAQ,EAAE,QAAQ;6BACrB,CAAC,CAAC;yBACN;qBACJ;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAmBD,kBAAkB;QACd,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,sFAAgC,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3E,IAAI,QAAQ,KAAK,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE;gBACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC5B;iBAAM;gBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACD,QAAQ;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,CAAC,iGAA0C,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,GAAG,kGAA2C,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7H,CAAC;IAED,kBAAkB;QACd,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5G,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SAC1D;aAAM;YACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAC3B;IACL,CAAC;IAED,QAAQ,CAAC,GAAG;QACR,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE;YACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC5B;aAAM;YACH,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,GAAG,EAAE;gBACL,IAAI,CAAC,eAAe,GAAG,gBAAgB,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;aACzF;iBAAM;gBACH,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;aAC7B;SACJ;IACL,CAAC;IAED,YAAY,CAAC,GAAG;QACZ,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACtC;IACL,CAAC;IAED,YAAY,CAAC,IAAI;QACb,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,qFAA+B,CAAC,IAAI,CAAC,CAAC;SACzC;IACL,CAAC;IAED,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;YAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7D,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACZ,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAClD,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,qFAA+B,CAAC,IAAI,CAAC,CAAC;gBACtC,0FAAoC,CAAC;oBACjC,SAAS,EAAE,IAAI,CAAC,EAAE;oBAClB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;oBAC5C,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;iBACvC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAED,QAAQ,CAAC,EAAE;QACP,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;gBACnC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,EAAE,CAAC;aACzC;YACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/C,IAAI,MAAM,CAAC;gBACX,MAAM,GAAG,wFAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC7D,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;gBACnC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzC,wFAAkC,CAAC;oBAC/B,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;oBACtC,KAAK,EAAE,CAAC;oBACR,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;iBACvC,CAAC,CAAC;aACN;SACJ;QACD,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,aAAa,CAAC;IAC3D,CAAC;;AAlJM,qBAAI,GAAQ,aAAc;AAC1B,wBAAO,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,aAAa;CACtB,CAAC;;;;;4CA2CuG,iDAAM,SAAC,kFAA4B;;AAhDnI,gBAAgB;IAL5B,wDAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,yEAAuC;QACvC,eAAe,EAAE,yEAA8B;KAClD,CAAC;GACW,gBAAgB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbyB;AACyG;AAC1D;AAC9D;AACuD;AACM;AACH;AACV;AACrB;AACJ;AACyB;AACxB;AACF;AAC4B;AACxB;AACI;AACN;IASlD,YAAY,SAAZ,YAAa,SAAQ,qEAAc;IAgG5C,YAAoB,eAAgC,EAAE,OAAwB,EAC1E,KAAwB,EAA+C,IAAI;QAC3E,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAFH,oBAAe,GAAf,eAAe,CAAiB;QACuB,SAAI,GAAJ,IAAI;QAtCrE,kBAAa,GAAG,IAAI,wDAAY,EAAkB;QAclD,gBAAW,GAAG,IAAI,wDAAY,EAAuB;QAkBrD,mBAAc,GAAG,IAAI,wDAAY,EAAW;QA0BtD,SAAI,GAAG,IAAI,CAAC;QAlBR,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5C,CAAC;QAtDG,OAAO;QACP,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;IAC5C,CAAC;IACD,IAAI,OAAO,CAAC,GAAmB;QAC3B,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,GAAG,CAAC;YACvC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,qBAAqB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxF,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAChC;IACL,CAAC;QAQG,KAAK;QACL,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IACD,IAAI,KAAK,CAAC,GAAwB;QAC9B,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;QASG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAY;QACrB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QAEzB,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;IAaD,kBAAkB;QACd,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAChF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,uFAAgC,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3E,IAAI,QAAQ,KAAK,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE;gBACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC5B;iBAAM;gBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,EAAE;YAC3C,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;SACvG;QAED,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnF,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;YACvC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC/F,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1B,CAAC,CAAC,CAAC;SACN;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,GAAG,EAAE;YACL,GAAG,CAAC,WAAW,EAAE,CAAC;SACrB;QACD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;QAChH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QAEnD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,uFAAgC,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3E,IAAI,QAAQ,KAAK,sEAAa,EAAE;gBAC5B,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;gBAC1D,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,SAAS,GAAG;oBACjD,OAAO,EAAE,IAAI;oBACb,kBAAkB,EAAE,uBAAuB;oBAC3C,aAAa,EAAE,IAAI;oBACnB,eAAe,EAAE,cAAc;iBAClC;gBACD,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;aACrE;iBAAM;gBACH,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;gBACpG,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC5G,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;aAC/G;YACD,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,gBAAgB;IAChB,gCAAgC;IAChC,mDAAmD;IACnD,kFAAkF;IAClF,0BAA0B;IAC1B,qCAAqC;IACrC,aAAa;IACb,UAAU;IACV,0BAA0B;IAC1B,gCAAgC;IAChC,OAAO;IACP,IAAI;IAEJ,UAAU,CAAC,QAAQ;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,cAAc;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;QACrD,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,cAAc,KAAK,UAAU,EAAE;YAChE,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IAED,UAAU,CAAC,IAAI;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5B,sFAA+B,CAAC,IAAI,CAAC,CAAC;YACtC,2FAAoC,CAAC;gBACjC,SAAS,EAAE,IAAI,CAAC,EAAE;gBAClB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC5C,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;aACvC,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IAED,YAAY,CAAC,IAAI,EAAE,KAAK;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxC,uFAAgC,CAAC,IAAI,CAAC,CAAC;YACvC,sFAA+B,CAAC,IAAI,CAAC,CAAC;SACzC;IACL,CAAC;IACD,cAAc,CAAC,KAAiB,EAAE,KAAmB;QACjD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,QAAQ,CAAC,KAAK;QACV,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,CAAC,KAAmB;QACvB,IAAI,IAAI,CAAC;QACT,IAAI,GAAG,wFAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,yFAAkC,CAAC;YAC/B,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YACpC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAClD,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;SACvC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,IAAI,CAAC,aAAa,GAAG,IAAI,gEAAM,EAAE,CAAC;SACrC;IACL,CAAC;;AAvOM,iBAAI,GAAQ,QAAS;AACrB,oBAAO,GAAmB;IAC7B,OAAO,EAAE;QACL,QAAQ,EAAE,4DAAY;QACtB,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,CAAC;QACd,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,CAAC;QACd,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,CAAC;QACT,WAAW,EAAE,gEAAgB;QAC7B,mBAAmB,EAAE,IAAI;QACzB,WAAW,EAAE,2EAA2B;QACxC,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE;YACP,OAAO,EAAE,IAAI;YACb,kBAAkB,EAAE,uBAAuB;YAC3C,aAAa,EAAE,IAAI;YACnB,eAAe,EAAE,cAAc;SAClC;QACD,SAAS,EAAE;YACP,OAAO,EAAE,KAAK;YACd,OAAO,EAAE;gBACL,CAAC,EAAE,IAAI;gBACP,CAAC,EAAE,IAAI;gBACP,CAAC,EAAE,IAAI;gBACP,CAAC,EAAE,IAAI;gBACP,EAAE,EAAE,IAAI;gBACR,EAAE,EAAE,IAAI;gBACR,EAAE,EAAE,IAAI;gBACR,EAAE,EAAE,IAAI;aACX;SACJ;KACJ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ;CAChD;;;;;4CAyD6B,kDAAM,SAAC,mFAA4B;;;sBApDjE,iDAAK;4BAcL,kDAAM;oBAKN,iDAAK;0BASL,kDAAM;uBAMN,iDAAK;6BAYL,kDAAM;;AA3FE,YAAY;IAPxB,yDAAS,CAAC;QACP,QAAQ,EAAE,YAAY;QACtB,qEAAmC;QAEnC,eAAe,EAAE,0EAA8B;QAC/C,aAAa,EAAE,kEAAsB;;KACxC,CAAC;GACW,YAAY;AAAA;AA2OlB,MAAM,WAAY,SAAQ,oEAAS;IAItC,MAAM,CAAU,eAAe,CAAC,IAAI;QAChC,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,EAAE;YACrD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;aACjF;YACD,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACnD;IACL,CAAC;IACD,MAAM,CAAC,SAAS;QACZ,IAAI,CAAC,gBAAgB,EAAE;QACvB,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,QAAQ;YACZ,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,8FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,CAAC;YACvD,CAAC;SACJ,CAAC,CAAC;QACH,kDAAkD;QAClD,gEAAgE;QAChE,4CAA4C;QAC5C,OAAO;QACP,KAAK;QAEL,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,kBAAkB;YACzB,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,kBAAkB;YACzB,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,oBAAoB;YAC3B,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,eAAe;YACtB,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,eAAe;YACtB,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,gBAAgB;YACpB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,kBAAkB;YACzB,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,sBAAsB;YAC7B,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,sBAAsB;YAC7B,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,mBAAmB;YAC1B,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,mBAAmB;YAC1B,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,wDAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,wDAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,aAAa;YACpB,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,SAAS;gBACtB,iBAAiB,EAAE,OAAO;gBAC1B,eAAe,EAAE,MAAM;aAC1B;SACJ,CAAC;QAEF,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,2DAAW,CAAC,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,2DAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,eAAe;YACtB,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,YAAY;gBACzB,iBAAiB,EAAE,OAAO;gBAC1B,eAAe,EAAE,MAAM;aAC1B;SACJ,CAAC;QAIF,iFAAe,CAAC;YACZ,EAAE,EAAE,kBAAkB;YACtB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,oBAAoB;YAC3B,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,aAAa;aACzB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,aAAa;aACzB;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,aAAa;aACzB;SACJ,CAAC,CAAC;IACP,CAAC;;AA3Ne,gBAAI,GAAG,CAAC,sCAAsC,CAAC;AAC/C,uBAAW,GAAG,QAAQ;AAC/B,sBAAU,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvQF;AAChB;AACqE;AAC1E;AAEd;AAC2D;AACM;AACH;AACV;AACrB;AACJ;AACA;AACJ;AACqC;AAC1B;AACkB;AACxB;AACK;AACP;AAC4B;AACxB;AACI;AACN;IAQlD,eAAe,SAAf,eAAgB,SAAQ,qEAAc;IAqF/C,YAAoB,WAAwB,EAAU,eAAgC,EAClF,KAAwB,EAA+C,IAAI;QAC3E,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAFH,gBAAW,GAAX,WAAW,CAAa;QAAU,oBAAe,GAAf,eAAe,CAAiB;QACX,SAAI,GAAJ,IAAI;QA/E/E,oBAAe,GAAG,KAAK,CAAC;QAiBjB,gBAAW,GAAG,IAAI,wDAAY,EAAE;QA0BhC,sBAAiB,GAAG,IAAI,wDAAY,EAAE;QAqBnC,qBAAgB,GAAG,IAAI,wDAAY,EAAO;QAKpD,gBAAW,GAAG,KAAK,CAAC;QAgPpB,qBAAgB,GAAG,KAAK,CAAC;IApOzB,CAAC;QA5EU,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,IAAW,KAAK,CAAC,GAAG;QAChB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,yCAAE,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACtC;QACD,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;IAC3B,CAAC;QAMU,WAAW;QAClB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;SACzC;aAAM;YACH,OAAO,IAAI,CAAC,WAAW,CAAC;SAC3B;IACL,CAAC;IACD,IAAW,WAAW,CAAC,GAAG;QACtB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,CAAC;YACrC,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;aAC/D;SACJ;aAAM;YACH,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;YAC5B,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aACtD;SACJ;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;QAWG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE;YAChH,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC/B;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAQD,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,UAAU,CAAC,KAAK;QAChB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAMD,MAAM;QACF,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;SAChH;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAED,cAAc;QACV,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,QAAQ,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;YACzC,KAAK,yFAA4B,CAAC;YAClC,KAAK,gGAAmC,CAAC;YACzC,KAAK,mFAAsB,CAAC;YAC5B,KAAK,0FAA6B;gBAAE,MAAM,GAAG,IAAI,CAAC;gBAAC,MAAM;YAEzD,KAAK,2FAA8B,CAAC;YACpC,KAAK,kGAAqC,CAAC;YAC3C,KAAK,iFAAoB,CAAC;YAC1B,KAAK,wFAA2B;gBAAE,MAAM,GAAG,KAAK,CAAC;gBAAC,MAAM;SAC3D;QACD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IAC7B,CAAC;IAED,sBAAsB;QAClB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;SAChH;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC;QAC/D,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAChF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,uFAAgC,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3E,IAAI,QAAQ,KAAK,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE;gBACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC5B;iBAAM;gBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YACzE,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,uFAAgC,CAAC,CAAC,CAAC,EAAE;YAClE,IAAI,CAAC,IAAI,uEAAa,EAAE;gBACpB,IAAI,CAAC,oBAAoB,EAAE,CAAC;aAC/B;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,+FAAwC,CAAC,CAAC,KAAK,EAAE,EAAE;YACjF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;YACxF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,sFAAoC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACrF,IAAI,MAAM,EAAE;gBACR,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC;gBACpC,IAAI,MAAM,CAAC,aAAa,EAAE;oBACtB,IAAI,MAAM,CAAC,QAAQ,EAAE;wBACjB,yBAAyB;wBACzB,iHAAiH;qBACpH;yBAAM;wBACH,IAAI,CAAC,oBAAoB,EAAE,CAAC;qBAC/B;iBACJ;qBAAM;oBACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;oBACzF,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;oBAE7G,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;wBACvB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;qBACpC;oBACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;iBAChC;aACJ;iBAAM;gBACH,oEAAoE;aACvE;YACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACvB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC/C,IAAI,CAAC,MAAM,EAAE;wBACT,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;wBACxD,IAAI,CAAC,oBAAoB,EAAE,CAAC;qBAC/B;gBACL,CAAC,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,oBAAoB;QAChB,MAAM,cAAc,GAAG,EAAE,CAAC;QAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACtE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC1C,MAAM,QAAQ,GAAG,EAAE,CAAC;gBACpB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACnC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACrB,MAAM,IAAI,GAAG,gEAAY,CAAC,uEAAa,EAAE,IAAI,CAAC,CAAC;oBAC/C,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;oBACzC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC,CAAC,CAAC;gBACH,cAAc,CAAC,IAAI,CAAC;oBAChB,IAAI,EAAE,KAAK;oBACX,KAAK,EAAE,KAAK;oBACZ,QAAQ,EAAE,QAAQ;oBAClB,QAAQ,EAAE,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;iBAC5E,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,eAAe,GAAG,yCAAE,CAAC,cAAc,CAAC,CAAC;QAC1C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,QAAQ,CAAC,KAAgB;QACrB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;YAC5D,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO;YACpF,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACvB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;aACpC;SACJ;IACL,CAAC;IACD,cAAc;QACV,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE;gBAC1C,IAAI,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE;oBACrC,iHAAiH;iBACpH;qBAAM;oBACH,IAAI,CAAC,oBAAoB,EAAE,CAAC;iBAC/B;aACJ;iBAAM;gBACH,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;oBACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;iBAChH;gBACD,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC7G,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;aACpC;SACJ;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC/C,IAAI,CAAC,MAAM,EAAE;oBACT,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;oBACxD,IAAI,CAAC,oBAAoB,EAAE,CAAC;iBAC/B;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IACD,QAAQ,CAAC,KAAK;QACV,IAAI,MAAM,CAAC;QACX,MAAM,GAAG,wFAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,yFAAkC,CAAC;YAC/B,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YACtC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAClD,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;SACvC,CAAC,CAAC;QACH,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,aAAa,CAAC;IAC9D,CAAC;IAED,UAAU,CAAC,IAAI;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;YACZ,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC7C,sFAA+B,CAAC,IAAI,CAAC,CAAC;YACtC,2FAAoC,CAAC;gBACjC,SAAS,EAAE,IAAI,CAAC,EAAE;gBAClB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC5C,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;aACvC,CAAC,CAAC;SACN;IACL,CAAC;IAED,YAAY,CAAC,IAAI,EAAE,KAAK;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,uFAAgC,CAAC,IAAI,CAAC,CAAC;YACvC,sFAA+B,CAAC,IAAI,CAAC,CAAC;SACzC;IACL,CAAC;IACD,kBAAkB;QACd,QAAQ,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YACpC,KAAK,mFAAsB,CAAC;YAC5B,KAAK,0FAA6B,CAAC;YACnC,KAAK,2FAA8B,CAAC;YACpC,KAAK,kGAAqC,CAAC,CAAC,OAAO,YAAY,CAAC;YAChE,KAAK,iFAAoB,CAAC;YAC1B,KAAK,wFAA2B,CAAC;YACjC,KAAK,yFAA4B,CAAC;YAClC,KAAK,gGAAmC,CAAC,CAAC,OAAO,WAAW,CAAC;SAChE;IACL,CAAC;IACD,OAAO,CAAC,KAAyB;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC9C,wEAAe,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QACtE,yFAAkC,CAAC;YAC/B,SAAS,EAAE,IAAI,CAAC,EAAE;YAClB,KAAK,EAAE,KAAK,CAAC,YAAY;YACzB,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;YACvC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;SAC1C,CAAC,CAAC;IACP,CAAC;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM;QACjB,IAAI,IAAI,IAAI,MAAM,EAAE;YAChB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;SACnC;QACD,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YACvB,OAAO,WAAW,CAAC;SACtB;QACD,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE;YAC3B,OAAO,WAAW,CAAC;SACtB;IACL,CAAC;IAGD,kBAAkB,CAAC,OAAgB;QAC/B,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACnC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;;AAhUM,oBAAI,GAAQ,QAAS;AACrB,uBAAO,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,QAAQ;CACjB,CAAC;;;;;4CAgF6B,kDAAM,SAAC,mFAA4B;;;oBA3EjE,iDAAK;0BAYL,kDAAM;0BAIN,iDAAK;gCAsBL,kDAAM;yBASN,iDAAK;+BAaL,kDAAM;;AAvEE,eAAe;IAN3B,yDAAS,CAAC;QACP,QAAQ,EAAE,YAAY;QACtB,wEAAsC;QAEtC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,eAAe;AAAA;AAqUrB,MAAM,sBAAsB;IAW/B,YAAY,SAA0B,EAAE,KAAK,EAAU,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;QAT/E,eAAU,GAAU,EAAE,CAAC;QAEvB,YAAO,GAAqB,IAAI,0CAAO,EAAE,CAAC;QAE1C,cAAS,GAAG,CAAC,CAAC;QACd,eAAU,GAAG,GAAG,CAAC;QACjB,WAAM,GAAG,KAAK,CAAC;QACf,gBAAW,GAAG,KAAK,CAAC;QAGhB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC;QAC9B,IAAI,CAAC,iBAAiB,GAAG,4EAA0B,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IACnG,CAAC;IAED,eAAe;QACX,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;YACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM,MAAM,GAAG,8EAA0B,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAClE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;YACnD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;YAClD,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;gBACxF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;gBACpB,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;iBACnD;qBAAM;oBACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;iBACtB;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;SACN;IACL,CAAC;;AAEE,MAAM,cAAe,SAAQ,oEAAS;IAEzC,MAAM,CAAC,SAAS;QACZ,qFAAmB,CAAC;YAChB,GAAG,EAAC,sCAAsC;YAC1C,EAAE,EAAE,QAAQ;YACZ,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,yFAAc;YACvB,OAAO,EAAE,+FAAyB;YAClC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC;YACxC,CAAC;SACJ,CAAC,CAAC;QAGH,iFAAe,CAAC;YACZ,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,wEAAW;aAC1B;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,gBAAgB;YACpB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,cAAc;YACrB,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,4EAAiB;aAChC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,kBAAkB;YACtB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,sGAAoB,CAAC;YAClD,KAAK,EAAE,gBAAgB;YACvB,QAAQ,EAAE;gBACN,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,+EAAoB;aACnC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,mBAAmB;aAC/B;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,kBAAkB;YACtB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,gGAAoB,CAAC;YAClD,QAAQ,EAAE;gBACN,OAAO,EAAE,oBAAoB;aAChC;SACJ,CAAC,CAAC;QACH,iFAAe,CAAC;YACZ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI,iEAAe,CAAC,mGAAmB,CAAC;YACjD,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE;gBACN,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,CAAC;aACb;SACJ,CAAC,CAAC;IACP,CAAC;;AA5Ee,mBAAI,GAAG,CAAC,sCAAsC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnZ6C;AAC5C;AACH;AACI;AACQ;AACZ;AACE;AACsB;AAChD;IAQ5B,aAAa,SAAb,aAAa;IAiCtB,YAAoB,MAAc,EAAS,KAAwB;QAA/C,WAAM,GAAN,MAAM,CAAQ;QAAS,UAAK,GAAL,KAAK,CAAmB;QA/BnE,kBAAa,GAAG,EAAE,CAAC;QACnB,cAAS,GAAG,EAAE,CAAC;QACf,SAAI,GAAG,uEAAW,CAAC,4EAAgB,CAAC,CAAC;QACrC,aAAQ,GAAG,+EAAe,CAAC,qFAAqB,CAAC,CAAC;QAClD,UAAK,GAAG,EAAE,CAAC;IA4BX,CAAC;IA1BO,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAkB;QAC9C,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACb,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE;oBACd,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC3C,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC;oBACvB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC;oBACvB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;oBACjB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;oBAEnB,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAClE,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;wBACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;wBACxB,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;qBAC9B;oBAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACrB;YACL,CAAC,CAAC,CAAC;SACN;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAKD,QAAQ;QACJ,8BAA8B;QAC9B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,oFAA6B,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACtH,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,qFAA8B,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACzH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,sFAA+B,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClI,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,GAAG,kGAA2C,CAAC,CAAC,GAAG,EAAE,EAAE;YAC3F,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,GAAG,EAAE;gBACL,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,+EAAQ,EAAE,CAAC,CAAC;aAClF;iBAAM;gBACH,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;aACvB;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,wFAAkC,CAAC,CAAC,MAAM,EAAE,EAAE;YAC7E,IAAI,MAAM,EAAE;gBACR,IAAI,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;gBAChC,IAAI,CAAC,OAAO,EAAE;oBACV,OAAO,GAAG,IAAI,mEAAO,EAAE,CAAC;iBAC3B;gBACD,IAAI,CAAC,IAAI,GAAG,uEAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACtC,IAAI,CAAC,QAAQ,GAAG,+EAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAClD,MAAM,KAAK,GAAG,EAAE,CAAC;gBACjB,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE;oBACtC,KAAK,CAAC,OAAO,CAAC,GAAG,kFAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;iBAC1D;gBACD,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE;oBACxC,KAAK,CAAC,QAAQ,CAAC,GAAG,kFAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;iBAC5D;gBACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;aACtB;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,YAAY;IAChB,CAAC;IAED,WAAW;QACP,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;gBACrC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;aACzC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS,CAAC,KAAiB;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,CAAC,cAAc,EAAE,CAAC;IAC3B,CAAC;IAED,WAAW,CAAC,EAAE;QACV,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,KAAK,CAAC,GAAG,EAAE;gBACX,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrC,gFAAyB,CAAC,IAAI,CAAC,CAAC;aACnC;SACJ;IACL,CAAC;;;;;;;iCAvFA,iDAAK;;AAPG,aAAa;IANzB,yDAAS,CAAC;QACP,QAAQ,EAAE,SAAS;QACnB,sEAAoC;QAEpC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,aAAa;AAAA;AAiGnB,MAAM,QAAS,SAAQ,oFAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjHmD;AACzD;AACY;AACoB;AACN;AACT;AACW;AACJ;AACE;IAQlD,cAAc,SAAd,cAAe,SAAQ,oEAAc;IAkB9C,YAAmB,KAAwB,EAA+C,IAAI,EAAU,OAAoB;QACxH,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADJ,UAAK,GAAL,KAAK,CAAmB;QAA+C,SAAI,GAAJ,IAAI;QAAU,YAAO,GAAP,OAAO,CAAa;QAF5H,cAAS,GAAG,KAAK,CAAC;IAIlB,CAAC;IAbD,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC;SAC3D;IACL,CAAC;IAOD,kBAAkB;QACd,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,GAAG,EAAE;YACL,GAAG,CAAC,WAAW,EAAE,CAAC;SACrB;QACD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACzF,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,EAAE;IACf,CAAC;IACD,sBAAsB;QAClB,IAAI,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC;IACO,IAAI;QACR,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,sEAAa,EAAE;YACnD,IAAI,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;YAC5C,OAAO,MAAM,EAAE;gBACX,IAAI,MAAM,CAAC,WAAW,IAAI,cAAc,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE;oBACxF,OAAO;iBACV;gBACD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;aAC1B;SACJ;QAED,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE;YACzC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gBACvE,MAAM,IAAI,GAAG,+DAAY,CAAC,wDAAM,EAAE,KAAK,CAAC,CAAC;gBACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;gBAClC,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;oBACnC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAChC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;oBAChE,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;iBAClD;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;gBACpC,IAAI,SAAS,EAAE;oBACX,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;iBACpD;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;gBACpC,IAAI,SAAS,EAAE;oBACX,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;iBACpD;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;gBACpC,IAAI,MAAM,EAAE;oBACR,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC;oBACjD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBACnB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;4BACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACpC,CAAC,CAAC,CAAC;qBACN;oBACD,IAAI,CAAC,UAAU,EAAE,CAAC;iBACrB;gBACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;SACN;aAAM;YACH,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aAC3D;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAC7C;IACL,CAAC;IACO,UAAU,CAAC,IAAI;QACnB,IAAI,CAAC,EAAE,GAAG,oDAAS,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SAClD;IACL,CAAC;IACD,WAAW,CAAC,MAAM;QACd,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,QAAQ,MAAM,CAAC,aAAa,CAAC,EAAE;gBAC3B,KAAK,4EAAgB;oBAAE,IAAI,GAAG,MAAM,CAAC;oBAAC,MAAM;gBAC5C,KAAK,4EAAgB;oBAAE,IAAI,GAAG,MAAM,CAAC;oBAAC,MAAM;gBAC5C,KAAK,8EAAkB;oBAAE,IAAI,GAAG,QAAQ,CAAC;oBAAC,MAAM;gBAChD,KAAK,8EAAkB;oBAAE,IAAI,GAAG,QAAQ,CAAC;oBAAC,MAAM;gBAChD;oBAAS,IAAI,GAAG,MAAM,CAAC;oBAAC,MAAM;aACjC;YACD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;SAC3C;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC7B;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,kBAAkB;QACd,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAEtB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gBACpD,IAAI,CAAC,KAAK,IAAI,EAAE;oBACZ,IAAI,CAAC,cAAc,EAAE,CAAC;iBAEzB;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,YAAY;QACR,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE;YACzE,qFAA+B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACtD;IACL,CAAC;;AA9HM,mBAAI,GAAQ,UAAW;AACvB,sBAAO,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,UAAU;CACnB,CAAC;;;4CAa4C,kDAAM,SAAC,kFAA4B;;;AAlBxE,cAAc;IAN1B,yDAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,uEAAqC;QAErC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,cAAc;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChB0H;AAChH;AACY;AACW;AACS;AACf;AACuB;AACZ;AACQ;AACV;IAQlD,YAAY,SAAZ,YAAa,SAAQ,oEAAc;IAe5C,YAAoB,eAAyC,EAAE,KAAwB,EAA+C,IAAI;QACtI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,oBAAe,GAAf,eAAe,CAA0B;QAAyE,SAAI,GAAJ,IAAI;QAM1I,cAAS,GAAG,KAAK,CAAC;QAClB,SAAI,GAAG,iGAAuC,EAAE,CAAC;QACjD,kBAAa,GAAG,KAAK,CAAC;IANtB,CAAC;IAQD,kBAAkB;QACd,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,GAAG,EAAE;YACL,GAAG,CAAC,WAAW,EAAE,CAAC;SACrB;QACD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACzF,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,2FAAqC,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5E,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe,IAAI,IAAI,EAAE;YACjD,IAAI,+EAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,EAAE;gBACzD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;gBAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,MAAM,OAAO,GAAG,+EAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC;gBAChF,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;gBACtE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBACnE,IAAI,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE;oBAC1C,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;wBACjD,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;wBAClE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;4BACnB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;wBACtF,CAAC,CAAC;qBACL;iBACJ;gBACD,IAAI,+EAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE;oBACjE,+EAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;wBAC3E,IAAI,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE;4BAC1C,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;4BAClE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gCACnB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;4BACtF,CAAC,CAAC,CAAC;yBACN;oBACL,CAAC,CAAC,CAAC;iBACN;gBAGD,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;aACvD;SACJ;aAAM;YACH,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBACrD,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;oBACnC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC9B,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;iBACjE;gBACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;aAC7C;iBAAM;gBACH,yEAAuB,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;oBAChE,MAAM,IAAI,GAAG,gEAAY,CAAC,wDAAM,EAAE,KAAK,CAAC,CAAC;oBACzC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;oBAClC,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;wBACnC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC9B,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;wBAC9D,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;qBAClD;oBACD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;oBACpC,IAAI,SAAS,EAAE;wBACX,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;qBACpD;oBACD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;oBACpC,IAAI,SAAS,EAAE;wBACX,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;qBACpD;oBACD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;oBACpC,IAAI,MAAM,EAAE;wBACR,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC;wBACjD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;4BACnB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gCACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;4BACpC,CAAC,CAAC,CAAC;yBACN;wBACD,IAAI,CAAC,UAAU,EAAE,CAAC;qBACrB;oBACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC3B,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IACO,UAAU,CAAC,IAAI;QACnB,IAAI,CAAC,EAAE,GAAG,oDAAS,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SAClD;IACL,CAAC;IACD,WAAW,CAAC,MAAM;QACd,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,QAAQ,MAAM,CAAC,aAAa,CAAC,EAAE;gBAC3B,KAAK,4EAAgB;oBAAE,IAAI,GAAG,MAAM,CAAC;oBAAC,MAAM;gBAC5C,KAAK,4EAAgB;oBAAE,IAAI,GAAG,MAAM,CAAC;oBAAC,MAAM;gBAC5C,KAAK,8EAAkB;oBAAE,IAAI,GAAG,QAAQ,CAAC;oBAAC,MAAM;gBAChD,KAAK,8EAAkB;oBAAE,IAAI,GAAG,QAAQ,CAAC;oBAAC,MAAM;gBAChD;oBAAS,IAAI,GAAG,MAAM,CAAC;oBAAC,MAAM;aACjC;YACD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;SACzC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC7B;IACL,CAAC;IAED,kBAAkB;QACd,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gBAClD,IAAI,CAAC,KAAK,IAAI,EAAE;oBACZ,GAAG,CAAC,WAAW,EAAE,CAAC;oBAClB,IAAI,CAAC,cAAc,EAAE,CAAC;iBACzB;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,YAAY;QACR,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE;YACvE,qFAA+B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACpD;IACL,CAAC;;AAlJM,iBAAI,GAAQ,QAAS;AACrB,oBAAO,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE;QACJ,MAAM,EAAE,EAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAC;QAC7B,KAAK,EAAE,EAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAC;KAC/B;CACJ,CAAC;;;;4CAMwF,kDAAM,SAAC,kFAA4B;;;+BAJ5H,qDAAS,SAAC,SAAS,EAAE,EAAE,IAAI,EAAE,4DAAgB,EAAE;;AAXvC,YAAY;IANxB,yDAAS,CAAC;QACP,QAAQ,EAAE,YAAY;QACtB,qEAAmC;QAEnC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,YAAY;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAOa4yC,sBAAsB,SAAtBA,sBAAsB,SAASnjC,8FAAT,CAAuB;;;IAGtD,iBAAY,EAAZ;IACA,gBAAW,IAAIyI,gFAAJ,EAAX;EAiLH;;EA/K6B,IAAtB26B,sBAAsB;IACtB,IAAI,KAAK50B,YAAL,IAAqB,KAAKA,YAAL,CAAkB2X,eAA3C,EAA4D;MACxD,OAAO,KAAK3X,YAAL,CAAkB2X,eAAlB,CAAkCtrB,OAAzC;IACH;;IACD,OAAO,EAAP;EACH;;EACyB,IAAtBuoC,sBAAsB,CAACvvC,GAAD,EAAI;IAC1B,IAAI,KAAK2a,YAAL,IAAqB,KAAKA,YAAL,CAAkB2X,eAAvC,IAA0DtyB,GAAG,KAAK,KAAK2a,YAAL,CAAkB2X,eAAlB,CAAkCtrB,OAAxG,EAAiH;MAC7G,KAAK2T,YAAL,CAAkB2X,eAAlB,CAAkCtrB,OAAlC,GAA4ChH,GAA5C;IACH;EACJ;;EAEgC,OAAlBwvC,kBAAkB,CAACljC,MAAD,EAASmjC,QAAT,EAAmBC,QAAnB,EAA6BzY,QAA7B,EAA+C;IAC5E,IAAI3qB,MAAM,CAAC1O,QAAX,EAAqB;MACjB0O,MAAM,CAAC1O,QAAP,CAAgBO,OAAhB,CAAwBwxC,IAAI,IAAG;QAC3B,IAAIA,IAAI,CAAC5xC,WAAL,KAAqB,UAAzB,EAAqC;UACjC,MAAM6xC,QAAQ,GAAG,IAAIC,mBAAJ,CAAwB5Y,QAAQ,CAACjiB,MAAjC,CAAjB;UACA46B,QAAQ,CAAC5oC,OAAT,GAAmB2oC,IAAI,CAAChkC,IAAxB;UACAikC,QAAQ,CAACh6B,WAAT,GAAuB,IAAvB;UACAg6B,QAAQ,CAAC1oC,QAAT,GAAoB,EAApB;UACA0oC,QAAQ,CAACF,QAAT,GAAoBA,QAAQ,IAAIC,IAAI,CAACG,eAAL,KAAyB,IAAzD;;UACA,IAAIH,IAAI,CAACI,gBAAT,EAA2B;YACvBJ,IAAI,CAACI,gBAAL,CAAsB5xC,OAAtB,CAA8B6xC,EAAE,IAAG;cAC/B,MAAMl9B,IAAI,GAAG,IAAI+8B,mBAAJ,CAAwB5Y,QAAQ,CAACjiB,MAAjC,CAAb;cACAlC,IAAI,CAAC9L,OAAL,GAAegpC,EAAE,CAAChpC,OAAlB;cACA8L,IAAI,CAACwf,eAAL,GAAuB0d,EAAE,CAAC1d,eAA1B;cACAxf,IAAI,CAAC48B,QAAL,GAAgBE,QAAQ,CAACF,QAAzB;cACA58B,IAAI,CAACm9B,YAAL,GAAoBN,IAApB;cACAC,QAAQ,CAAC1oC,QAAT,CAAkB7K,IAAlB,CAAuByW,IAAvB;YACH,CAPD;UAQH;;UACD28B,QAAQ,CAACpzC,IAAT,CAAcuzC,QAAd;UACAN,sBAAsB,CAACE,kBAAvB,CAA0CG,IAA1C,EAAgDC,QAAQ,CAAC1oC,QAAzD,EAAmE0oC,QAAQ,CAACF,QAA5E,EAAsFzY,QAAtF;QACH,CAlBD,MAkBO;UACHqY,sBAAsB,CAACE,kBAAvB,CAA0CG,IAA1C,EAAgDF,QAAhD,EAA0DC,QAA1D,EAAoEzY,QAApE;QACH;MACJ,CAtBD;IAuBH;EACJ;;EAEDh7B,QAAQ;IACJ,MAAMA,QAAN;IACA,KAAKi0C,SAAL;EACH;;EAEDA,SAAS;IACL,MAAM5qC,IAAI,GAAG,EAAb;IACA,MAAMgH,MAAM,GAAG,KAAK7P,MAApB;IACA,KAAKmY,QAAL,CAAcG,KAAd;;IACA,IAAIzI,MAAJ,EAAY;MACR,IAAIA,MAAM,CAACyjC,gBAAX,EAA6B;QACzBzjC,MAAM,CAACyjC,gBAAP,CAAwB5xC,OAAxB,CAAgC6xC,EAAE,IAAG;UACjC,MAAMl9B,IAAI,GAAG,IAAI+8B,mBAAJ,CAAwB,KAAKj7B,QAAL,CAAcI,MAAtC,CAAb;UACAlC,IAAI,CAAC9L,OAAL,GAAegpC,EAAE,CAAChpC,OAAlB;UACA8L,IAAI,CAACwf,eAAL,GAAuB0d,EAAvB;UACAl9B,IAAI,CAAC48B,QAAL,GAAgB,IAAhB;UACA58B,IAAI,CAACm9B,YAAL,GAAoB3jC,MAApB;UACAhH,IAAI,CAACjJ,IAAL,CAAUyW,IAAV;QACH,CAPD;MAQH;;MACDw8B,sBAAsB,CAACE,kBAAvB,CAA0CljC,MAA1C,EAAkDhH,IAAlD,EAAwD,IAAxD,EAA8D,KAAKsP,QAAnE;IACH;;IACD,KAAKgC,SAAL,GAAiBtR,IAAjB;EACH;;EAED6qC,gBAAgB;IACZ,IAAI,KAAKx1B,YAAL,IAAqB,KAAKA,YAAL,CAAkB2X,eAA3C,EAA4D;MACxD,KAAK3X,YAAL,CAAkB3T,OAAlB,GAA4B,KAAK2T,YAAL,CAAkB2X,eAAlB,CAAkCtrB,OAA9D;MACAjL,4FAAA,CAAsC,KAAK4e,YAAL,CAAkBs1B,YAAlB,CAA+B5pC,EAArE,EAAyE,kBAAzE,EACI,KAAKsU,YAAL,CAAkBs1B,YAAlB,CAA+BF,gBADnC;MAEA,KAAK7wC,KAAL,CAAW0B,aAAX;IACH;EACJ;;EAEDyvC,kBAAkB;IACd,MAAM/jC,MAAM,GAAG,KAAK7P,MAApB;;IACA,IAAI6P,MAAJ,EAAY;MACR,MAAMgkC,KAAK,GAAG,IAAIlB,gHAAJ,EAAd;MACAkB,KAAK,CAACtpC,OAAN,GAAgB,qBAAhB;MACAspC,KAAK,CAACjqC,EAAN,GAAWqf,oDAAA,EAAX;MACA,MAAM5S,IAAI,GAAG,IAAI+8B,mBAAJ,CAAwB,KAAKj7B,QAAL,CAAcI,MAAtC,CAAb;MACAlC,IAAI,CAAC9L,OAAL,GAAespC,KAAK,CAACtpC,OAArB;MACA8L,IAAI,CAACwf,eAAL,GAAuBge,KAAvB;MACAx9B,IAAI,CAAC48B,QAAL,GAAgB,IAAhB;MACA58B,IAAI,CAACm9B,YAAL,GAAoB3jC,MAApB;MACA,KAAKikC,UAAL,CAAgBz9B,IAAhB,EAAsB,MAAK;QACvB,IAAI,CAACxG,MAAM,CAACyjC,gBAAZ,EAA8B;UAC1BzjC,MAAM,CAACyjC,gBAAP,GAA0B,EAA1B;QACH;;QACDzjC,MAAM,CAACyjC,gBAAP,CAAwB1zC,IAAxB,CAA6Bi0C,KAA7B;QACA,MAAMp1B,KAAK,GAAG,KAAKtE,SAAL,CAAegC,KAAf,EAAd;QACAsC,KAAK,CAACpQ,MAAN,CAAawB,MAAM,CAACyjC,gBAAP,CAAwBlyC,MAAxB,GAAiC,CAA9C,EAAiD,CAAjD,EAAoDiV,IAApD;QACA,KAAK8D,SAAL,GAAiBsE,KAAjB;QACA,KAAKP,YAAL,GAAoB7H,IAApB;MACH,CATD;IAUH;EACJ;;EAED09B,sBAAsB;IAClB,MAAMlkC,MAAM,GAAG,KAAK7P,MAApB;IACA,MAAMg0C,KAAK,GAAG,KAAK91B,YAAL,CAAkB2X,eAAhC;;IACA,IAAIhmB,MAAJ,EAAY;MACR,MAAMgkC,KAAK,GAAG,IAAIlB,gHAAJ,EAAd;MACAkB,KAAK,CAACtpC,OAAN,GAAgBypC,KAAK,CAACzpC,OAAN,GAAgB,UAAhC;MACAspC,KAAK,CAACjqC,EAAN,GAAWqf,oDAAA,EAAX;MACA4qB,KAAK,CAAC,aAAD,CAAL,GAAuBG,KAAK,CAAC/c,WAA7B;MACA4c,KAAK,CAAChe,eAAN,GAAwBme,KAAK,CAACne,eAA9B;MACAge,KAAK,CAAChe,eAAN,CAAsB,IAAtB,IAA8B5M,oDAAA,EAA9B;MACA4qB,KAAK,CAAC,cAAD,CAAL,GAAwBG,KAAK,CAACre,YAA9B;MACA,MAAMtf,IAAI,GAAG,IAAI+8B,mBAAJ,CAAwB,KAAKj7B,QAAL,CAAcI,MAAtC,CAAb;MACAlC,IAAI,CAAC9L,OAAL,GAAespC,KAAK,CAACtpC,OAArB;MACA8L,IAAI,CAACwf,eAAL,GAAuBge,KAAvB;MACAx9B,IAAI,CAAC48B,QAAL,GAAgB,IAAhB;MACA58B,IAAI,CAACm9B,YAAL,GAAoB3jC,MAApB;MACA,KAAKikC,UAAL,CAAgBz9B,IAAhB,EAAsB,MAAK;QACvB,IAAI,CAACxG,MAAM,CAACyjC,gBAAZ,EAA8B;UAC1BzjC,MAAM,CAACyjC,gBAAP,GAA0B,EAA1B;QACH;;QACDzjC,MAAM,CAACyjC,gBAAP,CAAwB1zC,IAAxB,CAA6Bi0C,KAA7B;QACA,MAAMp1B,KAAK,GAAG,KAAKtE,SAAL,CAAegC,KAAf,EAAd;QACAsC,KAAK,CAACpQ,MAAN,CAAawB,MAAM,CAACyjC,gBAAP,CAAwBlyC,MAAxB,GAAiC,CAA9C,EAAiD,CAAjD,EAAoDiV,IAApD;QACA,KAAK8D,SAAL,GAAiBsE,KAAjB;QACA,KAAKP,YAAL,GAAoB7H,IAApB;MACH,CATD;IAWH;EACJ;;EAED49B,mBAAmB;IACf,IAAI,KAAK/1B,YAAL,IAAqB,KAAKA,YAAL,CAAkB2X,eAAvC,IAA0D,KAAK3X,YAAL,CAAkB+0B,QAAhF,EAA0F;MACtF,KAAKa,UAAL,CAAgB,KAAK51B,YAArB,EAAmC,IAAnC;IACH;EACJ;;EAEKg2B,qBAAqB;IAAA;;IAAA;MACvB,MAAM79B,IAAI,GAAG,KAAI,CAAC6H,YAAlB;;MACA,IAAI7H,IAAI,IAAIA,IAAI,CAACwf,eAAb,IAAgCxf,IAAI,CAAC48B,QAAzC,EAAmD;QAC/C,MAAM1S,IAAI,GAAG,IAAI3oB,uEAAJ,CAAwB,wEAAxB,CAAb;QACA2oB,IAAI,CAACG,YAAL,CAAkB9gC,IAAlB,CAAuByW,IAAI,CAACwf,eAAL,CAAqBtrB,OAA5C;QACA,MAAMkQ,MAAM,SAASxC,+FAAA,CAA4BsoB,IAA5B,EAAkC,IAAI3oB,uEAAJ,CAAwB,4BAAxB,CAAlC,EACjBG,yFADiB,EACQC,uFADR,CAArB;;QAEA,IAAIyC,MAAM,KAAKgjB,sFAAf,EAAqC;UACjCpnB,IAAI,CAACm9B,YAAL,CAAkBF,gBAAlB,CAAmCjlC,MAAnC,CAA0CgI,IAAI,CAACm9B,YAAL,CAAkBF,gBAAlB,CAAmCvlC,OAAnC,CAA2CsI,IAAI,CAACwf,eAAhD,CAA1C,EAA4G,CAA5G;;UACA,KAAI,CAAC4d,SAAL;;UACA,KAAI,CAACv1B,YAAL,GAAoB,IAApB;UACA5e,4FAAA,CAAsC+W,IAAI,CAACm9B,YAAL,CAAkB5pC,EAAxD,EAA4D,kBAA5D,EAAgFyM,IAAI,CAACm9B,YAAL,CAAkBF,gBAAlG;QACH;MACJ;IAbsB;EAc1B;;EAEDQ,UAAU,CAACz9B,IAAD,EAAOgyB,OAAP,EAAc;IACpB,IAAIhyB,IAAI,CAACwf,eAAT,EAA0B;MACtB8M,mFAAA,CAAsB;QAClB4B,WAAW,EAAEqO,4GADK;QAElB5oC,QAAQ,EAAE;UAAEjH,IAAI,EAAEsT,IAAI,CAACwf,eAAb;UAA8B71B,MAAM,EAAEqW,IAAI,CAACm9B;QAA3C,CAFQ;QAGlBrQ,KAAK,EAAE9sB,IAAI,CAACwf,eAAL,CAAqBtrB,OAHV;QAIlB84B,OAAO,EAAEZ,gFAJS;QAKlB8C,OAAO,EAAG7kC,MAAD,IAAW;UAChB,IAAIA,MAAM,YAAYqlC,kGAAtB,EAA2C;YACvC1vB,IAAI,CAACwf,eAAL,CAAqBA,eAArB,GAAuCn1B,MAAM,CAACm1B,eAA9C;YACAxf,IAAI,CAACwf,eAAL,CAAqBoB,WAArB,GAAmCv2B,MAAM,CAACu2B,WAA1C;YACA5gB,IAAI,CAACwf,eAAL,CAAqBF,YAArB,GAAoCj1B,MAAM,CAACi1B,YAA3C;;YACA,IAAI,OAAO0S,OAAP,KAAmB,UAAvB,EAAmC;cAC/BA,OAAO;YACV;;YACD/oC,4FAAA,CAAsC+W,IAAI,CAACm9B,YAAL,CAAkB5pC,EAAxD,EAA4D,kBAA5D,EAAgFyM,IAAI,CAACm9B,YAAL,CAAkBF,gBAAlG;UACH;;UACD,OAAO,IAAP;QACH,CAhBiB;QAiBlBxP,UAAU,EAAE,OAjBM;QAkBlBC,SAAS,EAAE,OAlBO;QAmBlBC,SAAS,EAAE;MAnBO,CAAtB;IAqBH;EACJ;;AApLqD;AAA7C6O,sBAAsB,uDALlC1zC,yDAAS,CAAC;EACP4C,QAAQ,EAAE,0BADH;EAEPC,UAAAA,sEAFO;;AAAA,CAAD,CAKyB,GAAtB6wC,sBAAsB,CAAtB;AAAAA;AAuLP,MAAOO,mBAAP,SAAmCl7B,qFAAnC,CAAgD;;;IAElD,gBAAW,KAAX;EAEH;;AAJqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5Me;AACE;AAC0C;AAClC;AACH;AACV;IAOrD,uBAAuB,SAAvB,uBAAuB;IAyChC,YAAoB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;QAxC5C,gBAAW,GAAG,KAAK,CAAC;QAGpB,SAAI,GAAQ,EAAE,CAAC;QACf,UAAK,GAAG,EAAE,CAAC;QACX,aAAQ,GAAG,EAAE,CAAC;QACd,cAAS,GAAG,EAAE,CAAC;QACf,gBAAW,GAAG,EAAE,CAAC;QACjB,oBAAe,GAAG,EAAE,CAAC;IAiCrB,CAAC;IA/BO,MAAM,CAAC,qBAAqB,CAAC,IAAI;QACrC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBACvB,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;SACN;QACD,OAAO,GAAG,GAAG,KAAK,GAAG,GAAG;IAC5B,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO;QACnE,kFAAqB,CAAC;YAClB,WAAW,EAAE,uBAAuB;YACpC,QAAQ,EAAE;gBACN,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,SAAS;aACvB;YACD,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACX,IAAI,CAAC,EAAE;oBACH,OAAO,CAAC,CAAC,CAAC,CAAC;iBACd;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,KAAK,EAAE,6BAA6B;SACvC,CAAC,CAAC;IACP,CAAC;IAKD,QAAQ;QACJ,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAC/B,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACzB,WAAW,CAAC,IAAI,CAAC;oBACb,IAAI,EAAE,CAAC;oBACP,WAAW,EAAE;wBACT,OAAO,EAAE,EAAE;wBACX,kBAAkB,EAAE,KAAK;wBACzB,MAAM,EAAE,EAAE;wBACV,UAAU,EAAE,IAAI;qBACnB;iBACJ,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAClC;QACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;YAClC,kFAA0B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACpD,IAAI,KAAK,EAAE;oBACP,MAAM,QAAQ,GAAG,EAAE,CAAC;oBACpB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBACjB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE;4BAC3E,MAAM,SAAS,GAAG;gCACd,OAAO,EAAE,IAAI,CAAC,OAAO;gCACrB,EAAE,EAAE,IAAI,CAAC,EAAE;gCACX,QAAQ,EAAE,EAAE;gCACZ,SAAS,EAAE,EAAE;6BAChB,CAAC;4BACF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACtB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;oCACpB,OAAO,EAAE,CAAC,CAAC,OAAO;oCAClB,EAAE,EAAE,CAAC,CAAC,EAAE;iCACX,CAAC,CAAC;4BACP,CAAC,CAAC,CAAC;4BACH,IAAI,EAAE,GAAG,CAAC,CAAC;4BACX,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gCAC1B,mFAAmF;gCAC/E,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oCACnD,MAAM,IAAI,GAAG,IAAI,oFAAa,CAAC,EAAE,EAAE,CAAC,CAAC;oCACrC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;oCAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oCACxB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;oCACnB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;oCACxB,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wCACxB,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;wCACvC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;wCAC1B,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC;wCACpC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,EAAE,CAAC;wCACzB,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;wCACvB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wCAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wCAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;wCAChG,IAAI,EAAE,EAAE;4CACJ,EAAE,CAAC,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;4CACnC,EAAE,CAAC,WAAW,CAAC,kBAAkB,GAAG,uBAAuB,CAAC,qBAAqB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;4CAC3F,EAAE,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;4CAC1C,EAAE,CAAC,WAAW,CAAC,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC;yCAChD;oCACL,CAAC,CAAC,CAAC;oCACH,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iCAClC;4BACL,CAAC,CAAC,CAAC;4BACH,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;yBAC5B;oBACL,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;oBACtB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;wBACvD,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;qBACnC;oBACD,IAAI,CAAC,aAAa,EAAE,CAAC;iBACxB;gBACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IAED,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAChC,IAAI,IAAI,CAAC,IAAI,EAAE;gBACX,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;aACzB;YACD,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;aACzC;SACJ;IACL,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,MAAM,MAAM,GAAG;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;gBACpB,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAC5B,MAAM,EAAE,EAAE;aACb,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBAC1B,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE;oBAClH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;iBAC/B;YACL,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;SACjB;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3D,IAAI,IAAI,EAAE;gBACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAChC,OAAO;aACV;SACJ;QACD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,SAAS;QACL,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE;gBACF,QAAQ,EAAE,EAAE;aACf;YACD,WAAW,EAAE;gBACT,OAAO,EAAE,EAAE;gBACX,kBAAkB,EAAE,KAAK;gBACzB,MAAM,EAAE,EAAE;aACb;SACJ,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB,CAAC,MAAM,EAAE,IAAI;QAC3B,IAAI,MAAM,IAAI,IAAI,EAAE;YAChB,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YAC1B,MAAM,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC1C,MAAM,CAAC,WAAW,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAC9C,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;SACrD;IACL,CAAC;IAED,oBAAoB,CAAC,UAAU;QAC3B,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE;YAC5D,MAAM,GAAG,GAAG,IAAI,mHAAqB,EAAE,CAAC;YACxC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;YACjB,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC;YACnD,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;YAC1C,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC;YAC3C,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;YACvB,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;YACvB,GAAG,CAAC,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC9C,MAAM,IAAI,GAAG;gBACT,0BAA0B,EAAE,GAAG;aAClC,CAAC;YACF,4FAA2B,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;gBACvC,IAAI,MAAM,IAAI,MAAM,CAAC,eAAe,EAAE;oBAClC,UAAU,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC;oBAClD,UAAU,CAAC,WAAW,CAAC,kBAAkB,GAAG,uBAAuB,CAAC,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;iBAC9G;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,YAAY,CAAC,IAAI;QACb,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;SACnC;IACL,CAAC;IAED,MAAM,CAAC,KAAK;QACR,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;;;;;AAjOQ,uBAAuB;IALnC,wDAAS,CAAC;QACP,QAAQ,EAAE,2BAA2B;QACrC,iFAA+C;;KAElD,CAAC;GACW,uBAAuB;AAAA;AAoO7B,MAAM,cAAe,SAAQ,oFAAa;;;QAI7C,WAAM,GAAG,EAAE,CAAC;IAChB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACrPyC;AACiD;AACJ;IAM1E,qBAAqB,SAArB,qBAAsB,SAAQ,6FAAY;IACnD,gBAAgB,CAAC,GAAG;QAChB,uGAA4B,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;;AAHQ,qBAAqB;IAJjC,wDAAS,CAAC;QACP,QAAQ,EAAE,yBAAyB;QACnC,gFAA8C;KACjD,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACR2B;AAC8B;AACpB;AACT;AACA;AACC;AACI;AACE;AACE;AACoB;AAC1B;AACM;AACD;IAMzD,iBAAiB,SAAjB,iBAAkB,SAAQ,6FAAY;IAY/C,YAAoB,gBAAkC,EAAU,UAA4B,EAChF,SAAqC,EAAG,KAAwB;QACxE,KAAK,CAAC,KAAK,CAAC,CAAC;QAFG,qBAAgB,GAAhB,gBAAgB,CAAkB;QAAU,eAAU,GAAV,UAAU,CAAkB;QAChF,cAAS,GAAT,SAAS,CAA4B;QAXjD,kBAAa,GAAG,EAAE,CAAC;QACnB,WAAM,GAAG,EAAE,CAAC;QAEZ,eAAU,GAAG,EAAE,CAAC;QAChB,WAAM,GAAG,EAAE,CAAC;QAIZ,sBAAiB,GAAG,EAAE,CAAC;IAKvB,CAAC;IAED,QAAQ;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,6FAAsC,CAAC,CAAC,MAAM,EAAE,EAAE;YACtE,IAAI,CAAC,MAAM,GAAG,oFAAgC,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACjD,IAAI,MAAM,EAAE;gBACR,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;aAC/B;QACL,CAAC,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,qEAAa,EAAE,CAAC;QACtC,SAAS,CAAC,IAAI,GAAG,UAAU,CAAC;QAC5B,SAAS,CAAC,QAAQ,GAAG,oEAAW,CAAC;QACjC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,MAAM,MAAM,GAAG,2FAAkC,EAAE,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC9D,IAAI,CAAC,EAAE;gBACH,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;aAC9B;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS;QACL,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACxC,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE;YAChC,IAAI,QAAQ,CAAC,UAAU,EAAE;gBACrB,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;oBAC/E,IAAI,CAAC,EAAE;wBACH,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;wBAChB,IAAI,QAAQ,CAAC,SAAS,EAAE;4BACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC;yBAChF;qBACJ;gBACL,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,uFAA+B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;oBAClE,IAAI,UAAU,EAAE;wBACZ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;wBAC7B,MAAM,MAAM,GAAG,EAAE,CAAC;wBAClB,IAAI,QAAQ,CAAC,SAAS,EAAE;4BACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gCACvB,IAAI,QAAQ,GAAG,KAAK,CAAC;gCACrB,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oCACxB,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,SAAS,EAAE;wCAChC,QAAQ,GAAG,IAAI,CAAC;wCAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;wCAC7B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;wCAC9B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4CACtC,MAAM,CAAC,IAAI,CAAC;gDACR,OAAO,EAAE,CAAC,CAAC,OAAO;gDAClB,EAAE,EAAE,CAAC,CAAC,EAAE;gDACR,QAAQ,EAAE,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;6CACrE,CAAC,CAAC;wCACP,CAAC,CAAC,CAAC;wCACH,OAAO,IAAI,CAAC;qCACf;oCACD,OAAO,KAAK,CAAC;gCACjB,CAAC,CAAC,CAAC;gCACH,OAAO,QAAQ,CAAC;4BACpB,CAAC,CAAC,CAAC;yBACN;wBACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;qBACxB;gBACL,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAED,gBAAgB;QACZ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,MAAM,WAAW,GAAG,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,IAAI,IAAI,EAAE;gBAC3C,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC;gBACzC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aAClC;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,IAAI,IAAI,EAAE;gBAC1C,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC;gBACxC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACjC;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,IAAI,EAAE;gBACtC,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC;gBACpC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC7B;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,IAAI,IAAI,EAAE;gBAC1C,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC;gBACxC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACjC;YACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3F,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,EAAE,CAAC;gBACnC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9B;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE;gBAClC,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE;oBACnC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;wBAC7F,IAAI,CAAC,EAAE;4BACH,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;yBACnB;oBACL,CAAC,CAAC,CAAC;iBACN;qBAAM;oBACH,uFAA+B,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;wBAChF,IAAI,UAAU,EAAE;4BACZ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;yBAChC;oBACL,CAAC,CAAC,CAAC;iBACN;aACJ;SACJ;QACD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAED,UAAU;QACN,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,IAAI,IAAI,EAAE;gBAC3C,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC;gBACzC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aAClC;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,IAAI,IAAI,EAAE;gBAC1C,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC;gBACxC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACjC;YACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3F,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,EAAE,CAAC;gBACnC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9B;YACD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;SACpC;IACL,CAAC;IAED,gBAAgB;QACZ,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxB,MAAM,WAAW,GAAG,EAAE,CAAC;gBACvB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;oBAC/B,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,EAAE;wBACjF,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC;wBAC/E,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;qBAClC;iBACJ;gBACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,IAAI,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE;oBAC/D,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBAC7D,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;iBACjC;gBACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3F,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,EAAE,CAAC;oBACnC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC9B;gBACD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;aACpC;YACD,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACtC,MAAM,CAAC,IAAI,CAAC;oBACR,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,QAAQ,EAAE,KAAK;iBAClB,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,YAAY,CAAC,GAAG;QACZ,IAAI,IAAI,CAAC,iBAAiB,IAAI,GAAG,EAAE;YAC/B,IAAI,GAAG,CAAC,QAAQ,EAAE;gBACd,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;oBAC/B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBAC9C;qBAAM;oBACH,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBAC5C;gBACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;aACjC;iBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;gBACtC,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC5D,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;oBACZ,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAC/C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;iBACjC;aACJ;SACJ;IACL,CAAC;IAED,YAAY;QACR,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,IAAI,EAAE;gBACtC,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC;gBACpC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC7B;YACD,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE;oBAC5D,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;oBAC1D,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;iBACjC;gBACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;oBACtE,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;oBACpE,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBAClC;aACJ;iBAAM;gBACH,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,IAAI,IAAI,EAAE;oBAC1C,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC;oBACxC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;iBACjC;gBACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,IAAI,IAAI,EAAE;oBAC3C,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC;oBACzC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBAClC;aACJ;YACD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;SACpC;IACL,CAAC;IAED,iBAAiB;QACb,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,eAAe,KAAK,UAAU,EAAE;gBACxG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;aACpD;YACD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;SACnC;IACL,CAAC;IAED,UAAU;QACN,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACnC,IAAI,GAAG,EAAE;YACL,MAAM,SAAS,GAAG,6EAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzD,2FAAkC,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;gBACjH,GAAG,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,IAAI,IAAI,EAAE;YAC5E,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAChD,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;SAC5C;IACL,CAAC;;;;;;;;AAhRQ,iBAAiB;IAJ7B,yDAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;QAC9B,2EAAyC;KAC5C,CAAC;GACW,iBAAiB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClB+B;AAC8B;AACpB;AACT;AACR;AACS;AACI;AACE;AACE;AACoB;AAC1B;IAOpD,mBAAmB,SAAnB,mBAAoB,SAAQ,6FAAY;IAUjD,YAAoB,gBAAkC,EAAU,UAAsC,EAAE,KAAwB;QAC5H,KAAK,CAAC,KAAK,CAAC,CAAC;QADG,qBAAgB,GAAhB,gBAAgB,CAAkB;QAAU,eAAU,GAAV,UAAU,CAA4B;QARtG,kBAAa,GAAG,EAAE,CAAC;QACnB,sBAAiB,GAAG,EAAE,CAAC;QACvB,eAAU,GAAG,EAAE,CAAC;IAQhB,CAAC;IAED,QAAQ;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,6FAAsC,CAAC,CAAC,MAAM,EAAE,EAAE;YACtE,IAAI,CAAC,MAAM,GAAG,oFAAgC,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACjD,IAAI,MAAM,EAAE;gBACR,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;aAC9B;QACL,CAAC,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,qEAAa,EAAE,CAAC;QACtC,SAAS,CAAC,IAAI,GAAG,UAAU,CAAC;QAC5B,SAAS,CAAC,QAAQ,GAAG,oEAAW,CAAC;QACjC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,MAAM,MAAM,GAAG,2FAAkC,EAAE,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC/D,IAAI,CAAC,EAAE;gBACH,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;aAC9B;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,iBAAiB;QACb,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,SAAS;QACL,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACxC,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,SAAS,EAAE;YACxD,uFAA+B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBAClE,IAAI,UAAU,EAAE;oBACZ,MAAM,QAAQ,GAAG,EAAE,CAAC;oBACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;oBACrB,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;wBACrB,IAAI,GAAG,CAAC,aAAa,KAAK,6DAAkB,EAAE;4BAC1C,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACnB,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,WAAW,IAAI,QAAQ,CAAC,KAAK,EAAE;gCAChD,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oCACxB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,KAAK,CAAC,EAAE;wCAC/D,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;wCAC7B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;wCAC9B,QAAQ,GAAG,IAAI,CAAC;qCACnB;oCACD,OAAO,QAAQ,CAAC;gCACpB,CAAC,CAAC,CAAC;6BACN;yBACJ;oBACL,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;iBAC9B;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,gBAAgB;QACZ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,MAAM,WAAW,GAAG,CAAC,WAAW,CAAC,CAAC;YAClC,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,IAAI,EAAE;gBACtC,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC;gBACpC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC7B;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,IAAI,IAAI,EAAE;gBAC1C,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC;gBACxC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACjC;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE;gBAClC,uFAA+B,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;oBAChF,IAAI,UAAU,EAAE;wBACZ,MAAM,QAAQ,GAAG,EAAE,CAAC;wBACpB,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACrB,IAAI,GAAG,CAAC,aAAa,KAAK,6DAAkB,EAAE;gCAC1C,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;6BACtB;wBACL,CAAC,CAAC,CAAC;wBACH,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;qBAC9B;gBACL,CAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;SACpC;IACL,CAAC;IAED,UAAU;QACN,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,IAAI,EAAE;gBACtC,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC;gBACpC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC7B;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,IAAI,IAAI,EAAE;gBAC1C,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC;gBACxC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACjC;YACD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;SACpC;IACL,CAAC;IAED,gBAAgB;QACZ,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,IAAI,EAAE;gBACtC,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC;gBACpC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC7B;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,IAAI,IAAI,EAAE;gBAC1C,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC;gBACxC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACjC;YACD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;SACpC;IACL,CAAC;IAED,YAAY;QACR,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,EAAE,GAAG,IAAI,CAAC;YACd,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;gBAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAC3F,IAAI,GAAG,EAAE;oBACL,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC;iBACtB;aACJ;YACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,IAAI,EAAE,EAAE;gBACxC,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,EAAE,CAAC;gBACtC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACjC;YACD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;SACpC;IACL,CAAC;;;;;;;AAzJQ,mBAAmB;IAL/B,yDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,+EAA6C;;KAEhD,CAAC;GACW,mBAAmB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBhC;AACA;AACA;AAEA;AACA;IAMai8B,mCAAmC,SAAnCA,mCAAmC;;IAI5C,qBAAgB,EAAhB;IAaA,+BAA0B,IAA1B;IAYA,iCAA4B,IAA5B;IAUA,iCAA4B,IAA5B;IA0CA,mBAAc,EAAd;IACA,qBAAgB,EAAhB;IAsGA,2BAAsB,IAAtB;IAYA,yBAAoB,IAApB;EAsBH;;EAjNkB,IAAXld,WAAW;IACX,OAAO,KAAKmd,gBAAZ;EACH;;EACc,IAAXnd,WAAW,CAAC1zB,GAAD,EAAI;IACf,KAAK6wC,gBAAL,GAAwB7wC,GAAxB;EACH;;EAMqB,IAAlB8wC,kBAAkB;IAClB,OAAO,KAAKC,uBAAZ;EACH;;EACqB,IAAlBD,kBAAkB,CAAC9wC,GAAD,EAAI;IACtB,KAAK+wC,uBAAL,GAA+B/wC,GAA/B;EACH;;EAOuB,IAApBgxC,oBAAoB;IACpB,OAAO,KAAKC,yBAAZ;EACH;;EACuB,IAApBD,oBAAoB,CAAChxC,GAAD,EAAI;IACxB,KAAKixC,yBAAL,GAAiCjxC,GAAjC;EACH;;EAKuB,IAApBkxC,oBAAoB;IACpB,OAAO,KAAKC,yBAAZ;EACH;;EACuB,IAApBD,oBAAoB,CAAClxC,GAAD,EAAI;IACxB,KAAKmxC,yBAAL,GAAiCnxC,GAAjC;EACH;;EAGmB,IAAhBoxC,gBAAgB;IAChB,IAAI,CAAC,KAAKC,mBAAL,CAAyB/e,eAAzB,CAAyCgf,aAA9C,EAA6D;MACzD,KAAKD,mBAAL,CAAyB/e,eAAzB,CAAyCgf,aAAzC,GAAyD,EAAzD;IACH;;IACD,OAAO,KAAKD,mBAAL,CAAyB/e,eAAzB,CAAyCgf,aAAhD;EACH;;EACkB,IAAfC,eAAe,CAACvxC,GAAD,EAAI;IACnB,KAAKqxC,mBAAL,CAAyB/e,eAAzB,CAAyCgf,aAAzC;EACH;;EAKsB,IAAnBD,mBAAmB;IACnB,OAAO,KAAKG,wBAAZ;EACH;;EACsB,IAAnBH,mBAAmB,CAACrxC,GAAD,EAAI;IACvB,KAAKwxC,wBAAL,GAAgCxxC,GAAhC;EACH;;EAkBayxC,WAAW;IAAA;;IAAA;MACrB,IAAI,CAAC,KAAI,CAACC,WAAN,IAAqB,KAAI,CAACA,WAAL,CAAiB7zC,MAAjB,GAA0B,CAAnD,EAAsD;QAClD,MAAMg/B,CAAC,SAAS7uB,kFAAA,CAA2B,KAAI,CAAC0lB,WAAhC,CAAhB;;QACA,IAAImJ,CAAJ,EAAO;UACH,MAAM8U,QAAQ,GAAG,EAAjB;UACA9U,CAAC,CAAC1+B,OAAF,CAAUkQ,CAAC,IAAG;YACV,MAAMujC,QAAQ,GAAG;cACb5qC,OAAO,EAAEqH,CAAC,CAACrH,OADE;cAEbX,EAAE,EAAEgI,CAAC,CAAChI,EAFO;cAGbiI,QAAQ,EAAED,CAAC,CAACC,QAHC;cAIbO,UAAU,EAAER,CAAC,CAACQ,UAJD;cAKbtQ,QAAQ,EAAE,KAAI,CAAC6yC,gBAAL,CAAsB7I,QAAtB,CAA+Bl6B,CAAC,CAAChI,EAAjC;YALG,CAAjB;YAOAsrC,QAAQ,CAACt1C,IAAT,CAAcu1C,QAAd;;YACA,IAAIA,QAAQ,CAACrzC,QAAb,EAAuB;cACnB,KAAI,CAAC+yC,aAAL,CAAmBj1C,IAAnB,CAAwBu1C,QAAxB;YACH;UACJ,CAZD;UAaAD,QAAQ,CAACrxC,IAAT,CAAc,CAACC,CAAD,EAAIC,CAAJ,KAAS;YACnB,MAAMqxC,KAAK,GAAItxC,CAAC,IAAI,OAAOA,CAAC,CAACyG,OAAT,KAAqB,QAA3B,GAAuCzG,CAAC,CAACyG,OAAF,CAAU8qC,WAAV,EAAvC,GAAiE,EAA/E;YACA,MAAMC,KAAK,GAAIvxC,CAAC,IAAI,OAAOA,CAAC,CAACwG,OAAT,KAAqB,QAA3B,GAAuCxG,CAAC,CAACwG,OAAF,CAAU8qC,WAAV,EAAvC,GAAiE,EAA/E;YACA,OAAOD,KAAK,CAACG,aAAN,CAAoBD,KAApB,CAAP;UACH,CAJD;UAKA,KAAI,CAACL,WAAL,GAAmBC,QAAnB;QACH;;QAED,IAAI,KAAI,CAACL,aAAL,IAAsB,KAAI,CAACA,aAAL,CAAmBzzC,MAAnB,GAA4B,CAAtD,EAAyD;UACrD,IAAI,KAAI,CAACizC,kBAAT,EAA6B;YACzB,KAAI,CAACmB,cAAL,CAAoB,KAAI,CAACX,aAAzB,EADyB,CAE1B;;UACF;;UACD,IAAI,KAAI,CAACN,oBAAT,EAA+B;YAC3B,KAAI,CAACkB,WAAL,CAAiBC,OAAjB,GAA2B,KAAI,CAACb,aAAhC;;YACA,KAAI,CAACY,WAAL,CAAiBE,gBAAjB,CAAkC,IAAlC,EAF2B,CAG3B;YACA;YACA;;UACH;QACJ,CArCiD,CAsClD;QACA;QACA;;MACH;;MACD,IAAI,KAAI,CAAClB,oBAAT,EAA+B;QAC3B,KAAI,CAACmB,WAAL,CAAiBD,gBAAjB,CAAkC,IAAlC;MACH;;MACD,OAAO,KAAI,CAACV,WAAZ;IA9CqB;EA+CxB;;EAEDz1C,QAAQ;IACH,KAAKw1C,WAAL;IAED,KAAKr1C,aAAL,CAAmBC,IAAnB,CAAwBN,0FAAA,CAAsCqB,IAAD,IAAS;MAClE,KAAKL,YAAL,GAAoBK,IAApB;IACH,CAFuB,CAAxB;EAGH;;EAEDk1C,oBAAoB,CAAC3vC,KAAD,EAAQ0N,IAAR,EAAY;IAC5B,IAAIA,IAAI,CAAC9R,QAAT,EAAmB;MACf,KAAK+yC,aAAL,CAAmBj1C,IAAnB,CAAwBgU,IAAxB;;MACA,IAAI,CAAC,KAAK+gC,gBAAL,CAAsB7I,QAAtB,CAA+Bl4B,IAAI,CAAChK,EAApC,CAAL,EAA8C;QAC1C,KAAK+qC,gBAAL,CAAsB/0C,IAAtB,CAA2BgU,IAAI,CAAChK,EAAhC;MACH;;MACD,KAAKksC,SAAL,CAAetQ,KAAf;;MACA,IAAI,KAAK6O,kBAAT,EAA6B;QACzB,KAAK0B,UAAL,CAAgBxmC,IAAhB;MACH,CAFD,MAGK;QACD;UACI,KAAKymC,YAAL,CAAkBzmC,IAAlB;QACH;MACJ;IACJ,CAdD,MAcO;MACH,IAAI1J,KAAK,GAAG,CAAC,CAAb;MACA,KAAKgvC,aAAL,CAAmBt2B,IAAnB,CAAyB+B,EAAD,IAAO;QAC3Bza,KAAK;;QACL,IAAIya,EAAE,CAACxb,GAAH,IAAU8O,IAAI,CAAC9O,GAAnB,EAAwB;UACpB,OAAO,IAAP;QACH;;QACD,OAAO,KAAP;MACH,CAND;;MAOA,IAAI,KAAK6vC,gBAAL,CAAsB7I,QAAtB,CAA+Bl4B,IAAI,CAAChK,EAApC,CAAJ,EAA6C;QACzC,KAAK+qC,gBAAL,CAAsBtmC,MAAtB,CAA6B,KAAKsmC,gBAAL,CAAsB5mC,OAAtB,CAA8B6F,IAAI,CAAChK,EAAnC,CAA7B,EAAqE,CAArE;MACH;;MACD,KAAKirC,aAAL,CAAmBxmC,MAAnB,CAA0BxI,KAA1B,EAAiC,CAAjC;IACH;;IAED,KAAKuM,UAAL,GAAkB,EAAlB;;IAEA,IAAI,KAAKiiC,kBAAT,EAA6B;MACzB,KAAKmB,cAAL,CAAoB,KAAKX,aAAzB;IACH;;IACD,IAAI,KAAKN,oBAAT,EAA+B;MAC3B,KAAKkB,WAAL,CAAiBC,OAAjB,GAA2B,KAAKb,aAAhC;MACA,KAAKY,WAAL,CAAiBE,gBAAjB,CAAkC,IAAlC;IACH;EACJ;;EAGDM,sBAAsB,CAACt1C,IAAD,EAAK;IACvB,KAAKu1C,mBAAL,GAA2Bv1C,IAA3B;EACH;;EAEyB,IAAtBw1C,sBAAsB;IACtB,IAAI,KAAKD,mBAAL,EAA0B3rC,OAA9B,EAAuC;MACnC,OAAO,KAAK2rC,mBAAL,CAAyB3rC,OAAhC;IACH;;IACD,OAAO,EAAP;EACH;;EAGD6rC,oBAAoB,CAACz1C,IAAD,EAAK;IACrB,KAAK01C,iBAAL,GAAyB11C,IAAzB;EACH;;EAEuB,IAApB21C,oBAAoB;IACpB,IAAI,KAAKD,iBAAL,EAAwB9rC,OAA5B,EAAqC;MACjC,OAAO,KAAK8rC,iBAAL,CAAuB9rC,OAA9B;IACH;;IACD,OAAO,EAAP;EACH;;EAGOirC,cAAc,CAACe,aAAD,EAAc;IAChC,KAAKC,SAAL,CAAed,OAAf,GAAyBa,aAAzB;IACA,KAAKC,SAAL,CAAeb,gBAAf,CAAgC,IAAhC;EACH;;EAEDx1B,OAAO,CAAC5P,EAAD,EAAG;IACN4jC,mCAAmC,CAAC/zB,OAApC,CAA4C1gB,IAA5C,CAAiD,IAAjD;IACA0mC,kIAAA,CAAqD,IAArD;EACH;;AAzN2C;AAErC+N,8CAAU,IAAI5vB,yCAAJ,EAAV;;;UAMNpiB,gDAAKA;;;UAWLA,gDAAKA;;;UAYLA,gDAAKA;;;UAULA,gDAAKA;;;UAqBLA,gDAAKA;;;UAQL0S,oDAASA;IAAArF,OAAC,WAAD;;;UAITqF,oDAASA;IAAArF,OAAC,aAAD;;;UACTqF,oDAASA;IAAArF,OAAC,aAAD;;;UACTqF,oDAASA;IAAArF,OAAC,WAAD;;;UACTqF,oDAASA;IAAArF,OAAC,YAAD;;;UACTqF,oDAASA;IAAArF,OAAC,cAAD;;;UACTqF,oDAASA;IAAArF,OAAC,cAAD;;;AA/ED2kC,mCAAmC,sDAJ/Ch1C,wDAAS,CAAC;EACP4C,QAAQ,EAAE,sCADH;EAEPC,UAAAA,0EAAAA;AAFO,CAAD,CAIsC,GAAnCmyC,mCAAmC,CAAnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVb;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEM,MAAO37B,QAAP,CAAe;AAYrB;;AACM,MAAOq+B,YAAP,CAAmB;IAaZC,6BAA6B,SAA7BA,6BAA6B;EA8BtCt0C;IAvBF,qBAAgB,EAAhB;;IA0BU,oBAAe,CAAC6T,IAAD,EAAiBzD,KAAjB,KAAkC;MACrD,OAAO;QACHmkC,UAAU,EAAE,CAAC,CAAC1gC,IAAI,CAAChO,QAAP,IAAmBgO,IAAI,CAAChO,QAAL,CAAcjH,MAAd,GAAuB,CADnD;QAEH0uB,IAAI,EAAEzZ,IAAI,CAACyZ,IAFR;QAGHld,KAAK,EAAEA,KAHJ;QAIHu3B,EAAE,EAAE9zB,IAAI,CAAC8zB;MAJN,CAAP;IAMH,CAPO;;IASR,mBAAc,IAAI1yB,8DAAJ,CACVpB,IAAI,IAAIA,IAAI,CAACzD,KADH,EACUyD,IAAI,IAAIA,IAAI,CAAC0gC,UADvB,CAAd;IAGA,qBAAgB,IAAIJ,oEAAJ,CACZ,KAAKK,YADO,EACO3gC,IAAI,IAAIA,IAAI,CAACzD,KADpB,EAC2ByD,IAAI,IAAIA,IAAI,CAAC0gC,UADxC,EACoD1gC,IAAI,IAAIA,IAAI,CAAChO,QADjE,CAAhB;IAGA,kBAAa,IAAIquC,yEAAJ,CAA0B,KAAK38B,WAA/B,EAA4C,KAAKk9B,aAAjD,CAAb;IAGA,eAAU,CACN;MACI/nC,IAAI,EAAE,MADV;MAEI4kB,KAAK,EAAE,SAFX;MAGI1pB,IAAI,EAAE,QAHV;MAII+M,QAAQ,EAAE;IAJd,CADM,EAON;MACIjI,IAAI,EAAE,WADV;MAEI4kB,KAAK,EAAE,aAFX;MAGI1pB,IAAI,EAAE,SAHV;MAII+M,QAAQ,EAAE;IAJd,CAPM,EAaN;MACIjI,IAAI,EAAE,UADV;MAEI4kB,KAAK,EAAE,EAFX;MAGI1pB,IAAI,EAAE,SAHV;MAII+M,QAAQ,EAAE;IAJd,CAbM,CAAV;IAyBA,mBAAc,CAAd;IAIA,qBAAgB,EAAhB;IACA,qBAAgB,EAAhB;IACA,kBAAa,EAAb;IACA,kBACI,EADJ;IAIA;;IACA,mBAAc,IAAIzC,GAAJ,EAAd;IACA,oBAAmC,IAAIA,GAAJ,EAAnC,CA3DA,CA+IA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;IAIA,gBAAW,CAAC9O,CAAD,EAAYyQ,IAAZ,KAAmCA,IAAI,CAAC0gC,UAAnD;;IAwBQ,2BAAsB,IAAI70C,uDAAJ,EAAtB;EAjLP;;EAjBoB,IAAnB0yC,mBAAmB;IACrB,OAAO,KAAKG,wBAAZ;EACD;;EACsB,IAAnBH,mBAAmB,CAACrxC,GAAD,EAAI;IACzB,KAAKwxC,wBAAL,GAAgCxxC,GAAhC;IACA,KAAK2zC,UAAL,GAAkB3zC,GAAG,CAACsyB,eAAJ,CAAoBshB,eAAtC;EACD;;EAGD33C,QAAQ,IACN;IACA;IACA;EACC;;EA6CY,IAAXy3B,WAAW;IACb,OAAO,KAAK2d,mBAAL,CAAyB3d,WAAhC;EACD;;EAECmgB,eAAe;IACX,OAAO,KAAKC,WAAL,EAAP;EACH;;EAYKC,QAAQ,CAACpxC,KAAD,EAAM;IAAA;;IAAA;MAEhB,IAAIvF,IAAI,GAAG6I,IAAI,CAACC,KAAL,CAAWvD,KAAK,CAAC8Z,YAAN,CAAmBu3B,OAAnB,CAA2B,WAA3B,CAAX,CAAX;MACA,IAAIC,aAAa,GAAGhuC,IAAI,CAACC,KAAL,CAAWvD,KAAK,CAAC8Z,YAAN,CAAmBu3B,OAAnB,CAA2B,cAA3B,CAAX,CAApB;;MACA,IAAI,KAAI,CAACL,UAAL,CAAgB91C,MAAhB,IAA0B,CAA9B,EAAiC;QAC7BT,IAAI,CAACi2B,QAAL,GAAgB,KAAI,CAACygB,WAAL,EAAhB;;QACA,KAAI,CAACH,UAAL,CAAgBt3C,IAAhB,CAAqBe,IAArB;MACH,CAHD,MAIK;QACDA,IAAI,CAACi2B,QAAL,GAAgB,KAAI,CAACygB,WAAL,GAAmB,CAAnC;QACA,MAAM58B,MAAM,SAASm8B,uFAAA,CAAiC,KAAI,CAAC3f,WAAtC,EAAmDt2B,IAAnD,EAAyD,KAAI,CAACu2C,UAA9D,EAA0E,KAAI,CAACQ,aAA/E,EAA8FF,aAA9F,CAArB;;QACA,IAAI/8B,MAAM,IAAIA,MAAM,CAACk9B,SAAP,CAAiBv2C,MAAjB,GAA0B,CAAxC,EAA2C;UACvCqZ,MAAM,CAACk9B,SAAP,CAAiBj2C,OAAjB,CAAyBkQ,CAAC,IAAG;YACzB,IAAI,KAAI,CAACylC,WAAL,GAAmBzlC,CAAC,CAACglB,QAAzB,EAAmC;cAC/B,KAAI,CAACygB,WAAL,GAAmBzlC,CAAC,CAACglB,QAArB;YACH;;YACD,KAAI,CAACsgB,UAAL,CAAgBt3C,IAAhB,CAAqBgS,CAArB;UACH,CALD;;UAMF,KAAI,CAAC8lC,aAAL,CAAmB93C,IAAnB,CAAwB,GAAG6a,MAAM,CAACm9B,OAAlC,EAPyC,CAQzC;UACE;UACA;UACA;UACA;UACA;;;UACA,KAAI,CAACP,WAAL;QACH,CAfD,MAgBK;UACD,MAAM32C,MAAM,SAASuX,8FAAA,CAA4B,IAAIL,uEAAJ,CAAwB,EAAxB,CAA5B,EAAyD,IAAIA,uEAAJ,CAAwB,8EAAxB,CAAzD,EAAkKG,sFAAlK,EAAwLC,mFAAxL,CAArB;QACH;MACJ;;MACD,KAAI,CAAC29B,gBAAL,CAAsB,IAAtB,EA/BgB,CAgChB;;IAhCgB;EAiCnB;;EAGDA,gBAAgB,CAACt/B,IAAD,EAAK;IACjB,IAAI,KAAK6gC,UAAT,EAAqB;MACjB,IAAI7gC,IAAI,KAAK,IAAb,EAAmB;QACf,KAAKwhC,UAAL,GAAkB,EAAlB;;QACA,KAAK,IAAIrvC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAK0uC,UAAL,CAAgB91C,MAApC,EAA4CoH,CAAC,EAA7C,EAAiD;UAC7C,IAAI,KAAK0uC,UAAL,CAAgB1uC,CAAhB,CAAJ,EAAwB;YACpB,IAAI2Z,IAAI,GAAG,IAAI3J,QAAJ,EAAX;YACA2J,IAAI,CAAC2N,IAAL,GAAY,KAAKonB,UAAL,CAAgB1uC,CAAhB,EAAmB+B,OAAnB,IAA8B,IAA9B,GAAqC,KAAK2sC,UAAL,CAAgB1uC,CAAhB,EAAmB+B,OAAxD,GAAkE,WAA9E;YACA4X,IAAI,CAACgoB,EAAL,GAAU,KAAK+M,UAAL,CAAgB1uC,CAAhB,EAAmB1D,GAA7B;YACAqd,IAAI,CAACyU,QAAL,GAAgB,KAAKsgB,UAAL,CAAgB1uC,CAAhB,EAAmBouB,QAAnC;YACAzU,IAAI,CAAC6W,YAAL,GAAoB,KAAKke,UAAL,CAAgB1uC,CAAhB,EAAmBsvC,YAAvC;YACA31B,IAAI,CAACjH,QAAL,GAAgB,KAAhB;;YACA,IAAI,KAAKg8B,UAAL,CAAgB1uC,CAAhB,EAAmBuvC,MAAvB,EAA+B;cAC3B;cACA;cACA51B,IAAI,CAAC9Z,QAAL,GAAgB,EAAhB;;cACA,KAAK,IAAI2vC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKd,UAAL,CAAgB1uC,CAAhB,EAAmBuvC,MAAnB,CAA0B32C,MAA9C,EAAsD42C,CAAC,EAAvD,EAA2D;gBACvD,IAAI3hC,IAAI,GAAG,KAAK6gC,UAAL,CAAgB1uC,CAAhB,CAAX;gBACA,IAAIqlC,KAAK,GAAG,IAAIr1B,QAAJ,EAAZ;gBACAq1B,KAAK,CAAC/d,IAAN,GAAa,KAAKonB,UAAL,CAAgB1uC,CAAhB,EAAmBuvC,MAAnB,CAA0BC,CAA1B,EAA6BztC,OAA7B,IAAwC,IAAxC,GAA+C,KAAK2sC,UAAL,CAAgB1uC,CAAhB,EAAmBuvC,MAAnB,CAA0BC,CAA1B,EAA6BztC,OAA5E,GAAsF,WAAnG;;gBACA,IAAI,CAAC,KAAK2sC,UAAL,CAAgB1uC,CAAhB,EAAmBuvC,MAAnB,CAA0BC,CAA1B,EAA6BphB,QAAlC,EAA4C;kBACxC,KAAKsgB,UAAL,CAAgB1uC,CAAhB,EAAmBuvC,MAAnB,CAA0BC,CAA1B,EAA6BphB,QAA7B,GAAwC,KAAKygB,WAAL,EAAxC;gBACH;;gBACDxJ,KAAK,CAAC1D,EAAN,GAAW,KAAK+M,UAAL,CAAgB1uC,CAAhB,EAAmBuvC,MAAnB,CAA0BC,CAA1B,EAA6BpuC,EAAxC;gBACAikC,KAAK,CAACjX,QAAN,GAAiB,KAAKsgB,UAAL,CAAgB1uC,CAAhB,EAAmBuvC,MAAnB,CAA0BC,CAA1B,EAA6BphB,QAA9C;gBACAiX,KAAK,CAACoK,WAAN,GAAoB,KAAKf,UAAL,CAAgB1uC,CAAhB,EAAmB1D,GAAvC;gBACA+oC,KAAK,CAACqK,iBAAN,GAA0B,KAAKhB,UAAL,CAAgB1uC,CAAhB,EAAmBouB,QAA7C;gBACAiX,KAAK,CAAC7U,YAAN,GAAqB,KAAKke,UAAL,CAAgB1uC,CAAhB,EAAmBsvC,YAAxC;gBACAjK,KAAK,CAAC3yB,QAAN,GAAiB,KAAjB;gBACA,KAAKi9B,YAAL,CAAkBjmC,GAAlB,CAAsB27B,KAAK,CAAC1D,EAA5B,EAAgC,CAAC0D,KAAD,CAAhC;gBACA1rB,IAAI,CAAC9Z,QAAL,CAAczI,IAAd,CAAmBiuC,KAAnB,EAduD,CAevD;cACH;;cACD,KAAKsK,YAAL,CAAkBjmC,GAAlB,CAAsBiQ,IAAI,CAACgoB,EAA3B,EAA+BhoB,IAAI,CAAC9Z,QAApC;YACH;;YACD,KAAKwvC,UAAL,CAAgBj4C,IAAhB,CAAqBuiB,IAArB;UACH;QACJ;MACJ;;MAID,KAAKnF,UAAL,CAAgBnU,IAAhB,GAAuB,KAAKgvC,UAA5B;IACH;EACJ;;EAgBDO,UAAU,CAAClyC,KAAD,EAAM;IACZsH,OAAO,CAACC,GAAR,CAAY,YAAZ;IACAvH,KAAK,CAACmyC,aAAN,CAAoB5rB,eAApB;IACAvmB,KAAK,CAACmyC,aAAN,CAAoBtW,cAApB;IACA;EACH;;EAKDuW,SAAS,CAACpyC,KAAD,EAAM;IACXA,KAAK,CAAC67B,cAAN;IACA77B,KAAK,CAAC8Z,YAAN,CAAmBu4B,IAAnB,GAA0BryC,KAAK,CAAC8Z,YAAN,CAAmBu3B,OAAnB,CAA2B,WAA3B,CAA1B;EACH;;EAEMl3B,QAAQ,CAACna,KAAD,EAAiB;IAC5B;IACAA,KAAK,CAAC67B,cAAN,GAF4B,CAG5B;EACH;;EAIHkF,qBAAqB,CAAC12B,EAAD,EAAG;IACpB,KAAKioC,mBAAL,CAAyBt0C,IAAzB,CAA8BqM,EAA9B;EACD;;EAGDkoC,mBAAmB,IACf;EAEH;;AA1NqC;AAEjC3B,qCAAY,gCAAZ;AACAA,wCAAU;EAAE1sC,IAAI,EAAE;AAAR,CAAV;;;;;;UAWNjI,gDAAKA;;;UAmMLC,iDAAMA;;;AAjNI00C,6BAA6B,uDAJzC33C,wDAAS,CAAC;EACP4C,QAAQ,EAAE,gCADH;EAEPC,UAAAA,4EAAAA;AAFO,CAAD,CAIgC,GAA7B80C,6BAA6B,CAA7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtCqF;AACnE;AACsC;AACD;AAEa;AACN;AACJ;AACG;AACK;AAE8B;AAC/B;AAEvE,MAAM,kBAAmB,SAAQ,oFAAa;;IAaxC,6BAA6B,SAA7B,6BAA6B;IAqCtC,YAAoB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;QAN5C,gBAAW,GAAG,CAAC,CAAC;QAChB,kBAAa,GAAG,EAAE,CAAC;QACnB,eAAU,GAAG,EAAE,CAAC;QAEN,wBAAmB,GAAG,IAAI,wDAAY,EAAO;IAGvD,CAAC;QA/BG,mBAAmB;QACnB,OAAO,IAAI,CAAC,wBAAwB,CAAC;IACzC,CAAC;IACD,IAAI,mBAAmB,CAAC,GAAG;QACvB,IAAI,CAAC,wBAAwB,GAAG,GAAG,CAAC;IACxC,CAAC;IAID,IAAI,UAAU;QAEV,IAAI,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE;YAC1C,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,eAAe,EAAE;gBAC3D,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,eAAe,GAAG,EAAE,CAAC;aACjE;YACD,OAAO,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,eAAe,CAAC;SACnE;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC;IAChD,CAAC;IAWD,YAAY;QACR,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;YAC1B,KAAK,EAAE;gBACH,WAAW,EAAE,IAAI,CAAC,WAAW;aAChC;SACJ,CAAC,CAAC;IACP,CAAC;IAED,QAAQ,CAAC,KAAK;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACjE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;QAC7E,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC;YACpC,IAAI,EAAE,CAAC,eAAe,EAAE;gBACpB,EAAE,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC;aACzC;YACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE;gBAChD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;gBACrC,uFAAgC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBACvH,IAAI,MAAM,EAAE;wBACR,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;4BAC7B,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACzB,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,QAAQ,EAAE;oCAC/B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC;iCACjC;gCACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BAC5B,CAAC,CAAC,CAAC;4BACH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;4BAC3C,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;4BACxE,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC;4BAC5D,IAAI,CAAC,WAAW,EAAE,CAAC;4BACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;yBAC3B;qBACJ;yBAAM;wBACH,8FAA2B,CAAC,IAAI,uEAAmB,CAAC,8EAA8E,CAAC,EAAE,IAAI,uEAAmB,CAAC,UAAU,CAAC,EAAE,sFAAoB,EAAE,mFAAoB,CAAC,CAAC;qBACzN;gBACL,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAED,gBAAgB;QACZ,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC3B,IAAI,IAAI,EAAE;oBACN,MAAM,IAAI,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACnD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;oBACjE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;oBACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBACtC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;oBACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,IAAI,CAAC,MAAM,EAAE;wBACb,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;wBACxB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;wBACnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BACpB,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;gCACb,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;6BACnC;4BACD,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;4BACjD,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;4BAC5D,KAAK,CAAC,iBAAiB,GAAG,IAAI,4EAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;4BAC9D,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC;4BACrB,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC;4BAC7B,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC;4BACxC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;4BACvC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;4BACvB,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC;4BACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC9B,CAAC,CAAC,CAAC;qBACN;oBACD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACzB;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IAED,SAAS,CAAC,KAAK;QACX,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACtD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,IAAI,EAAE;gBACN,IAAI,IAAI,CAAC,WAAW,EAAE;oBAClB,kIAAoD,CAAC,IAAI,0FAAY,CAAC,gFAAqB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;iBAChH;qBAAM;oBACH,kIAAoD,CAAC,IAAI,0FAAY,CAAC,gFAAqB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACzG;aACJ;SACJ;IACL,CAAC;IAED,OAAO,CAAC,EAAE;QACN,6BAA6B,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,kIAAoD,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,UAAU,CAAC,KAAK;QACZ,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,KAAK,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QACtC,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;QACrC,OAAO;IACX,CAAC;IAED,SAAS,CAAC,KAAK;QACX,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACtE,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;;AAzJM,qCAAO,GAAG,IAAI,0CAAO,EAAE,CAAC;;;;;kCAI9B,iDAAK;kCA6BL,kDAAM;;AAnCE,6BAA6B;IAJzC,yDAAS,CAAC;QACP,QAAQ,EAAE,gCAAgC;QAC1C,sFAAoD;KACvD,CAAC;GACW,6BAA6B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3BkD;AAK7D;AAC+C;AACgB;AAGvF,MAAM,cAAe,SAAQ,oFAAa;IAO/C,YAAY,EAAU,EAAE,SAAS,GAAE,IAAI;QACrC,KAAK,CAAC,EAAE,CAAC,CAAC;QAHV,uBAAkB,GAAuB,qFAAuB,CAAC;QAIjE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;;IAYQ,2BAA2B,SAA3B,2BAA2B;IAGpC;QAcU,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QAiCtD,gBAAW,GAAG,CAAC,CAAC;QAShB,YAAO,GAAG,EAAE,CAAC;QACb,eAAU,GACN,EACC,CAAC;QAuBN,8FAA8F;QAC9F,8DAA8D;QAC9D,iBAAY,GAAqB,IAAI,GAAG,EAAe,CAAC;QAkBvD,iBAAY,GAAG,IAAI,CAAC;IAtGL,CAAC;QAOb,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;IAC/B,CAAC;IAKD,IAAI,SAAS;QACT,OAAO,IAAI,CAAC;QACZ,2CAA2C;IAC/C,CAAC;IAED,0BAA0B;IAC1B,mEAAmE;IACnE,YAAY;IACZ,8DAA8D;IAC9D,sBAAsB;IACtB,mBAAmB;IACnB,iBAAiB;IACjB,MAAM;IACN,GAAG;IAEH,wDAAwD;IACxD,iDAAiD;IAEjD,uCAAuC;IACvC,2FAA2F;IAE3F,+EAA+E;IAE/E,IAAI,WAAW;QACX,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC;SAClD;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAGD,eAAe;QACX,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC;IAYD,wBAAwB,CAAC,IAAqB,EAAE,QAAiB;QAC7D,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,IAAI,CAAC,UAAU,CAAgB,EAAE,CAAgB;gBAClD,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChF,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAEhF,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,IAAI,QAAQ,EAAE;gBACV,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBAChB,IAAI,GAAG,GAAkB,IAAI,CAAC;oBAC9B,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE;wBACrB,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;qBACrD;gBACL,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAQD,gBAAgB,CAAC,IAAI;IAErB,CAAC;IAED,SAAS,CAAC,KAAK;QACX,8CAA8C;QAC9C,eAAe;QACf,sBAAsB;QACtB,4CAA4C;QAC5C,mEAAmE;QACnE,uDAAuD;QAEvD,GAAG;IACP,CAAC;IAGD,eAAe,CAAI,KAAK;QACpB,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACnD;IACL,CAAC;IAED,OAAO,CAAC,EAAE;IAEV,CAAC;;AA5GM,mCAAO,GAAG,IAAI,yCAAO,EAAE,CAAC;;;0BAL9B,gDAAK;yBAOL,gDAAK;iCAQL,iDAAM;;AAjBE,2BAA2B;IALvC,wDAAS,CAAC;QACP,QAAQ,EAAE,6BAA6B;QACvC,oFAAkD;;KAErD,CAAC;GACW,2BAA2B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AChCE;AACQ;AACqB;AACsC;AAChB;IAOhF,4BAA4B,SAA5B,4BAA6B,SAAQ,sFAA2B;IAEzE,gBAAgB,CAAC,IAAI;QACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,EAAE;YAC9B,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBAC9B,MAAM,QAAQ,GAAG,IAAI,yEAAc,CAAC,EAAE,YAAY,CAAC,CAAC;gBACpD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;gBACjD,QAAQ,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;gBACjF,QAAQ,CAAC,GAAG,GAAG,UAAU,CAAC,EAAE,CAAC;gBAC7B,QAAQ,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;gBAChD,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC;gBAC5B,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACvB,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC5B,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC;gBACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC/B,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;oBACtC,MAAM,OAAO,GAAG,IAAI,yEAAc,CAAC,EAAE,YAAY,CAAC,CAAC;oBACnD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;oBAC/C,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;oBAC9E,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC;oBAC3B,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;oBAC9C,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;oBAC3B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;oBAC3B,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACtB,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC;oBAC3B,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAChC,IAAI,SAAS,CAAC,WAAW,EAAE;wBACvB,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;4BACtC,MAAM,QAAQ,GAAG,IAAI,yEAAc,CAAC,EAAE,YAAY,CAAC,CAAC;4BACpD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;4BAC/C,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;4BAC/E,QAAQ,CAAC,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC;4BAC5B,QAAQ,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;4BAC/C,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC;4BAC5B,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;4BAC5B,QAAQ,CAAC,WAAW,GAAG,CAAC,SAAS,CAAC,oBAAoB,CAAC;4BAEvD,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE;gCACrD,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;gCACvB,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;gCAC5B,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;gCAC5B,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oCAC7B,MAAM,SAAS,GAAG,IAAI,yEAAc,CAAC,EAAE,YAAY,CAAC,CAAC;oCACrD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;oCACvC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;oCACxE,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC;oCACzB,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;oCAChD,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC;oCAC7B,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC;oCAC9B,SAAS,CAAC,IAAI,GAAG,WAAW,CAAC;oCAC7B,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gCACtC,CAAC,CAAC,CAAC;6BACN;4BACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,EAAE,eAAe;gCACjD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;6BAC/C;iCAAM;gCACH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;6BACnC;wBACL,CAAC,CAAC,CAAC;qBACN;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACxB,IAAI,CAAC,CAAC,QAAQ,EAAE;oBACZ,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oBACjD,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACnB,IAAI,CAAC,CAAC,QAAQ,EAAE;4BACZ,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;yBACpD;oBACL,CAAC,CAAC,CAAC;iBACN;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,SAAS,CAAC,KAAK;QACX,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACtD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,IAAI,EAAE;gBACN,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAC/C,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oBACnC,MAAM,IAAI,GAAG;wBACT,SAAS,EAAE,IAAI,CAAC,GAAG;wBACnB,OAAO,EAAE,EAAE;qBACd,CAAC;oBACF,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC/B,CAAC,CAAC,CAAC;oBACH,kIAAoD,CAAC,IAAI,0FAAY,CAAC,+EAAoB,EAAE,IAAI,CAAC,CAAC,CAAC;iBAEtG;aACJ;SACJ;IACL,CAAC;IAED,eAAe,CAAC,MAAM;QAClB,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,MAAM,CAAC,UAAU,EAAE;YACnB,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;gBACpC,IAAI,CAAC,EAAE;oBACH,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;iBACxB;YACL,CAAC,CAAC,CAAC;SACN;aAAM;YACH,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,UAAU,EAAE;gBACzC,IAAI,MAAM,CAAC,WAAW,EAAE;oBACpB,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBAC3B,IAAI,UAAU,GAAG,EAAE,CAAC;wBACpB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BACjB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACvB,CAAC,CAAC,CAAC;wBACH,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;4BACvB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,wDAAa,CAAC,CAAC;yBACtE;wBACD,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;4BACpB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE;gCACxC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;6BACtB;wBACL,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;iBACN;aACJ;iBAAM,IAAI,MAAM,CAAC,MAAM,EAAE;gBACtB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACtB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACtB,CAAC,CAAC,CAAC;gBACH,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oBACtB,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,wDAAa,CAAC,CAAC;iBACpE;aACJ;iBAAM;gBACH,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC1B;SACJ;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,EAAE;QACN,4BAA4B,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,kIAAoD,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;;AA/IQ,4BAA4B;IALxC,wDAAS,CAAC;QACP,QAAQ,EAAE,mCAAmC;QAC7C,oFAAkD;;KAErD,CAAC;GACW,4BAA4B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACXC;AAC6B;AACsC;AAChB;IAOhF,8BAA8B,SAA9B,8BAA+B,SAAQ,sFAA2B;IAE3E,gBAAgB,CAAC,IAAI;QACjB,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,IAAI,IAAI,IAAI,EAAE;gBACd,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;gBACrB,MAAM,SAAS,GAAG,IAAI,GAAG,EAA0B,CAAC;gBACpD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACvC,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBAChC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;wBACtB,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;qBAC5C;oBACD,MAAM,WAAW,GAAG,IAAI,GAAG,EAA0B,CAAC;oBACtD,MAAM,kBAAkB,GAAqB,EAAE,CAAC;oBAEhD,MAAM,QAAQ,GAAG,IAAI,yEAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBACzD,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACvB,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;oBAC5B,QAAQ,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;oBACjF,QAAQ,CAAC,GAAG,GAAG,UAAU,CAAC,EAAE,CAAC;oBAC7B,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC;oBACvB,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC;oBAC5B,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;oBAElF,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC1C,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE;4BACjB,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;4BAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;gCAClB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;6BACxC;4BACD,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;gCAClD,MAAM,UAAU,GAAG,IAAI,yEAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gCACvD,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;gCACzB,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;gCAC9B,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;gCACnC,UAAU,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC;gCAC3B,UAAU,CAAC,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;gCACvD,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC;gCAC9B,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;6BAC9C;4BACD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;gCAC3B,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;6BACjD;4BACD,MAAM,IAAI,GAAG,IAAI,yEAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;4BAC1D,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;4BACvF,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC9B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;4BACjD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;4BACxB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;4BACxB,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;gCAClD,IAAI,UAA0B,CAAC;gCAC/B,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gCAC5C,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;6BAClC;iCACI;gCACD,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;6BACjC;yBACJ;qBACJ;oBAED,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE;wBACtB,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;wBAC5B,MAAM,iBAAiB,GAAG,EAAE,CAAC;wBAC7B,WAAW,CAAC,OAAO,CAAC,CAAC,KAAqB,EAAE,GAAW,EAAE,EAAE;4BACvD,IAAI,KAAK,IAAI,KAAK,CAAC,WAAW;gCAC1B,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACtC,CAAC,CAAC,CAAC;wBACH,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;wBACvD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC;qBAChD;oBACD,IAAI,kBAAkB,EAAE;wBACpB,IAAI,CAAC,wBAAwB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;wBACxD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC;qBACjD;iBACJ;gBACD,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE;oBACpB,SAAS,CAAC,OAAO,CAAC,CAAC,KAAqB,EAAE,GAAW,EAAE,EAAE;wBACrD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAChC,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;iBACzD;aACJ;SACJ;IACL,CAAC;IAED,SAAS,CAAC,KAAK;QACX,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACtD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,MAAM,EAAE;gBACR,MAAM,SAAS,GAAG,EAAE,CAAC;gBACrB,IAAI,MAAM,CAAC,QAAQ,EAAE;oBACjB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACxB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC1B,CAAC,CAAC,CAAC;iBACN;qBAAM;oBACH,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;iBAC9B;gBACD,kIAAoD,CAAC,IAAI,0FAAY,CAAC,iFAAsB,EAAE;oBAC1F,OAAO,EAAE,SAAS;iBACrB,CAAC,CAAC,CAAC;aACP;SACJ;IACL,CAAC;IAED,OAAO,CAAC,EAAE;QACN,8BAA8B,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,kIAAoD,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;;AA7GQ,8BAA8B;IAL1C,wDAAS,CAAC;QACP,QAAQ,EAAE,qCAAqC;QAC/C,oFAAkD;;KAErD,CAAC;GACW,8BAA8B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVD;AACL;AAC8B;AACI;AACO;AAC+B;AAChB;IAOhF,8BAA8B,SAA9B,8BAA+B,SAAQ,sFAA2B;IAE3E,gBAAgB,CAAC,IAAI;QAEjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAErB,MAAM,cAAc,GAAG,IAAI,yEAAc,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9D,cAAc,CAAC,OAAO,GAAG,gGAA0C,CAAC,oBAAoB,CAAC,CAAC;QAC1F,cAAc,CAAC,GAAG,GAAG,oDAAS,EAAE,CAAC;QACjC,cAAc,CAAC,IAAI,GAAG,WAAW,CAAC;QAClC,cAAc,CAAC,kBAAkB,GAAG,kGAAoC,CAAC;QACzE,cAAc,CAAC,UAAU,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAErC,MAAM,SAAS,GAAG,IAAI,yEAAc,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACzD,SAAS,CAAC,OAAO,GAAG,gGAA0C,CAAC,kBAAkB,CAAC,CAAC;QACnF,SAAS,CAAC,IAAI,GAAG,cAAc,CAAC;QAChC,SAAS,CAAC,GAAG,GAAG,oDAAS,EAAE,CAAC;QAC5B,SAAS,CAAC,kBAAkB,GAAG,6FAA+B,CAAC;QAC/D,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEhC,MAAM,YAAY,GAAG,IAAI,yEAAc,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC5D,YAAY,CAAC,OAAO,GAAG,gGAA0C,CAAC,oBAAoB,CAAC,CAAC;QACxF,YAAY,CAAC,GAAG,GAAG,oDAAS,EAAE,CAAC;QAC/B,YAAY,CAAC,kBAAkB,GAAG,yFAA2B,CAAC;QAC9D,YAAY,CAAC,IAAI,GAAG,gBAAgB,CAAC;QACrC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC;IAED,SAAS,CAAC,KAAK;QACX,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACtD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,MAAM,EAAE;gBACR,IAAI,MAAM,CAAC,kBAAkB,KAAK,yFAA2B,EAAE;oBAC3D,kIAAoD,CAAC,IAAI,0FAAY,CAAC,yFAA8B,EAAE,EAAE,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;iBAC7J;qBAAM;oBACH,kIAAoD,CAAC,IAAI,0FAAY,CAAC,iFAAsB,EAAE,EAAE,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;iBACrJ;aACJ;SACJ;IACL,CAAC;IAED,OAAO,CAAC,EAAE;QACN,kIAAoD,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;;AA9CQ,8BAA8B;IAL1C,wDAAS,CAAC;QACP,QAAQ,EAAE,qCAAqC;QAC/C,oFAAkD;;KAErD,CAAC;GACW,8BAA8B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXpB;AACc;AACgC;AACF;AACK;AACS;AACN;AACI;AACD;AACb;IAWpD,aAAa,SAAb,aAAa;IA0CtB,YAAoB,eAAyC,EAAU,KAAwB;QAA3E,oBAAe,GAAf,eAAe,CAA0B;QAAU,UAAK,GAAL,KAAK,CAAmB;QAzC/F,iBAAY,GAAG,EAAE,CAAC;QAClB,cAAS,GAAG,EAAE,CAAC;QAEf,gBAAW,GAAG,EAAE,CAAC;QACjB,wBAAmB,GAAG,EAAE,CAAC;QACzB,gBAAW,GAAG,KAAK,CAAC;QAEpB,kBAAa,GAAG,EAAE,CAAC;QAUT,mBAAc,GAAG,IAAI,wDAAY,EAAO;QAWxC,0BAAqB,GAAG,IAAI,wDAAY,EAAO;IAczD,CAAC;QAjCG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;QAKG,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;QAChC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAMD,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAKD,eAAe;QACX,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,MAAM,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACnC,MAAM,IAAI,GAAG;wBACT,OAAO,EAAE,kBAAkB;wBAC3B,EAAE,EAAE,CAAC;wBACL,OAAO,EAAE,EAAE;qBACd,CAAC;oBACF,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE;wBAChC,IAAI,CAAC,EAAE,GAAG,oDAAS,EAAE,CAAC;qBACzB;oBACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;oBAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE;wBACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;wBAC7B,MAAM,IAAI,GAAG,oEAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAC7C,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE;4BAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;4BAC/E,IAAI,IAAI,CAAC,eAAe,EAAE;gCACtB,4DAA4D;gCAC5D,kBAAkB;gCAClB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;oCAC3E,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;oCACpE,IAAI,IAAI,CAAC,QAAQ,EAAE;wCACf,IAAI,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;wCACrC,IAAI,IAAI,CAAC,OAAO,EAAE;4CACd,IAAI,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;yCACvC;wCACD,IAAI,IAAI,CAAC,QAAQ,EAAE;4CACf,IAAI,CAAC,OAAO,IAAI,IAAI,GAAG,gGAA0C,CAAC,WAAW,CAAC,CAAC;yCAClF;6CACI;4CACD,IAAI,CAAC,OAAO,IAAI,IAAI,GAAG,gGAA0C,CAAC,aAAa,CAAC,CAAC;yCACpF;qCACJ;gCACL,CAAC,CAAC,CAAC;6BACN;yBACJ;qBACJ;oBACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SAC9B;IACL,CAAC;IAED,UAAU;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAC7C,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,WAAW,CAAC,SAAS;QACjB,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;YACjC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAC9B,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,IAAI,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE;gBACjC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;aAC3C;YACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SAC9B;IACL,CAAC;IAED,OAAO;QACH,kFAAwB,CAAC,qEAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;YACpD,MAAM,IAAI,GAAG;gBACT,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,IAAI;gBACd,EAAE,EAAE,oDAAS,EAAE;aAClB,CAAC;YACF,MAAM,IAAI,GAAG;gBACT,OAAO,EAAE,CAAC;gBACV,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;aAChC,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,oEAAgB,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE;gBAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;aAClF;YACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACzD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG;gBACT,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO;gBAClC,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;aAChC,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;IAED,eAAe,CAAC,IAAI;QAChB,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACvB,MAAM,IAAI,GAAG,oEAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC7C,IAAI,IAAI,EAAE;oBACN,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;oBACvB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBACnF,MAAM,SAAS,GAAQ,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;oBAC/E,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC;oBACtD,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAC1B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;wBACzB,WAAW,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;qBAClC;iBACJ;aACJ;SACJ;aAAM,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YACxC,WAAW,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;SAClC;QACD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC;IACvC,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/B,MAAM,IAAI,GAAG,IAAI,uEAAmB,CAAC,2DAA2D,CAAC,CAAC;gBAClG,+FAA2B,CAAC,IAAI,EAAE,IAAI,uEAAmB,CAAC,iBAAiB,CAAC,EACxE,yFAAuB,EAAE,sFAAuB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAC5D,IAAI,MAAM,KAAK,sFAAoB,EAAE;wBACjC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;wBACxB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;wBACpB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;wBACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;qBAC9B;gBACL,CAAC,CAAC,CAAC;aACV;SACJ;IACL,CAAC;IAED,UAAU;QACN,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9B,IAAI,GAAG,EAAE;YACL,MAAM,IAAI,GAAG,IAAI,uEAAmB,CAAC,iEAAiE,CAAC,CAAC;YACxG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACpC,+FAA2B,CAAC,IAAI,EAAE,IAAI,uEAAmB,CAAC,iBAAiB,CAAC,EACxE,yFAAuB,EAAE,sFAAuB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC5D,IAAI,MAAM,KAAK,sFAAoB,EAAE;oBACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;oBACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBAC3B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;oBACrC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;oBACpC,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACpD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;qBAC7B;oBACD,IAAI,CAAC,UAAU,EAAE,CAAC;oBAClB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;iBAC9B;YACL,CAAC,CAAC,CAAC;SACV;IACL,CAAC;IAED,WAAW,CAAC,YAAY,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI;QACxC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM;QACF,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACtG,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAClD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;SAC7C;IACL,CAAC;IAED,SAAS;QACL,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACtG,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACzE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;SAC7C;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;YACxE,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACtD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACzE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;SAC7C;IACL,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;YACxE,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACtD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;SAC7C;IACL,CAAC;IAED,SAAS;QACL,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;gBACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;iBAAM;gBACH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,WAAW,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;aAClC;SACJ;QACD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;;;;;;;uBApRA,iDAAK;6BASL,kDAAM;8BAGN,iDAAK;oCAQL,kDAAM;+BAEN,qDAAS,SAAC,SAAS,EAAE,EAAE,IAAI,EAAE,4DAAgB,EAAE;;AA/BvC,aAAa;IATzB,yDAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,sEAAoC;;KAMvC,CAAC;GACW,aAAa;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBgE;AACnB;AACT;AAEmD;AACE;AAC5C;AACN;AACW;AACmB;IAOlF,kBAAkB,SAAlB,kBAAkB;;QAE3B,oBAAe,GAAG,EAAE,CAAC;QACrB,qBAAgB,GAAG,IAAI,CAAC;QAWxB,qBAAgB,GAA6B,EAAE,CAAC;QAetC,sBAAiB,GAAG,IAAI,wDAAY,EAAO;IAuFzD,CAAC;QA7GO,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,KAAK;QACrB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;IACtC,CAAC;QAIG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,KAAK;QACjB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACtB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACd,kBAAkB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;SACjC;aAAM;YACH,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;SAC9B;IACL,CAAC;IAKO,MAAM,CAAC,qBAAqB,CAAC,IAA4B;QAC7D,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;YAC9B,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACvB,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpD,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,kBAAkB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;aAC/C;iBAAM;gBACH,IAAI,CAAC,kBAAkB,IAAI,GAAG,CAAC;aAClC;YACD,IAAI,CAAC,kBAAkB,IAAI,GAAG,CAAC;SAClC;IACL,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,eAAe,GAAG,6EAAyB,CAAC,2FAAqC,EAAE,CAAC,CAAC;QAC1F,IAAI,CAAC,YAAY,GAAG,uIAAyD,CAAC,CAAC,CAAC,EAAE;YAC9E,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,+EAAoB,IAAI,CAAC,CAAC,WAAW,EAAE;gBAC3D,sFAA8B,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBAC/F,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACnC;IACL,CAAC;IAED,MAAM,CAAC,KAAK;QACR,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,oBAAoB,CAAC,IAAI;QACrB,MAAM,0BAA0B,GAAG,IAAI,mHAAqB,EAAE,CAAC;QAC/D,0BAA0B,CAAC,QAAQ,GAAG,CAAC,CAAC;QACxC,0BAA0B,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;QAC1D,0BAA0B,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;QACxE,0BAA0B,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACtD,0BAA0B,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAChD,0BAA0B,CAAC,WAAW,GAAG,IAAI,CAAC;QAC9C,0BAA0B,CAAC,UAAU,GAAG,KAAK,CAAC;QAC9C,0BAA0B,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC1D,0BAA0B,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC1D,MAAM,IAAI,GAAG;YACT,0BAA0B;SAC7B,CAAC;QACF,4FAA2B,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;YACvC,IAAI,MAAM,IAAI,MAAM,CAAC,eAAe,EAAE;gBAClC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC;gBACvC,kBAAkB,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;aAClD;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,YAAY,CAAC,IAAI;QACb,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;SACnC;IACL,CAAC;IAED,QAAQ,CAAC,KAAK;QACV,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE;YAChG,MAAM,UAAU,GAAG,IAAI,qHAAsB,EAAE,CAAC;YAChD,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAChD,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACrC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YACH,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;YACnD,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC;YACpE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAClC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAChC;IACL,CAAC;;;8BA7GA,iDAAK;0BASL,iDAAK;gCAcL,kDAAM;;AA7BE,kBAAkB;IAL9B,yDAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;QAC9B,2EAAyC;;KAE5C,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBW;AACoB;AACS;AACL;IAOrD,gBAAgB,SAAhB,gBAAgB;;QAIzB,kBAAa,GAAG;YACZ,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,EAAE;YACtC,EAAE,OAAO,EAAE,wBAAwB,EAAE,EAAE,EAAE,CAAC,EAAE;SAC/C,CAAC;QACF,wBAAmB,GAAG,IAAI,CAAC;IA4E/B,CAAC;IAzEG,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,QAAQ,EAAE,SAAS;QAClD,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5E,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACzE,IAAI,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC;YACzB,MAAM,IAAI,GAAG,oEAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE;gBAC7B,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;aAChE;YACD,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACP,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,kFAAqB,CAAC;gBAClB,WAAW,EAAE,gBAAgB;gBAC7B,QAAQ,EAAE;oBACN,WAAW,EAAE,WAAW;oBACxB,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE;oBACpC,EAAE,EAAE,QAAQ;oBACZ,SAAS,EAAE,SAAS;iBACvB;gBACD,OAAO,EAAE,8EAAiB;gBAC1B,KAAK,EAAE,sCAAsC;gBAC7C,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;oBACX,IAAI,CAAC,EAAE;wBACH,eAAe,CAAC,KAAK,GAAG,CAAC,CAAC;qBAC7B;oBACD,OAAO,IAAI,CAAC;gBAChB,CAAC;aACJ,CAAC,CAAC;SACN;IACL,CAAC;IAED,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,8DAA8D,CAAC,CAAC;gBACzF,8DAA8D,CAAC;SACtE;IACL,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,qBAAqB,CAAC,GAAG;QACrB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;YACtC,QAAQ,GAAG,CAAC,EAAE,EAAE;gBACZ,KAAK,CAAC,EAAE,WAAW;oBACf,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;wBACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;qBACzF;yBAAM;wBACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;qBACvF;oBACD,MAAM;gBACV,KAAK,CAAC,EAAE,UAAU;oBACd,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;wBACzB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAC5B,IAAI,CAAC,CAAC,eAAe,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gCACxC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;6BACtB;wBACL,CAAC,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAC5B,IAAI,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gCACtC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;6BACtB;wBACL,CAAC,CAAC,CAAC;qBACN;oBACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAClC,MAAM;aACb;SACJ;IACL,CAAC;;AAnFQ,gBAAgB;IAL5B,wDAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;QAC9B,0EAAwC;;KAE3C,CAAC;GACW,gBAAgB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACV7B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEM,MAAO2C,wBAAP,CAA+B;EAgGjCj3C,YAAYk3C,EAAZ,EAA+B;IAC3B,KAAKlT,eAAL,GAAuBkT,EAAvB;EACH;;EA9EKC,UAAU,CAACh5C,IAAD,EAAU;IAAA;;IAAA;MACtB,OAAO84C,wBAAwB,CAACE,UAAzB,CAAoCh5C,IAApC,EAA0C,KAAI,CAAC6lC,eAA/C,CAAP;IADsB;EAEzB;;EAE6B,OAAVmT,UAAU,CAACh5C,IAAD,EAAY6lC,eAAZ,EAA4C;IAAA;MACtE,IAAIoT,OAAO,GAAG,EAAd;;MACA,IAAIj5C,IAAI,YAAYq4C,wFAApB,EAAiC;QAC7B,MAAM1hB,OAAO,GAAG32B,IAAhB;QACA,MAAMk5C,GAAG,SAAStoC,oFAAA,CAA6B+lB,OAAO,CAACC,OAArC,EAA8CiP,eAAe,CAACvP,WAA9D,CAAlB;;QACA,IAAI4iB,GAAJ,EAAS;UACL,MAAMC,WAAW,GAAGD,GAAG,EAAE9nC,IAAL,EAAW7C,IAAX,GAAkB2qC,GAAG,CAAC9nC,IAAJ,CAAS7C,IAA3B,GAAkC,EAAtD;UACA,MAAM6qC,aAAa,GAAGF,GAAG,EAAEG,MAAL,GAAc,QAAQH,GAAG,CAACG,MAA1B,GAAmC,EAAzD;UACA,MAAMC,WAAW,GAAGJ,GAAG,EAAE3qC,IAAL,GAAY,QAAQ2qC,GAAG,CAAC3qC,IAAxB,GAA+B,EAAnD;UAGA0qC,OAAO,GAAGE,WAAW,GAAGC,aAAd,GAA8BE,WAA9B,GAA4C,IAA5C,GAAmDJ,GAAG,CAACtvC,OAAjE;;UACA,IAAI+sB,OAAO,CAAC4hB,cAAZ,EAA4B;YACxB,MAAMgB,MAAM,GAAGvB,8EAAA,CAA6BO,iEAA7B,CAAf;YACA,IAAIrY,GAAG,GAAGqZ,MAAM,CAACn5C,IAAP,CAAYY,CAAC,IAAIA,CAAC,CAACuH,IAAF,IAAUouB,OAAO,CAAC4hB,cAAnC,CAAV;YACA,MAAMkB,cAAc,GAAGvZ,GAAG,EAAE7/B,KAAL,GAAa6/B,GAAG,CAAC7/B,KAAjB,GAAyB,EAAhD;YAEA44C,OAAO,IAAI,OAAOQ,cAAlB;UACH;;UACD,IAAI9iB,OAAO,CAAC+iB,OAAR,CAAgBC,cAAhB,CAA+BC,WAAnC,EAAgD;YAC5C,MAAMC,OAAO,SAASjpC,kFAAA,CAA2B+lB,OAAO,CAAC+iB,OAAR,CAAgBC,cAAhB,CAA+BC,WAA1D,EAAuE/T,eAAe,CAACvP,WAAvF,CAAtB;;YACA,IAAIujB,OAAJ,EAAa;cACTZ,OAAO,IAAI,OAAOhB,gGAAA,CAA2C,4BAA3C,CAAP,GAAkF4B,OAAO,CAACjwC,OAA1F,GAAoG,IAApG,GAA2G+sB,OAAO,CAAC+iB,OAAR,CAAgBC,cAAhB,CAA+BI,WAA/B,CAA2CvoB,QAA3C,EAAtH;YACH;UACJ;;UACD,IAAImF,OAAO,CAAC+iB,OAAR,CAAgBM,sBAApB,EAA4C;YACxCf,OAAO,IAAI,OAAOhB,gGAAA,CAA2C,6BAA3C,CAAlB;UACH;;UACD,IAAIthB,OAAO,CAAC+iB,OAAR,CAAgBO,oBAApB,EAA0C;YACtChB,OAAO,IAAI,OAAOtiB,OAAO,CAAC+iB,OAAR,CAAgBO,oBAAhB,CAAqCzoB,QAArC,EAAlB;UACH;QACJ,CA1BD,MA2BK;UACD,MAAM0oB,mBAAmB,GAAGlC,8EAAA,CAA6BS,iFAA7B,CAA5B;UACA,IAAIvY,GAAG,GAAGga,mBAAmB,CAAC95C,IAApB,CAAyBY,CAAC,IAAIA,CAAC,CAACuH,IAAF,IAAUouB,OAAO,CAAC8hB,kBAAhD,CAAV;UACA,MAAM0B,MAAM,GAAGja,GAAG,EAAE7/B,KAAL,GAAa6/B,GAAG,CAAC7/B,KAAjB,GAAyB,EAAxC;UAEA44C,OAAO,GAAGtiB,OAAO,CAAC/sB,OAAR,CAAgB4nB,QAAhB,KAA6B,KAA7B,GAAqC2oB,MAA/C;QACH;MAEJ,CAtCD,MAuCK,IAAIn6C,IAAI,YAAYo4C,oFAApB,EAA+B;QAChC,MAAMgC,SAAS,GAAGp6C,IAAlB;QACA,MAAM65C,OAAO,SAASjpC,kFAAA,CAA2BwpC,SAAS,CAACniC,KAArC,EAA4C4tB,eAAe,CAACvP,WAA5D,CAAtB;;QAEA,IAAIujB,OAAJ,EAAa;UAET,MAAMQ,SAAS,GAAGR,OAAO,EAAEtrC,IAAT,GAAgB,QAAQsrC,OAAO,CAACtrC,IAAhC,GAAuC,EAAzD;UACA,MAAM+rC,UAAU,GAAGT,OAAO,EAAE7nC,MAAT,EAAiBzD,IAAjB,GAAwB,QAAQsrC,OAAO,CAAC7nC,MAAR,CAAezD,IAA/C,GAAsD,EAAzE;UACA,MAAMgsC,SAAS,GAAGV,OAAO,EAAE7nC,MAAT,EAAiBA,MAAjB,EAAyBzD,IAAzB,GAAgCsrC,OAAO,CAAC7nC,MAAR,CAAeA,MAAf,CAAsBzD,IAAtD,GAA6D,EAA/E;UAIA0qC,OAAO,GAAGsB,SAAS,GAAGD,UAAZ,GAAyBD,SAAzB,GAAqC,IAArC,GAA4CR,OAAO,CAACjwC,OAA9D;;UACA,IAAIiwC,OAAO,CAACW,SAAZ,EAAuB;YACnBvB,OAAO,IAAI,OAAOY,OAAO,CAACW,SAAR,CAAkBhpB,QAAlB,EAAlB;UACH;;UAED,IAAIxxB,IAAI,CAACy6C,MAAT,EAAiB;YACbxB,OAAO,IAAI,OAAOhB,gGAAA,CAA2C,YAA3C,CAAlB;UACH,CAFD,MAGK;YACDgB,OAAO,IAAI,OAAOhB,gGAAA,CAA2C,gBAA3C,CAAlB;UACH;QACJ;MAEJ;;MACD,OAAOgB,OAAP;IAnEsE;EAoEzE;;EAQDxC,eAAe;IACX,OAAOkC,yFAAA,CAAsC,KAAK9S,eAA3C,CAAP;EACH;;EAED6U,gBAAgB,CAACC,QAAD,EAAqBC,cAArB,EAA6CC,YAAqB,KAAlE,EAAuE;IACnF,IAAI,KAAKhV,eAAT,EAA0B;MACtB,MAAMiV,KAAK,GAAG,IAAI5C,8FAAJ,EAAd;MACA4C,KAAK,CAAC7kB,QAAN,GAAiB0iB,yFAAA,CAAsC,KAAK9S,eAA3C,CAAjB;MACA,MAAMkV,IAAI,GAAG,KAAKlV,eAAL,CAAqBmV,UAArB,CAAgC56C,IAAhC,CAAqC66C,EAAE,IAAIA,EAAE,CAACzC,QAAH,KAAgBmC,QAA3D,CAAb;;MACA,IAAII,IAAJ,EAAU;QACN,KAAK,IAAIlzC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkzC,IAAI,CAACvlB,KAAL,CAAW/0B,MAA/B,EAAuCoH,CAAC,EAAxC,EAA4C;UACxC,MAAMqzC,aAAa,GAAGH,IAAI,CAACvlB,KAAL,CAAW3tB,CAAX,CAAtB;;UACA,IAAIqzC,aAAa,CAACjlB,QAAd,KAA2B2kB,cAA/B,EAA+C;YAC3C,IAAIC,SAAJ,EAAe;cACXE,IAAI,CAACvlB,KAAL,CAAW9nB,MAAX,CAAkB7F,CAAlB,EAAqB,CAArB,EAAwBizC,KAAxB;YACH,CAFD,MAEO;cACHC,IAAI,CAACvlB,KAAL,CAAW9nB,MAAX,CAAkB7F,CAAC,GAAG,CAAtB,EAAyB,CAAzB,EAA4BizC,KAA5B;YACH;;YACDhC,wBAAwB,CAACqC,WAAzB,CAAqCp8C,IAArC,CAA0C47C,QAA1C;YACA;UACH;QACJ;MACJ;IACJ;EACJ;;EAEDS,mBAAmB,CAACT,QAAD,EAAqBU,eAArB,EAA4C;IAC3D,IAAI,KAAKxV,eAAT,EAA0B;MACtB,MAAMkV,IAAI,GAAG,KAAKlV,eAAL,CAAqBmV,UAArB,CAAgC56C,IAAhC,CAAqC66C,EAAE,IAAIA,EAAE,CAACzC,QAAH,KAAgBmC,QAA3D,CAAb;;MACA,IAAII,IAAJ,EAAU;QACN,KAAK,IAAIlzC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkzC,IAAI,CAACvlB,KAAL,CAAW/0B,MAA/B,EAAuCoH,CAAC,EAAxC,EAA4C;UACxC,MAAMqzC,aAAa,GAAGH,IAAI,CAACvlB,KAAL,CAAW3tB,CAAX,CAAtB;;UACA,IAAIqzC,aAAa,CAACjlB,QAAd,KAA2BolB,eAA/B,EAAgD;YAC5C,IAAIxzC,CAAC,GAAGkzC,IAAI,CAACvlB,KAAL,CAAW/0B,MAAX,GAAoB,CAA5B,EAA+B;cAC3Bs6C,IAAI,CAACvlB,KAAL,CAAW9nB,MAAX,CAAkB7F,CAAlB,EAAqB,CAArB;cACAkzC,IAAI,CAACvlB,KAAL,CAAW9nB,MAAX,CAAkB7F,CAAC,GAAG,CAAtB,EAAyB,CAAzB,EAA4BqzC,aAA5B;YACH;;YACDpC,wBAAwB,CAACqC,WAAzB,CAAqCp8C,IAArC,CAA0C47C,QAA1C;YACA;UACH;QACJ;MACJ;IACJ;EACJ;;EAEDW,qBAAqB,CAACX,QAAD,EAAqBU,eAArB,EAA4C;IAC7D,IAAI,KAAKxV,eAAT,EAA0B;MACtB,MAAMkV,IAAI,GAAG,KAAKlV,eAAL,CAAqBmV,UAArB,CAAgC56C,IAAhC,CAAqC66C,EAAE,IAAIA,EAAE,CAACzC,QAAH,KAAgBmC,QAA3D,CAAb;;MACA,IAAII,IAAJ,EAAU;QACN,KAAK,IAAIlzC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkzC,IAAI,CAACvlB,KAAL,CAAW/0B,MAA/B,EAAuCoH,CAAC,EAAxC,EAA4C;UACxC,MAAMqzC,aAAa,GAAGH,IAAI,CAACvlB,KAAL,CAAW3tB,CAAX,CAAtB;;UACA,IAAIqzC,aAAa,CAACjlB,QAAd,KAA2BolB,eAA/B,EAAgD;YAC5C,IAAIxzC,CAAC,GAAGkzC,IAAI,CAACvlB,KAAL,CAAW/0B,MAAX,GAAoB,CAA5B,EAA+B;cAC3Bs6C,IAAI,CAACvlB,KAAL,CAAW9nB,MAAX,CAAkB7F,CAAlB,EAAqB,CAArB;cACAkzC,IAAI,CAACvlB,KAAL,CAAW9nB,MAAX,CAAkB7F,CAAC,GAAG,CAAtB,EAAyB,CAAzB,EAA4BqzC,aAA5B;YACH;;YACDpC,wBAAwB,CAACqC,WAAzB,CAAqCp8C,IAArC,CAA0C47C,QAA1C;YACA;UACH;QACJ;MACJ;IACJ;EACJ;;EAEDY,mBAAmB,CAACZ,QAAD,EAAqBU,eAArB,EAA4C;IAC3D,IAAI,KAAKxV,eAAT,EAA0B;MACtB,IAAIkV,IAAI,GAAG,KAAKlV,eAAL,CAAqBmV,UAArB,CAAgC56C,IAAhC,CAAqC66C,EAAE,IAAIA,EAAE,CAACzC,QAAH,KAAgBmC,QAA3D,CAAX;;MACA,IAAII,IAAJ,EAAU;QACN,KAAK,IAAIlzC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkzC,IAAI,CAACvlB,KAAL,CAAW/0B,MAA/B,EAAuCoH,CAAC,EAAxC,EAA4C;UACxC,IAAIqzC,aAAa,GAAGH,IAAI,CAACvlB,KAAL,CAAW3tB,CAAX,CAApB;;UACA,IAAIqzC,aAAa,CAACjlB,QAAd,KAA2BolB,eAA/B,EAAgD;YAC5CN,IAAI,CAACvlB,KAAL,CAAW9nB,MAAX,CAAkB7F,CAAlB,EAAqB,CAArB;YACAixC,wBAAwB,CAACqC,WAAzB,CAAqCp8C,IAArC,CAA0C47C,QAA1C;YACA;UACH;QACJ;MACJ;IACJ;EACJ;;EAEDa,8BAA8B,CAACH,eAAD,EAAwB;IAClD,IAAI,KAAKxV,eAAT,EAA0B;MACtB,IAAI4V,EAAE,GAAkB,IAAxB;MACA,IAAId,QAAQ,GAAGnC,oEAAf;MACA,IAAIkD,WAAW,GAAkB,EAAjC;MACA,KAAK7V,eAAL,CAAqBmV,UAArB,CAAgCj6C,OAAhC,CAAwCg6C,IAAI,IAAG;QAC3CA,IAAI,CAACvlB,KAAL,CAAWz0B,OAAX,CAAmB00B,IAAI,IAAG;UACtB,IAAIA,IAAI,CAACQ,QAAL,IAAiBolB,eAArB,EAAsC;YAClCI,EAAE,GAAGhmB,IAAL;YACAklB,QAAQ,GAAGI,IAAI,CAACvC,QAAhB;UACH;;UACDkD,WAAW,CAACz8C,IAAZ,CAAiB,GAAGw2B,IAAI,CAACvkB,QAAzB;UACAukB,IAAI,CAACvkB,QAAL,CAAcxD,MAAd,CAAqB,CAArB,EAAwB+nB,IAAI,CAACvkB,QAAL,CAAczQ,MAAtC;QACH,CAPD;MAQH,CATD;;MAUA,IAAIg7C,EAAE,IAAI,IAAV,EAAgB;QACZA,EAAE,CAACvqC,QAAH,GAAcwqC,WAAd;QACA5C,wBAAwB,CAACqC,WAAzB,CAAqCp8C,IAArC,CAA0C47C,QAA1C;MACH;IACJ;EACJ;;EAGDgB,sBAAsB;IAClB,IAAID,WAAW,GAAkB,EAAjC;IAEA,IAAIE,OAAJ;;IACA,IAAI,KAAK/V,eAAT,EAA0B;MACtB,KAAKA,eAAL,CAAqBmV,UAArB,CAAgCj6C,OAAhC,CAAwCg6C,IAAI,IAAG;QAC3CA,IAAI,CAACvlB,KAAL,CAAWz0B,OAAX,CAAmB00B,IAAI,IAAG;UACtBA,IAAI,CAACvkB,QAAL,CAAcnQ,OAAd,CAAsB41B,OAAO,IAAG;YAC5B,IAAIA,OAAO,CAAC8hB,kBAAR,IAA8BA,0FAAlC,EAA+D;cAC3DiD,WAAW,CAACz8C,IAAZ,CAAiB03B,OAAjB;YACH;UACJ,CAJD;QAKH,CAND;MAOH,CARD;IASH;;IACD,OAAO+kB,WAAP;EACH;;EAEDI,oBAAoB;IAChB,IAAIC,SAAS,GAAgB,EAA7B;;IACA,IAAI,KAAKlW,eAAT,EAA0B;MACtB,KAAKA,eAAL,CAAqBmV,UAArB,CAAgCj6C,OAAhC,CAAwCg6C,IAAI,IAAG;QAC3CA,IAAI,CAACvlB,KAAL,CAAWz0B,OAAX,CAAmB00B,IAAI,IAAG;UACtBA,IAAI,CAACI,MAAL,CAAY90B,OAAZ,CAAoB+0B,KAAK,IAAG;YACxBA,KAAK,CAAC/jB,MAAN,CAAahR,OAAb,CAAqBkR,KAAK,IAAG;cACzB,IAAIA,KAAK,CAACwmC,kBAAN,IAA4BA,0FAAhC,EAA6D;gBACzDsD,SAAS,CAAC98C,IAAV,CAAegT,KAAf;cACH;YACJ,CAJD;UAKH,CAND;QAOH,CARD;MASH,CAVD;IAWH;;IACD,OAAO8pC,SAAP;EACH;;EAGDC,2BAA2B,CAACC,IAAD,EAAsCC,aAAtC,EAA6DC,SAA7D,EAA8E;IACrG,IAAIF,IAAI,IAAI,IAAR,IAAgB,KAAKpW,eAAL,IAAwB,IAAxC,KAAiDoW,IAAI,CAACG,6BAAL,KAAuCH,IAAI,CAACI,eAA5C,IAA+DH,aAAa,IAAIC,SAAjI,CAAJ,EAAiJ;MAC7I,IAAIV,EAAE,GAAkB9C,sFAAA,CAAmC,KAAK9S,eAAxC,EAAyDoW,IAAI,CAACI,eAA9D,CAAxB;;MACA,IAAIZ,EAAE,IAAI,IAAV,EAAgB;QACZ,IAAIQ,IAAI,CAACM,YAAL,IAAqBjE,+EAAzB,EAA+C;UAC3C,IAAIpzC,KAAK,GAAG,CAAC,CAAb;UACA,IAAIs3C,SAAS,GAAG,IAAhB;;UACA,KAAK,IAAI30C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4zC,EAAE,CAAC5lB,MAAH,CAAUp1B,MAA9B,EAAsCoH,CAAC,EAAvC,EAA2C;YACvC,IAAIiuB,KAAK,GAAG2lB,EAAE,CAAC5lB,MAAH,CAAUhuB,CAAV,CAAZ;;YACA,KAAK,IAAIwvC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGvhB,KAAK,CAAC/jB,MAAN,CAAatR,MAAjC,EAAyC42C,CAAC,EAA1C,EAA8C;cAC1C,IAAIplC,KAAK,GAAG6jB,KAAK,CAAC/jB,MAAN,CAAaslC,CAAb,CAAZ;cACAnyC,KAAK;;cACL,IAAIA,KAAK,IAAIg3C,aAAb,EAA4B;gBACxBM,SAAS,GAAGvqC,KAAZ;gBACA6jB,KAAK,CAAC/jB,MAAN,CAAarE,MAAb,CAAoB2pC,CAApB,EAAuB,CAAvB,EAFwB,CAGxB;;gBACA,IAAIvhB,KAAK,CAAC/jB,MAAN,CAAatR,MAAb,IAAuB,CAA3B,EAA8B;kBAC1Bg7C,EAAE,CAAC5lB,MAAH,CAAUnoB,MAAV,CAAiB7F,CAAjB,EAAoB,CAApB;gBACH;;gBACD;cACH;YACJ;;YACD,IAAI20C,SAAS,KAAK,IAAlB,EAAwB;cACpB;YACH;UACJ;;UAED,IAAIA,SAAS,IAAI,IAAjB,EAAuB;YACnB;YACAt3C,KAAK,GAAG,CAAC,CAAT;;YACA,IAAI+2C,IAAI,CAACG,6BAAL,IAAsCH,IAAI,CAACI,eAA/C,EAAgE;cAC5DZ,EAAE,GAAG9C,sFAAA,CAAmC,KAAK9S,eAAxC,EAAyDoW,IAAI,CAACG,6BAA9D,CAAL;YACH;;YACD,IAAIK,YAAY,GAAG,KAAnB;;YACA,KAAK,IAAI50C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4zC,EAAE,CAAC5lB,MAAH,CAAUp1B,MAA9B,EAAsCoH,CAAC,EAAvC,EAA2C;cACvC,IAAIiuB,KAAK,GAAG2lB,EAAE,CAAC5lB,MAAH,CAAUhuB,CAAV,CAAZ;;cACA,KAAK,IAAIwvC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGvhB,KAAK,CAAC/jB,MAAN,CAAatR,MAAjC,EAAyC42C,CAAC,EAA1C,EAA8C;gBAC1CnyC,KAAK;;gBACL,IAAIA,KAAK,KAAKi3C,SAAd,EAAyB;kBAErB,IAAIO,QAAQ,GAAG,IAAIvE,sFAAJ,EAAf;kBACAuE,QAAQ,CAAC3qC,MAAT,CAAgB9S,IAAhB,CAAqBu9C,SAArB;kBACAf,EAAE,CAAC5lB,MAAH,CAAUnoB,MAAV,CAAiBxI,KAAjB,EAAwB,CAAxB,EAA2Bw3C,QAA3B;kBACAD,YAAY,GAAG,IAAf;kBACA;gBACH;cACJ;;cACD,IAAIA,YAAJ,EAAkB;gBACd;gBACA;cACH;YACJ;;YACD,IAAI,CAACA,YAAD,IAAiBv3C,KAAK,GAAG,CAAR,KAAci3C,SAAnC,EAA8C;cAAE;cAE5C,IAAIO,QAAQ,GAAG,IAAIvE,sFAAJ,EAAf;cACAuE,QAAQ,CAAC3qC,MAAT,CAAgB9S,IAAhB,CAAqBu9C,SAArB;cACAf,EAAE,CAAC5lB,MAAH,CAAU52B,IAAV,CAAey9C,QAAf;cACAD,YAAY,GAAG,IAAf,CAL0C,CAM1C;YACH;UAGJ;QACJ,CA3DD,MA4DK,IAAIR,IAAI,CAACM,YAAL,IAAqBjE,iFAAzB,EAAiD;UAClD,IAAI2D,IAAI,CAACG,6BAAL,IAAsCH,IAAI,CAACI,eAA/C,EAAgE;YAC5D,IAAIM,KAAK,GAAGhE,sFAAA,CAAmC,KAAK9S,eAAxC,EAAyDoW,IAAI,CAACG,6BAA9D,CAAZ;YACA,IAAIQ,KAAK,GAAGjE,sFAAA,CAAmC,KAAK9S,eAAxC,EAAyDoW,IAAI,CAACI,eAA9D,CAAZ;YACA,IAAIQ,WAAW,GAAGD,KAAK,CAAC1rC,QAAN,CAAegrC,aAAf,CAAlB;YACAU,KAAK,CAAC1rC,QAAN,CAAexD,MAAf,CAAsBwuC,aAAtB,EAAqC,CAArC;YACAS,KAAK,CAACzrC,QAAN,CAAexD,MAAf,CAAsByuC,SAAtB,EAAiC,CAAjC,EAAoCU,WAApC;UACH,CAND,MAOK;YACL;cACI9E,wEAAe,CAAC0D,EAAE,CAACvqC,QAAJ,EAAcgrC,aAAd,EAA6BC,SAA7B,CAAf,CADJ,CAEI;YACH;QACJ;;QACDrD,wBAAwB,CAACgE,WAAzB,CAAqC/9C,IAArC,CAA0Ck9C,IAA1C;MACH;IACJ;EACJ;;EAEDc,6BAA6B,CAACd,IAAD,EAAoC;IAC7D,IAAIA,IAAI,IAAI,IAAR,IAAgBA,IAAI,CAACe,aAAL,CAAmBv8C,MAAnB,IAA6B,CAA7C,IAAkD,KAAKolC,eAAL,IAAwB,IAA9E,EAAoF;MAChF,IAAI4V,EAAE,GAAkB9C,sFAAA,CAAmC,KAAK9S,eAAxC,EAAyDoW,IAAI,CAACI,eAA9D,CAAxB;;MACA,IAAIZ,EAAE,IAAI,IAAV,EAAgB;QACZ,IAAIQ,IAAI,CAACM,YAAL,IAAqBjE,+EAAzB,EAA+C;UAC3C,IAAI2E,EAAE,GAAGtE,2FAAA,CAAwC,KAAK9S,eAA7C,EAA8DoW,IAAI,CAACe,aAAL,CAAmB,CAAnB,EAAsB/mB,QAApF,CAAT;UACAyiB,yGAAA,CAA2CuE,EAAE,CAACrzC,OAA9C,EAAuD,MAAK;YAExDkvC,wBAAwB,CAACgE,WAAzB,CAAqC/9C,IAArC,CAA0Ck9C,IAA1C;;YACA,IAAIgB,EAAE,CAACxE,kBAAH,KAA0BA,0FAA9B,EAA2D;cACvDK,wBAAwB,CAACqE,qBAAzB,CAA+Cp+C,IAA/C,CAAoD,IAApD;YACH;UACJ,CAND;QASH,CAXD,MAYK,IAAIk9C,IAAI,CAACM,YAAL,IAAqBjE,iFAAzB,EAAiD;UAClD,IAAI8E,WAAW,GAAGzE,yFAAA,CAAsC,KAAK9S,eAA3C,EAA4DoW,IAAI,CAACe,aAAL,CAAmB,CAAnB,EAAsB/mB,QAAlF,CAAlB;UACAyiB,yGAAA,CAA2C0E,WAAW,CAACxzC,OAAvD,EAAgE,MAAK;YAEjEkvC,wBAAwB,CAACgE,WAAzB,CAAqC/9C,IAArC,CAA0Ck9C,IAA1C;;YACA,IAAImB,WAAW,CAAC3E,kBAAZ,KAAmCA,0FAAvC,EAAoE;cAChEK,wBAAwB,CAACwE,uBAAzB,CAAiDv+C,IAAjD,CAAsD,IAAtD;YACH;;YAED+5C,wBAAwB,CAACyE,cAAzB,CAAwCx+C,IAAxC,CAA6C,IAA7C;UACH,CARD;QAUH;MACJ;IACJ;EACJ;;EAGDy+C,6BAA6B,CAACvB,IAAD,EAAoC;IAC7D,IAAIA,IAAI,IAAI,IAAR,IAAgBA,IAAI,CAACe,aAAL,CAAmBv8C,MAAnB,IAA6B,CAA7C,IAAkD,KAAKolC,eAAL,IAAwB,IAA9E,EAAoF;MAChF,IAAI4V,EAAE,GAAkB9C,sFAAA,CAAmC,KAAK9S,eAAxC,EAAyDoW,IAAI,CAACI,eAA9D,CAAxB;;MACA,IAAIZ,EAAE,IAAI,IAAV,EAAgB;QACZ,IAAIQ,IAAI,CAACM,YAAL,IAAqBjE,+EAAzB,EAA+C;UAC3C,MAAM2E,EAAE,GAAGtE,2FAAA,CAAwC,KAAK9S,eAA7C,EAA8DoW,IAAI,CAACe,aAAL,CAAmB,CAAnB,EAAsB/mB,QAApF,CAAX;UAEAgnB,EAAE,CAACxC,MAAH,GAAY,CAACwC,EAAE,CAACxC,MAAhB;QAEH,CALD,MAMK,IAAIwB,IAAI,CAACM,YAAL,IAAqBjE,iFAAzB,EAAiD;UAClD,IAAI8E,WAAW,GAAGzE,yFAAA,CAAsC,KAAK9S,eAA3C,EAA4DoW,IAAI,CAACe,aAAL,CAAmB,CAAnB,EAAsB/mB,QAAlF,CAAlB;;UACA,IAAImnB,WAAW,CAAC7E,cAAZ,KAA+BA,mFAA/B,IAAmE6E,WAAW,CAAC7E,cAAZ,KAA+BA,iFAAtG,EAAsI;YAClI6E,WAAW,CAAC7E,cAAZ,GAA6BA,gFAA7B;UACH,CAFD,MAGK,IAAI,CAAC6E,WAAW,CAAC7E,cAAb,IAA+B6E,WAAW,CAAC7E,cAAZ,KAA+BA,gFAA9D,IAA+F6E,WAAW,CAAC7E,cAAZ,KAA+BA,8EAAlI,EAA+J;YAChK6E,WAAW,CAAC7E,cAAZ,GAA6BA,mFAA7B;UACH;QACJ;;QACDO,wBAAwB,CAACgE,WAAzB,CAAqC/9C,IAArC,CAA0Ck9C,IAA1C;MACH;IACJ;EACJ;;EAED4B,6BAA6B,CAAC5B,IAAD,EAAoC;IAC7D,IAAIA,IAAI,IAAI,IAAR,IAAgBA,IAAI,CAACe,aAAL,CAAmBv8C,MAAnB,GAA4B,CAA5C,IAAiD,KAAKolC,eAAL,IAAwB,IAA7E,EAAmF;MAC/E,IAAI4V,EAAE,GAAkB9C,sFAAA,CAAmC,KAAK9S,eAAxC,EAAyDoW,IAAI,CAACI,eAA9D,CAAxB;;MACA,IAAIZ,EAAE,IAAI,IAAV,EAAgB;QACZ,IAAIQ,IAAI,CAACM,YAAL,IAAqBjE,+EAAzB,EAA+C;UAC3C2D,IAAI,CAACe,aAAL,CAAmBj8C,OAAnB,CAA2B+8C,OAAO,IAAG;YACjC,KAAK,IAAIj2C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4zC,EAAE,CAAC5lB,MAAH,CAAUp1B,MAA9B,EAAsCoH,CAAC,EAAvC,EAA2C;cACvC,IAAIiuB,KAAK,GAAG2lB,EAAE,CAAC5lB,MAAH,CAAUhuB,CAAV,CAAZ;cACA,IAAIuyC,SAAS,GAAGtkB,KAAK,CAAC/jB,MAAN,CAAa3R,IAAb,CAAkBY,CAAC,IAAIA,CAAC,CAACi1B,QAAF,IAAc6nB,OAAO,CAAC7nB,QAA7C,CAAhB;;cACA,IAAImkB,SAAJ,EAAe;gBACX,IAAI2D,cAAc,GAAGjoB,KAAK,CAAC/jB,MAAN,CAAa3E,OAAb,CAAqBgtC,SAArB,CAArB;gBACAtkB,KAAK,CAAC/jB,MAAN,CAAarE,MAAb,CAAoBqwC,cAApB,EAAoC,CAApC,EAFW,CAGX;;gBACA,IAAIjoB,KAAK,CAAC/jB,MAAN,CAAatR,MAAb,IAAuB,CAA3B,EAA8B;kBAC1Bg7C,EAAE,CAAC5lB,MAAH,CAAUnoB,MAAV,CAAiB7F,CAAjB,EAAoB,CAApB;gBACH;;gBACD,IAAIuyC,SAAS,CAAC3B,kBAAV,IAAgCA,0FAApC,EAAiE;kBAC7DK,wBAAwB,CAACqE,qBAAzB,CAA+Cp+C,IAA/C,CAAoD,IAApD;gBACH;;gBACD65C,6EAAA,CAA4B,KAAK/S,eAAjC,EAAkDiY,OAAO,CAAC7nB,QAA1D,EAAoE,KAApE;gBACA;cACH;YACJ;UACJ,CAlBD;QAmBH,CApBD,MAqBK,IAAIgmB,IAAI,CAACM,YAAL,IAAqBjE,iFAAzB,EAAiD;UAClD2D,IAAI,CAACe,aAAL,CAAmBj8C,OAAnB,CAA2B+8C,OAAO,IAAG;YACjC,IAAIG,EAAE,GAAgBxC,EAAE,CAACvqC,QAAH,CAAY9Q,IAAZ,CAAiBY,CAAC,IAAIA,CAAC,CAACi1B,QAAF,IAAc6nB,OAAO,CAAC7nB,QAA5C,CAAtB;;YACA,IAAIgoB,EAAE,IAAI,IAAV,EAAgB;cACZ,IAAI/4C,KAAK,GAAGu2C,EAAE,CAACvqC,QAAH,CAAY9D,OAAZ,CAAoB6wC,EAApB,CAAZ;cACAxC,EAAE,CAACvqC,QAAH,CAAYxD,MAAZ,CAAmBxI,KAAnB,EAA0B,CAA1B;cACA4zC,wBAAwB,CAACyE,cAAzB,CAAwCx+C,IAAxC,CAA6C,IAA7C;;cACA,IAAIk/C,EAAE,CAACxF,kBAAH,IAAyBA,0FAA7B,EAA0D;gBACtDK,wBAAwB,CAACwE,uBAAzB,CAAiDv+C,IAAjD,CAAsD,IAAtD;cACH;;cACD65C,6EAAA,CAA4B,KAAK/S,eAAjC,EAAkDiY,OAAO,CAAC7nB,QAA1D,EAAoE,IAApE;YACH;UACJ,CAXD;QAYH;;QACD6iB,wBAAwB,CAACgE,WAAzB,CAAqC/9C,IAArC,CAA0Ck9C,IAA1C;MACH;IACJ;EACJ;;EAEKiC,6BAA6B,CAACjC,IAAD,EAAoC;IAAA;;IAAA;MACnE,IAAIA,IAAI,IAAI,IAAR,IAAgBA,IAAI,CAACe,aAAL,CAAmBv8C,MAAnB,GAA4B,CAA5C,IAAiD,MAAI,CAAColC,eAAL,IAAwB,IAA7E,EAAmF;QAC/E,IAAI4V,EAAE,GAAkB9C,sFAAA,CAAmC,MAAI,CAAC9S,eAAxC,EAAyDoW,IAAI,CAACI,eAA9D,CAAxB;;QACA,IAAIZ,EAAE,IAAI,IAAN,IAAcQ,IAAI,CAACe,aAAL,CAAmBv8C,MAAnB,GAA4B,CAA9C,EAAiD;UAC7Cq4C,wBAAwB,CAACqF,oBAAzB,CAA8C,MAAI,CAACtY,eAAnD,EAAoEoW,IAApE;QACH;MACJ;IANkE;EAOtE;;EAE0B,OAApBkC,oBAAoB,CAACC,eAAD,EAAkBnC,IAAlB,EAAsB;IAC7C,MAAMoC,SAAS,GAAGpC,IAAI,CAACM,YAAL,KAAsBjE,iFAAxC;IACA,MAAMgG,QAAQ,GAAGrC,IAAI,CAACe,aAAL,CAAmB,CAAnB,EAAsB/mB,QAAvC;IACA+L,mFAAA,CAAsB;MAClB4B,WAAW,EAAEiV,0EADK;MAElB5V,MAAM,EAAE,GAFU;MAGlBhjC,KAAK,EAAE,GAHW;MAIlBoJ,QAAQ,EAAE;QACNw8B,eAAe,EAAEuY,eADX;QAENn1C,EAAE,EAAEq1C,QAFE;QAGNC,SAAS,EAAEF;MAHL,CAJQ;MASlB3b,OAAO,EAAEZ,8EATS;MAUlBU,KAAK,EAAE6b,SAAS,GAAG,8BAAH,GAAoC,+BAVlC;MAWlBzZ,OAAO,EAAGnF,CAAD,IAAM;QACX,IAAIA,CAAJ,EAAO;UACH2e,eAAe,GAAG3e,CAAlB;UACAqZ,wBAAwB,CAACgE,WAAzB,CAAqC/9C,IAArC,CAA0Ck9C,IAA1C;QACH;;QACD,OAAO,IAAP;MACH;IAjBiB,CAAtB;EAmBH,CAxcgC,CA0cjC;;;EACAuC,YAAY,CAACvC,IAAD,EAAoC;IAC5C,IAAIA,IAAI,IAAI,IAAR,IAAgBA,IAAI,CAACe,aAAL,CAAmBv8C,MAAnB,GAA4B,CAA5C,IAAiD,KAAKolC,eAAL,IAAwB,IAA7E,EAAmF;MAC/E,IAAI4V,EAAE,GAAkB9C,sFAAA,CAAmC,KAAK9S,eAAxC,EAAyDoW,IAAI,CAACI,eAA9D,CAAxB;;MACA,IAAIZ,EAAE,IAAI,IAAV,EAAgB;QACZ,IAAIgD,YAAY,GAAU,IAA1B;QACA,IAAIC,cAAc,GAAc,IAAhC;QACA,IAAIC,UAAU,GAAG,CAAjB;;QAGA,KAAK,IAAI92C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4zC,EAAE,CAAC5lB,MAAH,CAAUp1B,MAA9B,EAAsCoH,CAAC,EAAvC,EAA0C;QAC1C;UACI,IAAIiuB,KAAK,GAAU2lB,EAAE,CAAC5lB,MAAH,CAAUhuB,CAAV,CAAnB;;UACA,IAAIiuB,KAAK,CAAC/jB,MAAN,IAAgB,IAApB,EAA0B;YACtB,IAAIkpC,EAAE,GAAcnlB,KAAK,CAAC/jB,MAAN,CAAa3R,IAAb,CAAkBY,CAAC,IAAIA,CAAC,CAACi1B,QAAF,IAAcgmB,IAAI,CAACe,aAAL,CAAmB,CAAnB,EAAsB/mB,QAA3D,CAApB,CADsB,CAEtB;;YACA,IAAIglB,EAAE,IAAI,IAAV,EAAgB;cACZyD,cAAc,GAAGzD,EAAjB;cACA0D,UAAU,GAAG92C,CAAb,CAFY,CAEG;;cACf42C,YAAY,GAAG3oB,KAAf,CAHY,CAIZ;cACA;cACA;cACA;cACA;cACA;cACA;cACA;;cACA;YACH;UACJ;QACJ;;QACD,IAAI2oB,YAAY,IAAI,IAApB,EAA0B;UACtB;UAEA;UACA;UACA;UAEA,IAAIxC,IAAI,CAACe,aAAL,CAAmBv8C,MAAnB,GAA4B,CAAhC,EAAmC;YAE/Bw7C,IAAI,CAACe,aAAL,CAAmBj8C,OAAnB,CAA2B+8C,OAAO,IAAG;cACjC,IAAIY,cAAc,IAAI,IAAlB,IAA0BA,cAAc,CAACzoB,QAAf,IAA2B6nB,OAAO,CAAC7nB,QAAjE,EAA2E;gBACvE,IAAIglB,EAAE,GAAGtC,2FAAA,CAAwC,KAAK9S,eAA7C,EAA8DiY,OAAO,CAAC7nB,QAAtE,EAAgF,IAAhF,CAAT;;gBACA,IAAIglB,EAAE,KAAK,IAAX,EAAiB;kBACbwD,YAAY,CAAC1sC,MAAb,CAAoB9S,IAApB,CAAyBg8C,EAAzB;gBACH;cACJ;YACJ,CAPD;UAQH,CAVD,MAWK;YAAE;YACH,IAAIQ,EAAE,CAAC5lB,MAAH,CAAUp1B,MAAV,GAAmBk+C,UAAvB,EAAmC;cAC/B,MAAMC,cAAc,GAAGnD,EAAE,CAAC5lB,MAAH,CAAU8oB,UAAU,GAAG,CAAvB,CAAvB;;cAEA,KAAK,IAAI92C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+2C,cAAc,CAAC7sC,MAAf,CAAsBtR,MAA1C,EAAkDoH,CAAC,EAAnD,EAAuD;gBACnD,MAAMg3C,SAAS,GAAGD,cAAc,CAAC7sC,MAAf,CAAsBlK,CAAtB,CAAlB;gBACA+2C,cAAc,CAAC7sC,MAAf,CAAsBrE,MAAtB,CAA6B,CAA7B,EAAgC,CAAhC;gBACA+wC,YAAY,CAAC1sC,MAAb,CAAoB9S,IAApB,CAAyB4/C,SAAzB;cACH;;cACDpD,EAAE,CAAC5lB,MAAH,CAAUnoB,MAAV,CAAiBixC,UAAU,GAAG,CAA9B,EAAiC,CAAjC;YACH;UACJ;QACJ;;QACD7F,wBAAwB,CAACgE,WAAzB,CAAqC/9C,IAArC,CAA0Ck9C,IAA1C;MACH;IACJ;EACJ;;EAED6C,aAAa,CAAC7C,IAAD,EAAoC;IAC7C,IAAIA,IAAI,IAAI,IAAR,IAAgBA,IAAI,CAACe,aAAL,CAAmBv8C,MAAnB,GAA4B,CAA5C,IAAiD,KAAKolC,eAAL,IAAwB,IAA7E,EAAmF;MAC/E,IAAI4V,EAAE,GAAkB9C,sFAAA,CAAmC,KAAK9S,eAAxC,EAAyDoW,IAAI,CAACI,eAA9D,CAAxB;;MACA,IAAIZ,EAAE,IAAI,IAAV,EAAgB;QACZQ,IAAI,CAACe,aAAL,CAAmBj8C,OAAnB,CAA2Bf,IAAI,IAAG;UAC9B,KAAK,IAAI6H,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4zC,EAAE,CAAC5lB,MAAH,CAAUp1B,MAA9B,EAAsCoH,CAAC,EAAvC,EAA0C;UAC1C;YACI,IAAIiuB,KAAK,GAAG2lB,EAAE,CAAC5lB,MAAH,CAAUhuB,CAAV,CAAZ;;YACA,IAAIiuB,KAAK,CAAC/jB,MAAN,IAAgB,IAApB,EAA0B;cACtB,IAAIkpC,EAAE,GAAGnlB,KAAK,CAAC/jB,MAAN,CAAa3R,IAAb,CAAkBY,CAAC,IAAIA,CAAC,CAACi1B,QAAF,IAAcj2B,IAAI,CAACi2B,QAA1C,CAAT;;cAEA,IAAIglB,EAAE,IAAI,IAAV,EAAgB;gBACZ,IAAInlB,KAAK,CAAC/jB,MAAN,CAAatR,MAAb,GAAsB,CAA1B,EAA6B;kBACzB,IAAIs+C,WAAW,GAAGtD,EAAE,CAAC5lB,MAAH,CAAUzoB,OAAV,CAAkB0oB,KAAlB,CAAlB;kBACA2lB,EAAE,CAAC5lB,MAAH,CAAUnoB,MAAV,CAAiBqxC,WAAjB,EAA8B,CAA9B,EAFyB,CAEQ;;kBACjC,KAAK,IAAI1H,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGvhB,KAAK,CAAC/jB,MAAN,CAAatR,MAAjC,EAAyC42C,CAAC,EAA1C,EAA6C;kBAC7C;oBACI,IAAIplC,KAAK,GAAG6jB,KAAK,CAAC/jB,MAAN,CAAaslC,CAAb,CAAZ;oBACA,IAAIqF,QAAQ,GAAG,IAAIvE,sFAAJ,EAAf;oBACAuE,QAAQ,CAAC3qC,MAAT,CAAgB9S,IAAhB,CAAqBgT,KAArB;oBACAwpC,EAAE,CAAC5lB,MAAH,CAAUnoB,MAAV,CAAiBqxC,WAAW,EAA5B,EAAgC,CAAhC,EAAmCrC,QAAnC;kBACH;gBACJ;cACJ;YACJ;UACJ;QACJ,CAtBD;QAuBA5D,wBAAwB,CAACgE,WAAzB,CAAqC/9C,IAArC,CAA0Ck9C,IAA1C;MACH;IACJ;EACJ,CA5iBgC,CA6iBjC;;;EAEA+C,OAAO,CAACC,IAAD,EAAK;IACR,KAAKpZ,eAAL,CAAqBqZ,KAArB,CAA2BjgD,IAA3B,CAAgCggD,IAAhC;IACAnG,wBAAwB,CAACqG,YAAzB,CAAsCpgD,IAAtC,CAA2C,IAA3C;EACH;;AAljBgC;AAInB+5C,uCAAiC,IAAIl1B,0CAAJ,EAAjC;AAEAk1B,uCAAsD,IAAIl1B,0CAAJ,EAAtD;AAEAk1B,0CAA+B,IAAIl1B,0CAAJ,EAA/B;AAEAk1B,mDAAwC,IAAIl1B,0CAAJ,EAAxC;AAEAk1B,iDAAsC,IAAIl1B,0CAAJ,EAAtC;AAEAk1B,wCAAe,IAAIl1B,0CAAJ,EAAf;AAEAk1B,yCAAgB,IAAIl1B,0CAAJ,EAAhB;AAEAk1B,yCAAgB,IAAIl1B,0CAAJ,EAAhB;AAmiBZ,MAAOw7B,0BAAP,CAAiC;AAgBjC,MAAOC,6BAAP,CAAoC;;IAGtC,0CAA6C,CAAC,CAA9C;IA6BA,qBAA8C,EAA9C;EAEH;;EA9BoC,IAA7BjD,6BAA6B;IAC7B,OAAO,KAAKkD,kCAAL,KAA4C,CAAC,CAA7C,GAAiD,KAAKjD,eAAtD,GAAwE,KAAKiD,kCAApF;EACH;;AANqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzlB1C;AACA;AAEA;IAOazG,oBAAoB,SAApBA,oBAAoB;;IAI7B,qBAAgB,CACZ;MAAEjvC,OAAO,EAAE,eAAX;MAA4BX,EAAE,EAAE;IAAhC,CADY,EAEZ;MAAEW,OAAO,EAAE,aAAX;MAA0BX,EAAE,EAAE;IAA9B,CAFY,CAAhB;IAIA,2BAAsB,IAAtB;EAqEH;;EA7DkB,IAAXqtB,WAAW;IACX,OAAO,KAAK2d,mBAAL,CAAyB3d,WAAhC;EACH;;EAGgB,IAAbipB,aAAa;IACb,OAAO,KAAKC,aAAL,EAAoB9J,iBAApB,EAAuC9rC,OAAvC,GAAiD,KAAK41C,aAAL,CAAmB9J,iBAAnB,CAAqC9rC,OAAtF,GAAgG,EAAvG;EACH;;EAEkB,IAAf61C,eAAe;IACf,OAAO,KAAKD,aAAL,EAAoBjK,mBAApB,EAAyC3rC,OAAzC,GAAmD,KAAK41C,aAAL,CAAmBjK,mBAAnB,CAAuC3rC,OAA1F,GAAoG,EAA3G;EACH;;EAIsB,IAAnBqqC,mBAAmB;IACnB,OAAO,KAAKG,wBAAZ;EACH;;EACsB,IAAnBH,mBAAmB,CAACrxC,GAAD,EAAI;IACvB,KAAKwxC,wBAAL,GAAgCxxC,GAAhC;EACH;;EAEDohC,UAAU,CAACn1B,IAAD,EAAK;IACX,IAAIA,IAAJ,EAAU;MACN,KAAKxF,QAAL,GAAgBwF,IAAhB;MACA,IAAI6wC,GAAG,GAAE,IAAIta,kGAAJ,EAAT;MACAsa,GAAG,CAACxqB,eAAJ,GAAsB,KAAK7rB,QAAL,CAAcw8B,eAApC;MACA6Z,GAAG,CAACppB,WAAJ,GAAkBopB,GAAG,CAACxqB,eAAJ,CAAoBoB,WAAtC;MACA,KAAK2d,mBAAL,GAA2ByL,GAA3B;IAEH;EACJ;;EAEDza,eAAe;IACP,OAAO,KAAK57B,QAAL,CAAcw8B,eAArB;EACP;;EAEMvB,qBAAqB,CAACqb,GAAD,EAAI;IAAA;;IAAA;MAC5B,IAAI,KAAI,CAACt2C,QAAL,IAAiB,KAAI,CAACA,QAAL,CAAcw8B,eAAnC,EAAoD;QAChD,QAAQ8Z,GAAG,CAAC12C,EAAZ;UAGI,KAAK,CAAL;YAAQ;YACJ,IAAI,KAAI,CAACI,QAAL,CAAck1C,SAAlB,EAA6B;cAEzB,MAAM5F,2FAAA,CAAyC,KAAI,CAACtvC,QAAL,CAAcw8B,eAAvD,EAAwE,KAAI,CAACx8B,QAAL,CAAcJ,EAAtF,EAA0F,KAAI,CAACu2C,aAAL,CAAmBjK,mBAAnB,CAAuCpxC,GAAjI,CAAN;YACH,CAHD,MAIK;cACD,MAAMw0C,6FAAA,CAA2C,KAAI,CAACtvC,QAAL,CAAcw8B,eAAzD,EAA0E,KAAI,CAACx8B,QAAL,CAAcJ,EAAxF,EAA4F,KAAI,CAACu2C,aAAL,CAAmB9J,iBAAnB,CAAqCvxC,GAAjI,CAAN;YAEH;;YACD,KAAI,CAAC27C,MAAL,GAAc,KAAI,CAACz2C,QAAL,CAAcw8B,eAA5B;YACI;;UACR,KAAK,CAAL;YAAQ;YAEJ,KAAI,CAACia,MAAL,GAAc,KAAI,CAACz2C,QAAL,CAAcw8B,eAA5B;YACA;QAjBR;MAoBH;IAtB2B;EAuB/B;;AA5E4B;;;UAY5B3xB,oDAASA;IAAArF,OAAC,eAAD;;;UAkBTrN,gDAAKA;;;AA9BGq3C,oBAAoB,sDALhCr6C,wDAAS,CAAC;EACP4C,QAAQ,EAAE,wBADH;EAEPC,UAAAA,oEAFO;;AAAA,CAAD,CAKuB,GAApBw3C,oBAAoB,CAApB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVb;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAOawH,yBAAyB,SAAzBA,yBAAyB;EAqFlCx+C;IAnFA,uBAAkB,EAAlB;IACA,uBAAkB,EAAlB;IAGA,sBAAiB,CAAC,CAAlB;IACA,aAAQ,EAAR;IAGA,qBAAgB,IAAIkS,GAAJ,EAAhB;IA0DA,wBAAkC,EAAlC;IACA,oBAA8B,EAA9B;IAiBI,KAAKusC,WAAL,GAAmB,EAAnB;IACA,KAAKC,eAAL,GAAuBvI,8EAAA,CAA6BO,iEAA7B,CAAvB;IACA,KAAKiI,eAAL,GAAuBxI,8EAAA,CAA6BiI,sDAA7B,CAAvB;EACH;;EA7EqB,IAAlBQ,kBAAkB;IAClB,IAAI,CAAC,KAAKhB,eAAL,CAAqB/F,OAArB,CAA6B+G,kBAAlC,EAAsD;MAClD,KAAKhB,eAAL,CAAqB/F,OAArB,CAA6B+G,kBAA7B,GAAkD,EAAlD;IACH;;IACD,OAAO,KAAKhB,eAAL,CAAqB/F,OAArB,CAA6B+G,kBAApC;EACH;;EAEiB,IAAd9G,cAAc;IACd,IAAI,CAAC,KAAK8F,eAAL,CAAqB/F,OAArB,CAA6BC,cAAlC,EAAkD;MAC9C,KAAK8F,eAAL,CAAqB/F,OAArB,CAA6BC,cAA7B,GAA8C,IAAIqG,kGAAJ,EAA9C;IACH;;IACD,OAAO,KAAKP,eAAL,CAAqB/F,OAArB,CAA6BC,cAApC;EACH;;EAEuB,IAApBM,oBAAoB;IACpB,IAAI,CAAC,KAAKwF,eAAL,CAAqB/F,OAArB,CAA6BO,oBAAlC,EAAwD;MACpD,KAAKwF,eAAL,CAAqB/F,OAArB,CAA6BO,oBAA7B,GAAoD,IAAI8F,wGAAJ,EAApD;IACH;;IACD,OAAO,KAAKN,eAAL,CAAqB/F,OAArB,CAA6BO,oBAApC;EACH;;EAEgC,IAA7ByG,6BAA6B;IAC7B,IAAI,CAAC,KAAKjB,eAAL,CAAqB/F,OAArB,CAA6BgH,6BAAlC,EAAiE;MAC7D,KAAKjB,eAAL,CAAqB/F,OAArB,CAA6BgH,6BAA7B,GAA6D,IAAIP,kFAAJ,EAA7D;IACH;;IACD,OAAO,KAAKV,eAAL,CAAqB/F,OAArB,CAA6BgH,6BAApC;EACH;;EAEqB,IAAlBN,kBAAkB;IAClB,IAAI,CAAC,KAAKX,eAAL,CAAqB/F,OAArB,CAA6B0G,kBAAlC,EAAsD;MAClD,KAAKX,eAAL,CAAqB/F,OAArB,CAA6B0G,kBAA7B,GAAkD,IAAIA,sFAAJ,EAAlD;IACH;;IACD,OAAO,KAAKX,eAAL,CAAqB/F,OAArB,CAA6B0G,kBAApC;EACH;;EAGkB,IAAfva,eAAe;IACf,OAAO,KAAKD,oBAAZ;EACH;;EACkB,IAAfC,eAAe,CAACxlC,KAAD,EAAM;IACrB,KAAKulC,oBAAL,GAA4BvlC,KAA5B;;IACA,IAAI,KAAKulC,oBAAL,IAA6B,KAAKA,oBAAL,CAA0BxM,MAA3D,EAAmE;MAC/D,KAAKknB,WAAL,GAAmB,KAAK1a,oBAAL,CAA0B+a,YAA7C;IACH;;IACD,KAAKC,mBAAL;EACH;;EAGc,IAAXnV,WAAW;IACX,OAAO,KAAKoV,YAAZ;EACH;;EACc,IAAXpV,WAAW,CAAC7oC,GAAD,EAAI;IACf,KAAKi+C,YAAL,GAAoBj+C,GAApB;IACA,KAAKk+C,UAAL;EACH;;EAMc,IAAXR,WAAW;IACX,OAAO,KAAKS,gBAAZ;EACH;;EACc,IAAXT,WAAW,CAACjgD,KAAD,EAAM;IACjB,KAAK0gD,gBAAL,GAAwB,EAAxB;IACA,KAAKF,YAAL,GAAoB,EAApB;;IACA,IAAI13C,KAAK,CAACC,OAAN,CAAc/I,KAAd,CAAJ,EAA0B;MACtB,KAAK0gD,gBAAL,GAAwB1gD,KAAxB;IACH;;IAED,KAAK2gD,YAAL,GAAoB,KAAKD,gBAAzB;EACH;;EAODjgD,WAAW;IACP,IAAI,KAAKmgD,KAAT,EAAgB;MACZ,KAAKA,KAAL,CAAWhgD,WAAX;IACH;EACJ;;EACDpC,QAAQ;IACJ,KAAKoiD,KAAL,GAAanI,iHAAA,CAAkD,MAAK;MAChE,KAAKwH,WAAL,GAAmB,IAAnB;MACA,KAAK9qB,KAAL,GAAa,EAAb;MACA7mB,MAAM,CAACwb,UAAP,CAAkB,MAAK;QACnB,KAAKy2B,mBAAL;MACH,CAFD,EAEG,EAFH;IAGH,CANY,CAAb;EAOH;;EAEDA,mBAAmB;IACf,MAAMM,YAAY,GAAG,EAArB;IACA,IAAIh8C,KAAK,GAAG,CAAZ;IACA,KAAK2gC,eAAL,CAAqB1Q,WAArB,CAAiCK,KAAjC,CAAuCz0B,OAAvC,CAA+CoC,CAAC,IAAG;MAC/C,IAAIA,CAAC,CAAC+N,QAAF,IAAc/N,CAAC,CAAC+N,QAAF,CAAWzQ,MAAX,GAAoB,CAAtC,EAAyC;QACrC,MAAM0gD,QAAQ,GAAG;UAAEv3C,OAAO,EAAEzG,CAAC,CAACyG,OAAF,GAAYzG,CAAC,CAACyG,OAAF,CAAU4nB,QAAV,EAAZ,GAAmC,IAA9C;UAAoDyE,QAAQ,EAAE9yB,CAAC,CAAC8yB;QAAhE,CAAjB;;QACA,IAAI,CAACkrB,QAAQ,CAACv3C,OAAd,EAAuB;UACnBu3C,QAAQ,CAACv3C,OAAT,GAAmB,SAAS1E,KAA5B;QACH;;QACD,KAAKswB,KAAL,CAAWv2B,IAAX,CAAgBkiD,QAAhB;QACAh+C,CAAC,CAAC+N,QAAF,CAAWnQ,OAAX,CAAmBk9C,EAAE,IAAG;UACpBnF,mGAAA,CAAoCmF,EAApC,EAAwC,KAAKpY,eAA7C,EAA8D9iC,IAA9D,CAAmEq+C,EAAE,IAAG;YACpEnD,EAAE,CAAC,SAAD,CAAF,GAAgBmD,EAAhB;UAEH,CAHD;UAIAF,YAAY,CAACjiD,IAAb,CAAkBg/C,EAAlB;UACA,KAAKoD,aAAL,CAAmB9vC,GAAnB,CAAuB0sC,EAAE,CAAChoB,QAA1B,EAAoC9yB,CAAC,CAAC8yB,QAAtC;QACH,CAPD;MAQH;;MACD/wB,KAAK;IACR,CAjBD;;IAkBA,IAAIg8C,YAAY,CAACzgD,MAAb,KAAwB,CAA5B,EAA+B;MAC3ByE,KAAK,GAAG,CAAR;MACA,KAAK2gC,eAAL,CAAqBzQ,WAArB,CAAiCI,KAAjC,CAAuCz0B,OAAvC,CAA+CoC,CAAC,IAAG;QAC/C,IAAIA,CAAC,CAAC+N,QAAF,IAAc/N,CAAC,CAAC+N,QAAF,CAAWzQ,MAAX,GAAoB,CAAtC,EAAyC;UACrC,MAAM0gD,QAAQ,GAAG;YAAEv3C,OAAO,EAAEzG,CAAC,CAACyG,OAAF,GAAYzG,CAAC,CAACyG,OAAF,CAAU4nB,QAAV,EAAZ,GAAmC,IAA9C;YAAoDyE,QAAQ,EAAE9yB,CAAC,CAAC8yB;UAAhE,CAAjB;;UACA,IAAI,CAACkrB,QAAQ,CAACv3C,OAAd,EAAuB;YACnBu3C,QAAQ,CAACv3C,OAAT,GAAmB,SAAS1E,KAA5B;UACH;;UACD,KAAKswB,KAAL,CAAWv2B,IAAX,CAAgBkiD,QAAhB;UACAh+C,CAAC,CAAC+N,QAAF,CAAWnQ,OAAX,CAAmBk9C,EAAE,IAAG;YAEpBiD,YAAY,CAACjiD,IAAb,CAAkBg/C,EAAlB;YACA,KAAKoD,aAAL,CAAmB9vC,GAAnB,CAAuB0sC,EAAE,CAAChoB,QAA1B,EAAoC9yB,CAAC,CAAC8yB,QAAtC;UACH,CAJD;QAKH;MACJ,CAbD;IAcH;;IACD,KAAKqqB,WAAL,GAAmBY,YAAnB;EACH;;EAEKI,eAAe,CAACthD,IAAD,EAAK;IAAA;;IAAA;MACtB,KAAI,CAACy/C,eAAL,GAAuBz/C,IAAvB;MACA,KAAI,CAACuhD,UAAL,SAAwB,KAAI,CAACC,eAAL,EAAxB;IAFsB;EAGzB;;EAEDC,iBAAiB;IACb,KAAKX,UAAL;EACH;;EAEDA,UAAU;IACN,IAAIY,WAAW,GAAG,KAAKpB,WAAvB;;IACA,IAAI,KAAKqB,cAAL,IAAuB,CAA3B,EAA8B;MAC1BD,WAAW,GAAGA,WAAW,CAAC1+C,MAAZ,CAAmBhD,IAAI,IAAI,KAAKqhD,aAAL,CAAmB/vC,GAAnB,CAAuBtR,IAAI,CAACi2B,QAA5B,MAA0C,KAAK0rB,cAA1E,CAAd;IACH;;IACD,KAAKX,YAAL,GAAoBU,WAAW,CAAC1+C,MAAZ,CAAmBhD,IAAI,IACtC,CAAC,KAAK6gD,YAAN,IAAsB,KAAKA,YAAL,KAAsB,EAA5C,IAAkD7gD,IAAI,CAAC4J,OAAL,CAAa4nB,QAAb,GAAwBowB,MAAxB,CAA+B,KAAKf,YAApC,MAAsD,CAAC,CAD1F,CAApB;EAEH;;EAEMW,eAAe;IAAA;;IAAA;MAClB,MAAM1nC,MAAM,GAAG,EAAf,CADkB,CAElB;;MACA,IAAI,MAAI,CAAC2lC,eAAL,IAAwB,IAAxB,IAAgC,MAAI,CAACA,eAAL,CAAqBhH,kBAArB,KAA4CA,kGAAhF,EAAsH;QAClH,MAAMhjB,IAAI,GAAkBkjB,6FAAA,CAA0C,MAAI,CAAC9S,eAA/C,EAAgE,MAAI,CAAC4Z,eAAL,CAAqBxpB,QAArF,CAA5B;;QACA,IAAIR,IAAI,IAAI,IAAZ,EAAkB;UACd,MAAMssB,MAAM,GAAGpJ,mFAAA,CAAgCljB,IAAhC,CAAf;UACA,MAAMusB,SAAS,GAAG,MAAI,CAACnc,eAAL,CAAqBoc,iBAArB,KAA2CzJ,qEAA3C,GACd,MAAI,CAAC3S,eAAL,CAAqBzQ,WADP,GACqB,MAAI,CAACyQ,eAAL,CAAqB1Q,WAD5D;UAEA4sB,MAAM,CAAC9iD,IAAP,CAAY,GAAG05C,qFAAA,CAAkCqJ,SAAlC,CAAf;;UACA,KAAK,IAAIn6C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGk6C,MAAM,CAACthD,MAA3B,EAAmCoH,CAAC,EAApC,EAAwC;YACpC,MAAMwuB,SAAS,SAASzlB,kFAAA,CAA2BmxC,MAAM,CAACl6C,CAAD,CAAN,CAAUoQ,KAArC,EAA4C,MAAI,CAAC4tB,eAAL,CAAqBvP,WAAjE,CAAxB;;YACA,IAAID,SAAS,IAAIA,SAAS,CAACrkB,MAAvB,IAAiCqkB,SAAS,CAACrkB,MAAV,CAAiBA,MAAlD,IACAqkB,SAAS,CAACrkB,MAAV,CAAiBA,MAAjB,CAAwBkuC,aAAxB,KAA0CA,6DAD9C,EACkE;cAC9D7pB,SAAS,CAACrkB,MAAV,CAAiBD,MAAjB,CAAwBhR,OAAxB,CAAgC3B,CAAC,IAAG;gBAChC,IAAIA,CAAC,CAACo7C,SAAF,KAAgBA,wDAApB,EAAmC;kBAC/B1gC,MAAM,CAAC7a,IAAP,CAAY;oBAAE2K,OAAO,EAAExK,CAAC,CAACwK,OAAb;oBAAsB4E,KAAK,EAAEpP,CAAC,CAAC6J;kBAA/B,CAAZ;gBACH;cACJ,CAJD;cAKA;YACH;UACJ;QACJ;MACJ;;MACD,OAAO6Q,MAAP;IAxBkB;EAyBrB;;EAEDwoC,aAAa,CAAC/8C,KAAD,EAAoBg9C,MAApB,EAA+B;IACxCh9C,KAAK,CAAC67B,cAAN;IACA77B,KAAK,CAAC,YAAD,CAAL,GAAsBg9C,MAAtB;IACAh9C,KAAK,CAAC,UAAD,CAAL,GAAoB,IAApB;EACH;;AAnMiC;;;;;;UA+CjC/D,iDAAKA;;;UAwBLA,iDAAKA;;;AAvEG6+C,yBAAyB,uDALrC7hD,yDAAS,CAAC;EACP4C,QAAQ,EAAE,oBADH;EAEPC,UAAAA,gEAFO;;AAAA,CAAD,CAK4B,GAAzBg/C,yBAAyB,CAAzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBuD;AACS;AAET;AAGR;AACiB;AACQ;AACY;AAC1B;AAC8B;IAOxF,2BAA2B,SAA3B,2BAA2B;IA6CpC,YAAoB,OAAmC;QAAnC,YAAO,GAAP,OAAO,CAA4B;QA3CvD,sBAAiB,GAAG,EAAE,CAAC;IA4CvB,CAAC;QAnCG,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,KAAK;QACrB,IAAI,IAAI,CAAC;QACT,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,uCAAuC,GAAG,IAAI,CAAC;QACpD,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE;YAChE,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,6BAA6B,EAAE;gBAClE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,6BAA6B,GAAG,IAAI,iFAAgB,EAAE,CAAC;aACvF;YACD,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,6BAA6B,CAAC;YACvE,kFAA0B,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACpF,IAAI,KAAK,EAAE;oBACP,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;oBACxB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,uCAAuC,GAAG,KAAK,CAAC;iBACxD;YACL,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC;IAC9C,CAAC;QAGG,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,KAAK;QACrB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;IACtC,CAAC;IAQD,QAAQ;QACJ,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC9C,IAAI,CAAC,EAAE;gBACH,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;aAC9B;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,6EAAyB,CAAC,2FAAqC,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,YAAY,GAAG,uIAAyD,CAAC,CAAC,KAAK,EAAE,EAAE;YACpF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,+EAAoB,IAAI,KAAK,CAAC,WAAW,EAAE;gBACvE,kFAA0B,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBACnG,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,KAAK,6DAAkB,EAAE;wBACnE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;qBAC7B;gBACL,CAAC,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACnC;IACL,CAAC;IAED,QAAQ,CAAC,KAAK;QACV,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,6BAA6B,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YAClE,IAAI,CAAC,6BAA6B,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7E,IAAI,CAAC,uCAAuC,GAAG,IAAI,CAAC,YAAY,CAAC;SACpE;IACL,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,6BAA6B,EAAE;YACpC,IAAI,CAAC,6BAA6B,CAAC,OAAO,GAAG,SAAS,CAAC;YACvD,IAAI,CAAC,6BAA6B,CAAC,WAAW,GAAG,SAAS,CAAC;SAC9D;QACD,IAAI,CAAC,uCAAuC,GAAG,IAAI,CAAC;IACxD,CAAC;;;;;;8BA7EA,iDAAK;8BAwBL,iDAAK;;AAlCG,2BAA2B;IALvC,yDAAS,CAAC;QACP,QAAQ,EAAE,6BAA6B;QACvC,oFAAkD;;KAErD,CAAC;GACW,2BAA2B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClBxC;AACA;AAGA;AACA;AACA;IAOaoC,uBAAuB,SAAvBA,uBAAuB;EA2ChC5gD;IAJA,qBAAgB,EAAhB;IAKI,KAAK7C,aAAL,CAAmBC,IAAnB,CAAwBwmC,uIAAA,CAA0DzkC,CAAC,IAAG;MAClF,KAAK0hD,gBAAL,GAAwB,IAAxB;;MACA,IAAI1hD,CAAC,IAAIA,CAAC,CAAC0b,QAAF,KAAe47B,+EAApB,IAA4Ct3C,CAAC,CAACwkC,WAAlD,EAA+D;QAC3D50B,sFAAA,CAA+B5P,CAAC,CAACwkC,WAAF,CAAcmd,SAA7C,EAAwD,KAAK9c,eAAL,CAAqBvP,WAA7E,EAA0FvzB,IAA1F,CAA+F6/C,CAAC,IAAG;UAC/F,KAAKF,gBAAL,GAAwBE,CAAxB;QACH,CAFD;MAGH;IACJ,CAPuB,CAAxB;EAQH;;EAhDkB,IAAfnD,eAAe;IACf,OAAO,KAAKoD,oBAAZ;EACH;;EACkB,IAAfpD,eAAe,CAACp/C,KAAD,EAAM;IACrB,KAAKwiD,oBAAL,GAA4BxiD,KAA5B;;IACA,IAAIA,KAAJ,EAAW;MACP,IAAI,CAAC,KAAKwiD,oBAAL,CAA0BnJ,OAA1B,CAAkC+G,kBAAvC,EAA2D;QACvD,KAAKoC,oBAAL,CAA0BnJ,OAA1B,CAAkC+G,kBAAlC,GAAuD,EAAvD;MACH;;MACD,KAAKqC,WAAL,GAAmB,KAAKD,oBAAL,CAA0BnJ,OAA1B,CAAkC+G,kBAArD;IACH;EACJ;;EAIkB,IAAf5a,eAAe;IACf,OAAO,KAAKD,oBAAZ;EACH;;EACkB,IAAfC,eAAe,CAACxlC,KAAD,EAAM;IACrB,KAAKulC,oBAAL,GAA4BvlC,KAA5B;EACH;;EAIc,IAAXyiD,WAAW;IACX,OAAO,KAAKC,gBAAZ;EACH;;EACc,IAAXD,WAAW,CAACziD,KAAD,EAAM;IACjB,IAAI8I,KAAK,CAACC,OAAN,CAAc/I,KAAd,CAAJ,EAA0B;MACtB,KAAK0iD,gBAAL,GAAwB1iD,KAAxB;IACH,CAFD,MAEO;MACH,KAAK0iD,gBAAL,GAAwB,EAAxB;IACH;EACJ;;EAiBDjiD,WAAW;IACP,KAAK9B,aAAL,CAAmB+B,OAAnB,CAA2BC,CAAC,IAAIA,CAAC,CAACC,WAAF,EAAhC;EACH;;EAED+S,MAAM,CAAChU,IAAD,EAAK,CACV;;EAEDgjD,SAAS,IACR;;EAEKrM,QAAQ,CAACpxC,KAAD,EAAM;IAAA;;IAAA;MAChB,IAAI,KAAI,CAACm9C,gBAAT,EAA2B;QACvB,MAAM7nC,MAAM,GAAG,IAAI2nC,gEAAJ,EAAf;QACA3nC,MAAM,CAACooC,SAAP,GAAmB,KAAI,CAACP,gBAAL,CAAsBz5C,EAAzC;MACH;IAJe;EAKnB;;EAEDq5C,aAAa,CAAC/8C,KAAD,EAAoBg9C,MAApB,EAA+B;IACxCh9C,KAAK,CAAC67B,cAAN;IACA77B,KAAK,CAAC,YAAD,CAAL,GAAsBg9C,MAAtB;IACAh9C,KAAK,CAAC,UAAD,CAAL,GAAoB,IAApB;EACH;;AA3E+B;;;;;;UAG/B/D,gDAAKA;;;UAeLA,gDAAKA;;;UASLA,gDAAKA;;;AA3BGihD,uBAAuB,sDALnCjkD,wDAAS,CAAC;EACP4C,QAAQ,EAAE,yBADH;EAEPC,UAAAA,sEAFO;;AAAA,CAAD,CAK0B,GAAvBohD,uBAAuB,CAAvB;;;;;;;;;;;;;;;;;;;;;;;;ACboC;AACuB;AAGU;AACU;IAM/E,qBAAqB,SAArB,qBAAqB;;QAG9B,cAAS,GAAG,EAAE,CAAC;QACf,qBAAgB,GAAG,EAAE,CAAC;QA4GtB,gBAAgB;QAChB,uEAAuE;QACvE,GAAG;QAEH,qBAAqB;QACrB,2EAA2E;QAC3E,4FAA4F;QAC5F,OAAO;QACP,GAAG;IACP,CAAC;QAjHO,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,KAAK;QACrB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;IAEtC,CAAC;QAKG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,KAAK;QAEb,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE;YAChG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC;SACxE;IACL,CAAC;IAGD,6FAA6F;IAC1F,2CAA2C;IAC/C,IAAI;IAEH,kBAAkB;QACd,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IAED,SAAS;QACL,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAEnB,IAAI,CAAC,KAAK,GAAG,IAAI,2FAAyB,CAAC,yFAAmC,CAAwB,8EAAqB,CAAC,CAAC,CAAC;QAC9H,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACjC,IAAI,CAAC,EAAE;gBACH,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;aACtB;QACL,CAAC,CAAC,CAAC;IACf,CAAC;IAED,sBAAsB;QAClB,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IAED,cAAc,CAAC,EAAE;QACb,6CAA6C;QAC7C,qCAAqC;QACrC,gCAAgC;QAChC,mDAAmD;QACnD,uDAAuD;QACvD,kBAAkB;QAClB,kCAAkC;QAClC,yCAAyC;QACzC,yCAAyC;QACzC,6CAA6C;QAC7C,iBAAiB;QACjB,WAAW;QACX,OAAO;QACP,wBAAwB;QACxB,GAAG;IACP,CAAC;IAED,aAAa,CAAC,EAAE,EAAE,IAAI;QAClB,WAAW;QACX,+CAA+C;QAC/C,2BAA2B;QAC3B,sDAAsD;QACtD,gCAAgC;QAChC,kBAAkB;QAClB,uEAAuE;QACvE,+BAA+B;QAC/B,wDAAwD;QACxD,oCAAoC;QACpC,eAAe;QACf,WAAW;QACX,cAAc;QACd,mFAAmF;QACnF,2BAA2B;QAC3B,6BAA6B;QAC7B,6BAA6B;QAC7B,4CAA4C;QAC5C,mCAAmC;QACnC,oBAAoB;QACpB,qDAAqD;QACrD,eAAe;QACf,oDAAoD;QACpD,gCAAgC;QAChC,kBAAkB;QAClB,iDAAiD;QACjD,yEAAyE;QACzE,mCAAmC;QACnC,yDAAyD;QACzD,wCAAwC;QACxC,mBAAmB;QACnB,eAAe;QACf,WAAW;QACX,OAAO;QACP,GAAG;IACP,CAAC;;;8BAvGA,gDAAK;sBAWL,gDAAK;;AAlBG,qBAAqB;IAJjC,wDAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,6EAA2C;KAC9C,CAAC;GACW,qBAAqB;AAAA;AA2HlC,gEAAgE;AAEhE,iBAAiB;AACjB,gBAAgB;AAChB,mBAAmB;AACnB,yCAAyC;AAEzC,2DAA2D;AAC3D,OAAO;AAEP,oDAAoD;AACpD,6EAA6E;AAC7E,yGAAyG;AACzG,sDAAsD;AACtD,4DAA4D;AAC5D,sDAAsD;AACtD,mBAAmB;AACnB,mGAAmG;AACnG,iCAAiC;AACjC,4CAA4C;AAC5C,oDAAoD;AACpD,0EAA0E;AAC1E,iDAAiD;AACjD,+BAA+B;AAC/B,6BAA6B;AAC7B,kDAAkD;AAClD,kDAAkD;AAClD,yFAAyF;AACzF,oDAAoD;AACpD,iCAAiC;AACjC,kCAAkC;AAClC,0CAA0C;AAC1C,2BAA2B;AAC3B,8BAA8B;AAC9B,sCAAsC;AACtC,uBAAuB;AACvB,6CAA6C;AAC7C,sBAAsB;AACtB,8BAA8B;AAC9B,eAAe;AACf,aAAa;AACb,yBAAyB;AACzB,OAAO;AAEP,mEAAmE;AACnE,6EAA6E;AAC7E,kDAAkD;AAClD,8EAA8E;AAC9E,mEAAmE;AACnE,kHAAkH;AAClH,4CAA4C;AAC5C,wCAAwC;AACxC,+DAA+D;AAC/D,oFAAoF;AACpF,oDAAoD;AACpD,8FAA8F;AAC9F,+DAA+D;AAC/D,oEAAoE;AACpE,uEAAuE;AACvE,0EAA0E;AAC1E,6DAA6D;AAC7D,+DAA+D;AAC/D,uEAAuE;AACvE,0DAA0D;AAC1D,iCAAiC;AACjC,2BAA2B;AAC3B,0CAA0C;AAC1C,yBAAyB;AACzB,0BAA0B;AAC1B,kCAAkC;AAClC,mBAAmB;AACnB,sBAAsB;AACtB,8BAA8B;AAC9B,eAAe;AACf,aAAa;AACb,yBAAyB;AACzB,OAAO;AACP,GAAG;AAEH,oDAAoD;AACpD,gBAAgB;AAChB,qBAAqB;AACrB,yBAAyB;AACzB,uDAAuD;AACvD,wDAAwD;AAExD,+BAA+B;AAC/B,uCAAuC;AACvC,4CAA4C;AAC5C,4DAA4D;AAC5D,uEAAuE;AACvE,kBAAkB;AAClB,gDAAgD;AAChD,WAAW;AACX,OAAO;AACP,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;ACpOH;AACA;IASaU,sBAAsB,SAAtBA,sBAAsB;EAOZ,IAAf1D,eAAe;IACf,OAAO,KAAKoD,oBAAZ;EACH;;EACkB,IAAfpD,eAAe,CAACp/C,KAAD,EAAM;IACrB,KAAKwiD,oBAAL,GAA4BxiD,KAA5B;;IACA,IAAI,KAAKwiD,oBAAL,IAA6B,KAAKA,oBAAL,CAA0BnJ,OAA3D,EAAoE;MAChE,IAAI,CAAC,KAAKmJ,oBAAL,CAA0BnJ,OAA1B,CAAkC0J,yBAAvC,EAAkE;QAC9D,KAAK3D,eAAL,CAAqB/F,OAArB,CAA6B0J,yBAA7B,GAAyD,IAAIF,6GAAJ,EAAzD;MACH;;MACD,KAAKA,gCAAL,GAAwC,KAAKL,oBAAL,CAA0BnJ,OAA1B,CAAkC0J,yBAA1E;IACH;EACJ;;EAIkB,IAAfvd,eAAe;IACf,OAAO,KAAKD,oBAAZ;EACH;;EACkB,IAAfC,eAAe,CAACxlC,KAAD,EAAM;IACrB,KAAKulC,oBAAL,GAA4BvlC,KAA5B;EAEH;;EAMKgjD,mBAAmB,CAACrjD,IAAD,EAAK;IAAA;EAC7B;;AAnC8B;;;UAM9BwB,gDAAKA;;;UAeLA,gDAAKA;;;AArBG2hD,sBAAsB,sDALlC3kD,wDAAS,CAAC;EACP4C,QAAQ,EAAE,wBADH;EAEPC,UAAAA,qEAFO;;AAAA,CAAD,CAKyB,GAAtB8hD,sBAAsB,CAAtB;;;;;;;;;;;;;;;;;;;;;;;;;;ACXmD;AACN;AACN;AACW;AACW;AACK;IAMlE,kCAAkC,SAAlC,kCAAkC;IAmB3C;QAlBA,eAAU,GAAG,EAAE,CAAC;QAChB,oBAAe,GAAG,EAAE,CAAC;QAkBjB,IAAI,CAAC,eAAe,GAAG,8EAA4B,CAAC,iEAAc,CAAC,CAAC;QACpE,IAAI,CAAC,eAAe,GAAG,8EAA4B,CAAC,sDAAW,CAAC,CAAC;IACrE,CAAC;IAdD,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAUD,eAAe;QACX,+GAAgD,CAAC,GAAG,EAAE;YAClD,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,YAAY;QACR,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YACrD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACpC,IAAI,OAAO,GAAG,2FAA+B,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;gBACnE,IAAI,CAAC,OAAO,EAAE;oBACV,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;iBACvB;gBACD,UAAU,CAAC,IAAI,CAAC;oBACZ,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,OAAO,EAAE,OAAO;iBACnB,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAED,UAAU;QACN,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAChD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACvF;aAAM;YACH,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;SAC/C;IACL,CAAC;IAED,cAAc,CAAC,IAAI;QACf,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YACrD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;SAC7E;aAAM;YACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC9B;IACL,CAAC;;;;8BAjDA,gDAAK;;AAhBG,kCAAkC;IAJ9C,wDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,8EAA4C;KAC/C,CAAC;GACW,kCAAkC;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACX8D;AAC1C;AAEP;AACc;AACK;IAOlE,WAAW,SAAX,WAAW;IA0DpB,YAAoB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;QAxD5C,kBAAa,GAAG,EAAE,CAAC;QAGnB,kBAAa,GAAG,YAAY;QAS5B,gBAAW,GAAG,OAAO;QAErB,aAAQ,GAAG,EAAE,CAAC;QA4BJ,iBAAY,GAAG,IAAI,uDAAY,EAAE;IAe3C,CAAC;QAxCG,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,KAAK;QACZ,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YACnB,MAAM,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE;gBACtB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBAC5B,IAAI,OAAO,GAAG,2FAA+B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC5D,IAAI,CAAC,OAAO,EAAE;wBACV,OAAO,GAAG,gGAA0C,CAAC,WAAW,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;qBACrF;oBACD,IAAI,CAAC,IAAI,CAAC;wBACN,OAAO,EAAE,OAAO;wBAChB,IAAI,EAAE,IAAI;qBACb,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAGD,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,IAAI,eAAe;QACf,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC;YACxD,OAAO,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC;SACrC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAKD,QAAQ;QACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,6GAA8C,CAAC,QAAQ,CAAC,EAAE;YAC9E,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBAC5B,IAAI,QAAQ,KAAK,qEAAe,EAAE;oBAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,WAAW,CAAC;iBAC3E;qBAAM,IAAI,QAAQ,KAAK,qEAAe,EAAE;oBACrC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,WAAW,CAAC;iBAC3E;aACJ;QACL,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,WAAW;QACP,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,aAAa,CAAC,KAAiB,EAAE,EAAiB;QAC9C,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;IAClC,CAAC;;;;;;4BA5EA,gDAAK;8BAGL,gDAAK;uCAGL,gDAAK;0BAGL,gDAAK;qBAKL,gDAAK;2BA0BL,iDAAM;;AA5CE,WAAW;IALvB,wDAAS,CAAC;QACP,QAAQ,EAAE,aAAa;QACvB,oEAAkC;;KAErC,CAAC;GACW,WAAW;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACZqF;AAEjD;IAQ/C,oBAAoB,SAApB,oBAAoB;IA0C/B,YAAoB,eAAyC;QAAzC,oBAAe,GAAf,eAAe,CAA0B;QAxC7D,kBAAa,GAAG,EAAE,CAAC;QAOnB,qBAAgB,GAAY,KAAK;QAGjC,aAAQ,GAAa,mEAAa;IAgChC,CAAC;QA5BC,aAAa;QACf,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IACD,IAAI,aAAa,CAAC,KAAK;QACrB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAClC,CAAC;IAGC,eAAe;IACf,CAAC;IAEH,QAAQ;QACN,oFAAoF;QACpF,wCAAwC;QACxC,gDAAgD;QAChD,2GAA2G;QAC3G,gCAAgC;QAChC,KAAK;QACL,MAAM;IACN,CAAC;IAGH,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACnD,CAAC;IAMD,sBAAsB,CAAC,KAAK;QAC1B,oCAAoC;QACpC,0BAA0B;QAC1B,gCAAgC;QAEhC,kDAAkD;QAClD,gCAAgC;QAChC,yCAAyC;QACzC,GAAG;IAEL,CAAC;IAED,wBAAwB,CAAC,KAAK;QAC5B,IAAI,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;QAClC,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACxB,IAAI,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;QAG9B,iCAAiC;IACnC,CAAC;IAED,aAAa,CAAC,KAAiB,EAAE,YAAiB;QAChD,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;IACvC,CAAC;;;;;;uCAjEA,gDAAK;+BAGL,gDAAK;uBAGL,gDAAK;4BAIL,gDAAK;;AAfK,oBAAoB;IALhC,wDAAS,CAAC;QACT,QAAQ,EAAE,eAAe;QACzB,6EAA2C;;KAE5C,CAAC;GACW,oBAAoB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAOaM,uBAAuB,SAAvBA,uBAAuB;;IAEhC,qBAAgB,EAAhB;IAMA,qBAAgB,KAAhB;IAMA,gBAAqBjL,mEAArB;IAKU,uBAAkB,IAAIj3C,wDAAJ,EAAlB;IAEV,2BAAsB,EAAtB;IA2DA,+BAA0B,EAA1B;EAkIH;;EA1LqB,IAAdmiD,cAAc;IACd,OAAO,KAAKC,mBAAZ;EACH;;EACiB,IAAdD,cAAc,CAACrjD,KAAD,EAAM;IACpB,KAAKujD,kBAAL,GAA0B,EAA1B;IACA,KAAKD,mBAAL,GAA2B,EAA3B;IACA,KAAKA,mBAAL,GAA2BtjD,KAA3B;;IAEA,IAAI,KAAKy4C,wBAAT,EAAmC;MAC/B,KAAK+K,UAAL;IACH;EACJ;;EAEDA,UAAU;IACN,KAAKD,kBAAL,GAA0B,EAA1B;;IACA,IAAIz6C,KAAK,CAACC,OAAN,CAAc,KAAKu6C,mBAAnB,CAAJ,EAA6C;MACzC,IAAI,KAAKrL,cAAL,KAAwBA,+EAA5B,EAAkD;QAC9C,MAAMwL,MAAM,GAAG,KAAKH,mBAApB;QACAG,MAAM,CAAC/iD,OAAP,CAAe+0B,KAAK,IAAG;UACnB,IAAIA,KAAK,CAAC/jB,MAAV,EAAkB;YACd,MAAMgyC,gBAAgB,GAAGjuB,KAAK,CAAC/jB,MAAN,CAAatR,MAAtC;YACAq1B,KAAK,CAAC/jB,MAAN,CAAahR,OAAb,CAAqB,CAACkR,KAAD,EAAQ+xC,CAAR,KAAa;cAC9B,MAAMhkD,IAAI,GAAgB,IAAIwjD,iEAAJ,EAA1B;cACAxjD,IAAI,CAACiY,KAAL,GAAahG,KAAK,CAACgG,KAAnB;cACAjY,IAAI,CAACi2B,QAAL,GAAgBhkB,KAAK,CAACgkB,QAAtB;cACAj2B,IAAI,CAAC4J,OAAL,GAAeqI,KAAK,CAACrI,OAAN,CAAc4nB,QAAd,EAAf;cACAxxB,IAAI,CAACikD,iBAAL,GAAyBF,gBAAgB,GAAG,CAAnB,IAAwBC,CAAC,KAAK,CAAvD;cACAhkD,IAAI,CAACkkD,eAAL,GAAuBH,gBAAgB,GAAG,CAAnB,IAAwBC,CAAC,KAAKD,gBAAgB,GAAG,CAAxE;cACA/jD,IAAI,CAACmkD,iBAAL,GAAyBJ,gBAAgB,GAAG,CAA5C;cACA/jD,IAAI,CAACokD,QAAL,GAAgBnyC,KAAK,CAACwoC,MAAtB;cACA,KAAK3B,wBAAL,CAA8BE,UAA9B,CAAyC/mC,KAAzC,EAAgDlP,IAAhD,CAAqDq+C,EAAE,IAAG;gBACtDphD,IAAI,CAACqI,OAAL,GAAe+4C,EAAf;cACH,CAFD;cAGA,KAAKwC,kBAAL,CAAwB3kD,IAAxB,CAA6Be,IAA7B;YACH,CAbD;UAcH;QACJ,CAlBD;MAmBH,CArBD,MAqBO,IAAI,KAAKs4C,cAAL,KAAwBA,iFAA5B,EAAoD;QAEvD,MAAMjnC,QAAQ,GAAG,KAAKsyC,mBAAtB;QACAtyC,QAAQ,CAACtQ,OAAT,CAAiBoQ,CAAC,IAAG;UACjB,MAAMnR,IAAI,GAAgB,IAAIwjD,iEAAJ,EAA1B;UACAxjD,IAAI,CAACi2B,QAAL,GAAgB9kB,CAAC,CAAC8kB,QAAlB;UACAj2B,IAAI,CAAC4J,OAAL,GAAeuH,CAAC,CAACvH,OAAF,CAAU4nB,QAAV,EAAf;UACAxxB,IAAI,CAACokD,QAAL,GAAgBjzC,CAAC,CAAConC,cAAF,IAAoBA,mFAApB,IAAwDpnC,CAAC,CAAConC,cAAF,IAAoBA,iFAA5F;UACA,KAAKO,wBAAL,CAA8BE,UAA9B,CAAyC7nC,CAAzC,EAA4CpO,IAA5C,CAAiDq+C,EAAE,IAAG;YAClDphD,IAAI,CAACqI,OAAL,GAAe+4C,EAAf;UAEH,CAHD;UAIA,KAAKwC,kBAAL,CAAwB3kD,IAAxB,CAA6Be,IAA7B;QACH,CAVD;MAWH;IAEJ;EACJ;;EAKqB,IAAlB4jD,kBAAkB;IAClB,OAAO,KAAKS,uBAAZ;EACH;;EACqB,IAAlBT,kBAAkB,CAACvjD,KAAD,EAAM;IACxB,KAAKgkD,uBAAL,GAA+BhkD,KAA/B;EACH;;EAEDxB,QAAQ;IACJ,KAAKglD,UAAL;IACA,KAAK7kD,aAAL,CAAmBC,IAAnB,CAAwB65C,8GAAA,CAA+CwL,MAAM,IAAG;MAC5E,MAAMC,MAAM,GAAGD,MAAM,CAACjI,eAAtB;;MACA,IAAI,KAAKmI,YAAL,KAAsBD,MAA1B,EAAkC;QAC9B,MAAM9uB,IAAI,GAAkBkjB,sFAAA,CAAmC,KAAKG,wBAAL,CAA8BjT,eAAjE,EAAkF0e,MAAlF,CAA5B;;QACA,IAAID,MAAM,CAAC/H,YAAP,KAAwBjE,+EAAxB,IAAgD,KAAKA,cAAL,KAAwBA,+EAA5E,EAAkG;UAC9F,KAAKoL,cAAL,GAAsBjuB,IAAI,CAACI,MAA3B,CAD8F,CAE9F;QACH,CAHD,MAGO,IAAIyuB,MAAM,CAAC/H,YAAP,KAAwBjE,iFAAxB,IAAkD,KAAKA,cAAL,KAAwBA,iFAA9E,EAAsG;UACzG,KAAKoL,cAAL,GAAsBjuB,IAAI,CAACvkB,QAA3B,CADyG,CAE1G;QACF;MAEJ;IACJ,CAbuB,CAAxB;EAcH;;EAKDpQ,WAAW;IACP,KAAK9B,aAAL,CAAmB+B,OAAnB,CAA2BC,CAAC,IAAIA,CAAC,CAACC,WAAF,EAAhC;EACH;;EAEKwjD,yBAAyB,CAACl/C,KAAD,EAAM;IAAA;;IAAA;MACjC;MACA,IAAIA,KAAJ,EAAW;QACP,IAAI,OAAOA,KAAK,CAAC22C,aAAb,KAA+B,QAA/B,IAA2C,OAAO32C,KAAK,CAACm/C,YAAb,KAA8B,QAA7E,EAAuF;UACnF,IAAIn/C,KAAK,CAACvF,IAAV,EAAiB;YAAE;YACf,IAAI,KAAI,CAACs4C,cAAL,KAAwB/yC,KAAK,CAACo/C,YAA9B,IAA+Cp/C,KAAK,CAACo/C,YAAN,KAAuBp/C,KAAK,CAACvF,IAAN,CAAWs4C,cAArF,EAAsG;cAClG,MAAMsM,OAAO,GAAG,IAAIvF,6FAAJ,EAAhB;cACAuF,OAAO,CAACtF,kCAAR,GAA6C,KAAI,CAACkF,YAAlD;cACAI,OAAO,CAACvI,eAAR,GAA0B92C,KAAK,CAACvF,IAAN,CAAWwkD,YAArC;cACAI,OAAO,CAACrI,YAAR,GAAuB,KAAI,CAACjE,cAA5B;cACAsM,OAAO,CAACpM,QAAR,GAAmBjzC,KAAK,CAACvF,IAAN,CAAWw4C,QAA9B;cACAoM,OAAO,CAACC,sBAAR,GAAiC,KAAI,CAACrM,QAAtC;;cAEA,KAAI,CAACM,wBAAL,CAA8BkD,2BAA9B,CAA0D4I,OAA1D,EAAmEr/C,KAAK,CAAC22C,aAAzE,EAAwF32C,KAAK,CAACm/C,YAA9F;;cACA,KAAI,CAAChB,cAAL,GAAsB,KAAI,CAACA,cAA3B;YACH;UACJ,CAZD,MAYO;YAAG;YACN,IAAI,KAAI,CAACA,cAAL,CAAoBjjD,MAApB,GAA6B,CAAjC,EAAoC;cAChC,MAAMmkD,OAAO,GAAG,IAAIvF,6FAAJ,EAAhB;cACAuF,OAAO,CAACvI,eAAR,GAA0B,KAAI,CAACmI,YAA/B;cACAI,OAAO,CAACrI,YAAR,GAAuB,KAAI,CAACjE,cAA5B;;cACA,KAAI,CAACQ,wBAAL,CAA8BkD,2BAA9B,CAA0D4I,OAA1D,EAAmEr/C,KAAK,CAAC22C,aAAzE,EAAwF32C,KAAK,CAACm/C,YAA9F;YACH;UACJ;QACJ,CArBD,MAsBK;UACD,MAAMx/C,KAAK,GAAGK,KAAK,CAAClC,KAApB;UACA,MAAMyhD,aAAa,GAAGv/C,KAAK,CAAC7C,KAA5B;;UAEA,IAAIoiD,aAAa,IAAIA,aAAa,CAACrkD,MAAd,GAAuB,CAA5C,EAA+C;YAC3C,KAAK,IAAIoH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGi9C,aAAa,CAACrkD,MAAlC,EAA0CoH,CAAC,EAA3C,EAA+C;cAC3C,MAAMk9C,MAAM,GAAGD,aAAa,CAACj9C,CAAD,CAA5B;;cAEA,IAAI,KAAI,CAACywC,cAAL,KAAwBA,+EAA5B,EAAkD;gBAC9C,MAAMuB,OAAO,SAASjpC,kFAAA,CAA2Bm0C,MAA3B,EAAmC,KAAI,CAACjM,wBAAL,CAA8BjT,eAA9B,CAA8CvP,WAAjF,CAAtB;;gBACA,IAAIujB,OAAJ,EAAa;kBACT,MAAMgF,SAAS,GAAG,IAAIzG,oFAAJ,EAAlB;kBACAyG,SAAS,CAACvpB,IAAV,GAAiBkjB,qEAAjB;kBACAqG,SAAS,CAAC5mC,KAAV,GAAkB8sC,MAAlB;kBACAlG,SAAS,CAACmG,YAAV,GAAyBnL,OAAO,CAAC7nC,MAAR,CAAe/I,EAAxC;kBACA41C,SAAS,CAACoG,WAAV,GAAwBpL,OAAO,CAAC7nC,MAAR,CAAeA,MAAf,CAAsB/I,EAA9C;kBACA41C,SAAS,CAAC5oB,QAAV,GAAqB,KAAI,CAAC6iB,wBAAL,CAA8BrC,eAA9B,EAArB;kBACAoI,SAAS,CAACj1C,OAAV,GAAoB,IAAI05C,6EAAJ,CAAqBzJ,OAAO,CAACjwC,OAA7B,CAApB;kBACA,MAAMksB,KAAK,GAAG,IAAIqiB,sFAAJ,EAAd;kBACAriB,KAAK,CAAC/jB,MAAN,CAAa9S,IAAb,CAAkB4/C,SAAlB;;kBACA,KAAI,CAAC6E,cAAL,CAAoBh2C,MAApB,CAA2BxI,KAA3B,EAAkC,CAAlC,EAAqC4wB,KAArC;gBACH;cACJ,CAdD,MAcO,IAAI,KAAI,CAACwiB,cAAL,KAAwBA,iFAA5B,EAAoD;gBACvD,MAAMY,GAAG,SAAStoC,oFAAA,CAA6Bm0C,MAA7B,EAAqC,KAAI,CAACjM,wBAAL,CAA8BjT,eAA9B,CAA8CvP,WAAnF,CAAlB;;gBACA,IAAI4iB,GAAJ,EAAS;kBACL,MAAMkE,WAAW,GAAG,IAAI/E,wFAAJ,EAApB;kBACA+E,WAAW,CAACnnB,QAAZ,GAAuB,KAAI,CAAC6iB,wBAAL,CAA8BrC,eAA9B,EAAvB;kBACA2G,WAAW,CAACxmB,OAAZ,GAAsBsiB,GAAG,CAACjwC,EAA1B;kBACAm0C,WAAW,CAACxzC,OAAZ,GAAsB,IAAI05C,6EAAJ,CAAqBpK,GAAG,CAACtvC,OAAzB,CAAtB;kBACAwzC,WAAW,CAAChsC,IAAZ,GAAmB8nC,GAAG,CAAC9nC,IAAJ,CAASnI,EAA5B;;kBACA,KAAI,CAACy6C,cAAL,CAAoBh2C,MAApB,CAA2BxI,KAA3B,EAAkC,CAAlC,EAAqCk4C,WAArC;;kBACAtE,4GAAA,CAA6C,IAA7C;gBACH;cACJ;YACJ;;YACD,KAAI,CAAC4K,cAAL,GAAsB,KAAI,CAACA,cAA3B;;YACA,KAAI,CAACwB,eAAL,CAAqBnmD,IAArB,CAA0BwG,KAA1B;UACH,CAjCD,MAiCO,IAAI,CAACu/C,aAAD,IAAkBv/C,KAAK,CAAC4/C,cAA5B,EAA4C;YAC/C,MAAMC,QAAQ,GAAG,KAAI,CAAC9M,cAAL,KAAwBA,iFAAxB,GAAiD,IAAID,wFAAJ,EAAjD,GAAqE,IAAID,oFAAJ,EAAtF;YACAgN,QAAQ,CAACnvB,QAAT,GAAoB,KAAI,CAAC6iB,wBAAL,CAA8BrC,eAA9B,EAApB;;YACA,IAAIlxC,KAAK,CAAC4/C,cAAN,KAAyB1M,mGAAzB,IAAiE,KAAI,CAACH,cAAL,KAAwBA,iFAA7F,EAAqH;cACjH8M,QAAQ,CAACx7C,OAAT,GAAmB,IAAI05C,6EAAJ,CAAqB,YAArB,CAAnB;cACA,MAAMrE,IAAI,GAAGsE,sGAAA,CAA8B6B,QAAQ,CAACnvB,QAAvC,CAAb;;cACA,KAAI,CAAC6iB,wBAAL,CAA8BkG,OAA9B,CAAsCC,IAAtC;YACH,CAJD,MAIO;cACH,IAAI15C,KAAK,CAAC4/C,cAAN,KAAyB1M,8FAAzB,IAA4D,KAAI,CAACH,cAAL,KAAwBA,iFAAxF,EAAgH;gBAC5G8M,QAAQ,CAACx7C,OAAT,GAAmB,IAAI05C,6EAAJ,CAAqB,OAArB,CAAnB;cACH,CAFD,MAEO,IAAI/9C,KAAK,CAAC4/C,cAAN,KAAyB1M,0FAA7B,EAA0D;gBAC7D2M,QAAQ,CAACx7C,OAAT,GAAmB,IAAI05C,6EAAJ,CAAqB,UAArB,CAAnB;cACH;YACJ;;YACD,MAAM5K,yGAAA,CAA2C0M,QAAQ,CAACx7C,OAApD,EAA6D,MAAK;cACpEw7C,QAAQ,CAAC3M,kBAAT,GAA8BlzC,KAAK,CAAC4/C,cAApC;;cACA,IAAI,KAAI,CAAC7M,cAAL,KAAwBA,+EAA5B,EAAkD;gBAC9C,MAAMxiB,KAAK,GAAG,IAAIqiB,sFAAJ,EAAd;gBACAriB,KAAK,CAAC/jB,MAAN,CAAa9S,IAAb,CAAkBmmD,QAAlB;;gBACA,KAAI,CAAC1B,cAAL,CAAoBh2C,MAApB,CAA2BxI,KAA3B,EAAkC,CAAlC,EAAqC4wB,KAArC;;gBACA,KAAI,CAAC4tB,cAAL,GAAsB,KAAI,CAACA,cAA3B;gBACA5K,mHAAA,CAAoD,IAApD;cACH,CAND,MAMO;gBAAE;gBACL,KAAI,CAAC4K,cAAL,CAAoBh2C,MAApB,CAA2BxI,KAA3B,EAAkC,CAAlC,EAAqCkgD,QAArC;;gBACA,KAAI,CAAC1B,cAAL,GAAsB,KAAI,CAACA,cAA3B;gBACA5K,qHAAA,CAAsD,IAAtD;cACH;;cACD,KAAI,CAACoM,eAAL,CAAqBnmD,IAArB,CAA0BwG,KAA1B;YACH,CAdK,CAAN;UAeH;QACJ;MACJ;IA7FgC;EA8FpC;;AAjN+B;;;UAI/B/D,iDAAKA;;;UAGLA,iDAAKA;;;UAGLA,iDAAKA;;;UAGLA,iDAAKA;;;UAGLA,iDAAKA;;;UAGLC,kDAAMA;;;UAIND,iDAAKA;;;UA2DLA,iDAAKA;;;AAlFGiiD,uBAAuB,uDALnCjlD,yDAAS,CAAC;EACP4C,QAAQ,EAAE,kBADH;EAEPC,UAAAA,sEAFO;;AAAA,CAAD,CAK0B,GAAvBoiD,uBAAuB,CAAvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrByD;AACoB;AAGtB;AACX;AACc;AACmC;AACY;AACJ;AACuB;IAO5H,yBAAyB,SAAzB,yBAAyB;IA+ElC;QArDA,aAAQ,GAAa,mEAAa;QAKlC,4BAAuB,GAAG,EAAE,CAAC;QAyB7B,kBAAa,GAAG,EAAE,CAAC;QAKT,oBAAe,GAAG,IAAI,uDAAY,EAAO;QAcnD,cAAS,GAAG,EAAE,CAAC;QAEf,cAAS,GAAG,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;QAU9D,8BAAyB,GAAG,KAAK,CAAC;QAP/B,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;QA7EG,wBAAwB;QACxB,OAAO,IAAI,CAAC,6BAA6B,CAAC;IAC9C,CAAC;IACD,IAAI,wBAAwB,CAAC,KAAK;QAC9B,IAAI,CAAC,6BAA6B,GAAG,KAAK,CAAC;IAC/C,CAAC;QAMG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,KAAK;QACjB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAClC,CAAC;QAcG,kBAAkB;QAClB,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACxC,CAAC;IACD,IAAI,kBAAkB,CAAC,KAAK;QACxB,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACtB,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;SACxC;IACL,CAAC;IAGD,IAAI,YAAY;QACZ,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,oBAAoB,EAAE,CAAC;YACpD,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACxD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAChD,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACzE,IAAI,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;SAC/D;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;QAWG,OAAO;QACP,OAAO,EAAE,CAAC;IACd,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;IACf,CAAC;IAcD,WAAW;QACP,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACrD,CAAC;IAID,QAAQ;QACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,uIAAyD,CAAC,CAAC,KAAK,EAAE,EAAE;YACxF,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,QAAQ,KAAK,yFAA8B,CAAC,EAAE;gBACxG,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;aACjC;iBAAM;gBACH,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;aACvB;YACD,IAAI,CAAC,IAAI,CAAC,yBAAyB,IAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE;gBAC5D,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;aACzD;YACD,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;QAC3C,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,4IAA+C,CAAC,GAAG,EAAE;YACzE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gJAAqD,CAAC,GAAG,EAAE;YAC/E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YAC1E,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACpC,IAAI,OAAO,GAAG,2FAA+B,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;gBACnE,IAAI,CAAC,OAAO,EAAE;oBACV,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;iBACvB;gBACD,OAAO,CAAC,IAAI,CAAC;oBACT,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,OAAO,EAAE,OAAO;iBACnB,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;SACrC;IACL,CAAC;IAED,IAAI,CAAC,KAA4B;QAC7B,MAAM,aAAa,GAAG;YAClB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,MAAM,EAAG,IAAI,CAAC,YAAY;YAC1B,YAAY,EAAE,IAAI,CAAC,cAAc;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI;SACb,CAAC;QAEF,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,iBAAiB,EAAE;YAC7C,aAAa,CAAC,IAAI,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC;SACrD;QACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YAC1E,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,IAAI,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM;gBACpF,KAAK,CAAC,YAAY,IAAI,CAAC,IAAI,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE;gBACpF,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBAChE,IAAI,CAAC,aAAa,EAAE,CAAC;aACxB;SACJ;IACL,CAAC;IAED,MAAM,CAAC,IAAI;QACP,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,KAAK,CAAC;YACV,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACzG,IAAI,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,EAAE;oBACjB,KAAK,GAAG,CAAC,CAAC;iBACb;YACL,CAAC,CAAC,EAAE;gBACA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,aAAa,EAAE,CAAC;aACxB;SACJ;aAAM;YACH,MAAM,OAAO,GAAG,IAAI,4FAA6B,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;YACjC,OAAO,CAAC,eAAe,GAAG,MAAM,CAAC;YACjC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;YAC3C,MAAM,WAAW,GAAG,IAAI,yFAA0B,EAAE,CAAC;YACrD,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;YAC5B,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxC,IAAI,CAAC,wBAAwB,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAC;SACxE;IACL,CAAC;IAED,SAAS;QACL,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,EAAE;YAC3C,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,EAAE,CAAC;YACjC,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB;IACL,CAAC;IAED,QAAQ,CAAC,KAAK;QACV,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAC5C,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACvC,+BAA+B;QAC9B,MAAM,KAAK,GAAG,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;QACpF,qBAAqB;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE;YAClC,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC1B,IAAI,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,IAAI,OAAO,QAAQ,CAAC,WAAW,CAAC,kBAAkB,KAAK,QAAQ,EAAE,EAAE,iBAAiB;gBAC5H,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;oBACtB,cAAc,EAAE,QAAQ,CAAC,WAAW,CAAC,kBAAkB;oBACvD,KAAK,EAAE,KAAK;iBACf,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,IAAI,CAAC,cAAc,KAAK,gFAAqB,EAAE;oBAC/C,IAAI,QAAQ,CAAC,QAAQ,KAAK,gFAAqB,IAAI,IAAI,CAAC,eAAe,EAAE;wBACrE,MAAM,QAAQ,GAAG,EAAE,CAAC;wBACpB,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;4BACrC,QAAQ,CAAC,IAAI,CAAC;gCACV,EAAE,EAAE,IAAI,CAAC,EAAE;gCACX,OAAO,EAAE,IAAI,CAAC,OAAO;gCACrB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gCACzC,OAAO,EAAE,IAAI,CAAC,OAAO;gCACrB,WAAW,EAAE,IAAI,CAAC,WAAW;gCAC7B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gCACzC,YAAY,EAAE,IAAI,CAAC,YAAY;gCAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;6BAClB,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;wBACH,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;4BAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC;yBAC7D;6BAAM;4BACH,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,QAAQ,CAAC;yBAC1C;wBACD,IAAI,CAAC,aAAa,EAAE,CAAC;wBACrB,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;qBACzD;iBACJ;qBAAM;oBACH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;wBACtB,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,OAAO;wBACnC,KAAK,EAAE,KAAK;qBACf,CAAC,CAAC;iBACN;aACJ;SACJ;IACL,CAAC;IAEM,SAAS,CAAC,KAAK;QAClB,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACtC,IAAI,QAAQ,IAAI,KAAK,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;gBAC7B,wEAAe,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;aAC5E;SACJ;aAAM;YACH,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;YAC7B,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;SAC5D;IACL,CAAC;IAEM,OAAO,CAAC,KAAgB;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAClC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE;gBACf,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrC,OAAO,IAAI,CAAC;aACf;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,aAAa,CAAC,KAAiB,EAAE,MAAW;QACxC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;QAC7B,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAC7B,CAAC;;;;uCAlQA,gDAAK;0BAWL,gDAAK;6BAQL,gDAAK;uBAGL,gDAAK;2BAGL,gDAAK;iCAKL,gDAAK;2BAyBL,gDAAK;8BAGL,iDAAM;sBAGN,gDAAK;8BAOL,gDAAK;;AAvEG,yBAAyB;IALrC,wDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,8EAA4C;;KAE/C,CAAC;GACW,yBAAyB;AAAA;AAwQ/B,MAAM,WAAW;;AAYjB,MAAM,oBAAoB;;QAI7B,aAAQ,GAAa,mEAAa,CAAC;QAInC,4BAAuB,GAAG,EAAE,CAAC;IACjC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9SmH;AAC5D;AACG;AACd;AAC6D;AAM+B;IAQ5H,qBAAqB,SAArB,qBAAqB;;QAW9B,wBAAmB,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAM7C,WAAM,GAAU,EAAE,CAAC;QAEnB,aAAQ,GAAU;YACd,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE;YACnC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE;YAC/B,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE;SACpC,CAAC;QAEF,eAAU,GAAG,IAAI,CAAC;QAClB,oBAAe,GAAG,EAAE,CAAC;QAKrB,mBAAc,GAAU,EAAE,CAAC;QA0CjB,0BAAqB,GAAG,IAAI,uDAAY,EAAE;QAsLpD,8BAAyB,GAA6D;YAClF,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;YAC3D,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;YAC3D,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;YACvD,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE;YAC9D,EAAE,IAAI,EAAE,2BAA2B,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE;YACvE,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE;YAC3D,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE;YAC/D,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE;YAC3D,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE;YAC7D,EAAE,IAAI,EAAE,kCAAkC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE;SACnF,CAAC;QAEF,wBAAmB,GAA6D;YAC5E,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE;YAC7D,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE;SACrE,CAAC;IA6HN,CAAC;QAxWO,eAAe;QACf,IAAI,IAAI,CAAC,oBAAoB,YAAY,gGAAe,EAAE;YACtD,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxD,MAAM,EAAE,GAAG,IAAI,8FAAa,EAAE,CAAC;gBAC/B,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,wBAAwB,CAAC,eAAe,EAAE,CAAC;gBAC9D,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACxD;YACD,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxD,MAAM,EAAE,GAAG,IAAI,8FAAa,EAAE,CAAC;gBAC/B,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,wBAAwB,CAAC,eAAe,EAAE,CAAC;gBAC9D,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACxD;SACJ;QACD,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,KAAK;QACrB,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,YAAY,gGAAe,CAAC;gBACvD,CAAC,KAAK,YAAY,gGAAe,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE;gBACzD,MAAM,IAAI,GAAG,4DAAS,CAAC,KAAK,CAAC,CAAC;gBAC9B,KAAK,GAAG,8DAAW,CAAC,gGAAe,EAAE,IAAI,CAAC,CAAC;gBAC3C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,wBAAwB,GAAG,IAAI,uFAAwB,CAAC,KAAwB,CAAC,CAAC;gBACvF,IAAI,CAAC,YAAY,GAAG,8GAA+C,CAAC,GAAG,EAAE;oBACrE,IAAI,IAAI,CAAC,YAAY,EAAE;wBACnB,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;qBACtC;gBACL,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1C;iBAAM;gBACH,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1C;SACJ;IACL,CAAC;QAkBG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAElC,CAAC;IACD,IAAI,YAAY,CAAC,KAAK;QAClB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IACnC,CAAC;IAGD,IAAI,kBAAkB;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,oBAAoB,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE;YAC3J,MAAM,GAAG,GAAG;gBACR,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,UAAU;gBAC/C,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,SAAS;gBAC9C,KAAK,EAAE,CAAC;gBACR,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC,UAAU;aACpD,CAAC;YACF,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,UAAU;QACN,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC5B;IACL,CAAC;IAEO,eAAe;QACnB,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;QAC7D,IAAI,cAAc,IAAI,cAAc,CAAC,eAAe,EAAE;YAClD,cAAc,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC;YACnE,cAAc,CAAC,aAAa,CAAC,GAAG,cAAc,CAAC,eAAe,CAAC,WAAW,CAAC;YAC3E,cAAc,CAAC,eAAe,CAAC,GAAG,cAAc,CAAC,eAAe,CAAC,aAAa,CAAC;YAC/E,cAAc,CAAC,mBAAmB,CAAC,GAAG,cAAc,CAAC,eAAe,CAAC,iBAAiB,CAAC;SAC1F;QACD,IAAI,cAAc,IAAI,cAAc,CAAC,OAAO,EAAE;YAC1C,qBAAqB,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;SAC9D;QACD,IAAI,CAAC,oBAAoB,CAAC,WAAW,GAAG,cAAc,CAAC;IAC3D,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,OAAwB;QAChD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACrC,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,MAAM,CAAC,eAAe,EAAE;oBACxB,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC;oBAC/D,MAAM,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,iBAAiB,CAAC;oBACvE,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC;oBACnD,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC;iBAC9D;gBACD,IAAI,MAAM,CAAC,OAAO,EAAE;oBAChB,qBAAqB,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;iBACtD;aACJ;SACJ;IACL,CAAC;IAED,2BAA2B,CAAC,GAAG;QAC3B,0GAA2C,EAAE,CAAC;QAC9C,0BAA0B;QAC1B,sCAAsC;QACtC,GAAG;IACP,CAAC;IAED,4BAA4B,CAAC,GAAG;QAC5B,0BAA0B;QAC1B,sCAAsC;QACtC,GAAG;IACP,CAAC;IAED,sBAAsB,CAAC,GAAG;QACtB,0BAA0B;QAC1B,sCAAsC;QACtC,GAAG;IACP,CAAC;IAED,sBAAsB,CAAC,GAAG;QACtB,0BAA0B;QAC1B,sCAAsC;QACtC,GAAG;IACP,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,yBAAyB,GAAG,+GAAgD,CAAC,GAAG,EAAE;YACnF,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,YAAY,EAAE;gBAChD,IAAI,CAAC,eAAe,EAAE,CAAC;aAC1B;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE;YACpE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;SACxE;IACL,CAAC;IAED,WAAW;QACP,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,CAAC;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAED,iBAAiB,CAAC,KAAiB,EAAE,QAAkB;QACnD,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;IACjC,CAAC;IAED,aAAa,CAAC,KAAiB,EAAE,IAAS;QACtC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QAClD,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QAClD,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,KAAK,EAA+B,CAAC;QAErE,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE;YACnC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;SACrF;QACD,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE;YACrC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;SACzF;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE;YAC/B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SAC7E;QACD,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE;YACjC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;SACjF;QACD,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE;YACjC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;SACjF;QACD,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7C,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC/B;IAEL,CAAC;IAED,0BAA0B,CAAC,IAAwC;QAC/D,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,EAAqD,CAAC;QAChF,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACjC,IAAI,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBAC1B;YACL,CAAC,CAAC,CAAC;SACN;aACI;YACD,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACvC,IAAI,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBAC1B;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,wBAAwB,CAAC,QAAgB;QACrC,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7H,CAAC;IAED,eAAe;QACX,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,KAAK,EAA+B,CAAC;IACzE,CAAC;IAsBD,mBAAmB,CAAC,EAAU;QAC1B,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,QAAQ,EAAE,EAAE;gBACR,KAAK,EAAE,EAAE,cAAc;oBACnB,IAAI,OAAO,GAAuC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;oBAC5E,IAAI,OAAO,EAAE;wBACT,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC;wBACpD,IAAI,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC;wBACtD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,EAAE;4BAClD,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yBACrC;qBACJ;oBACD,MAAM;gBACV,KAAK,EAAE,EAAE,mBAAmB;oBACxB,IAAI,OAAO,GAAuC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;oBAC5E,IAAI,OAAO,EAAE;wBACT,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC;wBACpD,IAAI,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC;wBACtD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,EAAE;4BAClD,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yBACxC;qBACJ;oBACD,MAAM;gBACV,QAAQ;aACX;SACJ;aACI;YAED,QAAQ,EAAE,EAAE;gBACR,KAAK,CAAC,EAAE,4BAA4B;oBAChC,IAAI,OAAO,GAAuC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;oBAC5E,IAAI,OAAO,EAAE;wBACT,IAAI,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC;wBACxD,IAAI,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC;wBACpD,IAAI,UAAU,IAAI,QAAQ,EAAE;4BACxB,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;yBAC3F;qBACJ;oBACD,MAAM;gBACV,KAAK,CAAC,EAAC,yBAAyB;oBAC5B,IAAI,OAAO,GAAuC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;oBAC5E,IAAI,OAAO,EAAE;wBACT,IAAI,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC;wBACxD,IAAI,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC;wBACpD,IAAI,UAAU,IAAI,QAAQ,EAAE;4BACxB,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;yBAC1F;qBACJ;oBACD,MAAM;gBACV,KAAK,CAAC,EAAC,mBAAmB;oBACtB,IAAI,OAAO,GAAuC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;oBAC5E,IAAI,OAAO,EAAE;wBACT,IAAI,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC;wBACxD,IAAI,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC;wBACpD,IAAI,UAAU,IAAI,QAAQ,EAAE;4BACxB,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;yBACvF;qBACJ;oBACD,MAAM;gBACV,KAAK,CAAC;oBACF,IAAI,OAAO,GAAkC,IAAI,CAAC,+BAA+B,EAAE,CAAC;oBACpF,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;oBACpD,MAAM;gBACV,KAAK,CAAC;oBACF,IAAI,QAAQ,GAAkC,IAAI,CAAC,+BAA+B,EAAE,CAAC;oBACrF,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACtD,MAAM;gBACV,KAAK,CAAC;oBACF,IAAI,QAAQ,GAAkC,IAAI,CAAC,+BAA+B,EAAE,CAAC;oBACrF,IAAI,CAAC,wBAAwB,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC;oBACtE,MAAM;gBACV,KAAK,CAAC,EAAC,mBAAmB;oBACtB,IAAI,OAAO,GAAuC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;oBAC5E,IAAI,OAAO,EAAE;wBACT,IAAI,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC;wBACzD,IAAI,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;wBACrD,IAAI,UAAU,IAAI,QAAQ,EAAE;4BACxB,IAAI,CAAC,wBAAwB,CAAC,8BAA8B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;yBAChF;qBACJ;oBACD,MAAM;gBACV,KAAK,CAAC;oBACF,IAAI,QAAQ,GAAkC,IAAI,CAAC,+BAA+B,EAAE,CAAC;oBACtF,IAAI,CAAC,wBAAwB,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC;oBACrE,MAAM;gBACV,KAAK,EAAE;oBACH,IAAI,SAAS,GAAkC,IAAI,CAAC,+BAA+B,EAAE,CAAC;oBACtF,IAAI,CAAC,wBAAwB,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC;oBACvE,MAAM;gBACV,KAAK,EAAE;oBACH,IAAI,SAAS,GAAkC,IAAI,CAAC,+BAA+B,EAAE,CAAC;oBACtF,IAAI,CAAC,wBAAwB,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC;oBACvE,MAAM;gBAEV,QAAQ;aACX;SACJ;IACL,CAAC;IAID,+BAA+B;QAC3B,IAAI,OAAO,GAAkC,IAAI,CAAC;QAClD,IAAI,MAAM,GAAuC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;QAC3E,IAAI,MAAM,EAAE;YACR,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC;YACnD,IAAI,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC;YAC3D,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,cAAc,CAAC,CAAC;YAC3D,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,YAAY,IAAI,YAAY,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE;gBAClH,OAAO,GAAG,IAAI,4FAA6B,EAAE,CAAC;gBAC9C,IAAI,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC;gBAC5B,IAAI,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC;gBAClC,IAAI,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC;gBAChC,OAAO,CAAC,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACzC,OAAO,CAAC,YAAY,GAAG,QAAQ,CAAC;gBAChC,IAAI,WAAW,GAA+B,IAAI,yFAA0B,EAAE,CAAC;gBAC/E,WAAW,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACpC,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;gBACzC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAC3C;SACJ;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;;AAhUa,8CAAwB,GAAiB,IAAI,yCAAO,EAAQ;;uBAzEzE,oDAAS,SAAC,WAAW;wBACrB,oDAAS,SAAC,WAAW;8BACrB,oDAAS,SAAC,iBAAiB;6BAC3B,oDAAS,SAAC,gBAAgB;gCAC1B,oDAAS,SAAC,mBAAmB;4BAC7B,oDAAS,SAAC,eAAe;2BACzB,oDAAS,SAAC,cAAc;0BACxB,oDAAS,SAAC,kEAAc;2BAoBxB,gDAAK;8BAML,gDAAK;oCAsCL,iDAAM;2BAgBN,gDAAK;;AAzFG,qBAAqB;IALjC,wDAAS,CAAC;QACP,QAAQ,EAAE,0BAA0B;QACpC,iFAA+C;;KAElD,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClBlC;AACA;AAIA;AACA;IAOa8B,oCAAoC,SAApCA,oCAAoC;EA4F7C1jD;IA1FA,8BAAkC,KAAlC;IAEA,uBAAkB,EAAlB;IAIA,sBAAiB,EAAjB;IAoDA,+BAAuC,EAAvC;IACA,+BAAuC,EAAvC;IAcA,iCAA2C,EAA3C;IACA,iCAA2C,EAA3C;IAiBI,KAAK0+C,eAAL,GAAuBvI,8EAAA,CAA6BO,iEAA7B,CAAvB;EACH;;EApFoB,IAAjBiN,iBAAiB;IACjB,OAAO,KAAKC,sBAAZ;EACH;;EACoB,IAAjBD,iBAAiB,CAACnlD,KAAD,EAAM;IACvB,IAAI,KAAKmlD,iBAAL,IAA0BnlD,KAA9B,EAAqC;MACjC,KAAKolD,sBAAL,GAA8BplD,KAA9B;;MACA,IAAIA,KAAJ,EAAW;QACP,KAAKqlD,cAAL,GAAsB,KAAKC,uBAA3B;MACH,CAFD,MAGK;QACD,KAAKD,cAAL,GAAsB,KAAKE,yBAA3B;MACH;;MACD,IAAI,KAAK9M,wBAAT,EAAmC;QAC/B,KAAK+M,kBAAL,GAA0B,KAAKC,6BAAL,CAAmChK,oBAAnC,EAA1B;QACA,KAAKiK,oBAAL,GAA4B,KAAKD,6BAAL,CAAmCnK,sBAAnC,EAA5B;MACH;IACJ;EACJ;;EAIkB,IAAf9V,eAAe;IACf,OAAO,KAAKD,oBAAZ;EACH;;EACkB,IAAfC,eAAe,CAACxlC,KAAD,EAAM;IACrB,KAAKulC,oBAAL,GAA4BvlC,KAA5B;EACH;;EAI2B,IAAxBy4C,wBAAwB;IACxB,OAAO,KAAKgN,6BAAZ;EACH;;EAC2B,IAAxBhN,wBAAwB,CAACz4C,KAAD,EAAM;IAC9B,KAAKylD,6BAAL,GAAqCzlD,KAArC;EAEH;;EAKc,IAAXorC,WAAW;IACX,OAAO,KAAKoV,YAAZ;EACH;;EACc,IAAXpV,WAAW,CAAC7oC,GAAD,EAAI;IACf,KAAKi+C,YAAL,GAAoBj+C,GAApB;IACA,KAAKk+C,UAAL;EACH;;EAMqB,IAAlB+E,kBAAkB;IAClB,OAAO,KAAKG,uBAAZ;EACH;;EACqB,IAAlBH,kBAAkB,CAACxlD,KAAD,EAAM;IACxB,KAAK2lD,uBAAL,GAA+B,EAA/B;IACA,KAAKnF,YAAL,IAAqB,EAArB;;IACA,IAAI13C,KAAK,CAACC,OAAN,CAAc/I,KAAd,CAAJ,EAA0B;MACtB,KAAK2lD,uBAAL,GAA+B3lD,KAA/B;IACH;;IACD,KAAKslD,uBAAL,GAA+B,KAAKK,uBAApC;EACH;;EAKuB,IAApBD,oBAAoB;IACpB,OAAO,KAAKE,yBAAZ;EACH;;EACuB,IAApBF,oBAAoB,CAAC1lD,KAAD,EAAM;IAC1B,KAAK4lD,yBAAL,GAAiC,EAAjC;IACA,KAAKpF,YAAL,IAAqB,EAArB;;IACA,IAAI13C,KAAK,CAACC,OAAN,CAAc/I,KAAd,CAAJ,EAA0B;MACtB,KAAK4lD,yBAAL,GAAiC5lD,KAAjC;IACH;;IACD,KAAKulD,yBAAL,GAAiCvlD,KAAjC;EACH;;EAODxB,QAAQ;IACJ,IAAI,KAAKi6C,wBAAT,EAAmC;MAC/B,KAAK+M,kBAAL,GAA0B,KAAKC,6BAAL,CAAmChK,oBAAnC,EAA1B;MACA,KAAKiK,oBAAL,GAA4B,KAAKD,6BAAL,CAAmCnK,sBAAnC,EAA5B;MACA,KAAK+J,cAAL,GAAsB,KAAKD,sBAAL,GAA8B,KAAKI,kBAAnC,GAAwD,KAAKE,oBAAnF;MACAjN,yHAAA,CAA2D,MAAK;QAC5D,KAAKiN,oBAAL,GAA4B,KAAKD,6BAAL,CAAmCnK,sBAAnC,EAA5B;;QACA,IAAI,KAAK6J,iBAAL,IAA0B,KAA9B,EAAqC;UACjC,KAAKE,cAAL,GAAsB,IAAtB;UACA/2C,MAAM,CAACwb,UAAP,CAAkB,MAAK;YACnB,KAAKu7B,cAAL,GAAsB,KAAKK,oBAA3B;UACH,CAFD,EAEG,EAFH;QAGH;MACJ,CARD;MASAjN,uHAAA,CAAyD,MAAK;QAC1D,KAAK+M,kBAAL,GAA0B,KAAKC,6BAAL,CAAmChK,oBAAnC,EAA1B;;QACA,IAAI,KAAK0J,iBAAT,EAA4B;UACxB,KAAKE,cAAL,GAAsB,IAAtB;UACA/2C,MAAM,CAACwb,UAAP,CAAkB,MAAK;YACnB,KAAKu7B,cAAL,GAAsB,KAAKG,kBAA3B;UACH,CAFD,EAEG,EAFH;QAGH;MACJ,CARD;IASH;EACJ;;EAEK3kD,YAAY,CAAClB,IAAD,EAAK;IAAA;;IAAA;MACnB,KAAI,CAACL,YAAL,GAAoBK,IAApB;IADmB;EAEtB;;EAED8gD,UAAU;IAEN,KAAK8E,yBAAL,GAAiC,KAAKG,oBAAL,CAA0B/iD,MAA1B,CAAiChD,IAAI,IACjE,CAAC,KAAK6gD,YAAN,IAAsB,KAAKA,YAAL,IAAqB,EAA3C,IAAiD7gD,IAAI,CAAC4J,OAAL,CAAa4nB,QAAb,GAAwBowB,MAAxB,CAA+B,KAAKf,YAApC,MAAsD,CAAC,CAD5E,CAAjC;IAGA,KAAK8E,uBAAL,GAA+B,KAAKE,kBAAL,CAAwB7iD,MAAxB,CAA+BhD,IAAI,IAC7D,CAAC,KAAK6gD,YAAN,IAAsB,KAAKA,YAAL,IAAqB,EAA3C,IAAiD7gD,IAAI,CAAC4J,OAAL,CAAa4nB,QAAb,GAAwBowB,MAAxB,CAA+B,KAAKf,YAApC,MAAsD,CAAC,CAD9E,CAA/B;EAEH;;EAMDyB,aAAa,CAAC/8C,KAAD,EAAoBg9C,MAApB,EAA+B;IACxCh9C,KAAK,CAAC67B,cAAN;IACA77B,KAAK,CAAC,YAAD,CAAL,GAAsBg9C,MAAtB;IACAh9C,KAAK,CAAC,UAAD,CAAL,GAAoB,IAApB;EACH;;AA9I4C;;;;;;UA8B5C/D,gDAAKA;;;UASLA,gDAAKA;;;UAuBLA,gDAAKA;;;UAeLA,gDAAKA;;;AA7EG+jD,oCAAoC,sDALhD/mD,wDAAS,CAAC;EACP4C,QAAQ,EAAE,0BADH;EAEPC,UAAAA,sEAFO;;AAAA,CAAD,CAKuC,GAApCkkD,oCAAoC,CAApC;;;;;;;;;;;;;;;;;;;;;;;;ACb6B;AACH;IAO1B,gBAAgB,SAAhB,gBAAgB;IAE3B,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAClC,CAAC;IACD,MAAM;QACJ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC9C,CAAC;;;;;AANU,gBAAgB;IAN5B,wDAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;QAE7B,0EAAuC;;KACxC,CAAC;GAEW,gBAAgB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACRa;AACD;IAQ5B,eAAe,SAAf,eAAe;IAE1B,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAClC,CAAC;IACD,MAAM;QACJ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC;IACvD,CAAC;;;;;AANU,eAAe;IAN3B,wDAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QAErB,yEAAqC;;KACtC,CAAC;GAEW,eAAe;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACT5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAQae,WAAW,SAAXA,WAAW;EAqBpBzkD,YAAoB8E,SAApB,EAAyD2hC,WAAzD,EACY5hC,MADZ,EACoC5E,KADpC,EACsEykD,IADtE,EACkFC,MADlF,EAC8G;IAD1F;IAAqC;IAC7C;IAAwB;IAAkC;IArBtE,iBAAY,KAAZ;IACA,sBAAiB,KAAjB;IAEA,wBAAmB,KAAnB;IAQA,qBAAgB,EAAhB;IAGA,mBAAc,KAAd;IACA,iBAAY,KAAZ;IAqKA,sBAAiB,IAAjB;IA9JIr6B,yFAAA,CAA4Bq6B,MAA5B;EACH;;EAnBc,IAAXE,WAAW;IACX,OAAO,KAAKC,gBAAZ;EACH;;EACc,IAAXD,WAAW,CAACrmD,KAAD,EAAM;IACjB,KAAKsmD,gBAAL,GAAwBtmD,KAAxB;EACH;;EAeDxB,QAAQ;IAAA;;IACJF,kFAAA,CAA4B,SAA5B;IACA,KAAKK,aAAL,CAAmB,UAAnB,IAAiCL,uFAAA,CAAiCqC,CAAC,IAAG;MAClE,IAAIA,CAAC,CAACqE,GAAF,KAAU,IAAV,IAAkB,CAAC1G,4FAAA,EAAvB,EAAgE;QAC5D,IAAIqH,iGAAA,MAA8CA,iGAAA,EAAlD,EAA8F;UAC1F,MAAMzG,QAAQ,GAAGZ,sFAAA,EAAjB;;UACA,IAAIY,QAAQ,KAAKd,uEAAjB,EAAgC;YAC5B,IAAI,KAAKuoD,oBAAT,EAA+B;cAC3B,KAAKA,oBAAL,CAA0BC,YAA1B,GAAyClkD,IAAzC,CAA8C,MAAK;gBAC/CpE,kFAAA,CAA4BF,uEAA5B;cACH,CAFD;YAGH,CAJD,MAIO;cACHE,kFAAA,CAA4BF,uEAA5B;YACH;UACJ,CARD,MAQO;YACHE,kFAAA,CAA4BF,uEAA5B;YACAE,sFAAA,CAAgC,KAAKD,aAArC;;YACA,IAAI,KAAKwoD,cAAL,IAAuB,CAAC,KAAKF,oBAAjC,EAAuD;cACnD,MAAMl1B,EAAE,GAAG,KAAKpzB,aAAhB;cACA,KAAK4pC,WAAL,CAAiB6e,WAAjB,CAA6B,KAAKD,cAAL,CAAoBE,GAAjD,EAAsDjoD,SAAtD,CAAgE6B,CAAC,IAAG;gBAChE,KAAKgmD,oBAAL,GAA4B,IAAIb,qEAAJ,CAAmBr0B,EAAnB,EAAuB;kBAC/Cu1B,WAAW,EAAErmD;gBADkC,CAAvB,EAEzB,KAAKsnC,WAFoB,CAA5B;gBAGA8d,yFAAA,CAA0B,KAAKY,oBAA/B,EAAqD,KAArD;cACH,CALD;YAMH;UACJ;QACJ;MACJ;IACJ,CA3BgC,CAAjC;IA4BA,KAAKhoD,aAAL,CAAmB,UAAnB,IAAiCmH,iGAAA,CAAuC,MAAK;MACzE,IAAI,KAAK3H,SAAL,IAAkB,KAAKA,SAAL,CAAegpD,iBAArC,EAAwD;QACpD,IAAI,KAAKhpD,SAAL,CAAeipD,qBAAnB,EAA0C;UACtCthD,6FAAA,CAAmC,KAAK3H,SAAL,CAAeipD,qBAAlD;QACH,CAFD,MAEO;UACHthD,6FAAA,CAAmC,KAAKQ,SAAL,CAAeiB,OAAf,CAAuB,sBAAvB,CAAnC;QACH;MACJ;IACJ,CARgC,CAAjC;IASAzB,8FAAA,CAAoC,SAApC;IACA,KAAKnH,aAAL,CAAmB,UAAnB,IAAiCL,uFAAA,CAAiCY,QAAQ,IAAG;MACzE,IAAI,KAAKf,SAAT,EAAoB;QAChB,KAAKA,SAAL,CAAegY,QAAf,GAA0BjX,QAAQ,KAAKd,uEAAvC;QACA,KAAKD,SAAL,CAAekB,WAAf,CAA2BH,QAA3B;MACH;IACJ,CALgC,CAAjC;IAMA,KAAKP,aAAL,CAAmB,UAAnB,IAAiCL,uFAAA;MAAA,kKAAiC,WAAOmB,IAAP,EAAe;QAC7E,IAAI,KAAI,CAACpB,aAAL,IAAsB,KAAI,CAACA,aAAL,CAAmByB,WAA7C,EAA0D;UACtD,IAAIwnD,IAAI,GAAGjmD,oFAAA,CAAiC,KAAI,CAAChD,aAAtC,CAAX;;UACA,IAAIipD,IAAI,IAAI,KAAI,CAACnpD,SAAjB,EAA4B;YACxB,KAAI,CAACA,SAAL,GAAiBmpD,IAAjB;YACA,MAAMzW,kFAAA,CAA6B,KAAI,CAAC1yC,SAAlC,CAAN;YACAyyC,2FAAA,CAAmC,KAAI,CAACzyC,SAAxC;;YACA,IAAI,CAAC,KAAI,CAACA,SAAL,CAAemC,WAApB,EAAiC;cAC7B,IAAI,KAAI,CAACnC,SAAL,CAAeolC,WAAnB,EAAgC;gBAC5B,QAAQ,KAAI,CAACplC,SAAL,CAAeolC,WAAvB;kBACI,KAAKA,4EAAL;oBAAuB,KAAI,CAACplC,SAAL,CAAemC,WAAf,GAA6B,MAA7B;oBAAqC;;kBAC5D,KAAKijC,4EAAL;oBAAuB,KAAI,CAACplC,SAAL,CAAemC,WAAf,GAA6B,MAA7B;oBAAqC;;kBAC5D,KAAKijC,8EAAL;oBAAyB,KAAI,CAACplC,SAAL,CAAemC,WAAf,GAA6B,QAA7B;oBAAuC;;kBAChE,KAAKijC,8EAAL;oBAAyB,KAAI,CAACplC,SAAL,CAAemC,WAAf,GAA6B,QAA7B;oBAAuC;gBAJpE;cAMH,CAPD,MAOO;gBACH,KAAI,CAACnC,SAAL,CAAemC,WAAf,GAA6B,MAA7B;cACH;YACJ;;YACDqF,+FAAA,CAAuC,KAAI,CAACtH,aAAL,CAAmBmpD,IAA1D,EAAgE9kD,IAAhE,CAAqE,MAAK;cACtE,IAAI,KAAI,CAACvE,SAAL,IAAkB,KAAI,CAACA,SAAL,CAAegpD,iBAArC,EAAwD;gBACpD7oD,6FAAA,CAAuC,IAAvC;cACH;;cACD,KAAI,CAACD,aAAL,CAAmB8X,QAAnB,GAA8B,KAA9B;;cACA,KAAI,CAAC9X,aAAL,CAAmBgB,WAAnB,CAA+Bf,sFAAA,EAA/B;;cACAA,sFAAA,CAAgC,KAAI,CAACH,SAArC;cACAG,wFAAA,CAAkC,KAAI,CAACD,aAAvC;cACA,KAAI,CAACgoD,WAAL,GAAmB,IAAnB;cACA1gD,6FAAA,CAAqC,IAArC;;cACA,KAAI,CAAClE,KAAL,CAAW0B,aAAX;YACH,CAXD;UAYH;QACJ;MACJ,CAjCgC;;MAAA;QAAA;MAAA;IAAA,IAAjC;IAkCA,KAAKxE,aAAL,CAAmB,mBAAnB,IAA0CgH,+GAAA,CAAuD,MAAK;MAClG,IAAI,KAAK6oB,WAAT,EAAsB;QAClB,MAAMm5B,YAAY,GAAG,KAAKtB,WAA1B;QACA,KAAKuB,eAAL;;QACA,IAAID,YAAY,IAAI,CAAC,KAAKtB,WAAtB,IAAqC/nD,sFAAA,OAAsCF,uEAA/E,EAA8F;UAC1FE,kFAAA,CAA4BF,uEAA5B;UACA,KAAKqD,KAAL,CAAW0B,aAAX;QACH;MACJ;IACJ,CATyC,CAA1C;IAUA,KAAKxE,aAAL,CAAmB,oBAAnB,IAA2CgH,4GAAA,CAAqDX,GAAD,IAAQ;MACnG,IAAI,KAAK3G,aAAL,IAAsB,KAAKA,aAAL,CAAmBmpD,IAAnB,KAA4BxiD,GAAtD,EAA2D;QACvDW,+FAAA,CAAuC,KAAKtH,aAAL,CAAmBmpD,IAA1D,EAAgE9kD,IAAhE,CAAqE,MAAK;UACtE,KAAKjB,KAAL,CAAW0B,aAAX;QACH,CAFD;MAGH;IACJ,CAN0C,CAA3C;IAOA,KAAKxE,aAAL,CAAmB,aAAnB,IAAoCgH,+FAAA,CAAwC2rC,KAAD,IAAU;MACjF,IAAI,KAAKjzC,aAAT,EAAwB;QACpBsH,+FAAA,CAAuC,KAAKtH,aAAL,CAAmBmpD,IAA1D,EAAgE9kD,IAAhE,CAAqE,MAAK;UACtE,KAAKjB,KAAL,CAAW0B,aAAX;QACH,CAFD;MAGH;IACJ,CANmC,CAApC;IAOA,KAAKxE,aAAL,CAAmB,KAAnB,IAA4BqnD,4FAAA,CAAsC9hC,GAAD,IAAQ;MACrE,IAAIA,GAAG,IAAI,KAAK6iC,GAAhB,EAAqB;QACjB,KAAKA,GAAL,GAAW7iC,GAAX;QACA,KAAK6jC,cAAL;MACH;IACJ,CAL2B,CAA5B;IAMA,KAAKv5B,WAAL,GAAmB,IAAnB;EACH;;EAED/tB,WAAW;IACPnC,6FAAA,CAAuC,KAAvC;IACA,KAAK0pD,SAAL,GAAiB,IAAjB;IACA,MAAMjjD,IAAI,GAAGD,MAAM,CAACC,IAAP,CAAY,KAAKpG,aAAjB,CAAb;IACAoG,IAAI,CAACrE,OAAL,CAAcsE,GAAD,IAAQ;MACjB,IAAI,KAAKrG,aAAL,CAAmBqG,GAAnB,EAAwBpE,WAA5B,EAAyC;QACrC,KAAKjC,aAAL,CAAmBqG,GAAnB,EAAwBpE,WAAxB;MACH;IACJ,CAJD;;IAKA,IAAI,KAAKzC,SAAL,IAAkB,KAAKA,SAAL,CAAe8pD,QAArC,EAA+C;MAC3C,KAAKC,cAAL,CAAoBxnD,OAApB,CAA6BynD,GAAD,IAAQ;QAChC,KAAKjC,IAAL,CAAUkC,SAAV,CAAoBD,GAApB;MACH,CAFD;IAGH;EACJ;;EAEDP,eAAe;IACX,IAAI,KAAKI,SAAT,EAAoB;MAChB,KAAKK,SAAL,GAAiB,KAAjB;MACA,KAAKC,cAAL,GAAsB,KAAtB;MACA,KAAKjC,WAAL,GAAmB,KAAnB;MACA1gD,6FAAA,CAAqC,KAArC;IACH,CALD,MAKO,IAAI,KAAKkhD,cAAT,EAAyB;MAC5B,MAAM0B,QAAQ,GAAG5iD,8GAAA,EAAjB;;MACA,IAAI4iD,QAAQ,IAAIA,QAAQ,CAAC,KAAK1B,cAAL,CAAoB2B,GAArB,CAAR,KAAsC,IAAtD,EAA4D;QACxD,KAAKH,SAAL,GAAiB,KAAjB;QACA,KAAKC,cAAL,GAAsB,IAAtB;QACA,KAAKjC,WAAL,GAAmB,KAAnB;QACA1gD,6FAAA,CAAqC,KAArC;MACH,CALD,MAKO;QACH,KAAK0iD,SAAL,GAAiB,KAAjB;QACA,KAAKC,cAAL,GAAsB,KAAtB;QACA,KAAKjC,WAAL,GAAmB,IAAnB;QACA1gD,6FAAA,CAAqC,IAArC;MACH;IACJ,CAbM,MAaA;MACH,KAAK0iD,SAAL,GAAiB,IAAjB;MACA,KAAKC,cAAL,GAAsB,KAAtB;MACA,KAAKjC,WAAL,GAAmB,KAAnB;MACA1gD,6FAAA,CAAqC,KAArC;IACH;;IACD,KAAKlE,KAAL,CAAW0B,aAAX;EACH;;EAEDslD,SAAS;IACL,KAAKtqD,SAAL,GAAiB,IAAjB;IACA,KAAKsD,KAAL,CAAW0B,aAAX;IACA,KAAKykD,eAAL;;IACA,IAAI,KAAKvB,WAAT,EAAsB;MAClB,KAAKpe,WAAL,CAAiBygB,QAAjB,CAA0B,KAAK7B,cAAL,CAAoBE,GAA9C,EAAmDjoD,SAAnD,CAA8DY,MAAD,IAAW;QACpE,KAAKipD,YAAL,CAAkBjpD,MAAlB;MACH,CAFD;IAGH;EACJ,CA/LmB,CAiMpB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EAEAipD,YAAY,CAACC,aAAD,EAAc;IACtB,KAAKC,gBAAL,CAAsBD,aAAtB,EAAqClmD,IAArC,CAA0C,MAAK;MAC3CiD,+FAAA,CAAuC,KAAKtH,aAAL,CAAmBmpD,IAA1D,EAAgE9kD,IAAhE,CAAqE,MAAK;QACtE,KAAKvE,SAAL,GAAiBkD,oFAAA,CAAiC,KAAKhD,aAAtC,CAAjB;;QACA,IAAI,KAAKF,SAAL,IAAkB,KAAKA,SAAL,CAAegpD,iBAArC,EAAwD;UACpD7oD,6FAAA,CAAuC,IAAvC;QACH;;QACD,IAAI,KAAKH,SAAL,CAAe8pD,QAAnB,EAA6B;UACzB,IAAI/c,IAAI,GAAG,EAAX;UACA,KAAK/sC,SAAL,CAAe8pD,QAAf,CAAwBvnD,OAAxB,CAAiCynD,GAAD,IAAQ;YACpC,IAAIxoD,IAAI,GAAG;cAAEmvB,IAAI,EAAEq5B,GAAG,CAACW,GAAZ;cAAiBC,OAAO,EAAEZ,GAAG,CAACh6C;YAA9B,CAAX;YACA,KAAK+3C,IAAL,CAAU8C,SAAV,CAAoBrpD,IAApB;YACAurC,IAAI,CAACtsC,IAAL,CAAUe,IAAV;UACH,CAJD;UAKA,KAAKuoD,cAAL,GAAsBhd,IAAtB;QACH;;QACD,KAAK7sC,aAAL,CAAmB8X,QAAnB,GAA8B,KAA9B;QACA,KAAK9X,aAAL,CAAmBgB,WAAnB,CAA+BjB,uEAA/B;QACAE,sFAAA,CAAgC,KAAKD,aAArC;QACAC,wFAAA,CAAkC,KAAKD,aAAvC;QACA,KAAKgoD,WAAL,GAAmB,IAAnB;QACA1gD,6FAAA,CAAqC,IAArC;QACA,KAAKlE,KAAL,CAAW0B,aAAX;MACH,CArBD;IAsBH,CAvBD;EAwBH;;EAEO0lD,gBAAgB,CAACnpD,MAAD,EAAO;IAC3B,OAAO,IAAI8D,OAAJ,CAAYC,OAAO,IAAG;MACzB,IAAI/D,MAAJ,EAAY;QACR,KAAKrB,aAAL,GAAqB6R,gEAAY,CAAClR,yDAAD,EAASU,MAAT,CAAjC;QACA,IAAImP,MAAM,GAAGxN,oFAAA,CAAiC,KAAKhD,aAAtC,CAAb;;QACA,QAAQ,KAAKA,aAAL,CAAmBklC,WAA3B;UACI,KAAKA,4EAAL;YAAuB10B,MAAM,CAACvO,WAAP,GAAqB,MAArB;YAA6B;;UACpD,KAAKijC,4EAAL;YAAuB10B,MAAM,CAACvO,WAAP,GAAqB,MAArB;YAA6B;;UACpD,KAAKijC,8EAAL;YAAyB10B,MAAM,CAACvO,WAAP,GAAqB,QAArB;YAA+B;;UACxD,KAAKijC,8EAAL;YAAyB10B,MAAM,CAACvO,WAAP,GAAqB,QAArB;YAA+B;QAJ5D;;QAMAuwC,kFAAA,CAA6BhiC,MAA7B,EAAqCnM,IAArC,CAA0C,MAAK;UAC3CkuC,2FAAA,CAAmC/hC,MAAnC;UACApL,OAAO,CAAC,IAAD,CAAP;QACH,CAHD;MAIH,CAbD,MAaO;QACH,KAAKpF,aAAL,GAAqB,IAAIW,yDAAJ,EAArB;QACA,KAAKX,aAAL,CAAmBiC,WAAnB,GAAiC,MAAjC;QACAmD,OAAO,CAAC,IAAD,CAAP;MACH;IACJ,CAnBM,CAAP;EAoBH;;EAEDN,aAAa;IACT,KAAK1B,KAAL,CAAW0B,aAAX;EACH;;EAED4kD,cAAc;IACV,IAAIzpD,sFAAA,OAAsCF,uEAA1C,EAAyD;MACrDE,kFAAA,CAA4BF,uEAA5B;IACH;;IACD,IAAI,KAAKD,SAAL,IAAkB,KAAKA,SAAL,CAAe8pD,QAArC,EAA+C;MAC3C,KAAKC,cAAL,CAAoBxnD,OAApB,CAA6BynD,GAAD,IAAQ;QAChC,KAAKjC,IAAL,CAAUkC,SAAV,CAAoB,WAAWD,GAAG,CAACr5B,IAAf,GAAsB,GAA1C;MACH,CAFD;IAGH;;IACD,KAAK3wB,SAAL,GAAiB,IAAjB;IACAG,6FAAA,CAAuC,KAAvC;IACA,KAAKD,aAAL,GAAqB,IAArB;IACA,KAAKwoD,cAAL,GAAsB,IAAtB;IACA,KAAKF,oBAAL,GAA4B,IAA5B;IACAZ,0FAAA,GAA6BrjD,IAA7B,CAAkC,MAAK;MACnC,MAAMwmD,SAAS,GAAGlD,2GAAA,EAAlB;;MACA,IAAIkD,SAAJ,EAAe;QACX,MAAMhlC,GAAG,GAAG,KAAK6iC,GAAjB;;QACA,IAAI7iC,GAAJ,EAAS;UACL,IAAI8hC,kFAAA,CAA2B9hC,GAA3B,CAAJ,EAAqC;YACjC,KAAKukC,SAAL;UACH,CAFD,MAEO;YACH7xB,6EAAA,CAA4BsyB,SAA5B,EAAuCxmD,IAAvC,CAA4C4mD,OAAO,IAAG;cAClD,IAAIA,OAAJ,EAAa;gBACT,MAAMje,OAAO,GAAGnnB,GAAG,CAACkC,WAAJ,EAAhB;gBACA,KAAKygC,cAAL,GAAsByC,OAAO,CAACvpD,IAAR,CAAawpD,EAAE,IAAIA,EAAE,CAACxC,GAAH,IAAUwC,EAAE,CAACxC,GAAH,CAAO3gC,WAAP,OAAyBilB,OAAtD,CAAtB;;gBACA,IAAI,KAAKwb,cAAT,EAAyB;kBACrB,KAAK4B,SAAL;gBACH,CAFD,MAEO;kBACH,KAAKxgB,WAAL,CAAiBuhB,oCAAjB,CAAsDN,SAAtD,EAAiE,aAAjE,EAAgFpqD,SAAhF,CAA0F2qD,EAAE,IAAG;oBAC3F,IAAI,OAAOA,EAAP,KAAc,QAAd,IAA0BA,EAAE,CAACrjC,WAAH,OAAqBilB,OAAnD,EAA4D;sBACxD,KAAKwb,cAAL,GAAsB;wBAClB2B,GAAG,EAAE,aADa;wBAElBzB,GAAG,EAAE0C;sBAFa,CAAtB;oBAIH;;oBACD,KAAKhB,SAAL;kBACH,CARD;gBASH;cACJ,CAhBD,MAgBO;gBACH,KAAKA,SAAL;cACH;YACJ,CApBD;UAqBH;QACJ,CA1BD,MA0BO;UACH,KAAKxgB,WAAL,CAAiBuhB,oCAAjB,CAAsDN,SAAtD,EAAiE,aAAjE,EAAgFpqD,SAAhF,CAA0F2qD,EAAE,IAAG;YAC3F,IAAI,OAAOA,EAAP,KAAc,QAAlB,EAA4B;cACxB,KAAKpjD,MAAL,CAAYqjD,aAAZ,CAA0BR,SAAS,GAAGO,EAAtC;YACH,CAFD,MAEO;cACH,KAAKhB,SAAL;YACH;UACJ,CAND;QAOH;MACJ,CArCD,MAqCO;QACH,KAAKA,SAAL;MACH;IACJ,CA1CD;EA2CH;;AArUmB;;;;;;;;;;;;;;;;AAAXxC,WAAW,uDANvB9nD,yDAAS,CAAC;EACP4C,QAAQ,EAAE,aADH;EAEPC,UAAAA,0DAFO;EAIPgP,eAAe,EAAEf,0EAJV;;AAAA,CAAD,CAMc,GAAXg3C,WAAW,CAAX;;;;;;;;;;;;;;;;;;;AC5B6B;IAM7B,oBAAoB,SAApB,oBAAoB;;AAApB,oBAAoB;IALhC,wDAAS,CAAC;QACT,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,yCAAyC;KACpD,CAAC;GAEW,oBAAoB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNjC;AACA;AACA;AAEA;AACA;IAQa0D,YAAY,SAAZA,YAAY;EAWrBnoD;IAJA,aAAQ;MACJ+E,OAAO,EAAE;IADL,CAAR;IAKI,KAAKG,QAAL,GAAgB,IAAhB;IACA,KAAKF,eAAL,GAAuBd,aAAvB;EACH;;EAEDlH,QAAQ;IACJsH,6FAAA,CAAoC,UAApC;IACAxH,iFAAA,CAA4BF,sEAA5B;IACAE,iFAAA,CAA4BF,sEAA5B;IACAuH,6FAAA,CAAqC,KAArC;EACH;;EAEDuE,YAAY,CAACC,GAAD,EAAMC,IAAN,EAAU;IAClB,KAAKC,iBAAL,GAAyBD,IAAzB;;IACA,IAAID,GAAG,IAAI,OAAOA,GAAG,CAACX,cAAX,KAA8B,UAAzC,EAAqD;MACjDW,GAAG,CAACX,cAAJ,CAAmBW,GAAnB;IAEH;EACJ;;EAEKK,cAAc;IAAA;;IAAA;MAChB,IAAI,KAAI,CAACH,iBAAT,EAA4B;QACxB,IAAI,OAAO,KAAI,CAACA,iBAAL,CAAuBI,eAA9B,KAAkD,UAAtD,EAAkE;UAC9D,aAAa,KAAI,CAACJ,iBAAL,CAAuBI,eAAvB,EAAb;QACH;MACJ;;MACD,OAAO,IAAP;IANgB;EAOnB;;AAtCoB;;;;AAAZk/C,YAAY,sDANxBxrD,wDAAS,CAAC;EACP4C,QAAQ,EAAE,eADH;EAEPC,UAAAA,2DAFO;EAIPgP,eAAe,EAAEf,yEAJV;;AAAA,CAAD,CAMe,GAAZ06C,YAAY,CAAZ;AAAAA;AA0CN,MAAMjkD,aAAa,GAAoB,CAC1C;EACI6D,OAAO,EAAE,UADb;EAEIX,EAAE,EAAE,QAFR;EAGIb,IAAI,EAAE,gBAHV;EAII/E,KAAK,EAAE,CAJX;EAKI2O,MAAM,EAAE,EALZ;EAMI3D,QAAQ,EAAE;IACNE,IAAI,EAAE,0CADA;IAENC,KAAK,EAAE;EAFD,CANd;EAUI1E,QAAQ,EAAE;AAVd,CAD0C,EAa1C;EACIF,OAAO,EAAE,QADb;EAEIX,EAAE,EAAE,MAFR;EAGIb,IAAI,EAAE,cAHV;EAII/E,KAAK,EAAE,CAJX;EAKI2O,MAAM,EAAE,EALZ;EAMI3D,QAAQ,EAAE;IACNE,IAAI,EAAE,wCADA;IAENC,KAAK,EAAE;EAFD,CANd;EAUI1E,QAAQ,EAAE;AAVd,CAb0C,EAyB1C;EACIF,OAAO,EAAE,sBADb;EAEIX,EAAE,EAAE,UAFR;EAGIb,IAAI,EAAE,yBAHV;EAII/E,KAAK,EAAE,CAJX;EAKI2O,MAAM,EAAE,EALZ;EAMI3D,QAAQ,EAAE;IACNE,IAAI,EAAE,kDADA;IAENC,KAAK,EAAE;EAFD,CANd;EAUI1E,QAAQ,EAAE;AAVd,CAzB0C,EAqC1C;EACIF,OAAO,EAAE,qBADb;EAEIX,EAAE,EAAE,IAFR;EAGIb,IAAI,EAAE,uBAHV;EAII/E,KAAK,EAAE,CAJX;EAKI2O,MAAM,EAAE,EALZ;EAMI3D,QAAQ,EAAE;IACNE,IAAI,EAAE,qDADA;IAENC,KAAK,EAAE;EAFD,CANd;EAUI1E,QAAQ,EAAE;AAVd,CArC0C,EAiD1C;EACIF,OAAO,EAAE,iBADb;EAEIX,EAAE,EAAE,UAFR;EAGIb,IAAI,EAAE,kBAHV;EAII/E,KAAK,EAAE,CAJX;EAKI2O,MAAM,EAAE,EALZ;EAMI3D,QAAQ,EAAE;IACNE,IAAI,EAAE,gDADA;IAENC,KAAK,EAAE;EAFD,CANd;EAUI1E,QAAQ,EAAE;AAVd,CAjD0C,EA6D1C;EACIF,OAAO,EAAE,SADb;EAEIX,EAAE,EAAE,OAFR;EAGIb,IAAI,EAAE,eAHV;EAII/E,KAAK,EAAE,CAJX;EAKI2O,MAAM,EAAE,EALZ;EAMI3D,QAAQ,EAAE;IACNE,IAAI,EAAE,yCADA;IAENC,KAAK,EAAE;EAFD,CANd;EAUI1E,QAAQ,EAAE;AAVd,CA7D0C,CAAvC;AAuFD,MAAOmgD,qBAAP,CAA4B;;;;;;;;;;;;;;;;;AC9IkC;AAG0B;AAGvF,MAAM,2BAA4B,SAAQ,6EAAsB;IAE3D,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK;QACrC,IAAI,KAAK,EAAE;YACP,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACjB,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;oBACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBAC7B;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE;QACjC,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;YACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACjB,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;oBACf,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wBACrB,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,EAAE,EAAE;4BACxB,MAAM,GAAG,CAAC,CAAC;4BACX,OAAO,IAAI,CAAC;yBACf;wBACD,OAAO,KAAK,CAAC;oBACjB,CAAC,CAAC,CAAC;iBACN;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,CAAC;SACN;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,WAAW;QACP,gBAAgB;QAChB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;QAC7C,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,SAAS,KAAK,IAAI,EAAE;YAC/C,MAAM,gBAAgB,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;YACzH,MAAM,cAAc,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;YACnH,IAAI,MAAM,CAAC;YACX,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBACzB,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;aACjD;YACD,IAAI,MAAM,EAAE;gBACR,MAAM,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAC/C,OAAO,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wBAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAC/E,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBACH,IAAI,SAAS,EAAE;oBACX,MAAM,MAAM,GAAG,EAAE,CAAC;oBAClB,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;oBACnC,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE;wBACrC,IAAI,cAAc,KAAK,SAAS,EAAE,EAAE,0DAA0D;4BAC1F,IAAI,gBAAgB,KAAK,CAAC,EAAE,EAAE,uCAAuC;gCACjE,KAAK,IAAI,CAAC,GAAG,cAAc,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,2CAA2C;oCACxG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;iCACpC;gCACD,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC;6BACxB;iCAAM,IAAI,gBAAgB,GAAG,cAAc,GAAG,CAAC,EAAE,EAAE,0DAA0D;gCAC1G,qEAAqE;gCACrE,KAAK,IAAI,CAAC,GAAG,cAAc,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,gBAAgB,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;oCACvF,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;iCACpC;gCACD,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC;6BACxB;iCAAM;gCACH,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,gCAAgC;6BAC7E;yBACJ;6BAAM,IAAI,cAAc,KAAK,CAAC,IAAI,gBAAgB,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE;4BACpE,8FAA8F;4BAC9F,qEAAqE;4BACrE,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,gBAAgB,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gCACjF,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;6BACpC;4BACD,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC;yBACxB;6BAAM,EAAE,gCAAgC;4BACrC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;yBAC5C;qBACJ;oBACD,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;oBAC1B,EAAE,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC;iBACtC;qBAAM;oBACH,EAAE,CAAC,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC;iBAC7B;aACJ;iBAAM;gBACH,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,iFAAiF;gBACjF,IAAI,cAAc,KAAK,CAAC,IAAI,gBAAgB,GAAG,CAAC,EAAE;oBAC9C,8CAA8C;oBAC9C,UAAU,GAAG,gBAAgB,GAAG,CAAC,CAAC;oBAClC,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC;iBACxB;gBACD,2BAA2B,CAAC,aAAa,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;aAC/E;SACJ;IACL,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,oBAAoB;YAClE,IAAI,CAAC,OAAO,CAAC,uBAAuB,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACjE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;YACvC,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;YAClD,IAAI,MAAM,EAAE;gBACR,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACjF,OAAO,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wBAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAC/E,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBACH,IAAI,SAAS,EAAE;oBACX,OAAO,MAAM,EAAE;wBACX,MAAM,EAAE,GAAG,2BAA2B,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;wBACjF,IAAI,EAAE,EAAE;4BACJ,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;4BACpC,IAAI,GAAG,EAAE;gCACL,IAAI,QAAQ,GAAG,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;gCACpE,IAAI,QAAQ,EAAE;oCACV,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;wCACjD,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;qCAC5C;iCACJ;qCAAM;oCACH,QAAQ,GAAG,IAAI,sFAAY,EAAE,CAAC;oCAC9B,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC;oCAC5B,QAAQ,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oCACvC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iCACrC;6BACJ;iCAAM;gCACH,GAAG,GAAG,IAAI,kFAAQ,EAAE,CAAC;gCACrB,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC;gCACjC,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC;gCAClC,MAAM,QAAQ,GAAG,IAAI,sFAAY,EAAE,CAAC;gCACpC,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC;gCAC5B,QAAQ,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gCACvC,GAAG,CAAC,cAAc,GAAG,CAAC,QAAQ,CAAC,CAAC;gCAChC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;6BAClC;yBACJ;wBACD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;qBAC1B;iBACJ;aACJ;YACD,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE;gBACf,mBAAmB;gBACnB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACvC,uBAAuB;oBACvB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;wBACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC7C,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;4BACxB,IAAI,CAAC,CAAC,WAAW,KAAK,GAAG,EAAE;gCACvB,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gCAC5B,OAAO,IAAI,CAAC;6BACf;4BACD,OAAO,KAAK,CAAC;wBACjB,CAAC,CAAC,EAAE;4BACA,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;yBACvB;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAED,YAAY,CAAC,MAAmB;IAChC,CAAC;;;;;;;;;;;;;;;;;ACpKE,MAAe,sBAAsB;IAOxC,KAAK;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;;;;;;;;;;;;;;;;;;;;;ACTyD;AACY;AAChB;AACU;AAE7D,MAAM,8BAA+B,SAAQ,6EAAsB;IAE9D,MAAM,CAAC,WAAW,CAAC,KAAiB,EAAE,MAAY,EAAE,KAA0B;QAClF,IAAI,KAAK,IAAI,MAAM,EAAE;YACjB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACjB,IAAI,IAAI,CAAC,IAAI,KAAK,oEAAc,EAAE;oBAC9B,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;wBAC1B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBAC3C;yBAAM;wBACH,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;wBAC3B,MAAM,SAAS,GAAG,4FAA+C,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACzF,IAAI,SAAS,IAAI,SAAS,CAAC,OAAO,EAAE;4BAChC,OAAO,GAAG,2FAA+B,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;yBAChE;wBACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;wBACvB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;qBACrC;iBACJ;gBACD,8BAA8B,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAC7E,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,WAAW;IACX,CAAC;IACD,aAAa;IACb,CAAC;IACD,YAAY,CAAC,MAAmB;QAC5B,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YACxB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;YAC7C,IAAI,EAAE,EAAE;gBACJ,IAAI,MAAM,CAAC,KAAK,EAAE;oBACd,8BAA8B,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,EAAE,IAAI,GAAG,EAAkB,CAAC,CAAC;iBAC7G;gBACD,IAAI,MAAM,CAAC,KAAK,EAAE;oBACd,8BAA8B,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,EAAE,IAAI,GAAG,EAAkB,CAAC,CAAC;iBAC7G;aACJ;SACJ;IACL,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;AC9CL;AACA;AACA;AACA;AAEA;AACA;AACA;AAEM,MAAOM,yCAAP,SAAyDD,6EAAzD,CAA+E;EAC3EE,WAAW;IAAA;;IAAA;MACb,IAAI,KAAI,CAACC,OAAL,IAAgB,KAAI,CAACA,OAAL,CAAaC,oBAA7B,IAAqD,KAAI,CAACD,OAAL,CAAaC,oBAAb,CAAkC/J,YAA3F,EAAyG;QACrG,IAAIgK,SAAS,GAAG,EAAhB;;QACA,IAAI,KAAI,CAACF,OAAL,CAAatxB,SAAjB,EAA4B;UACxBwxB,SAAS,GAAG,KAAI,CAACF,OAAL,CAAatxB,SAAzB;QACH;;QACD,KAAK,IAAItxB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAI,CAAC4iD,OAAL,CAAaC,oBAAb,CAAkC/J,YAAlC,CAA+ClgD,MAAnE,EAA2EoH,CAAC,EAA5E,EAAgF;UAC5E,MAAM8uB,OAAO,GAAG,KAAI,CAAC8zB,OAAL,CAAaC,oBAAb,CAAkC/J,YAAlC,CAA+C94C,CAA/C,CAAhB,CAD4E,CAE5E;;UACA,IAAI8uB,OAAO,CAAC+iB,OAAR,IAAmB/iB,OAAO,CAAC+iB,OAAR,CAAgBgH,6BAAnC,IACG/pB,OAAO,CAAC+iB,OAAR,CAAgBgH,6BAAhB,CAA8CtqB,OADjD,IAC4DO,OAAO,CAACC,OADxE,EACiF;YAC7E,MAAM3kB,KAAK,SAASrB,kFAAA,CAA2B+lB,OAAO,CAAC+iB,OAAR,CAAgBgH,6BAAhB,CAA8CtqB,OAAzE,EAChB,KAAI,CAACq0B,OAAL,CAAaC,oBAAb,CAAkCp0B,WADlB,CAApB;;YAEA,IAAIrkB,KAAJ,EAAW;cAEP,IAAI24C,mBAAJ;cACA,IAAIC,iBAAJ;;cACA,IAAIl0B,OAAO,CAAC+iB,OAAR,CAAgBgH,6BAAhB,CAA8CoK,gBAAlD,EAAoE;gBAChE,MAAMC,KAAK,GAAG;kBACVC,KAAK,EAAEr0B,OAAO,CAAC+iB,OAAR,CAAgBgH,6BAAhB,CAA8CoK,gBAD3C;kBAEVG,GAAG,EAAEt0B,OAAO,CAAC+iB,OAAR,CAAgBgH,6BAAhB,CAA8CwK,cAFzC;kBAGV9xB,MAAM,EAAE;gBAHE,CAAd;;gBAKA,IAAIzC,OAAO,CAAC+iB,OAAR,CAAgBgH,6BAAhB,CAA8CyK,cAAlD,EAAkE;kBAC9D,MAAMC,QAAQ,GAAGT,SAAS,CAACh0B,OAAO,CAAC+iB,OAAR,CAAgBgH,6BAAhB,CAA8CyK,cAA/C,CAA1B;;kBACA,IAAIhiD,KAAK,CAACC,OAAN,CAAcgiD,QAAd,KAA2BA,QAAQ,CAAC3qD,MAAT,GAAkB,CAAjD,EAAoD;oBAChDsqD,KAAK,CAAC3xB,MAAN,GAAegyB,QAAQ,CAAC,CAAD,CAAvB;kBACH;gBACJ;;gBACD,MAAM3kD,OAAO,GAAGgK,yFAAA,CAAgE45C,6FAAhE,CAAhB;gBACA,MAAMgB,WAAW,SAAS5kD,OAAO,CAAC6kD,gBAAR,CAAyBP,KAAzB,EAAgC/vB,SAAhC,EAA1B;;gBACA,IAAIqwB,WAAW,IAAIA,WAAW,CAACL,KAA3B,IAAoCK,WAAW,CAACJ,GAApD,EAAyD;kBACrDL,mBAAmB,GAAG,IAAIW,IAAJ,CAASF,WAAW,CAACL,KAArB,CAAtB;kBACAH,iBAAiB,GAAG,IAAIU,IAAJ,CAASF,WAAW,CAACJ,GAArB,CAApB;gBACH;cACJ,CAlBD,MAkBO,IAAIt0B,OAAO,CAAC+iB,OAAR,CAAgBgH,6BAAhB,CAA8CwK,cAAlD,EAAkE;gBACrE,MAAMH,KAAK,GAAG;kBACVC,KAAK,EAAEr0B,OAAO,CAAC+iB,OAAR,CAAgBgH,6BAAhB,CAA8CwK,cAD3C;kBAEV9xB,MAAM,EAAE;gBAFE,CAAd;;gBAIA,IAAIzC,OAAO,CAAC+iB,OAAR,CAAgBgH,6BAAhB,CAA8CyK,cAAlD,EAAkE;kBAC9D,MAAMC,QAAQ,GAAGT,SAAS,CAACh0B,OAAO,CAAC+iB,OAAR,CAAgBgH,6BAAhB,CAA8CyK,cAA/C,CAA1B;;kBACA,IAAIhiD,KAAK,CAACC,OAAN,CAAcgiD,QAAd,KAA2BA,QAAQ,CAAC3qD,MAAT,GAAkB,CAAjD,EAAoD;oBAChDsqD,KAAK,CAAC3xB,MAAN,GAAegyB,QAAQ,CAAC,CAAD,CAAvB;kBACH;gBACJ;;gBACD,MAAM3kD,OAAO,GAAGgK,yFAAA,CAAgE45C,6FAAhE,CAAhB;gBACA,MAAMgB,WAAW,SAAS5kD,OAAO,CAAC6kD,gBAAR,CAAyBP,KAAzB,EAAgC/vB,SAAhC,EAA1B;;gBACA,IAAIqwB,WAAW,IAAIA,WAAW,CAACL,KAA/B,EAAsC;kBAClCH,iBAAiB,GAAG,IAAIU,IAAJ,CAASF,WAAW,CAACL,KAArB,CAApB;gBACH;cACJ;;cACD,IAAIJ,mBAAmB,IAAIC,iBAA3B,EAA8C;gBAC1Cl0B,OAAO,CAAC+iB,OAAR,CAAgB+G,kBAAhB,CAAmC7iC,IAAnC,CAAwC+W,GAAG,IAAG;kBAC1C,IAAIA,GAAG,CAAC62B,gBAAR,EAA0B;oBACtB,MAAMtmD,KAAK,GAAGyxB,OAAO,CAAC+iB,OAAR,CAAgB+G,kBAAhB,CAAmCrzC,OAAnC,CAA2CunB,GAA3C,CAAd;;oBACA,IAAIzvB,KAAK,GAAG,CAAC,CAAb,EAAgB;sBACZyxB,OAAO,CAAC+iB,OAAR,CAAgB+G,kBAAhB,CAAmC/yC,MAAnC,CAA0CxI,KAA1C,EAAiD,CAAjD;oBACH;;oBACD,OAAO,IAAP;kBACH;;kBACD,OAAO,KAAP;gBACH,CATD;gBAWA,MAAMumD,SAAS,GAAG,IAAItB,qHAAJ,EAAlB;gBACAsB,SAAS,CAACxI,SAAV,GAAsBhxC,KAAK,CAACD,MAAN,CAAa/I,EAAnC;gBACAwiD,SAAS,CAACC,SAAV,GAAsBz5C,KAAK,CAACD,MAAN,CAAaA,MAAb,CAAoB/I,EAA1C;gBACAwiD,SAAS,CAAC,kBAAD,CAAT,GAAgC,IAAhC;gBACA,MAAME,WAAW,GAAG,IAAIvB,sFAAJ,EAApB;gBACAuB,WAAW,CAACC,OAAZ,GAAsB35C,KAAK,CAAChJ,EAA5B;;gBACA,IAAI2hD,mBAAJ,EAAyB;kBACrBe,WAAW,CAACX,KAAZ,GAAoBd,+EAAA,CAA8BU,mBAA9B,CAApB;gBACH;;gBACD,IAAIC,iBAAJ,EAAuB;kBACnBc,WAAW,CAACV,GAAZ,GAAkBf,+EAAA,CAA8BW,iBAA9B,CAAlB;gBACH;;gBACDY,SAAS,CAACK,QAAV,CAAmB7sD,IAAnB,CAAwB0sD,WAAxB;gBACAh1B,OAAO,CAAC+iB,OAAR,CAAgB+G,kBAAhB,CAAmCxhD,IAAnC,CAAwCwsD,SAAxC;cACH;YACJ;UACJ;QACJ;MACJ;IAlFY;EAmFhB;;EAEKM,aAAa;IAAA;EAClB;;EAEKC,YAAY,CAACjsD,MAAD,EAAoB;IAAA;EACrC;;AA1FgF;;;;;;;;;;;;;;;;;;;;;;;ACRrF;AACA;AACA;AACA;AAEA;AACA;AAEM,MAAOosD,uBAAP,SAAuC7B,6EAAvC,CAA6D;EAC/DE,WAAW,IACV;;EACKuB,aAAa;IAAA;;IAAA;MACf,IAAI,KAAI,CAACtB,OAAL,IAAgB,KAAI,CAACA,OAAL,CAAa2B,gBAA7B,IACA,KAAI,CAAC3B,OAAL,CAAa2B,gBAAb,CAA8B1tD,aAD9B,IAC+C,KAAI,CAAC+rD,OAAL,CAAa4B,gBADhE,EACkF;QAC9E,MAAM1B,SAAS,GAAG,KAAI,CAACF,OAAL,CAAa2B,gBAAb,CAA8B1tD,aAA9B,CAA4C4tD,oBAA9D;;QACA,IAAI3B,SAAJ,EAAe;UACX,MAAM4B,OAAO,GAAG,IAAIx4C,GAAJ,EAAhB;UACA,MAAM7E,MAAM,GAAG,KAAI,CAACu7C,OAAL,CAAa2B,gBAAb,CAA8B/sD,MAA7C;UACA,MAAMmtD,IAAI,GAAG,IAAIz4C,GAAJ,EAAb;UACA,IAAI04C,MAAJ;;UACA,KAAK,IAAI5kD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8iD,SAAS,CAAClqD,MAA9B,EAAsCoH,CAAC,EAAvC,EAA2C;YACvC,MAAM83B,CAAC,GAAGgrB,SAAS,CAAC9iD,CAAD,CAAnB;YACA,IAAI6kD,QAAJ;;YACA,IAAI/sB,CAAC,CAACgtB,QAAN,EAAgB;cACZ,IAAI,CAACF,MAAL,EAAa;gBACTA,MAAM,SAASx1B,0FAAA,EAAf;cACH;;cACDy1B,QAAQ,GAAGD,MAAM,CAACrsD,IAAP,CAAYY,CAAC,IAAIA,CAAC,CAACuN,IAAF,KAAWoxB,CAAC,CAACkc,QAA9B,CAAX;YACH,CALD,MAKO;cACH,IAAIgR,QAAQ,GAAGN,OAAO,CAACj7C,GAAR,CAAYquB,CAAC,CAACmtB,QAAd,CAAf;;cACA,IAAI,CAACD,QAAL,EAAe;gBACXA,QAAQ,GAAGz1B,gFAAA,CAA6BuI,CAAC,CAACmtB,QAA/B,EAAyC59C,MAAzC,CAAX;gBACAq9C,OAAO,CAACh7C,GAAR,CAAYouB,CAAC,CAACmtB,QAAd,EAAwBD,QAAxB;cACH;;cACD,IAAIA,QAAQ,CAACG,SAAb,EAAwB;gBACpBN,QAAQ,GAAGG,QAAQ,CAAC1zB,SAAT,CAAmB/4B,IAAnB,CAAwBY,CAAC,IAAIA,CAAC,CAACuN,IAAF,KAAWoxB,CAAC,CAACstB,YAA1C,CAAX;cACH;YACJ;;YACD,IAAIP,QAAJ,EAAc;cACV,MAAMQ,GAAG,GAAGjB,+GAAA,CAAuCS,QAAvC,EAAiD,KAAjD,EAAwDl+C,KAApE;;cACA,IAAIrF,KAAK,CAACC,OAAN,CAAc8jD,GAAd,CAAJ,EAAwB;gBACpB,KAAK,IAAI7V,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6V,GAAG,CAACzsD,MAAxB,EAAgC42C,CAAC,EAAjC,EAAqC;kBACjC,MAAM+V,EAAE,GAAiBF,GAAG,CAAC7V,CAAD,CAA5B;kBACA,MAAMplC,KAAK,SAASrB,kFAAA,CAA2Bw8C,EAAE,CAACxB,OAA9B,EAAuC,KAAI,CAACnB,OAAL,CAAaC,oBAAb,CAAkCp0B,WAAzE,CAApB;kBACA,IAAI+2B,GAAG,GAAGb,IAAI,CAACl7C,GAAL,CAASW,KAAK,CAACD,MAAN,CAAa/I,EAAtB,CAAV;;kBACA,IAAIokD,GAAJ,EAAS;oBACL,MAAMC,QAAQ,GAAGD,GAAG,CAACE,cAAJ,CAAmBntD,IAAnB,CAAwBY,CAAC,IAAIA,CAAC,CAAC4qD,OAAF,KAAcwB,EAAE,CAACxB,OAA9C,CAAjB;;oBACA,IAAI0B,QAAJ,EAAc;sBACV;sBACAF,EAAE,CAACI,SAAH,CAAazsD,OAAb,CAAqBC,CAAC,IAAG;wBACrB,IAAIssD,QAAQ,CAACE,SAAT,CAAmBpgD,OAAnB,CAA2BpM,CAA3B,IAAgC,CAApC,EAAuC;0BACnCssD,QAAQ,CAACE,SAAT,CAAmBvuD,IAAnB,CAAwB+B,CAAxB;wBACH;sBACJ,CAJD;oBAKH,CAPD,MAOO;sBACHqsD,GAAG,CAACE,cAAJ,CAAmBtuD,IAAnB,CAAwBmuD,EAAxB;oBACH;kBACJ,CAZD,MAYO;oBACHC,GAAG,GAAG,IAAInB,kFAAJ,EAAN;oBACAmB,GAAG,CAACI,WAAJ,GAAkBx7C,KAAK,CAACD,MAAN,CAAaA,MAAb,CAAoB/I,EAAtC;oBACAokD,GAAG,CAACK,WAAJ,GAAkBz7C,KAAK,CAACD,MAAN,CAAa/I,EAA/B;oBACAokD,GAAG,CAACE,cAAJ,GAAqB,CAACH,EAAD,CAArB;oBACAZ,IAAI,CAACj7C,GAAL,CAASU,KAAK,CAACD,MAAN,CAAa/I,EAAtB,EAA0BokD,GAA1B;kBACH;gBACJ;cACJ;YACJ;UACJ;;UACD,IAAIb,IAAI,CAAC1sD,IAAL,GAAY,CAAhB,EAAmB;YACf;YACA,KAAI,CAAC2qD,OAAL,CAAa4B,gBAAb,CAA8BtrD,OAA9B,CAAsC4sD,EAAE,IAAG;cACvC;cACAnB,IAAI,CAACzrD,OAAL,CAAa,CAACssD,GAAD,EAAMhoD,GAAN,KAAa;gBACtB,MAAMuoD,IAAI,GAAG/kD,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACW,SAAL,CAAe6jD,GAAf,CAAX,CAAb;;gBACA,IAAI,CAACM,EAAE,CAACE,KAAH,CAASjwC,IAAT,CAAc,CAAC5c,CAAD,EAAI6G,CAAJ,KAAS;kBACxB,IAAI7G,CAAC,CAAC0sD,WAAF,KAAkBroD,GAAtB,EAA2B;oBACvBsoD,EAAE,CAACE,KAAH,CAASngD,MAAT,CAAgB7F,CAAhB,EAAmB,CAAnB,EAAsB+lD,IAAtB;oBACA,OAAO,IAAP;kBACH;;kBACD,OAAO,KAAP;gBACH,CANI,CAAL,EAMI;kBACAD,EAAE,CAACE,KAAH,CAAS5uD,IAAT,CAAc2uD,IAAd;gBACH;cACJ,CAXD;YAYH,CAdD;UAeH;QACJ;MACJ;IA5Ec;EA6ElB;;EACD5B,YAAY,CAACjsD,MAAD,EAAoB,CAC/B;;AAlF8D;;;;;;;;;;;;;;;;;;;;ACPnE;AACA;AACA;AAEM,MAAOguD,gBAAP,SAAgCzD,6EAAhC,CAAsD;EAClDE,WAAW;IAAA;;IAAA;MACb,IAAI,KAAI,CAACC,OAAL,IAAgB,KAAI,CAACA,OAAL,CAAa2B,gBAA7B,IAAiD,KAAI,CAAC3B,OAAL,CAAa2B,gBAAb,CAA8B1tD,aAAnF,EAAkG;QAC9F,MAAMqsD,KAAK,GAAG,KAAI,CAACN,OAAL,CAAa2B,gBAAb,CAA8B1tD,aAA9B,CAA4CsvD,KAA1D;;QACA,IAAIjD,KAAJ,EAAW;UACP,MAAMlgC,KAAK,GAAGijC,gFAAA,EAAd;;UACA,IAAIjjC,KAAK,IAAIA,KAAK,CAACqjC,SAAnB,EAA8B;YAC1B,MAAMC,EAAE,GAAGtjC,KAAK,CAACqjC,SAAN,CAAgB9tD,IAAhB,CAAqBY,CAAC,IAAIA,CAAC,CAACotD,OAAF,KAAcrD,KAAxC,CAAX;;YACA,IAAIoD,EAAE,IAAIA,EAAE,CAACE,OAAb,EAAsB;cAClB,MAAMtV,EAAE,GAAoB,KAAI,CAAC0R,OAAL,CAAaC,oBAAzC;;cACA,IAAI3R,EAAJ,EAAQ;gBACJ,MAAMuV,QAAQ,GAAG,IAAIv6C,GAAJ,EAAjB;gBACA,MAAM1C,QAAQ,GAAG,EAAjB;gBACA,CAAC0nC,EAAE,CAAC5jB,WAAJ,EAAiB4jB,EAAE,CAAC3jB,WAApB,EAAiCr0B,OAAjC,CAAyCg6C,IAAI,IAAG;kBAC5CA,IAAI,CAACvlB,KAAL,CAAWz0B,OAAX,CAAmB00B,IAAI,IAAG;oBACtBA,IAAI,CAACI,MAAL,CAAY90B,OAAZ,CAAoBwtD,CAAC,IAAG;sBACpBA,CAAC,CAACx8C,MAAF,CAAShR,OAAT,CAAiB3B,CAAC,IAAG;wBACjBkvD,QAAQ,CAAC/8C,GAAT,CAAanS,CAAC,CAAC62B,QAAf,EAAyBsiB,sEAAzB;sBACH,CAFD;oBAGH,CAJD;oBAKA9iB,IAAI,CAACvkB,QAAL,CAAcnQ,OAAd,CAAsBoQ,CAAC,IAAG;sBACtBE,QAAQ,CAACpS,IAAT,CAAckS,CAAd;oBACH,CAFD;kBAGH,CATD;gBAUH,CAXD;gBAYAg9C,EAAE,CAACE,OAAH,CAAWttD,OAAX,CAAmB6K,KAAK,IAAG;kBACvB,IAAIA,KAAK,CAAC4iD,QAAN,IAAkB5iD,KAAK,CAAC4iD,QAAN,CAAe/tD,MAAf,GAAwB,CAA9C,EAAiD;oBAC7C,IAAImL,KAAK,CAAC6iD,SAAN,IAAmB7iD,KAAK,CAAC6iD,SAAN,CAAgBhuD,MAAhB,GAAyB,CAA5C,IACA,CAACmL,KAAK,CAAC6iD,SAAN,CAAgB7wC,IAAhB,CAAqB5c,CAAC,IAAIA,CAAC,KAAK,KAAI,CAACypD,OAAL,CAAa2B,gBAAb,CAA8B1tD,aAA9B,CAA4CuK,EAA5E,CADL,EACsF;sBAClF;oBACH;;oBACD2C,KAAK,CAAC4iD,QAAN,CAAeztD,OAAf,CAAuB2tD,OAAO,IAAG;sBAC7B,IAAIA,OAAO,CAACC,YAAR,KAAyBpW,sEAA7B,EAAkD;wBAC9C,IAAI+V,QAAQ,CAACM,GAAT,CAAaF,OAAO,CAACG,SAArB,CAAJ,EAAqC;0BACjC,MAAMjsD,GAAG,GAAG0rD,QAAQ,CAACh9C,GAAT,CAAao9C,OAAO,CAACG,SAArB,CAAZ;;0BACA,IAAIjsD,GAAG,KAAK21C,iFAAR,IAA0C31C,GAAG,KAAK21C,8EAAtD,EAAmF;4BAC/E+V,QAAQ,CAAC/8C,GAAT,CAAam9C,OAAO,CAACG,SAArB,EAAgCH,OAAO,CAACC,YAAxC;0BACH;wBACJ,CALD,MAKO;0BACH,MAAMh4B,OAAO,GAAGtlB,QAAQ,CAACjR,IAAT,CAAcY,CAAC,IAAIA,CAAC,CAACi1B,QAAF,KAAey4B,OAAO,CAACG,SAA1C,CAAhB;;0BACA,IAAIl4B,OAAO,IAAIA,OAAO,CAAC4hB,cAAR,KAA2BA,iFAAtC,IACA5hB,OAAO,CAAC4hB,cAAR,KAA2BA,8EAD/B,EAC4D;4BACxD5hB,OAAO,CAAC4hB,cAAR,GAAyBmW,OAAO,CAACC,YAAjC;0BACH;wBACJ;sBACJ;oBACJ,CAfD;kBAgBH;gBACJ,CAvBD;gBAwBA,MAAMG,YAAY,GAAG,EAArB;gBACA,CAAC/V,EAAE,CAAC5jB,WAAJ,EAAiB4jB,EAAE,CAAC3jB,WAApB,EAAiCr0B,OAAjC,CAAyCg6C,IAAI,IAAG;kBAC5CA,IAAI,CAACvlB,KAAL,CAAWz0B,OAAX,CAAmB00B,IAAI,IAAG;oBACtB,KAAK,IAAI5tB,CAAC,GAAG4tB,IAAI,CAACI,MAAL,CAAYp1B,MAAZ,GAAqB,CAAlC,EAAqCoH,CAAC,IAAI,CAA1C,EAA6CA,CAAC,EAA9C,EAAkD;sBAC9C,MAAM0mD,CAAC,GAAG94B,IAAI,CAACI,MAAL,CAAYhuB,CAAZ,CAAV;;sBACA,KAAK,IAAIwvC,CAAC,GAAGkX,CAAC,CAACx8C,MAAF,CAAStR,MAAT,GAAkB,CAA/B,EAAkC42C,CAAC,IAAI,CAAvC,EAA0CA,CAAC,EAA3C,EAA+C;wBAC3C,MAAMxhC,EAAE,GAAG04C,CAAC,CAACx8C,MAAF,CAASslC,CAAT,EAAYphB,QAAvB;wBACA,MAAM0J,CAAC,GAAG2uB,QAAQ,CAACh9C,GAAT,CAAauE,EAAb,CAAV;;wBACA,IAAI8pB,CAAC,KAAK4Y,mFAAN,IAA0C5Y,CAAC,KAAK4Y,iFAApD,EAAoF;0BAChFgW,CAAC,CAACx8C,MAAF,CAASrE,MAAT,CAAgB2pC,CAAhB,EAAmB,CAAnB;0BACAyX,YAAY,CAAC7vD,IAAb,CAAkB4W,EAAlB;wBACH;sBACJ;;sBACD,IAAI04C,CAAC,CAACx8C,MAAF,CAAStR,MAAT,KAAoB,CAAxB,EAA2B;wBACvBg1B,IAAI,CAACI,MAAL,CAAYnoB,MAAZ,CAAmB7F,CAAnB,EAAsB,CAAtB;sBACH;oBACJ;kBACJ,CAfD;gBAgBH,CAjBD;gBAkBA,KAAI,CAAC4iD,OAAL,CAAasE,YAAb,GAA4BD,YAA5B;cACH;YACJ;UACJ;QACJ;MACJ;IAxEY;EAyEhB;;EACK/C,aAAa;IAAA;EAClB;;EACKC,YAAY,CAACjsD,MAAD,EAAoB;IAAA;EACrC;;AA9EuD;;;;;;;;;;;;;;;;;;;;;ACL5D;AAIA;AACA;AACA;AAEM,MAAO44C,qBAAP,CAA4B;EAEZ,OAAXwJ,WAAW,CAACpH,IAAD,EAAW;IACzB,MAAMh7C,MAAM,GAAG,EAAf;IACAg7C,IAAI,CAACvlB,KAAL,CAAWz0B,OAAX,CAAmBoC,CAAC,IAAG;MACnBpD,MAAM,CAACd,IAAP,CAAY,GAAG05C,qBAAqB,CAAC9hB,SAAtB,CAAgC1zB,CAAhC,CAAf;IACH,CAFD;IAGA,OAAOpD,MAAP;EACH;;EAEkB,OAAZivD,YAAY,CAACjU,IAAD,EAAakU,QAAb,EAA6B;IAC5C,IAAIpQ,SAAS,GAAG,IAAhB;IACA9D,IAAI,CAACvlB,KAAL,CAAW5X,IAAX,CAAgBza,CAAC,IAAG;MAChB,OAAOA,CAAC,CAAC0yB,MAAF,CAASjY,IAAT,CAAc2wC,CAAC,IAAG;QACrB,OAAOA,CAAC,CAACx8C,MAAF,CAAS6L,IAAT,CAAcxe,CAAC,IAAG;UACrB,IAAIA,CAAC,CAAC62B,QAAF,KAAeg5B,QAAnB,EAA6B;YACzBpQ,SAAS,GAAGz/C,CAAZ;YACA,OAAO,IAAP;UACH;;UACD,OAAO,KAAP;QACH,CANM,CAAP;MAOH,CARM,CAAP;IASH,CAVD;IAWA,OAAOy/C,SAAP;EACH;;EAEe,OAAThoB,SAAS,CAACx2B,KAAD,EAAqB;IACjC,MAAMN,MAAM,GAAG,EAAf;IACAM,KAAK,CAACw1B,MAAN,CAAa90B,OAAb,CAAqBwtD,CAAC,IAAG;MACrBxuD,MAAM,CAACd,IAAP,CAAY,GAAGsvD,CAAC,CAACx8C,MAAjB;IACH,CAFD;IAGA,OAAOhS,MAAP;EACH;;EAEgC,OAA1BmvD,0BAA0B,CAACnW,EAAD,EAAoB;IACjD,MAAMoW,QAAQ,GAAG,EAAjB;;IACA,IAAIpW,EAAE,CAACqW,kBAAH,CAAsB3uD,MAAtB,GAA+B,CAAnC,EAAsC;MAClC0uD,QAAQ,CAAClwD,IAAT,CAAc,GAAG85C,EAAE,CAACqW,kBAAH,CAAsBpsD,MAAtB,CAA6BhC,CAAC,IAAIA,CAAC,CAACquD,MAAF,IAAYruD,CAAC,CAACgR,MAAF,IAAY,IAAxB,IAAgChR,CAAC,CAACsuD,OAAF,IAAa,IAA/E,CAAjB;IACH;;IACD,OAAOH,QAAP;EACH;;EAEoB,OAAdI,cAAc,CAACxW,EAAD,EAAoB;IACrC,IAAIA,EAAE,CAAC3jB,WAAH,CAAeI,KAAf,CAAqB5X,IAArB,CAA0Bza,CAAC,IAAIA,CAAC,CAAC+N,QAAF,IAAc/N,CAAC,CAAC+N,QAAF,CAAWzQ,MAAX,GAAoB,CAAjE,CAAJ,EAAyE;MACrE,OAAOs4C,EAAE,CAAC3jB,WAAV;IACH,CAFD,MAEO;MACH,OAAO2jB,EAAE,CAAC5jB,WAAV;IACH;EACJ;;EAEqB,OAAfq6B,eAAe,CAACzW,EAAD,EAAsB0W,QAAtB,EAAwC;IAC1D,IAAIA,QAAQ,KAAKjX,qEAAjB,EAAkC;MAC9B,OAAOO,EAAE,CAAC5jB,WAAH,CAAeK,KAAf,CAAqB5X,IAArB,CAA0Bza,CAAC,IAAIA,CAAC,CAAC0yB,MAAF,IAAY1yB,CAAC,CAAC0yB,MAAF,CAASjY,IAAT,CAAc2wC,CAAC,IAAIA,CAAC,CAACx8C,MAAF,IAAYw8C,CAAC,CAACx8C,MAAF,CAAStR,MAAT,GAAkB,CAAjD,CAA3C,CAAP;IACH,CAFD,MAEO;MACH,OAAOs4C,EAAE,CAAC3jB,WAAH,CAAeI,KAAf,CAAqB5X,IAArB,CAA0Bza,CAAC,IAAIA,CAAC,CAAC0yB,MAAF,IAAY1yB,CAAC,CAAC0yB,MAAF,CAASjY,IAAT,CAAc2wC,CAAC,IAAIA,CAAC,CAACx8C,MAAF,IAAYw8C,CAAC,CAACx8C,MAAF,CAAStR,MAAT,GAAkB,CAAjD,CAA3C,CAAP;IACH;EACJ;;EAEiB,OAAXivD,WAAW,CAAC3W,EAAD,EAAoB;IAClC,MAAM4W,KAAK,GAAG,EAAd;IACAA,KAAK,CAAC1wD,IAAN,CAAW,GAAG85C,EAAE,CAAC5jB,WAAH,CAAeK,KAA7B;IACAm6B,KAAK,CAAC1wD,IAAN,CAAW,GAAG85C,EAAE,CAAC3jB,WAAH,CAAeI,KAA7B;IACA,OAAOm6B,KAAP;EACH;;EAEwB,OAAlBC,kBAAkB,CAAC7W,EAAD,EAAsBgC,IAAtB,EAAqC;IAC1D,MAAMmG,YAAY,GAAG,EAArB;;IACA,IAAInG,IAAI,IAAI,IAAZ,EAAkB;MACdhC,EAAE,CAAC5jB,WAAH,CAAeK,KAAf,CAAqBz0B,OAArB,CAA6BoC,CAAC,IAAG;QAC7B+9C,YAAY,CAACjiD,IAAb,CAAkB,GAAGkE,CAAC,CAAC+N,QAAvB;MACH,CAFD;;MAGA,IAAIgwC,YAAY,CAACzgD,MAAb,KAAwB,CAA5B,EAA+B;QAC3Bs4C,EAAE,CAAC3jB,WAAH,CAAeI,KAAf,CAAqBz0B,OAArB,CAA6BoC,CAAC,IAAG;UAC7B+9C,YAAY,CAACjiD,IAAb,CAAkB,GAAGkE,CAAC,CAAC+N,QAAvB;QACH,CAFD;MAGH;IACJ,CATD,MASO,IAAI6pC,IAAI,KAAKvC,qEAAb,EAA8B;MACjCO,EAAE,CAAC5jB,WAAH,CAAeK,KAAf,CAAqBz0B,OAArB,CAA6BoC,CAAC,IAAG;QAC7B+9C,YAAY,CAACjiD,IAAb,CAAkB,GAAGkE,CAAC,CAAC+N,QAAvB;MACH,CAFD;IAGH,CAJM,MAIA;MACH6nC,EAAE,CAAC3jB,WAAH,CAAeI,KAAf,CAAqBz0B,OAArB,CAA6BoC,CAAC,IAAG;QAC7B+9C,YAAY,CAACjiD,IAAb,CAAkB,GAAGkE,CAAC,CAAC+N,QAAvB;MACH,CAFD;IAGH;;IACD,OAAOgwC,YAAP;EACH;;EAE0B,OAApB2O,oBAAoB,CAAC9W,EAAD,EAAsBgC,IAAtB,EAAqC;IAC5D,MAAM+U,UAAU,GAAG,EAAnB;;IACA,IAAI/U,IAAI,IAAI,IAAZ,EAAkB;MACd+U,UAAU,CAAC7wD,IAAX,CAAgB,GAAG05C,qBAAqB,CAACwJ,WAAtB,CAAkCpJ,EAAE,CAAC5jB,WAArC,CAAnB;MACA26B,UAAU,CAAC7wD,IAAX,CAAgB,GAAG05C,qBAAqB,CAACwJ,WAAtB,CAAkCpJ,EAAE,CAAC3jB,WAArC,CAAnB;IACH,CAHD,MAGO,IAAI2lB,IAAI,KAAKvC,qEAAb,EAA8B;MACjCsX,UAAU,CAAC7wD,IAAX,CAAgB,GAAG05C,qBAAqB,CAACwJ,WAAtB,CAAkCpJ,EAAE,CAAC5jB,WAArC,CAAnB;IACH,CAFM,MAEA,IAAG4lB,IAAI,KAAKvC,qEAAZ,EAA6B;MAChCsX,UAAU,CAAC7wD,IAAX,CAAgB,GAAG05C,qBAAqB,CAACwJ,WAAtB,CAAkCpJ,EAAE,CAAC3jB,WAArC,CAAnB;IACH;;IACD,OAAO06B,UAAP;EACH;;EAEyB,OAAnBE,mBAAmB,CAACjX,EAAD,EAAsBkW,QAAtB,EAAsC;IAC5D,IAAI7U,SAAS,GAAGzB,qBAAqB,CAACqW,YAAtB,CAAmCjW,EAAE,CAAC5jB,WAAtC,EAAmD85B,QAAnD,CAAhB;;IACA,IAAI7U,SAAS,IAAI,IAAjB,EAAuB;MACnBA,SAAS,GAAGzB,qBAAqB,CAACqW,YAAtB,CAAmCjW,EAAE,CAAC3jB,WAAtC,EAAmD65B,QAAnD,CAAZ;IACH;;IACD,OAAO7U,SAAP;EACH;;EAEqB,OAAf3D,eAAe,CAACsC,EAAD,EAAoB;IACtC,OAAOJ,qBAAqB,CAACsX,cAAtB,CAAqClX,EAArC,IAA2C,CAAlD;EACH;;EAEoB,OAAdkX,cAAc,CAAClX,EAAD,EAAoB;IACrC,IAAIh5C,MAAM,GAAG,CAAC,CAAd;IACAA,MAAM,GAAG44C,qBAAqB,CAACuX,MAAtB,CAA6BnX,EAAE,CAAC5jB,WAAhC,EAA6Cp1B,MAA7C,CAAT;IACAA,MAAM,GAAG44C,qBAAqB,CAACuX,MAAtB,CAA6BnX,EAAE,CAAC3jB,WAAhC,EAA6Cr1B,MAA7C,CAAT;IACA,OAAOA,MAAP;EACH;;EAEoB,OAANmwD,MAAM,CAACnV,IAAD,EAAah7C,MAAb,EAA2B;IAC5Cg7C,IAAI,CAACvlB,KAAL,CAAWz0B,OAAX,CAAmB00B,IAAI,IAAG;MACtB11B,MAAM,GAAGswC,IAAI,CAAC8f,GAAL,CAASpwD,MAAT,EAAiB01B,IAAI,CAACQ,QAAtB,CAAT;MACA0iB,qBAAqB,CAAC9hB,SAAtB,CAAgCpB,IAAhC,EAAsC10B,OAAtC,CAA8CkR,KAAK,IAAG;QAClDlS,MAAM,GAAGswC,IAAI,CAAC8f,GAAL,CAASpwD,MAAT,EAAiBkS,KAAK,CAACgkB,QAAvB,CAAT;MACH,CAFD;MAGAR,IAAI,CAACvkB,QAAL,CAAcnQ,OAAd,CAAsB41B,OAAO,IAAG;QAC5B52B,MAAM,GAAGswC,IAAI,CAAC8f,GAAL,CAASpwD,MAAT,EAAiB42B,OAAO,CAACV,QAAzB,CAAT;MACH,CAFD;IAGH,CARD;IASA,OAAOl2B,MAAP;EACH;;EAEsB,OAAhBqwD,gBAAgB,CAACrX,EAAD,EAAsBljC,EAAtB,EAAgC;IACnD,IAAIklC,IAAI,GAAG,KAAKsV,8BAAL,CAAoCtX,EAAE,CAAC5jB,WAAvC,EAAoDtf,EAApD,EAAwD,IAAxD,CAAX;;IACA,IAAIklC,IAAI,IAAI,IAAZ,EAAkB;MACdA,IAAI,GAAG,KAAKsV,8BAAL,CAAoCtX,EAAE,CAAC3jB,WAAvC,EAAoDvf,EAApD,EAAwD,IAAxD,CAAP;IACH;;IACD,OAAOklC,IAAP;EACH;;EAC4C,OAA9BsV,8BAA8B,CAACtV,IAAD,EAAallC,EAAb,EAAyBy6C,QAAzB,EAA0C;IACnF,IAAIvwD,MAAM,GAAG,IAAb;IACAg7C,IAAI,CAACvlB,KAAL,CAAW5X,IAAX,CAAgB6X,IAAI,IAAG;MACnB,IAAIA,IAAI,CAACQ,QAAL,KAAkBpgB,EAAtB,EAA0B;QACtB,IAAIy6C,QAAJ,EAAc;UACVvwD,MAAM,GAAGg7C,IAAT;QACH,CAFD,MAEO;UACHh7C,MAAM,GAAG01B,IAAT;QACH;;QACD,OAAO,IAAP;MACH;;MACD,OAAO,KAAP;IACH,CAVD;IAWA,OAAO11B,MAAP;EACH;;EAEkB,OAAZu8C,YAAY,CAACvD,EAAD,EAAsBljC,EAAtB,EAAgC;IAC/C,IAAI4f,IAAI,GAAG,KAAK46B,8BAAL,CAAoCtX,EAAE,CAAC5jB,WAAvC,EAAoDtf,EAApD,EAAwD,KAAxD,CAAX;;IACA,IAAI4f,IAAI,IAAI,IAAZ,EAAkB;MACdA,IAAI,GAAG,KAAK46B,8BAAL,CAAoCtX,EAAE,CAAC3jB,WAAvC,EAAoDvf,EAApD,EAAwD,KAAxD,CAAP;IACH;;IACD,OAAO4f,IAAP;EACH;;EAEgC,OAApBoqB,oBAAoB,CAAC9G,EAAD,EAAsBljC,EAAtB,EAAmC06C,SAAnC,EAAmD;IAAA;MAChF,IAAI1R,SAAS,GAAGlG,qBAAqB,CAACuE,iBAAtB,CAAwCnE,EAAxC,EAA4CljC,EAA5C,CAAhB;;MACA,IAAIgpC,SAAS,IAAI0R,SAAjB,EAA4B;QACpB,MAAM3/C,kFAAA,CAA2B2/C,SAA3B,EAAsCxX,EAAE,CAACziB,WAAzC,EAAsDvzB,IAAtD,CAA2D82C,OAAO,IAAG;UACvE,IAAIA,OAAJ,EAAa;YACTgF,SAAS,CAAC5mC,KAAV,GAAkBs4C,SAAlB;YACA1R,SAAS,CAACmG,YAAV,GAAyBnL,OAAO,CAAC7nC,MAAR,CAAe/I,EAAxC;YACA41C,SAAS,CAACoG,WAAV,GAAwBpL,OAAO,CAAC7nC,MAAR,CAAeA,MAAf,CAAsB/I,EAA9C;YACA41C,SAAS,CAACj1C,OAAV,GAAoB,IAAI05C,4EAAJ,CAAqBzJ,OAAO,CAACjwC,OAA7B,CAApB;UACH;QACJ,CAPK,CAAN;MAQP;;MACD,OAAOi1C,SAAP;IAZgF;EAanF;;EACwB,OAAjB3B,iBAAiB,CAACnE,EAAD,EAAsBljC,EAAtB,EAAkC26C,MAAlC,EAAkD;IACvE,IAAI3R,SAAS,GAAG,KAAK4R,yBAAL,CAA+B1X,EAAE,CAAC5jB,WAAlC,EAA+Ctf,EAA/C,EAAmD26C,MAAnD,CAAhB;;IACA,IAAI3R,SAAS,IAAI,IAAjB,EAAuB;MACnBA,SAAS,GAAG,KAAK4R,yBAAL,CAA+B1X,EAAE,CAAC3jB,WAAlC,EAA+Cvf,EAA/C,EAAmD26C,MAAnD,CAAZ;IACH;;IACD,OAAO3R,SAAP;EAEH;;EAE+B,OAAzB4R,yBAAyB,CAAC1V,IAAD,EAAallC,EAAb,EAAyB26C,MAAzB,EAAyC;IACrE,IAAI3R,SAAS,GAAG,IAAhB;IACA9D,IAAI,CAACvlB,KAAL,CAAW5X,IAAX,CAAgB6X,IAAI,IAAG;MACnB,OAAOA,IAAI,CAACI,MAAL,CAAYjY,IAAZ,CAAiBkY,KAAK,IAAG;QAC5B,OAAOA,KAAK,CAAC/jB,MAAN,CAAa6L,IAAb,CAAkB,CAACxe,CAAD,EAAIyI,CAAJ,KAAS;UAC9B,IAAIzI,CAAC,CAAC62B,QAAF,KAAepgB,EAAnB,EAAuB;YACnBgpC,SAAS,GAAGz/C,CAAZ;;YACA,IAAIoxD,MAAM,KAAK,IAAf,EAAqB;cACjB16B,KAAK,CAAC/jB,MAAN,CAAarE,MAAb,CAAoB7F,CAApB,EAAuB,CAAvB;YACH;;YACD,OAAO,IAAP;UACH;;UACD,OAAO,KAAP;QACH,CATM,CAAP;MAUH,CAXM,CAAP;IAYH,CAbD;IAcA,OAAOg3C,SAAP;EACH;;EAE8B,OAAlBe,kBAAkB,CAAC7G,EAAD,EAAsBljC,EAAtB,EAAkC06C,SAAlC,EAAkD;IAAA;MAC7E,IAAInT,WAAW,GAAGzE,qBAAqB,CAAC0E,eAAtB,CAAsCtE,EAAtC,EAA0CljC,EAA1C,CAAlB;;MACA,IAAIunC,WAAW,IAAImT,SAAnB,EAA8B;QAC1B,MAAM3/C,oFAAA,CAA6B2/C,SAA7B,EAAwCxX,EAAE,CAACziB,WAA3C,EAAwDvzB,IAAxD,CAA6Dm2C,GAAG,IAAG;UACrE,IAAIA,GAAJ,EAAS;YACLkE,WAAW,CAACxmB,OAAZ,GAAsBsiB,GAAG,CAACjwC,EAA1B;YACAm0C,WAAW,CAACxzC,OAAZ,GAAsB,IAAI05C,4EAAJ,CAAqBpK,GAAG,CAACtvC,OAAzB,CAAtB;YACAwzC,WAAW,CAAChsC,IAAZ,GAAmB8nC,GAAG,CAAC9nC,IAAJ,CAASnI,EAA5B;YACAm0C,WAAW,CAAC3E,kBAAZ,GAAiCA,qFAAjC,CAJK,CAML;YACA;YACA;YACA;YACA;YACA;UACH;QACJ,CAdK,CAAN;MAeH;;MACD,OAAO2E,WAAP;IAnB6E;EAoBhF;;EAEqB,OAAfC,eAAe,CAACtE,EAAD,EAAsBljC,EAAtB,EAAkC26C,MAAlC,EAAkD;IAGpE,IAAIE,WAAW,GAAG,KAAKC,uBAAL,CAA6B5X,EAAE,CAAC5jB,WAAhC,EAA6Ctf,EAA7C,EAAiD26C,MAAjD,CAAlB;;IACA,IAAIE,WAAW,IAAI,IAAnB,EAAyB;MACrBA,WAAW,GAAG,KAAKC,uBAAL,CAA6B5X,EAAE,CAAC3jB,WAAhC,EAA6Cvf,EAA7C,EAAiD26C,MAAjD,CAAd;IACH;;IACD,OAAOE,WAAP;EACH;;EAEqC,OAAvBC,uBAAuB,CAAC5V,IAAD,EAAallC,EAAb,EAAyB26C,MAAzB,EAAyC;IAC3E,IAAIE,WAAW,GAAG,IAAlB;IACA3V,IAAI,CAACvlB,KAAL,CAAW5X,IAAX,CAAgB6X,IAAI,IAAG;MACnB,OAAOA,IAAI,CAACvkB,QAAL,CAAc0M,IAAd,CAAmB,CAACzM,CAAD,EAAItJ,CAAJ,KAAS;QAC/B,IAAIsJ,CAAC,CAAC8kB,QAAF,KAAepgB,EAAnB,EAAuB;UACnB66C,WAAW,GAAGv/C,CAAd;;UACA,IAAIq/C,MAAJ,EAAY;YACR/6B,IAAI,CAACvkB,QAAL,CAAcxD,MAAd,CAAqB7F,CAArB,EAAwB,CAAxB;UACH;;UACD,OAAO,IAAP;QACH;;QACD,OAAO,KAAP;MACH,CATM,CAAP;IAUH,CAXD;IAYA,OAAO6oD,WAAP;EACH;;EAEyB,OAAnB5O,mBAAmB,CAAC/I,EAAD,EAAsBljC,EAAtB,EAAgC;IACtD,IAAI4f,IAAI,GAAGsjB,EAAE,CAAC5jB,WAAH,CAAeK,KAAf,CAAqBp1B,IAArB,CAA0Bq1B,IAAI,IAAIA,IAAI,CAACvkB,QAAL,IAAiBukB,IAAI,CAACvkB,QAAL,CAAc0M,IAAd,CAAmBzM,CAAC,IAAIA,CAAC,CAAC8kB,QAAF,KAAepgB,EAAvC,CAAnD,CAAX;;IACA,IAAI4f,IAAI,IAAI,IAAZ,EAAkB;MACdA,IAAI,GAAGsjB,EAAE,CAAC3jB,WAAH,CAAeI,KAAf,CAAqBp1B,IAArB,CAA0Bq1B,IAAI,IAAIA,IAAI,CAACvkB,QAAL,IAAiBukB,IAAI,CAACvkB,QAAL,CAAc0M,IAAd,CAAmBzM,CAAC,IAAIA,CAAC,CAAC8kB,QAAF,KAAepgB,EAAvC,CAAnD,CAAP;IACH;;IACD,OAAO4f,IAAP;EACH;;EAEuB,OAAjBm7B,iBAAiB,CAAC7X,EAAD,EAAsBljC,EAAtB,EAAgC;IACpD,IAAI4f,IAAI,GACJsjB,EAAE,CAAC5jB,WAAH,CAAeK,KAAf,CAAqBp1B,IAArB,CAA0Bq1B,IAAI,IAAIA,IAAI,CAACI,MAAL,IAAeJ,IAAI,CAACI,MAAL,CAAYjY,IAAZ,CAAiB2wC,CAAC,IAAIA,CAAC,CAACx8C,MAAF,IAAYw8C,CAAC,CAACx8C,MAAF,CAAS6L,IAAT,CAAcxe,CAAC,IAAIA,CAAC,CAAC62B,QAAF,KAAepgB,EAAlC,CAAlC,CAAjD,CADJ;;IAEA,IAAI4f,IAAI,IAAI,IAAZ,EAAkB;MACdA,IAAI,GACAsjB,EAAE,CAAC3jB,WAAH,CAAeI,KAAf,CAAqBp1B,IAArB,CAA0Bq1B,IAAI,IAAIA,IAAI,CAACI,MAAL,IAAeJ,IAAI,CAACI,MAAL,CAAYjY,IAAZ,CAAiB2wC,CAAC,IAAIA,CAAC,CAACx8C,MAAF,IAAYw8C,CAAC,CAACx8C,MAAF,CAAS6L,IAAT,CAAcxe,CAAC,IAAIA,CAAC,CAAC62B,QAAF,KAAepgB,EAAlC,CAAlC,CAAjD,CADJ;IAEH;;IACD,OAAO4f,IAAP;EACH;;AA/Q6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTlC;AACA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEM,MAAO07B,aAAP,CAAoB;EAUtBtvD,YAAoBu8C,eAApB,EAA8DgT,OAA9D,EAAqE;IAAjD;IAA0C;IAR9D,qBAA0C,CACtC,IAAIrD,+EAAJ,EADsC,EAEtC,IAAIxD,oIAAJ,EAFsC,EAGtC,IAAI4B,8FAAJ,EAHsC,EAItC,IAAI4E,6GAAJ,EAJsC,EAKtC,IAAIC,oGAAJ,EALsC,CAA1C;EASC,CAXqB,CAatB;EACA;EACA;EACA;EACA;;;EACMtsB,OAAO,CAAC2sB,OAAD,EAAUC,YAAV,EAA+B;IAAA;;IAAA;MACxC;MAEA;MACA;MACA;MACAD,OAAO,CAACl4B,SAAR,GAAoB,EAApB;MACA,MAAMo4B,YAAY,GAAGF,OAAO,CAACjF,gBAA7B;;MAEA,IAAImF,YAAJ,EAAkB;QACd,IAAIA,YAAY,CAACC,2BAAjB,EAA8C;UAC1C,KAAK,IAAI3pD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAI,CAACu2C,eAAL,CAAqBpD,UAArB,CAAgCv6C,MAApD,EAA4DoH,CAAC,EAA7D,EAAiE;YAC7D,MAAMozC,EAAE,GAAG,KAAI,CAACmD,eAAL,CAAqBpD,UAArB,CAAgCnzC,CAAhC,CAAX;YACA,IAAI4pD,cAAc,GAAG,KAArB;YACA,IAAIC,YAAY,GAAG,KAAnB;;YACA,IAAIzW,EAAE,CAACzlB,KAAH,CAAS5X,IAAT,CAAcza,CAAC,IAAG;cAClB,MAAMwuD,EAAE,GAAGxuD,CAAC,CAACyuD,UAAb;;cACA,IAAID,EAAE,KAAK,CAAX,EAAc;gBACVF,cAAc,GAAG,IAAjB;cACH,CAFD,MAEO;gBACHC,YAAY,GAAG,IAAf;cACH;;cACD,OAAOD,cAAc,IAAIC,YAAzB;YACH,CARG,CAAJ,EAQI;cACA,MAAMG,IAAI,GAAG,8FAAb;cACAtqB,iFAAA,CAAwBsqB,IAAxB,EAA8B,WAA9B;cACA;YACH;UACJ;QACJ;;QACD,IAAIN,YAAY,CAAC7yD,aAAjB,EAAgC;UAC5B,MAAMqzD,YAAY,GAAG36B,6EAAA,CAA0Bm6B,YAAY,CAAC7yD,aAAvC,CAArB;UACAqzD,YAAY,CAAChxD,OAAb,CAAqBC,CAAC,IAAG;YACrB,MAAMksD,GAAG,GAAGjB,+GAAA,CAAuCjrD,CAAvC,EAA0C,KAA1C,EAAiDwN,KAA7D;;YACA,IAAI,OAAO0+C,GAAP,KAAe,WAAf,IAA8BA,GAAG,KAAK,IAA1C,EAAgD;cAC5CmE,OAAO,CAACl4B,SAAR,CAAkBn4B,CAAC,CAACuN,IAApB,IAA4B2+C,GAA5B;YACH;UACJ,CALD;QAMH;MACJ;;MAED,UAAUgE,gFAAA,CAAgC,KAAI,CAAC9S,eAArC,CAAV,EAAiE;QAC7D7W,iFAAA,CAAwB,sJAAxB,EAAgL,SAAhL;MACH;;MAED,MAAM2qB,OAAO,GAAG,KAAI,CAAC9T,eAAL,CAAqB+T,KAArB,EAAhB;;MACAD,OAAO,CAACE,cAAR,GAAyB,KAAI,CAAChU,eAAL,CAAqBgU,cAA9C,CA9CwC,CAgDxC;MACA;MACA;MACA;MACA;MACA;;MAEAf,OAAO,CAACgB,uBAAR,GAAkC,KAAI,CAACjU,eAAvC;MACAiT,OAAO,CAAC3G,oBAAR,GAA+BwH,OAA/B;;MAEA,KAAK,IAAIrqD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAI,CAACyqD,aAAL,CAAmB7xD,MAAvC,EAA+CoH,CAAC,EAAhD,EAAoD;QAChD,KAAI,CAACyqD,aAAL,CAAmBzqD,CAAnB,EAAsB4iD,OAAtB,GAAgC4G,OAAhC;QACA,MAAM,KAAI,CAACiB,aAAL,CAAmBzqD,CAAnB,EAAsB2iD,WAAtB,EAAN;MACH,CA7DuC,CA+DxC;;;MACA,MAAM+H,WAAW,GAAe,EAAhC;;MACA,IAAIL,OAAO,CAAC/8B,WAAR,CAAoBq9B,QAAxB,EAAkC;QAC9B,KAAK,IAAI3qD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqqD,OAAO,CAAC/8B,WAAR,CAAoBK,KAApB,CAA0B/0B,MAA9C,EAAsDoH,CAAC,EAAvD,EAA2D;UACvD,IAAIqqD,OAAO,CAAC98B,WAAR,CAAoBo9B,QAAxB,EAAkC;YAC9B,KAAK,IAAInb,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6a,OAAO,CAAC98B,WAAR,CAAoBI,KAApB,CAA0B/0B,MAA9C,EAAsD42C,CAAC,EAAvD,EAA2D;cACvD,MAAMmV,IAAI,SAAS0E,wEAAA,CAAwBgB,OAAxB,EAAiCA,OAAO,CAAC/8B,WAAR,CAAoBK,KAApB,CAA0B3tB,CAA1B,CAAjC,EAA+DqqD,OAAO,CAAC98B,WAAR,CAAoBI,KAApB,CAA0B6hB,CAA1B,CAA/D,CAAnB;cACAkb,WAAW,CAACtzD,IAAZ,CAAiB,GAAGutD,IAApB;YACH;UACJ,CALD,MAKO;YACH,MAAMA,IAAI,SAAS0E,wEAAA,CAAwBgB,OAAxB,EAAiCA,OAAO,CAAC/8B,WAAR,CAAoBK,KAApB,CAA0B3tB,CAA1B,CAAjC,EAA+D,IAA/D,CAAnB;YACA0qD,WAAW,CAACtzD,IAAZ,CAAiB,GAAGutD,IAApB;UACH;QACJ;MACJ,CAZD,MAYO,IAAI0F,OAAO,CAAC98B,WAAR,CAAoBo9B,QAAxB,EAAkC;QACrC,KAAK,IAAIxO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkO,OAAO,CAAC98B,WAAR,CAAoBI,KAApB,CAA0B/0B,MAA9C,EAAsDujD,CAAC,EAAvD,EAA2D;UACvD,MAAMwI,IAAI,SAAS0E,wEAAA,CAAwBgB,OAAxB,EAAiC,IAAjC,EAAuCA,OAAO,CAAC98B,WAAR,CAAoBI,KAApB,CAA0BwuB,CAA1B,CAAvC,CAAnB;UACAuO,WAAW,CAACtzD,IAAZ,CAAiB,GAAGutD,IAApB;QACH;MACJ,CAlFuC,CAmFxC;MACA;MACA;MACA;;;MACA,IAAIkG,gBAAJ;MACA,IAAIC,gBAAJ;MAEAJ,WAAW,CAACxxD,OAAZ,CAAoB2Q,CAAC,IAAG;QACpBA,CAAC,CAACynB,SAAF,GAAch0B,MAAM,CAAC4xB,MAAP,CAAc,EAAd,EAAkBs6B,OAAO,CAACl4B,SAA1B,CAAd;QACA,MAAMy5B,QAAQ,GAAGlhD,CAAC,CAAC4jB,IAAF,CAAOl1B,IAAP,CAAYY,CAAC,IAAIA,CAAC,CAACyI,IAAF,KAAW+uC,qEAA5B,CAAjB;QACA,MAAMqa,QAAQ,GAAGnhD,CAAC,CAAC4jB,IAAF,CAAOl1B,IAAP,CAAYY,CAAC,IAAIA,CAAC,CAACyI,IAAF,KAAW+uC,qEAA5B,CAAjB;;QACA,IAAI,CAACka,gBAAD,IAAqBG,QAAzB,EAAmC;UAC/B,MAAMlB,EAAE,GAAGO,OAAO,CAAC98B,WAAR,CAAoBI,KAApB,CAA0Bp1B,IAA1B,CAA+BY,CAAC,IAAIA,CAAC,CAACi1B,QAAF,KAAevkB,CAAC,CAACohD,iBAAF,CAAoBxhD,GAApB,CAAwBknC,qEAAxB,CAAnD,EAA6FoZ,UAAxG;;UACA,IAAIiB,QAAQ,CAAC9gD,MAAT,CAAgBtR,MAAhB,KAA2BkxD,EAA/B,EAAmC;YAC/Be,gBAAgB,GAAGhhD,CAAnB;UACH;QACJ;;QACD,IAAI,CAACihD,gBAAD,IAAqBC,QAAzB,EAAmC;UAC/B,MAAMjB,EAAE,GAAGO,OAAO,CAAC/8B,WAAR,CAAoBK,KAApB,CAA0Bp1B,IAA1B,CAA+BY,CAAC,IAAIA,CAAC,CAACi1B,QAAF,KAAevkB,CAAC,CAACohD,iBAAF,CAAoBxhD,GAApB,CAAwBknC,qEAAxB,CAAnD,EAA6FoZ,UAAxG;;UACA,IAAIgB,QAAQ,CAAC7gD,MAAT,CAAgBtR,MAAhB,KAA2BkxD,EAA/B,EAAmC;YAC/BgB,gBAAgB,GAAGjhD,CAAnB;UACH;QACJ;MACJ,CAhBD;;MAkBA,IAAIihD,gBAAJ,EAAsB;QAClBJ,WAAW,CAAC7kD,MAAZ,CAAmB6kD,WAAW,CAACnlD,OAAZ,CAAoBulD,gBAApB,CAAnB,EAA0D,CAA1D;QACAJ,WAAW,CAACQ,OAAZ,CAAoBJ,gBAApB;MACH;;MAED,IAAID,gBAAJ,EAAsB;QAClBH,WAAW,CAAC7kD,MAAZ,CAAmB6kD,WAAW,CAACnlD,OAAZ,CAAoBslD,gBAApB,CAAnB,EAA0D,CAA1D;QACAH,WAAW,CAACQ,OAAZ,CAAoBL,gBAApB;MACH;;MAEDrB,OAAO,CAAChF,gBAAR,GAA2BkG,WAA3B;;MAEA,KAAK,IAAI1qD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAI,CAACyqD,aAAL,CAAmB7xD,MAAvC,EAA+CoH,CAAC,EAAhD,EAAoD;QAChD,MAAM,KAAI,CAACyqD,aAAL,CAAmBzqD,CAAnB,EAAsBkkD,aAAtB,EAAN;MACH;;MAED,MAAMiH,OAAO,GAA2B,EAAxC;MACA,MAAMvsD,OAAO,GAAGgK,yFAAA,CAAyDqgD,uEAAzD,CAAhB;;MACA,KAAK,IAAIjpD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0qD,WAAW,CAAC9xD,MAAhC,EAAwCoH,CAAC,EAAzC,EAA6C;QAEzCmrD,OAAO,CAAC/zD,IAAR,CAAa,KAAI,CAACg0D,YAAL,CAAkBV,WAAW,CAAC1qD,CAAD,CAA7B,EAAkCpB,OAAlC,CAAb;MACH,CAjIuC,CAmIxC;;;MAEA,MAAM5C,OAAO,CAACqvD,GAAR,CAAYF,OAAZ,EACDjwD,IADC,CACIm9B,GAAG,IAAIA,GAAG,CAACn/B,OAAJ,CAAYoyD,EAAE,IAAG;QAC1B,MAAMC,UAAU,GAAGb,WAAW,CAACnyD,IAAZ,CAAiBsR,CAAC,IAAIA,CAAC,CAACzI,EAAF,KAASkqD,EAAE,CAAClqD,EAAlC,CAAnB;;QACA,IAAImqD,UAAJ,EAAgB;UACZ,IAAIn3C,KAAK,GAAG,CAAZ;;UACA,IAAIk3C,EAAE,CAACE,KAAH,CAASv8B,KAAT,CAAer2B,MAAf,GAAwB,CAA5B,EAA+B;YAC3Bwb,KAAK;UACR;;UACD,IAAIk3C,EAAE,CAACG,KAAH,CAASx8B,KAAT,CAAer2B,MAAf,GAAwB,CAA5B,EAA+B;YAC3Bwb,KAAK;UACR;;UACD,IAAIk3C,EAAE,CAACjiD,QAAH,CAAY4lB,KAAZ,CAAkBr2B,MAAlB,GAA2B,CAA/B,EAAkC;YAC9Bwb,KAAK;UACR;;UACD,IAAIA,KAAK,KAAK,CAAd,EAAiB;YACb;UACH;;UACD,IAAIA,KAAK,KAAK,CAAd,EAAiB;YACb,IAAIk3C,EAAE,CAACI,KAAH,CAAS9yD,MAAT,KAAoB,CAAxB,EAA2B;cACvB;YACH;;YACD,IAAI0yD,EAAE,CAACI,KAAH,CAAS9yD,MAAT,KAAoB,CAAxB,EAA2B;cACvB,MAAM+yD,KAAK,GAAGL,EAAE,CAACI,KAAH,CAAS,CAAT,CAAd;;cACA,IAAIC,KAAK,CAAC/yD,MAAN,KAAiB,CAArB,EAAwB;gBACpB;cACH;;cACD,IAAI+yD,KAAK,CAAC/yD,MAAN,KAAiB,CAArB,EAAwB;gBACpB,MAAMgzD,GAAG,GAAGD,KAAK,CAAC,CAAD,CAAjB;;gBACA,IAAIC,GAAG,CAAClxC,KAAJ,CAAUvhB,CAAC,IAAIA,CAAC,IAAI,IAApB,CAAJ,EAA+B;kBAC3B;gBACH;cACJ;YACJ;UACJ;;UAGDoyD,UAAU,CAACM,WAAX,GAAyBP,EAAzB;UACAC,UAAU,CAACM,WAAX,CAAuBL,KAAvB,CAA6Bv8B,KAA7B,CAAmC/1B,OAAnC,CAA2CC,CAAC,IAAG;YAC3C,KAAI,CAAC2yD,kBAAL,CAAwB3yD,CAAxB;UACH,CAFD;UAGAoyD,UAAU,CAACM,WAAX,CAAuBJ,KAAvB,CAA6Bx8B,KAA7B,CAAmC/1B,OAAnC,CAA2C6hD,CAAC,IAAG;YAC3C,KAAI,CAAC+Q,kBAAL,CAAwB/Q,CAAxB;UACH,CAFD;UAGAwQ,UAAU,CAACM,WAAX,CAAuBxiD,QAAvB,CAAgC4lB,KAAhC,CAAsC/1B,OAAtC,CAA8CoQ,CAAC,IAAG;YAC9C,KAAI,CAACwiD,kBAAL,CAAwBxiD,CAAxB;UACH,CAFD;QAGH;MACJ,CA9CY,CADX,EAgDD4D,KAhDC,CAgDK6+C,MAAM,IAAI/mD,OAAO,CAACC,GAAR,CAAY8mD,MAAZ,CAhDf,CAAN,CArIwC,CAsLxC;MACA;MACA;;MACA,MAAMC,WAAW,GAAG5C,wDAAA,CAAaiB,OAAb,EAAsBK,WAAtB,CAApB,CAzLwC,CA0LxC;MACA;;MAEA,KAAK,IAAI1qD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAI,CAACyqD,aAAL,CAAmB7xD,MAAvC,EAA+CoH,CAAC,EAAhD,EAAoD;QAChD,MAAM,KAAI,CAACyqD,aAAL,CAAmBzqD,CAAnB,EAAsBmkD,YAAtB,CAAmC6H,WAAnC,CAAN;;QACA,KAAI,CAACvB,aAAL,CAAmBzqD,CAAnB,EAAsBksD,KAAtB;MACH;;MAED,IAAIzC,YAAJ,EAAkB;QACd;QACA,MAAM,KAAI,CAAC0C,YAAL,CAAkB3C,OAAlB,EAA2BwC,WAA3B,CAAN,CAFc,CAGd;QACA;MACH;;MAED,OAAOA,WAAP,CAzMwC,CA0MxC;MACA;MACA;MACA;MACA;MACA;MAEA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MAEA;MACA;MAEA;MACA;MACA;MACA;MACA;MACA;IAlOwC;EAmO3C,CArPqB,CAuPtB;EACA;EACA;;;EACcG,YAAY,CAAC3C,OAAD,EAAe4C,MAAf,EAAkC;IAAA;;IAAA;MAExD;MACA;MACA;MACA,IAAI5C,OAAO,CAACjF,gBAAR,IAA4BiF,OAAO,CAACjF,gBAAR,CAAyB1tD,aAAzD,EAAwE;QACpE;QACA;QACA,MAAMw1D,SAAS,GAAGpG,gFAAA,EAAlB;;QAEA,KAAK,IAAIjmD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwpD,OAAO,CAAC3G,oBAAR,CAA6BxL,KAA7B,CAAmCz+C,MAAvD,EAA+DoH,CAAC,EAAhE,EAAoE;UAChE,MAAM,MAAI,CAACssD,WAAL,CAAiB9C,OAAO,CAAC3G,oBAAR,CAA6BxL,KAA7B,CAAmCr3C,CAAnC,CAAjB,EAAwDwpD,OAAxD,EAAiE4C,MAAjE,EAAyE5C,OAAO,CAACjF,gBAAR,CAAyB1tD,aAAzB,CAAuCuK,EAAhH,CAAN;QACH;;QAED,IAAIooD,OAAO,CAACjF,gBAAR,CAAyB1tD,aAAzB,CAAuC01D,SAA3C,EAAsD;UAClD,KAAK,IAAIvsD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwpD,OAAO,CAACjF,gBAAR,CAAyB1tD,aAAzB,CAAuC01D,SAAvC,CAAiD3zD,MAArE,EAA6EoH,CAAC,EAA9E,EAAkF;YAC9E,MAAMo3C,IAAI,GAAGoS,OAAO,CAACjF,gBAAR,CAAyB1tD,aAAzB,CAAuC01D,SAAvC,CAAiDvsD,CAAjD,CAAb;;YACA,IAAIo3C,IAAI,IAAIA,IAAI,CAACmP,OAAL,KAAiB,MAAI,CAACgD,OAAlC,EAA2C;cACvC,MAAM,MAAI,CAAC+C,WAAL,CAAiBlV,IAAjB,EAAuBoS,OAAvB,EAAgC4C,MAAhC,EAAwC5C,OAAO,CAACjF,gBAAR,CAAyB1tD,aAAzB,CAAuCuK,EAA/E,CAAN;YACH;UACJ;QACJ;MACJ;IAtBuD;EAuB3D;;EAEakrD,WAAW,CAACE,QAAD,EAAWhD,OAAX,EAAyB4C,MAAzB,EAA8CK,QAA9C,EAAsD;IAAA;MAC3E,IAAID,QAAQ,IAAIA,QAAQ,CAACE,QAArB,IAAiCzG,+EAAA,CAA+BuG,QAA/B,EAAyCC,QAAzC,CAArC,EAAyF;QACrF,MAAMG,IAAI,GAAG5D,oEAAA,CAAiBwD,QAAQ,CAACE,QAA1B,CAAb;;QACA,IAAIE,IAAI,IAAIA,IAAI,CAACC,QAAjB,EAA2B;UACvB,MAAMC,QAAQ,GAAkB,IAAIF,IAAI,CAACC,QAAT,EAAhC;UACA,MAAMC,QAAQ,CAACC,IAAT,CAAcP,QAAd,EAAwBJ,MAAxB,EAAgC5C,OAAO,CAAC3G,oBAAxC,EAA8D2G,OAA9D,CAAN,CAFuB,CAGvB;;UACA,MAAMsD,QAAQ,CAACE,OAAT,EAAN;QACH;MACJ;IAT0E;EAU9E;;EAEDC,eAAe,CAACb,MAAD,EAAsB/B,OAAtB,EAA8C;IACzD,MAAM6C,gBAAgB,GAAG;MAAEC,WAAW,EAAE;IAAf,CAAzB;IACA,KAAKC,uBAAL,CAA6BhB,MAAM,CAACZ,KAAP,CAAav8B,KAA1C,EAAiDi+B,gBAAjD;IACA,MAAMG,eAAe,GAAGvc,qFAAA,CAAyCuZ,OAAzC,EAAkDA,OAAO,CAACjQ,iBAA1D,EAA6Ej/C,MAA7E,CAAoFhC,CAAC,IAAIA,CAAC,CAACm0D,SAA3F,CAAxB;;IACA,IAAID,eAAe,IAAIA,eAAe,CAACz0D,MAAhB,GAAyB,CAAhD,EAAmD;MAC/Cs0D,gBAAgB,CAACC,WAAjB,GAA+BD,gBAAgB,CAACC,WAAjB,GAA+BE,eAAe,CAACz0D,MAA9E;IACH;;IACD,OAAOs0D,gBAAgB,CAACC,WAAxB;EACH;;EACDC,uBAAuB,CAACvtD,QAAD,EAAuB0tD,UAAvB,EAA2D;IAC9E,KAAK,IAAIvtD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,QAAQ,CAACjH,MAA7B,EAAqCoH,CAAC,EAAtC,EAA0C;MACtC,MAAM6N,IAAI,GAAGhO,QAAQ,CAACG,CAAD,CAArB;;MACA,IAAI6N,IAAI,CAAC5L,QAAL,CAAcrJ,MAAd,KAAyB,CAA7B,EAAgC;QAC5B20D,UAAU,CAACJ,WAAX;MACH,CAFD,MAEO;QACH,KAAKC,uBAAL,CAA6Bv/C,IAAI,CAAC5L,QAAlC,EAA4CsrD,UAA5C;MACH;IACJ;EACJ;;EACDzB,kBAAkB,CAAC7wC,MAAD,EAAiB;IAC/BA,MAAM,CAAChZ,QAAP,CAAgB/I,OAAhB,CAAwBiZ,KAAK,IAAG;MAC5BA,KAAK,CAAChI,MAAN,GAAe8Q,MAAf;MACA,KAAK6wC,kBAAL,CAAwB35C,KAAxB;IACH,CAHD;EAIH;;EAEai5C,YAAY,CAAC5F,GAAD,EAAgB5mD,OAAhB,EAA4C;IAAA;MAClE,OAAOA,OAAO,CAAC4uD,WAAR,CAAoBhI,GAApB,EAAyB,uBAAzB,EAAkD,cAAlD,EAAkE,iBAAiBA,GAAG,CAACiI,UAAvF,EAAmGt6B,SAAnG,EAAP;IADkE;EAErE;;AA3TqB;;;;;;;;;;;;;;;;;;;;ACpB+F;AAC5C;AACR;AACZ;AACP;AAE3C,MAAM,MAAM;IACf,MAAM,CAAC,KAAK,CAAC,EAAmB,EAAE,OAAmB;QACjD,IAAI,MAAmB,CAAC;QAExB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtB,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;aACnC;iBAAM;gBACH,MAAM,YAAY,GAAe,EAAE,CAAC;gBACpC,MAAM,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC9C,MAAM,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;oBACjC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;wBACjB,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;qBAC/C;yBAAM;wBACH,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC9B;iBACJ;gBAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC3B,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;qBACxC;yBAAM;wBACH,iEAAiE;wBACjE,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;4BACtB,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC1E,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;4BACvE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC3E,CAAC,CAAC,CAAC;wBAEH,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;qBAC7C;iBACJ;aACJ;SACJ;QAED,IAAI,MAAM,EAAE;YACR,IAAI,CAAC,8EAA8B,CAAC,MAAM,CAAC,EAAE;gBAEzC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;oBACjC,IAAI,MAAM,GAAG,CAAC,CAAC;oBACf,IAAI,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC3E,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;qBAC7C;oBACD,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;iBACrD;gBACD,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;oBACjC,IAAI,MAAM,GAAG,CAAC,CAAC;oBACf,IAAI,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC3E,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;qBAC7C;oBACD,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;iBACrD;gBACD,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACxC,MAAM,WAAW,GAAG,iFAAoC,CAAC,EAAE,CAAC,CAAC;gBAC7D,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC1B,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;wBACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE;4BAC9D,IAAI,EAAE,GAAG,IAAI,qFAAQ,CAAC;gCAClB,QAAQ,EAAE,EAAE,CAAC,QAAQ;gCACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE;gCACxC,IAAI,EAAE,sEAAgB;gCACtB,KAAK,EAAE,CAAC;gCACR,OAAO,EAAE,EAAE,CAAC,mBAAmB,EAAE;gCACjC,GAAG,EAAE,EAAE,CAAC,GAAG;gCACX,OAAO,EAAE,IAAI;gCACb,IAAI,EAAE,wEAAkB;6BAC3B,CAAC,CAAC;4BACH,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;yBAC9C;wBACD,KAAK,EAAE,CAAC;oBACZ,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACN;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,IAAc;QAC7C,IAAI,IAAI,EAAE;YACN,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;aAC/B;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;aACrE;SACJ;IACL,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,KAAiB;QACzC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACd,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;gBACtB,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;SAC9C;IACL,CAAC;IAEO,MAAM,CAAC,OAAO,CAAC,OAAmB,EAAE,EAAmB;QAE3D,IAAI,WAAW,GAAG,IAAI,wFAAW,EAAE,CAAC;QAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;SACxB;QAED,QAAQ;QACR,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,qEAAe,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;QAC/F,QAAQ;QACR,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,qEAAe,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;QAE/F,cAAc;QACd,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAEpD,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACzE,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACzE,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAE5E,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACnB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACnB,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBAChE,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;IACvB,CAAC;IAEO,MAAM,CAAC,OAAO,CAAC,OAAmB,EAAE,EAAmB;QAC3D,IAAI,GAAG,GAAG,IAAI,kFAAQ,EAAE,CAAC;QACzB,GAAG,CAAC,WAAW,GAAG,IAAI,wFAAW,EAAE,CAAC;QAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;SACxB;QAED,QAAQ;QACR,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,qEAAe,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,qEAAe,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QAE5N,QAAQ;QACR,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,qEAAe,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,qEAAe,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QAE5N,cAAc;QACd,GAAG,CAAC,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAExD,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7E,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7E,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAEhF,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACnB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACnB,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBACpE,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QACrD,GAAG,CAAC,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;QAC7C,OAAO,GAAG,CAAC;IACf,CAAC;IACO,MAAM,CAAC,SAAS,CAAC,WAAwB,EAAE,OAAmB,EAAE,KAAe,EAAE,KAAe,EAAE,KAAe;QACrH,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;YAC1C,IAAI,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAClE,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC9C,MAAM,EAAE,GAAc,kFAAkC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC5G,IAAI,EAAE,EAAE;oBACJ,gFAAgC,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;iBACrG;aACJ;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,KAAiB,EAAE,OAAe;QACzD,IAAI,MAAM,GAAe,EAAE,CAAC;QAC5B,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACd,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;SACN;aAAM,IAAI,OAAO,EAAE;YAChB,IAAI,EAAE,GAAG,IAAI,qFAAQ,EAAE,CAAC;YACxB,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;gBAC9B,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAC/B;YACD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACnB;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,OAAmB;QAC3C,MAAM,WAAW,GAAG,IAAI,iFAAI,CAAC;YACzB,IAAI,EAAE,sEAAgB;SACzB,CAAC,CAAC;QACH,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAC9C,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;oBAC/B,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;iBACzE;qBAAM;oBACH,IAAI,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;oBACzE,IAAI,YAAY,EAAE;wBACd,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;4BAC9B,YAAY,CAAC,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;yBAC3D;wBACD,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;qBAClD;yBAAM;wBACH,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;qBACzE;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;QACD,WAAW,CAAC,YAAY,GAAG,UAAU,CAAC;QACtC,OAAO,WAAW,CAAC;IACvB,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,IAAgB,EAAE,QAAkB;QAC5D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAsB,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACb,MAAM,GAAG,GAAG,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,OAAO,EAAE;gBACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACnB;iBAAM;gBACH,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B;QACL,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,OAAmB,EAAE,QAAkB,EAAE,UAAmF,EAAE,SAAkB;QACvK,MAAM,MAAM,GAAG,IAAI,iFAAI,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QACvB,MAAM,OAAO,GAAG;YACZ,QAAQ,EAAE,CAAC;YACX,cAAc,EAAE,KAAK;SACxB;QACD,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACzD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACrH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;QACvC,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,MAAY,EAAE,KAAiB;QACxD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;YAC1B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;SAC/B;aAAM;YACH,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBACf,IAAI,EAAE,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE;oBACpB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBACzB;qBAAM;oBACH,IAAI,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;oBAClG,IAAI,YAAY,EAAE;wBACd,MAAM,CAAC,qBAAqB,CAAC,YAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;qBAC3D;yBAAM;wBACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;qBACzB;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IACO,MAAM,CAAC,qBAAqB,CAAC,IAAc,EAAE,QAAoB;QACrE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,0GAA6B,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/E,IAAI,YAAY,EAAE;gBACd,MAAM,CAAC,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;aAC9D;iBAAM;gBACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACxB;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACvB,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,OAAmB,EAAE,QAAkB,EAAE,IAAmB,EAAE,SAAkB,EAAE,QAAuD;QAChK,IAAI,MAAM,GAAG,IAAI,iFAAI,EAAE,CAAC;QACxB,IAAI,IAAI,EAAE;YACN,MAAM,MAAM,GAAG,4EAA+B,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gBACpB,MAAM,YAAY,GAAG,EAAE,CAAC;gBACxB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAChB,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;aACjF;iBAAM;gBACH,IAAI,IAAI,GAAG,QAAQ,IAAI,qEAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC;gBACrG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACrC,IAAI,KAAK,GAAG,QAAQ,IAAI,qEAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC;wBACtG,IAAI,cAAc,GAAa,EAAE,CAAC;wBAClC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;wBACjD,IAAI,eAAe,GAAa,EAAE,CAAC;wBACnC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;wBACnD,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;qBACnJ;iBACJ;qBAAM;oBACH,IAAI,cAAc,GAAa,EAAE,CAAC;oBAClC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;oBACjD,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;iBACtH;gBACD,MAAM,GAAG,IAAI,CAAC;aACjB;SACJ;QACD,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QACvB,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC;QACxC,OAAO,MAAM,CAAC;IAClB,CAAC;IACO,MAAM,CAAC,aAAa,CAAC,KAAiB,EAAE,UAAoB;QAChE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAClB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACnC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;SACvD;IACL,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,IAAU,EAAE,cAAwB,EAAE,KAAW,EAAE,eAAyB,EAAE,MAAmB,EAAE,OAAe,EAAE,QAAgB,EAAE,QAAuD,EAAE,SAAkB,EAAE,KAAc;QACvP,MAAM,MAAM,GAAG,IAAI,iFAAI,EAAE,CAAC;QAC1B,IAAI,aAAyB,CAAC;QAC9B,IAAI,cAA0B,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC;YACnE,IAAI,cAAc,CAAC;YACnB,IAAI,KAAK,EAAE;gBACP,cAAc,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC;aACpE;YACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,aAAa,GAAG,aAAa,CAAC;gBAC9B,IAAI,CAAC,KAAK,EAAE;oBACR,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC;iBAClC;gBACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC3C,IAAI,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;oBAC/H,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,EAAE;wBACzF,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;4BAC/B,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;gCAC7B,WAAW,CAAC,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;6BAC1D;4BACD,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gCAC3C,IAAI,GAAG,GAAG,CAAC,CAAC;gCACZ,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;oCAC7C,IAAI,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;oCAChC,OAAO,MAAM,EAAE;wCACX,IAAI,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;wCAC7E,IAAI,cAAc,EAAE;4CAChB,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC;4CAC9B,MAAM;yCACT;wCACD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;qCAC1B;iCACJ;gCACD,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;6BACjD;wBACL,CAAC,CAAC,CAAC;qBACN;iBACJ;gBACD,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC;aACnC;YACD,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7C,cAAc,GAAG,cAAc,CAAC;gBAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC5C,IAAI,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;oBAClI,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;wBACtE,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;4BAC/B,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;gCAC7B,WAAW,CAAC,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;6BAC1D;4BACD,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gCAC1C,IAAI,GAAG,GAAG,CAAC,CAAC;gCACZ,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;oCAC3C,IAAI,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;oCAChC,OAAO,MAAM,EAAE;wCACX,IAAI,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;wCAC5E,IAAI,cAAc,EAAE;4CAChB,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC;4CAC9B,MAAM;yCACT;wCACD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;qCAC1B;iCACJ;gCACD,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;6BAChD;wBACL,CAAC,CAAC,CAAC;qBACN;iBACJ;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACO,MAAM,CAAC,YAAY,CAAC,MAAY,EAAE,YAAsB,EAAE,UAAkB,EAAE,MAAc;QAChG,MAAM,KAAK,GAAG,IAAI,qFAAQ,CAAC;YACvB,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,OAAO;YAChB,GAAG,EAAE,GAAG;YACR,OAAO,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,KAAK,CAAC,SAAS,GAAG,IAAI,sFAAS,EAAE,CAAC;QAClC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;QAChC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC5B,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IACO,MAAM,CAAC,OAAO,CAAC,IAAU,EAAE,EAAY,EAAE,aAAwB,EAAE,UAAoB,EAAE,WAAwB,EAAE,WAAmB,EAAE,KAAa,EAAE,GAAW,EAAE,UAAyD,EAAE,SAAkB;QACrP,IAAI,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;YACrB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;gBACxB,IAAI,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACrH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC7B,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAClC;iBAAM;gBACH,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;gBACnE,IAAI,YAAY,EAAE;oBACd,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;wBAC9B,YAAY,CAAC,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;wBACxD,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;qBACrD;yBAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;wBAC9C,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;qBACrD;iBACJ;qBAAM;oBACH,IAAI,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACrH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC7B,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;iBAClC;aACJ;SACJ;aAAM;YACH,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;gBACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACxC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC1B,IAAI,0GAA6B,CAAC,KAAK,CAAC,IAAI,0GAA6B,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;wBACvF,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;qBACpK;iBAEJ;aACJ;iBAAM;gBACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACxC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC1B,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;iBAChK;aACJ;SACJ;QACD,OAAO,YAAY,CAAC;IACxB,CAAC;IACO,MAAM,CAAC,eAAe,CAAC,EAAY,EAAE,OAAmB,EAAE,EAAY,EAAE,KAAa,EAAE,aAAwB,EAAE,UAAoB,EAAE,WAAwB,EAAE,WAAmB,EAAE,GAAW,EAAE,UAAyD,EAAE,SAAkB;QACpR,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,IAAI,qEAAe,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE;YACzJ,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;gBACzB,IAAI,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC9H,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;gBACxB,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAClC;iBAAM;gBACH,IAAI,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,0GAA6B,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1E,IAAI,YAAY,EAAE;oBACd,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;wBAC9B,YAAY,CAAC,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;wBACxD,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;qBACrD;yBAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;wBAC9C,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;qBACrD;iBACJ;qBAAM;oBACH,IAAI,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC9H,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;oBACxB,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;iBAClC;aACJ;SACJ;aAAM;YACH,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;gBACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACzC,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC3B,IAAI,0GAA6B,CAAC,KAAK,CAAC,IAAI,0GAA6B,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;wBACvF,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;qBACpK;iBAEJ;aACJ;iBAAM;gBACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACzC,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC3B,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;iBAChK;aACJ;SACJ;QACD,OAAO,YAAY,CAAC;IACxB,CAAC;IAEO,MAAM,CAAC,SAAS,CAAC,IAAc,EAAE,MAAgB,EAAE,IAAY,EAAE,KAAa,EAAE,GAAW;QAC/F,MAAM,MAAM,GAAG,IAAI,qFAAQ,EAAE,CAAC;QAE9B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9B,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACtB,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAClC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;SAClD;QACD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACxC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9B,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC;QACtB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,MAAM,CAAC,yBAAyB,GAAG,IAAI,CAAC,yBAAyB,CAAC;QAClE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,EAAY;QAClC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC,MAAM,EAAE;YACd,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YACvB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;SAClB;QACD,MAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,OAAO,MAAM,CAAC;IAClB,CAAC;IACO,MAAM,CAAC,YAAY,CAAC,aAAqB,EAAE,SAAqB;QACpE,IAAI,MAAM,GAAe,EAAE,CAAC;QAC5B,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,aAAa,EAAE;gBACxC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;aAC7B;iBAAM;gBACH,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAClB,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAClE,CAAC,CAAC,CAAC;aACN;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,OAAmB;QAElD,IAAI,GAAG,GAAG,IAAI,GAAG,EAAsB,CAAC;QACxC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAChB,IAAI,CAAC,CAAC,WAAW,EAAE;gBACf,IAAI,GAAG,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,qEAAe,CAAC,CAAC,GAAG,GAAG;sBACzE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,qEAAe,CAAC,CAAC,GAAG,GAAG;sBACrE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,sEAAgB,CAAC,CAAC,CAAC;gBACvE,IAAI,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxB,IAAI,CAAC,IAAI,EAAE;oBACP,IAAI,GAAG,EAAE,CAAC;iBACb;gBACD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACb,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;aACtB;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,GAAiB,EAAE,CAAC;QAC9B,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAClB,CAAC;IACO,MAAM,CAAC,cAAc,CAAC,GAAW;QACrC,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrkBL;AACA;AACA;AACA;AAGA;AAGA;AACA;AACA;AAEM,MAAOk2B,WAAP,CAAkB;EAEY,OAAnBe,mBAAmB,CAAC8D,eAAD,EAAiC;IAAA;MAC7D;MACA,MAAMjlD,IAAI,GAAGilD,eAAe,CAACz/B,WAA7B;MACA,IAAIxc,MAAM,GAAG,KAAb;MACA,IAAIk8C,WAAW,GAAS,IAAxB;MACA,IAAIC,SAAS,GAAS,IAAtB;;MACA,IAAIF,eAAe,CAAC9T,iBAAhB,KAAsCzJ,qEAA1C,EAA2D;QACvDwd,WAAW,GAAGD,eAAe,CAAC5gC,WAA9B;QACA8gC,SAAS,GAAGF,eAAe,CAAC3gC,WAA5B;MACH,CAHD,MAGO;QACH4gC,WAAW,GAAGD,eAAe,CAAC3gC,WAA9B;QACA6gC,SAAS,GAAGF,eAAe,CAAC5gC,WAA5B;MACH;;MACD,IAAI6gC,WAAJ,EAAiB;QACb,MAAMpkD,KAAK,GAAW,EAAtB;QACAokD,WAAW,CAACxgC,KAAZ,CAAkBz0B,OAAlB,CAA0BoC,CAAC,IAAG;UAC1BA,CAAC,CAAC+N,QAAF,CAAWnQ,OAAX,CAAmBk9C,EAAE,IAAG;YACpB,IAAIA,EAAE,CAAC7sC,IAAH,IAAW,CAACQ,KAAK,CAACgM,IAAN,CAAW5c,CAAC,IAAIA,CAAC,KAAKi9C,EAAE,CAAC7sC,IAAzB,CAAhB,EAAgD;cAC5CQ,KAAK,CAAC3S,IAAN,CAAWg/C,EAAE,CAAC7sC,IAAd;YACH;UACJ,CAJD;QAKH,CAND;;QAOA,IAAIQ,KAAK,CAACnR,MAAN,GAAe,CAAnB,EAAsB;UAClB,KAAK,IAAIoH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmuD,WAAW,CAACxgC,KAAZ,CAAkB/0B,MAAtC,EAA8CoH,CAAC,EAA/C,EAAmD;YAC/C,MAAM1E,CAAC,GAAG6yD,WAAW,CAACxgC,KAAZ,CAAkB3tB,CAAlB,CAAV;YACA,MAAMquD,SAAS,GAAW,EAA1B;YACA/yD,CAAC,CAAC+N,QAAF,CAAWnQ,OAAX,CAAmBk9C,EAAE,IAAG;cACpB,IAAIA,EAAE,CAAC7sC,IAAH,IAAW,CAAC8kD,SAAS,CAACt4C,IAAV,CAAe5c,CAAC,IAAIA,CAAC,KAAKi9C,EAAE,CAAC7sC,IAA7B,CAAhB,EAAoD;gBAChD8kD,SAAS,CAACj3D,IAAV,CAAeg/C,EAAE,CAAC7sC,IAAlB;cACH;YACJ,CAJD;;YAKA,IAAI8kD,SAAS,CAACz1D,MAAV,GAAmB,CAAvB,EAA0B;cACtB,KAAK,IAAI42C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGl0C,CAAC,CAAC0yB,MAAF,CAASp1B,MAA7B,EAAqC42C,CAAC,EAAtC,EAA0C;gBACtC,MAAMkX,CAAC,GAAGprD,CAAC,CAAC0yB,MAAF,CAASwhB,CAAT,CAAV;;gBACA,IAAIkX,CAAC,CAACx8C,MAAF,CAAStR,MAAT,GAAkB,CAAtB,EAAyB;kBACrB,KAAK,IAAIujD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuK,CAAC,CAACx8C,MAAF,CAAStR,MAA7B,EAAqCujD,CAAC,EAAtC,EAA0C;oBACtC,MAAM5kD,CAAC,GAAGmvD,CAAC,CAACx8C,MAAF,CAASiyC,CAAT,CAAV;oBACA,MAAM/xC,KAAK,SAAgBrB,kFAAA,CAA2BxR,CAAC,CAAC6Y,KAA7B,EAAoCnH,IAApC,CAA3B;oBACA,IAAImC,IAAI,SAAerC,iFAAA,CAA0BslD,SAAS,CAAC,CAAD,CAAnC,EAAwCplD,IAAxC,CAAvB;oBACA,MAAMqlD,cAAc,GAAG/kD,6EAAA,CAAc6B,IAAd,EAAoBhB,KAApB,CAAvB;;oBACA,KAAK,IAAId,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+kD,SAAS,CAACz1D,MAA9B,EAAsC0Q,CAAC,EAAvC,EAA2C;sBACvC8B,IAAI,SAASrC,iFAAA,CAA0BslD,SAAS,CAAC/kD,CAAD,CAAnC,EAAwCL,IAAxC,CAAb;sBACA,MAAMulD,aAAa,GAAGjlD,6EAAA,CAAc6B,IAAd,EAAoBhB,KAApB,CAAtB;;sBACA,IAAIokD,aAAa,KAAKF,cAAtB,EAAsC;wBAClCr8C,MAAM,GAAG,IAAT;wBACA;sBACH;oBACJ;;oBACD,IAAIA,MAAJ,EAAY;sBACR;oBACH;kBACJ;;kBACD,IAAIA,MAAJ,EAAY;oBACR;kBACH;gBACJ;cACJ;;cACD,IAAIA,MAAJ,EAAY;gBACR;cACH;YACJ;UACJ;;UACD,IAAI,CAACA,MAAL,EAAa;YACT,KAAK,IAAIjS,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGouD,SAAS,CAACzgC,KAAV,CAAgB/0B,MAApC,EAA4CoH,CAAC,EAA7C,EAAiD;cAC7C,MAAM1E,CAAC,GAAG8yD,SAAS,CAACzgC,KAAV,CAAgB3tB,CAAhB,CAAV;;cACA,KAAK,IAAIwvC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGl0C,CAAC,CAAC0yB,MAAF,CAASp1B,MAA7B,EAAqC42C,CAAC,EAAtC,EAA0C;gBACtC,MAAMkX,CAAC,GAAGprD,CAAC,CAAC0yB,MAAF,CAASwhB,CAAT,CAAV;;gBACA,IAAIkX,CAAC,CAACx8C,MAAF,CAAStR,MAAT,GAAkB,CAAtB,EAAyB;kBACrB,KAAK,IAAIujD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuK,CAAC,CAACx8C,MAAF,CAAStR,MAA7B,EAAqCujD,CAAC,EAAtC,EAA0C;oBACtC,MAAM5kD,CAAC,GAAGmvD,CAAC,CAACx8C,MAAF,CAASiyC,CAAT,CAAV;oBACA,MAAM/xC,KAAK,SAAgBrB,kFAAA,CAA2BxR,CAAC,CAAC6Y,KAA7B,EAAoCnH,IAApC,CAA3B;oBACA,IAAImC,IAAI,SAAerC,iFAAA,CAA0BgB,KAAK,CAAC,CAAD,CAA/B,EAAoCd,IAApC,CAAvB;oBACA,MAAMqlD,cAAc,GAAG/kD,6EAAA,CAAc6B,IAAd,EAAoBhB,KAApB,CAAvB;;oBACA,KAAK,IAAId,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGS,KAAK,CAACnR,MAA1B,EAAkC0Q,CAAC,EAAnC,EAAuC;sBACnC8B,IAAI,SAASrC,iFAAA,CAA0BgB,KAAK,CAACT,CAAD,CAA/B,EAAoCL,IAApC,CAAb;sBACA,MAAMulD,aAAa,GAAGjlD,6EAAA,CAAc6B,IAAd,EAAoBhB,KAApB,CAAtB;;sBACA,IAAIokD,aAAa,KAAKF,cAAtB,EAAsC;wBAClCr8C,MAAM,GAAG,IAAT;wBACA;sBACH;oBACJ;;oBACD,IAAIA,MAAJ,EAAY;sBACR;oBACH;kBACJ;;kBACD,IAAIA,MAAJ,EAAY;oBACR;kBACH;gBACJ;cACJ;;cACD,IAAIA,MAAJ,EAAY;gBACR;cACH;YACJ;UACJ;QACJ;MACJ;;MAED,OAAOA,MAAP;IAlG6D;EAmGhE;;EAEuB,OAAX24C,WAAW,CAACP,OAAD,EAA2BoE,KAA3B,EAAiDC,KAAjD,EAAqE;IAAA;MAEzF,MAAM3lD,4FAAA,CAAqCshD,OAAO,CAAC57B,WAA7C,CAAN;MAEA,MAAMi8B,WAAW,GAAe,EAAhC;MAEA,MAAMiE,YAAY,GAAGtF,WAAW,CAACuF,eAAZ,CAA4BvE,OAAO,CAACjQ,iBAAR,KAA8BzJ,qEAA9B,GAAgD8d,KAAK,CAACplD,QAAtD,GAAiEqlD,KAAK,CAACrlD,QAAnG,CAArB;;MAEA,KAAK,IAAIrJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2uD,YAAY,CAAC/1D,MAAjC,EAAyCoH,CAAC,EAA1C,EAA8C;QAC1C,MAAM6uD,GAAG,GAAGF,YAAY,CAAC3uD,CAAD,CAAxB;QACA,MAAMurD,UAAU,GAAG,IAAIwC,kFAAJ,EAAnB;QACAxC,UAAU,CAACuD,iBAAX,GAA+BzE,OAAO,CAACyE,iBAAvC;QACAvD,UAAU,CAAChiD,IAAX,SAAwBR,iFAAA,CAA0B8lD,GAAG,CAACtlD,IAA9B,EAAoC8gD,OAAO,CAAC57B,WAA5C,CAAxB;QACA88B,UAAU,CAACnqD,EAAX,GAAgBqf,oDAAA,EAAhB;QACA8qC,UAAU,CAACkC,UAAX,GAAwBpD,OAAO,CAAC57B,WAAhC;QACA88B,UAAU,CAACwD,mBAAX,GAAiC1E,OAAO,CAAC2E,gBAAR,CAAyBD,mBAA1D;QACAxD,UAAU,CAAC0D,aAAX,GAA2B5E,OAAO,CAACjQ,iBAAnC;QAEA,MAAM8U,IAAI,GAAGpe,6FAAA,CAAiDuZ,OAAjD,CAAb;;QACA,KAAK,IAAI7a,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0f,IAAI,CAACt2D,MAAzB,EAAiC42C,CAAC,EAAlC,EAAsC;UAClC,MAAM2f,GAAG,GAAGD,IAAI,CAAC1f,CAAD,CAAhB;UACA,MAAM4f,EAAE,GAAG,IAAIzB,2FAAJ,EAAX;UACAyB,EAAE,CAACC,IAAH,GAAUF,GAAG,CAACE,IAAd;UACAD,EAAE,CAACriC,WAAH,GAAiBoiC,GAAG,CAACpiC,WAArB;UACAqiC,EAAE,CAAC3H,OAAH,GAAa0H,GAAG,CAAC1H,OAAjB;UACA2H,EAAE,CAACjlD,MAAH,GAAYglD,GAAG,CAAChlD,MAAhB;UACAilD,EAAE,CAACh/C,KAAH,SAAiBrH,kFAAA,CAA2BomD,GAAG,CAAC/+C,KAA/B,EAAsCi6C,OAAO,CAAC57B,WAA9C,CAAjB;;UACA,IAAI2gC,EAAE,CAACh/C,KAAP,EAAc;YACVg/C,EAAE,CAAChU,SAAH,GAAegU,EAAE,CAACh/C,KAAH,CAASjG,MAAxB;UACH;;UACDohD,UAAU,CAAC+D,eAAX,CAA2Bl4D,IAA3B,CAAgCg4D,EAAhC;QACH;;QAED,MAAM/F,WAAW,CAACkG,cAAZ,CAA2BlF,OAA3B,EAAoCoE,KAApC,EAA2CI,GAA3C,EAAgDtD,UAAhD,EAA4D5a,qEAA5D,CAAN;QACA,MAAM0Y,WAAW,CAACkG,cAAZ,CAA2BlF,OAA3B,EAAoCqE,KAApC,EAA2CG,GAA3C,EAAgDtD,UAAhD,EAA4D5a,qEAA5D,CAAN;;QAEA,IAAI0Z,OAAO,CAAC94B,MAAZ,EAAoB;UAChB84B,OAAO,CAAC94B,MAAR,CAAer4B,OAAf,CAAuBs2D,CAAC,IAAG;YACvB,MAAMrlC,OAAO,GAAG,IAAI6jC,sFAAJ,EAAhB;YACA7jC,OAAO,CAAClC,UAAR,GAAqB,IAArB;YACA,MAAMwnC,EAAE,GAAG,IAAIpL,kFAAJ,EAAX;YACAoL,EAAE,CAAC7J,WAAH,GAAiB4J,CAAC,CAAC3L,SAAnB;YACA4L,EAAE,CAAC5J,WAAH,GAAiB2J,CAAC,CAACpU,SAAnB;YACAqU,EAAE,CAAChI,OAAH,GAAa+H,CAAC,CAAC/H,OAAf;YACAgI,EAAE,CAACC,OAAH,GAAavlC,OAAb;YACAslC,EAAE,CAACxL,QAAH,GAAcuL,CAAC,CAACvL,QAAhB;YACAsH,UAAU,CAACvF,KAAX,CAAiB5uD,IAAjB,CAAsBq4D,EAAtB;UACH,CAVD;QAWH;;QAED/E,WAAW,CAACtzD,IAAZ,CAAiBm0D,UAAjB;MACH;;MAED,OAAOb,WAAP;IArDyF;EAsD5F;;EAC0B,OAAd6E,cAAc,CAAClF,OAAD,EAA2Bz8B,IAA3B,EAAgDihC,GAAhD,EAA0DtD,UAA1D,EAAgFrY,IAAhF,EAA8F;IAAA;MACrH,IAAItlB,IAAJ,EAAU;QACN,IAAIA,IAAI,CAACvkB,QAAL,CAAczQ,MAAd,GAAuB,CAA3B,EAA8B;UAC1B,MAAMywD,WAAW,CAACsG,WAAZ,CAAwBd,GAAG,CAAC/V,YAA5B,EAA0CyS,UAA1C,EAAsDlB,OAAO,CAAC57B,WAA9D,CAAN;UACA,MAAMmhC,OAAO,GAAG,IAAIlC,iFAAJ,EAAhB;UACAkC,OAAO,CAAC9hC,MAAR,GAAiBF,IAAI,CAACQ,QAAtB;UACAwhC,OAAO,CAAChuD,IAAR,GAAe+uC,sEAAf;UACAif,OAAO,CAACC,QAAR,GAAmBxF,OAAO,CAACwF,QAA3B;UACAD,OAAO,CAACE,WAAR,GAAsB,IAAtB;UACAF,OAAO,CAAC1xB,OAAR,GAAkB,IAAlB;UACAqtB,UAAU,CAAC99B,IAAX,CAAgBr2B,IAAhB,CAAqBw4D,OAArB;UACArE,UAAU,CAACN,iBAAX,CAA6BvhD,GAA7B,CAAiCinC,sEAAjC,EAAmD/iB,IAAI,CAACQ,QAAxD;QACH;;QACD,IAAIR,IAAI,CAACm8B,UAAL,GAAkB,CAAtB,EAAyB;UACrB,MAAMV,WAAW,CAAC0G,YAAZ,CAAyBniC,IAAzB,EAA+B29B,UAA/B,EAA2ClB,OAA3C,EAAoDnX,IAApD,CAAN;QACH;;QACDqY,UAAU,CAACN,iBAAX,CAA6BvhD,GAA7B,CAAiCwpC,IAAjC,EAAuCtlB,IAAI,CAACQ,QAA5C;MACH;IAjBoH;EAkBxH;;EAEwB,OAAZ2hC,YAAY,CAACniC,IAAD,EAAsB29B,UAAtB,EAA4ClB,OAA5C,EAAsEnX,IAAtE,EAAoF;IAAA;MACzG,IAAI/xC,KAAK,GAAG,KAAZ;MACA,MAAMyuD,OAAO,GAAG,IAAIlC,iFAAJ,EAAhB;MACAkC,OAAO,CAAC9hC,MAAR,GAAiBF,IAAI,CAACQ,QAAtB;MACAwhC,OAAO,CAAChuD,IAAR,GAAesxC,IAAf;MACA0c,OAAO,CAACC,QAAR,GAAmBxF,OAAO,CAACwF,QAA3B;MACAD,OAAO,CAACE,WAAR,GAAsB,KAAtB,CANyG,CAM5E;;MAC7B,IAAI5c,IAAI,KAAKvC,qEAAb,EAA8B;QAC1Bif,OAAO,CAAC1xB,OAAR,GAAkBmsB,OAAO,CAAC/8B,WAAR,CAAoB4Q,OAAtC;MACH,CAFD,MAEO,IAAIgV,IAAI,KAAKvC,qEAAb,EAA8B;QACjCif,OAAO,CAAC1xB,OAAR,GAAkBmsB,OAAO,CAAC98B,WAAR,CAAoB2Q,OAAtC;MACH;;MACD,IAAI9pB,KAAK,GAAG,CAAZ;;MACA,KAAK,IAAIpU,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4tB,IAAI,CAACI,MAAL,CAAYp1B,MAAhC,EAAwCoH,CAAC,EAAzC,EAA6C;QACzC,KAAK,IAAIwvC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG5hB,IAAI,CAACI,MAAL,CAAYhuB,CAAZ,EAAekK,MAAf,CAAsBtR,MAA1C,EAAkD42C,CAAC,EAAnD,EAAuD;UACnD,MAAMwH,SAAS,GAAGppB,IAAI,CAACI,MAAL,CAAYhuB,CAAZ,EAAekK,MAAf,CAAsBslC,CAAtB,CAAlB;UACA,MAAMplC,KAAK,SAAgBrB,kFAAA,CAA2BiuC,SAAS,CAAC5mC,KAArC,EAA4Ci6C,OAAO,CAAC57B,WAApD,CAA3B;;UACA,IAAIrkB,KAAJ,EAAW;YACP,IAAIb,6EAAA,CAAcgiD,UAAU,CAAChiD,IAAzB,EAA+Ba,KAA/B,CAAJ,EAA2C;cACvC,MAAM4lD,QAAQ,GAAG,IAAIpC,kFAAJ,EAAjB;cACAoC,QAAQ,CAACC,UAAT,GAAsB,CAAC,GAAGjZ,SAAS,CAACiZ,UAAd,CAAtB;cACAD,QAAQ,CAACE,KAAT,GAAiB97C,KAAK,EAAtB;cACA47C,QAAQ,CAAC5/C,KAAT,GAAiBhG,KAAjB;cACA4lD,QAAQ,CAAC5U,SAAT,GAAqBhxC,KAAK,CAACD,MAA3B;cACA6lD,QAAQ,CAACnM,SAAT,GAAqBz5C,KAAK,CAACD,MAAN,CAAaA,MAAlC;cACA6lD,QAAQ,CAAC5hC,QAAT,GAAoB4oB,SAAS,CAAC5oB,QAA9B;;cACA,IAAIi8B,OAAO,CAACvR,YAAR,CAAqBvgD,IAArB,CAA0B+Q,CAAC,IAAIA,CAAC,CAACuoC,OAAF,CAAUC,cAAV,IAC/BxoC,CAAC,CAACuoC,OAAF,CAAUC,cAAV,CAAyBC,WADM,IACSzoC,CAAC,CAACuoC,OAAF,CAAUC,cAAV,CAAyBI,WAAzB,KAAyC,CADjF,CAAJ,EACyF;gBACrF8d,QAAQ,CAACG,UAAT,GAAsBH,QAAQ,CAACE,KAA/B;cACH,CAHD,MAGO;gBACHF,QAAQ,CAACG,UAAT,GAAsBnwD,CAAtB;cACH;;cACD4vD,OAAO,CAAC1lD,MAAR,CAAe9S,IAAf,CAAoB44D,QAApB;cACA7uD,KAAK,GAAG,IAAR;YACH;UACJ,CAlBD,MAmBK;YACDu+B,kFAAA,CAAyBsX,SAAS,CAACj1C,OAAV,GAAoB,OAApB,GAA8Bi1C,SAAS,CAAC5mC,KAAxC,GAAgD,iBAAhD,GAAoE4mC,SAAS,CAACoG,WAA9E,GAA4F,iBAA5F,GAAgHpG,SAAS,CAACmG,YAA1H,GAAyI,iBAAlK,EAAqL,wBAArL;UACH;QACJ;MACJ;;MAED,IAAIh8C,KAAJ,EAAW;QACPoqD,UAAU,CAAC99B,IAAX,CAAgBr2B,IAAhB,CAAqBw4D,OAArB;MACH;;MAED,OAAOzuD,KAAP;IA9CyG;EA+C5G;;EAEuB,OAAXwuD,WAAW,CAACS,YAAD,EAA8B7E,UAA9B,EAAoDtiD,IAApD,EAA6D;IAAA;MACjF,KAAK,IAAIjJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGowD,YAAY,CAACx3D,MAAjC,EAAyCoH,CAAC,EAA1C,EAA8C;QAC1C,MAAMqwD,GAAG,GAAGD,YAAY,CAACpwD,CAAD,CAAxB;QACA,MAAMo2C,EAAE,GAAG,IAAIyX,oFAAJ,EAAX;QACAzX,EAAE,CAACka,SAAH,GAAeD,GAAG,CAACC,SAAnB;QACAla,EAAE,CAACma,kBAAH,SAA8BxnD,sFAAA,CAA+BsnD,GAAG,CAACE,kBAAnC,EAAuDtnD,IAAvD,CAA9B;QACAmtC,EAAE,CAACr0C,OAAH,GAAa05C,2FAAA,CAAgC4U,GAAG,CAACtuD,OAApC,CAAb;;QAEA,IAAIsuD,GAAG,CAACxe,OAAJ,CAAYO,oBAAhB,EAAsC;UAClC,IAAIie,GAAG,CAACxe,OAAJ,CAAYO,oBAAZ,CAAiCqe,MAArC,EAA6C;YACzCra,EAAE,CAAChE,oBAAH,GAA0B6b,6EAA1B;UACH,CAFD,MAEO,IAAIoC,GAAG,CAACxe,OAAJ,CAAYO,oBAAZ,CAAiCue,MAArC,EAA6C;YAChDva,EAAE,CAAChE,oBAAH,GAA0B6b,6EAA1B;UACH,CAFM,MAEA,IAAIoC,GAAG,CAACxe,OAAJ,CAAYO,oBAAZ,CAAiCye,MAArC,EAA6C;YAChDza,EAAE,CAAChE,oBAAH,GAA0B6b,6EAA1B;UACH;QACJ;;QAED,IAAIoC,GAAG,CAACxe,OAAJ,CAAYC,cAAZ,IAA8Bue,GAAG,CAACxe,OAAJ,CAAYC,cAAZ,CAA2BC,WAAzD,IAAwEse,GAAG,CAACxe,OAAJ,CAAYC,cAAZ,CAA2BI,WAA3B,KAA2C,CAAvH,EAA0H;UACtHkE,EAAE,CAACtE,cAAH,GAAoB,IAAIgc,mFAAJ,EAApB;UACA1X,EAAE,CAACtE,cAAH,CAAkB1hC,KAAlB,SAAgCrH,kFAAA,CAA2BsnD,GAAG,CAACxe,OAAJ,CAAYC,cAAZ,CAA2BC,WAAtD,EAAmE9oC,IAAnE,CAAhC;;UACA,IAAImtC,EAAE,CAACtE,cAAH,CAAkB1hC,KAAtB,EAA6B;YACzBgmC,EAAE,CAACtE,cAAH,CAAkBsJ,SAAlB,GAA8BhF,EAAE,CAACtE,cAAH,CAAkB1hC,KAAlB,CAAwBjG,MAAtD;UACH;;UACDisC,EAAE,CAACtE,cAAH,CAAkBif,OAAlB,GAA4BV,GAAG,CAACxe,OAAJ,CAAYC,cAAZ,CAA2BI,WAAvD;QACH;;QAED,IAAIme,GAAG,CAACxe,OAAJ,CAAY0J,yBAAZ,IAAyC8U,GAAG,CAACxe,OAAJ,CAAY0J,yBAAZ,CAAsCyV,WAAnF,EAAgG;UAC5F5a,EAAE,CAACmF,yBAAH,GAA+B,IAAIuS,mFAAJ,EAA/B;UACA1X,EAAE,CAACmF,yBAAH,CAA6BH,SAA7B,SACUryC,sFAAA,CAA+BsnD,GAAG,CAACxe,OAAJ,CAAY0J,yBAAZ,CAAsCyV,WAArE,EAAkF/nD,IAAlF,CADV;UAEAmtC,EAAE,CAACmF,yBAAH,CAA6BwV,OAA7B,GAAuCV,GAAG,CAACxe,OAAJ,CAAY0J,yBAAZ,CAAsC0V,OAA7E;QACH;;QAED,IAAIZ,GAAG,CAACxe,OAAJ,CAAY+G,kBAAhB,EAAoC;UAChCyX,GAAG,CAACxe,OAAJ,CAAY+G,kBAAZ,CAA+B1/C,OAA/B,CAAuCs2D,CAAC,IAAG;YACvC,IAAIA,CAAC,CAAC/H,OAAF,IAAc+H,CAAC,CAACvL,QAAF,IAAcuL,CAAC,CAACvL,QAAF,CAAWrrD,MAAX,GAAoB,CAApD,EAAwD;cACpD,MAAMuxB,OAAO,GAAG,IAAI6jC,sFAAJ,EAAhB;cACA7jC,OAAO,CAAClC,UAAR,GAAqB,IAArB;cACA,MAAMwnC,EAAE,GAAG,IAAIpL,kFAAJ,EAAX;cACAoL,EAAE,CAAC7J,WAAH,GAAiB4J,CAAC,CAAC3L,SAAnB;cACA4L,EAAE,CAAC5J,WAAH,GAAiB2J,CAAC,CAACpU,SAAnB;cACAqU,EAAE,CAAChI,OAAH,GAAa+H,CAAC,CAAC/H,OAAf;cACAgI,EAAE,CAACxL,QAAH,GAAcuL,CAAC,CAACvL,QAAhB;cACAwL,EAAE,CAACC,OAAH,GAAavlC,OAAb;cACAisB,EAAE,CAAC8a,cAAH,CAAkB95D,IAAlB,CAAuBq4D,EAAvB;YACH;UACJ,CAZD;QAaH;;QAED,IAAIY,GAAG,CAACxe,OAAJ,CAAY0G,kBAAZ,IAAkC8X,GAAG,CAACxe,OAAJ,CAAY0G,kBAAZ,CAA+BnoC,KAArE,EAA4E;UACxEgmC,EAAE,CAACmC,kBAAH,GAAwB,IAAIuV,mFAAJ,EAAxB;UACA1X,EAAE,CAACmC,kBAAH,CAAsBwY,OAAtB,GAAgCV,GAAG,CAACxe,OAAJ,CAAY0G,kBAAZ,CAA+BwY,OAA/D;UACA3a,EAAE,CAACmC,kBAAH,CAAsBnoC,KAAtB,SAAoCrH,kFAAA,CAA2BsnD,GAAG,CAACxe,OAAJ,CAAY0G,kBAAZ,CAA+BnoC,KAA1D,EAAiEnH,IAAjE,CAApC;;UACA,IAAImtC,EAAE,CAACmC,kBAAH,CAAsBnoC,KAA1B,EAAiC;YAC7BgmC,EAAE,CAACmC,kBAAH,CAAsB6C,SAAtB,GAAkChF,EAAE,CAACmC,kBAAH,CAAsBnoC,KAAtB,CAA4BjG,MAA9D;UACH;QACJ;;QAED,IAAI,OAAOkmD,GAAG,CAACjY,WAAX,KAA2B,QAA/B,EAAyC;UACrChC,EAAE,CAAC+a,cAAH,GAAoBd,GAAG,CAACjY,WAAxB;QACH;;QAEDhC,EAAE,CAACrnB,OAAH,SAAmBhmB,oFAAA,CAA6BsnD,GAAG,CAACthC,OAAjC,EAA0C9lB,IAA1C,CAAnB;QACAmtC,EAAE,CAACgb,cAAH,GAAoBf,GAAG,CAACe,cAAxB;QACAhb,EAAE,CAAChoB,QAAH,GAAciiC,GAAG,CAACjiC,QAAlB;QAEAm9B,UAAU,CAACliD,QAAX,CAAoBjS,IAApB,CAAyBg/C,EAAzB;MACH;IApEgF;EAqEpF;;EAEqB,OAAfwY,eAAe,CAACplD,QAAD,EAAwB;IAC1C,MAAMmlD,YAAY,GAAG,EAArB;IAEAnlD,QAAQ,CAACtQ,OAAT,CAAiBk9C,EAAE,IAAG;MAClB,IAAI,CAACA,EAAE,CAACxF,kBAAJ,IAA0BwF,EAAE,CAACrnB,OAA7B,IAAwCqnB,EAAE,CAAC7sC,IAA/C,EAAqD;QACjD,MAAM8nD,GAAG,GAAG1C,YAAY,CAACp2D,IAAb,CAAkBY,CAAC,IAAIA,CAAC,CAACoQ,IAAF,KAAW6sC,EAAE,CAAC7sC,IAArC,CAAZ;;QACA,IAAI,CAAC8nD,GAAL,EAAU;UACN,MAAMC,MAAM,GAAG;YACX/nD,IAAI,EAAE6sC,EAAE,CAAC7sC,IADE;YAEXuvC,YAAY,EAAE;UAFH,CAAf;UAIAwY,MAAM,CAACxY,YAAP,CAAoB1hD,IAApB,CAAyBg/C,EAAzB;UACAuY,YAAY,CAACv3D,IAAb,CAAkBk6D,MAAlB;QACH,CAPD,MAOO;UACHD,GAAG,CAACvY,YAAJ,CAAiB1hD,IAAjB,CAAsBg/C,EAAtB;QACH;MACJ;IACJ,CAdD;IAgBA,OAAOuY,YAAP;EACH;;EAEwB,OAAlB4C,kBAAkB,CAACC,WAAD,EAAY;IACjC,OAAOA,WAAW,CAAChG,KAAZ,CAAkBiG,YAAlB,KAAmC,CAAnC,IAAwCD,WAAW,CAAC/F,KAAZ,CAAkBgG,YAAlB,KAAmC,CAA3E,IAAgFD,WAAW,CAACnoD,QAAZ,CAAqBooD,YAArB,KAAsC,CAA7H;EACH;;EAE4B,OAAtBC,sBAAsB,CAACx5D,MAAD,EAASiB,CAAT,EAAY4hD,CAAZ,EAAezxC,CAAf,EAAgB;IACzC,MAAMqoD,MAAM,GAAGz5D,MAAM,CAACwzD,KAAP,CAAavyD,CAAb,CAAf;;IACA,IAAIw4D,MAAJ,EAAY;MACR,MAAMC,MAAM,GAAGD,MAAM,CAAC5W,CAAD,CAArB;;MACA,IAAI6W,MAAJ,EAAY;QACR,OAAOA,MAAM,CAACtoD,CAAD,CAAb;MACH;IACJ;EACJ;;EAE0B,OAApBuoD,oBAAoB,CAAC35D,MAAD,EAASiB,CAAT,EAAY4hD,CAAZ,EAAezxC,CAAf,EAAkBuE,IAAlB,EAAsB;IAC7C,IAAI8jD,MAAM,GAAGz5D,MAAM,CAACwzD,KAAP,CAAavyD,CAAb,CAAb;;IACA,IAAI,CAACw4D,MAAL,EAAa;MACTA,MAAM,GAAG,EAAT;MACAz5D,MAAM,CAACwzD,KAAP,CAAavyD,CAAb,IAAkBw4D,MAAlB;IACH;;IACD,IAAIC,MAAM,GAAGD,MAAM,CAAC5W,CAAD,CAAnB;;IACA,IAAI,CAAC6W,MAAL,EAAa;MACTA,MAAM,GAAG,EAAT;MACAD,MAAM,CAAC5W,CAAD,CAAN,GAAY6W,MAAZ;IACH;;IACD,MAAME,MAAM,GAAG9wD,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACW,SAAL,CAAekM,IAAf,CAAX,CAAf;IACA+jD,MAAM,CAACtoD,CAAD,CAAN,GAAYwoD,MAAZ;IACAA,MAAM,CAAC9kC,CAAP,GAAW7zB,CAAX;IACA24D,MAAM,CAAC7kC,CAAP,GAAW8tB,CAAX;IACA+W,MAAM,CAACC,CAAP,GAAWzoD,CAAX;EACH;;AA9VmB;;;;;;;;;;;;;;;;;;;;;;;;;;ACbkB;AAEqE;AACZ;AACpB;AAChB;IAOlD,iBAAiB,SAAjB,iBAAkB,SAAQ,oEAAc;;;QAOjD,YAAO,GAAG,IAAI,CAAC;QACf,oBAAe,GAAG,KAAK,CAAC;QACxB,oBAAe,GAAG,KAAK,CAAC;QACxB,eAAU,GAAG,KAAK,CAAC;QAGnB,cAAS,GAAG,EAAE,CAAC;IAqGnB,CAAC;IAlGG,YAAY;IAEZ,kBAAkB;QACd,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC;SAClE;QACD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;YAClD,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;gBACjF,IAAI,CAAC,EAAE;oBACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;oBAC5B,IAAI,CAAC,oBAAoB,EAAE,CAAC;iBAC/B;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,gBAAgB,CAAC,IAAI;QACjB,IAAI;YACA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;gBACtD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;aAClE;SACJ;QAAC,OAAO,EAAE,EAAE;YACT,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SACrB;IACL,CAAC;IAED,kBAAkB;QACd,IAAI,IAAI,CAAC;QACT,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM;YACvE,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;YACzE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;SAC7F;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAED,sBAAsB;QAClB,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YACvF,UAAU,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACxD;aAAM;YACH,UAAU,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAC1D;IACL,CAAC;IAED,oBAAoB;QAChB,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;YAClE,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,MAAM,GAAG,EAAE,CAAC;SACrD;QACD,KAAK,CAAC,oBAAoB,EAAE,CAAC;IACjC,CAAC;IAED,oBAAoB;QAChB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,UAAU,EAAE;YACZ,UAAU,CAAC,WAAW,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;SAC1C;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;SACvC;QACD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE;YACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,qGAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,iHAA+B,CAAC,IAAI,CAAC,CAAC;YACvH,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;gBACpE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;gBACnB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC9D,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE;oBACjC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC;oBAC9B,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;oBAC1B,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC;oBAClC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;iBAC3B;qBAAM;oBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;oBAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;iBAC1B;gBACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;aAChC;iBAAM;gBACH,IAAI,CAAC,cAAc,EAAE,CAAC;aACzB;SACJ;aAAM;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC7B;IACL,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;YACtD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;SAC9D;IACL,CAAC;;AAhHM,sBAAI,GAAG,mBAAmB,CAAC;AAC3B,yBAAO,GAAG;IACb,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAChD,EAAE,iBAAiB,EAAE,qFAAoB,EAAE,iBAAiB,EAAE,qFAAoB,EAAE;CAC3F,CAAC;AALO,iBAAiB;IAL7B,wDAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;QAC9B,0EAAwC;;KAE3C,CAAC;GACW,iBAAiB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZ9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAQa4oD,kBAAkB,SAAlBA,kBAAkB,SAASvpC,oEAAT,CAAuB;EAuPlD;EAEA;EACA3uB,YAAoBm4D,KAApB,EAAsDlmC,YAAtD,EAAwI5rB,IAAxI,EAA4I;IACxI,MAAM8xD,KAAN,EAAa9xD,IAAb;IADgB;IAAkC;IAAkF,iBAAI,CAtP5I;;IACA,mBAAc,KAAd;IACA,uBAAkB,KAAlB;IACA,uBAAkB,KAAlB;IAgBU,8BAAyB,IAAI3G,wDAAJ,EAAzB,CAmOkI,CAlO5I;;IACA,oBAAe,EAAf;IA+BU,kBAAa,IAAIA,wDAAJ,EAAb;IAyBA,4BAAuB,IAAIA,wDAAJ,EAAvB;IAuBA,+BAA0B,IAAIA,wDAAJ,EAA1B;IAaA,kBAAa,IAAIA,wDAAJ,EAAb;IAcA,qBAAgB,IAAIA,wDAAJ,EAAhB;IAqBA,8BAAyB,IAAIA,wDAAJ,EAAzB;IAqBA,+BAA0B,IAAIA,wDAAJ,EAA1B,CA6EkI,CA5E5I;;IAEA,kBAAa,IAAIiP,kDAAJ,CAAyB,IAAzB,CAAb;IAgEA,kBAAa,EAAb;IACA,oBAAe,EAAf;IACA,qBAAgB,EAAhB;IACA,kBAAa,KAAb;IAEA,qBAAgB,EAAhB;IAOI,KAAKonB,SAAL,CAAe34B,IAAf,CAAoB,qBAApB;IACA,KAAK24B,SAAL,CAAe34B,IAAf,CAAoB,sBAApB;IACA,KAAK24B,SAAL,CAAe34B,IAAf,CAAoB,cAApB;IACA,KAAK24B,SAAL,CAAe34B,IAAf,CAAoB,SAApB;IACA,KAAK24B,SAAL,CAAe34B,IAAf,CAAoB,OAApB;IACA,KAAK24B,SAAL,CAAe34B,IAAf,CAAoB,aAApB;EACH;;EApPmB,IAAhBg7D,gBAAgB;IAChB,OAAO,KAAKC,qBAAZ;EACH;;EACmB,IAAhBD,gBAAgB,CAACr3D,GAAD,EAAI;IACpB,KAAKs3D,qBAAL,GAA6Bt3D,GAA7B;IACA,KAAKu3D,oBAAL;IACA,KAAKC,sBAAL,CAA4B72D,IAA5B,CAAiC,KAAK22D,qBAAtC;EACH;;EASO,IAAJ93D,IAAI;IACJ,OAAO,KAAK8xB,SAAZ;EACH;;EACO,IAAJ9xB,IAAI,CAACQ,GAAD,EAAI;IACR,KAAKsxB,SAAL,GAAiBtxB,GAAjB;IACA,MAAMq3D,gBAAgB,GAAG,EAAzB;;IACA,IAAIr3D,GAAG,IAAIA,GAAG,CAACnC,MAAJ,GAAa,CAAxB,EAA2B;MACvBmC,GAAG,CAAC7B,OAAJ,CAAamH,IAAD,IAAS;QACjB,IAAI,CAACA,IAAI,CAAC8sB,YAAN,IAAsB9sB,IAAI,CAACgtB,eAA/B,EAAgD;UAC5C+kC,gBAAgB,CAAC/xD,IAAI,CAACe,EAAN,CAAhB,GAA4BsH,gEAAY,CAACs1B,gGAAD,EAAkB39B,IAAI,CAACgtB,eAAvB,CAAxC;UACA+kC,gBAAgB,CAAC/xD,IAAI,CAACe,EAAN,CAAhB,CAA0BW,OAA1B,GAAoC1B,IAAI,CAAC0B,OAAzC;;UACA,IAAI,CAAC,KAAKywD,YAAL,CAAkBnyD,IAAI,CAACe,EAAvB,CAAL,EAAiC;YAC7B,KAAKoxD,YAAL,CAAkBnyD,IAAI,CAACe,EAAvB,IAA6B;cACzB4rB,CAAC,EAAE,EADsB;cAEzBC,CAAC,EAAE;YAFsB,CAA7B;UAIH;;UACD,KAAKG,QAAL,CAAcglC,gBAAgB,CAAC/xD,IAAI,CAACe,EAAN,CAAhB,CAA0BksB,WAAxC,EAAqDjtB,IAArD,EAA2D,KAAKmyD,YAAL,CAAkBnyD,IAAI,CAACe,EAAvB,EAA2B4rB,CAAtF;UACA,KAAKI,QAAL,CAAcglC,gBAAgB,CAAC/xD,IAAI,CAACe,EAAN,CAAhB,CAA0BmsB,WAAxC,EAAqDltB,IAArD,EAA2D,KAAKmyD,YAAL,CAAkBnyD,IAAI,CAACe,EAAvB,EAA2B6rB,CAAtF;QACH;MACJ,CAbD;IAcH;;IACD,KAAKmlC,gBAAL,GAAwBA,gBAAxB;IACA,KAAK9lC,UAAL,CAAgB5wB,IAAhB,CAAqB,KAAK2wB,SAA1B;EACH;;EAUiB,IAAdomC,cAAc;IACd,IAAI,KAAK57D,aAAT,EAAwB;MACpB,OAAO,KAAKA,aAAL,CAAmB47D,cAA1B;IACH,CAFD,MAEO;MACH,OAAO,KAAKC,mBAAZ;IACH;EACJ;;EACiB,IAAdD,cAAc,CAAC13D,GAAD,EAAI;IAClB,IAAI,KAAKlE,aAAT,EAAwB;MACpB,KAAKA,aAAL,CAAmB47D,cAAnB,GAAoC13D,GAApC;MACA,KAAK43D,oBAAL,CAA0Bj3D,IAA1B,CAA+B,KAAK7E,aAAL,CAAmB47D,cAAlD;IACH,CAHD,MAGO;MACH,KAAKC,mBAAL,GAA2B33D,GAA3B;MACA,KAAK43D,oBAAL,CAA0Bj3D,IAA1B,CAA+B,KAAKg3D,mBAApC;IACH;EACJ;;EAQoB,IAAjBE,iBAAiB;IACjB,IAAI,KAAK/7D,aAAT,EAAwB;MACpB,OAAO,KAAKA,aAAL,CAAmB+7D,iBAA1B;IACH,CAFD,MAEO;MACH,OAAO,KAAKC,sBAAZ;IACH;EACJ;;EACoB,IAAjBD,iBAAiB,CAAC73D,GAAD,EAAI;IACrB,IAAI,KAAKlE,aAAT,EAAwB;MACpB,KAAKA,aAAL,CAAmB+7D,iBAAnB,GAAuC73D,GAAvC;MACA,KAAK+3D,uBAAL,CAA6Bp3D,IAA7B,CAAkC,KAAK7E,aAAL,CAAmB+7D,iBAArD;IACH,CAHD,MAGO;MACH,KAAKC,sBAAL,GAA8B93D,GAA9B;MACA,KAAK+3D,uBAAL,CAA6Bp3D,IAA7B,CAAkC,KAAKm3D,sBAAvC;IACH;EACJ;;EAQO,IAAJxnC,IAAI;IACJ,OAAO,KAAK0nC,SAAZ;EACH;;EACO,IAAJ1nC,IAAI,CAACtwB,GAAD,EAAI;IACR,KAAKg4D,SAAL,GAAiBh4D,GAAjB;IACA,KAAKi4D,UAAL,CAAgBt3D,IAAhB,CAAqB,KAAKq3D,SAA1B;EACH;;EAOU,IAAP3nC,OAAO;IACP,OAAO,KAAK6nC,YAAZ;EACH;;EACU,IAAP7nC,OAAO,CAACrwB,GAAD,EAAI;IACX,KAAKk4D,YAAL,GAAoBl4D,GAApB;IACA,KAAKm4D,aAAL;IACA,KAAKC,aAAL,CAAmBz3D,IAAnB,CAAwB,KAAKu3D,YAA7B;EACH;;EAKmB,IAAhBG,gBAAgB;IAChB,IAAI,KAAKlpC,kBAAT,EAA6B;MACzB,OAAO,KAAKA,kBAAL,CAAwBkpC,gBAA/B;IACH,CAFD,MAEO;MACH,OAAO,KAAKC,qBAAZ;IACH;EACJ;;EACmB,IAAhBD,gBAAgB,CAACr4D,GAAD,EAAI;IACpB,IAAI,KAAKmvB,kBAAT,EAA6B;MACzB,KAAKA,kBAAL,CAAwBkpC,gBAAxB,GAA2Cr4D,GAA3C;MACA,KAAKu4D,uBAAL,CAA6B53D,IAA7B,CAAkC,KAAKwuB,kBAAL,CAAwBkpC,gBAA1D;IACH,CAHD,MAGO;MACH,KAAKC,qBAAL,GAA6Bt4D,GAA7B;MACA,KAAKw4D,sBAAL,CAA4B73D,IAA5B,CAAiC,KAAK23D,qBAAtC;IACH;;IACD,KAAKH,aAAL;EACH;;EAKoB,IAAjBM,iBAAiB;IACjB,IAAI,KAAKtpC,kBAAT,EAA6B;MACzB,OAAO,KAAKA,kBAAL,CAAwBspC,iBAA/B;IACH,CAFD,MAEO;MACH,OAAO,KAAKC,sBAAZ;IACH;EACJ;;EACoB,IAAjBD,iBAAiB,CAACz4D,GAAD,EAAI;IACrB,IAAI,KAAKmvB,kBAAT,EAA6B;MACzB,KAAKA,kBAAL,CAAwBspC,iBAAxB,GAA4Cz4D,GAA5C;MACA,KAAKu4D,uBAAL,CAA6B53D,IAA7B,CAAkC,KAAKwuB,kBAAL,CAAwBspC,iBAA1D;IACH,CAHD,MAGO;MACH,KAAKC,sBAAL,GAA8B14D,GAA9B;MACA,KAAKu4D,uBAAL,CAA6B53D,IAA7B,CAAkC,KAAK+3D,sBAAvC;IACH;;IACD,KAAKP,aAAL;EACH;;EAKO,IAAJQ,IAAI;IACJ,IAAIzhD,MAAM,GAAG,IAAb;;IACA,IAAI,KAAKiY,kBAAL,IAA2B,KAAKypC,aAAhC,IAAiDryD,KAAK,CAACC,OAAN,CAAc,KAAKoyD,aAAnB,CAAjD,IAAsF,KAAKA,aAAL,CAAmB/6D,MAAnB,IAA6B,CAAvH,EAA0H;MACtH,IAAI,KAAKsxB,kBAAL,CAAwB0pC,gBAAxB,IAA4C,KAAK1pC,kBAAL,CAAwB0pC,gBAAxB,CAAyC,KAAKC,aAAL,CAAmBntD,IAA5D,CAA5C,IACA,KAAKwjB,kBAAL,CAAwB0pC,gBAAxB,CAAyC,KAAKC,aAAL,CAAmBntD,IAA5D,EAAkE,KAAKitD,aAAL,CAAmB,CAAnB,EAAsBG,QAAxF,CADA,IAEA,KAAK5pC,kBAAL,CAAwB0pC,gBAAxB,CAAyC,KAAKC,aAAL,CAAmBntD,IAA5D,EAAkE,KAAKitD,aAAL,CAAmB,CAAnB,EAAsBG,QAAxF,EAAkG,KAAKH,aAAL,CAAmB,CAAnB,EAAsBI,UAAxH,CAFJ,EAEyI;QACrI9hD,MAAM,GAAGjR,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACW,SAAL,CAAe,KAAKuoB,kBAAL,CAAwB0pC,gBAAxB,CAAyC,KAAKC,aAAL,CAAmBntD,IAA5D,EAAkE,KAAKitD,aAAL,CAAmB,CAAnB,EAAsBG,QAAxF,EAAkG,KAAKH,aAAL,CAAmB,CAAnB,EAAsBI,UAAxH,CAAf,CAAX,CAAT;;QACA,IAAI9hD,MAAM,CAAC+hD,YAAP,IAAuB/hD,MAAM,CAACgiD,SAAP,CAAiBC,gBAA5C,EAA8D;UAC1D,IAAItmC,IAAI,GAAG,KAAKumC,eAAL,CAAqBliD,MAAM,CAACgiD,SAAP,CAAiBjnC,CAAtC,CAAX;;UACA,IAAIY,IAAJ,EAAU;YACN,IAAIxjB,KAAK,GAAG,KAAKgqD,gBAAL,CAAsBxmC,IAAtB,CAAZ;;YACA,IAAIxjB,KAAJ,EAAW;cACP6H,MAAM,CAACoiD,KAAP,GAAeC,QAAQ,CAAC1mC,IAAI,CAACE,MAAN,CAAvB;cACA7b,MAAM,CAACsiD,MAAP,GAAgBnqD,KAAK,CAACmkB,OAAtB;cACAtc,MAAM,CAACuiD,OAAP,GAAiBpqD,KAAK,CAACqqD,QAAvB;;cACA,IAAI7mC,IAAI,CAAC8mC,SAAL,IAAkB,IAAtB,EAA4B;gBACxBziD,MAAM,CAAC8c,OAAP,GAAiBnB,IAAI,CAAC8mC,SAAtB;cACH;YACJ;UACJ;;UAGD9mC,IAAI,GAAG,KAAKumC,eAAL,CAAqBliD,MAAM,CAACgiD,SAAP,CAAiBhnC,CAAtC,CAAP;;UACA,IAAIW,IAAJ,EAAU;YACN,IAAIxjB,KAAK,GAAG,KAAKgqD,gBAAL,CAAsBxmC,IAAtB,CAAZ;;YACA,IAAIxjB,KAAJ,EAAW;cACP6H,MAAM,CAAC0iD,KAAP,GAAeL,QAAQ,CAAC1mC,IAAI,CAACE,MAAN,CAAvB;cACA7b,MAAM,CAAC2iD,MAAP,GAAgBxqD,KAAK,CAACmkB,OAAtB;cACAtc,MAAM,CAAC4iD,OAAP,GAAiBzqD,KAAK,CAACqqD,QAAvB;YACH;UACJ;;UAGD,IAAI7mC,IAAI,CAAC8mC,SAAL,IAAkB,IAAtB,EAA4B;YACxBziD,MAAM,CAAC8c,OAAP,GAAiBnB,IAAI,CAAC8mC,SAAtB;UACH;QAEJ;MACJ;IACJ;;IACD,OAAOziD,MAAP;EACH;;EACDkiD,eAAe,CAAC1mC,IAAD,EAAK;IAChB,IAAIq6B,KAAK,GAAGxqD,MAAM,CAACC,IAAP,CAAYkwB,IAAZ,CAAZ;;IACA,KAAK,IAAIztB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8nD,KAAK,CAAClvD,MAA1B,EAAkCoH,CAAC,EAAnC,EAAuC;MACnC,IAAI4tB,IAAI,GAAGH,IAAI,CAACq6B,KAAK,CAAC9nD,CAAD,CAAN,CAAf;;MACA,IAAI4tB,IAAI,CAACt0B,QAAL,IAAiB,IAArB,EAA2B;QACvB,OAAOs0B,IAAP;MACH;IACJ;;IACD,OAAO,IAAP;EACH;;EACDwmC,gBAAgB,CAACU,IAAD,EAAK;IACjB,IAAI5a,MAAM,GAAG58C,MAAM,CAACC,IAAP,CAAYu3D,IAAI,CAAC5qD,MAAjB,CAAb;;IACA,KAAK,IAAIlK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGk6C,MAAM,CAACthD,MAA3B,EAAmCoH,CAAC,EAApC,EAAwC;MACpC,IAAIoK,KAAK,GAAG0qD,IAAI,CAAC5qD,MAAL,CAAYgwC,MAAM,CAACl6C,CAAD,CAAlB,CAAZ;;MACA,IAAIoK,KAAK,CAACqqD,QAAN,IAAkB,IAAtB,EAA4B;QACxB,OAAOrqD,KAAP;MACH;IACJ;;IACD,OAAO,IAAP;EACH;;EAsBD2qD,gBAAgB,CAACl8D,OAAD,EAAQ;IACpB,KAAKm8D,SAAL,GAAiBn8D,OAAjB;EACH;;EAEDq6D,aAAa,IAEZ;;EAEDn9B,kBAAkB;IACd,KAAKk/B,WAAL,GAAmB,KAAnB;;IACA,IAAI,KAAKp+D,aAAL,IAAsB,KAAKA,aAAL,CAAmBq+D,OAAzC,IAAoD,KAAK19D,MAAzD,IAAmE,KAAKA,MAAL,CAAYszC,gBAAnF,EAAqG;MACjG,IAAIpH,IAAI,GAAG,EAAX;MACA,KAAK7sC,aAAL,CAAmBq+D,OAAnB,CAA2Bh8D,OAA3B,CAAoCi8D,CAAD,IAAM;QACrC,MAAMjkB,EAAE,GAAG,KAAK15C,MAAL,CAAYszC,gBAAZ,CAA6BvyC,IAA7B,CAAmCC,KAAD,IAAU;UACnD,OAAO28D,CAAC,KAAK38D,KAAK,CAAC4I,EAAnB;QACH,CAFU,CAAX;;QAGA,IAAI8vC,EAAJ,EAAQ;UACJxN,IAAI,CAACtsC,IAAL,CAAU85C,EAAV;QACH;MACJ,CAPD;MAQA,KAAK32C,IAAL,GAAYmpC,IAAZ;IACH;EACJ;;EAED1N,sBAAsB;IAClB,KAAKi/B,WAAL,GAAmB,KAAnB;IACA3yC,UAAU,CAAC,MAAK;MAAG,KAAKgwC,oBAAL;IAA8B,CAAvC,EAAyC,EAAzC,CAAV;EACH;;EAEDxoC,kBAAkB;IACd,IAAI,KAAKsrC,WAAL,IAAoB,KAAKA,WAAL,CAAiBpuC,WAAzC,EAAsD;MAClD,KAAK7vB,aAAL,CAAmB,iBAAnB,IAAwC,KAAKi+D,WAAL,CAAiBpuC,WAAjB,CAA6B1vB,SAA7B,CAAwC6B,CAAD,IAAM;QACjF,IAAIA,CAAJ,EAAO;UACH,KAAKk8D,eAAL,GAAuB,IAAvB;UACA,KAAK/C,oBAAL;QACH;MACJ,CALuC,CAAxC;IAMH;EACJ;;EAEDA,oBAAoB;IAChB,IAAI,KAAKpoC,kBAAL,CAAwBorC,MAAxB,IAAkC,KAAKprC,kBAAL,CAAwBorC,MAAxB,CAA+B18D,MAA/B,GAAwC,CAA9E,EAAiF;MAC7E,KAAKi7D,aAAL,GAAqB,KAAK3pC,kBAAL,CAAwBorC,MAAxB,CAA+B,CAA/B,CAArB;IACH;;IACD,MAAMC,OAAO,GAAG,KAAKp+D,aAAL,CAAmB,aAAnB,CAAhB;;IACA,IAAIo+D,OAAJ,EAAa;MACTA,OAAO,CAACn8D,WAAR;MACA,OAAO,KAAKjC,aAAL,CAAmB,aAAnB,CAAP;IACH;;IACD,MAAMq+D,MAAM,GAAG,KAAKr+D,aAAL,CAAmB,SAAnB,CAAf;;IACA,IAAIq+D,MAAJ,EAAY;MACRA,MAAM,CAACp8D,WAAP;MACA,OAAO,KAAKjC,aAAL,CAAmB,SAAnB,CAAP;IACH;;IACD,MAAMs+D,OAAO,GAAG,KAAKt+D,aAAL,CAAmB,MAAnB,CAAhB;;IACA,IAAIs+D,OAAJ,EAAa;MACTA,OAAO,CAACr8D,WAAR;MACA,OAAO,KAAKjC,aAAL,CAAmB,MAAnB,CAAP;IACH;;IACD,MAAMu+D,QAAQ,GAAG,KAAKv+D,aAAL,CAAmB,YAAnB,CAAjB;;IACA,IAAIu+D,QAAJ,EAAc;MACVA,QAAQ,CAACt8D,WAAT;MACA,OAAO,KAAKjC,aAAL,CAAmB,YAAnB,CAAP;IACH;;IAED,MAAMw+D,MAAM,GAAG,IAAI3D,iGAAJ,CAA4B,IAA5B,CAAf;IACA,KAAK4D,MAAL,GAAcD,MAAd;IACA,KAAKC,MAAL,CAAYC,WAAZ,GAA0B,KAAKhC,aAA/B;IACA,KAAK18D,aAAL,CAAmB,aAAnB,IAAoC,KAAKy+D,MAAL,CAAY5uC,WAAZ,CAAwB1vB,SAAxB,CAAmC+gC,GAAD,IAAQ;MAC1E,KAAK48B,WAAL,GAAmB58B,GAAnB;IACH,CAFmC,CAApC;IAGA,KAAKlhC,aAAL,CAAmB,SAAnB,IAAgCw+D,MAAM,CAACvqC,OAAP,CAAe9zB,SAAf,CAA0B+gC,GAAD,IAAQ;MAC7D,IAAIy9B,IAAI,GAAGz9B,GAAX;;MACA,IAAI,KAAKnO,kBAAL,CAAwBkB,OAAxB,IAAmC,KAAKlB,kBAAL,CAAwBorC,MAA/D,EAAuE;QACnE,KAAKprC,kBAAL,CAAwBorC,MAAxB,CAA+Bp8D,OAA/B,CAAwC68D,KAAD,IAAU;UAC7C,IAAID,IAAI,CAACC,KAAK,CAACrvD,IAAP,CAAJ,IAAoB,KAAKwjB,kBAAL,CAAwBkB,OAAxB,CAAgC2qC,KAAK,CAACrvD,IAAtC,CAAxB,EAAqE;YACjEovD,IAAI,CAACC,KAAK,CAACrvD,IAAP,CAAJ,CAAiBxN,OAAjB,CAA0B88D,GAAD,IAAQ;cAC7B,IAAIA,GAAG,CAAC59D,KAAR,EAAe;gBACX,IAAI69D,SAAS,GAAG,KAAK/rC,kBAAL,CAAwBkB,OAAxB,CAAgC2qC,KAAK,CAACrvD,IAAtC,EAA4CnO,IAA5C,CAAkDC,KAAD,IAAU;kBAAG,OAAOw9D,GAAG,CAACtvD,IAAJ,IAAYlO,KAAK,CAACkO,IAAlB,IAA0BsvD,GAAG,CAAC59D,KAAJ,CAAUuO,KAAV,KAAoBnO,KAAK,CAAC09D,eAA3D;gBAA4E,CAA1I,CAAhB;;gBACA,IAAID,SAAJ,EAAe;kBACX,IAAIA,SAAS,CAACC,eAAd,EAA+B;oBAC3BF,GAAG,CAAC59D,KAAJ,CAAUuO,KAAV,GAAkBsvD,SAAS,CAACC,eAA5B;kBACH;gBACJ;cACJ;YACJ,CATD;UAUH;QACJ,CAbD;MAcH;;MACD,KAAKhsC,kBAAL,CAAwBkB,OAAxB,GAAkC0qC,IAAlC;MACA,KAAK1qC,OAAL,GAAe0qC,IAAf;IACH,CApB+B,CAAhC;IAqBA,KAAK3+D,aAAL,CAAmB,MAAnB,IAA6Bw+D,MAAM,CAACp7D,IAAP,CAAYjD,SAAZ,CAAuB+gC,GAAD,IAAQ;MACvD,KAAKhN,IAAL,GAAYgN,GAAZ;;MACA,IAAIA,GAAJ,EAAS;QACL,IAAI,KAAK28B,SAAL,IAAkB,KAAKA,SAAL,CAAemB,uBAArC,EAA8D;UAC1D,KAAKnB,SAAL,CAAemB,uBAAf,CAAuCj/D,IAAvC,CAA4CmhC,GAA5C;QACH;;QACD,KAAK85B,KAAL,CAAWx2D,aAAX;MACH;IACJ,CAR4B,CAA7B;IASA,KAAKxE,aAAL,CAAmB,YAAnB,IAAmC,KAAKy+D,MAAL,CAAYQ,UAAZ,CAAuB9+D,SAAvB,CAAkC+gC,GAAD,IAAQ;MACxE,KAAK+9B,UAAL,GAAkB/9B,GAAlB;IACH,CAFkC,CAAnC;IAGA,KAAKu9B,MAAL,CAAYz2D,OAAZ;EACH;;EAEDk3D,oBAAoB;IAChBvvD,MAAM,CAACwb,UAAP,CAAkB,MAAK;MACnB,KAAKyT,kBAAL;IACH,CAFD,EAEG,GAFH;EAGH;;EAEDtzB,eAAe;IACX,KAAKqe,eAAL,GAAuB,IAAvB;IACA,KAAKqxC,KAAL,CAAWx2D,aAAX;IACA,MAAM8G,eAAN;EACH,CAzXiD,CA0XlD;EACA;;;EACA6zD,OAAO;IACH,KAAKvlC,YAAL,CAAkB,SAAlB,EAA6B,KAAKuG,UAAlC;IACA,KAAKvG,YAAL,CAAkB,OAAlB,EAA2B,IAA3B;EACH;;EACDwlC,aAAa;IACT,KAAKxlC,YAAL,CAAkB,aAAlB,EAAiC,IAAjC;EACH;;EACDylC,mBAAmB,CAACr+D,IAAD,EAAK;IACpB,KAAKs+D,YAAL,GAAoBt+D,IAApB;IACA,KAAK44B,YAAL,CAAkB,qBAAlB,EAAyC54B,IAAzC;EACH;;EACDu+D,oBAAoB,CAACv+D,IAAD,EAAK;IACrB,IAAIA,IAAI,IAAIA,IAAI,CAACS,MAAL,GAAc,CAA1B,EAA6B;MACzBT,IAAI,CAACe,OAAL,CAAcy9D,IAAD,IAAS;QAClBA,IAAI,CAACC,KAAL,GAAa,KAAK/C,aAAL,CAAmBntD,IAAhC;MACH,CAFD;IAGH;;IACD,KAAKitD,aAAL,GAAqBx7D,IAArB;IACA,KAAK0+D,UAAL,CAAgB3/D,IAAhB,CAAqBiB,IAArB;IACA,KAAK44B,YAAL,CAAkB,sBAAlB,EAA0C54B,IAA1C;EACH;;EACD2+D,oBAAoB,CAAC3+D,IAAD,EAAK;IACrB,KAAKy9D,MAAL,CAAYmB,QAAZ,CAAqB5+D,IAArB;EACH;;EAED+P,YAAY,CAAC/P,IAAD,EAAK;IACb,KAAK6+D,UAAL,GAAkB,IAAlB;IACA7+D,IAAI,CAACy+D,KAAL,GAAa,KAAK/C,aAAL,CAAmBntD,IAAhC;IACA,KAAKuwD,aAAL,CAAmB7/D,IAAnB,CAAwBe,IAAxB;IACA,KAAK44B,YAAL,CAAkB,cAAlB,EAAkC54B,IAAlC;EACH;;EACD++D,WAAW,CAAC77D,IAAD,EAAK;IACZ,KAAKu6D,MAAL,CAAYz2D,OAAZ;EACH;;EACDg4D,aAAa,CAACh8D,MAAD,EAAO;IAChB,KAAKy6D,MAAL,CAAYz2D,OAAZ;EACH;;EACD0xB,cAAc;IACV,IAAI,KAAK+kC,MAAT,EAAiB;MACb,KAAKA,MAAL,CAAYz2D,OAAZ;IACH;EACJ;;EACDi4D,mBAAmB;IACf,IAAI,KAAKxB,MAAT,EAAiB;MACb,KAAKA,MAAL,CAAYwB,mBAAZ;IACH;EACJ;;EACDC,aAAa;IACT,IAAI,KAAKzB,MAAT,EAAiB;MACb,KAAKA,MAAL,CAAYyB,aAAZ;IACH;EACJ;;EACDC,WAAW,CAACn/D,IAAD,EAAK;IACZ,KAAK07D,aAAL,GAAqB,IAArB;IACAvxC,UAAU,CAAC,MAAK;MACZ,KAAKuxC,aAAL,GAAqB17D,IAArB;MACA,KAAKy9D,MAAL,CAAYC,WAAZ,GAA0B,KAAKhC,aAA/B;MACA,KAAKuD,mBAAL;IACH,CAJS,EAIP,GAJO,CAAV;EAKH;;EACDG,aAAa,CAACC,MAAD,EAAO;IAChB,IAAIA,MAAM,CAACtB,eAAP,IAA0B,IAA9B,EAAoC;MAChCsB,MAAM,CAACp/D,KAAP,CAAauO,KAAb,GAAqB6wD,MAAM,CAACtB,eAA5B;IACH;EACJ;;EACDnX,QAAQ,CAACrhD,KAAD,EAAqB;IACzBA,KAAK,CAACumB,eAAN;;IACA,IAAIvmB,KAAK,CAACF,GAAN,CAAUohB,WAAV,MAA2B,QAA/B,EAAyC;MACrC,IAAI,KAAK+0C,aAAL,IAAsB,KAAKA,aAAL,CAAmB/6D,MAAnB,GAA4B,CAAlD,IAAuD,KAAKyyB,IAAhE,EAAsE;QAClE,IAAIosC,IAAI,GAAG,KAAX;QACA,KAAK9D,aAAL,CAAmBz6D,OAAnB,CAA4By9D,IAAD,IAAS;UAChC,IAAI,KAAKtrC,IAAL,CAAUsrC,IAAI,CAACC,KAAf,KAAyB,KAAKvrC,IAAL,CAAUsrC,IAAI,CAACC,KAAf,EAAsBD,IAAI,CAAC7C,QAA3B,CAAzB,IAAiE,KAAKzoC,IAAL,CAAUsrC,IAAI,CAACC,KAAf,EAAsBD,IAAI,CAAC7C,QAA3B,EAAqCgC,IAAtG,IAA8G,KAAKzqC,IAAL,CAAUsrC,IAAI,CAACC,KAAf,EAAsBD,IAAI,CAAC7C,QAA3B,EAAqCgC,IAArC,CAA0Ca,IAAI,CAAC5C,UAA/C,CAA9G,IAA4K,KAAK1oC,IAAL,CAAUsrC,IAAI,CAACC,KAAf,EAAsBD,IAAI,CAAC7C,QAA3B,EAAqCgC,IAArC,CAA0Ca,IAAI,CAAC5C,UAA/C,EAA2D0D,IAA3O,EAAiP;YAC7OA,IAAI,GAAG,IAAP;UACH;QACJ,CAJD;;QAKA,IAAI,CAACA,IAAL,EAAW;UACP,KAAK9D,aAAL,CAAmBz6D,OAAnB,CAA4By9D,IAAD,IAAS;YAChC,IAAI,KAAKzsC,kBAAL,IAA2B,KAAKA,kBAAL,CAAwB0pC,gBAAnD,IAAuE,KAAK1pC,kBAAL,CAAwB0pC,gBAAxB,CAAyC+C,IAAI,CAACC,KAA9C,CAAvE,IAA+H,KAAK1sC,kBAAL,CAAwB0pC,gBAAxB,CAAyC+C,IAAI,CAACC,KAA9C,EAAqDD,IAAI,CAAC7C,QAA1D,CAAnI,EAAwM;cACpM,OAAO,KAAK5pC,kBAAL,CAAwB0pC,gBAAxB,CAAyC+C,IAAI,CAACC,KAA9C,EAAqDD,IAAI,CAAC7C,QAA1D,EAAoE6C,IAAI,CAAC5C,UAAzE,CAAP;YACH;;YACD,IAAI,KAAK1oC,IAAL,CAAUsrC,IAAI,CAACC,KAAf,KAAyB,KAAKvrC,IAAL,CAAUsrC,IAAI,CAACC,KAAf,EAAsBD,IAAI,CAAC7C,QAA3B,CAAzB,IAAiE,KAAKzoC,IAAL,CAAUsrC,IAAI,CAACC,KAAf,EAAsBD,IAAI,CAAC7C,QAA3B,EAAqCgC,IAAtG,IAA8G,KAAKzqC,IAAL,CAAUsrC,IAAI,CAACC,KAAf,EAAsBD,IAAI,CAAC7C,QAA3B,EAAqCgC,IAArC,CAA0Ca,IAAI,CAAC5C,UAA/C,CAAlH,EAA8K;cAC1K,KAAK1oC,IAAL,CAAUsrC,IAAI,CAACC,KAAf,EAAsBD,IAAI,CAAC7C,QAA3B,EAAqCzzD,IAArC,CAA0Cs2D,IAAI,CAAC5C,UAA/C,IAA6D,EAA7D;cACA,KAAK1oC,IAAL,CAAUsrC,IAAI,CAACC,KAAf,EAAsBD,IAAI,CAAC7C,QAA3B,EAAqC4D,QAArC,CAA8Cf,IAAI,CAAC5C,UAAnD,IAAiE,IAAjE;YACH;UACJ,CARD;QASH;;QACD,IAAI,KAAK6B,MAAT,EAAiB;UACb,KAAKA,MAAL,CAAYwB,mBAAZ;QACH;MACJ;IACJ;EACJ,CAvdiD,CAwdlD;;;EAEAO,sBAAsB;IAClB,IAAI,KAAK/B,MAAT,EAAiB;MACb,IAAI,KAAK/+D,aAAL,CAAmBo7D,UAAnB,KAAkCA,+EAAtC,EAA4D;QACxD,OAAO,KAAK2D,MAAL,CAAYgC,sCAAZ,CAAmD,KAAKnB,YAAxD,CAAP;MACH,CAFD,MAEO;QACH,OAAO,KAAKb,MAAL,CAAYiC,uCAAZ,CAAoD,KAAKlE,aAAzD,CAAP;MACH;IACJ;;IACD,OAAO,EAAP;EACH;;EAEDmE,IAAI;IACA,KAAKlC,MAAL,CAAYmC,WAAZ,CAAwB,KAAKd,aAA7B;IACA,KAAKD,UAAL,GAAkB,KAAlB;IACA,KAAKC,aAAL,GAAqB,EAArB;EACH;;EAED7pC,QAAQ,CAACzT,IAAD,EAAOpf,IAAP,EAAamzB,aAAb,EAA0B;IAAA;;IAC9B,KAAK,IAAI1tB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2Z,IAAI,CAACgU,KAAL,CAAW/0B,MAA/B,EAAuCoH,CAAC,EAAxC,EAA4C;MACxC,IAAI4tB,IAAI,GAAG;QACP7rB,OAAO,EAAE,UAAU/B,CADZ;QAEPoB,EAAE,EAAEpB,CAAC,GAAG,EAFD;QAGPkK,MAAM,EAAE,EAHD;QAIPb,QAAQ,EAAE;MAJH,CAAX;;MAMA,IAAI,CAACqkB,aAAa,CAACE,IAAI,CAACxsB,EAAN,CAAlB,EAA6B;QACzBuY,IAAI,CAACgU,KAAL,CAAW3tB,CAAX,EAAcguB,MAAd,CAAqB90B,OAArB,CAA8B+0B,KAAD,IAAU;UACnCA,KAAK,CAAC/jB,MAAN,CAAahR,OAAb;YAAA,kKAAqB,WAAOkR,KAAP,EAAgB;cACjC,IAAI8jB,GAAG,GAAG;gBACNnsB,OAAO,EAAEqI,KAAK,CAACrI,OAAN,CAAcosB,YADjB;gBAENxnB,KAAK,EAAEyD,KAAK,CAACgkB,QAFP;gBAGNhtB,EAAE,EAAEgJ,KAAK,CAACgG,KAHJ;gBAINie,OAAO,EAAE;cAJH,CAAV;;cAMA,IAAI,CAACT,IAAI,CAAC1jB,MAAL,CAAYgkB,GAAG,CAACvnB,KAAhB,CAAL,EAA6B;gBACzB,MAAM6nB,SAAS,SAASzlB,kFAAA,CAA2BqB,KAAK,CAACgG,KAAjC,EAAwC7V,IAAI,CAACk0B,WAA7C,CAAxB;;gBACA,IAAID,SAAJ,EAAe;kBACX,KAAI,CAACvC,YAAL,CAAkByC,UAAlB,CAA6BF,SAAS,CAACrkB,MAAV,CAAiBA,MAAjB,CAAwBwkB,YAArD,EAAmEvkB,KAAK,CAACgG,KAAzE,EAAgF,IAAhF,EAAsF,IAAtF,EAA4F9Y,SAA5F,CAAsGs3B,OAAO,IAAG;oBAC5G,IAAIA,OAAJ,EAAa;sBACTA,OAAO,CAAC11B,OAAR,CAAgBoQ,CAAC,IAAG;wBAChB4kB,GAAG,CAACG,OAAJ,CAAY/kB,CAAC,CAAClI,EAAd,IAAoBkI,CAApB;sBACH,CAFD;oBAGH;kBACJ,CAND;gBAOH;;gBACDskB,IAAI,CAAC1jB,MAAL,CAAYgkB,GAAG,CAACvnB,KAAhB,IAAyBunB,GAAzB;cACH;YACJ,CApBD;;YAAA;cAAA;YAAA;UAAA;QAqBH,CAtBD;QAuBAvU,IAAI,CAACgU,KAAL,CAAW3tB,CAAX,EAAcqJ,QAAd,CAAuBnQ,OAAvB,CAAgC41B,OAAD,IAAY;UACvClB,IAAI,CAACvkB,QAAL,CAAcylB,OAAO,CAACV,QAAtB,IAAkCU,OAAlC;QACH,CAFD;QAGApB,aAAa,CAACE,IAAI,CAACxsB,EAAN,CAAb,GAAyBwsB,IAAzB;MACH;IAEJ;EACJ;;AAlhBiD;AAE3CskC,0BAAY,sBAAZ;AACAA,6BAAU;EAAEtwD,IAAI,EAAE;AAAR,CAAV;;;;;;;;;UAuPqFumB,kDAAMA;IAAAnhB,OAAClQ,kFAAD;;;;;;UA7OjG6C,iDAAKA;;;UAULC,kDAAMA;;;UAMND,iDAAKA;;;UA2BLC,kDAAMA;;;UAOND,iDAAKA;;;UAkBLC,kDAAMA;;;UAKND,iDAAKA;;;UAkBLC,kDAAMA;;;UAKND,iDAAKA;;;UAQLC,kDAAMA;;;UAKND,iDAAKA;;;UASLC,kDAAMA;;;UAGND,iDAAKA;;;UAkBLC,kDAAMA;;;UAGND,iDAAKA;;;UAkBLC,kDAAMA;;;AA7KEs4D,kBAAkB,uDAN9Bv7D,yDAAS,CAAC;EACP4C,QAAQ,EAAE,iBADH;EAEPC,UAAAA,mEAFO;EAIPgP,eAAe,EAAEf,2EAJV;;AAAA,CAAD,CAMqB,GAAlByqD,kBAAkB,CAAlB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjB8G;AAC1E;AACO;AACsC;AAEiB;AACZ;AACvC;AACO;AACsD;AACxD;AACF;IAQlD,eAAe,SAAf,eAAgB,SAAQ,qEAAc;IAkG/C,YAAY;IAEZ,mBAAmB;IACnB,YAAoB,KAAwB,EAA+C,IAAI;QAC3F,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QADH,UAAK,GAAL,KAAK,CAAmB;QAA+C,SAAI,GAAJ,IAAI;QAjG/F,oBAAoB;QACpB,gBAAW,GAAG,KAAK,CAAC;QACpB,oBAAe,GAAG,KAAK,CAAC;QACxB,oBAAe,GAAG,KAAK,CAAC;QACxB,oBAAe,GAAG,KAAK,CAAC;QACxB,eAAU,GAAG,KAAK,CAAC;QAmBT,0BAAqB,GAAG,IAAI,wDAAY,EAAO;QAiB/C,eAAU,GAAG,IAAI,wDAAY,EAAO;QAqB9C,mBAAmB;QACnB,mBAAc,GAAG,KAAK,CAAC;QASb,oBAAe,GAAG,IAAI,wDAAY,EAAO;QAiBnD,eAAU,GAAG,EAAE,CAAC;QAChB,iBAAY,GAAG,EAAE,CAAC;QAClB,kBAAa,GAAG,EAAE,CAAC;QAEnB,UAAK,GAAG,KAAK,CAAC;QA6Nd,oBAAe,GAAG,KAAK,CAAC;QAvNpB,8CAA8C;QAC9C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,oEAAmB,KAAK,KAAK,CAAC;QAC3C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,qFAAoC,CAAC,CAAC,GAAG,EAAE,EAAE;YACrE,IAAI,CAAC,KAAK,GAAG,GAAG,KAAK,KAAK,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;QAjGG,eAAe;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IACD,IAAI,eAAe,CAAC,GAAG;QACnB,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YAC9B,IAAI,CAAC,oBAAoB,GAAG,gEAAY,CAAC,gGAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;SACnF;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC/D,CAAC;QAQG,IAAI;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,CAAC,GAAG;QACR,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,GAAG,IAAI,GAAG,CAAC,eAAe,EAAE;YAC5B,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;SAC9C;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAGD,YAAY;IACZ,YAAY;IAEZ,2BAA2B;IAC3B,IAAI,iBAAiB;QACjB,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;YAClE,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,KAAK,KAAK,IAAI,CAAC;SAC/D;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,YAAY;IAEZ,IAAI,UAAU;QACV,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa;YAChE,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,eAAe,KAAK,IAAI,EAAE;YAChE,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,oBAAoB,CAAC;SACrE;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;QAKG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;IAED,YAAY;IAEZ,IAAI,UAAU;QACV,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;YAClE,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,2BAA2B,KAAK,IAAI,CAAC;SACrF;aAAM;YACH,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IACD,IAAI,WAAW;QACX,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;YAClE,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,WAAW,IAAI,IAAI,CAAC;SACpE;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAuBD,kBAAkB;QACd,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;YAC/F,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;gBACrC,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;oBACpC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;oBACf,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,sBAAsB;QAClB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,UAAU,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,kBAAkB;QACd,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC;SAClE;QACD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;YAClD,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;gBACjF,IAAI,CAAC,EAAE;oBACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;oBAC5B,IAAI,CAAC,oBAAoB,EAAE,CAAC;iBAC/B;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,oBAAoB;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;SAC5C;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,KAAK,EAAE;YACP,KAAK,CAAC,WAAW,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;SAC1C;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,MAAM,EAAE;YACR,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;SACxC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,QAAQ,EAAE;YACV,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;SAC3C;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,QAAQ,EAAE;YACV,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;SAC1C;QACD,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE;YACjE,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;gBAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,qGAAyB,CAAC,IAAI,CAAC,CAAC;aACrD;iBAAM;gBACH,IAAI,CAAC,eAAe,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;gBAC9D,IAAI,CAAC,MAAM,GAAG,IAAI,iHAA+B,CAAC,IAAI,CAAC,CAAC;aAC3D;YACD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;gBAClE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;gBACnB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;gBACtE,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;gBACxE,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;YAC1B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC1E,IAAI,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE;oBACzB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;oBACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;iBAC9B;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;gBACtE,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;oBACvB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;iBAC3B;qBAAM;oBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;iBAC1B;YACL,CAAC,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;aAChC;iBAAM;gBACH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;aACzB;SACJ;IACL,CAAC;IAED,oBAAoB;QAChB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC9B,CAAC,EAAE,GAAG,CAAC,CAAC;IACZ,CAAC;IAED,eAAe;QACX,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,eAAe,EAAE,CAAC;IAC5B,CAAC;IACD,YAAY;IACZ,iBAAiB;IACjB,OAAO;QACH,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,aAAa;QACT,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,mBAAmB,CAAC,IAAI;QACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IACD,oBAAoB,CAAC,IAAI;QACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IACD,YAAY,CAAC,IAAI;QACb,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IACD,WAAW,CAAC,IAAI;QACZ,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IACD,aAAa,CAAC,MAAM;QAChB,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IACD,cAAc;QACV,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;SACzB;IACL,CAAC;IACD,gBAAgB,CAAC,GAAG;QAChB,IAAI,GAAG,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;YAClG,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;gBACxC,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,IAAI,gGAAmB,EAAE,CAAC;aACrE;YACD,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,cAAc,EAAE;gBACvD,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,cAAc,GAAG,IAAI,sGAAyB,EAAE,CAAC;aAC1F;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,cAAc,CAAC;YACzE,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,EAAE,sBAAsB;gBAC5D,WAAW,CAAC,wBAAwB,GAAG,EAAE,CAAC;gBAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBAClB,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;wBAClC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;wBAC7D,OAAO,KAAK,CAAC;qBAChB;oBACD,OAAO,IAAI,CAAC;gBAChB,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,MAAM,GAAG,KAAK,CAAC;gBACnB,MAAM,MAAM,GAAG,wIAAsD,CAAC,GAAG,CAAC,CAAC;gBAC3E,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,KAAK,qEAAe,EAAE;oBAC9F,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;wBAC7B,WAAW,CAAC,cAAc,GAAG,EAAE,CAAC;qBACnC;oBACD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACf,MAAM,EAAE,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC;wBAChC,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;4BACxB,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC;4BACtD,MAAM,GAAG,IAAI,CAAC;yBACjB;oBACL,CAAC,CAAC,CAAC;iBACN;qBAAM;oBACH,WAAW,CAAC,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;oBAC3D,MAAM,GAAG,IAAI,CAAC;iBACjB;gBACD,IAAI,MAAM,EAAE;oBACR,MAAM,MAAM,GAAG,EAAE,CAAC;oBAClB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACrB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;4BACnC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yBAClB;oBACL,CAAC,CAAC,CAAC;oBACH,IAAI,QAAQ,GAAG,GAAG,CAAC;oBACnB,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,cAAc,EAAE;wBACtD,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,mBAAmB,CAAC;qBACxE;oBACD,kIAAgD,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;iBACnF;aACJ;SACJ;IACL,CAAC;IACD,YAAY;IAEZ,sBAAsB;QAClB,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,KAAK,+EAAoB,EAAE;gBACxD,OAAO,IAAI,CAAC,MAAM,CAAC,sCAAsC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aAChF;iBAAM;gBACH,OAAO,IAAI,CAAC,MAAM,CAAC,uCAAuC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aAClF;SACJ;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAGD,gBAAgB;QACZ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IACD,eAAe;QACX,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;;AApUM,oBAAI,GAAQ,mBAAoB;AAChC,uBAAO,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;;;4CAkGA,kDAAM,SAAC,kFAA4B;;;8BAtFjF,iDAAK;oCAaL,kDAAM;mBAKN,iDAAK;yBAYL,kDAAM;wBAuBN,iDAAK;8BAQL,kDAAM;;AA5EE,eAAe;IAN3B,yDAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,0EAAwC;QAExC,eAAe,EAAE,2EAA+B;;KACnD,CAAC;GACW,eAAe;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnB2C;AACZ;AAC+D;AAC3C;AACrB;AACK;IAMlD,WAAW,SAAX,WAAW;IAuCpB;QAtCA,mBAAc,GAAG,IAAI,cAAc,EAAE,CAAC;QAe5B,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QACtD,YAAY;QAEZ,qBAAqB;QACrB,qBAAgB,GAAG,KAAK,CAAC;QAWf,sBAAiB,GAAG,IAAI,uDAAY,EAAO;QACrD,YAAY;QAEZ,iBAAY,GAAG,EAAE,CAAC;QAClB,cAAS,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3E,YAAO,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAClE,kBAAa,GAAG,IAAI,uDAAY,EAAU;QAGhD,6EAAwB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACnC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE;oBACH,aAAa,EAAE,CAAC;iBACnB;aACJ,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;QAzCG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/E,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;QASG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;IAqBD,eAAe,CAAC,IAAY;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC/C,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,qFAAoB,CAAC,CAAC,CAAC,sFAAqB,CAAC;YAClH,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;SACxC;IACL,CAAC;IAED,oBAAoB;QAChB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC/C,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE;gBACnC,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE;oBAClC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;oBAC5C,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;iBACzC;aACJ;iBAAM;gBACH,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE;oBACnC,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,0EAAgB,EAAE,CAAC;iBAC7D;gBACD,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;gBAC3C,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;aACzC;SACJ;IACL,CAAC;IAED,yBAAyB;QACrB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC/C,IAAI,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE;gBACxC,IAAI,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE;oBACvC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;oBACjD,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;iBAC9C;aACJ;iBAAM;gBACH,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE;oBACxC,IAAI,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,0EAAgB,EAAE,CAAC;iBAClE;gBACD,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC;gBAChD,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;aAC9C;SACJ;IACL,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC/C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE;gBACnC,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,wEAAc,EAAE,CAAC;aAC3D;YACD,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC;YACnF,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;SACpC;IACL,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC/C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE;gBACnC,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,wEAAc,EAAE,CAAC;aAC3D;YACD,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC;YACnF,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;SACpC;IACL,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC;YACzE,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE;oBACnC,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,wEAAc,EAAE,CAAC;iBAC3D;gBACD,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC3E,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;aAChC;SACJ;IACL,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC;YAC7E,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE;oBACnC,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,wEAAc,EAAE,CAAC;iBAC3D;gBACD,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC/E,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;aAClC;SACJ;IACL,CAAC;IAED,cAAc,CAAC,KAAY;QACvB,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC;YACtC,IAAI,KAAK,EAAE;gBACP,MAAM,GAAG,GAAG,yEAAkB,CAAC,KAAK,CAAC,CAAC;gBACtC,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG;oBAC7B,IAAI,EAAE,GAAG;iBACZ,CAAC;gBACF,IAAI,IAAI,CAAC,iBAAiB,EAAE;oBACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE;wBACnC,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,wEAAc,EAAE,CAAC;qBAC3D;oBACD,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,KAAK,GAAG,GAAG,CAAC;oBAC7C,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;iBACrC;aACJ;iBAAM,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE;gBACnE,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC;gBAC9C,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;aACrC;SACJ;IACL,CAAC;IAED,SAAS;QACL,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,wEAAc,EAAE,CAAC;YACrD,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC;YACrC,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC;YACtC,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxB,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC;gBACxC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;aACrC;SACJ;IACL,CAAC;IAED,YAAY;QACR,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC/C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;gBAClC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,kEAAQ,EAAE,CAAC;aACpD;YACD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YACrE,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;SACpC;IACL,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC/C,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;gBAC7B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC;aAC1C;iBAAM;gBACH,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,kEAAQ,EAAE,CAAC;gBACjD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;aACxE;YACD,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;SACpC;IACL,CAAC;IAED,YAAY;QACR,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC/C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;gBAClC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,kEAAQ,EAAE,CAAC;aACpD;YACD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YACrE,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;SACpC;IACL,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC/C,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;gBAC7B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC;aAC1C;iBAAM;gBACH,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,kEAAQ,EAAE,CAAC;gBACjD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;aACxE;YACD,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;SACpC;IACL,CAAC;;;;2BAnNA,gDAAK;iCAUL,iDAAM;0BAMN,gDAAK;gCASL,iDAAM;4BAMN,iDAAM;;AArCE,WAAW;IAJvB,wDAAS,CAAC;QACP,QAAQ,EAAE,kCAAkC;QAC5C,qEAAmC;KACtC,CAAC;GACW,WAAW;AAAA;AA4NjB,MAAM,cAAc;;QACvB,aAAQ,GAAG,KAAK,CAAC;QACjB,kBAAa,GAAG,KAAK,CAAC;QACtB,uBAAkB,GAAG,KAAK,CAAC;QAC3B,cAAS,GAAG,IAAI,wEAAc,EAAE,CAAC;QAGjC,aAAQ,GAAG,CAAC,CAAC;QACb,YAAO,GAAG,IAAI,CAAC;QACf,aAAQ,GAAG,CAAC,CAAC;QACb,YAAO,GAAG,IAAI,CAAC;IA4BnB,CAAC;IA1BG,MAAM,CAAC,iBAAiB,CAAC,YAAoC;QACzD,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACpC,IAAI,YAAY,EAAE;YACd,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC,YAAY,KAAK,sFAAqB,CAAC;YACtE,MAAM,CAAC,aAAa,GAAG,CAAC,YAAY,CAAC,SAAS,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC,CAAC;YACrF,MAAM,CAAC,kBAAkB,GAAG,CAAC,YAAY,CAAC,cAAc,IAAI,YAAY,CAAC,cAAc,CAAC,KAAK,KAAK,CAAC,CAAC;YACpG,IAAI,YAAY,CAAC,SAAS,EAAE;gBACxB,MAAM,CAAC,SAAS,GAAG,8DAAW,CAAC,wEAAc,EAAE,4DAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;gBAClF,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE;oBAC9B,MAAM,CAAC,SAAS,GAAG,oEAAa,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBAC/D,MAAM,CAAC,UAAU,GAAG;wBAChB,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,KAAK;qBACrC,CAAC;iBACL;aACJ;YACD,IAAI,YAAY,CAAC,QAAQ,EAAE;gBACvB,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;gBACvB,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;aACjD;YACD,IAAI,YAAY,CAAC,QAAQ,EAAE;gBACvB,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;gBACvB,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;aACjD;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5QoD;AACiC;AACzC;AAC0C;AACjC;AACI;AAIhB;AACoC;AACI;AACS;AACV;AACpB;AACE;AACT;AACO;AACJ;IAOhD,wBAAwB,SAAxB,wBAAwB;IAqFjC,YAAoB,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;QAnFxC,kBAAa,GAAG,EAAE,CAAC;QAsDT,uBAAkB,GAAG,IAAI,wDAAY,EAAO;QACtD,YAAY;QAEZ,uBAAkB,GAAkB,kFAAwB,EAAE,CAAC;QAE/D,uBAAkB,GAAG,EAAE,CAAC;QACxB,mBAAc,GAAG,EAAE,CAAC;QACpB,gBAAW,GAAG,EAAE,CAAC;QACjB,gBAAW,GAAG,EAAE,CAAC;QACjB,gCAA2B,GAAG,EAAE,CAAC;QAGjC,qBAAgB,GAAG,KAAK,CAAC;QAEzB,kBAAa,GAAG,EAAE,CAAC;QAgBf,MAAM,EAAE,GAAG,EAAE,CAAC;QACd,CAAC,8EAAmB,EAAE,6EAAkB,EAAE,gFAAqB,EAAE,gFAAqB,EAAE,+EAAoB;YACxG,qFAA0B,EAAE,+EAAoB,EAAE,8EAAmB,EAAE,8EAAmB,EAAE,6EAAkB;YAC9G,iFAAsB,EAAE,qFAA0B,EAAE,0EAAe,EAAE,0EAAe,EAAE,8EAAmB;YACzG,8EAAmB,EAAE,4EAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAChD,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oEAAS,CAAC,oEAAS,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,oEAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QACP,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,8EAA4B,CAAC,iFAAkB,CAAC,CAAC;QACpE,IAAI,CAAC,qBAAqB,GAAG,8EAA4B,CAAC,6EAAc,CAAC,CAAC;IAC9E,CAAC;IA3FD,IAAI,cAAc;QACd,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAC3D,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC;SAClD;QACD,OAAO,6FAAyB,CAAC;IACrC,CAAC;IACD,IAAI,cAAc,CAAC,GAAwB;QACvC,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;gBACjC,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,IAAI,wEAAc,EAAE,CAAC;aACzD;YACD,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC;SACjD;IACL,CAAC;IAED,IAAI,aAAa;QACb,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,cAAc,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,aAAa,IAAI,QAAQ,EAAE;YAC9I,OAAO,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,aAAa,CAAC;SAC/D;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IACD,IAAI,aAAa,CAAC,GAAW;QACzB,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE;YACnE,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,aAAa,GAAG,GAAG,CAAC;SAC9D;IACL,CAAC;IACD,IAAI,aAAa;QACb,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,cAAc,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,aAAa,IAAI,QAAQ,EAAE;YAC9I,OAAO,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,aAAa,CAAC;SAC/D;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IACD,IAAI,aAAa,CAAC,GAAW;QACzB,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE;YACnE,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,aAAa,GAAG,GAAG,CAAC;SAC9D;IACL,CAAC;QAMG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;IAoBO,MAAM,CAAC,aAAa,CAAC,GAAmB,EAAE,IAAqC;QACnF,IAAI,GAAG,IAAI,IAAI,EAAE;YACb,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACb,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC5B,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE;oBAClD,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;iBACtB;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAeD,QAAQ;QACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,2FAAoC,CAAC,CAAC,IAAI,EAAE,EAAE;YAClE,IAAI,IAAI,CAAC,8BAA8B,IAAI,IAAI,EAAE;gBAC7C,IAAI,CAAC,8BAA8B,CAAC,WAAW,EAAE,CAAC;gBAClD,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC;aAC9C;YACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE;gBAC3C,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACnG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvB,CAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,6FAAsC,CAAC,CAAC,MAAM,EAAE,EAAE;YACtE,IAAI,CAAC,MAAM,GAAG,oFAAgC,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC1C,IAAI,CAAC,EAAE;gBACH,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;aAC1B;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW;QACP,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,gCAAgC;QAC5B,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE;YAChE,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;SAC1E;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC;QACT,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;YACtF,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YAC9C,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SACnF;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,aAAa;QACT,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACxC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBACxB,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBACjF,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;wBAChD,MAAM,GAAG,GAAG;4BACR,OAAO,EAAE,MAAM,CAAC,OAAO;4BACvB,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE;yBACvB,CAAC;wBACF,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc;4BACjF,MAAM,CAAC,IAAI,KAAK,cAAc,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE;4BACtG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BAClB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;yBACrB;6BAAM,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE;4BACxC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACnB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;yBACrB;6BAAM,IAAI,MAAM,CAAC,IAAI,KAAK,iBAAiB,EAAE;4BAC1C,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACnB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;yBACrB;oBACL,CAAC,CAAC,CAAC;iBACN;aACJ;iBAAM;gBACH,IAAI,KAAK,GAAG,KAAK,CAAC;gBAClB,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,EAAE;oBACtF,IAAI,SAAS,GAAG,EAAE,CAAC;oBACnB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,EAAE;wBACxE,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACxE,IAAI,IAAI,EAAE;4BACN,SAAS,GAAG,IAAI,CAAC;yBACpB;qBACJ;oBACD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBACvD,MAAM,QAAQ,GAAG,EAAE,CAAC;wBACpB,IAAI,IAAI,GAAG,IAAI,CAAC;wBAChB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;4BACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gCACjB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oCACjC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wCACjB,MAAM,GAAG,GAAG,gEAAY,CAAC,oFAAS,EAAE,CAAC,CAAC,CAAC;wCACvC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;wCAC9B,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC;oCAC7B,CAAC,CAAC,CAAC;oCACH,OAAO,IAAI,CAAC;iCACf;gCACD,OAAO,KAAK,CAAC;4BACjB,CAAC,CAAC,CAAC;yBACN;wBACD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;4BAC3C,KAAK,GAAG,IAAI,CAAC;4BACb,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACtB,MAAM,EAAE,GAAG,gEAAY,CAAC,wFAAW,EAAE,CAAC,CAAC,CAAC;gCACxC,8CAA8C;gCAC9C,OAAO,CAAC,IAAI,CAAC;oCACT,OAAO,EAAE,EAAE,CAAC,QAAQ,EAAE;oCACtB,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ;iCACzB,CAAC,CAAC;gCACH,MAAM,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC;gCACvC,YAAY,CAAC,IAAI,CAAC;oCACd,OAAO,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;oCAC9C,GAAG,EAAE,KAAK;oCACV,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI;iCACtC,CAAC,CAAC;4BACP,CAAC,CAAC,CAAC;yBACN;6BAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;4BAC5B,MAAM,KAAK,GAAG,IAAI,GAAG,GAAG,CAAC;4BACzB,YAAY,CAAC,IAAI,CAAC;gCACd,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;gCAClC,GAAG,EAAE,KAAK;gCACV,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI;6BACtC,CAAC,CAAC;yBACN;oBACL,CAAC,CAAC,CAAC;iBACN;gBACD,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,EAAE;oBAChG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBACvD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;4BAC3C,KAAK,GAAG,IAAI,CAAC;4BACb,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACtB,MAAM,EAAE,GAAG,gEAAY,CAAC,wFAAW,EAAE,CAAC,CAAC,CAAC;gCACxC,8CAA8C;gCAC9C,OAAO,CAAC,IAAI,CAAC;oCACT,OAAO,EAAE,EAAE,CAAC,QAAQ,EAAE;oCACtB,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ;iCACzB,CAAC,CAAC;4BACP,CAAC,CAAC,CAAC;yBACN;oBACL,CAAC,CAAC,CAAC;iBACN;aACJ;SACJ;QACD,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;QAC5B,IAAI,CAAC,2BAA2B,GAAG,YAAY,CAAC;QAChD,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,SAAS;QACL,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;gBAChC,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,EAAE,CAAC;aACtC;YACD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;gBAC9B,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC;aACpC;YACD,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;gBACjC,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,gEAAY,CAAC,uEAAa,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;aAClG;iBAAM;gBACH,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,kFAAwB,EAAE,CAAC;aAChE;YACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;SAC7D;aAAM;YACH,IAAI,CAAC,kBAAkB,GAAG,kFAAwB,EAAE,CAAC;SACxD;QACD,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;YACpC,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,sEAAY,EAAE,CAAC;SAC1D;QACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;YACnC,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjD,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,gFAAsB,EAAE,CAAC,CAAC;aACxE;SACJ;aAAM;YACH,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,CAAC,IAAI,gFAAsB,EAAE,EAAE,IAAI,gFAAsB,EAAE,CAAC,CAAC;SACpG;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,kBAAkB,CAAC,IAAI;QACnB,IAAI,IAAI,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,EAAE;YAC7C,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,IAAI,CAAC;gBACT,IAAI,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,EAAE;oBAC9C,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAClE,IAAI,CAAC,IAAI,EAAE;wBACP,IAAI,GAAG,EAAE,CAAC;wBACV,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;qBACrE;iBACJ;qBAAM;oBACH,IAAI,GAAG,EAAE,CAAC;oBACV,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,GAAG,EAAE,CAAC;oBAClD,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI;iBACpE;gBACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;aACpC;iBAAM;gBACH,IAAI,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,EAAE;oBAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxE,IAAI,IAAI,EAAE;wBACN,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACtB,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;qBACpC;iBACJ;aACJ;SACJ;IACL,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;YACzD,QAAQ,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;gBACvC,KAAK,oFAAyB;oBAC1B,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE;wBAC7C,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,GAAG,IAAI,iFAAuB,EAAE,CAAC;qBAC9E;oBACD,IAAI,UAAU,EAAE;wBACZ,wBAAwB,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;qBACxG;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;wBAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACzC,wBAAwB,CAAC,aAAa,CAAC,GAAG,EAAE;gCACxC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;gCACjD,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;gCACzD,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;6BAC3D,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;qBACN;oBACD,MAAM;gBACV,KAAK,8EAAmB,CAAC;gBACzB,KAAK,wEAAa,CAAC;gBACnB,KAAK,6EAAkB,CAAC;gBACxB,KAAK,gFAAqB,CAAC;gBAC3B,KAAK,yEAAc,CAAC;gBACpB,KAAK,8EAAmB,CAAC;gBACzB,KAAK,iFAAsB;oBACvB,IAAI,UAAU,EAAE;wBACZ,wBAAwB,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;qBAC/G;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC3B,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;wBAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACzC,wBAAwB,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;wBACrG,CAAC,CAAC,CAAC;qBACN;oBACD,MAAM;gBACV,KAAK,8EAAmB;oBACpB,IAAI,UAAU,EAAE;wBACZ,wBAAwB,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;qBACxG;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;wBAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACzC,wBAAwB,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;wBACrG,CAAC,CAAC,CAAC;qBACN;oBACD,MAAM;gBACV,KAAK,8EAAmB,CAAC;gBACzB,KAAK,0EAAe;oBAChB,IAAI,UAAU,EAAE;wBACZ,wBAAwB,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;qBAC/G;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;wBAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACzC,wBAAwB,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;wBACrG,CAAC,CAAC,CAAC;qBACN;oBACD,MAAM;gBACV,KAAK,4EAAiB;oBAClB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE;wBAC1C,IAAI,CAAC,kBAAkB,CAAC,eAAe,GAAG,IAAI,8EAAoB,EAAE,CAAC;qBACxE;oBACD,IAAI,UAAU,EAAE;wBACZ,wBAAwB,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;qBAC/G;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;wBAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACzC,wBAAwB,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;wBACrG,CAAC,CAAC,CAAC;qBACN;oBACD,MAAM;oBACN,MAAM;gBACV,KAAK,+EAAoB;oBACrB,IAAI,UAAU,EAAE;wBACZ,wBAAwB,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;qBAC/G;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC3B,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;wBAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACzC,IAAI,GAAG,CAAC,IAAI,KAAK,mFAAuB,EAAE;gCACtC,wBAAwB,CAAC,aAAa,CAAC,GAAG,EAAE;oCACxC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;oCAC9C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;oCAC9C,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;oCAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;iCACjD,CAAC,CAAC;6BACN;iCAAM;gCACH,wBAAwB,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;6BACpG;wBACL,CAAC,CAAC,CAAC;qBACN;oBACD,MAAM;gBACV,KAAK,gFAAqB;oBACtB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE;wBACzC,IAAI,CAAC,kBAAkB,CAAC,cAAc,GAAG,IAAI,6EAAmB,EAAE,CAAC;qBACtE;oBACD,IAAI,UAAU,EAAE;wBACZ,wBAAwB,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;qBAC1D;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7E,wBAAwB,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;4BACtE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;4BAC5C,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;4BAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;4BAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;4BAC7C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;yBAC3E,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;qBAC3D;oBACD,MAAM;gBACV,KAAK,6EAAkB,CAAC;gBACxB,KAAK,+EAAoB,CAAC;gBAC1B,KAAK,0EAAe,CAAC;gBACrB,KAAK,8EAAmB;oBACpB,IAAI,UAAU,EAAE;wBACZ,wBAAwB,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;qBACxG;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7E,wBAAwB,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EACpE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;qBAC5D;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;qBAC3D;oBACD,MAAM;gBACV,KAAK,6EAAkB;oBACnB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;wBACtC,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,IAAI,0EAAgB,EAAE,CAAC;qBAChE;oBACD,IAAI,UAAU,EAAE;wBACZ,wBAAwB,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;qBACxG;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7E,wBAAwB,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EACpE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;qBAC5D;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;qBAC3D;oBACD,MAAM;gBACV,KAAK,wEAAa;oBACd,IAAI,UAAU,EAAE;wBACZ,wBAAwB,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;qBACxG;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7E,wBAAwB,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EACpE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;qBAChE;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;qBAC3D;oBACD,MAAM;gBACV,KAAK,qFAA0B;oBAC3B,IAAI,UAAU,EAAE;wBACZ,wBAAwB,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;qBACxG;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;wBAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACzC,wBAAwB,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;wBACrG,CAAC,CAAC,CAAC;qBACN;oBACD,MAAM;gBACV,KAAK,6EAAkB;oBACnB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7E,wBAAwB,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;4BACtE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE;4BACnD,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;4BAC/C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE;4BACnD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;yBACpD,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;qBAC3D;oBACD,MAAM;gBACV,KAAK,6EAAkB;oBACnB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7E,wBAAwB,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;4BACtE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE;4BACnD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE;4BACnD,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE;yBACzD,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;qBAC3D;oBACD,MAAM;gBACV,KAAK,4EAAiB;oBAClB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7E,wBAAwB,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;4BACtE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE;4BACnD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE;4BACnD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;4BACjD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;yBACpD,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;qBAC3D;oBACD,MAAM;gBACV,KAAK,6EAAkB;oBACnB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE;wBAC3C,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,IAAI,+EAAqB,EAAE,CAAC;qBAC1E;oBACD,IAAI,UAAU,EAAE;wBACZ,wBAAwB,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;qBACxG;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7E,wBAAwB,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;4BACtE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;yBACpD,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;qBAC3D;oBAED,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;wBAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACzC,wBAAwB,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;wBACrG,CAAC,CAAC,CAAC;qBACN;oBACD,MAAM;gBACV,KAAK,0EAAe;oBAChB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7E,wBAAwB,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;4BACtE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;4BAC1C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;4BAC5C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;4BAC5C,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;4BAC9C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;4BAC5C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;4BAC/C,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;4BAChD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;yBACjD,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;qBAC3D;oBACD,MAAM;gBACV,KAAK,6EAAkB;oBACnB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;wBAChE,wBAAwB,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;4BACtE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;4BAC9C,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE;4BACxC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE;4BACtC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;yBAClD,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;qBAC3D;oBACD,MAAM;gBACV,KAAK,qFAA0B;oBAC3B,IAAI,UAAU,EAAE;wBACZ,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC;wBACtC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE;4BACnE,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;yBAChC;qBACJ;yBAAM;wBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;qBAC9C;oBACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC3B,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;wBAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BACzC,wBAAwB,CAAC,aAAa,CAAC,GAAG,EAAE;gCACxC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;gCAC9C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;gCAC9C,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;gCAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;6BACjD,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;qBACN;oBACD,MAAM;aACb;SACJ;IACL,CAAC;IAED,aAAa,CAAC,IAAY;QACtB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,KAAK,UAAU,EAAE;YACnI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SACzD;IACL,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;SAC7D;aAAM;YACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;SAC3D;IACL,CAAC;IAED,kBAAkB,CAAC,CAAC;QAChB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAChC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;SAChC;IACL,CAAC;IAED,oBAAoB;QAChB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;YAClE,IAAI,GAAG,EAAE;gBACL,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;oBACpC,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,sEAAY,EAAE,CAAC;iBAC1D;gBACD,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,GAAG,GAAG,CAAC,iBAAiB,CAAC;aACnE;YACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;QACD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IAED,QAAQ,CAAC,IAAI;QACT,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,IAAI,CAAC,IAAI,wEAAc,EAAE,CAAC,CAAC;SACnC;IACL,CAAC;IAED,QAAQ,CAAC,MAAM;QACX,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE;YAC5C,OAAO,qEAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACtC;QACD,OAAO,IAAI,6DAAK,EAAE,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,MAAsB;QAC9B,IAAI,MAAM,EAAE;YACR,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;YAC5C,IAAI,YAAY,EAAE;gBACd,MAAM,CAAC,KAAK,GAAG,0EAAkB,CAAC,YAAY,CAAC,CAAC;gBAChD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBACnC,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC;aACjC;SACJ;IACL,CAAC;IAED,UAAU,CAAC,MAAsB;QAC7B,IAAI,MAAM,EAAE;YACR,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;SACtC;IACL,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE;YACpE,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,WAAW,EAAE;gBACrD,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,yEAAe,EAAE,CAAC,CAAC;aACnF;iBAAM;gBACH,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,WAAW,GAAG,CAAC,IAAI,yEAAe,EAAE,CAAC,CAAC;aACjF;SACJ;IACL,CAAC;IAED,gBAAgB,CAAC,CAAC;QACd,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe,IAAI,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,WAAW,EAAE;YAC3H,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC;SACrD;IACL,CAAC;IAED,mBAAmB;QACf,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,CAAC,gBAAgB,GAAG,UAAU,IAAI,UAAU,CAAC,UAAU;YACvD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,CAAC,CAAC;IACjG,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;gBACtC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACxD;iBAAM;gBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,CAAC,SAAS,CAAC,CAAC;aACtD;YACD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;SACtC;IACL,CAAC;IACD,YAAY;QACR,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,EAAE,CAAC;YAC1C,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;SACtC;IACL,CAAC;IACD,gBAAgB,CAAC,KAAK;QAClB,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,YAAY,EAAE;YAC/G,wEAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;YAC/F,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;SACtC;IACL,CAAC;IACD,mBAAmB,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,MAAM,EAAE;YACpH,IAAI,KAAK,IAAI,IAAI,EAAE;gBACf,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACrD;iBAAM;gBACH,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,0EAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;aACtF;YACD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;SACtC;IACL,CAAC;IACD,eAAe,CAAC,GAAG;QACf,OAAO,qEAAa,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;;;;;;2BA9qBA,iDAAK;iCAUL,kDAAM;;AAxDE,wBAAwB;IALpC,yDAAS,CAAC;QACP,QAAQ,EAAE,6BAA6B;QACvC,sEAAoC;;KAEvC,CAAC;GACW,wBAAwB;AAAA;IAmuBxB,oBAAoB,SAApB,oBAAqB,SAAQ,6FAAY;IAClD,MAAM,CAAC,YAAY;QACf,MAAM,QAAQ,GAAG,0FAAmC,EAAE,CAAC;QACvD,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,KAAK,mBAAmB,EAAE;YAC1D,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;;AAPQ,oBAAoB;IAJhC,yDAAS,CAAC;QACP,QAAQ,EAAE,sCAAsC;QAChD,QAAQ,EAAE,6FAA6F;KAC1G,CAAC;GACW,oBAAoB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5vB4E;AACnD;AAC+B;AACV;AACZ;AACT;IAK7C,6BAA6B,SAA7B,6BAA6B;;AAA7B,6BAA6B;IAHzC,wDAAS,CAAC;QACT,QAAQ,EAAE,wBAAwB;KACnC,CAAC;GACW,6BAA6B;AAAA;IAO7B,6BAA6B,SAA7B,6BAA6B;IAsKtC;QAhKA,kBAAa,GAAG,CAAC,CAAC,CAAC;QAuBT,iBAAY,GAAG,IAAI,uDAAY,EAAO;QAetC,sBAAiB,GAAG,IAAI,uDAAY,EAAO;QAe3C,kBAAa,GAAG,IAAI,uDAAY,EAAO;QAevC,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QACtD,YAAY;QAEZ,mBAAmB;QACnB,mBAAc,GAAG,KAAK,CAAC;QAWb,oBAAe,GAAG,IAAI,uDAAY,EAAO;QACnD,YAAY;QAEZ,kBAAkB;QAClB,kBAAa,GAAG,KAAK,CAAC;QAWZ,mBAAc,GAAG,IAAI,uDAAY,EAAO;QAClD,YAAY;QAEZ,uBAAuB;QACvB,uBAAkB,GAAG,KAAK,CAAC;QAWjB,wBAAmB,GAAG,IAAI,uDAAY,EAAO;QACvD,YAAY;QAEZ,oBAAoB;QACpB,oBAAe,GAAG,IAAI,CAAC;QAWb,qBAAgB,GAAG,IAAI,uDAAY,EAAO;QACpD,YAAY;QAEZ,sBAAsB;QACtB,sBAAiB,GAAG,KAAK,CAAC;QAWhB,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QAY5C,wBAAmB,GAAG,IAAI,uDAAY,EAAU;QAChD,kBAAa,GAAG,IAAI,uDAAY,EAAO;QAK7C,IAAI,CAAC,WAAW,GAAG,8EAA4B,CAAC,qEAAU,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc,GAAG,8EAA4B,CAAC,iFAAkB,CAAC,CAAC;IAC3E,CAAC;QA7JG,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACV,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;QACxB,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,UAAU,GAAG,oEAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,GAAG,CAAC,SAAS,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACzD,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;aAC3C;SACJ;aAAM;YACH,IAAI,CAAC,UAAU,GAAG,IAAI,4DAAK,EAAE,CAAC;SACjC;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;QASG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;QASG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;QASG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;QASG,SAAS;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,CAAC,GAAG;QACb,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;QASG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;QASG,aAAa;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;QAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC3D,CAAC;QASG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;QASG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;IAID,IAAI,kBAAkB;QAClB,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,kBAAkB,CAAC,GAAG;QACtB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7C;IACL,CAAC;IAaD,aAAa,CAAC,GAAW;QACrB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,MAAM;QACF,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,YAAY,CAAC,KAAK;QACd,IAAI,KAAK,YAAY,4DAAK,EAAE;YACxB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC7B;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,YAAY,YAAY,4DAAK,EAAE;YACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;YACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,yEAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC7D,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;aACtC;SACJ;IACL,CAAC;IAED,UAAU;QACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;SACtC;IACL,CAAC;IAED,YAAY,CAAC,EAAE;QACX,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,EAAE,IAAI,OAAO,EAAE,CAAC,KAAK,KAAK,QAAQ,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,EAAE;gBACrD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;oBACxB,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,2EAAiB,EAAE,CAAC;iBACnD;gBACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;aACzC;iBAAM;gBACH,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;aAChC;YACD,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;SAC1C;IACL,CAAC;;;;qBA9MA,gDAAK;2BAkBL,iDAAM;0BAMN,gDAAK;gCASL,iDAAM;sBAMN,gDAAK;4BASL,iDAAM;2BAMN,gDAAK;iCASL,iDAAM;wBAMN,gDAAK;8BASL,iDAAM;uBAMN,gDAAK;6BASL,iDAAM;4BAMN,gDAAK;kCASL,iDAAM;yBAMN,gDAAK;+BASL,iDAAM;2BAMN,gDAAK;iCASL,iDAAM;kCAYN,iDAAM;4BACN,iDAAM;2CAEN,uDAAY,SAAC,6BAA6B,EAAE,EAAE,IAAI,EAAE,sDAAW,EAAE;;AApKzD,6BAA6B;IALzC,wDAAS,CAAC;QACP,QAAQ,EAAE,iCAAiC;QAC3C,2EAAyC;;KAE5C,CAAC;GACW,6BAA6B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjB1C;AACA;AACA;AACA;AACA;AACA;IAMagG,4BAA4B,SAA5BA,4BAA4B;EAuJrCl+D,YAAoBiyB,YAApB,EAAuD;IAAnC;IAlIV,0BAAqB,IAAIvyB,uDAAJ,EAArB;IAkFV,qBAAgB,EAAhB;IAyEA,YAAO,CAAC,GAAD,EAAM,GAAN,CAAP;IACA,aAAQ,IAAR;IAzBI,KAAKy+D,SAAL,GAAiBhoB,8EAAA,CAA6B8nB,iEAA7B,CAAjB;EACH;;EAnJe,IAAZngE,YAAY;IACZ,OAAO,KAAKsgE,iBAAZ;EACH;;EACe,IAAZtgE,YAAY,CAACiD,GAAD,EAAI;IAChB,KAAKq9D,iBAAL,GAAyBr9D,GAAzB;;IACA,IAAI,KAAKjD,YAAL,IAAqB,KAAKA,YAAL,CAAkBugE,OAA3C,EAAoD;MAChD,IAAI,KAAKvgE,YAAL,CAAkBugE,OAAlB,CAA0BxB,UAA9B,EAA0C;QACtC,KAAK1/D,aAAL,CAAmB,YAAnB,IAAmC,KAAKW,YAAL,CAAkBugE,OAAlB,CAA0BxB,UAA1B,CAAqCv/D,SAArC,CAAgDa,IAAD,IAAS;UACvF,KAAK0+D,UAAL,GAAkB1+D,IAAlB;QACH,CAFkC,CAAnC;MAGH;IACJ;;IACD,KAAKmgE,kBAAL,CAAwB58D,IAAxB,CAA6B,KAAK08D,iBAAlC;EACH;;EAKa,IAAVvB,UAAU;IACV,OAAO,KAAK0B,eAAZ;EACH;;EACa,IAAV1B,UAAU,CAAC97D,GAAD,EAAI;IACd,IAAIA,GAAG,IAAIuG,KAAK,CAACC,OAAN,CAAcxG,GAAd,CAAP,IAA6BA,GAAG,CAACnC,MAAJ,IAAc,CAA/C,EAAkD;MAC9C,IAAI,KAAK2/D,eAAT,EAA0B;QACtB,IAAI,KAAKH,iBAAL,CAAuBxE,gBAAvB,IAA2C,KAAKwE,iBAAL,CAAuBxE,gBAAvB,CAAwC,KAAKiD,UAAL,CAAgBD,KAAxD,CAA3C,IAA6G,KAAKwB,iBAAL,CAAuBxE,gBAAvB,CAAwC,KAAKiD,UAAL,CAAgBD,KAAxD,EAA+D,KAAKC,UAAL,CAAgB/C,QAA/E,CAA7G,IAAyM,KAAKsE,iBAAL,CAAuBxE,gBAAvB,CAAwC,KAAKiD,UAAL,CAAgBD,KAAxD,EAA+D,KAAKC,UAAL,CAAgB/C,QAA/E,EAAyF,KAAK+C,UAAL,CAAgB9C,UAAzG,CAA7M,EAAmU;UAC/T,IAAI4C,IAAI,GAAG,KAAKyB,iBAAL,CAAuBxE,gBAAvB,CAAwC,KAAKiD,UAAL,CAAgBD,KAAxD,EAA+D,KAAKC,UAAL,CAAgB/C,QAA/E,EAAyF,KAAK+C,UAAL,CAAgB9C,UAAzG,CAAX;;UACA,IAAI,EAAE4C,IAAI,CAAC6B,WAAL,IAAoB7B,IAAI,CAAC8B,WAAzB,IAAwC9B,IAAI,CAAC3C,YAA/C,CAAJ,EAAkE;YAC9D,OAAO,KAAKoE,iBAAL,CAAuBxE,gBAAvB,CAAwC,KAAKiD,UAAL,CAAgBD,KAAxD,EAA+D,KAAKC,UAAL,CAAgB/C,QAA/E,EAAyF,KAAK+C,UAAL,CAAgB9C,UAAzG,CAAP;;YACA,IAAIz2D,MAAM,CAACC,IAAP,CAAY,KAAK66D,iBAAL,CAAuBxE,gBAAvB,CAAwC,KAAKiD,UAAL,CAAgBD,KAAxD,EAA+D,KAAKC,UAAL,CAAgB/C,QAA/E,CAAZ,EAAsGl7D,MAAtG,IAAgH,CAApH,EAAuH;cACnH,OAAO,KAAKw/D,iBAAL,CAAuBxE,gBAAvB,CAAwC,KAAKiD,UAAL,CAAgBD,KAAxD,EAA+D,KAAKC,UAAL,CAAgB/C,QAA/E,CAAP;YACH;UACJ;QACJ;MACJ;;MACD,KAAKyE,eAAL,GAAuBx9D,GAAG,CAAC,CAAD,CAA1B;;MACA,IAAI,KAAKq9D,iBAAL,IAA0B,KAAKvB,UAAnC,EAA+C;QAC3C,IAAI,CAAC,KAAKuB,iBAAL,CAAuBxE,gBAA5B,EAA8C;UAC1C,KAAKwE,iBAAL,CAAuBxE,gBAAvB,GAA0C,EAA1C;QACH;;QACD,IAAI,CAAC,KAAKwE,iBAAL,CAAuBxE,gBAAvB,CAAwC,KAAKiD,UAAL,CAAgBD,KAAxD,CAAL,EAAqE;UACjE,KAAKwB,iBAAL,CAAuBxE,gBAAvB,CAAwC,KAAKiD,UAAL,CAAgBD,KAAxD,IAAiE,EAAjE;QACH;;QACD,IAAI,CAAC,KAAKwB,iBAAL,CAAuBxE,gBAAvB,CAAwC,KAAKiD,UAAL,CAAgBD,KAAxD,EAA+D,KAAKC,UAAL,CAAgB/C,QAA/E,CAAL,EAA+F;UAC3F,KAAKsE,iBAAL,CAAuBxE,gBAAvB,CAAwC,KAAKiD,UAAL,CAAgBD,KAAxD,EAA+D,KAAKC,UAAL,CAAgB/C,QAA/E,IAA2F,EAA3F;QACH;;QACD,IAAI,CAAC,KAAKsE,iBAAL,CAAuBxE,gBAAvB,CAAwC,KAAKiD,UAAL,CAAgBD,KAAxD,EAA+D,KAAKC,UAAL,CAAgB/C,QAA/E,EAAyF,KAAK+C,UAAL,CAAgB9C,UAAzG,CAAL,EAA2H;UACvH,KAAKqE,iBAAL,CAAuBxE,gBAAvB,CAAwC,KAAKiD,UAAL,CAAgBD,KAAxD,EAA+D,KAAKC,UAAL,CAAgB/C,QAA/E,EAAyF,KAAK+C,UAAL,CAAgB9C,UAAzG,IAAuH,EAAvH;QACH;;QACD,IAAI,CAAC,KAAKqE,iBAAL,CAAuBxE,gBAAvB,CAAwC,KAAKiD,UAAL,CAAgBD,KAAxD,EAA+D,KAAKC,UAAL,CAAgB/C,QAA/E,EAAyF,KAAK+C,UAAL,CAAgB9C,UAAzG,EAAqHE,SAA1H,EAAqI;UACjI,KAAKmE,iBAAL,CAAuBxE,gBAAvB,CAAwC,KAAKiD,UAAL,CAAgBD,KAAxD,EAA+D,KAAKC,UAAL,CAAgB/C,QAA/E,EAAyF,KAAK+C,UAAL,CAAgB9C,UAAzG,EAAqHE,SAArH,GAAiI;YAC7HjnC,CAAC,EAAE,EAD0H;YAE7HC,CAAC,EAAE;UAF0H,CAAjI;QAIH;MACJ;;MACD,IAAI,KAAKymC,IAAL,CAAUO,SAAV,CAAoByE,QAAxB,EAAkC;QAC9B,KAAKC,aAAL,GAAqB,OAArB;MACH;;MACD,IAAI,KAAKjF,IAAL,CAAUO,SAAV,CAAoB2E,UAAxB,EAAoC;QAChC,KAAKD,aAAL,GAAqB,SAArB;MACH;;MACD,IAAI,KAAKjF,IAAL,CAAUO,SAAV,CAAoBC,gBAAxB,EAA0C;QACtC,KAAKyE,aAAL,GAAqB,MAArB;MACH;;MAED,KAAKE,oBAAL;MACA,IAAIC,KAAK,GAAG,EAAZ;MACA,IAAIC,IAAI,GAAGz7D,MAAM,CAACC,IAAP,CAAY,KAAK66D,iBAAL,CAAuBxE,gBAAvB,CAAwC,KAAKiD,UAAL,CAAgBD,KAAxD,CAAZ,CAAX;MACAmC,IAAI,CAAC7/D,OAAL,CAAcirC,GAAD,IAAQ;QACjB,IAAI60B,OAAO,GAAG17D,MAAM,CAACC,IAAP,CAAY,KAAK66D,iBAAL,CAAuBxE,gBAAvB,CAAwC,KAAKiD,UAAL,CAAgBD,KAAxD,EAA+DzyB,GAA/D,CAAZ,CAAd;QACA60B,OAAO,CAAC9/D,OAAR,CAAiBs+D,MAAD,IAAW;UACvB,IAAI,KAAKX,UAAL,CAAgB/C,QAAhB,IAA4B3vB,GAA5B,IAAmC,KAAK0yB,UAAL,CAAgB9C,UAAhB,IAA8ByD,MAArE,EAA6E;YACzEsB,KAAK,CAAC1hE,IAAN,CAAW;cACPsP,IAAI,EAAE8wD,MAAM,IAAIlD,QAAQ,CAACnwB,GAAD,CAAR,GAAgB,CAApB;YADL,CAAX;UAGH;QACJ,CAND;MAOH,CATD;MAUA,KAAK80B,SAAL,GAAiBH,KAAK,CAACz9D,IAAN,CAAW,CAACC,CAAD,EAAIC,CAAJ,KAAS;QACjC,IAAID,CAAC,CAACoL,IAAF,GAASnL,CAAC,CAACmL,IAAf,EAAqB;UACjB,OAAO,CAAC,CAAR;QACH;;QACD,IAAIpL,CAAC,CAACoL,IAAF,GAASnL,CAAC,CAACmL,IAAf,EAAqB;UACjB,OAAO,CAAP;QACH;;QACD,IAAIpL,CAAC,CAACoL,IAAF,GAASnL,CAAC,CAACmL,IAAf,EAAqB;UACjB,OAAO,CAAP;QACH;MACJ,CAVgB,CAAjB;MAWA,KAAKgmB,eAAL;IACH,CApED,MAoEO;MACH,KAAK6rC,eAAL,GAAuB,IAAvB;IACH;EACJ;;EAMY,IAATjnC,SAAS;IACT,IAAIxS,KAAK,GAAG,EAAZ;;IACA,IAAI,KAAKs5C,iBAAL,CAAuBxE,gBAAvB,CAAwC,KAAKiD,UAAL,CAAgBD,KAAxD,EAA+D,KAAKC,UAAL,CAAgB/C,QAA/E,EAAyF,KAAK+C,UAAL,CAAgB9C,UAAzG,EAAqH7nC,UAAzH,EAAqI;MACjIpN,KAAK,CAAC1nB,IAAN,CAAW,GAAG,KAAKghE,iBAAL,CAAuBxE,gBAAvB,CAAwC,KAAKiD,UAAL,CAAgBD,KAAxD,EAA+D,KAAKC,UAAL,CAAgB/C,QAA/E,EAAyF,KAAK+C,UAAL,CAAgB9C,UAAzG,EAAqH7nC,UAAnI;IACH;;IACD,IAAI,KAAKp0B,YAAL,CAAkBo0B,UAAtB,EAAkC;MAC9BpN,KAAK,CAAC1nB,IAAN,CAAW,GAAG,KAAKU,YAAL,CAAkBo0B,UAAhC;IACH;;IACD,IAAIgtC,MAAM,GAAG,EAAb;;IACA,IAAI,KAAKd,iBAAL,CAAuB9C,MAA3B,EAAmC;MAC/B,KAAK8C,iBAAL,CAAuB9C,MAAvB,CAA8Bp8D,OAA9B,CAAuC68D,KAAD,IAAU;QAC5C,IAAIA,KAAK,CAACrvD,IAAN,KAAe,KAAKmwD,UAAL,CAAgBD,KAAnC,EAA0C;UACtC,IAAIz+D,IAAI,GAAG;YACPuO,IAAI,EAAEqvD,KAAK,CAACrvD,IADL;YAEPzE,QAAQ,EAAE;UAFH,CAAX;UAMA,IAAI62D,KAAK,GAAG,EAAZ;UACA,IAAIC,IAAI,GAAGz7D,MAAM,CAACC,IAAP,CAAY,KAAK66D,iBAAL,CAAuBxE,gBAAvB,CAAwCmC,KAAK,CAACrvD,IAA9C,CAAZ,CAAX;UACAqyD,IAAI,CAAC7/D,OAAL,CAAcirC,GAAD,IAAQ;YACjB,IAAI60B,OAAO,GAAG17D,MAAM,CAACC,IAAP,CAAY,KAAK66D,iBAAL,CAAuBxE,gBAAvB,CAAwCmC,KAAK,CAACrvD,IAA9C,EAAoDy9B,GAApD,CAAZ,CAAd;YACA60B,OAAO,CAAC9/D,OAAR,CAAiBs+D,MAAD,IAAW;cACvB,IAAI,EAAEzB,KAAK,CAACrvD,IAAN,IAAc,KAAKmwD,UAAL,CAAgBD,KAA9B,IAAuC,KAAKC,UAAL,CAAgB/C,QAAhB,IAA4B3vB,GAAnE,IAA0E,KAAK0yB,UAAL,CAAgB9C,UAAhB,IAA8ByD,MAA1G,CAAJ,EAAuH;gBACnHsB,KAAK,CAAC1hE,IAAN,CAAW;kBACPsP,IAAI,EAAEqvD,KAAK,CAACrvD,IAAN,GAAa,GAAb,GAAmB8wD,MAAnB,IAA6BlD,QAAQ,CAACnwB,GAAD,CAAR,GAAgB,CAA7C;gBADC,CAAX;cAGH;YACJ,CAND;UAOH,CATD;UAUAhsC,IAAI,CAAC8J,QAAL,GAAgB62D,KAAhB;UACAI,MAAM,CAAC9hE,IAAP,CAAYe,IAAZ;QACH;MACJ,CAvBD;IAwBH;;IACD,OAAO,CAAC;MACJuO,IAAI,EAAE,YADF;MAEJzE,QAAQ,EAAE,CAAC,GAAG6c,KAAJ;IAFN,CAAD,EAGJ;MACCpY,IAAI,EAAE,OADP;MAECzE,QAAQ,EAAE,KAAKg3D;IAFhB,CAHI,EAMJ;MACCvyD,IAAI,EAAE,QADP;MAECzE,QAAQ,EAAEi3D;IAFX,CANI,CAAP;EAUH;;EAKDjgE,WAAW;IACP,MAAMsE,IAAI,GAAGD,MAAM,CAACC,IAAP,CAAY,KAAKpG,aAAjB,CAAb;IACAoG,IAAI,CAACrE,OAAL,CAAcsE,GAAD,IAAQ;MACjB,KAAKrG,aAAL,CAAmBqG,GAAnB,EAAwBpE,WAAxB;IACH,CAFD;EAGH;;EAED+/D,eAAe;IACX,KAAKrhE,YAAL,CAAkBshE,aAAlB,CAAgCliE,IAAhC;EACH;;EAEY,IAAT+8D,SAAS;IACT,OAAO,KAAKmE,iBAAL,CAAuBxE,gBAAvB,CAAwC,KAAKiD,UAAL,CAAgBD,KAAxD,EAA+D,KAAKC,UAAL,CAAgB/C,QAA/E,EAAyF,KAAK+C,UAAL,CAAgB9C,UAAzG,EAAqHE,SAA5H;EACH;;EACO,IAAJ15D,IAAI;IACJ,OAAO,KAAKzC,YAAL,CAAkBugE,OAAlB,CAA0BhsC,SAAjC;EACH;;EACO,IAAJqnC,IAAI;IACJ,OAAO,KAAK0E,iBAAL,CAAuBxE,gBAAvB,CAAwC,KAAKiD,UAAL,CAAgBD,KAAxD,EAA+D,KAAKC,UAAL,CAAgB/C,QAA/E,EAAyF,KAAK+C,UAAL,CAAgB9C,UAAzG,CAAP;EACH;;EAIKrnC,eAAe;IAAA;;IAAA;MACjB,KAAI,CAACK,WAAL,GAAmB;QACfC,CAAC,EAAE,EADY;QAEfC,CAAC,EAAE;MAFY,CAAnB;MAIA,KAAI,CAACL,YAAL,GAAoB,IAApB;;MACA,IAAI,KAAI,CAACqnC,SAAL,CAAe/mC,iBAAnB,EAAsC;QAClC,KAAI,CAACN,YAAL,GAAoB,KAAI,CAACryB,IAAL,CAAUhC,IAAV,CAAgBC,KAAD,IAAU;UAAG,OAAO,KAAI,CAACy7D,SAAL,CAAe/mC,iBAAf,IAAoC10B,KAAK,CAAC4I,EAAjD;QAAqD,CAAjF,CAApB;;QACA,IAAI,KAAI,CAACwrB,YAAL,CAAkBO,YAAtB,EAAoC,CAEnC,CAFD,MAEO;UACH,IAAI,CAAC,KAAI,CAAC8mC,SAAL,CAAejnC,CAApB,EAAuB;YACnB,KAAI,CAACinC,SAAL,CAAejnC,CAAf,GAAmB,EAAnB;UACH;;UACD,IAAI,CAAC,KAAI,CAACinC,SAAL,CAAehnC,CAApB,EAAuB;YACnB,KAAI,CAACgnC,SAAL,CAAehnC,CAAf,GAAmB,EAAnB;UACH;;UACD,KAAI,CAACG,QAAL,CAAc,KAAI,CAACR,YAAL,CAAkBS,eAAlB,CAAkCC,WAAhD,EAA6D,KAAI,CAACP,WAAL,CAAiBC,CAA9E,EAAiF,KAAI,CAACinC,SAAL,CAAejnC,CAAhG;;UACA,KAAI,CAACI,QAAL,CAAc,KAAI,CAACR,YAAL,CAAkBS,eAAlB,CAAkCE,WAAhD,EAA6D,KAAI,CAACR,WAAL,CAAiBE,CAA9E,EAAiF,KAAI,CAACgnC,SAAL,CAAehnC,CAAhG;;UACA,KAAI,CAACosC,YAAL;QACH;MACJ;IArBgB;EAsBpB;;EACDR,oBAAoB;IAChB,KAAKnF,IAAL,CAAUO,SAAV,CAAoByE,QAApB,GAA+B,KAA/B;IACA,KAAKhF,IAAL,CAAUO,SAAV,CAAoB2E,UAApB,GAAiC,KAAjC;IACA,KAAKlF,IAAL,CAAUO,SAAV,CAAoBC,gBAApB,GAAuC,KAAvC;;IACA,IAAI,KAAKyE,aAAL,IAAsB,OAA1B,EAAmC;MAC/B,KAAKjF,IAAL,CAAUO,SAAV,CAAoByE,QAApB,GAA+B,IAA/B;IACH;;IACD,IAAI,KAAKC,aAAL,IAAsB,SAA1B,EAAqC;MACjC,KAAKjF,IAAL,CAAUO,SAAV,CAAoB2E,UAApB,GAAiC,IAAjC;IACH;;IACD,IAAI,KAAKD,aAAL,IAAsB,MAA1B,EAAkC;MAC9B,KAAKjF,IAAL,CAAUO,SAAV,CAAoBC,gBAApB,GAAuC,IAAvC;IACH;EACJ;;EACD1mC,uBAAuB;IACnB,KAAKymC,SAAL,CAAejnC,CAAf,GAAmB,EAAnB;IACA,KAAKinC,SAAL,CAAehnC,CAAf,GAAmB,EAAnB;IACA,KAAKP,eAAL;IACA,KAAK4sC,YAAL;EACH;;EACDD,YAAY;IACR,IAAI,KAAK3F,IAAL,CAAUO,SAAV,CAAoBxmC,IAAxB,EAA8B;MAC1B,KAAKE,KAAL,GAAarwB,MAAM,CAACC,IAAP,CAAY,KAAKwvB,WAAL,CAAiB,KAAK2mC,IAAL,CAAUO,SAAV,CAAoBxmC,IAArC,CAAZ,CAAb;IACH;;IACD,KAAK6rC,YAAL;EACH;;EACDC,eAAe,CAAClwD,QAAD,EAAS;IACpB,KAAKqqD,IAAL,CAAUO,SAAV,CAAoBuF,cAApB,GAAqC,IAArC;;IACA,IAAInwD,QAAJ,EAAc;MACV,IAAIylB,OAAO,GAAGzlB,QAAQ,CAAC9Q,IAAT,CAAeC,KAAD,IAAU;QAClC,OAAOA,KAAK,CAACmO,KAAN,IAAe,KAAK+sD,IAAL,CAAUO,SAAV,CAAoBllC,OAA1C;MACH,CAFa,CAAd;;MAGA,IAAID,OAAJ,EAAa;QACT,KAAK4kC,IAAL,CAAUO,SAAV,CAAoBuF,cAApB,GAAqC1qC,OAAO,CAAC/sB,OAA7C;MACH;IACJ;;IACD,KAAKu3D,YAAL;EACH;;EACDG,aAAa,CAACvvD,MAAD,EAAO;IAChB,KAAKwpD,IAAL,CAAUO,SAAV,CAAoB1lC,OAApB,GAA8B,IAA9B;;IACA,IAAIrkB,MAAJ,EAAY;MACR,IAAIE,KAAK,GAAGF,MAAM,CAAC3R,IAAP,CAAaC,KAAD,IAAU;QAC9B,OAAOA,KAAK,CAAC4I,EAAN,IAAY,KAAKsyD,IAAL,CAAUO,SAAV,CAAoB7jD,KAAvC;MACH,CAFW,CAAZ;;MAGA,IAAIhG,KAAJ,EAAW;QACP,KAAKspD,IAAL,CAAUO,SAAV,CAAoB1lC,OAApB,GAA8BnkB,KAAK,CAACzD,KAApC;MACH;IACJ;;IACD,KAAK2yD,YAAL;EACH;;EAEDlsC,QAAQ,CAACzT,IAAD,EAAO8T,IAAP,EAAaC,aAAb,EAA0B;IAAA;;IAC9B,IAAI,CAACA,aAAL,EAAoB;MAChBA,aAAa,GAAG,EAAhB;IACH;;IACD,KAAK,IAAI1tB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2Z,IAAI,CAACgU,KAAL,CAAW/0B,MAA/B,EAAuCoH,CAAC,EAAxC,EAA4C;MACxC,IAAI4tB,IAAI,GAAG;QACP7rB,OAAO,EAAE,UAAU/B,CADZ;QAEPoB,EAAE,EAAEpB,CAAC,GAAG,EAFD;QAGPkK,MAAM,EAAE,EAHD;QAIPb,QAAQ,EAAE;MAJH,CAAX;;MAMA,IAAI,CAACqkB,aAAa,CAACE,IAAI,CAACxsB,EAAN,CAAlB,EAA6B;QACzB,IAAIysB,OAAO,GAAG,IAAI/B,oFAAJ,EAAd;QACA+B,OAAO,CAACC,MAAR,GAAiBF,IAAI,CAACxsB,EAAtB;QACAysB,OAAO,CAAC3jB,MAAR,GAAiB,EAAjB;;QACA,IAAIlK,CAAC,IAAI,CAAT,EAAY;UACR6tB,OAAO,CAACv0B,QAAR,GAAmB,IAAnB;QACH;;QACDo0B,aAAa,CAACE,IAAI,CAACxsB,EAAN,CAAb,GAAyBysB,OAAzB;MACH;;MACD,IAAIE,EAAE,GAAG,EAAT;MACApU,IAAI,CAACgU,KAAL,CAAW3tB,CAAX,EAAcguB,MAAd,CAAqB90B,OAArB,CAA8B+0B,KAAD,IAAU;QACnCA,KAAK,CAAC/jB,MAAN,CAAahR,OAAb;UAAA,kKAAqB,WAAOkR,KAAP,EAAgB;YACjC,IAAI8jB,GAAG,GAAG;cACNnsB,OAAO,EAAEqI,KAAK,CAACrI,OAAN,CAAcosB,YADjB;cAENxnB,KAAK,EAAEyD,KAAK,CAACgkB,QAFP;cAGNhtB,EAAE,EAAEgJ,KAAK,CAACgG,KAHJ;cAINie,OAAO,EAAE;YAJH,CAAV;;YAMA,IAAI,CAACX,aAAa,CAACE,IAAI,CAACxsB,EAAN,CAAb,CAAuB8I,MAAvB,CAA8BgkB,GAAG,CAAC9sB,EAAlC,CAAL,EAA4C;cACxC,IAAIktB,QAAQ,GAAG,IAAIzC,qFAAJ,EAAf;cACAyC,QAAQ,CAACC,OAAT,GAAmBL,GAAG,CAACvnB,KAAvB;cACAonB,EAAE,CAACG,GAAG,CAAC9sB,EAAL,CAAF,GAAaktB,QAAb;YACH,CAJD,MAIO;cACHP,EAAE,CAACG,GAAG,CAAC9sB,EAAL,CAAF,GAAassB,aAAa,CAACE,IAAI,CAACxsB,EAAN,CAAb,CAAuB8I,MAAvB,CAA8BgkB,GAAG,CAAC9sB,EAAlC,CAAb;YACH;;YACD,MAAMotB,SAAS,SAASzlB,kFAAA,CAA2BqB,KAAK,CAACgG,KAAjC,EAAwC,MAAI,CAACwc,YAAL,CAAkB6B,WAA1D,CAAxB;;YACA,IAAID,SAAJ,EAAe;cACX,MAAI,CAACvC,YAAL,CAAkByC,UAAlB,CAA6BF,SAAS,CAACrkB,MAAV,CAAiBA,MAAjB,CAAwBwkB,YAArD,EAAmEvkB,KAAK,CAACgG,KAAzE,EAAgF,IAAhF,EAAsF,IAAtF,EAA4F9Y,SAA5F,CAAsGs3B,OAAO,IAAG;gBAC5G,MAAMC,UAAU,GAAG,EAAnB;;gBACA,IAAID,OAAJ,EAAa;kBACTA,OAAO,CAAC11B,OAAR,CAAgBoQ,CAAC,IAAG;oBAChBulB,UAAU,CAACz3B,IAAX,CAAgB;sBACZ2K,OAAO,EAAEuH,CAAC,CAACvH,OADC;sBAEZ4E,KAAK,EAAE2C,CAAC,CAAClI;oBAFG,CAAhB;kBAIH,CALD;gBAMH;;gBACD,IAAI,CAAC,MAAI,CAACitB,OAAV,EAAmB;kBACf,MAAI,CAACA,OAAL,GAAe,EAAf;gBACH;;gBACD,MAAI,CAACA,OAAL,CAAajkB,KAAK,CAACgG,KAAnB,IAA4Bye,UAA5B;cACH,CAdD;YAeH;;YACDjB,IAAI,CAAC1jB,MAAL,CAAY9S,IAAZ,CAAiB82B,GAAjB;UACH,CAjCD;;UAAA;YAAA;UAAA;QAAA;MAkCH,CAnCD;MAoCAR,aAAa,CAACE,IAAI,CAACxsB,EAAN,CAAb,CAAuB8I,MAAvB,GAAgC6jB,EAAhC;MACApU,IAAI,CAACgU,KAAL,CAAW3tB,CAAX,EAAcqJ,QAAd,CAAuBnQ,OAAvB,CAAgC41B,OAAD,IAAY;QACvClB,IAAI,CAACvkB,QAAL,CAAcjS,IAAd,CAAmB;UACf2K,OAAO,EAAE+sB,OAAO,CAAC/sB,OAAR,CAAgBosB,YADV;UAEfxnB,KAAK,EAAEmoB,OAAO,CAACV,QAFA;UAGfhtB,EAAE,EAAE0tB,OAAO,CAACC;QAHG,CAAnB;MAKH,CAND;MAOAtB,IAAI,CAACr2B,IAAL,CAAUw2B,IAAV;IACH;EACJ;;EAED0rC,YAAY;IACR,IAAIrnD,MAAM,GAAG,KAAb;;IACA,IAAI,KAAKyhD,IAAL,CAAU8E,WAAd,EAA2B;MACvBvmD,MAAM,GAAG,IAAT;IACH;;IACD,IAAI,KAAKyhD,IAAL,CAAUM,YAAd,EAA4B;MACxB,IAAI,KAAKN,IAAL,CAAUO,SAAV,CAAoByE,QAApB,IACA,KAAKhF,IAAL,CAAUO,SAAV,CAAoB/mC,iBAApB,IAAyC,IADzC,IAEA,KAAKwmC,IAAL,CAAUO,SAAV,CAAoBxmC,IAApB,IAA4B,IAF5B,IAGA,KAAKimC,IAAL,CAAUO,SAAV,CAAoBa,IAApB,IAA4B,IAH5B,IAIA,KAAKpB,IAAL,CAAUO,SAAV,CAAoB7jD,KAApB,IAA6B,IAJ7B,IAKA,KAAKsjD,IAAL,CAAUO,SAAV,CAAoByF,WAApB,IAAmC,IALvC,EAK6C;QACzCznD,MAAM,GAAG,IAAT;MACH;;MACD,IAAI,KAAKyhD,IAAL,CAAUO,SAAV,CAAoB2E,UAApB,IACA,KAAKlF,IAAL,CAAUO,SAAV,CAAoB/mC,iBAApB,IAAyC,IADzC,IAEA,KAAKwmC,IAAL,CAAUO,SAAV,CAAoBxmC,IAApB,IAA4B,IAF5B,IAGA,KAAKimC,IAAL,CAAUO,SAAV,CAAoBa,IAApB,IAA4B,IAH5B,IAIA,KAAKpB,IAAL,CAAUO,SAAV,CAAoBllC,OAApB,IAA+B,IAJ/B,IAKA,KAAK2kC,IAAL,CAAUO,SAAV,CAAoBM,MAApB,IAA8B,IAL9B,IAMA,KAAKb,IAAL,CAAUO,SAAV,CAAoBW,MAApB,IAA8B,IANlC,EAMwC;QACpC3iD,MAAM,GAAG,IAAT;MACH;;MACD,IAAI,KAAKyhD,IAAL,CAAUO,SAAV,CAAoBC,gBAAxB,EAA0C;QACtCjiD,MAAM,GAAG,IAAT;MACH;IACJ;;IACD,IAAIA,MAAJ,EAAY;MACR,KAAKmmD,iBAAL,CAAuBC,OAAvB,CAA+BjB,mBAA/B;IACH;EACJ;;AA/VoC;;;;;;;;UAKpCz9D,gDAAKA;;;UAgBLC,iDAAMA;;;AArBEs+D,4BAA4B,sDAJxCvhE,wDAAS,CAAC;EACP4C,QAAQ,EAAE,kCADH;EAEPC,UAAAA,iEAAAA;AAFO,CAAD,CAI+B,GAA5B0+D,4BAA4B,CAA5B;;;;;;;;;;;;;;;;;;;;;;ACXqE;AACjB;IAMpD,wBAAwB,SAAxB,wBAAwB;IAsCjC;QAlBU,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QAe5C,iBAAY,GAAG,IAAI,uDAAY,EAAO;QAChD,YAAY;QACZ,kBAAa,GAAG,EAAE,CAAC;QAEf,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,4FAAsC,CAAC,CAAC,MAAM,EAAE,EAAE;YAC7E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;QApCG,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,IAAI,IAAI,EAAE;YACpE,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG;gBAC/B,OAAO,EAAE,EAAE;gBACX,IAAI,EAAE,GAAG;aACZ,CAAC;SACL;QACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;QASG,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACV,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAWD,WAAW;QACP,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,eAAe;QACX,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;;;;2BAhDA,gDAAK;iCAeL,iDAAM;qBAMN,gDAAK;2BASL,iDAAM;;AAnCE,wBAAwB;IAJpC,wDAAS,CAAC;QACP,QAAQ,EAAE,6BAA6B;QACvC,gFAA8C;KACjD,CAAC;GACW,wBAAwB;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACPK;AACiD;AAC1B;IAMpD,0BAA0B,SAA1B,0BAA2B,SAAQ,6FAAY;;;QACxD,uBAAkB,GAAG,KAAK,CAAC;IAwC/B,CAAC;IArCG,MAAM,CAAC,YAAY;QACf,MAAM,QAAQ,GAAG,yFAAmC,EAAE,CAAC;QACvD,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,KAAK,sBAAsB,EAAE;YAC7D,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,4FAAsC,CAAC,CAAC,MAAM,EAAE,EAAE;YACtE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC,CAAC,CAAC,CAAC;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC;IAED,SAAS;QACL,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;gBAChC,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,EAAE,CAAC;aACtC;YACD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;gBAC9B,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC;aACpC;YACD,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;gBACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC1F,IAAI,QAAQ,EAAE;oBACV,KAAK,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;iBAClC;aACJ;SACJ;QACD,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IACpC,CAAC;IAED,YAAY;QACR,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IAC9C,CAAC;;AAxCQ,0BAA0B;IAJtC,wDAAS,CAAC;QACP,QAAQ,EAAE,+BAA+B;QACzC,yEAAuC;KAC1C,CAAC;GACW,0BAA0B;AAAA;;;;;;;;;;;;;;;;;;;;;ACRgC;IAM1D,4BAA4B,SAA5B,4BAA4B;;QAiB3B,uBAAkB,GAAG,IAAI,uDAAY,EAAO;IAM1D,CAAC;QAjBO,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE;YACpC,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,EAAE,CAAC;SAC1C;QACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;IAGD,YAAY;IAEZ,eAAe;QACX,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;;;2BAjBA,gDAAK;iCAYL,iDAAM;;AAjBE,4BAA4B;IAJxC,wDAAS,CAAC;QACP,QAAQ,EAAE,iCAAiC;QAC3C,2EAAyC;KAC5C,CAAC;GACW,4BAA4B;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACN8B;IAO1D,wBAAwB,SAAxB,wBAAwB;;QAwBvB,uBAAkB,GAAG,IAAI,uDAAY,EAAO;IA4B1D,CAAC;QA9CO,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,IAAI,EAAE;YACjE,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;oBAC7B,IAAI,EAAE,SAAS;oBACf,SAAS,EAAE;wBACP,OAAO,EAAE,EAAE;wBACX,IAAI,EAAE,GAAG;wBACT,UAAU,EAAE,EAAE;qBACjB;iBACJ,CAAC,CAAC;SACN;QACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;IAMD,eAAe;QACX,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED,GAAG;QACC,MAAM,IAAI,GAAG;YACT,IAAI,EAAE,UAAU;YAChB,SAAS,EAAE;gBACP,OAAO,EAAE,EAAE;gBACX,IAAI,EAAE,GAAG;gBACT,UAAU,EAAE,EAAE;aACjB;SACJ,CAAC;QACF,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,MAAM;QACF,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QACnG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9B,CAAC;IACD,UAAU,CAAC,GAAG;QACV,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;IAC7B,CAAC;;;2BA9CA,gDAAK;iCAmBL,iDAAM;;AAxBE,wBAAwB;IALpC,wDAAS,CAAC;QACP,QAAQ,EAAE,mCAAmC;QAC7C,uEAAqC;;KAExC,CAAC;GACW,wBAAwB;AAAA;;;;;;;;;;;;;;;;;;;;;ACPkC;IAM1D,sBAAsB,SAAtB,sBAAsB;;QAoBrB,uBAAkB,GAAG,IAAI,uDAAY,EAAO;IAM1D,CAAC;QApBO,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,IAAI,IAAI,EAAE;YACpE,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG;gBAC/B,OAAO,EAAE,EAAE;gBACX,IAAI,EAAE,GAAG;aACZ,CAAC;SACL;QACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;IAGD,YAAY;IAEZ,eAAe;QACX,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;;;2BApBA,gDAAK;iCAeL,iDAAM;;AApBE,sBAAsB;IAJlC,wDAAS,CAAC;QACP,QAAQ,EAAE,iCAAiC;QAC3C,qEAAmC;KACtC,CAAC;GACW,sBAAsB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACNO;AACkD;IAO/E,oBAAoB,SAApB,oBAAqB,SAAQ,8FAAc;;;QACpD,YAAO,GAAG,EAAE,CAAC;IAkBjB,CAAC;IAhBG,WAAW;QACP,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;YAC7C,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;SAC1C;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,YAAY;QACR,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,oBAAoB,KAAK,UAAU,EAAE;gBAC7G,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;aACzD;YACD,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;SAClC;IACL,CAAC;;AAlBQ,oBAAoB;IALhC,wDAAS,CAAC;QACP,QAAQ,EAAE,yBAAyB;QACnC,wEAAsC;;KAEzC,CAAC;GACW,oBAAoB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACRS;AACkD;IAO/E,kBAAkB,SAAlB,kBAAmB,SAAQ,8FAAc;;;QAClD,YAAO,GAAG,EAAE,CAAC;IAkBjB,CAAC;IAhBG,WAAW;QACP,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;YAC7C,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;SAC1C;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,YAAY;QACR,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,oBAAoB,KAAK,UAAU,EAAE;gBAC7G,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;aACzD;YACD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;SAChC;IACL,CAAC;;AAlBQ,kBAAkB;IAL9B,wDAAS,CAAC;QACP,QAAQ,EAAE,sBAAsB;QAChC,sEAAoC;;KAEvC,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;;;ACRW;AACU;IAMvC,qBAAqB,SAArB,qBAAsB,SAAQ,6DAAa;;AAA3C,qBAAqB;IAJjC,wDAAS,CAAC;QACP,QAAQ,EAAE,0BAA0B;QACpC,uEAAqC;KACxC,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;ACPQ;AACU;IAMvC,kBAAkB,SAAlB,kBAAmB,SAAQ,6DAAa;;AAAxC,kBAAkB;IAJ9B,wDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,oEAAkC;KACrC,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACPW;AAC0C;AACpB;AACZ;IAMvC,qBAAqB,SAArB,qBAAsB,SAAQ,6DAAa;;;QACpD,eAAU,GAAG,EAAE,CAAC;QAChB,gBAAW,GAAG,EAAE,CAAC;IAsCrB,CAAC;IApCW,MAAM,CAAC,oBAAoB;QAC/B,OAAO;YACH,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,MAAM;YACf,eAAe,EAAE,KAAK;YACtB,QAAQ,EAAE,qBAAqB;SAClC,CAAC;IACN,CAAC;IAED,SAAS;QACL,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC,oBAAoB,EAAE,CAAC;QAC/D,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC,oBAAoB,EAAE,CAAC;QAChE,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE;YAChE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,iFAAuB,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACpH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,iFAAuB,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAAC;SACzH;IACL,CAAC;IAED,YAAY,CAAC,QAAQ,EAAE,KAAK;QACxB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE;YAChE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,oBAAoB,EAAE,EAAE,iFAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC7G,IAAI,KAAK,EAAE;gBACP,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,qBAAqB,GAAG,QAAQ,CAAC;gBACtE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC;aACjD;iBAAM;gBACH,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,sBAAsB,GAAG,QAAQ,CAAC;gBACvE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBACzB,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,CAAC;aAClD;SACJ;IACL,CAAC;IAED,WAAW,CAAC,EAAE;QACV,gGAA2B,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;;AAvCQ,qBAAqB;IAJjC,wDAAS,CAAC;QACP,QAAQ,EAAE,0BAA0B;QACpC,uEAAqC;KACxC,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACTgD;AACS;AAC7B;AACgC;AAC7B;IAMpD,uBAAuB,SAAvB,uBAAwB,SAAQ,6FAAY;;;QACrD,uBAAkB,GAAG,KAAK,CAAC;IAoC/B,CAAC;IAjCG,MAAM,CAAC,YAAY;QACf,MAAM,QAAQ,GAAG,yFAAmC,EAAE,CAAC;QACvD,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,KAAK,mBAAmB,EAAE;YAC1D,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,4FAAsC,CAAC,CAAC,MAAM,EAAE,EAAE;YACtE,IAAI,CAAC,MAAM,GAAG,oFAAgC,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC,CAAC;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC;IAED,SAAS;QACL,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;gBAChC,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,EAAE,CAAC;aACtC;YACD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;gBAC9B,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC;aACpC;YACD,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;gBACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC1F,IAAI,QAAQ,EAAE;oBACV,KAAK,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;iBAClC;aACJ;SACJ;QACD,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IACpC,CAAC;;AApCQ,uBAAuB;IAJnC,wDAAS,CAAC;QACP,QAAQ,EAAE,4BAA4B;QACtC,yEAAuC;KAC1C,CAAC;GACW,uBAAuB;AAAA;IAwCd,aAAa,SAAb,aAAa;;QAoBrB,uBAAkB,GAAG,IAAI,uDAAY,EAAO;QAc5C,6BAAwB,GAAG,IAAI,uDAAY,EAAO;IAahE,CAAC;QA1CO,YAAY;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,CAAC,GAAG;QAChB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,IAAI,IAAI,EAAE;YACxE,IAAI,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,gGAAmB,EAAE,CAAC;YACjE,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE;gBACtC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aACzD;SACJ;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;QASG,kBAAkB;QAClB,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACxC,CAAC;IACD,IAAI,kBAAkB,CAAC,GAAG;QACtB,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC;QACnC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACrE,CAAC;IAED,YAAY;IAEZ,eAAe,CAAC,IAAY;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACnC,IAAI,GAAG,IAAI,GAAG,CAAC,aAAa,EAAE;YAC1B,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YACzB,2FAAqC,CAAC,GAAG,CAAC,EAAE,EAAE,gBAAgB,GAAG,IAAI,EAAE,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;SACnG;IACL,CAAC;IAED,SAAS;IACT,CAAC;;;2BA1CA,gDAAK;iCAgBL,iDAAM;iCAMN,gDAAK;uCAQL,iDAAM;;AAlCW,aAAa;IADlC,wDAAS,EAAE;GACU,aAAa;AAAA;;;;;;;;;;;;;;;;;;;;;;AClDO;AACU;IAMvC,mBAAmB,SAAnB,mBAAoB,SAAQ,6DAAa;;AAAzC,mBAAmB;IAJ/B,wDAAS,CAAC;QACP,QAAQ,EAAE,wBAAwB;QAClC,qEAAmC;KACtC,CAAC;GACW,mBAAmB;AAAA;;;;;;;;;;;;;;;;;;;;;;ACPU;AACU;IAMvC,kBAAkB,SAAlB,kBAAmB,SAAQ,6DAAa;;AAAxC,kBAAkB;IAJ9B,wDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,oEAAkC;KACrC,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;;;ACPgC;AACrB;IAM7B,uBAAuB,SAAvB,uBAAwB,SAAQ,oEAAc;IAGvD,kBAAkB;IAClB,CAAC;;AAHM,4BAAI,GAAQ,YAAa;AACzB,+BAAO,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,sCAAsC,EAAE,CAAC;AAFnF,uBAAuB;IAJnC,wDAAS,CAAC;QACP,QAAQ,EAAE,+BAA+B;QACzC,iFAA+C;KAClD,CAAC;GACW,uBAAuB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACPwC;AACX;AACF;AACU;IAM5D,qBAAqB,SAArB,qBAAsB,SAAQ,oEAAc;IAyBrD,YAAY,KAAwB,EAA+C,IAAI;QACnF,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAD4D,SAAI,GAAJ,IAAI;QArBvF,gBAAW,GAAG,IAAI,CAAC;QAEnB,qBAAqB;QACrB,gBAAW,GAAG,IAAI,2EAAmB,EAAE,CAAC;QAoBpC,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC;IACtC,CAAC;QAjBG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,GAAG,KAAK,IAAI,CAAC,eAAe,EAAE;YAC9B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YAC5B,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACpD;IACL,CAAC;IAMD,kBAAkB;QACd,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE;YACvF,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;IACD,sBAAsB;QAClB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAED,kBAAkB;QACd,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,MAAM,WAAW,GAAG,IAAI,2EAAmB,EAAE,CAAC;YAC9C,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YACpE,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YACtE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,UAAU,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC/B,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;;AAhDM,0BAAI,GAAQ,UAAW;AACvB,6BAAO,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;;;4CAuBC,iDAAM,SAAC,kFAA4B;;;yBAfzE,gDAAK;;AAVG,qBAAqB;IAJjC,wDAAS,CAAC;QACP,QAAQ,EAAE,6BAA6B;QACvC,+EAA6C;KAChD,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTlC;AAEA;AACA;AACA;AACA;AACA;IAGsB0B,UAAU,SAAVA,UAAU;;IAE5B,yBAAuC,IAAI1tD,GAAJ,EAAvC;IACA,2BAAyC,IAAIA,GAAJ,EAAzC;IAYU,6BAAwB,IAAIxS,uDAAJ,EAAxB;IAaA,sBAAiB,IAAIA,uDAAJ,EAAjB;IAYA,2BAAsB,IAAIA,uDAAJ,EAAtB;EAKb;;EAtCsB,IAAfskC,eAAe;IACf,OAAO,KAAKD,oBAAZ;EACH;;EACkB,IAAfC,eAAe,CAACjjC,GAAD,EAAI;IACnB,KAAKgjC,oBAAL,GAA4BhjC,GAA5B;IACA,KAAK8+D,qBAAL,CAA2Bn+D,IAA3B,CAAgCX,GAAhC;EACH;;EAMW,IAAR4rD,QAAQ;IACR,OAAO,KAAKmT,aAAZ;EACH;;EACW,IAARnT,QAAQ,CAAC5rD,GAAD,EAAI;IACZ,KAAK++D,aAAL,GAAqB/+D,GAArB;IACA,KAAKg/D,aAAL;IACA,KAAKC,cAAL,CAAoBt+D,IAApB,CAAyBX,GAAzB;EACH;;EAMgB,IAAblE,aAAa;IACb,OAAO,KAAKqzB,kBAAZ;EACH;;EACgB,IAAbrzB,aAAa,CAACkE,GAAD,EAAI;IACjB,KAAKmvB,kBAAL,GAA0BnvB,GAA1B;IACA,KAAKk/D,mBAAL,CAAyBv+D,IAAzB,CAA8BX,GAA9B;EACH;;EAIDg/D,aAAa,IACZ;;AA3C2B;;;UAM3BpgE,gDAAKA;;;UASLC,iDAAMA;;;UAGND,gDAAKA;;;UAULC,iDAAMA;;;UAGND,gDAAKA;;;UASLC,iDAAMA;;;AAxCWggE,UAAU,sDAD/B97D,wDAAS,EACsB,GAAV87D,UAAU,CAAV;AAAAA;IAgDAM,WAAW,SAAXA,WAAW,SAASN,UAAT,CAAmB;;;IAEhD,cAAS,EAAT;EA6CH;;EA3CG5iE,QAAQ;IACJ,MAAMkjD,MAAM,GAAG,CAAC;MACZn4C,OAAO,EAAEquC,gGAAA,CAA2C,iBAA3C,CADG;MAEZzpC,KAAK,EAAE;IAFK,CAAD,CAAf;;IAIA,IAAI,KAAKq3B,eAAT,EAA0B;MACtB,IAAI,KAAKA,eAAL,CAAqB1Q,WAArB,IAAoC,KAAK0Q,eAAL,CAAqB1Q,WAArB,CAAiCK,KAAzE,EAAgF;QAC5E,KAAKqQ,eAAL,CAAqB1Q,WAArB,CAAiCK,KAAjC,CAAuCz0B,OAAvC,CAA+C00B,IAAI,IAAG;UAClD,IAAIA,IAAI,CAACI,MAAT,EAAiB;YACbJ,IAAI,CAACI,MAAL,CAAY90B,OAAZ,CAAoB+0B,KAAK,IAAG;cACxB,IAAIA,KAAK,CAAC/jB,MAAV,EAAkB;gBACd+jB,KAAK,CAAC/jB,MAAN,CAAahR,OAAb,CAAqBg1B,GAAG,IAAG;kBACvBgsB,MAAM,CAAC9iD,IAAP,CAAY;oBACR2K,OAAO,EAAEmsB,GAAG,CAACvE,QAAJ,EADD;oBAERhjB,KAAK,EAAEunB,GAAG,CAACE;kBAFH,CAAZ;kBAIA,KAAK+rC,iBAAL,CAAuBzwD,GAAvB,CAA2BwkB,GAAG,CAACE,QAA/B,EAAyCF,GAAG,CAAC9d,KAA7C;gBACH,CAND;cAOH;YACJ,CAVD;UAWH;QACJ,CAdD;MAeH;;MACD,IAAI,KAAK4tB,eAAL,CAAqBzQ,WAArB,IAAoC,KAAKyQ,eAAL,CAAqBzQ,WAArB,CAAiCI,KAAzE,EAAgF;QAC5E,KAAKqQ,eAAL,CAAqBzQ,WAArB,CAAiCI,KAAjC,CAAuCz0B,OAAvC,CAA+C00B,IAAI,IAAG;UAClD,IAAIA,IAAI,CAACI,MAAT,EAAiB;YACbJ,IAAI,CAACI,MAAL,CAAY90B,OAAZ,CAAoB+0B,KAAK,IAAG;cACxB,IAAIA,KAAK,CAAC/jB,MAAV,EAAkB;gBACd+jB,KAAK,CAAC/jB,MAAN,CAAahR,OAAb,CAAqBg1B,GAAG,IAAG;kBACvBgsB,MAAM,CAAC9iD,IAAP,CAAY;oBACR2K,OAAO,EAAEmsB,GAAG,CAACvE,QAAJ,EADD;oBAERhjB,KAAK,EAAEunB,GAAG,CAACE;kBAFH,CAAZ;kBAIA,KAAK+rC,iBAAL,CAAuBzwD,GAAvB,CAA2BwkB,GAAG,CAACE,QAA/B,EAAyCF,GAAG,CAAC9d,KAA7C;gBACH,CAND;cAOH;YACJ,CAVD;UAWH;QACJ,CAdD;MAeH;IACJ;;IACD,KAAKlG,MAAL,GAAcgwC,MAAd;EACH;;AA9C+C;AAA9BggB,WAAW,sDADhCp8D,wDAAS,EACuB,GAAXo8D,WAAW,CAAX;AAAAA;IAkDAE,aAAa,SAAbA,aAAa,SAASR,UAAT,CAAmB;;;IAElD,gBAAW,EAAX;EAoCH;;EAlCG5iE,QAAQ;IACJ,MAAMwS,QAAQ,GAAG,CAAC;MACdzH,OAAO,EAAEquC,gGAAA,CAA2C,iBAA3C,CADK;MAEdzpC,KAAK,EAAE;IAFO,CAAD,CAAjB;;IAIA,IAAI,KAAKq3B,eAAT,EAA0B;MACtB,IAAI,KAAKA,eAAL,CAAqB1Q,WAArB,IAAoC,KAAK0Q,eAAL,CAAqB1Q,WAArB,CAAiCK,KAAzE,EAAgF;QAC5E,KAAKqQ,eAAL,CAAqB1Q,WAArB,CAAiCK,KAAjC,CAAuCz0B,OAAvC,CAA+C00B,IAAI,IAAG;UAClD,IAAIA,IAAI,CAACvkB,QAAT,EAAmB;YACfukB,IAAI,CAACvkB,QAAL,CAAcnQ,OAAd,CAAsBoQ,CAAC,IAAG;cACtBE,QAAQ,CAACpS,IAAT,CAAc;gBACV2K,OAAO,EAAEuH,CAAC,CAACqgB,QAAF,EADC;gBAEVhjB,KAAK,EAAE2C,CAAC,CAAC8kB;cAFC,CAAd;cAIA,KAAKisC,mBAAL,CAAyB3wD,GAAzB,CAA6BJ,CAAC,CAAC8kB,QAA/B,EAAyC9kB,CAAC,CAACylB,OAA3C;YACH,CAND;UAOH;QACJ,CAVD;MAWH;;MACD,IAAI,KAAKiP,eAAL,CAAqBzQ,WAArB,IAAoC,KAAKyQ,eAAL,CAAqBzQ,WAArB,CAAiCI,KAAzE,EAAgF;QAC5E,KAAKqQ,eAAL,CAAqBzQ,WAArB,CAAiCI,KAAjC,CAAuCz0B,OAAvC,CAA+C00B,IAAI,IAAG;UAClD,IAAIA,IAAI,CAACvkB,QAAT,EAAmB;YACfukB,IAAI,CAACvkB,QAAL,CAAcnQ,OAAd,CAAsBoQ,CAAC,IAAG;cACtBE,QAAQ,CAACpS,IAAT,CAAc;gBACV2K,OAAO,EAAEuH,CAAC,CAACqgB,QAAF,EADC;gBAEVhjB,KAAK,EAAE2C,CAAC,CAAC8kB;cAFC,CAAd;YAIH,CALD;UAMH;QACJ,CATD;MAUH;IACJ;;IACD,KAAK/kB,QAAL,GAAgBG,QAAhB;EACH;;AArCiD;AAAhC4wD,aAAa,sDADlCt8D,wDAAS,EACyB,GAAbs8D,aAAa,CAAb;AAAAA;IAyCAE,kBAAkB,SAAlBA,kBAAkB,SAASV,UAAT,CAAmB;;;IAEvD,gBAAW,EAAX;IACA,cAAS,EAAT;EAuEH;;EApEG5iE,QAAQ;IACJ;IACA,MAAMkjD,MAAM,GAAG,KAAKhwC,MAApB;IACA,MAAMV,QAAQ,GAAG,EAAjB;;IAEA,IAAI,KAAKw0B,eAAT,EAA0B;MACtB,IAAI,KAAKA,eAAL,CAAqB1Q,WAArB,IAAoC,KAAK0Q,eAAL,CAAqB1Q,WAArB,CAAiCK,KAAzE,EAAgF;QAC5E,KAAKqQ,eAAL,CAAqB1Q,WAArB,CAAiCK,KAAjC,CAAuCz0B,OAAvC,CAA+C00B,IAAI,IAAG;UAClD,IAAIA,IAAI,CAACI,MAAT,EAAiB;YACbJ,IAAI,CAACI,MAAL,CAAY90B,OAAZ,CAAoB+0B,KAAK,IAAG;cACxB,IAAIA,KAAK,CAAC/jB,MAAV,EAAkB;gBACd+jB,KAAK,CAAC/jB,MAAN,CAAahR,OAAb,CAAqBg1B,GAAG,IAAG;kBACvBgsB,MAAM,CAAC9iD,IAAP,CAAY;oBACR2K,OAAO,EAAEmsB,GAAG,CAACvE,QAAJ,EADD;oBAERhjB,KAAK,EAAEunB,GAAG,CAACE;kBAFH,CAAZ;kBAIA,KAAK+rC,iBAAL,CAAuBzwD,GAAvB,CAA2BwkB,GAAG,CAACE,QAA/B,EAAyCF,GAAG,CAAC9d,KAA7C;gBACH,CAND;cAOH;YACJ,CAVD;UAWH;;UACD,IAAIwd,IAAI,CAACvkB,QAAT,EAAmB;YACfukB,IAAI,CAACvkB,QAAL,CAAcnQ,OAAd,CAAsBoQ,CAAC,IAAG;cACtBE,QAAQ,CAACpS,IAAT,CAAc;gBACV2K,OAAO,EAAEuH,CAAC,CAACqgB,QAAF,EADC;gBAEVhjB,KAAK,EAAE2C,CAAC,CAAC8kB;cAFC,CAAd;cAIA,KAAKisC,mBAAL,CAAyB3wD,GAAzB,CAA6BJ,CAAC,CAAC8kB,QAA/B,EAAyC9kB,CAAC,CAACylB,OAA3C;YACH,CAND;UAOH;QACJ,CAvBD;MAwBH;;MACD,IAAI,KAAKiP,eAAL,CAAqBzQ,WAArB,IAAoC,KAAKyQ,eAAL,CAAqBzQ,WAArB,CAAiCI,KAAzE,EAAgF;QAC5E,KAAKqQ,eAAL,CAAqBzQ,WAArB,CAAiCI,KAAjC,CAAuCz0B,OAAvC,CAA+C00B,IAAI,IAAG;UAClD,IAAIA,IAAI,CAACI,MAAT,EAAiB;YACbJ,IAAI,CAACI,MAAL,CAAY90B,OAAZ,CAAoB+0B,KAAK,IAAG;cACxB,IAAIA,KAAK,CAAC/jB,MAAV,EAAkB;gBACd+jB,KAAK,CAAC/jB,MAAN,CAAahR,OAAb,CAAqBg1B,GAAG,IAAG;kBACvBgsB,MAAM,CAAC9iD,IAAP,CAAY;oBACR2K,OAAO,EAAEmsB,GAAG,CAACvE,QAAJ,EADD;oBAERhjB,KAAK,EAAEunB,GAAG,CAACE;kBAFH,CAAZ;kBAIA,KAAK+rC,iBAAL,CAAuBzwD,GAAvB,CAA2BwkB,GAAG,CAACE,QAA/B,EAAyCF,GAAG,CAAC9d,KAA7C;gBACH,CAND;cAOH;YACJ,CAVD;UAWH;;UACD,IAAIwd,IAAI,CAACvkB,QAAT,EAAmB;YACfukB,IAAI,CAACvkB,QAAL,CAAcnQ,OAAd,CAAsBoQ,CAAC,IAAG;cACtBE,QAAQ,CAACpS,IAAT,CAAc;gBACV2K,OAAO,EAAEuH,CAAC,CAACqgB,QAAF,EADC;gBAEVhjB,KAAK,EAAE2C,CAAC,CAAC8kB;cAFC,CAAd;cAIA,KAAKisC,mBAAL,CAAyB3wD,GAAzB,CAA6BJ,CAAC,CAAC8kB,QAA/B,EAAyC9kB,CAAC,CAACylB,OAA3C;YACH,CAND;UAOH;QACJ,CAvBD;MAwBH;IACJ;;IACD,KAAK7kB,MAAL,GAAcgwC,MAAd;;IACA,IAAI,KAAKhwC,MAAL,CAAYtR,MAAZ,GAAqB,CAArB,IAA0B,CAAC,KAAK+tD,QAAL,CAAc4T,aAA7C,EAA4D;MACxD,KAAK5T,QAAL,CAAc4T,aAAd,GAA8B,KAAKrwD,MAAL,CAAY,CAAZ,EAAevD,KAA7C;IACH;;IACD,KAAK0C,QAAL,GAAgBG,QAAhB;;IACA,IAAI,KAAKH,QAAL,CAAczQ,MAAd,GAAuB,CAAvB,IAA4B,CAAC,KAAK+tD,QAAL,CAAc6T,eAA/C,EAAgE;MAC5D,KAAK7T,QAAL,CAAc6T,eAAd,GAAgC,KAAKnxD,QAAL,CAAc,CAAd,EAAiB1C,KAAjD;IACH;EACJ;;AAzEsD;AAArC2zD,kBAAkB,sDADvCx8D,wDAAS,EAC8B,GAAlBw8D,kBAAkB,CAAlB;AAAAA;AA4EhB,MAAgBG,wBAAhB,SAAiDd,uEAAjD,CAAoE;EACtEe,UAAU,CAACtjB,IAAD,EAAYlG,EAAZ,EAAmB;IACzB,IAAIkG,IAAI,IAAIA,IAAI,CAACmjB,aAAb,IAA8BrpB,EAAlC,EAAsC;MAClC,MAAMqB,SAAS,GAAGzB,0FAAA,CAAwCI,EAAxC,EAA4CkG,IAAI,CAACmjB,aAAjD,CAAlB;;MACA,IAAIhoB,SAAJ,EAAe;QACX,OAAOkJ,2FAAA,CAAgClJ,SAAS,CAACxwC,OAA1C,CAAP;MACH;IACJ;;IACD,OAAO,EAAP;EACH;;EAGKovC,UAAU,CAACiG,IAAD,EAAYlG,EAAZ,EAAmB;IAAA;MAC/B,IAAIE,OAAO,GAAG,EAAd;;MACA,IAAIgG,IAAI,IAAIlG,EAAZ,EAAgB;QACZ,MAAMqB,SAAS,GAAGzB,0FAAA,CAAwCI,EAAxC,EAA4CkG,IAAI,CAACmjB,aAAjD,CAAlB;;QAEA,IAAIhoB,SAAS,EAAEniC,KAAf,EAAsB;UAClB,MAAM4hC,OAAO,SAASjpC,kFAAA,CAA2BwpC,SAAS,CAACniC,KAArC,EAA4C8gC,EAAE,CAACziB,WAA/C,CAAtB;;UAEA,IAAIujB,OAAJ,EAAa;YAET,MAAMQ,SAAS,GAAGR,OAAO,GAAG,QAAQA,OAAO,CAACtrC,IAAnB,GAA0B,EAAnD;YACA,MAAM+rC,UAAU,GAAGT,OAAO,CAAC7nC,MAAR,EAAgBzD,IAAhB,GAAuB,QAAQsrC,OAAO,CAAC7nC,MAAR,CAAezD,IAA9C,GAAqD,EAAxE;YACA,MAAMgsC,SAAS,GAAGV,OAAO,CAAC7nC,MAAR,EAAgBA,MAAhB,EAAwBzD,IAAxB,GAA+BsrC,OAAO,CAAC7nC,MAAR,CAAeA,MAAf,CAAsBzD,IAArD,GAA4D,EAA9E;YAIA0qC,OAAO,IAAIhB,gGAAA,CAA2C,WAA3C,IAA0DsC,SAA1D,GAAsED,UAAtE,GAAmFD,SAAnF,GAA+F,IAA/F,GAAsGR,OAAO,CAACjwC,OAAzH;UAEH;QAEJ;;QACD,OAAOqvC,OAAP;MAEH;IAvB8B;EAwBlC;;AApCqE;AAuCpE,MAAgBupB,0BAAhB,SAAmDhB,uEAAnD,CAAsE;EACxEe,UAAU,CAACtjB,IAAD,EAAYlG,EAAZ,EAAmB;IACzB,IAAIkG,IAAI,IAAIA,IAAI,CAACojB,eAAb,IAAgCtpB,EAApC,EAAwC;MACpC,MAAMqE,WAAW,GAAGzE,wFAAA,CAAsCI,EAAtC,EAA0CkG,IAAI,CAACojB,eAA/C,CAApB;;MACA,IAAIjlB,WAAJ,EAAiB;QACb,OAAOkG,2FAAA,CAAgClG,WAAW,CAACxzC,OAA5C,CAAP;MACH;IACJ;;IACD,OAAO,EAAP;EACH;;EAEMovC,UAAU,CAACiG,IAAD,EAAYlG,EAAZ,EAAmB;IAAA;MAChC,IAAIE,OAAO,GAAG,EAAd;;MACA,IAAIgG,IAAI,IAAIA,IAAI,CAACojB,eAAb,IAAgCtpB,EAApC,EAAwC;QACpC,MAAMpiB,OAAO,GAAGgiB,wFAAA,CAAsCI,EAAtC,EAA0CkG,IAAI,CAACojB,eAA/C,CAAhB;;QAEA,IAAI1rC,OAAO,EAAEC,OAAb,EAAsB;UAClB,MAAMsiB,GAAG,SAAStoC,oFAAA,CAA6B+lB,OAAO,CAACC,OAArC,EAA8CmiB,EAAE,CAACziB,WAAjD,CAAlB;UACA,MAAM6iB,WAAW,GAAGD,GAAG,CAAC9nC,IAAJ,EAAU7C,IAAV,GAAiB2qC,GAAG,CAAC9nC,IAAJ,CAAS7C,IAA1B,GAAiC,EAArD;UACA,MAAM6qC,aAAa,GAAGF,GAAG,CAACG,MAAJ,GAAa,QAAQH,GAAG,CAACG,MAAzB,GAAkC,EAAxD;UACA,MAAMC,WAAW,GAAGJ,GAAG,CAAC3qC,IAAJ,GAAW,QAAQ2qC,GAAG,CAAC3qC,IAAvB,GAA8B,EAAlD;UAGA0qC,OAAO,IAAIhB,gGAAA,CAA2C,aAA3C,IAA4DkB,WAA5D,GAA0EC,aAA1E,GAA0FE,WAA1F,GAAwG,IAAxG,GAA+GJ,GAAG,CAACtvC,OAA9H;QAEH;MACJ;;MACD,OAAOqvC,OAAP;IAhBgC;EAiBnC;;AA5BuE;AA+BtE,MAAgBwpB,+BAAhB,SAAwDjB,uEAAxD,CAA2E;EAC7Ee,UAAU,CAACtjB,IAAD,EAAYlG,EAAZ,EAAmB;IACzB,IAAIkG,IAAI,IAAIlG,EAAZ,EAAgB;MACZ,IAAIqE,WAAJ;MACA,IAAIhD,SAAJ;;MACA,IAAI6E,IAAI,CAACojB,eAAT,EAA0B;QACtBjlB,WAAW,GAAGzE,wFAAA,CAAsCI,EAAtC,EAA0CkG,IAAI,CAACojB,eAA/C,CAAd;MACH;;MACD,IAAIpjB,IAAI,CAACmjB,aAAT,EAAwB;QACpBhoB,SAAS,GAAGzB,0FAAA,CAAwCI,EAAxC,EAA4CkG,IAAI,CAACmjB,aAAjD,CAAZ;MACH;;MACD,IAAIhlB,WAAJ,EAAiB;QACb,IAAIhD,SAAJ,EAAe;UACX,OAAOkJ,2FAAA,CAAgClG,WAAW,CAACxzC,OAA5C,IAAuD,KAAvD,GACH05C,2FAAA,CAAgClJ,SAAS,CAACxwC,OAA1C,CADJ;QAEH,CAHD,MAGO;UACH,OAAO05C,2FAAA,CAAgClG,WAAW,CAACxzC,OAA5C,CAAP;QACH;MACJ,CAPD,MAOO,IAAIwwC,SAAJ,EAAe;QAClB,OAAOkJ,2FAAA,CAAgClJ,SAAS,CAACxwC,OAA1C,CAAP;MACH;IACJ;;IACD,OAAO,EAAP;EACH;;EAEKovC,UAAU,CAACiG,IAAD,EAAYlG,EAAZ,EAAmB;IAAA;MAC/B,IAAIE,OAAO,GAAG,EAAd;;MACA,IAAIgG,IAAI,IAAKlG,EAAb,EAAiB;QACb,MAAMqB,SAAS,GAAIzB,0FAAA,CAAwCI,EAAxC,EAA4CkG,IAAI,CAACmjB,aAAjD,CAAnB;;QAEA,IAAIhoB,SAAS,EAAEniC,KAAf,EAAuB;UACnB,MAAM4hC,OAAO,SAASjpC,kFAAA,CAA2BwpC,SAAS,CAACniC,KAArC,EAA4C8gC,EAAE,CAACziB,WAA/C,CAAtB;;UAEA,IAAIujB,OAAJ,EAAa;YAET,MAAMQ,SAAS,GAAGR,OAAO,GAAG,QAAQA,OAAO,CAACtrC,IAAnB,GAA0B,EAAnD;YACA,MAAM+rC,UAAU,GAAGT,OAAO,CAAC7nC,MAAR,EAAgBzD,IAAhB,GAAuB,QAAQsrC,OAAO,CAAC7nC,MAAR,CAAezD,IAA9C,GAAqD,EAAxE;YACA,MAAMgsC,SAAS,GAAGV,OAAO,CAAC7nC,MAAR,EAAgBA,MAAhB,EAAwBzD,IAAxB,GAA+BsrC,OAAO,CAAC7nC,MAAR,CAAeA,MAAf,CAAsBzD,IAArD,GAA4D,EAA9E;YAIA0qC,OAAO,IAAIhB,gGAAA,CAA2C,WAA3C,IAA0DsC,SAA1D,GAAsED,UAAtE,GAAmFD,SAAnF,GAA+F,IAA/F,GAAsGR,OAAO,CAACjwC,OAA9G,GAAuH,IAAlI;UAEH;QAEJ;;QAED,MAAM+sB,OAAO,GAAGgiB,wFAAA,CAAsCI,EAAtC,EAA0CkG,IAAI,CAACojB,eAA/C,CAAhB;;QAEA,IAAI1rC,OAAO,EAAEC,OAAb,EAAsB;UAClB,MAAMsiB,GAAG,SAAStoC,oFAAA,CAA6B+lB,OAAO,CAACC,OAArC,EAA8CmiB,EAAE,CAACziB,WAAjD,CAAlB;UACA,MAAM6iB,WAAW,GAAGD,GAAG,CAAC9nC,IAAJ,EAAU7C,IAAV,GAAiB2qC,GAAG,CAAC9nC,IAAJ,CAAS7C,IAA1B,GAAiC,EAArD;UACA,MAAM6qC,aAAa,GAAGF,GAAG,CAACG,MAAJ,GAAa,QAAQH,GAAG,CAACG,MAAzB,GAAkC,EAAxD;UACA,MAAMC,WAAW,GAAGJ,GAAG,CAAC3qC,IAAJ,GAAW,QAAQ2qC,GAAG,CAAC3qC,IAAvB,GAA8B,EAAlD;UAGA0qC,OAAO,IAAIhB,gGAAA,CAA2C,aAA3C,IAA6DkB,WAA7D,GAA2EC,aAA3E,GAA2FE,WAA3F,GAAyG,IAAzG,GAAgHJ,GAAG,CAACtvC,OAA/H;QAEH;;QACD,OAAOqvC,OAAP;MAEH;IApC8B;EAqClC;;AA9D4E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtS/B;AACiB;AACU;AAC8C;AAC5C;AACA;AACS;AACnB;AACI;IAM5D,kBAAkB,SAAlB,kBAAmB,SAAQ,qDAAU;IA0B9C,YAAoB,OAA4B;QAC5C,KAAK,EAAE,CAAC;QADQ,YAAO,GAAP,OAAO,CAAqB;QAvBhD,eAAU,GAAG,EAAE,CAAC;QAChB,cAAS,GAAqB,0FAAyB,CAAC;IAwBxD,CAAC;IAtBD,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,iGAA4B,CAAC;QACtC,GAAG,CAAC,OAAO,GAAG,oBAAoB,CAAC;QACnC,GAAG,CAAC,eAAe,GAAG,kBAAkB,CAAC;QACzC,GAAG,CAAC,cAAc,GAAG,IAAI,uBAAuB,EAAE,CAAC;QACnD,GAAG,CAAC,QAAQ,GAAG,0FAAqB,CAAC;QACrC,GAAG,CAAC,QAAQ,GAAG,qEAAiB,CAAC;QACjC,OAAO,GAAG,CAAC;IACf,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,SAAS;QACvB,OAAO;YACH,QAAQ,EAAE,iGAA4B;YACtC,QAAQ,EAAE,IAAI;YACd,eAAe,EAAE,SAAS;YAC1B,wBAAwB,EAAE,KAAK;SAClC,CAAC;IACN,CAAC;IAMD,QAAQ;QACJ,MAAM,KAAK,GAAG;YACV,KAAK,EAAE,qFAAoB;SAC9B,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC;QAChH,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,0HAAqD,CAAC,IAAI,CAAC,oBAAoB,EAC3E,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAClD,IAAI,MAAM,EAAE;oBACR,MAAM,SAAS,GAAG,EAAE,CAAC;oBAErB,MAAM,WAAW,GAAG,IAAI,mGAAoC,EAAE,CAAC;oBAC/D,WAAW,CAAC,IAAI,GAAG,SAAS,CAAC;oBAC7B,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC;oBAC1B,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAE5B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACxB,MAAM,GAAG,GAAG,IAAI,uFAAwB,EAAE,CAAC;wBAC3C,IAAI,CAAC,CAAC,WAAW,EAAE;4BACf,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,WAAW,GAAG,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;yBAC3D;6BAAM;4BACH,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;yBACnC;wBACD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;wBACzD,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACnC,CAAC,CAAC,CAAC;oBAEH,MAAM,SAAS,GAAG,IAAI,mGAAoC,EAAE,CAAC;oBAC7D,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC;oBAC3B,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAE1B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACtB,MAAM,GAAG,GAAG,IAAI,uFAAwB,EAAE,CAAC;wBAC3C,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;wBACxB,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC;wBACjD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACjC,CAAC,CAAC,CAAC;oBAEH,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;iBAC9B;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;;;;;AAxEQ,kBAAkB;IAJ9B,yDAAS,CAAC;QACP,QAAQ,EAAE,sBAAsB;QAChC,4EAA0C;KAC7C,CAAC;GACW,kBAAkB;AAAA;AA2ExB,MAAM,uBAAwB,SAAQ,qEAA0B;IACnE,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,OAAO,EAAE;YACT,OAAO,OAAO,CAAE;SACnB;QACD,OAAO,gGAA0C,CAAC,oBAAoB,CAAC,CAAC;IAC5E,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChGgE;AACK;AACJ;AAC+B;AAC5B;AACL;AACL;AAC8D;AAC3D;AACa;AACW;IAM7E,2BAA2B,SAA3B,2BAA4B,SAAQ,mGAAgC;IAgB7E,YAAoB,OAA8B,EAAU,KAAwB;QAChF,KAAK,EAAE,CAAC;QADQ,YAAO,GAAP,OAAO,CAAuB;QAAU,UAAK,GAAL,KAAK,CAAmB;QAbpF,aAAQ,GAAG,EAAE,CAAC;IAed,CAAC;IAbD,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,2BAA2B,CAAC,MAAM,CAAC;QAC5C,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC;QACzB,GAAG,CAAC,eAAe,GAAG,2BAA2B,CAAC;QAClD,GAAG,CAAC,cAAc,GAAG,IAAI,wCAAwC,EAAE,CAAC;QACpE,GAAG,CAAC,QAAQ,GAAG,4HAAkC,CAAC;QAClD,GAAG,CAAC,QAAQ,GAAG,uEAAmB,CAAC;QACnC,OAAO,GAAG,CAAC;IACf,CAAC;IAMD,QAAQ;QACJ,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,UAAU,CAAC;YACf,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM;gBACjG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACzD,IAAI,KAAK,EAAE;oBACP,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;iBAChC;aACJ;YACD,IAAI,IAAI,CAAC;YACT,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,IAAI,qEAAe,EAAE;gBAChE,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,KAAK,EAAE;oBACtF,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACpD,IAAI,CAAC,CAAC,QAAQ,EAAE;4BACZ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACnB,IAAI,EAAE,GAAG,CAAC,CAAC,QAAQ,IAAI,UAAU,EAAE;oCAC/B,IAAI,GAAG,CAAC,CAAC;iCACZ;gCACD,WAAW,CAAC,IAAI,CAAC;oCACb,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;oCACrB,KAAK,EAAE,CAAC,CAAC,QAAQ;iCACpB,CAAC,CAAC;4BACP,CAAC,CAAC,CAAC;yBACN;oBACL,CAAC,CAAC,CAAC;iBACN;aACJ;iBAAM;gBACH,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,KAAK,EAAE;oBACtF,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACpD,IAAI,CAAC,CAAC,QAAQ,EAAE;4BACZ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACnB,IAAI,EAAE,GAAG,CAAC,CAAC,QAAQ,IAAI,UAAU,EAAE;oCAC/B,IAAI,GAAG,CAAC,CAAC;iCACZ;gCACD,WAAW,CAAC,IAAI,CAAC;oCACb,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;oCACrB,KAAK,EAAE,CAAC,CAAC,QAAQ;iCACpB,CAAC,CAAC;4BACP,CAAC,CAAC,CAAC;yBACN;oBACL,CAAC,CAAC,CAAC;iBACN;aACJ;YACD,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC5B,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE;gBACxF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAClC,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBACjE,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;oBACpE,kFAA0B,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wBAC9E,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;4BACxF,MAAM,IAAI,GAAG,EAAE,CAAC;4BAChB,IAAI,MAAM,EAAE;gCACR,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCACf,IAAI,CAAC,IAAI,CAAC;wCACN,OAAO,EAAE,CAAC,CAAC,OAAO;wCAClB,KAAK,EAAE,CAAC,CAAC,EAAE;qCACd,CAAC,CAAC;gCACP,CAAC,CAAC,CAAC;6BACN;4BACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;4BACpB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;wBAC/B,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;iBACN;aACJ;SACJ;IACL,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;YACjD,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,wEAAc,EAAE,CAAC;SACnD;IACL,CAAC;;AA7FM,kCAAM,GAAG,wBAAwB,CAAC;;;;;AADhC,2BAA2B;IAJvC,yDAAS,CAAC;QACP,QAAQ,EAAE,qCAAqC;QAC/C,sFAAoD;KACvD,CAAC;GACW,2BAA2B;AAAA;AAiGjC,MAAM,wCAAyC,SAAQ,uEAAmB;IAC7E,UAAU,CAAC,YAAiB;QACxB,IAAI,+EAAwB,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,aAAa,CAAC,aAAa,EAAE;YACpF,OAAO,YAAY,CAAC,aAAa,CAAC,aAAa,CAAC,SAAS,IAAI,+EAAqB,CAAC;SACtF;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,OAAO,gGAA0C,CAAC,UAAU,CAAC,CAAC;IAClE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AC1HqC;AACgB;AACuB;AACG;AACvC;IAGvB,gCAAgC,SAAhC,gCAAiC,SAAQ,qDAAU;IAIrE;QACI,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,8EAA4B,CAAC,mFAAiB,CAAC,CAAC;IACxE,CAAC;IAED,aAAa,CAAC,EAAE;QACZ,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,EAAE;YACxC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9E,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,CAAC,IAAI,sFAAyB,EAAE,CAAC,CAAC;aACrE;SACJ;IACL,CAAC;IAED,WAAW,CAAC,SAAS;QACjB,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;YACjC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;SACjC;IACL,CAAC;IAED,UAAU,CAAC,IAAI;QACX,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;YACxB,MAAM,GAAG,mFAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAC7D,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAiB,KAAK,0FAAwB;gBAC7D,IAAI,CAAC,SAAS,CAAC,iBAAiB,KAAK,2FAAyB;gBAC9D,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE;gBAC3C,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gBACtC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,KAAK,2FAAyB;oBAC/D,IAAI,CAAC,SAAS,CAAC,iBAAiB,KAAK,8FAA4B,CAAC;oBAClE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE;oBAC3C,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;iBAC3C;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,OAAO;QACH,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,MAAM,IAAI,GAAG,IAAI,sFAAyB,EAAE,CAAC;YAC7C,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;gBAC/B,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC5C;iBAAM;gBACH,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC;aAC1C;YACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC5B;IACL,CAAC;IAED,UAAU;QACN,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACtH,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACvE,IAAI,KAAK,GAAG,CAAC,EAAE;gBACX,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC/C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;aACxD;SACJ;IACL,CAAC;IAED,MAAM;QACF,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;YAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACvE,IAAI,KAAK,GAAG,CAAC,EAAE;gBACX,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC/C,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;aACjE;SACJ;IACL,CAAC;IAED,SAAS;QACL,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;YAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACvE,IAAI,KAAK,GAAG,CAAC,EAAE;gBACX,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC/C,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;aACzE;SACJ;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;YAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACvE,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC/C,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;aACzE;SACJ;IACL,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;YAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACvE,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC/C,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aACzD;SACJ;IACL,CAAC;;;AArGiB,gCAAgC;IADrD,wDAAS,EAAE;GACU,gCAAgC;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPJ;AACwB;AACJ;AAC+B;AAC5B;AACL;AACL;AAC4D;AACzD;AACa;AACW;IAM7E,0BAA0B,SAA1B,0BAA2B,SAAQ,mGAAgC;IA6F5E,YAAoB,OAA8B;QAC9C,KAAK,EAAE,CAAC;QADQ,YAAO,GAAP,OAAO,CAAuB;QA3FlD,WAAM,GAAG,EAAE,CAAC;QAEZ,YAAO,GAAG,EAAE,CAAC;QACb,SAAI,GAAG,EAAE,CAAC;QAEV,gBAAW,GAAG,EAAE,CAAC;QACjB,aAAQ,GAAG,EAAE,CAAC;QACd,cAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,cAAS,GAAG,+EAAqB,CAAC;QAClC,qBAAgB,GAAG,KAAK,CAAC;IAoFzB,CAAC;IAlFD,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,0BAA0B,CAAC,MAAM,CAAC;QAC3C,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;QACxB,GAAG,CAAC,eAAe,GAAG,0BAA0B,CAAC;QACjD,GAAG,CAAC,cAAc,GAAG,IAAI,uCAAuC,EAAE,CAAC;QACnE,GAAG,CAAC,QAAQ,GAAG,0HAAiC,CAAC;QACjD,GAAG,CAAC,QAAQ,GAAG,uEAAmB,CAAC;QACnC,OAAO,GAAG,CAAC;IACf,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW;QAC5C,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACtB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBACvC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;4BACxB,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gCACzC,MAAM,QAAQ,GAAG,EAAE,CAAC;gCACpB,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oCACvB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gCAClC,CAAC,CAAC,CAAC;gCACH,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gCACxD,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;gCACnD,MAAM,CAAC,IAAI,CAAC;oCACR,OAAO,EAAE,CAAC,GAAG,QAAQ,EAAE,gGAA0C,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;oCAC9F,OAAO,EAAE,SAAS,CAAC,QAAQ;oCAC3B,SAAS,EAAE,IAAI;iCAClB,CAAC,CAAC;gCACH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCACtB,MAAM,CAAC,IAAI,CAAC;wCACR,OAAO,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;wCAChD,OAAO,EAAE,SAAS,CAAC,QAAQ;wCAC3B,SAAS,EAAE,CAAC,CAAC,QAAQ;qCACxB,CAAC,CAAC;gCACP,CAAC,CAAC,CAAC;6BACN;wBACL,CAAC,CAAC,CAAC;wBACH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BACtB,WAAW,CAAC,IAAI,CAAC;gCACb,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;gCACrB,KAAK,EAAE,CAAC,CAAC,QAAQ;6BACpB,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;4BACxB,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gCACzC,MAAM,QAAQ,GAAG,EAAE,CAAC;gCACpB,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oCACvB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gCAClC,CAAC,CAAC,CAAC;gCACH,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gCACxD,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;gCACnD,MAAM,CAAC,IAAI,CAAC;oCACR,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;oCAC7B,OAAO,EAAE,SAAS,CAAC,QAAQ;oCAC3B,SAAS,EAAE,IAAI;iCAClB,CAAC,CAAC;6BACN;wBACL,CAAC,CAAC,CAAC;qBACN;iBACJ;qBAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACtB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACtB,MAAM,CAAC,IAAI,CAAC;4BACR,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;4BACrB,OAAO,EAAE,IAAI;4BACb,SAAS,EAAE,CAAC,CAAC,QAAQ;yBACxB,CAAC,CAAC;wBACH,WAAW,CAAC,IAAI,CAAC;4BACb,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;4BACrB,KAAK,EAAE,CAAC,CAAC,QAAQ;yBACpB,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;iBACN;YACL,CAAC,CAAC,CAAC;SACN;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAMD,QAAQ;QACJ,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa;YAChE,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,SAAS,KAAK,QAAQ,EAAE;YACrE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC;SACpE;QACD,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,MAAM,GAAG,0BAA0B,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/H,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7H,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,KAAK,qEAAe,CAAC;YACnF,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,GAAG,GAAG,IAAI,CAAC;gBACf,IAAI,IAAI,GAAG,IAAI,CAAC;gBAChB,IAAI,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE;oBACpC,IAAI,IAAI,CAAC,gBAAgB,EAAE;wBACvB,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;qBAC5C;yBAAM;wBACH,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;qBAC7C;iBACJ;gBACD,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;oBAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,aAAa,CAAC,aAAa,IAAI,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC;oBACnH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;wBACjF,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;oBACrB,CAAC,CAAC,CAAC;iBACN;qBAAM,IAAI,GAAG,EAAE;oBACZ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC;iBAC1F;gBACD,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;oBAClC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,aAAa,CAAC,aAAa,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;oBAChH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;wBACjF,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;oBACzB,CAAC,CAAC,CAAC;iBACN;qBAAM,IAAI,IAAI,EAAE;oBACb,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;iBACvF;aACJ;SACJ;IACL,CAAC;IAED,eAAe,CAAC,QAAQ;QACpB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,QAAQ,EAAE;gBACV,IAAI,IAAI,CAAC,cAAc,EAAE;oBACrB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,KAAK,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE;wBAC/F,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;qBACtE;oBACD,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,KAAK,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;wBAClE,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;wBAC/D,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;wBACtC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;4BACjF,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;wBACrB,CAAC,CAAC,CAAC;qBACN;iBACJ;qBAAM;oBACH,IAAI,IAAI,CAAC,gBAAgB,EAAE;wBACvB,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;qBAC3C;oBACD,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;oBACtC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;oBACtC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;iBACrB;aACJ;iBAAM;gBACH,IAAI,IAAI,CAAC,YAAY,EAAE;oBACnB,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,KAAK,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE;wBAC9F,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;qBACpE;oBACD,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,KAAK,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;wBAChE,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;wBAC7D,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC;wBACzC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;4BACjF,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;wBACzB,CAAC,CAAC,CAAC;qBACN;iBACJ;qBAAM;oBACH,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;wBACxB,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;qBAC3C;oBACD,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;oBACtC,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC;oBACzC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;iBACzB;aACJ;SACJ;IACL,CAAC;IAED,WAAW,CAAC,KAAK,EAAE,YAAY;QAC3B,IAAI,KAAK,EAAE;YACP,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,OAAO,EAAE;gBACT,YAAY,CAAC,OAAO,CAAC,CAAC;aACzB;iBAAM;gBACH,MAAM,IAAI,GAAG,EAAE,CAAC;gBAChB,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE;oBACpE,kFAA0B,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wBAC9E,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;4BACxF,IAAI,MAAM,EAAE;gCACR,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCACf,IAAI,CAAC,IAAI,CAAC;wCACN,OAAO,EAAE,CAAC,CAAC,OAAO;wCAClB,KAAK,EAAE,CAAC,CAAC,EAAE;qCACd,CAAC,CAAC;gCACP,CAAC,CAAC,CAAC;6BACN;4BACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;4BAChC,YAAY,CAAC,IAAI,CAAC,CAAC;wBACvB,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;iBACN;qBAAM;oBACH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAChC,YAAY,CAAC,IAAI,CAAC,CAAC;iBACtB;aACJ;SACJ;aAAM;YACH,YAAY,CAAC,EAAE,CAAC,CAAC;SACpB;IACL,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;gBAC3B,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,wEAAc,EAAE,CAAC;aACnD;SACJ;IACL,CAAC;;AA3NM,iCAAM,GAAG,uBAAuB,CAAC;;;;AAD/B,0BAA0B;IAJtC,yDAAS,CAAC;QACP,QAAQ,EAAE,oCAAoC;QAC9C,qFAAmD;KACtD,CAAC;GACW,0BAA0B;AAAA;AA+NhC,MAAM,uCAAwC,SAAQ,uEAAmB;IAC5E,UAAU,CAAC,YAAiB;QACxB,IAAI,+EAAwB,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,aAAa,CAAC,aAAa,EAAE;YACpF,QAAQ,YAAY,CAAC,aAAa,CAAC,aAAa,CAAC,SAAS,EAAE;gBACxD,KAAK,6EAAmB,CAAC;gBACzB,KAAK,4EAAkB,CAAC;gBACxB,KAAK,+EAAqB,CAAC;gBAC3B,KAAK,8EAAoB,CAAC;gBAC1B,KAAK,6EAAmB,CAAC;gBACzB,KAAK,gFAAsB,CAAC;gBAC5B,KAAK,oFAA0B;oBAC3B,OAAO,IAAI,CAAC;aACnB;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,OAAO,gGAA0C,CAAC,sBAAsB,CAAC,CAAC;IAC9E,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjQ6C;AACoB;AAC+B;AACjC;AACL;AACkD;AAC/C;AAClB;AAC6B;IAMhE,qBAAqB,SAArB,qBAAsB,SAAQ,qDAAU;;;QAEjD,WAAM,GAAG,EAAE,CAAC;QACZ,aAAQ,GAAG,EAAE,CAAC;QACd,qBAAgB,GAAG,KAAK,CAAC;IAiD7B,CAAC;IA9CG,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,qBAAqB,CAAC,MAAM,CAAC;QACtC,GAAG,CAAC,OAAO,GAAG,sBAAsB,CAAC;QACrC,GAAG,CAAC,eAAe,GAAG,qBAAqB,CAAC;QAC5C,GAAG,CAAC,cAAc,GAAG,IAAI,kCAAkC,EAAE,CAAC;QAC9D,GAAG,CAAC,QAAQ,GAAG,gHAA4B,CAAC;QAC5C,GAAG,CAAC,QAAQ,GAAG,uEAAmB,CAAC;QACnC,OAAO,GAAG,CAAC;IACf,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,MAAM,GAAG,mGAAuC,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/H,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;gBACrB,OAAO,EAAE,gGAA0C,CAAC,QAAQ,CAAC;gBAC7D,OAAO,EAAE,CAAC,CAAC;gBACX,SAAS,EAAE,CAAC,CAAC;aAChB,CAAC,CAAC;YACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,KAAK,qEAAe,CAAC;YACnF,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC5E,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;oBAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,aAAa,CAAC,aAAa,IAAI,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC;iBACtH;qBAAM,IAAI,GAAG,EAAE;oBACZ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC;iBAC1F;aACJ;SACJ;IACL,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,KAAK,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE;oBAC/F,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;iBACtE;gBACD,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,KAAK,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;oBAClE,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;iBAClE;aACJ;iBAAM;gBACH,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC1C,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3C;SACJ;IACL,CAAC;;AAnDM,4BAAM,GAAG,kBAAkB,CAAC;AAD1B,qBAAqB;IAJjC,yDAAS,CAAC;QACP,QAAQ,EAAE,+BAA+B;QACzC,gFAA8C;KACjD,CAAC;GACW,qBAAqB;AAAA;AAuD3B,MAAM,kCAAmC,SAAQ,uEAAmB;IACvE,UAAU,CAAC,YAAiB;QACxB,IAAI,+EAAwB,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,aAAa,CAAC,aAAa,EAAE;YACpF,QAAQ,YAAY,CAAC,aAAa,CAAC,aAAa,CAAC,SAAS,EAAE;gBACxD,KAAK,6EAAmB,CAAC;gBACzB,KAAK,4EAAkB,CAAC;gBACxB,KAAK,+EAAqB,CAAC;gBAC3B,KAAK,8EAAoB,CAAC;gBAC1B,KAAK,6EAAmB,CAAC;gBACzB,KAAK,gFAAsB,CAAC;gBAC5B,KAAK,oFAA0B;oBAC3B,OAAO,IAAI,CAAC;aACnB;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,OAAO,gGAA0C,CAAC,sBAAsB,CAAC,CAAC;IAC9E,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvFqC;AACgB;AACS;AACU;AACjB;AACwC;AACrB;IAMlE,wBAAwB,SAAxB,wBAAyB,SAAQ,6DAAkB;IAc5D;QACI,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,8EAA4B,CAAC,8DAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,wEAAkB,CAAC,CAAC;QAAA,CAAC;IAC1G,CAAC;IAdD,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,iBAAiB,CAAC;QAC3B,GAAG,CAAC,OAAO,GAAG,WAAW,CAAC;QAC1B,GAAG,CAAC,eAAe,GAAG,wBAAwB,CAAC;QAC/C,GAAG,CAAC,cAAc,GAAG,IAAI,6BAA6B,EAAE,CAAC;QACzD,GAAG,CAAC,QAAQ,GAAG,sGAA2B,CAAC;QAC3C,GAAG,CAAC,QAAQ,GAAG,qEAAiB,CAAC;QACjC,OAAO,GAAG,CAAC;IACf,CAAC;;;AAZQ,wBAAwB;IAJpC,wDAAS,CAAC;QACP,QAAQ,EAAE,4BAA4B;QACtC,kFAAgD;KACnD,CAAC;GACW,wBAAwB;AAAA;AAoB9B,MAAM,6BAA8B,SAAQ,mEAAwB;IACvE,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,OAAO,EAAE;YACT,OAAO,OAAO,GAAG,KAAK,GAAG,gGAA0C,CAAC,WAAW,CAAC,CAAC;SACpF;QACD,OAAO,gGAA0C,CAAC,WAAW,CAAC,CAAC;IACnE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvCqC;AACyB;AACU;AACS;AACL;IAMpE,iBAAiB,SAAjB,iBAAkB,SAAQ,6DAAkB;IACrD,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,+FAA2B,CAAC;QACrC,GAAG,CAAC,OAAO,GAAG,cAAc,CAAC;QAC7B,GAAG,CAAC,eAAe,GAAG,iBAAiB,CAAC;QACxC,GAAG,CAAC,cAAc,GAAG,IAAI,sBAAsB,EAAE,CAAC;QAClD,GAAG,CAAC,QAAQ,GAAG,wFAAoB,CAAC;QACpC,GAAG,CAAC,QAAQ,GAAG,qEAAiB,CAAC;QACjC,OAAO,GAAG,CAAC;IACf,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACb,OAAO,EAAE,gGAA0C,CAAC,iBAAiB,CAAC;YACtE,KAAK,EAAE,CAAC,CAAC;SACZ,CAAC,CAAC;QACH,KAAK,CAAC,QAAQ,EAAE,CAAC;IAErB,CAAC;;AAnBQ,iBAAiB;IAJ7B,wDAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,2EAAyC;KAC5C,CAAC;GACW,iBAAiB;AAAA;AAsBvB,MAAM,sBAAuB,SAAQ,qEAA0B;IAClE,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,OAAO,EAAE;YACT,OAAO,OAAO,GAAG,KAAK,GAAG,gGAA0C,CAAC,cAAc,CAAC,CAAC;SACvF;QACD,OAAO,gGAA0C,CAAC,cAAc,CAAC,CAAC;IACtE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvCqC;AACgB;AACS;AACU;AACC;AACQ;AACA;IAMzE,iBAAiB,SAAjB,iBAAkB,SAAQ,6DAAkB;IA6BrD;QACI,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,8EAA4B,CAAC,iEAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,2EAAkB,CAAC,CAAC;IACtG,CAAC;IA7BD,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC;QACpB,GAAG,CAAC,OAAO,GAAG,aAAa,CAAC;QAC5B,GAAG,CAAC,eAAe,GAAG,iBAAiB,CAAC;QACxC,GAAG,CAAC,cAAc,GAAG,IAAI,sBAAsB,EAAE,CAAC;QAClD,GAAG,CAAC,QAAQ,GAAG,wFAAoB,CAAC;QACpC,GAAG,CAAC,QAAQ,GAAG,qEAAiB,CAAC;QACjC,OAAO,GAAG,CAAC;IACf,CAAC;IAED,QAAQ;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE;YACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACb,OAAO,EAAE,gGAA0C,CAAC,sBAAsB,CAAC;gBAC3E,KAAK,EAAE,4EAAmB;aAC7B,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACb,OAAO,EAAE,gGAA0C,CAAC,sBAAsB,CAAC;gBAC3E,KAAK,EAAE,4EAAmB;aAC7B,CAAC,CAAC;SACN;IACL,CAAC;;;AA1BQ,iBAAiB;IAJ7B,wDAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,2EAAyC;KAC5C,CAAC;GACW,iBAAiB;AAAA;AAmCvB,MAAM,sBAAuB,SAAQ,0EAA+B;IACvE,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,OAAO,EAAE;YACT,OAAO,OAAO,GAAG,KAAK,GAAG,gGAA0C,CAAC,aAAa,CAAC,CAAC;SACtF;QACD,OAAO,gGAA0C,CAAC,aAAa,CAAC,CAAC;IACrE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtD6C;AACiB;AACU;AAC8C;AAC5C;AACA;AACD;AACT;AACiB;IAMzE,aAAa,SAAb,aAAc,SAAQ,6DAAkB;IAmBjD,YAAoB,OAA4B;QAC5C,KAAK,EAAE,CAAC;QADQ,YAAO,GAAP,OAAO,CAAqB;QAhBhD,eAAU,GAAG,EAAE,CAAC;QAChB,cAAS,GAAqB,0FAAyB,CAAC;IAiBxD,CAAC;IAfD,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,uFAAuB,CAAC;QACjC,GAAG,CAAC,OAAO,GAAG,aAAa,CAAC;QAC5B,GAAG,CAAC,eAAe,GAAG,aAAa,CAAC;QACpC,GAAG,CAAC,cAAc,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAC9C,GAAG,CAAC,QAAQ,GAAG,gFAAgB,CAAC;QAChC,GAAG,CAAC,QAAQ,GAAG,qEAAiB,CAAC;QACjC,OAAO,GAAG,CAAC;IACf,CAAC;IAQD,QAAQ;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG;YACV,KAAK,EAAE,qFAAoB;SAC9B,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC;QAChH,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC;gBACrE,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;YAC1E,gHAAgD,CAAC,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAChG,IAAI,MAAM,EAAE;oBACR,MAAM,SAAS,GAAG,EAAE,CAAC;oBAErB,MAAM,WAAW,GAAG,IAAI,mGAAoC,EAAE,CAAC;oBAC/D,WAAW,CAAC,IAAI,GAAG,SAAS,CAAC;oBAC7B,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC;oBAC1B,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAE5B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACxB,MAAM,GAAG,GAAG,IAAI,uFAAwB,EAAE,CAAC;wBAC3C,IAAI,CAAC,CAAC,WAAW,EAAE;4BACf,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,WAAW,GAAG,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;yBAC3D;6BAAM;4BACH,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;yBACnC;wBACD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;wBACzD,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACnC,CAAC,CAAC,CAAC;oBAEH,MAAM,SAAS,GAAG,IAAI,mGAAoC,EAAE,CAAC;oBAC7D,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC;oBAC3B,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAE1B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACtB,MAAM,GAAG,GAAG,IAAI,uFAAwB,EAAE,CAAC;wBAC3C,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;wBACxB,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC;wBACjD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACjC,CAAC,CAAC,CAAC;oBAEH,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;iBAC9B;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,gBAAgB;QACZ,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;YAC9D,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC;SACtC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IACD,cAAc;QACV,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;YAC9D,IAAI,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC;SACxC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;;;;;AApFQ,aAAa;IAJzB,yDAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,uEAAqC;KACxC,CAAC;GACW,aAAa;AAAA;AAuFnB,MAAM,kBAAmB,SAAQ,0EAA+B;IACnE,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,OAAO,EAAE;YACT,OAAO,OAAO,CAAE;SACnB;QACD,OAAO,gGAA0C,CAAC,aAAa,CAAC,CAAC;IACrE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5GqC;AACgB;AACS;AACU;AACI;AACC;AACI;IAMzE,eAAe,SAAf,eAAgB,SAAQ,6DAAkB;IAenD;QACI,KAAK,EAAE,CAAC;QAdZ,mBAAc,GAAG,EAAE,CAAC;QAehB,IAAI,CAAC,YAAY,GAAG,8EAA4B,CAAC,mFAAiB,CAAC,CAAC;IACxE,CAAC;IAdD,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,QAAQ,CAAC;QAClB,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC;QACzB,GAAG,CAAC,eAAe,GAAG,eAAe,CAAC;QACtC,GAAG,CAAC,cAAc,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAChD,GAAG,CAAC,QAAQ,GAAG,oFAAkB,CAAC;QAClC,GAAG,CAAC,QAAQ,GAAG,qEAAiB,CAAC;QACjC,OAAO,GAAG,CAAC;IACf,CAAC;IAOD,QAAQ;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACb,OAAO,EAAE,gGAA0C,CAAC,sBAAsB,CAAC;YAC3E,KAAK,EAAE,CAAC,CAAC;SACZ,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACb,OAAO,EAAE,gGAA0C,CAAC,sBAAsB,CAAC;YAC3E,KAAK,EAAE,CAAC,CAAC;SACZ,CAAC,CAAC;IACP,CAAC;IAED,cAAc;QACV,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,IAAI,IAAI,CAAC,oBAAoB,EAAE;YACrF,QAAQ,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,CAAC,CAAC;aACZ,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACxE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;gBACvE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBAClD,IAAI,IAAI,CAAC,MAAM,EAAE;wBACb,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;4BACxB,IAAI,KAAK,CAAC,MAAM,EAAE;gCACd,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oCACvB,QAAQ,CAAC,IAAI,CAAC;wCACV,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE;wCACvB,KAAK,EAAE,GAAG,CAAC,QAAQ;qCACtB,CAAC,CAAC;gCACP,CAAC,CAAC,CAAC;6BACN;wBACL,CAAC,CAAC,CAAC;qBACN;gBACL,CAAC,CAAC,CAAC;gBACH,QAAQ,CAAC,IAAI,CAAC;oBACV,OAAO,EAAE,gGAA0C,CAAC,sBAAsB,CAAC;oBAC3E,KAAK,EAAE,CAAC,CAAC;iBACZ,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBAClD,IAAI,IAAI,CAAC,MAAM,EAAE;wBACb,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;4BACxB,IAAI,KAAK,CAAC,MAAM,EAAE;gCACd,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oCACvB,QAAQ,CAAC,IAAI,CAAC;wCACV,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE;wCACvB,KAAK,EAAE,GAAG,CAAC,QAAQ;qCACtB,CAAC,CAAC;gCACP,CAAC,CAAC,CAAC;6BACN;wBACL,CAAC,CAAC,CAAC;qBACN;gBACL,CAAC,CAAC,CAAC;gBACH,QAAQ,CAAC,IAAI,CAAC;oBACV,OAAO,EAAE,gGAA0C,CAAC,sBAAsB,CAAC;oBAC3E,KAAK,EAAE,CAAC,CAAC;iBACZ,CAAC,CAAC;aACN;SACJ;QACD,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;IACnC,CAAC;IAED,aAAa;QACT,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;;;AArFQ,eAAe;IAJ3B,wDAAS,CAAC;QACP,QAAQ,EAAE,mBAAmB;QAC7B,yEAAuC;KAC1C,CAAC;GACW,eAAe;AAAA;AAwFrB,MAAM,oBAAqB,SAAQ,0EAA+B;IACrE,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,OAAO,EAAE;YACT,OAAO,OAAO,GAAG,KAAK,GAAG,gGAA0C,CAAC,UAAU,CAAC,CAAC;SACnF;QACD,OAAO,gGAA0C,CAAC,UAAU,CAAC,CAAC;IAClE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3GqC;AACO;AACqB;AACU;AACd;AACA;AACS;IAM9D,0CAA0C,SAA1C,0CAA2C,SAAQ,sDAAW;IAIvE,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,uCAAuC,CAAC;QACjD,GAAG,CAAC,OAAO,GAAG,4BAA4B,CAAC;QAC3C,GAAG,CAAC,eAAe,GAAG,0CAA0C,CAAC;QACjE,GAAG,CAAC,cAAc,GAAG,IAAI,mDAAmD,EAAE,CAAC;QAC/E,GAAG,CAAC,QAAQ,GAAG,uEAAmB,CAAC;QACnC,OAAO,GAAG,CAAC;IACf,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;gBAC1B,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,YAAY,iEAAS,CAAC,EAAE;oBAClD,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,+DAAY,CAAC,iEAAS,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;iBAChF;aACJ;iBAAM;gBACH,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,iEAAS,EAAE,CAAC;aAC9C;SACJ;IACL,CAAC;;AAxBQ,0CAA0C;IAJtD,wDAAS,CAAC;QACP,QAAQ,EAAE,+CAA+C;QACzD,qGAAmE;KACtE,CAAC;GACW,0CAA0C;AAAA;AA2BhD,MAAM,mDAAoD,SAAQ,mEAAwB;IAC7F,UAAU,CAAC,YAAiB;QACxB,OAAO,+EAAwB,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IACD,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,OAAO,EAAE;YACT,OAAO,OAAO,GAAG,KAAK,GAAG,gGAA0C,CAAC,oCAAoC,CAAC,CAAC;SAC7G;QACD,OAAO,gGAA0C,CAAC,oCAAoC,CAAC,CAAC;IAC5F,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjDL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAGsB6pB,+BAA+B,SAA/BA,+BAA+B,SAASX,8DAAT,CAA2B;EAwB5EtgE,YAAmB4E,OAAnB,EAA0D3E,KAA1D,EAAkF;IAC9E;IADe;IAAuC;IAlB1D,iBAAY,EAAZ,CAkBkF,CAflF;;IACA,gCAA2B,EAA3B;IAUU,sCAAiC,IAAIP,wDAAJ,EAAjC;IAEV,oBAAe,EAAf;IAII,KAAKwhE,YAAL,GAAoB/qB,8EAAA,CAA6B0qB,mFAA7B,CAApB;EACH;;EAfsB,IAAnBM,mBAAmB;IACnB,OAAO,KAAKC,wBAAZ;EACH;;EACsB,IAAnBD,mBAAmB,CAACpgE,GAAD,EAAI;IACvB,KAAKqgE,wBAAL,GAAgCrgE,GAAhC;IACA,KAAKsgE,8BAAL,CAAoC3/D,IAApC,CAAyCX,GAAzC;EACH;;EAWKugE,YAAY,CAACC,SAAD,EAAU;IAAA;;IAAA;MACxB,KAAI,CAACC,YAAL,GAAoB,EAApB;;MACA,MAAMC,OAAO,GAAG,KAAI,CAACtB,iBAAL,CAAuB1wD,GAAvB,CAA2B8xD,SAAS,CAAC/iE,KAArC,CAAhB;;MACA,MAAMg2B,SAAS,SAASzlB,kFAAA,CAA2B0yD,OAA3B,EAAoC,KAAI,CAACz9B,eAAL,CAAqBvP,WAAzD,CAAxB;;MACA,IAAID,SAAJ,EAAe;QACX,KAAI,CAAC5vB,OAAL,CAAa8vB,UAAb,CAAwBF,SAAS,CAACrkB,MAAV,CAAiBA,MAAjB,CAAwBwkB,YAAhD,EAA8D8sC,OAA9D,EAAuE,IAAvE,EAA6E,IAA7E,EAAmFnkE,SAAnF,CAA6Fs3B,OAAO,IAAG;UACnG,MAAMC,UAAU,GAAG,EAAnB;;UACA,IAAID,OAAJ,EAAa;YACTA,OAAO,CAAC11B,OAAR,CAAgBoQ,CAAC,IAAG;cAChBulB,UAAU,CAACz3B,IAAX,CAAgB;gBACZ2K,OAAO,EAAEuH,CAAC,CAACvH,OADC;gBAEZ4E,KAAK,EAAE2C,CAAC,CAAClI;cAFG,CAAhB;YAIH,CALD;UAMH;;UACD,KAAI,CAACo6D,YAAL,GAAoB3sC,UAApB;QACH,CAXD;MAYH;IAjBuB;EAkB3B;;EAEDkrC,aAAa;IACT,IAAI,KAAKD,aAAT,EAAwB;MACpB,IAAI,CAAC,KAAKA,aAAL,CAAmB4B,wBAAxB,EAAkD;QAC9C,KAAK5B,aAAL,CAAmB4B,wBAAnB,GAA8C,EAA9C;MACH;;MAED,KAAKJ,YAAL,CAAkB;QAAE9iE,KAAK,EAAE,KAAKshE,aAAL,CAAmBS;MAA5B,CAAlB,EALoB,CAMpB;IACH;;IACD,KAAKa,wBAAL,GAAgC,KAAKtB,aAAL,CAAmB4B,wBAAnD;IACA,KAAKC,cAAL,CAAoB,IAApB;EACH;;EAEDC,wBAAwB;IACpB,OAAO,KAAK9B,aAAL,CAAmBpN,QAAnB,KAAgCsO,gIAAvC;EACH;;EAEDc,sBAAsB;IAClB,OAAO,KAAKhC,aAAL,CAAmBpN,QAAnB,KAAgCqO,4HAAvC;EACH;;EAEDY,cAAc,CAACI,WAAW,GAAG,KAAf,EAAoB;IAC9B,IAAI,KAAKX,wBAAL,CAA8BxiE,MAA9B,KAAyC,CAA7C,EAAgD;MAC5C,KAAKojE,OAAL;IACH,CAFD,MAEO;MAEH,KAAKC,SAAL,GAAiB,EAAjB;MACA,KAAKb,wBAAL,CAA8BliE,OAA9B,CAAsC,CAACk+C,IAAD,EAAOp3C,CAAP,KAAY;QAC9C,MAAM7H,IAAI,GAAG;UACT4J,OAAO,EAAE,KAAKm5D,YAAL,CAAkB3iE,IAAlB,CAAuBY,CAAC,IAAIA,CAAC,CAACuH,IAAF,KAAW02C,IAAI,CAAC8kB,SAAL,CAAerB,iBAAtD,EAAyEriE,KADzE;UAET4I,EAAE,EAAE,KAAK66D,SAAL,CAAerjE;QAFV,CAAb;QAIAT,IAAI,CAAC4J,OAAL,IAAgBq1C,IAAI,CAAC8kB,SAAL,CAAeC,MAAf,GAAwB,MAAM/kB,IAAI,CAAC8kB,SAAL,CAAeC,MAA7C,GAAsD,EAAtE;QACAhkE,IAAI,CAAC4J,OAAL,IAAgBq1C,IAAI,CAAC8kB,SAAL,CAAeE,MAAf,GAAwB,MAAMhlB,IAAI,CAAC8kB,SAAL,CAAeE,MAA7C,GAAsD,EAAtE;QACA,KAAKH,SAAL,CAAe7kE,IAAf,CAAoBe,IAApB;MACH,CARD;MASA,MAAMkoB,UAAU,GAAG07C,WAAW,GAAG,KAAKX,wBAAL,CAA8B,CAA9B,CAAH,GAAsC,IAApE;MACA,KAAKiB,eAAL,CAAqBh8C,UAArB;IACH;EACJ;;EAEKi8C,WAAW,CAACxhD,SAAD,EAAU;IAAA;;IAAA;MACvB,IAAI,MAAI,CAACyhD,YAAL,KAAsBzhD,SAA1B,EAAqC;QACjC,MAAI,CAACyhD,YAAL,GAAoBzhD,SAApB;QACA,IAAIs8B,IAAI,GAAG,IAAX;;QACA,IAAIt8B,SAAS,IAAI,MAAI,CAACsgD,wBAAtB,EAAgD;UAC5ChkB,IAAI,GAAG,MAAI,CAACgkB,wBAAL,CAA8BtgD,SAAS,CAAC1Z,EAAxC,CAAP;;UACA,MAAI,CAACk6D,YAAL,CAAkB;YAAE9iE,KAAK,EAAE4+C,IAAI,CAAC8kB,SAAL,CAAe3B;UAAxB,CAAlB;QACH;;QACD,MAAI,CAAC8B,eAAL,CAAqBjlB,IAArB;MACH;IATsB;EAU1B;;EAED4kB,OAAO;IACH,IAAI,KAAKZ,wBAAL,CAA8BxiE,MAA9B,GAAuC,CAA3C,EAA8C;MAC1C,KAAK+iE,cAAL,CAAoB,KAApB;IACH;;IACD,KAAKH,YAAL,GAAoB,EAApB;IACA,MAAMgB,IAAI,GAAG,IAAI1B,qFAAJ,EAAb;IAEA,MAAM3iE,IAAI,GAAG;MACT4J,OAAO,EAAE,KAAKm5D,YAAL,CAAkB3iE,IAAlB,CAAuBY,CAAC,IAAIA,CAAC,CAACuH,IAAF,KAAW87D,IAAI,CAACN,SAAL,CAAerB,iBAAtD,EAAyEriE,KADzE;MAET4I,EAAE,EAAE,KAAK66D,SAAL,CAAerjE;IAFV,CAAb;IAIAT,IAAI,CAAC4J,OAAL,IAAgBy6D,IAAI,CAACN,SAAL,CAAeC,MAAf,GAAwB,MAAMK,IAAI,CAACN,SAAL,CAAeC,MAA7C,GAAsD,EAAtE;IACAhkE,IAAI,CAAC4J,OAAL,IAAgBy6D,IAAI,CAACN,SAAL,CAAeE,MAAf,GAAwB,MAAMI,IAAI,CAACN,SAAL,CAAeE,MAA7C,GAAsD,EAAtE;IAEA,KAAKH,SAAL,CAAe7kE,IAAf,CAAoBe,IAApB;IACA,KAAKijE,wBAAL,CAA8BhkE,IAA9B,CAAmColE,IAAnC;IACA,KAAKD,YAAL,GAAoBpkE,IAApB;IACA,KAAKkkE,eAAL,CAAqBG,IAArB;EACH;;EAEDH,eAAe,CAAClkE,IAAD,EAAK;IAChB,KAAKskE,eAAL,GAAuBtkE,IAAvB;;IACA,IAAI,KAAKskE,eAAT,EAA0B;MACtB,KAAKC,QAAL,GAAgB,KAAKD,eAAL,CAAqB76C,KAArC;IACH;EACJ;;EAEK+6C,UAAU;IAAA;;IAAA;MACZ,MAAMC,GAAG,GAAG,MAAI,CAACL,YAAjB;;MACA,IAAIK,GAAJ,EAAS;QACL,MAAM7kC,IAAI,GAAG,IAAI3oB,uEAAJ,CAAwB,iEAAxB,CAAb;QACA2oB,IAAI,CAACG,YAAL,CAAkB9gC,IAAlB,CAAuBwlE,GAAG,CAAC76D,OAA3B;QACA,MAAMkQ,MAAM,SAASxC,yGAAA,CAA4BsoB,IAA5B,EAAkC,IAAI3oB,uEAAJ,CAAwB,iBAAxB,CAAlC,EACjBG,yFADiB,EACQC,sFADR,CAArB;;QAEA,IAAIyC,MAAM,KAAKgjB,qFAAf,EAAqC;UAEjC,IAAI,MAAI,CAACmmC,wBAAT,EAAmC;YAC/B,MAAI,CAACA,wBAAL,CAA8Bv1D,MAA9B,CAAqC+2D,GAAG,CAACx7D,EAAzC,EAA6C,CAA7C;UACH;;UACD,MAAI,CAAC66D,SAAL,CAAep2D,MAAf,CAAsB+2D,GAAG,CAACx7D,EAA1B,EAA8B,CAA9B;;UAEA,MAAI,CAACm7D,YAAL,GAAoB,IAApB;UACA,MAAMl8C,UAAU,GAAG,MAAI,CAAC+6C,wBAAL,CAA8BxiE,MAA9B,GAAuC,CAAvC,GAA2C,MAAI,CAACwiE,wBAAL,CAA8B,CAA9B,CAA3C,GAA8E,IAAjG;;UACA,MAAI,CAACiB,eAAL,CAAqBh8C,UAArB;;UACA,MAAI,CAACpmB,KAAL,CAAW0B,aAAX;QACH;MACJ;IAnBW;EAoBf;;EAEDkhE,MAAM;IACF,IAAI,KAAKN,YAAL,IAAqB,KAAKA,YAAL,CAAkBn7D,EAAlB,GAAuB,CAA5C,IAAiD,KAAKg6D,wBAAtD,IAAkF,KAAKA,wBAAL,CAA8BxiE,MAA9B,GAAuC,CAA7H,EAAgI;MAC5H,MAAMw+C,IAAI,GAAG,KAAKgkB,wBAAL,CAA8Bv1D,MAA9B,CAAqC,KAAK02D,YAAL,CAAkBn7D,EAAvD,EAA2D,CAA3D,EAA8D,CAA9D,CAAb;MACA,KAAKg6D,wBAAL,CAA8Bv1D,MAA9B,CAAqC,CAArC,EAAwC,CAAxC,EAA2CuxC,IAA3C;MACA,KAAK6kB,SAAL,CAAep2D,MAAf,CAAsB,KAAK02D,YAAL,CAAkBn7D,EAAxC,EAA4C,CAA5C;MACA,KAAK66D,SAAL,CAAep2D,MAAf,CAAsB,CAAtB,EAAyB,CAAzB,EAA4B,KAAK02D,YAAjC;MACA,KAAKN,SAAL,CAAe/iE,OAAf,CAAuB,CAACC,CAAD,EAAI6G,CAAJ,KAAS;QAAG7G,CAAC,CAACiI,EAAF,GAAOpB,CAAP;MAAW,CAA9C;IACH;EACJ;;EAED88D,SAAS;IACL,IAAI,KAAKP,YAAL,IAAqB,KAAKA,YAAL,CAAkBn7D,EAAlB,GAAuB,CAA5C,IAAiD,KAAKg6D,wBAAtD,IAAkF,KAAKA,wBAAL,CAA8BxiE,MAA9B,GAAuC,CAA7H,EAAgI;MAC5H,MAAMw+C,IAAI,GAAG,KAAKgkB,wBAAL,CAA8Bv1D,MAA9B,CAAqC,KAAK02D,YAAL,CAAkBn7D,EAAvD,EAA2D,CAA3D,EAA8D,CAA9D,CAAb;MACA,KAAKg6D,wBAAL,CAA8Bv1D,MAA9B,CAAqC,KAAK02D,YAAL,CAAkBn7D,EAAlB,GAAuB,CAA5D,EAA+D,CAA/D,EAAkEg2C,IAAlE;MACA,KAAK6kB,SAAL,CAAep2D,MAAf,CAAsB,KAAK02D,YAAL,CAAkBn7D,EAAxC,EAA4C,CAA5C;MACA,KAAK66D,SAAL,CAAep2D,MAAf,CAAsB,KAAK02D,YAAL,CAAkBn7D,EAAlB,GAAuB,CAA7C,EAAgD,CAAhD,EAAmD,KAAKm7D,YAAxD;MACA,KAAKN,SAAL,CAAe/iE,OAAf,CAAuB,CAACC,CAAD,EAAI6G,CAAJ,KAAS;QAAG7G,CAAC,CAACiI,EAAF,GAAOpB,CAAP;MAAW,CAA9C;IACH;EACJ;;EAED+8D,WAAW;IACP,IAAI,KAAKR,YAAL,IAAqB,KAAKnB,wBAA1B,IAAsD,KAAKA,wBAAL,CAA8BxiE,MAA9B,GAAuC,CAA7F,IACA,KAAK2jE,YAAL,CAAkBn7D,EAAlB,GAAuB,KAAKg6D,wBAAL,CAA8BxiE,MAA9B,GAAuC,CADlE,EACqE;MACjE,MAAMw+C,IAAI,GAAG,KAAKgkB,wBAAL,CAA8Bv1D,MAA9B,CAAqC,KAAK02D,YAAL,CAAkBn7D,EAAvD,EAA2D,CAA3D,EAA8D,CAA9D,CAAb;MACA,KAAKg6D,wBAAL,CAA8Bv1D,MAA9B,CAAqC,KAAK02D,YAAL,CAAkBn7D,EAAlB,GAAuB,CAA5D,EAA+D,CAA/D,EAAkEg2C,IAAlE;MACA,KAAK6kB,SAAL,CAAep2D,MAAf,CAAsB,KAAK02D,YAAL,CAAkBn7D,EAAxC,EAA4C,CAA5C;MACA,KAAK66D,SAAL,CAAep2D,MAAf,CAAsB,KAAK02D,YAAL,CAAkBn7D,EAAlB,GAAuB,CAA7C,EAAgD,CAAhD,EAAmD,KAAKm7D,YAAxD;MACA,KAAKN,SAAL,CAAe/iE,OAAf,CAAuB,CAACC,CAAD,EAAI6G,CAAJ,KAAS;QAAG7G,CAAC,CAACiI,EAAF,GAAOpB,CAAP;MAAW,CAA9C;IACH;EACJ;;EAEDg9D,QAAQ;IACJ,IAAI,KAAKT,YAAL,IAAqB,KAAKnB,wBAA1B,IAAsD,KAAKA,wBAAL,CAA8BxiE,MAA9B,GAAuC,CAA7F,IACA,KAAK2jE,YAAL,CAAkBn7D,EAAlB,GAAuB,KAAKg6D,wBAAL,CAA8BxiE,MAA9B,GAAuC,CADlE,EACqE;MACjE,MAAMw+C,IAAI,GAAG,KAAKgkB,wBAAL,CAA8Bv1D,MAA9B,CAAqC,KAAK02D,YAAL,CAAkBn7D,EAAvD,EAA2D,CAA3D,EAA8D,CAA9D,CAAb;MACA,KAAKg6D,wBAAL,CAA8BhkE,IAA9B,CAAmCggD,IAAnC;MACA,KAAK6kB,SAAL,CAAep2D,MAAf,CAAsB,KAAK02D,YAAL,CAAkBn7D,EAAxC,EAA4C,CAA5C;MACA,KAAK66D,SAAL,CAAe7kE,IAAf,CAAoB,KAAKmlE,YAAzB;MACA,KAAKN,SAAL,CAAe/iE,OAAf,CAAuB,CAACC,CAAD,EAAI6G,CAAJ,KAAS;QAAG7G,CAAC,CAACiI,EAAF,GAAOpB,CAAP;MAAW,CAA9C;IACH;EACJ;;AA/L2E;;;;;;;;;;UAW3ErG,iDAAKA;;;UASLC,kDAAMA;;;AApBWqhE,+BAA+B,uDADpDn9D,yDAAS,EAC2C,GAA/Bm9D,+BAA+B,CAA/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChB8C;AACE;AACU;AACqC;AACnD;AACa;AACV;AACkB;IAM1E,mCAAmC,SAAnC,mCAAoC,SAAQ,gGAA+B;IAepF,YAAmB,OAA8B,EAAS,KAAwB;QAC9E,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QADP,YAAO,GAAP,OAAO,CAAuB;QAAS,UAAK,GAAL,KAAK,CAAmB;QAblF,aAAQ,GAAG,EAAE,CAAC;QAiBd,oBAAe,GAAG,2HAAmC,CAAC;IAFtD,CAAC;IAbD,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,2HAAmC,CAAC;QAC7C,GAAG,CAAC,OAAO,GAAG,8BAA8B,CAAC;QAC7C,GAAG,CAAC,eAAe,GAAG,mCAAmC,CAAC;QAC1D,GAAG,CAAC,cAAc,GAAG,IAAI,kCAAkC,EAAE,CAAC;QAC9D,GAAG,CAAC,QAAQ,GAAG,oHAA4B,CAAC;QAC5C,GAAG,CAAC,QAAQ,GAAG,uEAAmB,CAAC;QACnC,OAAO,GAAG,CAAC;IACf,CAAC;QAQG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;IAC/B,CAAC;;;;;;;yBANA,gDAAK;;AApBG,mCAAmC;IAJ/C,wDAAS,CAAC;QACP,QAAQ,EAAE,mCAAmC;QAC7C,yFAAuD;KAC1D,CAAC;GACW,mCAAmC;AAAA;AA6BzC,MAAM,kCAAmC,SAAQ,0EAA+B;IACnF,UAAU,CAAC,YAAiB;QACxB,OAAO,+EAAwB,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IACD,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI,OAAO,EAAE;YACT,OAAO,IAAI,GAAG,GAAG,gGAA0C,CAAC,WAAW,CAAC,CAAC;YACzE,OAAO,OAAO,CAAC;SAClB;QACD,OAAO,gGAA0C,CAAC,8BAA8B,CAAC,CAAC;IACtF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrD+D;AACE;AACU;AACyC;AACvD;AACa;AACf;AACuB;IAM1E,qCAAqC,SAArC,qCAAsC,SAAQ,gGAA+B;IAuBtF,YAAmB,OAA8B,EAAS,KAAwB;QAC9E,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QADP,YAAO,GAAP,OAAO,CAAuB;QAAS,UAAK,GAAL,KAAK,CAAmB;QAtBlF,aAAQ,GAAG,EAAE,CAAC;QAad,oBAAe,GAAG,+HAAqC,CAAC;IAWxD,CAAC;IAtBD,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,+HAAqC,CAAC;QAC/C,GAAG,CAAC,OAAO,GAAG,6BAA6B,CAAC;QAC5C,GAAG,CAAC,eAAe,GAAG,qCAAqC,CAAC;QAC5D,GAAG,CAAC,cAAc,GAAG,IAAI,oCAAoC,EAAE,CAAC;QAChE,GAAG,CAAC,QAAQ,GAAG,wHAA8B,CAAC;QAC9C,GAAG,CAAC,QAAQ,GAAG,uEAAmB,CAAC;QACnC,OAAO,GAAG,CAAC;IACf,CAAC;QAIG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;IAC/B,CAAC;;;;;;;yBANA,gDAAK;;AAfG,qCAAqC;IAJjD,wDAAS,CAAC;QACP,QAAQ,EAAE,mCAAmC;QAC7C,yFAAuD;KAC1D,CAAC;GACW,qCAAqC;AAAA;AA4B3C,MAAM,oCAAqC,SAAQ,qEAA0B;IAChF,UAAU,CAAC,YAAiB;QACxB,OAAO,+EAAwB,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IACD,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI,OAAO,EAAE;YACT,OAAO,IAAI,GAAG,GAAG,gGAA0C,CAAC,WAAW,CAAC,CAAC;YACzE,OAAO,OAAO,CAAC;SAClB;QACD,OAAO,gGAA0C,CAAC,6BAA6B,CAAC,CAAC;IACrF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpDqC;AACO;AACqB;AACU;AACd;AACuC;AACvC;AACS;IAM9D,wBAAwB,SAAxB,wBAAyB,SAAQ,sDAAW;IAErD,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,+GAAkC,CAAC;QAC5C,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;QACxB,GAAG,CAAC,eAAe,GAAG,wBAAwB,CAAC;QAC/C,GAAG,CAAC,cAAc,GAAG,IAAI,iCAAiC,EAAE,CAAC;QAC7D,GAAG,CAAC,QAAQ,GAAG,wGAA2B,CAAC;QAC3C,GAAG,CAAC,QAAQ,GAAG,uEAAmB,CAAC;QACnC,OAAO,GAAG,CAAC;IACf,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;gBAC1B,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,YAAY,iEAAS,CAAC,EAAE;oBAClD,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,+DAAY,CAAC,iEAAS,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;iBAChF;aACJ;iBAAM;gBACH,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,iEAAS,EAAE,CAAC;aAC9C;SACJ;IACL,CAAC;;AAvBQ,wBAAwB;IAJpC,wDAAS,CAAC;QACP,QAAQ,EAAE,6BAA6B;QACvC,mFAAiD;KACpD,CAAC;GACW,wBAAwB;AAAA;AA0B9B,MAAM,iCAAkC,SAAQ,mEAAwB;IAC3E,UAAU,CAAC,YAAiB;QACxB,OAAO,+EAAwB,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IACD,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,OAAO,EAAE;YACT,OAAO,OAAO,GAAG,KAAK,GAAG,gGAA0C,CAAC,qBAAqB,CAAC,CAAC;SAC9F;QACD,OAAO,gGAA0C,CAAC,qBAAqB,CAAC,CAAC;IAC7E,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjDqC;AACO;AACqB;AACU;AACd;AACmD;AACnD;AACS;IAM9D,8BAA8B,SAA9B,8BAA+B,SAAQ,sDAAW;IAE3D,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,2HAAwC,CAAC;QAClD,GAAG,CAAC,OAAO,GAAG,aAAa,CAAC;QAC5B,GAAG,CAAC,eAAe,GAAG,8BAA8B,CAAC;QACrD,GAAG,CAAC,cAAc,GAAG,IAAI,uCAAuC,EAAE,CAAC;QACnE,GAAG,CAAC,QAAQ,GAAG,oHAAiC,CAAC;QACjD,GAAG,CAAC,QAAQ,GAAG,uEAAmB,CAAC;QACnC,OAAO,GAAG,CAAC;IACf,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;gBAC1B,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,YAAY,iEAAS,CAAC,EAAE;oBAClD,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,+DAAY,CAAC,iEAAS,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;iBAChF;aACJ;iBAAM;gBACH,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,iEAAS,EAAE,CAAC;aAC9C;SACJ;IACL,CAAC;;AAvBQ,8BAA8B;IAJ1C,wDAAS,CAAC;QACP,QAAQ,EAAE,mCAAmC;QAC7C,yFAAuD;KAC1D,CAAC;GACW,8BAA8B;AAAA;AA0BpC,MAAM,uCAAwC,SAAQ,mEAAwB;IACjF,UAAU,CAAC,YAAiB;QACxB,OAAO,+EAAwB,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IACD,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,OAAO,EAAE;YACT,OAAO,OAAO,GAAG,KAAK,GAAG,gGAA0C,CAAC,yBAAyB,CAAC,CAAC;SAClG;QACD,OAAO,gGAA0C,CAAC,yBAAyB,CAAC,CAAC;IACjF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjDqC;AACO;AACqB;AACU;AACd;AACiC;AACjC;AACa;IAMlE,0BAA0B,SAA1B,0BAA2B,SAAQ,wDAAa;IACzD,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,yGAA0B,CAAC;QACpC,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC;QACvB,GAAG,CAAC,eAAe,GAAG,0BAA0B,CAAC;QACjD,GAAG,CAAC,cAAc,GAAG,IAAI,mCAAmC,EAAE,CAAC;QAC/D,GAAG,CAAC,QAAQ,GAAG,kGAAmB,CAAC;QACnC,GAAG,CAAC,QAAQ,GAAG,uEAAmB,CAAC;QACnC,OAAO,GAAG,CAAC;IACf,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;gBAC1B,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,YAAY,iEAAS,CAAC,EAAE;oBAClD,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,+DAAY,CAAC,iEAAS,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;iBAChF;aACJ;iBAAM;gBACH,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,iEAAS,EAAE,CAAC;aAC9C;SACJ;IACL,CAAC;;AAtBQ,0BAA0B;IAJtC,wDAAS,CAAC;QACP,QAAQ,EAAE,+BAA+B;QACzC,qFAAmD;KACtD,CAAC;GACW,0BAA0B;AAAA;AA0BhC,MAAM,mCAAoC,SAAQ,qEAA0B;IAC/E,UAAU,CAAC,YAAiB;QACxB,OAAO,+EAAwB,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IACD,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,OAAO,EAAE;YACT,OAAO,OAAO,GAAG,KAAK,GAAG,gGAA0C,CAAC,oBAAoB,CAAC,CAAC;SAC7F;QACD,OAAO,gGAA0C,CAAC,oBAAoB,CAAC,CAAC;IAC5E,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjDqC;AACO;AACqB;AACU;AACd;AAC6C;AAC7C;AACa;IAMlE,gCAAgC,SAAhC,gCAAiC,SAAQ,wDAAa;IAC/D,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,qHAAgC,CAAC;QAC1C,GAAG,CAAC,OAAO,GAAG,YAAY,CAAC;QAC3B,GAAG,CAAC,eAAe,GAAG,gCAAgC,CAAC;QACvD,GAAG,CAAC,cAAc,GAAG,IAAI,yCAAyC,EAAE,CAAC;QACrE,GAAG,CAAC,QAAQ,GAAG,8GAAyB,CAAC;QACzC,GAAG,CAAC,QAAQ,GAAG,uEAAmB,CAAC;QACnC,OAAO,GAAG,CAAC;IACf,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;gBAC1B,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,YAAY,iEAAS,CAAC,EAAE;oBAClD,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,+DAAY,CAAC,iEAAS,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;iBAChF;aACJ;iBAAM;gBACH,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,iEAAS,EAAE,CAAC;aAC9C;SACJ;IACL,CAAC;;AAtBQ,gCAAgC;IAJ5C,wDAAS,CAAC;QACP,QAAQ,EAAE,qCAAqC;QAC/C,2FAAyD;KAC5D,CAAC;GACW,gCAAgC;AAAA;AA0BtC,MAAM,yCAA0C,SAAQ,qEAA0B;IACrF,UAAU,CAAC,YAAiB;QACxB,OAAO,+EAAwB,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IACD,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,OAAO,EAAE;YACT,OAAO,OAAO,GAAG,KAAK,GAAG,gGAA0C,CAAC,wBAAwB,CAAC,CAAC;SACjG;QACD,OAAO,gGAA0C,CAAC,wBAAwB,CAAC,CAAC;IAChF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjDqC;AACO;AACqB;AAC+B;AACnC;AACmC;AACnC;AAClB;IAMnC,sBAAsB,SAAtB,sBAAuB,SAAQ,qDAAU;IAElD,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,2GAAgC,CAAC;QAC1C,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;QACxB,GAAG,CAAC,eAAe,GAAG,sBAAsB,CAAC;QAC7C,GAAG,CAAC,cAAc,GAAG,IAAI,+BAA+B,EAAE,CAAC;QAC3D,GAAG,CAAC,QAAQ,GAAG,oGAAyB,CAAC;QACzC,GAAG,CAAC,QAAQ,GAAG,uEAAmB,CAAC;QACnC,OAAO,GAAG,CAAC;IACf,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;gBAC1B,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,YAAY,iEAAS,CAAC,EAAE;oBAClD,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,+DAAY,CAAC,iEAAS,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;iBAChF;aACJ;iBAAM;gBACH,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,iEAAS,EAAE,CAAC;aAC9C;SACJ;IACL,CAAC;;AAvBQ,sBAAsB;IAJlC,wDAAS,CAAC;QACP,QAAQ,EAAE,2BAA2B;QACrC,iFAA+C;KAClD,CAAC;GACW,sBAAsB;AAAA;AA0B5B,MAAM,+BAAgC,SAAQ,uEAAmB;IACpE,UAAU,CAAC,YAAiB;QACxB,OAAO,+EAAwB,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IACD,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,OAAO,gGAA0C,CAAC,sBAAsB,CAAC,CAAC;IAC9E,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7CqC;AACO;AACqB;AAC+B;AACnC;AACgD;AAChD;AAClB;IAMnC,4BAA4B,SAA5B,4BAA6B,SAAQ,qDAAU;IAExD,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,wHAAsC,CAAC;QAChD,GAAG,CAAC,OAAO,GAAG,iBAAiB,CAAC;QAChC,GAAG,CAAC,eAAe,GAAG,4BAA4B,CAAC;QACnD,GAAG,CAAC,cAAc,GAAG,IAAI,qCAAqC,EAAE,CAAC;QACjE,GAAG,CAAC,QAAQ,GAAG,iHAA+B,CAAC;QAC/C,GAAG,CAAC,QAAQ,GAAG,uEAAmB,CAAC;QACnC,OAAO,GAAG,CAAC;IACf,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;gBAC1B,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,YAAY,iEAAS,CAAC,EAAE;oBAClD,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,+DAAY,CAAC,iEAAS,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;iBAChF;aACJ;iBAAM;gBACH,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,iEAAS,EAAE,CAAC;aAC9C;SACJ;IACL,CAAC;;AAvBQ,4BAA4B;IAJxC,wDAAS,CAAC;QACP,QAAQ,EAAE,kCAAkC;QAC5C,iFAA+C;KAClD,CAAC;GACW,4BAA4B;AAAA;AA0BlC,MAAM,qCAAsC,SAAQ,uEAAmB;IAC1E,UAAU,CAAC,YAAiB;QACxB,OAAO,+EAAwB,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IACD,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,OAAO,gGAA0C,CAAC,8BAA8B,CAAC,CAAC;IACtF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7CqC;AACwB;AACG;AACD;AACU;AACN;AACa;AACtB;AACY;IAM9D,aAAa,SAAb,aAAa;;QACtB,aAAQ,GAAG,EAAE,CAAC;QAEd,eAAU,GAAG,CAAC,iGAA4B,CAAC,CAAC;IAkDhD,CAAC;IAhDG,MAAM,CAAC,UAAU,CAAC,QAAkB,EAAE,YAAY,EAAE,OAAO;QACvD,kFAAqB,CAAC;YAClB,WAAW,EAAE,aAAa;YAC1B,QAAQ,EAAE;gBACN,QAAQ,EAAE,QAAQ;gBAClB,YAAY,EAAE,YAAY;aAC7B;YACD,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACX,IAAI,CAAC,IAAI,OAAO,EAAE;oBACd,OAAO,CAAC,CAAC,CAAC,CAAC;iBACd;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAED,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,EAAE;YACN,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,wEAAoB,CAAC,CAAC,CAAC,EAAE;gBACrB,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBACtE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;oBAC9F,QAAQ,CAAC,IAAI,CAAC;wBACV,OAAO,EAAE,CAAC,CAAC,OAAO;wBAClB,KAAK,EAAE,CAAC,CAAC,EAAE;qBACd,CAAC,CAAC;iBACN;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC5B;IACL,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,yBAAyB,CAAC,MAAM;QAC5B,IAAI,MAAM,KAAK,4EAAe,EAAE;YAC5B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBACpB,8FAA2B,CAAC,IAAI,uEAAmB,CAAC,cAAc,CAAC,EAC/D,IAAI,uEAAmB,CAAC,qCAAqC,CAAC,EAC9D,sFAAoB,EAAE,yFAA0B,CAAC,CAAC;gBACtD,OAAO,KAAK,CAAC;aAChB;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;;AApDQ,aAAa;IAJzB,yDAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,uEAAqC;KACxC,CAAC;GACW,aAAa;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACd1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAMaoC,qBAAqB,SAArBA,qBAAqB,SAASzD,sDAAT,CAAmB;EAoBjD;EAEA5/D;IACI;IAlBJ,iBAAY,EAAZ,CAiBA,CAdA;;IACA,gCAA2B,EAA3B;IAUU,sCAAiC,IAAIN,wDAAJ,EAAjC;IAKN,KAAKwhE,YAAL,GAAoB/qB,8EAAA,CAA6B0qB,mFAA7B,CAApB;EACH;;EAdsB,IAAnBM,mBAAmB;IACnB,OAAO,KAAKC,wBAAZ;EACH;;EACsB,IAAnBD,mBAAmB,CAACpgE,GAAD,EAAI;IACvB,KAAKqgE,wBAAL,GAAgCrgE,GAAhC;IACA,KAAKsgE,8BAAL,CAAoC3/D,IAApC,CAAyCX,GAAzC;EACH;;EAUiB,OAAXuiE,WAAW;IACd,MAAMC,GAAG,GAAG,IAAIN,qEAAJ,EAAZ;IACAM,GAAG,CAACn8D,EAAJ,GAAS+7D,mHAAT;IACAI,GAAG,CAACx7D,OAAJ,GAAc,QAAd;IACAw7D,GAAG,CAACC,eAAJ,GAAsBH,qBAAtB;IACAE,GAAG,CAACE,cAAJ,GAAqB,IAAIC,iCAAJ,EAArB;IACAH,GAAG,CAAC1Q,QAAJ,GAAesQ,4GAAf;IACAI,GAAG,CAAC7Q,QAAJ,GAAeA,uEAAf;IACA,OAAO6Q,GAAP;EACH;;EAEDxD,aAAa;IACT,IAAI,KAAKD,aAAT,EAAwB;MACpB,IAAI,KAAKA,aAAL,CAAmBl4C,KAAvB,EAA8B;QAC1B,IAAI,EAAE,KAAKk4C,aAAL,CAAmBl4C,KAAnB,YAAoCs7C,kEAAtC,CAAJ,EAAsD;UAClD,KAAKpD,aAAL,CAAmBl4C,KAAnB,GAA2BlZ,gEAAY,CAACw0D,kEAAD,EAAY,KAAKpD,aAAL,CAAmBl4C,KAA/B,CAAvC;QACH;MACJ,CAJD,MAIO;QACH,KAAKk4C,aAAL,CAAmBl4C,KAAnB,GAA2B,IAAIs7C,kEAAJ,EAA3B;MACH;;MACD,IAAI,CAAC,KAAKpD,aAAL,CAAmB4B,wBAAxB,EAAkD;QAC9C,KAAK5B,aAAL,CAAmB4B,wBAAnB,GAA8C,EAA9C;MACH;;MACD,KAAKN,wBAAL,GAAgC,KAAKtB,aAAL,CAAmB4B,wBAAnD;MACA,KAAKC,cAAL,CAAoB,IAApB;IACH;EACJ;;EAEKW,WAAW,CAACxhD,SAAD,EAAU;IAAA;;IAAA;MACvB,IAAI,KAAI,CAACyhD,YAAL,KAAsBzhD,SAA1B,EAAqC;QACjC,KAAI,CAACyhD,YAAL,GAAoBzhD,SAApB;QACA,IAAIs8B,IAAI,GAAG,IAAX;;QACA,IAAIt8B,SAAS,IAAI,KAAI,CAACsgD,wBAAtB,EAAgD;UAC5ChkB,IAAI,GAAG,KAAI,CAACgkB,wBAAL,CAA8BtgD,SAAS,CAAC1Z,EAAxC,CAAP;QACH;;QACD,KAAI,CAACi7D,eAAL,CAAqBjlB,IAArB;MACH;IARsB;EAS1B;;EAED4kB,OAAO;IACH,IAAI,KAAKZ,wBAAL,CAA8BxiE,MAA9B,GAAuC,CAA3C,EAA8C;MAC1C,KAAK+iE,cAAL,CAAoB,KAApB;IACH;;IACD,MAAMa,IAAI,GAAG,IAAI1B,sFAAJ,EAAb;IAEA,MAAM3iE,IAAI,GAAG;MACT4J,OAAO,EAAE,KAAKm5D,YAAL,CAAkB3iE,IAAlB,CAAuBY,CAAC,IAAIA,CAAC,CAACuH,IAAF,KAAW87D,IAAI,CAACN,SAAL,CAAerB,iBAAtD,EAAyEriE,KADzE;MAET4I,EAAE,EAAE,KAAK66D,SAAL,CAAerjE;IAFV,CAAb;IAIAT,IAAI,CAAC4J,OAAL,IAAgBy6D,IAAI,CAACN,SAAL,CAAeC,MAAf,GAAwB,MAAMK,IAAI,CAACN,SAAL,CAAeC,MAA7C,GAAsD,EAAtE;IACAhkE,IAAI,CAAC4J,OAAL,IAAgBy6D,IAAI,CAACN,SAAL,CAAeE,MAAf,GAAwB,MAAMI,IAAI,CAACN,SAAL,CAAeE,MAA7C,GAAsD,EAAtE;IAEA,KAAKH,SAAL,CAAe7kE,IAAf,CAAoBe,IAApB;IACA,KAAKijE,wBAAL,CAA8BhkE,IAA9B,CAAmColE,IAAnC;IACA,KAAKD,YAAL,GAAoBpkE,IAApB;IACA,KAAKkkE,eAAL,CAAqBG,IAArB;EACH;;EAEDb,cAAc,CAACI,WAAW,GAAG,KAAf,EAAoB;IAC9B,IAAI,KAAKX,wBAAL,CAA8BxiE,MAA9B,KAAyC,CAA7C,EAAgD;MAC5C,KAAKojE,OAAL;IACH,CAFD,MAEO;MAEH,KAAKC,SAAL,GAAiB,EAAjB;MACA,KAAKb,wBAAL,CAA8BliE,OAA9B,CAAsC,CAACk+C,IAAD,EAAOp3C,CAAP,KAAY;QAC9C,MAAM7H,IAAI,GAAG;UACT4J,OAAO,EAAE,KAAKm5D,YAAL,CAAkB3iE,IAAlB,CAAuBY,CAAC,IAAIA,CAAC,CAACuH,IAAF,KAAW02C,IAAI,CAAC8kB,SAAL,CAAerB,iBAAtD,EAAyEriE,KADzE;UAET4I,EAAE,EAAE,KAAK66D,SAAL,CAAerjE;QAFV,CAAb;QAIAT,IAAI,CAAC4J,OAAL,IAAgBq1C,IAAI,CAAC8kB,SAAL,CAAeC,MAAf,GAAwB,MAAM/kB,IAAI,CAAC8kB,SAAL,CAAeC,MAA7C,GAAsD,EAAtE;QACAhkE,IAAI,CAAC4J,OAAL,IAAgBq1C,IAAI,CAAC8kB,SAAL,CAAeE,MAAf,GAAwB,MAAMhlB,IAAI,CAAC8kB,SAAL,CAAeE,MAA7C,GAAsD,EAAtE;QACA,KAAKH,SAAL,CAAe7kE,IAAf,CAAoBe,IAApB;MACH,CARD;MASA,MAAMkoB,UAAU,GAAG07C,WAAW,GAAG,KAAKX,wBAAL,CAA8B,CAA9B,CAAH,GAAsC,IAApE;MACA,KAAKiB,eAAL,CAAqBh8C,UAArB;IACH;EACJ;;EAEDg8C,eAAe,CAAClkE,IAAD,EAAK;IAChB,KAAKskE,eAAL,GAAuBtkE,IAAvB;;IACA,IAAI,KAAKskE,eAAT,EAA0B;MACtB,KAAKC,QAAL,GAAgB,KAAKD,eAAL,CAAqB76C,KAArC;IACH;EACJ;;EAGK+6C,UAAU;IAAA;;IAAA;MACZ,MAAMC,GAAG,GAAG,MAAI,CAACL,YAAjB;;MACA,IAAIK,GAAJ,EAAS;QACL,MAAM7kC,IAAI,GAAG,IAAI3oB,uEAAJ,CAAwB,iEAAxB,CAAb;QACA2oB,IAAI,CAACG,YAAL,CAAkB9gC,IAAlB,CAAuBwlE,GAAG,CAAC76D,OAA3B;QACA,MAAMkQ,MAAM,SAASxC,yGAAA,CAA4BsoB,IAA5B,EAAkC,IAAI3oB,uEAAJ,CAAwB,iBAAxB,CAAlC,EACjBG,yFADiB,EACQC,sFADR,CAArB;;QAEA,IAAIyC,MAAM,KAAKgjB,sFAAf,EAAqC;UAEjC,IAAI,MAAI,CAACmmC,wBAAT,EAAmC;YAC/B,MAAI,CAACA,wBAAL,CAA8Bv1D,MAA9B,CAAqC+2D,GAAG,CAACx7D,EAAzC,EAA6C,CAA7C;UACH;;UACD,MAAI,CAAC66D,SAAL,CAAep2D,MAAf,CAAsB+2D,GAAG,CAACx7D,EAA1B,EAA8B,CAA9B;;UAEA,MAAI,CAACm7D,YAAL,GAAoB,IAApB;UACA,MAAMl8C,UAAU,GAAG,MAAI,CAAC+6C,wBAAL,CAA8BxiE,MAA9B,GAAuC,CAAvC,GAA2C,MAAI,CAACwiE,wBAAL,CAA8B,CAA9B,CAA3C,GAA8E,IAAjG;;UACA,MAAI,CAACiB,eAAL,CAAqBh8C,UAArB;QACH;MACJ;IAlBW;EAmBf;;EAEDw8C,MAAM;IACF,IAAI,KAAKN,YAAL,IAAqB,KAAKA,YAAL,CAAkBn7D,EAAlB,GAAuB,CAA5C,IAAiD,KAAKg6D,wBAAtD,IAAkF,KAAKA,wBAAL,CAA8BxiE,MAA9B,GAAuC,CAA7H,EAAgI;MAC5H,MAAMw+C,IAAI,GAAG,KAAKgkB,wBAAL,CAA8Bv1D,MAA9B,CAAqC,KAAK02D,YAAL,CAAkBn7D,EAAvD,EAA2D,CAA3D,EAA8D,CAA9D,CAAb;MACA,KAAKg6D,wBAAL,CAA8Bv1D,MAA9B,CAAqC,CAArC,EAAwC,CAAxC,EAA2CuxC,IAA3C;MACA,KAAK6kB,SAAL,CAAep2D,MAAf,CAAsB,KAAK02D,YAAL,CAAkBn7D,EAAxC,EAA4C,CAA5C;MACA,KAAK66D,SAAL,CAAep2D,MAAf,CAAsB,CAAtB,EAAyB,CAAzB,EAA4B,KAAK02D,YAAjC;MACA,KAAKN,SAAL,CAAe/iE,OAAf,CAAuB,CAACC,CAAD,EAAI6G,CAAJ,KAAS;QAAG7G,CAAC,CAACiI,EAAF,GAAOpB,CAAP;MAAW,CAA9C;IACH;EACJ;;EAED88D,SAAS;IACL,IAAI,KAAKP,YAAL,IAAqB,KAAKA,YAAL,CAAkBn7D,EAAlB,GAAuB,CAA5C,IAAiD,KAAKg6D,wBAAtD,IAAkF,KAAKA,wBAAL,CAA8BxiE,MAA9B,GAAuC,CAA7H,EAAgI;MAC5H,MAAMw+C,IAAI,GAAG,KAAKgkB,wBAAL,CAA8Bv1D,MAA9B,CAAqC,KAAK02D,YAAL,CAAkBn7D,EAAvD,EAA2D,CAA3D,EAA8D,CAA9D,CAAb;MACA,KAAKg6D,wBAAL,CAA8Bv1D,MAA9B,CAAqC,KAAK02D,YAAL,CAAkBn7D,EAAlB,GAAuB,CAA5D,EAA+D,CAA/D,EAAkEg2C,IAAlE;MACA,KAAK6kB,SAAL,CAAep2D,MAAf,CAAsB,KAAK02D,YAAL,CAAkBn7D,EAAxC,EAA4C,CAA5C;MACA,KAAK66D,SAAL,CAAep2D,MAAf,CAAsB,KAAK02D,YAAL,CAAkBn7D,EAAlB,GAAuB,CAA7C,EAAgD,CAAhD,EAAmD,KAAKm7D,YAAxD;MACA,KAAKN,SAAL,CAAe/iE,OAAf,CAAuB,CAACC,CAAD,EAAI6G,CAAJ,KAAS;QAAG7G,CAAC,CAACiI,EAAF,GAAOpB,CAAP;MAAW,CAA9C;IACH;EACJ;;EAED+8D,WAAW;IACP,IAAI,KAAKR,YAAL,IAAqB,KAAKnB,wBAA1B,IAAsD,KAAKA,wBAAL,CAA8BxiE,MAA9B,GAAuC,CAA7F,IACA,KAAK2jE,YAAL,CAAkBn7D,EAAlB,GAAuB,KAAKg6D,wBAAL,CAA8BxiE,MAA9B,GAAuC,CADlE,EACqE;MACjE,MAAMw+C,IAAI,GAAG,KAAKgkB,wBAAL,CAA8Bv1D,MAA9B,CAAqC,KAAK02D,YAAL,CAAkBn7D,EAAvD,EAA2D,CAA3D,EAA8D,CAA9D,CAAb;MACA,KAAKg6D,wBAAL,CAA8Bv1D,MAA9B,CAAqC,KAAK02D,YAAL,CAAkBn7D,EAAlB,GAAuB,CAA5D,EAA+D,CAA/D,EAAkEg2C,IAAlE;MACA,KAAK6kB,SAAL,CAAep2D,MAAf,CAAsB,KAAK02D,YAAL,CAAkBn7D,EAAxC,EAA4C,CAA5C;MACA,KAAK66D,SAAL,CAAep2D,MAAf,CAAsB,KAAK02D,YAAL,CAAkBn7D,EAAlB,GAAuB,CAA7C,EAAgD,CAAhD,EAAmD,KAAKm7D,YAAxD;MACA,KAAKN,SAAL,CAAe/iE,OAAf,CAAuB,CAACC,CAAD,EAAI6G,CAAJ,KAAS;QAAG7G,CAAC,CAACiI,EAAF,GAAOpB,CAAP;MAAW,CAA9C;IACH;EACJ;;EAEDg9D,QAAQ;IACJ,IAAI,KAAKT,YAAL,IAAqB,KAAKnB,wBAA1B,IAAsD,KAAKA,wBAAL,CAA8BxiE,MAA9B,GAAuC,CAA7F,IACA,KAAK2jE,YAAL,CAAkBn7D,EAAlB,GAAuB,KAAKg6D,wBAAL,CAA8BxiE,MAA9B,GAAuC,CADlE,EACqE;MACjE,MAAMw+C,IAAI,GAAG,KAAKgkB,wBAAL,CAA8Bv1D,MAA9B,CAAqC,KAAK02D,YAAL,CAAkBn7D,EAAvD,EAA2D,CAA3D,EAA8D,CAA9D,CAAb;MACA,KAAKg6D,wBAAL,CAA8BhkE,IAA9B,CAAmCggD,IAAnC;MACA,KAAK6kB,SAAL,CAAep2D,MAAf,CAAsB,KAAK02D,YAAL,CAAkBn7D,EAAxC,EAA4C,CAA5C;MACA,KAAK66D,SAAL,CAAe7kE,IAAf,CAAoB,KAAKmlE,YAAzB;MACA,KAAKN,SAAL,CAAe/iE,OAAf,CAAuB,CAACC,CAAD,EAAI6G,CAAJ,KAAS;QAAG7G,CAAC,CAACiI,EAAF,GAAOpB,CAAP;MAAW,CAA9C;IACH;EACJ;;AA9KgD;;;;;;UAUhDrG,iDAAKA;;;UASLC,kDAAMA;;;AAnBEyjE,qBAAqB,uDAJjC1mE,yDAAS,CAAC;EACP4C,QAAQ,EAAE,0BADH;EAEPC,UAAAA,sEAAAA;AAFO,CAAD,CAIwB,GAArB6jE,qBAAqB,CAArB;AAAAA;AAiLP,MAAOK,iCAAP,SAAiD/D,uEAAjD,CAAoE;EACtEiE,UAAU,CAAClU,YAAD,EAAkB;IACxB,OAAO0T,mFAAA,CAA4B1T,YAA5B,CAAP;EACH;;EACDgR,UAAU,CAACtjB,IAAD,EAAYlG,EAAZ,EAAmB;IACzB,IAAIkG,IAAI,KAAKA,IAAI,CAAC0mB,SAAL,IAAkB1mB,IAAI,CAAC2mB,OAA5B,CAAR,EAA8C;MAC1C,OAAO3mB,IAAI,CAAC0mB,SAAL,GAAiB,GAAjB,GAAuB1mB,IAAI,CAAC2mB,OAAnC;IACH;;IACD,OAAO3tB,gGAAA,CAA2C,uBAA3C,CAAP;EACH;;AATqE;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtMhC;AACO;AACqB;AAC+B;AACnC;AACgD;AAChD;AAClB;IAMnC,wBAAwB,SAAxB,wBAAyB,SAAQ,qDAAU;IAEpD,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,wHAA4C,CAAC;QACtD,GAAG,CAAC,OAAO,GAAG,WAAW,CAAC;QAC1B,GAAG,CAAC,eAAe,GAAG,wBAAwB,CAAC;QAC/C,GAAG,CAAC,cAAc,GAAG,IAAI,iCAAiC,EAAE,CAAC;QAC7D,GAAG,CAAC,QAAQ,GAAG,iHAAqC,CAAC;QACrD,GAAG,CAAC,QAAQ,GAAG,uEAAmB,CAAC;QACnC,OAAO,GAAG,CAAC;IACf,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;gBAC1B,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,YAAY,iEAAS,CAAC,EAAE;oBAClD,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,+DAAY,CAAC,iEAAS,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;iBAChF;aACJ;iBAAM;gBACH,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,iEAAS,EAAE,CAAC;aAC9C;SACJ;IACL,CAAC;;AAvBQ,wBAAwB;IAJpC,wDAAS,CAAC;QACP,QAAQ,EAAE,6BAA6B;QACvC,mFAAiD;KACpD,CAAC;GACW,wBAAwB;AAAA;AA0B9B,MAAM,iCAAkC,SAAQ,uEAAmB;IACtE,UAAU,CAAC,YAAiB;QACxB,OAAO,kFAA2B,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC;IACD,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,OAAO,gGAA0C,CAAC,uBAAuB,CAAC,CAAC;IAC/E,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7CqC;AACO;AACqB;AAC+B;AACnC;AAC8C;AAC9C;AAClB;IAMnC,uBAAuB,SAAvB,uBAAwB,SAAQ,qDAAU;IAEnD,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,sHAA2C,CAAC;QACrD,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC;QACzB,GAAG,CAAC,eAAe,GAAG,uBAAuB,CAAC;QAC9C,GAAG,CAAC,cAAc,GAAG,IAAI,gCAAgC,EAAE,CAAC;QAC5D,GAAG,CAAC,QAAQ,GAAG,+GAAoC,CAAC;QACpD,GAAG,CAAC,QAAQ,GAAG,uEAAmB,CAAC;QACnC,OAAO,GAAG,CAAC;IACf,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;gBAC1B,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,YAAY,iEAAS,CAAC,EAAE;oBAClD,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,+DAAY,CAAC,iEAAS,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;iBAChF;aACJ;iBAAM;gBACH,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,iEAAS,EAAE,CAAC;aAC9C;SACJ;IACL,CAAC;;AAvBQ,uBAAuB;IAJnC,wDAAS,CAAC;QACP,QAAQ,EAAE,4BAA4B;QACtC,kFAAgD;KACnD,CAAC;GACW,uBAAuB;AAAA;AA0B7B,MAAM,gCAAiC,SAAQ,uEAAmB;IACrE,UAAU,CAAC,YAAiB;QACxB,OAAO,kFAA2B,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC;IACD,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,OAAO,gGAA0C,CAAC,sBAAsB,CAAC,CAAC;IAC9E,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7CqC;AACO;AACqB;AAC+B;AACnC;AACgD;AAChD;AAClB;IAMnC,wBAAwB,SAAxB,wBAAyB,SAAQ,qDAAU;IAEpD,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,wHAA4C,CAAC;QACtD,GAAG,CAAC,OAAO,GAAG,WAAW,CAAC;QAC1B,GAAG,CAAC,eAAe,GAAG,wBAAwB,CAAC;QAC/C,GAAG,CAAC,cAAc,GAAG,IAAI,gCAAgC,EAAE,CAAC;QAC5D,GAAG,CAAC,QAAQ,GAAG,iHAAqC,CAAC;QACrD,GAAG,CAAC,QAAQ,GAAG,uEAAmB,CAAC;QACnC,OAAO,GAAG,CAAC;IACf,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;gBAC1B,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,YAAY,iEAAS,CAAC,EAAE;oBAClD,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,+DAAY,CAAC,iEAAS,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;iBAChF;aACJ;iBAAM;gBACH,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,iEAAS,EAAE,CAAC;aAC9C;SACJ;IACL,CAAC;;AAvBQ,wBAAwB;IAJpC,wDAAS,CAAC;QACP,QAAQ,EAAE,6BAA6B;QACvC,mFAAiD;KACpD,CAAC;GACW,wBAAwB;AAAA;AA0B9B,MAAM,gCAAiC,SAAQ,uEAAmB;IACrE,UAAU,CAAC,YAAiB;QACxB,OAAO,kFAA2B,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC;IACD,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,OAAO,gGAA0C,CAAC,uBAAuB,CAAC,CAAC;IAC/E,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7CqC;AACyB;AACU;AACgB;AACjB;IAM/D,sBAAsB,SAAtB,sBAAuB,SAAQ,wDAAa;IACrD,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,sGAA4B,CAAC;QACtC,GAAG,CAAC,OAAO,GAAG,cAAc,CAAC;QAC7B,GAAG,CAAC,eAAe,GAAG,sBAAsB,CAAC;QAC7C,GAAG,CAAC,cAAc,GAAG,IAAI,2BAA2B,EAAE,CAAC;QACvD,GAAG,CAAC,QAAQ,GAAG,+FAAqB,CAAC;QACrC,GAAG,CAAC,QAAQ,GAAG,qEAAiB,CAAC;QACjC,OAAO,GAAG,CAAC;IACf,CAAC;;AAVQ,sBAAsB;IAJlC,wDAAS,CAAC;QACP,QAAQ,EAAE,2BAA2B;QACrC,iFAA+C;KAClD,CAAC;GACW,sBAAsB;AAAA;AAa5B,MAAM,2BAA4B,SAAQ,qEAA0B;IACvE,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,OAAO,EAAE;YACT,OAAO,OAAO,GAAG,KAAK,GAAG,gGAA0C,CAAC,cAAc,CAAC,CAAC;SACvF;QACD,OAAO,gGAA0C,CAAC,cAAc,CAAC,CAAC;IACtE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9BqC;AACyB;AACU;AACC;AACQ;IAMzE,aAAa,SAAb,aAAc,SAAQ,6DAAkB;IAGjD,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC;QAChB,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC;QACvB,GAAG,CAAC,eAAe,GAAG,aAAa,CAAC;QACpC,GAAG,CAAC,cAAc,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAC9C,GAAG,CAAC,QAAQ,GAAG,gFAAgB,CAAC;QAChC,GAAG,CAAC,QAAQ,GAAG,qEAAiB,CAAC;QACjC,OAAO,GAAG,CAAC;IACf,CAAC;;AAZQ,aAAa;IAJzB,wDAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,uEAAqC;KACxC,CAAC;GACW,aAAa;AAAA;AAenB,MAAM,kBAAmB,SAAQ,0EAA+B;IACnE,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,OAAO,EAAE;YACT,OAAO,OAAO,GAAG,KAAK,GAAG,gGAA0C,CAAC,QAAQ,CAAC,CAAC;SACjF;QACD,OAAO,gGAA0C,CAAC,QAAQ,CAAC,CAAC;IAChE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7BkB;AACc;AACY;AACiB;AACF;AACK;AACsB;AACb;AACN;AACI;AACb;AACY;AACzB;IAOrC,YAAY,SAAZ,YAAY;IA8DrB,YAAoB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;QA5D5C,iBAAY,GAAG,EAAE,CAAC;QAClB,cAAS,GAAG,EAAE,CAAC;QAEf,gBAAW,GAAG,EAAE,CAAC;QAEjB,gBAAW,GAAG,KAAK,CAAC;QAuBV,iBAAY,GAAG,IAAI,wDAAY,EAAO;QActC,wBAAmB,GAAG,IAAI,wDAAY,EAAO;QAEvD,kBAAa,GAAG,qEAAiB,CAAC;QAYxB,mBAAc,GAAG,IAAI,wDAAY,EAAO;QAExC,iBAAY,GAAG,IAAI,wDAAY,EAAO;IAGhD,CAAC;IArDD,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;QAIG,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACV,IAAI,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE;YACzB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC/B;IACL,CAAC;QAKG,aAAa;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IACD,IAAI,aAAa,CAAC,GAAG;QACjB,IAAI,GAAG,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAChC,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;YAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACtC;IACL,CAAC;QAKG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE;YAC3B,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACjC;IACL,CAAC;IAQD,eAAe;QACX,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE;gBACnH,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBACrG,IAAI,IAAI,EAAE;oBACN,IAAI,CAAC,eAAe,GAAG,gEAAY,CAAC,gGAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;iBAC9E;aACJ;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,QAAQ,EAAE;gBACV,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,UAAU,EAAE,CAAC;aACrB;SACJ;IACL,CAAC;IAED,UAAU;QACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAC7C,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACrH,CAAC;IAED,gBAAgB,CAAC,QAAQ;QACrB,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACpB,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE;oBAChC,IAAI,CAAC,EAAE,GAAG,oDAAS,EAAE,CAAC;iBACzB;gBACD,MAAM,IAAI,GAAG,oEAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC7C,IAAI,IAAI,EAAE;oBACN,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE;wBAC3E,OAAO;qBACV;oBACD,MAAM,IAAI,GAAG;wBACT,OAAO,EAAE,IAAI,CAAC,QAAQ;wBACtB,IAAI,EAAE,IAAI;wBACV,OAAO,EAAE,IAAI,CAAC,QAAQ;qBACzB,CAAC;oBACF,IAAI,IAAI,CAAC,cAAc,EAAE;wBACrB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,EAAE;4BAC7E,OAAO;yBACV;wBACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;wBAC1E,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;4BACvE,MAAM,OAAO,GAAG,MAAM,CAAC;4BACvB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;wBACzE,CAAC,CAAC,CAAC;qBACN;oBACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACnB;aACJ;QACL,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,IAAI,CAAC,aAAa,KAAK,qEAAiB,EAAE;gBAC1C,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;oBACpC,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,EAAE,CAAC;iBAC1C;gBACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;aAC5C;iBAAM;gBACH,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;oBACtC,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,EAAE,CAAC;iBAC5C;gBACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;aAC9C;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,SAAS;QACjB,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;YACjC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAC9B,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,IAAI,SAAS,EAAE;gBACX,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;aACzB;YACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SAC9B;IACL,CAAC;IAED,OAAO;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,QAAQ,EAAE;YACV,uEAAwB,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;gBAC3F,MAAM,IAAI,GAAG;oBACT,QAAQ,EAAE,CAAC;oBACX,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK;oBACtC,EAAE,EAAE,oDAAS,EAAE;iBAClB,CAAC;gBACF,MAAM,IAAI,GAAG;oBACT,OAAO,EAAE,CAAC;oBACV,IAAI,EAAE,IAAI;iBACb,CAAC;gBACF,MAAM,IAAI,GAAG,oEAAgB,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE;oBAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;iBAC7E;gBACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBAC3C,IAAI,CAAC,EAAE;wBACH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;wBACxB,IAAI,CAAC,UAAU,EAAE,CAAC;wBAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;wBACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;wBAC3B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;qBAC9B;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,QAAQ,EAAE;gBACV,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChE,MAAM,IAAI,GAAG;oBACT,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO;oBAClC,IAAI,EAAE,IAAI;iBACb,CAAC;gBACF,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBAC3C,IAAI,CAAC,CAAC,EAAE;wBACJ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAChC;gBACL,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAED,eAAe,CAAC,IAAI;QAChB,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YACjC,WAAW,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;SAClC;QACD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAED,QAAQ;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,gBAAgB,CAAC,GAAG,EAAE,QAAQ;QAC1B,OAAO,IAAI,OAAO,CAAU,OAAO,CAAC,EAAE;YAClC,IAAI,GAAG,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,IAAI,sBAAsB,CAAC,EAAE;gBAC5G,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,EAAE;oBAC1F,IAAI,MAAM,EAAE;wBACR,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACzC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;4BACZ,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;yBACrC;6BAAM;4BACH,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;yBACzB;wBACD,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC;wBAClB,MAAM,IAAI,GAAG,oEAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;wBAC/C,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE;4BAC7B,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;yBAC9E;wBACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;qBACjB;yBAAM;wBACH,OAAO,CAAC,KAAK,CAAC,CAAC;qBAClB;gBACL,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,OAAO,CAAC,KAAK,CAAC,CAAC;aAClB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,UAAU;QACN,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC/D,IAAI,QAAQ,IAAI,CAAC,EAAE;gBACf,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACpC,IAAI,QAAQ,EAAE;oBACV,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;oBACvD,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;wBACZ,MAAM,IAAI,GAAG,IAAI,uEAAmB,CAAC,iEAAiE,CAAC,CAAC;wBACxG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;wBAClD,+FAA2B,CAAC,IAAI,EAAE,IAAI,uEAAmB,CAAC,iBAAiB,CAAC,EACxE,yFAAuB,EAAE,sFAAuB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;4BAC5D,IAAI,MAAM,KAAK,qFAAoB,EAAE;gCACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gCACzB,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gCAC1B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gCACnC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gCACvC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;6BAChC;wBACL,CAAC,CAAC,CAAC;qBACV;iBACJ;aACJ;SACJ;IACL,CAAC;IAGD,cAAc;QACV,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,IAAI,QAAQ,EAAE;YACV,IAAI,QAAQ,CAAC,MAAM,GAAI,CAAC,EAAE;gBACtB,MAAM,IAAI,GAAG,gGAA0C,CAAC,2DAA2D,CAAC,CAAC;gBACrH,+FAA2B,CAAC,IAAI,EAAE,IAAI,uEAAmB,CAAC,iBAAiB,CAAC,EACxE,yFAAuB,EAAE,sFAAuB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAC5D,IAAI,MAAM,KAAK,qFAAoB,EAAE;wBACjC,QAAQ,GAAG,EAAE,CAAC;wBACd,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;wBACpB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;wBACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAChC;gBACL,CAAC,CAAC,CAAC;aACV;SACJ;IACL,CAAC;IACD,MAAM;QACF,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC/D,IAAI,SAAS,GAAG,CAAC,EAAE;gBACf,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACpC,IAAI,QAAQ,EAAE;oBACV,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;oBACvD,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;wBACZ,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBAC1B,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;wBAC9C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACnC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;wBAC/C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;wBACvC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;wBAElD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;wBACxB,IAAI,CAAC,UAAU,EAAE,CAAC;wBAClB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;wBAC7C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAChC;iBACJ;aACJ;SAEJ;IACL,CAAC;IAED,SAAS;QACL,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC/D,IAAI,QAAQ,GAAG,CAAC,EAAE;gBACd,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACpC,IAAI,QAAQ,EAAE;oBACV,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;oBACvD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACxE,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,EAAE;wBAChC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBAC1B,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;wBACxD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACnC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;wBAC1D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;wBACvC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;wBAC9D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAChC;iBACJ;aACJ;SACJ;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC/D,IAAI,QAAQ,GAAG,CAAC,CAAC,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACpC,IAAI,QAAQ,EAAE;oBACV,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;oBACvD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACvE,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,UAAU,GAAG,KAAK,EAAE;wBAClC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBAC1B,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;wBACvD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACnC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;wBAC1D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;wBACvC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;wBAC9D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAChC;iBACJ;aACJ;SACJ;IACL,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC/D,IAAI,QAAQ,GAAG,CAAC,CAAC,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACpC,IAAI,QAAQ,EAAE;oBACV,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;oBACvD,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;wBACZ,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBAC1B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;wBACtC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACvC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;wBACvC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;wBACxB,IAAI,CAAC,UAAU,EAAE,CAAC;wBAClB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;wBAC7C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAChC;iBACJ;aACJ;SACJ;IACL,CAAC;IAED,SAAS;QACL,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;gBAC3C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aAC1C;iBAAM;gBACH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACxC,WAAW,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;aAClC;SACJ;QACD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;;;;;;qBAnYA,iDAAK;2BAWL,kDAAM;4BAGN,iDAAK;kCAWL,kDAAM;uBAGN,iDAAK;6BAWL,kDAAM;2BAEN,kDAAM;;AA5DE,YAAY;IALxB,yDAAS,CAAC;QACP,QAAQ,EAAE,eAAe;QACzB,qEAAmC;;KAEtC,CAAC;GACW,YAAY;AAAA;IA6ZZ,cAAc,SAAd,cAAc;IAwBvB,YAAoB,eAAyC,EAAU,KAAwB,EAAU,QAAmB;QAAxG,oBAAe,GAAf,eAAe,CAA0B;QAAU,UAAK,GAAL,KAAK,CAAmB;QAAU,aAAQ,GAAR,QAAQ,CAAW;IAC5H,CAAC;IAnBD,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO;QACnC,mFAAqB,CAAC;YAClB,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE;gBACN,IAAI,EAAE,IAAI;gBACV,eAAe,EAAE,EAAE;gBACnB,aAAa,EAAE,EAAE;aACpB;YACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACX,IAAI,OAAO,EAAE;oBACT,OAAO,CAAC,CAAC,CAAC,CAAC;iBACd;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,KAAK,EAAE,mBAAmB;SAC7B,CAAC,CAAC;IACP,CAAC;IAKD,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC5C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACxC,IAAI,IAAI,CAAC,IAAI,EAAE;gBACX,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAChC;SACJ;IACL,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACjC,MAAM,IAAI,GAAG,oEAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAClD,IAAI,IAAI,EAAE;oBACN,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBACnF,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;oBAC/D,MAAM,SAAS,GAAQ,OAAO,CAAC,QAAQ,CAAC;oBACxC,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;oBACjD,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;oBAC7C,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;oBAC/B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;iBAClE;aACJ;SACJ;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;;;;;;;;+BAvDA,qDAAS,SAAC,SAAS,EAAE,EAAE,IAAI,EAAE,4DAAgB,EAAE;;AAJvC,cAAc;IAJ1B,yDAAS,CAAC;QACP,QAAQ,EAAE,kBAAkB;QAC5B,QAAQ,EAAE,iFAAiF;KAC9F,CAAC;GACW,cAAc;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACnbe;AACyB;AACU;AACO;AACE;IAMzE,gBAAgB,SAAhB,gBAAiB,SAAQ,6DAAkB;IAGpD,MAAM,CAAC,WAAW;QACd,MAAM,GAAG,GAAG,IAAI,qEAAiB,EAAE,CAAC;QACpC,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC;QACnB,GAAG,CAAC,OAAO,GAAG,YAAY,CAAC;QAC3B,GAAG,CAAC,eAAe,GAAG,gBAAgB,CAAC;QACvC,GAAG,CAAC,cAAc,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACjD,GAAG,CAAC,QAAQ,GAAG,sFAAmB,CAAC;QACnC,GAAG,CAAC,QAAQ,GAAG,qEAAiB,CAAC;QACjC,OAAO,GAAG,CAAC;IACf,CAAC;;AAZQ,gBAAgB;IAJ5B,wDAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;QAC9B,0EAAwC;KAC3C,CAAC;GACW,gBAAgB;AAAA;AAetB,MAAM,qBAAsB,SAAQ,0EAA+B;IACtE,UAAU,CAAC,IAAS,EAAE,EAAO;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,OAAO,EAAE;YACT,OAAO,OAAO,GAAG,KAAK,GAAG,gGAA0C,CAAC,WAAW,CAAC,CAAC;SACpF;QACD,OAAO,gGAA0C,CAAC,WAAW,CAAC,CAAC;IACnE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChCiF;AACvB;AACQ;AACA;AACJ;AACE;AACR;AACK;AAC8B;IAQnF,aAAa,SAAb,aAAa;IAItB,YAAoB,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;IACxC,CAAC;IACD,QAAQ;QACJ,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IACD,WAAW;IAEX,CAAC;IAED,OAAO;QACH,IAAI,OAAO,GAAG,IAAI,uEAAc,EAAE,CAAC;QACnC,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;QACrB,IAAI,MAAM,GAAG,IAAI,qEAAa,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC;QAC1B,MAAM,CAAC,QAAQ,GAAG,uEAAc,CAAC;QACjC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE7B,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;YAC7D,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAC1B,CAAC,CAAC;IACN,CAAC;IACD,SAAS,CAAC,MAAM;QACZ,kFAAqB,CAAC;YAClB,WAAW,EAAE,qGAAsB;YACnC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YAC1B,KAAK,EAAE,MAAM,CAAC,IAAI;YAClB,OAAO,EAAE,8EAAiB;YAC1B,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;gBAChB,IAAI,MAAM,IAAI,4EAAe,EAAE;oBAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;iBAClB;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,UAAU,EAAE,OAAO;YACnB,SAAS,EAAE,OAAO;YAClB,SAAS,EAAE,KAAK;SACnB,CAAC,CAAC;IACP,CAAC;;;;;AA1CQ,aAAa;IANzB,yDAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;QAC1B,sEAAoC;QAEpC,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,aAAa;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChB+B;AACH;AACqB;AACe;AACrD;AACY;AACoB;AACL;AACF;AACJ;AACuB;AACN;AACrB;AACc;AACP;AACU;AACgC;AACtC;AACJ;AACM;AACW;AACV;AACL;AAExD,MAAM,oBAAoB;;QAE7B,aAAQ,GAAG,KAAK,CAAC;QACjB,eAAU,GAAG,KAAK,CAAC;IACvB,CAAC;;IAQY,kBAAkB,SAAlB,kBAAkB;IAsC3B,YAAoB,SAA2C,EAAkC,IAA0B,EAC/G,OAAoB,EAAU,gBAAkC,EAAU,WAAwB;QAD1F,cAAS,GAAT,SAAS,CAAkC;QAAkC,SAAI,GAAJ,IAAI,CAAsB;QAC/G,YAAO,GAAP,OAAO,CAAa;QAAU,qBAAgB,GAAhB,gBAAgB,CAAkB;QAAU,gBAAW,GAAX,WAAW,CAAa;QArC9G,mBAAc,GAAG,OAAO,CAAC;QAoBzB,aAAQ,GAAG,KAAK,CAAC;QACjB,eAAU,GAAG,KAAK,CAAC;QA0InB,mBAAc,GAAG,CAAC,CAAC;QACnB,WAAM,GAAG;YACL,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;YAChC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;YAC/B,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;YAClC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE;SACnC;QA/HG,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACtC,CAAC;IAnBD,MAAM,CAAC,UAAU,CAAC,IAA0B,EAAE,OAAQ;QAElD,MAAM,MAAM,GAAG,IAAI,sEAAe,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC;QACvB,MAAM,MAAM,GAAG,sFAAgC,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;QAC5E,IAAI,OAAO,EAAE;YACT,MAAM,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gBAC/B,OAAO,CAAC,CAAC,CAAC,CAAC;YACf,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAUD,MAAM;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,QAAQ,CAAC,MAAM;QACX,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACf,yEAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,kFAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;oBAC3C,MAAM,IAAI,GAAG,IAAI,uEAAmB,CAAC,2EAA2E,CAAC,CAAC;oBAClH,MAAM,KAAK,GAAG,IAAI,uEAAmB,CAAC,kBAAkB,CAAC,CAAC;oBAC1D,+FAA2B,CAAC,IAAI,EAAE,KAAK,EAAE,sFAAoB,EAAE,yFAA0B,CAAC,CAAC;iBAC9F;qBAAM;oBACH,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;wBACzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;wBAC5C,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,EAAE;4BAC3D,MAAM,IAAI,GAAG,sFAAsF,CAAC;4BACpG,MAAM,KAAK,GAAG,IAAI,uEAAmB,CAAC,IAAI,CAAC,CAAC;4BAC5C,MAAM,KAAK,GAAG,IAAI,uEAAmB,CAAC,kBAAkB,CAAC,CAAC;4BAC1D,+FAA2B,CAAC,KAAK,EAAE,KAAK,EAAE,sFAAoB,EAAE,yFAA0B,CAAC,CAAC;yBAC/F;6BAAM;4BACH,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;4BAC1B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;yBACnC;oBACL,CAAC,CAAC,CAAC;iBACN;aACJ;iBAAM;gBACH,MAAM,IAAI,GAAG,IAAI,uEAAmB,CAAC,gCAAgC,CAAC,CAAC;gBACvE,MAAM,KAAK,GAAG,IAAI,uEAAmB,CAAC,kBAAkB,CAAC,CAAC;gBAC1D,+FAA2B,CAAC,IAAI,EAAE,KAAK,EAAE,sFAAoB,EAAE,yFAA0B,CAAC,CAAC;aAC9F;SACJ;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YAC1B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnC;IACL,CAAC;IAED,eAAe;QACX,QAAQ,IAAI,CAAC,cAAc,EAAE;YACzB,KAAK,MAAM;gBACP,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBACb,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;wBACrC,IAAI,CAAC,EAAE;4BACH,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACV,CAAC,CAAC,OAAO,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;4BACpC,CAAC,CAAC,CAAC;4BACH,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gCACZ,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE;oCACvB,OAAO,CAAC,CAAC,CAAC;iCACb;gCACD,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE;oCACvB,OAAO,CAAC,CAAC;iCACZ;gCACD,OAAO,CAAC,CAAC;4BACb,CAAC,CAAC,CAAC;4BACH,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;yBAClB;oBACL,CAAC,CAAC,CAAC;iBACN;gBACD,MAAM;YACV,KAAK,YAAY;gBACb,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;oBAClB,IAAI,CAAC,UAAU,GAAG,gEAAY,CAAC,wDAAM,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;oBAC7D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;iBAC9C;gBACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBACd,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;wBACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;oBACzB,CAAC,CAAC,CAAC;iBACN;gBACD,MAAM;YACV,KAAK,aAAa;gBACd,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;oBACnB,IAAI,CAAC,WAAW,GAAG,gEAAY,CAAC,wDAAM,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;oBAC/D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;iBACzD;gBACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBACd,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;wBACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;oBACzB,CAAC,CAAC,CAAC;iBACN;gBACD,MAAM;SACb;QACD,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,MAAM;QAC5B,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE;YAC3B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC5B,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;gBACtB,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,eAAe;QACX,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;YAC9C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;gBACvG,IAAI,IAAI,EAAE;oBACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;oBAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;wBAClF,IAAI,CAAC,kBAAkB,EAAE,CAAC;qBAC7B;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAUD,sBAAsB,CAAC,KAAK;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAG,IAAI,IAAI,CAAC,EAAE;YACV,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7E,CAAC,CAAC,CAAC;SACN;QACD,IAAG,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE;YACvB,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACzB,CAAC,CAAC,CAAC;SACN;IAGL,CAAC;IAED,iBAAiB;QACT,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;YAC9C,IAAG,IAAI,CAAC,cAAc,IAAI,CAAC,EAAE;gBACzB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;oBACvG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACN;iBACI;gBACD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,gCAAgC,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;oBACjH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACN;SACJ;IACT,CAAC;IAED,kBAAkB;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9E,gFAA8B,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACjE,IAAI,MAAM,EAAE;gBACR,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;gBAC9B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;gBAClB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;gBAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAChC,MAAM,MAAM,GAAG;wBACX,OAAO,EAAE,IAAI;wBACb,aAAa,EAAE,6EAA2B,CAAC,MAAM,CAAC;wBAClD,QAAQ,EAAE,CAAC,GAAG,CAAC;wBACf,QAAQ,EAAE,KAAK;wBACf,GAAG,EAAE,MAAM,CAAC,EAAE;qBACjB,CAAC;oBACF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;oBACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,uEAAa,EAAE,CAAC;oBAC9C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACxC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;oBAC/C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;oBACxD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,iBAAiB,CAAC;oBAC/D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,KAAK,sCAAsC,CAAC,CAAC;wBACnG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;oBACtC,IAAI,MAAM,CAAC,IAAI,KAAK,sCAAsC,EAAE;wBACxD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;qBACzC;yBAAM;wBACH,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;qBACzC;oBACD,IAAI,MAAM,CAAC,MAAM,EAAE;wBACf,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;qBAC3C;yBAAM;wBACH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;qBAC5C;oBACD,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;wBACtC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,eAAe,EAAE;4BAC1C,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gCACnD,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;oCAChC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;iCAClE;6BACJ;iCAAM;gCACH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,eAAe,GAAG,KAAK,CAAC;6BACnD;yBACJ;qBACJ;yBAAM;wBACH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC;qBAClD;oBACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;iBACxD;aACJ;QACL,CAAC,CAAC,CAAC;QACH,oFAAkC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACrE,IAAI,MAAM,EAAE;gBACR,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC;aACrC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB,CAAC,EAAE;QACjB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC/B,IAAI,KAAK,EAAE;gBACP,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC7B,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;gBACzB,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE;oBAC9B,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;oBACvC,MAAM,OAAO,GAAG,0EAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;oBAC7C,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE;wBAC1B,IAAI,gFAAc,IAAI,wFAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE;4BAC/D,qFAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;4BACnC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;4BAC1B,+FAAwC,CAAC,IAAI,CAAC,CAAC;yBAClD;wBACD,MAAM,KAAK,GAAG,qFAAmB,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC3G,IAAI,KAAK,EAAE;4BACP,MAAM,IAAI,GAAQ;gCACd,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,oDAAS,EAAE;gCACxC,EAAE,EAAE,KAAK,CAAC,EAAE;gCACZ,OAAO,EAAE,KAAK,CAAC,OAAO;gCACtB,OAAO,EAAE,KAAK;gCACd,aAAa,EAAE,KAAK;gCACpB,KAAK,EAAE,KAAK,CAAC,KAAK;gCAClB,KAAK,EAAE,KAAK,CAAC,KAAK;gCAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;6BAC3B,CAAC;4BACF,IAAI,KAAK,CAAC,OAAO,EAAE;gCACf,IAAI,CAAC,OAAO,GAAG,IAAI,iEAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gCAClD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;6BACvB;4BACD,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,UAAU,EAAE;gCAC3C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;6BAC5C;4BACD,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;4BAC7B,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;yBAC5B;qBACJ;iBACJ;aACJ;SACJ;IACL,CAAC;IAED,WAAW,CAAC,EAAE;QACV,IAAI,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE;YAC5B,IAAI,EAAE,CAAC,YAAY,KAAK,EAAE,CAAC,aAAa,EAAE;gBACtC,wEAAe,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;gBAChF,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACzC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAED,OAAO;QACH,QAAQ,IAAI,CAAC,cAAc,EAAE;YACzB,KAAK,OAAO;gBACR,MAAM,MAAM,GAAG,IAAI,wDAAM,EAAE,CAAC;gBAC5B,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;gBACxB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACtB,MAAM;YACV,KAAK,MAAM;gBACP,IAAI,IAAI,CAAC,YAAY,EAAE;oBACnB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;wBACnD,IAAI,CAAC,EAAE;4BACH,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;4BAChB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;yBACpB;6BAAM;4BACH,MAAM,IAAI,GAAG,IAAI,uEAAmB,CAAC,oDAAoD,CAAC,CAAC;4BAC3F,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;4BAC1C,+FAA2B,CAAC,IAAI,EAAE,IAAI,uEAAmB,CAAC,UAAU,CAAC,EACjE,sFAAoB,EAAE,mFAAoB,CAAC,CAAC;yBACnD;oBACL,CAAC,CAAC,CAAC;iBACN;qBAAM;oBACH,+FAA2B,CAAC,IAAI,uEAAmB,CAAC,kDAAkD,CAAC,EACnG,IAAI,uEAAmB,CAAC,kBAAkB,CAAC,EAAE,sFAAoB,EAAE,yFAA0B,CAAC,CAAC;iBACtG;gBACD,MAAM;YACV,KAAK,YAAY;gBACb,IAAI,IAAI,CAAC,UAAU,EAAE;oBACjB,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;wBAC3D,IAAI,IAAI,CAAC,OAAO,EAAE;4BACd,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BACvC,MAAM,MAAM,GAAG,EAAE,CAAC;4BAClB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gCACjB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gCAC9B,IAAI,GAAG,CAAC,OAAO,EAAE;oCACb,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iCACpB;4BACL,CAAC,CAAC,CAAC;4BACH,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACpE,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gCAChB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gCACxC,IAAI,MAAM,CAAC,WAAW,EAAE;oCACpB,IAAI,MAAM,CAAC,WAAW,KAAK,UAAU,EAAE;wCACnC,MAAM,MAAM,GAAG,IAAI,uEAAU,EAAE,CAAC;wCAChC,MAAM,CAAC,IAAI,GAAG,wEAAc,CAAC;wCAC7B,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;wCAClB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;qCAC1B;oCACD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iCACjE;4BACL,CAAC,CAAC,CAAC;yBACN;wBACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;qBAClC;yBAAM;wBACH,+FAA2B,CAAC,IAAI,uEAAmB,CAAC,0CAA0C,CAAC,EAC3F,IAAI,uEAAmB,CAAC,cAAc,CAAC,EAAE,sFAAoB,EAAE,yFAA0B,CAAC,CAAC;qBAClG;iBACJ;gBACD,MAAM;YACV,KAAK,aAAa;gBACd,IAAI,IAAI,CAAC,WAAW,EAAE;oBAClB,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;wBAC7D,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE;4BAC5E,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gCACrB,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;6BAC3B;4BACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE;gCAChD,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;gCAC1E,IAAI,KAAK,EAAE;oCACP,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;oCACjC,KAAK,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;oCAC3B,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;oCAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;iCAC1C;6BACJ;yBACJ;wBACD,IAAI,IAAI,CAAC,OAAO,EAAE;4BACd,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BACvC,MAAM,MAAM,GAAG,EAAE,CAAC;4BAClB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gCACjB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gCAC9B,IAAI,GAAG,CAAC,OAAO,EAAE;oCACb,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iCACpB;4BACL,CAAC,CAAC,CAAC;4BACH,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACpE,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gCAChB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gCACxC,IAAI,MAAM,CAAC,WAAW,EAAE;oCACpB,IAAI,MAAM,CAAC,WAAW,KAAK,UAAU,EAAE;wCACnC,MAAM,MAAM,GAAG,IAAI,uEAAU,EAAE,CAAC;wCAChC,MAAM,CAAC,IAAI,GAAG,wEAAc,CAAC;wCAC7B,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;wCAClB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;qCAC1B;oCACD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iCAClE;4BACL,CAAC,CAAC,CAAC;yBACN;wBACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;qBACnC;yBAAM;wBACH,+FAA2B,CAAC,IAAI,uEAAmB,CAAC,0CAA0C,CAAC,EAC3F,IAAI,uEAAmB,CAAC,eAAe,CAAC,EAAE,sFAAoB,EAAE,yFAA0B,CAAC,CAAC;qBACnG;iBACJ;gBACD,MAAM;SACb;IACL,CAAC;IACD,aAAa;QACT,OAAO;YACH,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,CAAC;YACT,QAAQ,EAAE,CAAC;oBACP,UAAU,EAAE,EAAE;oBACd,SAAS,EAAE,QAAQ;iBACtB,EAAE;oBACC,UAAU,EAAE,EAAE;oBACd,SAAS,EAAE,WAAW;iBACzB;aACA;YACD,UAAU,EAAE,CAAC;oBACT,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,CAAC;oBACZ,MAAM,EAAE,CAAC;oBACT,QAAQ,EAAE,CAAC;4BACP,UAAU,EAAE,EAAE;4BACd,SAAS,EAAE,QAAQ;yBACtB,EAAE;4BACC,UAAU,EAAE,EAAE;4BACd,SAAS,EAAE,WAAW;yBACzB;qBACA;oBACD,UAAU,EAAE,CAAC;4BACT,SAAS,EAAE,IAAI;4BACf,SAAS,EAAE,CAAC;4BACZ,MAAM,EAAE,CAAC;4BACT,QAAQ,EAAE,CAAC;oCACP,UAAU,EAAE,CAAC;4CACT,YAAY,EAAE,CAAC;4CACf,QAAQ,EAAE,sCAAsC;yCACnD;qCACA;oCACD,SAAS,EAAE,OAAO;iCACrB;6BACA;4BACD,UAAU,EAAE,EAAE;4BACd,aAAa,EAAE,QAAQ;4BACvB,WAAW,EAAE,IAAI;4BACjB,IAAI,EAAE,sCAAsC;4BAC5C,OAAO,EAAE,EAAE;4BACX,QAAQ,EAAE,EAAE;4BACZ,QAAQ,EAAE;gCACN,MAAM,EAAE,EAAE;gCACV,OAAO,EAAE,EAAE;gCACX,KAAK,EAAE,EAAE;gCACT,QAAQ,EAAE,EAAE;6BACf;4BACD,SAAS,EAAE;gCACP,MAAM,EAAE,EAAE;gCACV,OAAO,EAAE,EAAE;gCACX,KAAK,EAAE,EAAE;gCACT,QAAQ,EAAE,EAAE;6BACf;4BACD,MAAM,EAAE,KAAK;4BACb,SAAS,EAAE,KAAK;4BAChB,YAAY,EAAE,iBAAiB;4BAC/B,MAAM,EAAE,KAAK;yBAChB;qBACA;oBACD,UAAU,EAAE,CAAC;oBACb,UAAU,EAAE,CAAC;oBACb,aAAa,EAAE,MAAM;oBACrB,WAAW,EAAE,IAAI;oBACjB,IAAI,EAAE,sCAAsC;oBAC5C,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,EAAE;oBACZ,QAAQ,EAAE;wBACN,MAAM,EAAE,EAAE;wBACV,OAAO,EAAE,EAAE;wBACX,KAAK,EAAE,EAAE;wBACT,QAAQ,EAAE,EAAE;qBACf;oBACD,SAAS,EAAE;wBACP,MAAM,EAAE,EAAE;wBACV,OAAO,EAAE,EAAE;wBACX,KAAK,EAAE,EAAE;wBACT,QAAQ,EAAE,EAAE;qBACf;oBACD,aAAa,EAAE,CAAC;oBAChB,MAAM,EAAE,YAAY;iBACvB,EAAE;oBACC,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,CAAC;oBACZ,MAAM,EAAE,CAAC;oBACT,QAAQ,EAAE,CAAC;4BACP,UAAU,EAAE,CAAC;oCACT,YAAY,EAAE,CAAC;oCACf,QAAQ,EAAE,sCAAsC;iCACnD;6BACA;4BACD,SAAS,EAAE,kBAAkB;yBAChC,EAAE;4BACC,UAAU,EAAE,EAAE;4BACd,SAAS,EAAE,SAAS;yBACvB;qBACA;oBACD,UAAU,EAAE,EAAE;oBACd,UAAU,EAAE,CAAC;oBACb,UAAU,EAAE,CAAC;oBACb,aAAa,EAAE,SAAS;oBACxB,IAAI,EAAE,sCAAsC;oBAC5C,OAAO,EAAE;wBACL,OAAO,EAAE,GAAG;wBACZ,MAAM,EAAE,CAAC;qBACZ;oBACD,QAAQ,EAAE,EAAE;oBACZ,QAAQ,EAAE;wBACN,MAAM,EAAE,EAAE;wBACV,OAAO,EAAE,EAAE;wBACX,KAAK,EAAE,EAAE;wBACT,QAAQ,EAAE,EAAE;qBACf;oBACD,SAAS,EAAE;wBACP,MAAM,EAAE,EAAE;wBACV,OAAO,EAAE,EAAE;wBACX,KAAK,EAAE,EAAE;wBACT,QAAQ,EAAE,EAAE;qBACf;oBACD,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,CAAC;oBACV,QAAQ,EAAE;wBACN,YAAY,EAAE;4BACV,WAAW,EAAE;gCACT,OAAO,EAAE,CAAC;gCACV,MAAM,EAAE,CAAC;6BACZ;4BACD,OAAO,EAAE,CAAC;yBACb;wBACD,WAAW,EAAE;4BACT,WAAW,EAAE;gCACT,OAAO,EAAE,CAAC;gCACV,MAAM,EAAE,CAAC;6BACZ;4BACD,OAAO,EAAE,CAAC;yBACb;wBACD,aAAa,EAAE;4BACX,WAAW,EAAE;gCACT,OAAO,EAAE,CAAC;gCACV,MAAM,EAAE,CAAC;6BACZ;4BACD,OAAO,EAAE,CAAC;yBACb;wBACD,cAAc,EAAE;4BACZ,WAAW,EAAE;gCACT,OAAO,EAAE,CAAC;gCACV,MAAM,EAAE,CAAC;6BACZ;4BACD,OAAO,EAAE,CAAC;yBACb;qBACJ;iBACJ,EAAE;oBACC,SAAS,EAAE,KAAK;oBAChB,SAAS,EAAE,CAAC;oBACZ,MAAM,EAAE,CAAC;oBACT,QAAQ,EAAE,CAAC;4BACP,UAAU,EAAE,EAAE;4BACd,SAAS,EAAE,QAAQ;yBACtB,EAAE;4BACC,UAAU,EAAE,EAAE;4BACd,SAAS,EAAE,WAAW;yBACzB;qBACA;oBACD,UAAU,EAAE,CAAC;4BACT,SAAS,EAAE,IAAI;4BACf,SAAS,EAAE,CAAC;4BACZ,MAAM,EAAE,CAAC;4BACT,QAAQ,EAAE,CAAC;oCACP,UAAU,EAAE,EAAE;oCACd,SAAS,EAAE,QAAQ;iCACtB,EAAE;oCACC,UAAU,EAAE,EAAE;oCACd,SAAS,EAAE,WAAW;iCACzB;6BACA;4BACD,UAAU,EAAE,CAAC;oCACT,SAAS,EAAE,IAAI;oCACf,SAAS,EAAE,CAAC;oCACZ,MAAM,EAAE,CAAC;oCACT,QAAQ,EAAE,CAAC;4CACP,UAAU,EAAE,CAAC;oDACT,YAAY,EAAE,CAAC;oDACf,QAAQ,EAAE,sCAAsC;iDACnD;6CACA;4CACD,SAAS,EAAE,OAAO;yCACrB;qCACA;oCACD,UAAU,EAAE,EAAE;oCACd,aAAa,EAAE,QAAQ;oCACvB,WAAW,EAAE,IAAI;oCACjB,IAAI,EAAE,sCAAsC;oCAC5C,OAAO,EAAE,EAAE;oCACX,QAAQ,EAAE,EAAE;oCACZ,QAAQ,EAAE;wCACN,MAAM,EAAE,EAAE;wCACV,OAAO,EAAE,EAAE;wCACX,KAAK,EAAE,EAAE;wCACT,QAAQ,EAAE,EAAE;qCACf;oCACD,SAAS,EAAE;wCACP,MAAM,EAAE,EAAE;wCACV,OAAO,EAAE,EAAE;wCACX,KAAK,EAAE,EAAE;wCACT,QAAQ,EAAE,EAAE;qCACf;oCACD,MAAM,EAAE,QAAQ;oCAChB,YAAY,EAAE,mBAAmB;oCACjC,SAAS,EAAE,QAAQ;iCACtB,EAAE;oCACC,SAAS,EAAE,IAAI;oCACf,SAAS,EAAE,CAAC;oCACZ,MAAM,EAAE,CAAC;oCACT,QAAQ,EAAE,CAAC;4CACP,UAAU,EAAE,CAAC;oDACT,YAAY,EAAE,CAAC;oDACf,QAAQ,EAAE,sCAAsC;iDACnD;6CACA;4CACD,SAAS,EAAE,OAAO;yCACrB;qCACA;oCACD,UAAU,EAAE,EAAE;oCACd,aAAa,EAAE,QAAQ;oCACvB,WAAW,EAAE,IAAI;oCACjB,IAAI,EAAE,sCAAsC;oCAC5C,OAAO,EAAE,EAAE;oCACX,QAAQ,EAAE,EAAE;oCACZ,QAAQ,EAAE;wCACN,MAAM,EAAE,EAAE;wCACV,OAAO,EAAE,EAAE;wCACX,KAAK,EAAE,EAAE;wCACT,QAAQ,EAAE,EAAE;qCACf;oCACD,SAAS,EAAE;wCACP,MAAM,EAAE,EAAE;wCACV,OAAO,EAAE,EAAE;wCACX,KAAK,EAAE,EAAE;wCACT,QAAQ,EAAE,EAAE;qCACf;oCACD,MAAM,EAAE,MAAM;oCACd,SAAS,EAAE,MAAM;oCACjB,YAAY,EAAE,mBAAmB;iCACpC,EAAE;oCACC,SAAS,EAAE,IAAI;oCACf,SAAS,EAAE,CAAC;oCACZ,MAAM,EAAE,CAAC;oCACT,QAAQ,EAAE,CAAC;4CACP,UAAU,EAAE,CAAC;oDACT,YAAY,EAAE,CAAC;oDACf,QAAQ,EAAE,sCAAsC;iDACnD;6CACA;4CACD,SAAS,EAAE,OAAO;yCACrB;qCACA;oCACD,UAAU,EAAE,EAAE;oCACd,aAAa,EAAE,QAAQ;oCACvB,WAAW,EAAE,IAAI;oCACjB,IAAI,EAAE,sCAAsC;oCAC5C,OAAO,EAAE,EAAE;oCACX,QAAQ,EAAE,EAAE;oCACZ,QAAQ,EAAE;wCACN,MAAM,EAAE,EAAE;wCACV,OAAO,EAAE,EAAE;wCACX,KAAK,EAAE,EAAE;wCACT,QAAQ,EAAE,EAAE;qCACf;oCACD,SAAS,EAAE;wCACP,MAAM,EAAE,EAAE;wCACV,OAAO,EAAE,EAAE;wCACX,KAAK,EAAE,EAAE;wCACT,QAAQ,EAAE,EAAE;qCACf;oCACD,MAAM,EAAE,QAAQ;oCAChB,SAAS,EAAE,QAAQ;oCACnB,YAAY,EAAE,mBAAmB;iCACpC;6BACA;4BACD,UAAU,EAAE,CAAC;4BACb,UAAU,EAAE,CAAC;4BACb,aAAa,EAAE,MAAM;4BACrB,WAAW,EAAE,IAAI;4BACjB,IAAI,EAAE,sCAAsC;4BAC5C,OAAO,EAAE,EAAE;4BACX,QAAQ,EAAE,EAAE;4BACZ,QAAQ,EAAE;gCACN,MAAM,EAAE,EAAE;gCACV,OAAO,EAAE,EAAE;gCACX,KAAK,EAAE,EAAE;gCACT,QAAQ,EAAE,EAAE;6BACf;4BACD,SAAS,EAAE;gCACP,MAAM,EAAE,EAAE;gCACV,OAAO,EAAE,EAAE;gCACX,KAAK,EAAE,EAAE;gCACT,QAAQ,EAAE,EAAE;6BACf;4BACD,aAAa,EAAE,CAAC;4BAChB,MAAM,EAAE,SAAS;yBACpB,EAAE;4BACC,SAAS,EAAE,IAAI;4BACf,SAAS,EAAE,CAAC;4BACZ,MAAM,EAAE,CAAC;4BACT,QAAQ,EAAE,CAAC;oCACP,UAAU,EAAE,EAAE;oCACd,SAAS,EAAE,QAAQ;iCACtB,EAAE;oCACC,UAAU,EAAE,EAAE;oCACd,SAAS,EAAE,WAAW;iCACzB;6BACA;4BACD,UAAU,EAAE,EAAE;4BACd,UAAU,EAAE,CAAC;4BACb,UAAU,EAAE,CAAC;4BACb,aAAa,EAAE,MAAM;4BACrB,WAAW,EAAE,IAAI;4BACjB,IAAI,EAAE,sCAAsC;4BAC5C,OAAO,EAAE,EAAE;4BACX,QAAQ,EAAE,EAAE;4BACZ,QAAQ,EAAE;gCACN,MAAM,EAAE,EAAE;gCACV,OAAO,EAAE,EAAE;gCACX,KAAK,EAAE,EAAE;gCACT,QAAQ,EAAE,EAAE;6BACf;4BACD,SAAS,EAAE;gCACP,MAAM,EAAE,EAAE;gCACV,OAAO,EAAE,EAAE;gCACX,KAAK,EAAE,EAAE;gCACT,QAAQ,EAAE,EAAE;6BACf;4BACD,MAAM,EAAE,MAAM;4BACd,aAAa,EAAE,CAAC;4BAChB,YAAY,EAAE,IAAI;yBACrB;qBACA;oBACD,UAAU,EAAE,CAAC;oBACb,UAAU,EAAE,CAAC;oBACb,aAAa,EAAE,MAAM;oBACrB,WAAW,EAAE,IAAI;oBACjB,IAAI,EAAE,sCAAsC;oBAC5C,mBAAmB,EAAE,CAAC;4BAClB,SAAS,EAAE,IAAI;4BACf,SAAS,EAAE,CAAC;4BACZ,MAAM,EAAE,CAAC;4BACT,QAAQ,EAAE,EAAE;4BACZ,MAAM,EAAE;gCACJ,MAAM,EAAE,CAAC;gCACT,OAAO,EAAE,GAAG;6BACf;yBACJ;qBACA;oBACD,gBAAgB,EAAE,CAAC;4BACf,SAAS,EAAE,IAAI;4BACf,SAAS,EAAE,CAAC;4BACZ,MAAM,EAAE,CAAC;4BACT,QAAQ,EAAE,EAAE;4BACZ,MAAM,EAAE;gCACJ,MAAM,EAAE,CAAC;gCACT,OAAO,EAAE,CAAC;6BACb;yBACJ,EAAE;4BACC,SAAS,EAAE,IAAI;4BACf,SAAS,EAAE,CAAC;4BACZ,MAAM,EAAE,CAAC;4BACT,QAAQ,EAAE,EAAE;4BACZ,MAAM,EAAE;gCACJ,OAAO,EAAE,EAAE;gCACX,MAAM,EAAE,CAAC;6BACZ;yBACJ;qBACA;oBACD,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,EAAE;oBACZ,QAAQ,EAAE;wBACN,MAAM,EAAE,EAAE;wBACV,OAAO,EAAE,EAAE;wBACX,KAAK,EAAE,EAAE;wBACT,QAAQ,EAAE,EAAE;qBACf;oBACD,SAAS,EAAE;wBACP,MAAM,EAAE,EAAE;wBACV,OAAO,EAAE,EAAE;wBACX,KAAK,EAAE,EAAE;wBACT,QAAQ,EAAE,EAAE;qBACf;oBACD,MAAM,EAAE,QAAQ;iBACnB;aACA;YACD,aAAa,EAAE,EAAE;YACjB,WAAW,EAAE,CAAC;oBACV,SAAS,EAAE,KAAK;oBAChB,IAAI,EAAE,sCAAsC;oBAC5C,MAAM,EAAE;wBACJ,SAAS,EAAE,CAAC;gCACR,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,iBAAiB;gCAC3B,UAAU,EAAE;oCACR,UAAU,EAAE,MAAM;iCACrB;6BACJ,EAAE;gCACC,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,uBAAuB;gCACjC,UAAU,EAAE;oCACR,QAAQ,EAAE,CAAC;4CACP,UAAU,EAAE,CAAC;oDACT,UAAU,EAAE,QAAQ;iDACvB,CAAC;4CACF,QAAQ,EAAE;gDACN,SAAS,EAAE,IAAI;6CAClB;yCACJ,CAAC;iCACL;6BACJ;yBACA;wBACD,YAAY,EAAE,CAAC;gCACX,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,CAAC;gCAChB,YAAY,EAAE,CAAC;gCACf,YAAY,EAAE,CAAC;6BAClB;yBACA;qBACJ;iBACJ,EAAE;oBACC,SAAS,EAAE,iBAAiB;oBAC5B,IAAI,EAAE,sCAAsC;oBAC5C,MAAM,EAAE;wBACJ,SAAS,EAAE,CAAC;gCACR,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,0BAA0B;gCACpC,UAAU,EAAE;oCACR,UAAU,EAAE,CAAC;4CACT,UAAU,EAAE,QAAQ;yCACvB,CAAC;iCACL;6BACJ;yBACA;wBACD,YAAY,EAAE,EAAE;qBACnB;iBACJ,EAAE;oBACC,SAAS,EAAE,MAAM;oBACjB,IAAI,EAAE,sCAAsC;oBAC5C,MAAM,EAAE;wBACJ,SAAS,EAAE,CAAC;gCACR,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,kBAAkB;gCAC5B,UAAU,EAAE;oCACR,UAAU,EAAE,MAAM;iCACrB;6BACJ,EAAE;gCACC,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,iBAAiB;gCAC3B,UAAU,EAAE;oCACR,UAAU,EAAE,MAAM;iCACrB;6BACJ;yBACA;wBACD,YAAY,EAAE,CAAC;gCACX,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,CAAC;gCAChB,YAAY,EAAE,CAAC;gCACf,YAAY,EAAE,CAAC;6BAClB;yBACA;qBACJ;iBACJ,EAAE;oBACC,SAAS,EAAE,QAAQ;oBACnB,IAAI,EAAE,sCAAsC;oBAC5C,MAAM,EAAE;wBACJ,SAAS,EAAE,CAAC;gCACR,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,sBAAsB;gCAChC,UAAU,EAAE;oCACR,UAAU,EAAE,MAAM;iCACrB;6BACJ,EAAE;gCACC,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,iBAAiB;gCAC3B,UAAU,EAAE;oCACR,UAAU,EAAE,MAAM;iCACrB;6BACJ,EAAE;gCACC,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,0BAA0B;gCACpC,UAAU,EAAE;oCACR,UAAU,EAAE,CAAC;4CACT,UAAU,EAAE,QAAQ;yCACvB,CAAC;iCACL;6BACJ;yBACA;wBACD,YAAY,EAAE,CAAC;gCACX,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,CAAC;gCAChB,YAAY,EAAE,CAAC;gCACf,YAAY,EAAE,CAAC;6BAClB,EAAE;gCACC,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,CAAC;gCAChB,YAAY,EAAE,CAAC;gCACf,YAAY,EAAE,CAAC;6BAClB;yBACA;qBACJ;iBACJ,EAAE;oBACC,SAAS,EAAE,UAAU;oBACrB,IAAI,EAAE,sCAAsC;oBAC5C,MAAM,EAAE;wBACJ,SAAS,EAAE,CAAC;gCACR,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,2BAA2B;gCACrC,UAAU,EAAE;oCACR,UAAU,EAAE,CAAC;4CACT,UAAU,EAAE,MAAM;4CAClB,cAAc,EAAE,IAAI;yCACvB,CAAC;iCACL;6BACJ,EAAE;gCACC,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,uBAAuB;gCACjC,UAAU,EAAE;oCACR,QAAQ,EAAE,CAAC;4CACP,UAAU,EAAE,CAAC;oDACT,UAAU,EAAE,QAAQ;iDACvB,CAAC;4CACF,QAAQ,EAAE;gDACN,SAAS,EAAE,IAAI;6CAClB;yCACJ,CAAC;iCACL;6BACJ;yBACA;wBACD,YAAY,EAAE,CAAC;gCACX,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,CAAC;gCAChB,YAAY,EAAE,CAAC;gCACf,YAAY,EAAE,CAAC;6BAClB;yBACA;qBACJ;iBACJ;aACA;YACD,IAAI,EAAE,sCAAsC;YAC5C,aAAa,EAAE,MAAM;YACrB,WAAW,EAAE,IAAI;YACjB,mBAAmB,EAAE,CAAC;oBAClB,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,CAAC;oBACZ,MAAM,EAAE,CAAC;oBACT,QAAQ,EAAE,EAAE;oBACZ,MAAM,EAAE;wBACJ,MAAM,EAAE,CAAC;wBACT,OAAO,EAAE,GAAG;qBACf;iBACJ,EAAE;oBACC,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,CAAC;oBACZ,MAAM,EAAE,CAAC;oBACT,QAAQ,EAAE,EAAE;oBACZ,MAAM,EAAE;wBACJ,MAAM,EAAE,CAAC;wBACT,OAAO,EAAE,CAAC;qBACb;iBACJ;aACA;YACD,gBAAgB,EAAE,CAAC;oBACf,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,CAAC;oBACZ,MAAM,EAAE,CAAC;oBACT,QAAQ,EAAE,EAAE;oBACZ,MAAM,EAAE;wBACJ,MAAM,EAAE,CAAC;wBACT,OAAO,EAAE,EAAE;qBACd;iBACJ,EAAE;oBACC,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,CAAC;oBACZ,MAAM,EAAE,CAAC;oBACT,QAAQ,EAAE,EAAE;oBACZ,MAAM,EAAE;wBACJ,MAAM,EAAE,CAAC;wBACT,OAAO,EAAE,CAAC;qBACb;iBACJ;aACA;YACD,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE;gBACN,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,EAAE;aACf;YACD,SAAS,EAAE;gBACP,MAAM,EAAE;oBACJ,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,EAAE;iBACd;gBACD,OAAO,EAAE;oBACL,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,EAAE;iBACd;gBACD,KAAK,EAAE;oBACH,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,EAAE;iBACd;gBACD,QAAQ,EAAE;oBACN,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,EAAE;iBACd;aACJ;YACD,MAAM,EAAE,MAAM;YACd,YAAY,EAAE;gBACV,SAAS,EAAE,EAAE;gBACb,MAAM,EAAE,CAAC;wBACL,MAAM,EAAE,UAAU;wBAClB,OAAO,EAAE,CAAC;qBACb;iBACA;gBACD,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,CAAC;gBACb,QAAQ,EAAE,GAAG;aAChB;SACJ,CAAC;IACN,CAAC;IACD,cAAc;QACV,OAAO;YACH,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,CAAC;YACT,QAAQ,EAAE,CAAC;oBACP,UAAU,EAAE,EAAE;oBACd,SAAS,EAAE,QAAQ;iBACtB,EAAE;oBACC,UAAU,EAAE,EAAE;oBACd,SAAS,EAAE,WAAW;iBACzB;aACA;YACD,UAAU,EAAE,CAAC;oBACT,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,CAAC;oBACZ,MAAM,EAAE,CAAC;oBACT,QAAQ,EAAE,CAAC;4BACP,UAAU,EAAE,EAAE;4BACd,SAAS,EAAE,QAAQ;yBACtB,EAAE;4BACC,UAAU,EAAE,EAAE;4BACd,SAAS,EAAE,WAAW;yBACzB;qBACA;oBACD,UAAU,EAAE,CAAC;4BACT,SAAS,EAAE,IAAI;4BACf,SAAS,EAAE,CAAC;4BACZ,MAAM,EAAE,CAAC;4BACT,QAAQ,EAAE,CAAC;oCACP,UAAU,EAAE,EAAE;oCACd,SAAS,EAAE,QAAQ;iCACtB,EAAE;oCACC,UAAU,EAAE,EAAE;oCACd,SAAS,EAAE,WAAW;iCACzB;6BACA;4BACD,UAAU,EAAE,CAAC;oCACT,SAAS,EAAE,IAAI;oCACf,SAAS,EAAE,CAAC;oCACZ,MAAM,EAAE,CAAC;oCACT,QAAQ,EAAE,CAAC;4CACP,UAAU,EAAE,CAAC;oDACT,YAAY,EAAE,CAAC;oDACf,QAAQ,EAAE,sCAAsC;iDACnD;6CACA;4CACD,SAAS,EAAE,OAAO;yCACrB;qCACA;oCACD,UAAU,EAAE,EAAE;oCACd,aAAa,EAAE,QAAQ;oCACvB,WAAW,EAAE,IAAI;oCACjB,IAAI,EAAE,sCAAsC;oCAC5C,OAAO,EAAE,EAAE;oCACX,QAAQ,EAAE,EAAE;oCACZ,QAAQ,EAAE;wCACN,MAAM,EAAE,EAAE;wCACV,OAAO,EAAE,EAAE;wCACX,KAAK,EAAE,EAAE;wCACT,QAAQ,EAAE,EAAE;qCACf;oCACD,SAAS,EAAE;wCACP,MAAM,EAAE,EAAE;wCACV,OAAO,EAAE,EAAE;wCACX,KAAK,EAAE,EAAE;wCACT,QAAQ,EAAE,EAAE;qCACf;oCACD,MAAM,EAAE,KAAK;oCACb,SAAS,EAAE,KAAK;oCAChB,YAAY,EAAE,iBAAiB;oCAC/B,MAAM,EAAE,KAAK;iCAChB;6BACA;4BACD,UAAU,EAAE,CAAC;4BACb,UAAU,EAAE,CAAC;4BACb,aAAa,EAAE,MAAM;4BACrB,WAAW,EAAE,IAAI;4BACjB,IAAI,EAAE,sCAAsC;4BAC5C,OAAO,EAAE,EAAE;4BACX,QAAQ,EAAE,EAAE;4BACZ,QAAQ,EAAE;gCACN,MAAM,EAAE,EAAE;gCACV,OAAO,EAAE,EAAE;gCACX,KAAK,EAAE,EAAE;gCACT,QAAQ,EAAE,EAAE;6BACf;4BACD,SAAS,EAAE;gCACP,MAAM,EAAE,EAAE;gCACV,OAAO,EAAE,EAAE;gCACX,KAAK,EAAE,EAAE;gCACT,QAAQ,EAAE,EAAE;6BACf;4BACD,aAAa,EAAE,CAAC;4BAChB,MAAM,EAAE,YAAY;yBACvB,EAAE;4BACC,SAAS,EAAE,IAAI;4BACf,SAAS,EAAE,CAAC;4BACZ,MAAM,EAAE,CAAC;4BACT,QAAQ,EAAE,CAAC;oCACP,UAAU,EAAE,CAAC;4CACT,YAAY,EAAE,CAAC;4CACf,QAAQ,EAAE,sCAAsC;yCACnD;qCACA;oCACD,SAAS,EAAE,kBAAkB;iCAChC,EAAE;oCACC,UAAU,EAAE,EAAE;oCACd,SAAS,EAAE,SAAS;iCACvB;6BACA;4BACD,UAAU,EAAE,EAAE;4BACd,UAAU,EAAE,CAAC;4BACb,UAAU,EAAE,CAAC;4BACb,aAAa,EAAE,WAAW;4BAC1B,IAAI,EAAE,sCAAsC;4BAC5C,OAAO,EAAE,EAAE;4BACX,QAAQ,EAAE,EAAE;4BACZ,QAAQ,EAAE;gCACN,MAAM,EAAE,EAAE;gCACV,OAAO,EAAE,EAAE;gCACX,KAAK,EAAE,EAAE;gCACT,QAAQ,EAAE,EAAE;6BACf;4BACD,SAAS,EAAE;gCACP,MAAM,EAAE,EAAE;gCACV,OAAO,EAAE,EAAE;gCACX,KAAK,EAAE,EAAE;gCACT,QAAQ,EAAE,EAAE;6BACf;4BACD,SAAS,EAAE,EAAE;4BACb,MAAM,EAAE,OAAO;4BACf,YAAY,EAAE,CAAC;4BACf,YAAY,EAAE,CAAC;yBAClB;qBACA;oBACD,aAAa,EAAE,MAAM;oBACrB,WAAW,EAAE,IAAI;oBACjB,IAAI,EAAE,sCAAsC;oBAC5C,mBAAmB,EAAE,CAAC;4BAClB,SAAS,EAAE,IAAI;4BACf,SAAS,EAAE,CAAC;4BACZ,MAAM,EAAE,CAAC;4BACT,QAAQ,EAAE,EAAE;4BACZ,MAAM,EAAE;gCACJ,MAAM,EAAE,CAAC;gCACT,OAAO,EAAE,GAAG;6BACf;yBACJ;qBACA;oBACD,gBAAgB,EAAE,CAAC;4BACf,SAAS,EAAE,IAAI;4BACf,SAAS,EAAE,CAAC;4BACZ,MAAM,EAAE,CAAC;4BACT,QAAQ,EAAE,EAAE;4BACZ,MAAM,EAAE;gCACJ,MAAM,EAAE,CAAC;gCACT,OAAO,EAAE,EAAE;6BACd;yBACJ,EAAE;4BACC,SAAS,EAAE,IAAI;4BACf,SAAS,EAAE,CAAC;4BACZ,MAAM,EAAE,CAAC;4BACT,QAAQ,EAAE,EAAE;4BACZ,MAAM,EAAE;gCACJ,MAAM,EAAE,CAAC;gCACT,OAAO,EAAE,CAAC;6BACb;yBACJ;qBACA;oBACD,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,EAAE;oBACZ,QAAQ,EAAE;wBACN,MAAM,EAAE,EAAE;wBACV,OAAO,EAAE,EAAE;wBACX,KAAK,EAAE,EAAE;wBACT,QAAQ,EAAE,EAAE;qBACf;oBACD,SAAS,EAAE;wBACP,MAAM,EAAE,EAAE;wBACV,OAAO,EAAE,EAAE;wBACX,KAAK,EAAE,EAAE;wBACT,QAAQ,EAAE,EAAE;qBACf;oBACD,MAAM,EAAE,MAAM;oBACd,UAAU,EAAE,IAAI;iBACnB,EAAE;oBACC,SAAS,EAAE,KAAK;oBAChB,SAAS,EAAE,CAAC;oBACZ,MAAM,EAAE,CAAC;oBACT,QAAQ,EAAE,CAAC;4BACP,UAAU,EAAE,EAAE;4BACd,SAAS,EAAE,QAAQ;yBACtB,EAAE;4BACC,UAAU,EAAE,EAAE;4BACd,SAAS,EAAE,WAAW;yBACzB;qBACA;oBACD,UAAU,EAAE,CAAC;4BACT,SAAS,EAAE,IAAI;4BACf,SAAS,EAAE,CAAC;4BACZ,MAAM,EAAE,CAAC;4BACT,QAAQ,EAAE,CAAC;oCACP,UAAU,EAAE,EAAE;oCACd,SAAS,EAAE,QAAQ;iCACtB,EAAE;oCACC,UAAU,EAAE,EAAE;oCACd,SAAS,EAAE,WAAW;iCACzB;6BACA;4BACD,UAAU,EAAE,CAAC;oCACT,SAAS,EAAE,IAAI;oCACf,SAAS,EAAE,CAAC;oCACZ,MAAM,EAAE,CAAC;oCACT,QAAQ,EAAE,CAAC;4CACP,UAAU,EAAE,CAAC;oDACT,YAAY,EAAE,CAAC;oDACf,QAAQ,EAAE,sCAAsC;iDACnD;6CACA;4CACD,SAAS,EAAE,OAAO;yCACrB;qCACA;oCACD,UAAU,EAAE,EAAE;oCACd,aAAa,EAAE,QAAQ;oCACvB,WAAW,EAAE,IAAI;oCACjB,IAAI,EAAE,sCAAsC;oCAC5C,OAAO,EAAE,EAAE;oCACX,QAAQ,EAAE,EAAE;oCACZ,QAAQ,EAAE;wCACN,MAAM,EAAE,EAAE;wCACV,OAAO,EAAE,EAAE;wCACX,KAAK,EAAE,EAAE;wCACT,QAAQ,EAAE,EAAE;qCACf;oCACD,SAAS,EAAE;wCACP,MAAM,EAAE,EAAE;wCACV,OAAO,EAAE,EAAE;wCACX,KAAK,EAAE,EAAE;wCACT,QAAQ,EAAE,EAAE;qCACf;oCACD,MAAM,EAAE,QAAQ;oCAChB,SAAS,EAAE,QAAQ;oCACnB,YAAY,EAAE,mBAAmB;iCACpC,EAAE;oCACC,SAAS,EAAE,IAAI;oCACf,SAAS,EAAE,CAAC;oCACZ,MAAM,EAAE,CAAC;oCACT,QAAQ,EAAE,CAAC;4CACP,UAAU,EAAE,CAAC;oDACT,YAAY,EAAE,CAAC;oDACf,QAAQ,EAAE,sCAAsC;iDACnD;6CACA;4CACD,SAAS,EAAE,OAAO;yCACrB;qCACA;oCACD,UAAU,EAAE,EAAE;oCACd,aAAa,EAAE,QAAQ;oCACvB,WAAW,EAAE,IAAI;oCACjB,IAAI,EAAE,sCAAsC;oCAC5C,OAAO,EAAE,EAAE;oCACX,QAAQ,EAAE,EAAE;oCACZ,QAAQ,EAAE;wCACN,MAAM,EAAE,EAAE;wCACV,OAAO,EAAE,EAAE;wCACX,KAAK,EAAE,EAAE;wCACT,QAAQ,EAAE,EAAE;qCACf;oCACD,SAAS,EAAE;wCACP,MAAM,EAAE,EAAE;wCACV,OAAO,EAAE,EAAE;wCACX,KAAK,EAAE,EAAE;wCACT,QAAQ,EAAE,EAAE;qCACf;oCACD,MAAM,EAAE,MAAM;oCACd,SAAS,EAAE,MAAM;oCACjB,YAAY,EAAE,mBAAmB;iCACpC,EAAE;oCACC,SAAS,EAAE,IAAI;oCACf,SAAS,EAAE,CAAC;oCACZ,MAAM,EAAE,CAAC;oCACT,QAAQ,EAAE,CAAC;4CACP,UAAU,EAAE,CAAC;oDACT,YAAY,EAAE,CAAC;oDACf,QAAQ,EAAE,sCAAsC;iDACnD;6CACA;4CACD,SAAS,EAAE,OAAO;yCACrB;qCACA;oCACD,UAAU,EAAE,EAAE;oCACd,aAAa,EAAE,QAAQ;oCACvB,WAAW,EAAE,IAAI;oCACjB,IAAI,EAAE,sCAAsC;oCAC5C,OAAO,EAAE,EAAE;oCACX,QAAQ,EAAE,EAAE;oCACZ,QAAQ,EAAE;wCACN,MAAM,EAAE,EAAE;wCACV,OAAO,EAAE,EAAE;wCACX,KAAK,EAAE,EAAE;wCACT,QAAQ,EAAE,EAAE;qCACf;oCACD,SAAS,EAAE;wCACP,MAAM,EAAE,EAAE;wCACV,OAAO,EAAE,EAAE;wCACX,KAAK,EAAE,EAAE;wCACT,QAAQ,EAAE,EAAE;qCACf;oCACD,MAAM,EAAE,QAAQ;oCAChB,SAAS,EAAE,QAAQ;oCACnB,YAAY,EAAE,mBAAmB;iCACpC;6BACA;4BACD,UAAU,EAAE,CAAC;4BACb,UAAU,EAAE,CAAC;4BACb,aAAa,EAAE,MAAM;4BACrB,WAAW,EAAE,IAAI;4BACjB,IAAI,EAAE,sCAAsC;4BAC5C,OAAO,EAAE,EAAE;4BACX,QAAQ,EAAE,EAAE;4BACZ,QAAQ,EAAE;gCACN,MAAM,EAAE,EAAE;gCACV,OAAO,EAAE,EAAE;gCACX,KAAK,EAAE,EAAE;gCACT,QAAQ,EAAE,EAAE;6BACf;4BACD,SAAS,EAAE;gCACP,MAAM,EAAE,EAAE;gCACV,OAAO,EAAE,EAAE;gCACX,KAAK,EAAE,EAAE;gCACT,QAAQ,EAAE,EAAE;6BACf;4BACD,aAAa,EAAE,CAAC;4BAChB,MAAM,EAAE,SAAS;yBACpB,EAAE;4BACC,SAAS,EAAE,IAAI;4BACf,SAAS,EAAE,CAAC;4BACZ,MAAM,EAAE,CAAC;4BACT,QAAQ,EAAE,CAAC;oCACP,UAAU,EAAE,EAAE;oCACd,SAAS,EAAE,QAAQ;iCACtB,EAAE;oCACC,UAAU,EAAE,EAAE;oCACd,SAAS,EAAE,WAAW;iCACzB;6BACA;4BACD,UAAU,EAAE,EAAE;4BACd,UAAU,EAAE,CAAC;4BACb,UAAU,EAAE,CAAC;4BACb,aAAa,EAAE,MAAM;4BACrB,WAAW,EAAE,IAAI;4BACjB,IAAI,EAAE,sCAAsC;4BAC5C,OAAO,EAAE,EAAE;4BACX,QAAQ,EAAE,EAAE;4BACZ,QAAQ,EAAE;gCACN,MAAM,EAAE,EAAE;gCACV,OAAO,EAAE,EAAE;gCACX,KAAK,EAAE,EAAE;gCACT,QAAQ,EAAE,EAAE;6BACf;4BACD,SAAS,EAAE;gCACP,MAAM,EAAE,EAAE;gCACV,OAAO,EAAE,EAAE;gCACX,KAAK,EAAE,EAAE;gCACT,QAAQ,EAAE,EAAE;6BACf;4BACD,aAAa,EAAE,CAAC;4BAChB,MAAM,EAAE,MAAM;4BACd,YAAY,EAAE,IAAI;yBACrB;qBACA;oBACD,aAAa,EAAE,MAAM;oBACrB,WAAW,EAAE,IAAI;oBACjB,IAAI,EAAE,sCAAsC;oBAC5C,mBAAmB,EAAE,CAAC;4BAClB,SAAS,EAAE,IAAI;4BACf,SAAS,EAAE,CAAC;4BACZ,MAAM,EAAE,CAAC;4BACT,QAAQ,EAAE,EAAE;4BACZ,MAAM,EAAE;gCACJ,MAAM,EAAE,CAAC;gCACT,OAAO,EAAE,GAAG;6BACf;yBACJ;qBACA;oBACD,gBAAgB,EAAE,CAAC;4BACf,SAAS,EAAE,IAAI;4BACf,SAAS,EAAE,CAAC;4BACZ,MAAM,EAAE,CAAC;4BACT,QAAQ,EAAE,EAAE;4BACZ,MAAM,EAAE;gCACJ,MAAM,EAAE,CAAC;gCACT,OAAO,EAAE,CAAC;6BACb;yBACJ,EAAE;4BACC,SAAS,EAAE,IAAI;4BACf,SAAS,EAAE,CAAC;4BACZ,MAAM,EAAE,CAAC;4BACT,QAAQ,EAAE,EAAE;4BACZ,MAAM,EAAE;gCACJ,OAAO,EAAE,EAAE;gCACX,MAAM,EAAE,CAAC;6BACZ;yBACJ;qBACA;oBACD,OAAO,EAAE;wBACL,OAAO,EAAE,GAAG;wBACZ,MAAM,EAAE,CAAC;qBACZ;oBACD,QAAQ,EAAE,EAAE;oBACZ,QAAQ,EAAE;wBACN,MAAM,EAAE,EAAE;wBACV,OAAO,EAAE,EAAE;wBACX,KAAK,EAAE,EAAE;wBACT,QAAQ,EAAE,EAAE;qBACf;oBACD,SAAS,EAAE;wBACP,MAAM,EAAE,EAAE;wBACV,OAAO,EAAE,EAAE;wBACX,KAAK,EAAE,EAAE;wBACT,QAAQ,EAAE,EAAE;qBACf;oBACD,MAAM,EAAE,QAAQ;iBACnB;aACA;YACD,aAAa,EAAE,EAAE;YACjB,WAAW,EAAE,CAAC;oBACV,SAAS,EAAE,iBAAiB;oBAC5B,IAAI,EAAE,sCAAsC;oBAC5C,MAAM,EAAE;wBACJ,SAAS,EAAE,CAAC;gCACR,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,0BAA0B;gCACpC,UAAU,EAAE;oCACR,UAAU,EAAE,CAAC;4CACT,UAAU,EAAE,QAAQ;yCACvB,CAAC;iCACL;6BACJ;yBACA;wBACD,YAAY,EAAE,EAAE;qBACnB;iBACJ,EAAE;oBACC,SAAS,EAAE,KAAK;oBAChB,IAAI,EAAE,sCAAsC;oBAC5C,MAAM,EAAE;wBACJ,SAAS,EAAE,CAAC;gCACR,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,iBAAiB;gCAC3B,UAAU,EAAE;oCACR,UAAU,EAAE,MAAM;iCACrB;6BACJ,EAAE;gCACC,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,uBAAuB;gCACjC,UAAU,EAAE;oCACR,QAAQ,EAAE,CAAC;4CACP,UAAU,EAAE,CAAC;oDACT,UAAU,EAAE,QAAQ;iDACvB,CAAC;4CACF,QAAQ,EAAE;gDACN,SAAS,EAAE,IAAI;6CAClB;yCACJ,CAAC;iCACL;6BACJ;yBACA;wBACD,YAAY,EAAE,CAAC;gCACX,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,CAAC;gCAChB,YAAY,EAAE,CAAC;gCACf,YAAY,EAAE,CAAC;6BAClB;yBACA;qBACJ;iBACJ,EAAE;oBACC,SAAS,EAAE,QAAQ;oBACnB,IAAI,EAAE,sCAAsC;oBAC5C,MAAM,EAAE;wBACJ,SAAS,EAAE,CAAC;gCACR,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,EAAE;gCACV,QAAQ,EAAE,sBAAsB;gCAChC,UAAU,EAAE;oCACR,UAAU,EAAE,MAAM;iCACrB;6BACJ,EAAE;gCACC,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,iBAAiB;gCAC3B,UAAU,EAAE;oCACR,UAAU,EAAE,OAAO;iCACtB;6BACJ,EAAE;gCACC,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,0BAA0B;gCACpC,UAAU,EAAE;oCACR,UAAU,EAAE,CAAC;4CACT,UAAU,EAAE,QAAQ;yCACvB,CAAC;iCACL;6BACJ;yBACA;wBACD,YAAY,EAAE,CAAC;gCACX,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,CAAC;gCAChB,YAAY,EAAE,CAAC;gCACf,YAAY,EAAE,CAAC;6BAClB,EAAE;gCACC,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,CAAC;gCAChB,YAAY,EAAE,CAAC;gCACf,YAAY,EAAE,CAAC;6BAClB;yBACA;qBACJ;iBACJ,EAAE;oBACC,SAAS,EAAE,MAAM;oBACjB,IAAI,EAAE,sCAAsC;oBAC5C,MAAM,EAAE;wBACJ,SAAS,EAAE,CAAC;gCACR,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,EAAE;gCACV,QAAQ,EAAE,kBAAkB;gCAC5B,UAAU,EAAE;oCACR,UAAU,EAAE,MAAM;iCACrB;6BACJ,EAAE;gCACC,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,iBAAiB;gCAC3B,UAAU,EAAE;oCACR,UAAU,EAAE,OAAO;iCACtB;6BACJ;yBACA;wBACD,YAAY,EAAE,CAAC;gCACX,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,CAAC;gCAChB,YAAY,EAAE,CAAC;gCACf,YAAY,EAAE,CAAC;6BAClB;yBACA;qBACJ;iBACJ,EAAE;oBACC,SAAS,EAAE,SAAS;oBACpB,IAAI,EAAE,sCAAsC;oBAC5C,MAAM,EAAE;wBACJ,SAAS,EAAE,CAAC;gCACR,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,CAAC;gCACT,MAAM,EAAE,IAAI;gCACZ,QAAQ,EAAE,2BAA2B;gCACrC,UAAU,EAAE;oCACR,UAAU,EAAE,CAAC;4CACT,UAAU,EAAE,MAAM;4CAClB,cAAc,EAAE,IAAI;yCACvB,CAAC;iCACL;6BACJ,EAAE;gCACC,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,CAAC;gCACT,MAAM,EAAE,IAAI;gCACZ,QAAQ,EAAE,uBAAuB;gCACjC,UAAU,EAAE;oCACR,QAAQ,EAAE,CAAC;4CACP,UAAU,EAAE,CAAC;oDACT,UAAU,EAAE,QAAQ;iDACvB,CAAC;4CACF,QAAQ,EAAE;gDACN,SAAS,EAAE,IAAI;6CAClB;yCACJ,CAAC;iCACL;6BACJ,EAAE;gCACC,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,yBAAyB;gCACnC,UAAU,EAAE;oCACR,WAAW,EAAE,CAAC;iCACjB;6BACJ,EAAE;gCACC,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,yBAAyB;gCACnC,UAAU,EAAE;oCACR,YAAY,EAAE,CAAC;4CACX,UAAU,EAAE,KAAK;4CACjB,aAAa,EAAE,IAAI;yCACtB,CAAC;iCACL;6BACJ,EAAE;gCACC,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,0BAA0B;gCACpC,UAAU,EAAE;oCACR,YAAY,EAAE,OAAO;oCACrB,iBAAiB,EAAE,MAAM;oCACzB,QAAQ,EAAE;wCACN,gBAAgB,EAAE,CAAC;wCACnB,SAAS,EAAE,CAAC;gDACR,MAAM,EAAE,KAAK;gDACb,OAAO,EAAE,QAAQ;gDACjB,UAAU,EAAE,CAAC;6CAChB;yCACA;qCACJ;oCACD,kBAAkB,EAAE,IAAI;iCAC3B;6BACJ,EAAE;gCACC,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,CAAC;gCACT,MAAM,EAAE,IAAI;gCACZ,QAAQ,EAAE,yBAAyB;gCACnC,UAAU,EAAE;oCACR,WAAW,EAAE,CAAC;iCACjB;6BACJ,EAAE;gCACC,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,EAAE;gCACV,QAAQ,EAAE,mBAAmB;gCAC7B,UAAU,EAAE;oCACR,WAAW,EAAE,WAAW;oCACxB,iBAAiB,EAAE,IAAI;iCAC1B;6BACJ,EAAE;gCACC,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,EAAE;gCACV,QAAQ,EAAE,sBAAsB;gCAChC,UAAU,EAAE,EAAE;6BACjB,EAAE;gCACC,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,CAAC;gCACP,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,mBAAmB;gCAC7B,UAAU,EAAE;oCACR,WAAW,EAAE,OAAO;oCACpB,iBAAiB,EAAE,IAAI;iCAC1B;6BACJ,EAAE;gCACC,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,EAAE;gCACR,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,mBAAmB;gCAC7B,UAAU,EAAE;oCACR,UAAU,EAAE,CAAC;oCACb,UAAU,EAAE;wCACR,UAAU,EAAE,CAAC;wCACb,QAAQ,EAAE,CAAC;wCACX,QAAQ,EAAE,CAAC;qCACd;iCACJ;6BACJ,EAAE;gCACC,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,EAAE;gCACR,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,mBAAmB;gCAC7B,UAAU,EAAE;oCACR,WAAW,EAAE,WAAW;iCAC3B;6BACJ,EAAE;gCACC,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,EAAE;gCACR,MAAM,EAAE,IAAI;gCACZ,MAAM,EAAE,GAAG;gCACX,QAAQ,EAAE,0BAA0B;gCACpC,UAAU,EAAE;oCACR,UAAU,EAAE,CAAC;4CACT,UAAU,EAAE,QAAQ;yCACvB,CAAC;iCACL;6BACJ,EAAE;gCACC,aAAa,EAAE,EAAE;gCACjB,IAAI,EAAE,EAAE;gCACR,MAAM,EAAE,GAAG;gCACX,MAAM,EAAE,IAAI;gCACZ,QAAQ,EAAE,wBAAwB;gCAClC,UAAU,EAAE;oCACR,MAAM,EAAE,uCAAuC;oCAC/C,OAAO,EAAE,WAAW;oCACpB,MAAM,EAAE,CAAC;oCACT,SAAS,EAAE,CAAC;iCACf;6BACJ;yBACA;wBACD,YAAY,EAAE,CAAC;gCACX,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,CAAC;gCAChB,YAAY,EAAE,CAAC;gCACf,YAAY,EAAE,CAAC;6BAClB,EAAE;gCACC,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,CAAC;gCAChB,YAAY,EAAE,CAAC;gCACf,YAAY,EAAE,CAAC;6BAClB,EAAE;gCACC,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,CAAC;gCAChB,YAAY,EAAE,CAAC;gCACf,YAAY,EAAE,CAAC;6BAClB,EAAE;gCACC,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,CAAC;gCAChB,YAAY,EAAE,CAAC;gCACf,YAAY,EAAE,CAAC;6BAClB,EAAE;gCACC,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,CAAC;gCAChB,YAAY,EAAE,CAAC;gCACf,YAAY,EAAE,CAAC;6BAClB,EAAE;gCACC,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,CAAC;gCAChB,YAAY,EAAE,CAAC;gCACf,YAAY,EAAE,CAAC;6BAClB,EAAE;gCACC,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,CAAC;gCAChB,YAAY,EAAE,CAAC;gCACf,YAAY,EAAE,CAAC;6BAClB,EAAE;gCACC,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,EAAE;gCACjB,YAAY,EAAE,CAAC;gCACf,YAAY,EAAE,CAAC;6BAClB,EAAE;gCACC,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,EAAE;gCACjB,YAAY,EAAE,EAAE;gCAChB,YAAY,EAAE,CAAC;6BAClB,EAAE;gCACC,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,CAAC;gCAChB,YAAY,EAAE,EAAE;gCAChB,YAAY,EAAE,CAAC;6BAClB,EAAE;gCACC,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,EAAE;gCACjB,YAAY,EAAE,EAAE;gCAChB,YAAY,EAAE,CAAC;6BAClB,EAAE;gCACC,aAAa,EAAE,CAAC;gCAChB,aAAa,EAAE,EAAE;gCACjB,YAAY,EAAE,CAAC;gCACf,YAAY,EAAE,CAAC;6BAClB;yBACA;qBACJ;iBACJ;aACA;YACD,IAAI,EAAE,sCAAsC;YAC5C,aAAa,EAAE,MAAM;YACrB,WAAW,EAAE,IAAI;YACjB,mBAAmB,EAAE,CAAC;oBAClB,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,CAAC;oBACZ,MAAM,EAAE,CAAC;oBACT,QAAQ,EAAE,EAAE;oBACZ,MAAM,EAAE;wBACJ,MAAM,EAAE,CAAC;wBACT,OAAO,EAAE,GAAG;qBACf;iBACJ;aACA;YACD,gBAAgB,EAAE,CAAC;oBACf,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,CAAC;oBACZ,MAAM,EAAE,CAAC;oBACT,QAAQ,EAAE,EAAE;oBACZ,MAAM,EAAE;wBACJ,MAAM,EAAE,CAAC;wBACT,OAAO,EAAE,GAAG;qBACf;iBACJ;aACA;YACD,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE;gBACN,OAAO,EAAE,GAAG;gBACZ,MAAM,EAAE,CAAC;aACZ;YACD,QAAQ,EAAE;gBACN,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,EAAE;aACf;YACD,SAAS,EAAE;gBACP,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,EAAE;aACf;YACD,YAAY,EAAE;gBACV,SAAS,EAAE,EAAE;gBACb,MAAM,EAAE,CAAC;wBACL,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,CAAC;qBACb;iBACA;gBACD,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,CAAC;gBACb,QAAQ,EAAE,GAAG;aAChB;YACD,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,CAAC;YAChB,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE,EAAE;YAClB,YAAY,EAAE,EAAE;SACnB,CAAC;IACN,CAAC;;;;uDAn2DiE,kDAAM,SAAC,sEAAe;;;;;AAtC/E,kBAAkB;IAN9B,yDAAS,CAAC;QACP,QAAQ,EAAE,sBAAsB;QAChC,4EAA0C;QAE1C,eAAe,EAAE,0EAA8B;;KAClD,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACpC+D;AACvD;AACgC;IAQ1D,WAAW,SAAX,WAAW;IAapB,YAAoB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;QAZ5C,WAAM,GAAG,KAAK,CAAC;QACf,eAAU,GAAG,KAAK,CAAC;QAEnB,kBAAa,GAAG,CAAC,CAAC;QAUd,oGAAwC,CAAC,CAAC,CAAC,EAAE;YACzC,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,EAAE;gBAC5B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;aAC9B;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAbD,MAAM,CAAC,WAAW;QACd,MAAM,OAAO,GAAG,WAAW,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QACpD,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAYD,QAAQ;QACJ,IAAI,CAAC,YAAY,GAAG;YAChB,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC;YACvC,CAAC,EAAE,EAAE;SACR,CAAC;QACF,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YACnC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,gBAAgB;QACZ,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK;QACD,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;;AAnCc,wBAAY,GAAG,IAAI,iDAAe,CAAU,KAAK,CAAE;;;;AANzD,WAAW;IANvB,wDAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,oEAAkC;QAElC,eAAe,EAAE,yEAA8B;;KAClD,CAAC;GACW,WAAW;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVmF;AACzC;AACE;AACQ;IAQ/D,4BAA4B,SAA5B,4BAA4B;IAiIrC,YAAoB,OAA6B,EAAU,UAA4B,EAAU,KAAwB;QAArG,YAAO,GAAP,OAAO,CAAsB;QAAU,eAAU,GAAV,UAAU,CAAkB;QAAU,UAAK,GAAL,KAAK,CAAmB;QAhIzH,kBAAa,GAAG;YACZ,eAAe,EAAE,IAAI;YACrB,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,IAAI;YACjB,oBAAoB,EAAE,KAAK;SAC9B,CAAC;QAEF,wBAAmB,GAAG,EAAE,CAAC;QA0BzB,YAAY;QAEZ,wBAAwB;QACxB,kBAAa,GAAG,EAAE,CAAC;QAuDnB,YAAY;QAEZ,qBAAqB;QACrB,qBAAgB,GAAG,EAAE,CAAC;QAatB,YAAY;QAEZ,oBAAoB;QACpB,oBAAe,GAAG,CAAC,CAAC,CAAC;QAarB,YAAY;QAEZ,mBAAc,GAAG,EAAE,CAAC;IAGpB,CAAC;IAvHD,IAAI,YAAY;QACZ,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC5D,IAAI,MAAM,EAAE;gBACR,OAAO,MAAM,CAAC,MAAM,CAAC;aACxB;YACD,OAAO,EAAE,CAAC;SACb;aAAM;YACH,OAAO,IAAI,CAAC,WAAW,CAAC;SAC3B;IACL,CAAC;QAKG,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,CAAC,GAAG;QACV,IAAI,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE;YACzB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;SAC/D;IACL,CAAC;QAOG,cAAc;QACd,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QAClB,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,eAAe,EAAE;YAChD,IAAI,OAAO,GAAG,CAAC,iBAAiB,KAAK,SAAS,EAAE;gBAC5C,WAAW,GAAG,GAAG,CAAC,iBAAiB;aACtC;YACD,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC;SAC7B;QACD,IAAI,GAAG,IAAI,IAAI,CAAC,mBAAmB,EAAE;YACjC,IAAI,GAAG,EAAE;gBACL,IAAI,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBAC1C,IAAI,WAAW,EAAE;oBACb,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;iBAClC;qBAAM;oBACH,IAAI,WAAW,EAAE;wBACb,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;4BACzC,WAAW,GAAG;gCACV,MAAM,EAAE,EAAE;gCACV,mBAAmB,EAAE,EAAE;6BAC1B,CAAC;4BACF,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;gCACf,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;gCACnC,WAAW,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;6BAChF;4BACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;4BACtC,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;4BAC/B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;wBAC/B,CAAC,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;4BACrC,WAAW,GAAG;gCACV,MAAM,EAAE,EAAE;gCACV,mBAAmB,EAAE,EAAE;6BAC1B,CAAC;4BACF,IAAI,CAAC,EAAE;gCACH,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;gCAC5B,WAAW,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;6BACzE;4BACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;4BACtC,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;4BAC/B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;wBAC/B,CAAC,CAAC,CAAC;qBACN;iBACJ;aACJ;iBAAM;gBACH,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;aAClC;SACJ;IACL,CAAC;QAMG,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IACD,IAAI,WAAW,CAAC,GAAG;QACf,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;SAC/B;aAAM;YACH,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;SAC9B;QACD,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;QAMG,UAAU;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,IAAI,UAAU,CAAC,GAAG;QACd,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YACzB,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;SAC9B;aAAM;YACH,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;SAC7B;QACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAQD,eAAe;QACX,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,MAAM;QACP,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;gBAC5E,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;gBAClD,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;oBAChC,IAAI,IAAI,CAAC,mBAAmB,EAAE;wBAC1B,IAAI,KAAK,CAAC;wBACV,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;4BACpC,IAAI,IAAI,CAAC,mBAAmB,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,EAAE;gCACzE,KAAK,GAAG,CAAC,CAAC;gCACV,OAAO,IAAI,CAAC;6BACf;4BACD,OAAO,KAAK,CAAC;wBACjB,CAAC,CAAC,EAAE;4BACA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;4BACvC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;yBACjC;6BAAM;4BACH,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;4BAC5D,IAAI,MAAM,IAAI,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;gCAC3D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;oCACvB,UAAU,EAAE,UAAU;oCACtB,SAAS,EAAE,IAAI,CAAC,mBAAmB;iCACtC,CAAC,CAAC;gCACH,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;6BACjC;yBACJ;qBACJ;yBAAM;wBACH,IAAI,KAAK,CAAC;wBACV,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;4BACpC,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,EAAE;gCAC7C,KAAK,GAAG,CAAC,CAAC;gCACV,OAAO,IAAI,CAAC;6BACf;4BACD,OAAO,KAAK,CAAC;wBACjB,CAAC,CAAC,EAAE;4BACA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;4BACvC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;yBACjC;6BAAM;4BACH,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;gCAC/C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;oCACvB,UAAU,EAAE,UAAU;iCACzB,CAAC,CAAC;gCACH,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;6BACjC;yBACJ;qBACJ;iBACJ;aACJ;QACL,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC,EAAE,GAAG,CAAC,CAAC;IACZ,CAAC;IAED,WAAW;QACP,UAAU,CAAC,GAAG,EAAE;YACZ,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;aACxB;QACL,CAAC,EAAE,GAAG,CAAC,CAAC;IACZ,CAAC;IAED,iBAAiB,CAAC,MAAe;QAC7B,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACvB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC9B,IAAI,IAAI,CAAC,mBAAmB,EAAE;wBAC1B,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,mBAAmB,EAAE;4BAC1C,OAAO;yBACV;qBACJ;yBAAM,IAAI,CAAC,CAAC,SAAS,EAAE;wBACpB,OAAO;qBACV;oBACD,IAAI,SAAS,GAAG,uBAAuB,CAAC;oBACxC,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,eAAe,EAAE;wBACvC,KAAK,GAAG,IAAI,CAAC;wBACb,SAAS,IAAI,mBAAmB,CAAC;qBACpC;oBACD,OAAO,CAAC,IAAI,CAAC;wBACT,KAAK,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;wBACzD,OAAO,EAAE;4BACL,oBAAoB,EAAE,SAAS;yBAClC;qBACJ,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACN;YACD,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE;gBACrC,KAAK,GAAG,IAAI,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC;oBACT,KAAK,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;oBACzE,OAAO,EAAE;wBACL,oBAAoB,EAAE,kBAAkB;qBAC3C;iBACJ,CAAC,CAAC;aACN;YACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YACjF,IAAI,MAAM,IAAI,KAAK,EAAE;gBACjB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aAChD;SACJ;IACL,CAAC;IAED,sBAAsB,CAAC,MAAM;QACzB,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,IAAI,MAAM,EAAE;YACR,MAAM,MAAM,GAAG,IAAI,uEAAY,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACpD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACvB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACpB,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;oBACnB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;wBACvB,IAAI,OAAO,EAAE,CAAC,iBAAiB,KAAK,UAAU,EAAE;4BAC5C,MAAM,WAAW,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC;4BAC3C,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gCACrB,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;gCACpB,IAAI,EAAE,GAAG,SAAS,EAAE;oCAChB,SAAS,GAAG,EAAE,CAAC;iCAClB;4BACL,CAAC,CAAC,CAAC;yBACN;oBACL,CAAC,CAAC,CAAC;oBACH,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE;wBAChB,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;qBAClC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;SACN;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,cAAc;QACV,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;;;;;;;;qBAtPA,gDAAK;6BAeL,gDAAK;0BAyDL,gDAAK;yBAgBL,gDAAK;;AAjHG,4BAA4B;IALxC,wDAAS,CAAC;QACP,QAAQ,EAAE,iCAAiC;QAC3C,uFAAqD;;KAExD,CAAC;GACW,4BAA4B;AAAA;IAsR5B,oCAAoC,SAApC,oCAAoC;IAE7C,YAAmF,IAAI;QAAJ,SAAI,GAAJ,IAAI;IACvF,CAAC;;AAFM,sDAAiB,GAAG,IAAI,yDAAc,CAAK,mBAAmB,CAAE;;4CAC1D,iDAAM,SAAC,oCAAoC,CAAC,iBAAiB;;AAFjE,oCAAoC;IAJhD,wDAAS,CAAC;QACP,QAAQ,EAAE,0CAA0C;QACpD,QAAQ,EAAE,6NAA6N;KAC1O,CAAC;GACW,oCAAoC;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACjSoB;AACd;AACsB;AAClB;AACe;IAM7D,yBAAyB,SAAzB,yBAAyB;IAgBlC,YAAoB,KAAwB,EAAU,SAA2B;QAA7D,UAAK,GAAL,KAAK,CAAmB;QAAU,cAAS,GAAT,SAAS,CAAkB;QAfjF,YAAO,GAAG,EAAE,CAAC;QACb,qBAAgB,GAAG,EAAE,CAAC;IAetB,CAAC;IAbD,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAAE,OAAO;QACvC,6FAAqB,CAAC;YAClB,WAAW,EAAE,yBAAyB;YACtC,QAAQ,EAAE,EAAE,gBAAgB,EAAE,gBAAgB,EAAE;YAChD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACX,OAAO,CAAC,CAAC,CAAC,CAAC;gBACX,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,KAAK,EAAE,qBAAqB;SAC/B,CAAC,CAAC;IACP,CAAC;IAKD,QAAQ;QACJ,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,yEAAqB,CAAC,CAAC;QAC3F,IAAI,YAAY,EAAE;YACd,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;SACrE;aAAM;YACH,IAAI,CAAC,SAAS,CAAC,yEAAqB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,CAAC;SACvF;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3B,wGAA4C,CAAC,CAAC,CAAC,EAAE;YAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC9E,IAAI,QAAQ,EAAE;gBACV,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aAC7D;iBAAM;gBACH,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;aACtE;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,gGAAoC,EAAE,CAAC;IAC3C,CAAC;IAEO,SAAS,CAAC,EAAU,EAAE,OAAe,EAAE,QAAiB;QAC5D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACd,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,QAAQ;SACrB,CAAC,CAAC;IACP,CAAC;IAED,UAAU,CAAC,IAAI;QACX,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAC/B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;SACjD;IACL,CAAC;IAED,eAAe;QACX,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACrB,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;gBAC3B,OAAO,CAAC,IAAI,CAAC;oBACT,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,OAAO,EAAE,CAAC,CAAC,OAAO;iBACrB,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;;;;;;AAjEQ,yBAAyB;IAJrC,wDAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,oFAAkD;KACrD,CAAC;GACW,yBAAyB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVwC;AAGvD;AACgC;AAClB;AACH;AAC8C;AACJ;AAC6C;AACH;AACpB;IAOrF,8BAA8B,SAA9B,8BAA8B;IA8EvC,YAAoB,KAAwB,EAAU,SAA2B,EAAU,SAAmB;QAA1F,UAAK,GAAL,KAAK,CAAmB;QAAU,cAAS,GAAT,SAAS,CAAkB;QAAU,cAAS,GAAT,SAAS,CAAU;QA7E9G,cAAS,GAAG,CAAC,CAAC;QACd,cAAS,GAAG,EAAE,CAAC;QACf,aAAQ,GAAG,KAAK,CAAC;QAEjB,gBAAW,GAAG,KAAK,CAAC;QACpB,eAAU,GAAG,GAAG,CAAC;QACjB,oBAAe,GAAG;YACd,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;SACjB,CAAC;QAOF,cAAc;QACd,cAAS,GAAiB,IAAI,yEAAY,EAAE,CAAC;QAa7C,YAAY;QAEZ,kBAAkB;QAClB,kBAAa,GAAwB,IAAI,yFAAmB,EAAE,CAAC;QAyB/D,YAAY;QAEZ,iBAAiB;QACjB,iBAAY,GAAG,KAAK,CAAC;QAWX,sBAAiB,GAAG,IAAI,wDAAY,EAAO;IAKrD,CAAC;QAzDG,IAAI;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,CAAC,GAAG;QACR,IAAI,GAAG,IAAI,GAAG,KAAK,IAAI,CAAC,SAAS,EAAE;YAC/B,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;YACrB,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB;IACL,CAAC;QAOG,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG;QACZ,IAAI,GAAG,IAAI,GAAG,KAAK,IAAI,CAAC,aAAa,EAAE;YACnC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YACzB,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB;IACL,CAAC;QAOG,cAAc;QACd,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IACD,IAAI,cAAc,CAAC,GAAG;QAClB,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;QAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;QAOG,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG;QACX,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;IAC5B,CAAC;IAUD,QAAQ;QACJ,IAAI,CAAC,eAAe,GAAG,wDAAmB,CAAC;YACvC,SAAS,EAAE,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;YAChE,UAAU,EAAE,EAAE,MAAM,EAAE,wCAAwC,EAAE,WAAW,EAAE,CAAC,EAAE;SACnF,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC;YACzC,OAAO,EAAE;gBACL,SAAS,EAAE,CAAC,WAAW,EAAE;wBACrB,IAAI,EAAE,EAAE;wBACR,GAAG,EAAE,CAAC;wBACN,YAAY,EAAE,EAAE;qBACnB,CAAC;gBACF,UAAU,EAAE,EAAE,MAAM,EAAE,wCAAwC,EAAE,WAAW,EAAE,CAAC,EAAE;gBAChF,QAAQ,EAAE,kBAAkB;aAC/B;SACJ,CAAC,CAAC;IACP,CAAC;IAED,eAAe;QACX,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,uBAAuB;QACnB,MAAM,EAAE,GAAG;YACP,EAAE,EAAE,oDAAS,EAAE;YACf,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;SACjB,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACjC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACpC,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,EAAE;oBACrC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC;iBACvB;gBACD,MAAM,OAAO,GAAG;oBACZ,UAAU,EAAE;wBACR,KAAK,EAAE,CAAC,OAAO,GAAG,GAAG,CAAC,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE,QAAQ,GAAG,GAAG,CAAC,WAAW,GAAG,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC;wBAC5G,UAAU,EAAE,KAAK;qBACpB;oBACD,KAAK,EAAE,EAAE;iBACZ,CAAC;gBACF,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC;gBACtE,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE;oBACrB,MAAM,IAAI,GAAG,uEAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACzC,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,EAAE;wBACjC,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;wBAC5B,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;4BAC9B,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;yBACnC;wBACD,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;qBACvF;iBACJ;gBACD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAEO,SAAS,CAAC,GAAG,EAAE,EAAE;QACrB,MAAM,QAAQ,GAAG;YACb,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE;YAC5B,OAAO,EAAE,IAAI;YACb,0BAA0B,EAAE,IAAI;YAChC,iBAAiB,EAAE,IAAI;YACvB,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE;gBACH,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI;gBACpB,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI;gBACrB,KAAK,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI;gBAC7B,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI;aACjC;YACD,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,KAAK;YACjB,aAAa,EAAE,KAAK;YACpB,aAAa,EAAE,KAAK;YACpB,WAAW,EAAE,KAAK;YAClB,2BAA2B,EAAE,IAAI;YACjC,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;SACb,CAAC;QACF,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,uEAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,IAAI,EAAE;YACN,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC5B,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YACzC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC9B,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YAC3C,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAClC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;YAC9B,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAC1B,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACpC,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAChC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;aACvD;YACD,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACzB,MAAM,MAAM,GAAG,EAAE,CAAC;gBAClB,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,CAAC;gBAC7D,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACzC,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;oBAC5B,MAAM,QAAQ,GAAG;wBACb,MAAM,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACrC,QAAQ,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;wBAClD,cAAc,EAAE,CAAC,CAAC;wBAClB,IAAI,EAAE,QAAQ,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE;wBACvC,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,OAAO,EAAE,KAAK;qBACjB,CAAC;oBACF,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;wBAC/B,QAAQ,CAAC,YAAY,CAAC,GAAG;4BACrB,YAAY,EAAE,IAAI,CAAC,IAAI;yBAC1B,CAAC;wBACF,MAAM,IAAI,GAAG,4EAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC7C,IAAI,IAAI,EAAE;4BACN,QAAQ,CAAC,YAAY,CAAC,GAAG;gCACrB,IAAI,EAAE,IAAI,CAAC,KAAK;6BACnB,CAAC;yBACL;qBACJ;oBACD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACzB;gBACD,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;gBAC5B,IAAI,QAAQ,EAAE;oBACV,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;wBAC9B,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;qBACnC;oBACD,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;oBAClE,IAAI,EAAE,YAAY,uEAAmB,EAAE;wBACnC,QAAQ,CAAC,0BAA0B,GAAG,EAAE,CAAC;wBACzC,QAAQ,CAAC,IAAI,CAAC,uEAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;qBAEjG;yBAAM,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;wBAC/B,QAAQ,CAAC,iBAAiB,GAAG,EAAE,CAAC;wBAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;qBACrB;iBACJ;gBACD,QAAQ,CAAC,2BAA2B,GAAG,IAAI,CAAC,kBAAkB,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC;gBACxG,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAEnE,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE;oBACjC,IAAI,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;oBACvD,IAAI,CAAC,KAAK,EAAE;wBACR,KAAK,GAAG,IAAI,wEAAgB,EAAE,CAAC;wBAC/B,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;wBACd,KAAK,CAAC,KAAK,GAAG,iBAAiB,CAAC;wBAChC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC;wBACrB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBAC1B;iBACJ;gBAED,MAAM,UAAU,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACxC,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;oBAC3B,MAAM,QAAQ,GAAG;wBACb,MAAM,EAAE,EAAE;wBACV,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;wBAChC,IAAI,EAAE,OAAO,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE;wBACtC,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,OAAO,EAAE,KAAK;qBACjB,CAAC;oBACF,IAAI,GAAG,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;oBACpD,IAAI,GAAG,GAAG,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC/B,QAAQ,QAAQ,CAAC,QAAQ,EAAE;wBACvB,KAAK,2FAA0B;4BAC3B,IAAI,IAAI,GAAG,CAAC,CAAC;4BACb,IAAI,GAAG,GAAG,GAAG,EAAE;gCACX,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC;6BACpB;iCAAM;gCACH,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC;6BACpB;4BACD,IAAI,IAAI,GAAG,CAAC,CAAC;4BACb,IAAI,GAAG,GAAG,GAAG,EAAE;gCACX,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC;6BACpB;iCAAM;gCACH,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC;6BACpB;4BACD,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;4BAClE,MAAM;wBACV,KAAK,uFAAsB,CAAC;wBAC5B,KAAK,wFAAuB,CAAC;wBAC7B;4BACI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;4BACvD,MAAM;qBACb;oBAED,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;wBAC/B,QAAQ,CAAC,YAAY,CAAC,GAAG;4BACrB,YAAY,EAAE,IAAI,CAAC,IAAI;yBAC1B,CAAC;wBACF,MAAM,IAAI,GAAG,4EAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC7C,IAAI,IAAI,EAAE;4BACN,QAAQ,CAAC,YAAY,CAAC,GAAG;gCACrB,IAAI,EAAE,IAAI,CAAC,KAAK;6BACnB,CAAC;yBACL;qBACJ;oBACD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACzB;gBACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBACnB,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;iBAC/C;aACJ;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC9C;iBAAM;gBACH,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;aAC/B;SACJ;IACL,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACxD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACrD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBAClB,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;wBACzD,IAAI,IAAI,CAAC,KAAK,EAAE;4BACZ,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BACjD,EAAE,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC7F,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;gCAC7B,GAAG,CAAC,YAAY,EAAE,CAAC;4BACvB,CAAC,CAAC,CAAC;4BACH,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;gCAC5B,GAAG,CAAC,YAAY,EAAE,CAAC;4BACvB,CAAC,CAAC,CAAC;4BACH,EAAE,CAAC,YAAY,EAAE,CAAC;yBACrB;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACxC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oBACzD,IAAI,CAAC,CAAC,KAAK,EAAE;wBACT,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;qBAC3B;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;aACvD;SACJ;IACL,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;gBACtD,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;aAChD;YACD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACvC,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;gBACxD,IAAI,EAAE,EAAE;oBACJ,GAAG,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC;oBACnC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;oBAC/B,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,qBAAqB,IAAI,IAAI,CAAC;iBACxD;qBAAM;oBACH,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;oBACzB,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;oBACvB,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC;iBAC7B;gBACD,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,KAAK,GAAG,CAAC,EAAE,EAAE;oBAC1E,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE;wBAChC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;wBACzB,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC;qBAC3B;yBAAM;wBACH,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC;wBAC1B,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;qBAC1B;iBACJ;qBAAM;oBACH,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC;oBAC1B,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC;iBAC3B;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,QAAQ,CAAC,EAAE;QACP,IAAI,EAAE,IAAI,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE;YACtC,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC;YACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC3B,IAAI,KAAK,GAAG,CAAC,EAAE;oBACX,IAAI,CAAC,YAAY,EAAE,CAAC;iBACvB;qBAAM;oBACH,IAAI,CAAC,YAAY,EAAE,CAAC;iBACvB;aACJ;YACD,EAAE,CAAC,eAAe,EAAE,CAAC;YACrB,EAAE,CAAC,cAAc,EAAE,CAAC;SACvB;IACL,CAAC;IAED,YAAY;QACR,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;QACvB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAED,YAAY;QACR,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE;YACvB,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;YACvB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAChD;IACL,CAAC;IAED,SAAS;QACL,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;YAClG,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;gBACvC,IAAI,KAAK,GAAG,QAAQ,EAAE;oBAClB,QAAQ,GAAG,KAAK,CAAC;iBACpB;gBACD,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;gBACxC,IAAI,MAAM,GAAG,SAAS,EAAE;oBACpB,SAAS,GAAG,MAAM,CAAC;iBACtB;YACL,CAAC,CAAC,CAAC;YACH,QAAQ,IAAI,EAAE,CAAC;YACf,SAAS,IAAI,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,GAAG,QAAQ,EACtE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;YAC5D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;SACnD;IACL,CAAC;IAEO,YAAY,CAAC,OAAe;QAChC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG;YACb,MAAM,EAAE,IAAI,CAAC,SAAS;SACzB,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAED,YAAY,CAAC,IAAI,EAAE,KAAK;QACpB,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,KAAK,EAAE;gBACP,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;aAC1C;iBAAM;gBACH,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;aACtC;YACD,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;oBACjC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC;iBACvC;gBACD,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC1E,IAAI,CAAC,EAAE,EAAE;oBACL,EAAE,GAAG,IAAI,oFAAc,EAAE,CAAC;oBAC1B,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC;oBACtB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBAC3C;gBACD,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBACpC,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBAChC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;aACjC;SACJ;IACL,CAAC;IAED,cAAc,CAAC,IAAI;QACf,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE;YACjD,MAAM,GAAG,GAAiC,IAAI,CAAC,2BAA2B,CAAC;YAC3E,IAAI,GAAG,EAAE;gBACL,IAAI,EAAE,CAAC;gBACP,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;oBAChC,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;iBACzE;qBAAM;oBACH,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC;iBACvC;gBACD,IAAI,EAAE,EAAE;oBACJ,IAAI,CAAC,EAAE,CAAC,qBAAqB,EAAE;wBAC3B,EAAE,CAAC,qBAAqB,GAAG,GAAG,CAAC,SAAS,CAAC;qBAC5C;iBACJ;qBAAM;oBACH,EAAE,GAAG,IAAI,oFAAc,EAAE,CAAC;oBAC1B,EAAE,CAAC,qBAAqB,GAAG,GAAG,CAAC,SAAS,CAAC;oBACzC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBAC3C;gBACD,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;gBACrC,MAAM,WAAW,GAAG,EAAE,CAAC;gBACvB,GAAG,CAAC,iBAAiB,CAAC,WAAW,EAAE,EAAE,CAAC,qBAAqB,EAAE,IAAI,CAAC;gBAClE,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBAC3C,IAAI,CAAC,kBAAkB,GAAG;oBACtB,MAAM,EAAE,IAAI,iEAAe,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,gEAAc,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;oBACxG,MAAM,EAAE,IAAI;oBACZ,UAAU,EAAE,EAAE;iBACjB,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;aAC9B;SACJ;IACL,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;gBACtE,MAAM,GAAG,GAAiC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,2BAA2B,CAAC;gBACrG,IAAI,GAAG,EAAE;oBACL,MAAM,MAAM,GAAG,GAAG,CAAC,4BAA4B,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;oBAC1G,IAAI,MAAM,EAAE;wBACR,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,qBAAqB,GAAG,IAAI,CAAC;qBACnE;iBACJ;gBACD,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,qBAAqB,IAAI,IAAI,CAAC;aACnH;YACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;SACjC;IACL,CAAC;;;;;;;;mBAreA,iDAAK;uBAgBL,iDAAK;6BAeL,iDAAK;sBAaL,iDAAK;gCASL,kDAAM;yBAEN,qDAAS,SAAC,YAAY,EAAE,EAAE,IAAI,EAAE,sDAAU,EAAE;;AA5EpC,8BAA8B;IAL1C,yDAAS,CAAC;QACP,QAAQ,EAAE,mCAAmC;QAC7C,yFAAuD;;KAE1D,CAAC;GACW,8BAA8B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClB0B;AACd;AACxB;AAC4B;AACY;AACG;AACC;IAO9D,2BAA2B,SAA3B,2BAA2B;IAqBpC,YAAoB,KAAwB,EAAU,SAA2B;QAA7D,UAAK,GAAL,KAAK,CAAmB;QAAU,cAAS,GAAT,SAAS,CAAkB;QApBjF,oBAAe,GAAG,EAAE,CAAC;QACrB,eAAU,GAAG,KAAK,CAAC;IAoBnB,CAAC;IAdD,MAAM,CAAC,kBAAkB;QACrB,IAAI,WAAW,GAAG,oGAAwC,EAAE,CAAC;QAC7D,IAAI,CAAC,WAAW,EAAE;YACd,IAAI,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;gBACrC,mBAAmB;gBACnB,iFAAuB,CAAC,wBAAwB,EAAE,WAAW,CAAC,CAAC;aAClE;iBAAM;gBACH,aAAa;gBACb,2BAA2B,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrD;SACJ;IACL,CAAC;IAKD,QAAQ;QACJ,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,2BAA2B,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE;YAClD,MAAM,SAAS,GAAG;gBACd,QAAQ,EAAE,yEAAqB;gBAC/B,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC;aACjD,CAAC;YACF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrC,+FAAmC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1D,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,0GAA8C,CAAC,GAAG,EAAE;YAChD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,oGAAwC,CAAC,CAAC,CAAC,EAAE;YACzC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpC,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC,MAAM,EAAE;oBAC9B,QAAQ,CAAC,CAAC,IAAI,EAAE;wBACZ,KAAK,eAAe;4BAChB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;4BACxB,IAAI,MAAM,CAAC,gBAAgB,EAAE;gCACzB,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;oCACxC,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE;wCACnC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC;wCACpB,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC;wCAC5B,OAAO,IAAI,CAAC;qCACf;oCACD,OAAO,KAAK,CAAC;gCACjB,CAAC,CAAC,EAAE;oCACA,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC;wCACzB,IAAI,EAAE,CAAC,CAAC,OAAO;wCACf,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK;qCAC3B,CAAC,CAAC;oCACH,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;iCAChE;6BACJ;iCAAM;gCACH,MAAM,CAAC,gBAAgB,GAAG,CAAC;wCACvB,IAAI,EAAE,CAAC,CAAC,OAAO;wCACf,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK;qCAC3B,CAAC,CAAC;gCACH,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC;6BAC/B;4BACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;4BAC3B,MAAM;wBACV,KAAK,kBAAkB;4BACnB,IAAI,MAAM,CAAC,gBAAgB,EAAE;gCACzB,IAAI,KAAK,CAAC;gCACV,IAAI,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;oCACvC,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE;wCACnC,KAAK,GAAG,CAAC,CAAC;wCACV,OAAO,IAAI,CAAC;qCACf;oCACD,OAAO,KAAK,CAAC;gCACjB,CAAC,CAAC,EAAE;oCACA,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oCACzC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;iCAC9B;6BACJ;4BACD,MAAM;qBACb;oBACD,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,iBAAiB;QACb,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,GAAG,CAAC,WAAW,IAAI,WAAW,KAAK,yEAAqB,CAAC;QACxE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,MAAM,gBAAgB,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACvG,+FAAoC,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE;gBACzD,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;oBACnB,MAAM,UAAU,GAAG,EAAE,CAAC;oBACtB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACV,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAC7B,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAC/B,CAAC,CAAC,CAAC;oBACH,+FAAmC,CAAC,UAAU,CAAC,CAAC;oBAChD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;iBAC9B;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,SAAS;QACL,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/B,yFAA6B,EAAE,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,QAAQ,EAAE,KAAK;QACxB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;YACnC,yFAA6B,EAAE,CAAC;SACnC;aAAM;YACH,4FAAgC,CAAC,QAAQ,CAAC,CAAC;SAC9C;IACL,CAAC;IAED,QAAQ,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,MAAM,IAAI,MAAM,CAAC,gBAAgB,EAAE;YACnC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC9B;IACL,CAAC;;AAhIc,sCAAU,GAAG,IAAI,yCAAO,EAAG;;;;;AANjC,2BAA2B;IALvC,wDAAS,CAAC;QACP,QAAQ,EAAE,2BAA2B;QACrC,sFAAoD;;KAEvD,CAAC;GACW,2BAA2B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACb+D;AAC5C;AACe;IAO7D,gBAAgB,SAAhB,gBAAgB;IAczB,YAAoB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;QAZ5C,aAAQ,GAAG,KAAK,CAAC;QACjB,SAAI,GAAG,EAAE,CAAC;QAEV,iBAAY,GAAG,CAAC,CAAC,CAAC;QAClB,aAAQ,GAAG,yEAAqB,CAAC;QAEjC,kBAAa,GAAG;YACZ,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,IAAI;YACd,oBAAoB,EAAE,KAAK;SAC9B,CAAC;IAGF,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACtB;IACL,CAAC;IAED,QAAQ;QACJ,uGAA2C,CAAC,CAAC,CAAC,EAAE;YAC5C,MAAM,QAAQ,GAAG,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,qBAAqB,CAAC;YAC9D,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;gBAC5B,IAAI,QAAQ,EAAE;oBACV,IAAI,CAAC,MAAM,GAAG,iGAAqC,CAAC,GAAG,CAAC,EAAE;wBACtD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;4BACX,OAAO,EAAE,GAAG,CAAC,OAAO;4BACpB,OAAO,EAAE,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;4BACvC,OAAO,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS;4BACnC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;yBAClE,CAAC,CAAC;wBACH,IAAI,CAAC,SAAS,EAAE,CAAC;oBACrB,CAAC,CAAC,CAAC;iBACN;qBAAM,IAAI,IAAI,CAAC,MAAM,EAAE;oBACpB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;oBAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;iBACtB;aACJ;YACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS;QACL,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YACvC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;gBAC1C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC;aAChF;QACL,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;IAED,KAAK;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;;;;;;qBAzDA,oDAAS,SAAC,QAAQ;;AAJV,gBAAgB;IAL5B,wDAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;QAC9B,0EAAwC;;KAE3C,CAAC;GACW,gBAAgB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTwC;AACK;AACH;AAGhB;AACa;AACR;AACA;IAO/C,yBAAyB,SAAzB,yBAAyB;IAuClC,YAAoB,KAAwB,EAAU,YAA0B,EAAU,UAA4B;QAAlG,UAAK,GAAL,KAAK,CAAmB;QAAU,iBAAY,GAAZ,YAAY,CAAc;QAAU,eAAU,GAAV,UAAU,CAAkB;QArCtH,iBAAY,GAAG,KAAK,CAAC;QAGrB,wBAAmB,GAAG,KAAK,CAAC;QAC5B,uBAAkB,GAAG,EAAE,CAAC;QACxB,wBAAmB,GAAG,EAAE,CAAC;IAiCzB,CAAC;IAhCD,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IACD,IAAI,WAAW,CAAC,GAAW;QACvB,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;QAC/B,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAC5C,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAGO,MAAM,CAAC,gBAAgB,CAAC,IAAI;QAChC,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACb,MAAM,cAAc,GAAG,EAAE,CAAC;gBAC1B,IAAI,CAAC,CAAC,WAAW,EAAE;oBACf,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;wBACvB,IAAI,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,qBAAqB,EAAE;4BAC9D,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;yBAC3B;oBACL,CAAC,CAAC,CAAC;iBACN;gBACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3B,CAAC,CAAC,WAAW,GAAG,cAAc,CAAC;oBAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACnB;YACL,CAAC,CAAC,CAAC;SACN;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAKD,QAAQ;QACJ,uGAA2C,CAAC,CAAC,CAAC,EAAE;YAC5C,IAAI,CAAC,EAAE;gBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;aACjD;iBAAM;gBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;YACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,sFAAiC,CAAC,CAAC,CAAC,EAAE;YAClC,IAAI,CAAC,EAAE;gBACH,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO;QACH,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,MAAM,QAAQ,GAAG,sGAA0C,EAAE,CAAC;QAC9D,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;SACxD;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACxB;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAED,KAAK;QACD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EAAE;gBAC1C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB;oBACpC,yBAAyB,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;aAC5F;YACD,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE;gBACzC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe;oBACnC,yBAAyB,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;aAC3F;YACD,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,EAAE;gBAC5C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB;oBACtC,yBAAyB,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;aAC9F;SACJ;QACD,8FAAkC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,WAAW;QACP,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC9C,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,mBAAmB;QACf,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,uFAAiB,EAAE,CAAC;YAClD,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;IACL,CAAC;IAED,oBAAoB,CAAC,EAAE;QACnB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC1D,IAAI,CAAC,EAAE;gBACH,IAAI,QAA6B,CAAC;gBAClC,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACf,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;wBAC1B,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,uFAAiB,EAAE,CAAC;qBACrD;oBACD,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EAAE;wBAC1C,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;qBACjF;yBAAM;wBACH,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,GAAG,EAAE,CAAC;qBACjD;oBACD,IAAI,CAAC,QAAQ,EAAE;wBACX,QAAQ,GAAG,IAAI,yFAAmB,EAAE;wBACpC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;wBACpB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBAC3D;iBACJ;gBACD,IAAI,CAAC,gBAAgB,GAAG;oBACpB,SAAS,EAAE,IAAI;oBACf,QAAQ,EAAE,CAAC;oBACX,OAAO,EAAE,2FAA+B,CAAC,CAAC,CAAC,OAAO,CAAC;oBACnD,QAAQ,EAAE,QAAQ;iBACrB,CAAC;aACL;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,mBAAmB,CAAC,EAAE,EAAE,EAAE;QACtB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YACxD,IAAI,CAAC,EAAE;gBACH,IAAI,QAA4B,CAAC;gBACjC,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACf,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;wBAC1B,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,uFAAiB,EAAE,CAAC;qBACrD;oBACD,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE;wBACzC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;qBACrG;yBAAM;wBACH,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,EAAE,CAAC;qBAChD;oBACD,IAAI,CAAC,QAAQ,EAAE;wBACX,QAAQ,GAAG,IAAI,wFAAkB,EAAE;wBACnC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;wBACrB,QAAQ,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;wBACtB,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC;wBAC1B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBAC1D;iBACJ;gBACD,IAAI,CAAC,gBAAgB,GAAG;oBACpB,SAAS,EAAE,KAAK;oBAChB,QAAQ,EAAE,CAAC,CAAC,IAAI;oBAChB,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,QAAQ,EAAE,QAAQ;iBACrB,CAAC;aACL;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,sBAAsB,CAAC,GAAG,EAAE,MAAM;QAC9B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YACxE,IAAI,CAAC,EAAE;gBACH,IAAI,QAA+B,CAAC;gBACpC,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACf,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;wBAC1B,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,uFAAiB,EAAE,CAAC;qBACrD;oBACD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC;oBACjF,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,EAAE;wBAC5C,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;qBACrH;yBAAM;wBACH,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,GAAG,EAAE,CAAC;qBACnD;oBACD,IAAI,CAAC,QAAQ,EAAE;wBACX,QAAQ,GAAG,IAAI,2FAAqB,EAAE;wBACtC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC;wBACnB,QAAQ,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;wBACvC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBAC7D;iBACJ;gBACD,IAAI,CAAC,gBAAgB,GAAG;oBACpB,SAAS,EAAE,IAAI;oBACf,QAAQ,EAAE,CAAC;oBACX,OAAO,EAAE,2FAA+B,CAAC,CAAC,CAAC,OAAO,CAAC;oBACnD,QAAQ,EAAE,QAAQ;iBACrB,CAAC;aACL;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,2BAA2B,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC3D,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;gBACjB,IAAI,QAA+B,CAAC;gBACpC,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACf,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;wBAC1B,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,uFAAiB,EAAE,CAAC;qBACrD;oBACD,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,EAAE;wBAC5C,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW;4BAC5F,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC;qBAClE;yBAAM;wBACH,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,GAAG,EAAE,CAAC;qBACnD;oBACD,IAAI,CAAC,QAAQ,EAAE;wBACX,QAAQ,GAAG,IAAI,2FAAqB,EAAE;wBACtC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC;wBAC5B,QAAQ,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;wBACvC,QAAQ,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;wBACvC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBAC7D;iBACJ;gBACD,IAAI,CAAC,gBAAgB,GAAG;oBACpB,SAAS,EAAE,IAAI;oBACf,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,OAAO,EAAE,2FAA+B,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAC5D,QAAQ,EAAE,QAAQ;iBACrB,CAAC;aACL;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,iBAAiB;QACb,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;gBAC1C,IAAI,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE;oBACpC,IAAI,CAAC,YAAY,CAAC,kBAAkB,GAAG,KAAK,CAAC;oBAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;wBACjG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;4BAC5E,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE;gCAC9G,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;gCACrB,IAAI,CAAC,YAAY,CAAC,kBAAkB,GAAG,IAAI,CAAC;6BAC/C;iCAAM;gCACH,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;6BACzB;wBACL,CAAC,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAC3C,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;wBAC1B,CAAC,CAAC,CAAC;qBACN;iBACJ;gBACD,IAAI,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE;oBACnC,IAAI,CAAC,YAAY,CAAC,iBAAiB,GAAG,KAAK,CAAC;oBAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC/F,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAC1C,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;4BACtB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACpB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;gCAC5E,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE;oCAC9G,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;oCACrB,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;oCACrB,IAAI,CAAC,YAAY,CAAC,iBAAiB,GAAG,IAAI,CAAC;iCAC9C;qCAAM;oCACH,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;iCACzB;4BACL,CAAC,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;qBACN;yBAAM;wBACH,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAC1C,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;4BACtB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACpB,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;4BAC1B,CAAC,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;qBACN;iBACJ;gBACD,IAAI,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE;oBACtC,IAAI,CAAC,YAAY,CAAC,oBAAoB,GAAG,KAAK,CAAC;oBAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC;oBACtD,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;wBACrB,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAC7C,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;4BACtB,IAAI,CAAC,CAAC,aAAa,EAAE;gCACjB,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gCAC/F,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE;oCAC9G,CAAC,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;oCACnC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;oCACrB,IAAI,CAAC,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAC;iCACjD;qCAAM;oCACH,CAAC,CAAC,aAAa,CAAC,WAAW,GAAG,KAAK,CAAC;iCACvC;6BACJ;4BACD,IAAI,CAAC,CAAC,YAAY,EAAE;gCAChB,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gCAC9F,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE;oCAC9G,CAAC,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;oCAClC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;oCACrB,IAAI,CAAC,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAC;iCACjD;qCAAM;oCACH,CAAC,CAAC,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC;iCACtC;6BACJ;4BACD,IAAI,CAAC,CAAC,UAAU,EAAE;gCACd,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oCACvB,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC;oCACxB,IAAI,GAAG,CAAC,UAAU,EAAE;wCAChB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;4CACxB,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW;gDAClD,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,CAAC;4CAChE,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE;gDAC9G,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC;gDACtB,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;gDACvB,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;gDACrB,IAAI,CAAC,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAC;6CACjD;iDAAM;gDACH,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC;6CAC1B;wCACL,CAAC,CAAC,CAAC;qCACN;gCACL,CAAC,CAAC,CAAC;6BACN;wBACL,CAAC,CAAC,CAAC;qBACN;iBACJ;aACJ;iBAAM;gBACH,IAAI,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE;oBACpC,IAAI,CAAC,YAAY,CAAC,kBAAkB,GAAG,KAAK,CAAC;oBAC7C,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBAC3C,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;oBAC1B,CAAC,CAAC,CAAC;iBACN;gBACD,IAAI,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE;oBACnC,IAAI,CAAC,YAAY,CAAC,iBAAiB,GAAG,KAAK,CAAC;oBAC5C,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBAC1C,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;wBACtB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BACpB,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;wBAC1B,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;iBACN;gBACD,IAAI,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE;oBACtC,IAAI,CAAC,YAAY,CAAC,oBAAoB,GAAG,KAAK,CAAC;oBAC/C,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBAC7C,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;wBACtB,IAAI,CAAC,CAAC,aAAa,EAAE;4BACjB,CAAC,CAAC,aAAa,CAAC,WAAW,GAAG,KAAK,CAAC;yBACvC;wBACD,IAAI,CAAC,CAAC,YAAY,EAAE;4BAChB,CAAC,CAAC,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC;yBACtC;wBACD,IAAI,CAAC,CAAC,UAAU,EAAE;4BACd,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gCACvB,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC;gCACxB,IAAI,GAAG,CAAC,UAAU,EAAE;oCAChB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;wCACxB,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC;oCAC3B,CAAC,CAAC,CAAC;iCACN;4BACL,CAAC,CAAC,CAAC;yBACN;oBACL,CAAC,CAAC,CAAC;iBACN;aACJ;SACJ;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,mBAAmB;QACf,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,YAAY;QACR,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC1B,IAAI,IAAI,CAAC,kBAAkB,EAAE;oBACzB,IAAI,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE;wBACpC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAC3C,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC5F,CAAC,CAAC,CAAC;qBACN;oBACD,IAAI,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE;wBACnC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAC1C,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;4BAClB,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE;gCAC/D,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCACpB,IAAI,CAAC,CAAC,WAAW,EAAE;wCACf,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;wCACjB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;qCACpB;yCAAM;wCACH,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;qCACrB;gCACL,CAAC,CAAC,CAAC;6BACN;iCAAM;gCACH,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCACpB,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE;wCAChF,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;wCACjB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;qCACpB;yCAAM;wCACH,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;qCACrB;gCACL,CAAC,CAAC,CAAC;6BACN;wBACL,CAAC,CAAC,CAAC;qBACN;oBACD,IAAI,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE;wBACtC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAC7C,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;4BAClB,IAAI,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE;gCACrE,IAAI,CAAC,CAAC,aAAa,EAAE;oCACjB,IAAI,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE;wCAC7B,CAAC,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;wCAC/B,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;qCACpB;yCAAM;wCACH,CAAC,CAAC,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;qCACnC;iCACJ;gCACD,IAAI,CAAC,CAAC,YAAY,EAAE;oCAChB,IAAI,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE;wCAC5B,CAAC,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;wCAC9B,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;qCACpB;yCAAM;wCACH,CAAC,CAAC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;qCAClC;iCACJ;gCACD,IAAI,CAAC,CAAC,UAAU,EAAE;oCACd,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;wCACvB,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;wCACpB,IAAI,GAAG,CAAC,UAAU,EAAE;4CAChB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gDACxB,IAAI,EAAE,CAAC,WAAW,EAAE;oDAChB,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;oDAClB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;oDACnB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;iDACpB;qDAAM;oDACH,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC;iDACtB;4CACL,CAAC,CAAC,CAAC;yCACN;oCACL,CAAC,CAAC,CAAC;iCACN;6BACJ;iCAAM;gCACH,IAAI,CAAC,CAAC,UAAU,EAAE;oCACd,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;wCACvB,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;wCACpB,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE;4CACzF,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gDACxB,IAAI,EAAE,CAAC,WAAW,EAAE;oDAChB,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;oDAClB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;oDACnB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;iDACpB;qDAAM;oDACH,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC;iDACtB;4CACL,CAAC,CAAC,CAAC;yCACN;oCACL,CAAC,CAAC,CAAC;iCACN;6BACJ;wBACL,CAAC,CAAC,CAAC;qBACN;iBACJ;qBAAM;oBACH,IAAI,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE;wBACpC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAC3C,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,WAAW,CAAC;wBAC9B,CAAC,CAAC,CAAC;qBACN;oBACD,IAAI,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE;wBACnC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAC1C,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;4BAClB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACpB,IAAI,CAAC,CAAC,WAAW,EAAE;oCACf,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;oCACjB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;iCACpB;qCAAM;oCACH,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;iCACrB;4BACL,CAAC,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;qBACN;oBACD,IAAI,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE;wBACtC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAC7C,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;4BAClB,IAAI,CAAC,CAAC,aAAa,EAAE;gCACjB,IAAI,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE;oCAC7B,CAAC,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;oCAC/B,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;iCACpB;qCAAM;oCACH,CAAC,CAAC,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;iCACnC;6BACJ;4BACD,IAAI,CAAC,CAAC,YAAY,EAAE;gCAChB,IAAI,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE;oCAC5B,CAAC,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;oCAC9B,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;iCACpB;qCAAM;oCACH,CAAC,CAAC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;iCAClC;6BACJ;4BACD,IAAI,CAAC,CAAC,UAAU,EAAE;gCACd,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oCACvB,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;oCACpB,IAAI,GAAG,CAAC,UAAU,EAAE;wCAChB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;4CACxB,IAAI,EAAE,CAAC,WAAW,EAAE;gDAChB,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;gDAClB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;gDACnB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;6CACpB;iDAAM;gDACH,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC;6CACtB;wCACL,CAAC,CAAC,CAAC;qCACN;gCACL,CAAC,CAAC,CAAC;6BACN;wBACL,CAAC,CAAC,CAAC;qBACN;iBACJ;aACJ;iBAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBAChC,IAAI,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE;oBACpC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBAC3C,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC3E,CAAC,CAAC,CAAC;iBACN;gBACD,IAAI,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE;oBACnC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBAC1C,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE;4BAC/D,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;4BACjB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACpB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;4BACrB,CAAC,CAAC,CAAC;yBACN;6BAAM;4BACH,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;4BAClB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACpB,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE;oCAC/D,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;oCACjB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;iCACpB;qCAAM;oCACH,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;iCACrB;4BACL,CAAC,CAAC,CAAC;yBACN;oBACL,CAAC,CAAC,CAAC;iBACN;gBACD,IAAI,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE;oBACtC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBAC7C,IAAI,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE;4BACrE,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;4BACjB,IAAI,CAAC,CAAC,aAAa,EAAE;gCACjB,CAAC,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;6BAClC;4BACD,IAAI,CAAC,CAAC,YAAY,EAAE;gCAChB,CAAC,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;6BACjC;4BACD,IAAI,CAAC,CAAC,UAAU,EAAE;gCACd,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oCACvB,IAAI,GAAG,CAAC,UAAU,EAAE;wCAChB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;wCACnB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;4CACxB,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;wCACtB,CAAC,CAAC,CAAC;qCACN;yCAAM;wCACH,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;qCACvB;gCACL,CAAC,CAAC,CAAC;6BACN;yBACJ;6BAAM;4BACH,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;4BAClB,IAAI,CAAC,CAAC,UAAU,EAAE;gCACd,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oCACvB,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE;wCACzF,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;wCACjB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;wCACnB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;4CACxB,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;wCACtB,CAAC,CAAC,CAAC;qCACN;yCAAM;wCACH,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;qCACvB;gCACL,CAAC,CAAC,CAAC;6BACN;yBACJ;oBACL,CAAC,CAAC,CAAC;iBACN;aACJ;iBAAM;gBACH,IAAI,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE;oBACpC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBAC3C,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;oBACrB,CAAC,CAAC,CAAC;iBACN;gBACD,IAAI,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE;oBACnC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBAC1C,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;wBACjB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BACpB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;wBACrB,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;iBACN;gBACD,IAAI,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE;oBACtC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBAC7C,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;wBACjB,IAAI,CAAC,CAAC,aAAa,EAAE;4BACjB,CAAC,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;yBAClC;wBACD,IAAI,CAAC,CAAC,YAAY,EAAE;4BAChB,CAAC,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;yBACjC;wBACD,IAAI,CAAC,CAAC,UAAU,EAAE;4BACd,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gCACvB,IAAI,GAAG,CAAC,UAAU,EAAE;oCAChB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;oCACnB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;wCACxB,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;oCACtB,CAAC,CAAC,CAAC;iCACN;qCAAM;oCACH,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;iCACvB;4BACL,CAAC,CAAC,CAAC;yBACN;oBACL,CAAC,CAAC,CAAC;iBACN;aACJ;SACJ;QACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;;;;;;;AAxnBQ,yBAAyB;IALrC,wDAAS,CAAC;QACP,QAAQ,EAAE,yBAAyB;QACnC,oFAAkD;;KAErD,CAAC;GACW,yBAAyB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfgC;AAC6C;AACzC;AACH;AAGtB;AAC8B;AACL;AACd;AACE;IAOjD,yBAAyB,SAAzB,yBAAyB;IAwClC,YAAoB,KAAwB,EAAU,OAAqB,EAAU,SAAmB;QAApF,UAAK,GAAL,KAAK,CAAmB;QAAU,YAAO,GAAP,OAAO,CAAc;QAAU,cAAS,GAAT,SAAS,CAAU;QAvCxG,gBAAW,GAAG,KAAK,CAAC;QACpB,kBAAa,GAAG;YACZ,eAAe,EAAE,IAAI;YACrB,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,IAAI;YACd,oBAAoB,EAAE,KAAK;SAC9B,CAAC;QAEF,YAAO,GAAG,KAAK,CAAC;QAChB,WAAM,GAAG,EAAE,CAAC;QACZ,kBAAa,GAAG;YACZ,WAAW,EAAE,EAAE;SAClB,CAAC;QAMM,oBAAe,GAAG,EAAE,CAAC;QAiBnB,WAAM,GAAG,IAAI,uDAAY,EAAO;QAEhC,kBAAa,GAAG,IAAI,uDAAY,EAAU;IAGpD,CAAC;QAhBG,IAAI;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,CAAC,GAAG;QACR,IAAI,GAAG,KAAK,IAAI,CAAC,SAAS,EAAE;YACxB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;YACrB,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB;IACL,CAAC;IAUD,eAAe;QACX,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,aAAa,CAAC,OAAe;QACzB,IAAI,OAAO,KAAK,IAAI,CAAC,YAAY,EAAE;YAC/B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;YAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC9C;IACL,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,KAAK;QAChB,IAAI,CAAC,eAAe,CAAC,6EAAa,CAAC,CAAC;IACxC,CAAC;IAED,QAAQ,CAAC,QAAQ,EAAE,KAAK;QACpB,IAAI,CAAC,eAAe,CAAC,6EAAa,CAAC,CAAC;IACxC,CAAC;IAED,QAAQ,CAAC,QAAQ,EAAE,KAAK;QACpB,IAAI,CAAC,eAAe,CAAC,6EAAa,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,QAAQ,EAAE,KAAK;QACnB,IAAI,CAAC,eAAe,CAAC,4EAAY,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,QAAQ,EAAE,KAAK;QAClB,IAAI,CAAC,eAAe,CAAC,+EAAe,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAEO,eAAe,CAAC,QAAkB;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,MAAM,OAAO,GAAG,IAAI,mFAAmB,EAAE,CAAC;QAC1C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QACzC,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,4EAAY,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACrC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;QACrD,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC5B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;QACrD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1B,gGAAoC,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAEO,aAAa;QACjB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC7D,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;oBACrB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC3C,IAAI,SAAS,EAAE;wBACX,IAAI,CAAC,aAAa,GAAG;4BACjB,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,EAAE;yBAC3C,CAAC;wBACF,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE;4BAClC,KAAK,kGAAkC;gCACnC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,GAAG,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC;gCAC7D,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,KAAK,EAAE;oCAC5G,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,GAAG;wCAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ;wCAC5B,KAAK,EAAE,SAAS,CAAC,KAAK;qCACzB,CAAC;oCACF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;iCAC9B;qCAAM;oCACH,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;wCAClC,IAAI,CAAC,SAAS,GAAG;4CACb,GAAG,EAAE,KAAK;4CACV,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ;4CACtC,IAAI,EAAE;gDACF,QAAQ,EAAE,EAAE;gDACZ,SAAS,EAAE;oDACP,QAAQ,EAAE,SAAS,CAAC,QAAQ;oDAC5B,KAAK,EAAE,SAAS,CAAC,KAAK;iDACzB;6CACJ;yCACJ;wCACD,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;wCACnE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;oCAC/B,CAAC,CAAC,CAAC;iCACN;gCACD,MAAM;4BACV,KAAK,gGAAgC;gCACjC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,GAAG,GAAG,GAAG,SAAS,CAAC,UAAU,GAAG,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC;gCACzF,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ;oCAC1E,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE;oCACrF,IAAI,GAAG,CAAC;oCACR,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC;oCAC1F,IAAI,GAAG,EAAE;wCACL,GAAG,GAAG,GAAG,CAAC,qBAAqB,CAAC;qCACnC;oCACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;oCACxF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;iCAC9B;qCAAM;oCACH,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;wCAClC,IAAI,IAAI,CAAC;wCACT,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE;4CACf,MAAM,GAAG,GAAG,yGAA4C,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;4CACjH,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE;gDACrB,MAAM,IAAI,GAAG,uEAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gDACzC,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,EAAE;oDACjC,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,8BAA8B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oDACjF,IAAI,GAAG,EAAE;wDACL,IAAI,WAAW,GAAG,SAAS,CAAC,WAAW,IAAI,EAAE,CAAC;wDAC9C,IAAI,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC;wDACrE,IAAI,CAAC,GAAG,EAAE;4DACN,GAAG,GAAG,IAAI,oFAAc,EAAE,CAAC;4DAC3B,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;4DAClC,GAAG,CAAC,qBAAqB,GAAG,GAAG,CAAC,SAAS,CAAC;4DAC1C,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;yDACzB;6DAAM,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE;4DACnC,GAAG,CAAC,qBAAqB,GAAG,GAAG,CAAC,SAAS,CAAC;yDAC7C;wDACD,MAAM,WAAW,GAAG,EAAE,CAAC;wDACvB,GAAG,CAAC,iBAAiB,CAAC,WAAW,EAAE,GAAG,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;wDACzE,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;wDACrC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;wDAC3C,IAAI,GAAG;4DACH,GAAG,EAAE,MAAM;4DACX,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ;4DACtC,IAAI,EAAE;gEACF,OAAO,EAAE,GAAG;gEACZ,IAAI,EAAE,WAAW;gEACjB,cAAc,EAAE,IAAI,iEAAe,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,gEAAc,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;6DACnH;yDACJ;qDACJ;iDACJ;6CACJ;yCACJ;wCACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;wCACtB,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;wCACnE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;oCAC/B,CAAC,CAAC,CAAC;iCACN;gCACD,MAAM;yBACb;qBACJ;yBAAM;wBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;wBACtB,IAAI,CAAC,aAAa,GAAG;4BACjB,WAAW,EAAE,EAAE;yBAClB,CAAC;wBACF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;wBACzC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;qBAC9B;iBACJ;qBAAM;oBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,aAAa,GAAG;wBACjB,WAAW,EAAE,EAAE;qBAClB,CAAC;oBACF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACzC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;iBAC9B;aACJ;iBAAM;gBACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gBACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG;oBACjB,WAAW,EAAE,EAAE;iBAClB,CAAC;gBACF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;aAC9B;SACJ;IACL,CAAC;IAEO,WAAW,CAAC,IAAI;QACpB,OAAO,IAAI,OAAO,CAAM,OAAO,CAAC,EAAE;YAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;YACjD,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,EAAE,EAAE;gBACJ,OAAO,CAAC,EAAE,CAAC,CAAC;aACf;iBAAM;gBACH,IAAI,IAAI,CAAC,cAAc,EAAE;oBACrB,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC7C,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;wBAC5B,MAAM,GAAG;4BACL,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE,2FAA+B,CAAC,MAAM,CAAC,OAAO,CAAC;yBAC3D,CAAC;qBACL;oBACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;oBACnC,OAAO,CAAC,MAAM,CAAC,CAAC;iBACnB;qBAAM;oBACH,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;wBAClE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC,EAAE;4BAClE,CAAC,GAAG;gCACA,IAAI,EAAE,CAAC;gCACP,OAAO,EAAE,2FAA+B,CAAC,CAAC,CAAC,OAAO,CAAC;6BACtD;yBACJ;wBACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBAC9B,OAAO,CAAC,CAAC,CAAC,CAAC;oBACf,CAAC,CAAC,CAAC;iBACN;aACJ;QACL,CAAC,CAAC,CAAC;IACP,CAAC;;;;;;;;mBA1NA,gDAAK;qBAYL,iDAAM;4BAEN,iDAAM;;AAtCE,yBAAyB;IALrC,wDAAS,CAAC;QACP,QAAQ,EAAE,sBAAsB;QAChC,oFAAkD;;KAErD,CAAC;GACW,yBAAyB;AAAA;;;;;;;;;;;;;;;;ACjB/B,MAAM,kBAAkB;IAKpB,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO;QAClC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;YAC9B,kBAAkB,CAAC,QAAQ,GAAG,IAAI,oBAAoB,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC/D,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACpB,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;oBAC3C,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAChD,IAAI,OAAO,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,CAAC,cAAc,EAAE;wBAC5D,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;wBAC9C,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;qBACzC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;SACN;QACD,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;YAClC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG;gBAC9B,OAAO,EAAE,OAAO;aACnB,CAAC;YACF,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAChD;IACL,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,OAAO;QAC3B,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;;AA5Bc,2BAAQ,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;ACH8B;AACa;AACb;AACK;AACxC;AAErB,MAAM,SAAS;;QAClB,kBAAa,GAAG,EAAE,CAAC;QACnB,mBAAc,GAAG,EAAE,CAAC;IAkCxB,CAAC;IAhCG,MAAM,CAAC,YAAY;QACf,OAAO,IAAI,OAAO,CAAY,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9C,MAAM,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC,GAAG,CAAC,oFAAqB,EAAE,EAAE,CAAC,CAAC;YACjE,MAAM,IAAI,GAAG,iFAAmC,CAAa,4DAAU,CAAC,CAAC;YACzE,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,yBAAyB,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBACvE,IAAI,MAAM,EAAE;oBACR,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;iBAC9C;gBACD,MAAM,OAAO,GAAG,iFAAmC,CAAsB,uEAAmB,CAAC,CAAC;gBAC9F,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC1D,IAAI,MAAM,EAAE;wBACR,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;qBAChC;oBACD,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW;QACP,MAAM,OAAO,GAAG;YACZ,wFAA0C,CAAC,YAAY,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI;YACtF,wFAA0C,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,6CAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;YACpF,wFAA0C,CAAC,iBAAiB,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,aAAa;SAC5F,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACzCsF;AACvB;AACD;AAE5D,MAAe,cAAc;IAChC,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS;QACzC,IAAI,UAAU,EAAE;YACZ,IAAI,UAAU,CAAC,cAAc,EAAE;gBAC3B,OAAO,IAAI,2BAA2B,CAAC,UAAU,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;aAChF;iBAAM,IAAI,UAAU,CAAC,iBAAiB,EAAE;gBACrC,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,SAAS,EAAE;oBACX,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wBACf,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,iBAAiB,EAAE;4BACzC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC;4BACnB,OAAO,IAAI,CAAC;yBACf;wBACD,OAAO,KAAK,CAAC;oBACjB,CAAC,CAAC,CAAC;iBACN;gBACD,QAAQ,SAAS,EAAE;oBACf,KAAK,sCAAsC;wBACvC,OAAO,IAAI,6BAA6B,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;oBAC3E;wBACI,OAAO,IAAI,sBAAsB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;iBACvE;aACJ;SACJ;QACD,OAAO,IAAI,oBAAoB,EAAE,CAAC;IACtC,CAAC;;AAKE,MAAM,oBAAqB,SAAQ,cAAc;IACpD,UAAU,CAAC,OAAY;QACnB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,EAAE;YACpD,MAAM,IAAI,OAAO,CAAC;SACrB;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAGE,MAAM,sBAAuB,SAAQ,cAAc;IACtD,YAAoB,iBAAyB;QACzC,KAAK,EAAE,CAAC;QADQ,sBAAiB,GAAjB,iBAAiB,CAAQ;IAE7C,CAAC;IACD,UAAU,CAAC,OAAY;QACnB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;YACvF,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SAC7C;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAGE,MAAM,2BAA4B,SAAQ,cAAc;IAC3D,YAAoB,OAAO,EAAU,SAAS;QAC1C,KAAK,EAAE,CAAC;QADQ,YAAO,GAAP,OAAO;QAAU,cAAS,GAAT,SAAS;QAE1C,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACvB,CAAC,CAAC,WAAW,GAAG,gGAAiC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,UAAU,CAAC,OAAY;QACnB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,EAAE;YACpD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACvB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBACb,IAAI,EAAE,CAAC,CAAC,WAAW;wBACnB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;qBACzB,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACN;YACD,MAAM,IAAI,GAAG,IAAI,mGAA0B,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE;gBACxB,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC;aAC1B;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAGE,MAAM,6BAA8B,SAAQ,cAAc;IAC7D,YAAoB,iBAAyB;QACzC,KAAK,EAAE,CAAC;QADQ,sBAAiB,GAAjB,iBAAiB,CAAQ;IAE7C,CAAC;IACD,UAAU,CAAC,OAAY;QACnB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,EAAE;YACpD,MAAM,IAAI,2FAA+B,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;SAC9E;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;;;;;;;;;;;;;;;;;;;;;;ACnG+C;AAE7C,MAAM,YAAY;IACrB,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI;QACxB,IAAI,GAAG,YAAY,KAAK,EAAE;YACtB,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI;gBACtB,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;YACxC,CAAC,CAAC,CAAC;SACN;aACI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC9B,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG;gBACjD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;;oBACzC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IACD,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ;QACpC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YAC1B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;SACxC;aAAM;YACH,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAClB,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;oBAC5C,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;iBAC3D;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IACD,MAAM,CAAC,gBAAgB,CAAC,IAAW,EAAE,QAAiB;QAClD,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACf,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC9C,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC9C,IAAI,IAAI,GAAG,IAAI,EAAE;oBACb,OAAO,CAAC,CAAC,CAAC;iBACb;gBACD,IAAI,IAAI,GAAG,IAAI,EAAE;oBACb,OAAO,CAAC,CAAC;iBACZ;gBACD,OAAO,CAAC,CAAC;YACb,CAAC,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACf,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBACpC,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBACpC,IAAI,IAAI,GAAG,IAAI,EAAE;oBACb,OAAO,CAAC,CAAC,CAAC;iBACb;gBACD,IAAI,IAAI,GAAG,IAAI,EAAE;oBACb,OAAO,CAAC,CAAC;iBACZ;gBACD,OAAO,CAAC,CAAC;YACb,CAAC,CAAC,CAAC;SACN;IACL,CAAC;;AAGE,MAAM,YAAY;IACrB,MAAM,CAAC,MAAM,CAAC,IAAY,EAAE,IAAc;QACtC,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACzE;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;IAIQ,UAAU,SAAV,UAAU;IACnB,SAAS,CAAC,KAAa,EAAE,IAAc;QACnC,IAAI,KAAK,IAAI,IAAI,EAAE;YACf,OAAO,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SAC3C;QACD,OAAO,EAAE,CAAC;IACd,CAAC;;AANQ,UAAU;IADtB,mDAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;GACZ,UAAU;AAAA;AAShB,MAAM,mBAAmB;IAI5B,YAAY,IAAY;QAFxB,iBAAY,GAAa,EAAE,CAAC;QAGxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9B,CAAC;;;;;;;;;;;;;;;;;AClFE,MAAM,WAAW;IACpB,MAAM,CAAC,IAAI,CAAC,GAAG;QACX,IAAI,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;QAChB,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,KAAK,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;;;;;;;;;;;;;;;;;;;;;;;ACN+C;IAMvC,YAAY,SAAZ,YAAY;IACvB,SAAS,CAAC,KAAY,EAAE,QAAgC;QACtD,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;YACvB,OAAO,KAAK,CAAC;SACd;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;;AANU,YAAY;IAJxB,mDAAI,CAAC;QACJ,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,KAAK;KACZ,CAAC;GACW,YAAY;AAAA;IAYZ,eAAe,SAAf,eAAe;IACxB,SAAS,CAAC,IAAY;QAClB,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,KAAK,IAAI,UAAU,IAAI,IAAI,EAAE;YACzB,IAAI,eAAe,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC;YACnD,IAAI,eAAe,EAAE;gBACjB,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;aAC3D;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;;AAVQ,eAAe;IAH3B,mDAAI,CAAC;QACF,IAAI,EAAE,aAAa;KACtB,CAAC;GACW,eAAe;AAAA;IAiBf,wBAAwB,SAAxB,wBAAwB;IACjC,SAAS,CAAC,IAAW;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACvD,CAAC;;AAHQ,wBAAwB;IAHpC,mDAAI,CAAC;QACF,IAAI,EAAE,sBAAsB;KAC/B,CAAC;GACW,wBAAwB;AAAA;IAUxB,iBAAiB,SAAjB,iBAAiB;IAC1B,SAAS,CAAC,KAAY;QAClB,IAAI,CAAC,KAAK,EAAE;YACR,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;;AANQ,iBAAiB;IAJ7B,mDAAI,CAAC;QACF,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,KAAK;KACd,CAAC;GACW,iBAAiB;AAAA;;;;;;;;;;;;;;;;;;AC5C8B;AACC;AAE7D,WAAW;AACJ,MAAM,aAAa;IAKtB,MAAM,CAAC,cAAc;QACjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,aAAa,CAAC,OAAO,EAAE;gBACvB,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;aACtC;iBAAM,IAAI,aAAa,CAAC,YAAY,EAAE;gBACnC,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;oBACrC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACf,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,MAAM,OAAO,GAAG,yFAAmC,CAAiB,qEAAc,CAAC,CAAC;gBACpF,aAAa,CAAC,YAAY,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;gBACtD,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;oBACrC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;oBAC7B,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC;oBAClC,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC;oBAC9B,OAAO,CAAC,CAAC,CAAC,CAAC;gBACf,CAAC,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;IACP,CAAC;;AAtBc,qBAAO,GAAG,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;ACPwB;AACE;AACsB;AAC7B;AACR;AAClB;AAGrB,MAAM,SAAS;IACX,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM;QAClD,IAAI,aAAa,EAAE;YACf,IAAI,OAAO,aAAa,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxE,MAAM,SAAS,GAAG,EAAE,CAAC;gBACrB,MAAM,WAAW,GAAG,EAAE,CAAC;gBACvB,MAAM,OAAO,GAAG,EAAE,CAAC;gBACnB,QAAQ,aAAa,CAAC,SAAS,EAAE;oBAC7B,KAAK,mFAAyB;wBAC1B,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;4BACvD,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;4BACxE,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCAC7B,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;oCACjD,IAAI,OAAO,CAAC,CAAC,qBAAqB,KAAK,QAAQ,EAAE;wCAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;wCACtC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;qCAC7C;yCAAM;wCACH,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wCACjB,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;qCACxB;oCACD,IAAI,OAAO,CAAC,CAAC,oBAAoB,KAAK,QAAQ,EAAE;wCAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;wCACrC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;qCAC5C;yCAAM;wCACH,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wCACjB,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;qCACxB;iCACJ;4BACL,CAAC,CAAC,CAAC;4BACH,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;4BAC5B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACb,MAAM,GAAG,GAAG,EAAE,CAAC;gCACf,IAAI,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gCACzB,IAAI,CAAC,CAAC,IAAI,YAAY,IAAI,CAAC,EAAE;oCACzB,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;iCACzB;gCACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oCACrC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iCAC3B;gCACD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACxB,CAAC,CAAC,CAAC;yBACN;wBACD,MAAM;oBACV,KAAK,6EAAmB,CAAC;oBACzB,KAAK,uEAAa,CAAC;oBACnB,KAAK,4EAAkB,CAAC;oBACxB,KAAK,+EAAqB,CAAC;oBAC3B,KAAK,wEAAc,CAAC;oBACpB,KAAK,6EAAmB,CAAC;oBACzB,KAAK,gFAAsB,CAAC;oBAC5B,KAAK,oFAA0B;wBAC3B,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;4BACvD,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;4BACxE,IAAI,MAAM,EAAE;gCACR,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCAC7B,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;wCACjD,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;4CAChC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;4CAClC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;yCACvC;wCACD,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,EAAE;4CACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;4CAC5B,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;yCAC5C;qCACJ;gCACL,CAAC,CAAC,CAAC;gCACH,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gCAC5B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCACb,MAAM,GAAG,GAAG,EAAE,CAAC;oCACf,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wCAChB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;4CACvB,IAAI,QAAQ,GAAG,IAAI,CAAC;4CACpB,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4CAC1B,IAAI,QAAQ,EAAE;gDACV,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;6CAC/B;4CACD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;yCACtB;6CAAM;4CACH,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;yCAClB;oCACL,CAAC,CAAC,CAAC;oCACH,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gCACxB,CAAC,CAAC,CAAC;6BACN;iCAAM;gCACH,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCAC7B,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;wCACjD,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,EAAE;4CACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;4CAC5B,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;yCAC5C;qCACJ;gCACL,CAAC,CAAC,CAAC;gCACH,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gCAC5B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCACb,MAAM,GAAG,GAAG,EAAE,CAAC;oCACf,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wCAChB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oCACnB,CAAC,CAAC,CAAC;oCACH,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gCACxB,CAAC,CAAC,CAAC;6BACN;yBACJ;wBACD,MAAM;oBACV,KAAK,6EAAmB,CAAC;oBACzB,KAAK,2EAAiB,CAAC;oBACvB,KAAK,6EAAmB,CAAC;oBACzB,KAAK,yEAAe;wBAChB,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;4BACvD,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;4BACxE,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCAC7B,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;4BACpD,CAAC,CAAC,CAAC;4BACH,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;4BAC5B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACb,MAAM,GAAG,GAAG,EAAE,CAAC;gCACf,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCAChB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCACnB,CAAC,CAAC,CAAC;gCACH,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACxB,CAAC,CAAC,CAAC;yBACN;wBACD,MAAM;oBACV,KAAK,8EAAoB;wBACrB,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;4BACvD,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;4BACxE,IAAI,MAAM,EAAE;gCACR,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCAC7B,IAAI,CAAC,CAAC,IAAI,KAAK,kFAAuB,EAAE;wCACpC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;+CAC3D,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE;4CACjE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;4CAC5B,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;4CAC5B,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;4CAC1B,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;4CAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;4CACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;4CACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;4CACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;4CACxB,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;gDAChC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;gDAClC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;6CACvC;4CACD,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,EAAE;gDACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;gDAC5B,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;6CAC5C;yCACJ;qCACJ;yCAAM,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;wCACxD,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;4CAChC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;4CAClC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;yCACvC;wCACD,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,EAAE;4CACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;4CAC5B,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;yCAC5C;qCACJ;gCACL,CAAC,CAAC,CAAC;gCACH,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gCAC5B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCACb,MAAM,GAAG,GAAG,EAAE,CAAC;oCACf,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wCAChB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;4CACvB,IAAI,QAAQ,GAAG,IAAI,CAAC;4CACpB,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4CAC1B,IAAI,QAAQ,EAAE;gDACV,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;6CAC/B;4CACD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;yCACtB;6CAAM;4CACH,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;yCAClB;oCACL,CAAC,CAAC,CAAC;oCACH,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gCACxB,CAAC,CAAC,CAAC;6BACN;iCAAM;gCACH,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCAC7B,IAAI,CAAC,CAAC,IAAI,KAAK,kFAAuB,EAAE;wCACpC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;+CAC3D,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE;4CACjE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;4CAC5B,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;4CAC5B,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;4CAC1B,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;4CAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;4CACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;4CACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;4CACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;4CACxB,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,EAAE;gDACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;gDAC5B,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;6CAC5C;yCACJ;qCACJ;yCAAM,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;wCACxD,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,EAAE;4CACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;4CAC5B,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;yCAC5C;qCACJ;gCACL,CAAC,CAAC,CAAC;gCACH,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gCAC5B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCACb,MAAM,GAAG,GAAG,EAAE,CAAC;oCACf,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wCAChB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oCACnB,CAAC,CAAC,CAAC;oCACH,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gCACxB,CAAC,CAAC,CAAC;6BACN;yBACJ;wBACD,MAAM;oBACV,KAAK,+EAAqB;wBACtB,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;4BACzD,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BAC7C,IAAI,OAAO,YAAY,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,YAAY,CAAC,MAAM,KAAK,QAAQ,EAAE;gCACpF,IAAI,OAAO,YAAY,CAAC,QAAQ,KAAK,QAAQ,EAAE;oCAC3C,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;iCACvC;qCAAM;oCACH,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iCACpB;gCACD,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gCAClC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gCAClC,IAAI,OAAO,YAAY,CAAC,QAAQ,KAAK,QAAQ,EAAE;oCAC3C,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;oCACpC,IAAI,OAAO,YAAY,CAAC,MAAM,KAAK,QAAQ,EAAE;wCACzC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;qCACrC;iCACJ;qCAAM,IAAI,OAAO,YAAY,CAAC,MAAM,KAAK,QAAQ,EAAE;oCAChD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oCACjB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;iCACrC;gCACD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gCACxB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCACb,MAAM,GAAG,GAAG,EAAE,CAAC;oCACf,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wCAChB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oCACnB,CAAC,CAAC,CAAC;oCACH,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gCACxB,CAAC,CAAC,CAAC;6BACN;yBACJ;wBACD,MAAM;oBACV,KAAK,4EAAkB,CAAC;oBACxB,KAAK,8EAAoB,CAAC;oBAC1B,KAAK,6EAAmB,CAAC;oBACzB,KAAK,4EAAkB;wBACnB,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;4BACvD,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC;4BACtE,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;4BACvE,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;4BAC5B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACb,MAAM,GAAG,GAAG,EAAE,CAAC;gCACf,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCAChB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCACnB,CAAC,CAAC,CAAC;gCACH,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACxB,CAAC,CAAC,CAAC;yBACN;wBACD,MAAM;oBACV,KAAK,uEAAa;wBACd,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;4BACvD,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC;4BACtE,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;4BACvE,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;4BAC5B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACb,MAAM,GAAG,GAAG,EAAE,CAAC;gCACf,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCAChB,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCACxB,CAAC,CAAC,CAAC;gCACH,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACxB,CAAC,CAAC,CAAC;yBACN;wBACD,MAAM;oBACV,KAAK,4EAAkB;wBACnB,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;4BACzD,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BAC/C,IAAI,OAAO,cAAc,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,cAAc,CAAC,WAAW,KAAK,QAAQ;mCAC1F,OAAO,cAAc,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,cAAc,CAAC,UAAU,KAAK,QAAQ,EAAE;gCACjG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,WAAW;oCACpE,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;gCACrD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gCACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gCACzB,MAAM,MAAM,GAAG,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gCAC3C,IAAI,MAAM,KAAK,QAAQ,EAAE;oCACrB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wCACb,MAAM,GAAG,GAAG,EAAE,CAAC;wCACf,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4CAChB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wCACnB,CAAC,CAAC,CAAC;wCACH,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oCACxB,CAAC,CAAC,CAAC;iCACN;qCAAM;oCACH,IAAI,KAAK,GAAG,CAAC,CAAC;oCACd,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;oCACtB,MAAM,IAAI,GAAG,EAAE,CAAC;oCAChB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wCACb,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;wCAC1B,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wCACtB,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;4CACxB,EAAE,GAAG,KAAK,EAAE,CAAC;4CACb,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;yCACpB;wCACD,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oCACtD,CAAC,CAAC,CAAC;oCACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wCAClC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;wCAChC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wCACxB,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;4CACxB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;yCACnB;qCACJ;oCACD,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;iCAC3B;6BACJ;yBACJ;wBACD,MAAM;oBACV,KAAK,4EAAkB;wBACnB,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;4BACzD,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BAC1C,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE;gCACxC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gCACjC,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE;oCACxC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oCACjC,IAAI,OAAO,SAAS,CAAC,WAAW,KAAK,QAAQ,EAAE;wCAC3C,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;qCACvC;iCACJ;qCAAM,IAAI,OAAO,SAAS,CAAC,WAAW,KAAK,QAAQ,EAAE;oCAClD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oCACjB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;iCACvC;gCACD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gCACxB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCACb,MAAM,GAAG,GAAG,EAAE,CAAC;oCACf,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wCAChB,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oCACxB,CAAC,CAAC,CAAC;oCACH,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gCACxB,CAAC,CAAC,CAAC;6BACN;yBACJ;wBACD,MAAM;oBACV,KAAK,yEAAe;wBAChB,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;4BACvD,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC;4BACtE,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;4BACvE,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;4BAC5B,IAAI,GAAG,GAAG,CAAC,CAAC;4BACZ,IAAI,GAAG,GAAG,CAAC,CAAC;4BACZ,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACb,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCAC5B,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gCAC1B,IAAI,GAAG,GAAG,GAAG,EAAE;oCACX,GAAG,GAAG,GAAG,CAAC;iCACb;qCAAM,IAAI,GAAG,GAAG,GAAG,EAAE;oCAClB,GAAG,GAAG,GAAG,CAAC;iCACb;gCACD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gCACd,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACxB,CAAC,CAAC,CAAC;4BACH,IAAI,KAAK,GAAG,aAAa,CAAC,kBAAkB,CAAC;4BAC7C,IAAI,CAAC,KAAK,EAAE;gCACR,KAAK,GAAG,IAAI,4EAAkB,EAAE,CAAC;gCACjC,aAAa,CAAC,kBAAkB,GAAG,KAAK,CAAC;6BAC5C;4BACD,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC;4BACrB,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC;yBACxB;wBAED,MAAM;oBACV,KAAK,2EAAiB;wBAClB,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;4BACzD,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BAC9C,IAAI,OAAO,aAAa,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,aAAa,CAAC,QAAQ,KAAK,QAAQ;mCACrF,OAAO,aAAa,CAAC,UAAU,KAAK,QAAQ,EAAE;gCACjD,IAAI,OAAO,aAAa,CAAC,UAAU,KAAK,QAAQ,EAAE;oCAC9C,SAAS,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,QAAQ;wCAC9D,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;oCACrD,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wCACb,IAAI,MAAM,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;wCACvC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,IAAI,IAAI,EAAE;4CACjD,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC;yCACxB;6CAAM;4CACH,MAAM,GAAG,IAAI,CAAC;yCACjB;wCACD,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM;4CACtD,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oCAC/D,CAAC,CAAC,CAAC;iCACN;qCAAM;oCACH,SAAS,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;oCAC3F,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wCACb,IAAI,MAAM,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;wCACvC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,IAAI,IAAI,EAAE;4CACjD,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC;yCACxB;6CAAM;4CACH,MAAM,GAAG,IAAI,CAAC;yCACjB;wCACD,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oCAC1F,CAAC,CAAC,CAAC;iCACN;6BACJ;yBACJ;wBACD,MAAM;oBACV,KAAK,4EAAkB;wBACnB,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;4BACvD,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC;4BACtE,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;4BACvE,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;4BAC5B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACb,MAAM,GAAG,GAAG,EAAE,CAAC;gCACf,IAAI,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gCACzB,IAAI,CAAC,CAAC,IAAI,YAAY,IAAI,CAAC,EAAE;oCACzB,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;iCACzB;gCACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCACf,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCACxB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACxB,CAAC,CAAC,CAAC;yBACN;wBACD,MAAM;oBACV,KAAK,yEAAe;wBAChB,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;4BACzD,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BAC5C,IAAI,OAAO,WAAW,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,WAAW,CAAC,QAAQ,KAAK,QAAQ;mCAC/E,OAAO,WAAW,CAAC,SAAS,KAAK,QAAQ,EAAE;gCAC9C,MAAM,OAAO,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;gCAC3D,IAAI,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;gCACpC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;oCAC9B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iCAC1B;qCAAM;oCACH,QAAQ,GAAG,EAAE,CAAC;oCACd,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;iCAC/B;gCACD,IAAI,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC;gCACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oCAC3B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iCACvB;qCAAM;oCACH,KAAK,GAAG,EAAE,CAAC;oCACX,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iCACzB;gCACD,IAAI,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC;gCAC/B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;oCACzB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iCACrB;qCAAM;oCACH,GAAG,GAAG,EAAE,CAAC;oCACT,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iCACvB;gCACD,IAAI,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;gCACpC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;oCAC9B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iCAC1B;qCAAM;oCACH,QAAQ,GAAG,EAAE,CAAC;oCACd,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iCAC5B;gCACD,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gCACpC,IAAI,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC;gCAC1C,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;oCAClC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iCAC9B;qCAAM;oCACH,YAAY,GAAG,EAAE,CAAC;oCAClB,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iCAChC;gCACD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gCACxB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCACb,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;oCAC7D,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;oCAC3B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;wCAC5B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qCACpB;yCAAM;wCACH,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qCAClB;oCACD,IAAI,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;oCACxB,IAAI,CAAC,CAAC,QAAQ,YAAY,IAAI,CAAC,EAAE;wCAC7B,QAAQ,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;qCACjC;oCACD,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE;wCAC3B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qCAClB;yCAAM;wCACH,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qCACtB;oCACD,IAAI,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;oCACpB,IAAI,CAAC,CAAC,MAAM,YAAY,IAAI,CAAC,EAAE;wCAC3B,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;qCAC7B;oCACD,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE;wCACzB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qCAClB;yCAAM;wCACH,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qCACpB;oCACD,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;oCAChC,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;wCACjC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;qCACzB;yCAAM;wCACH,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qCAClB;oCACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;oCACnC,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;oCAC/B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;wCAC5B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qCACpB;yCAAM;wCACH,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qCAClB;oCACD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gCACxB,CAAC,CAAC,CAAC;6BACN;yBACJ;wBACD,MAAM;oBACV,KAAK,4EAAkB;wBACnB,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;4BACzD,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BAC/C,IAAI,OAAO,cAAc,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,cAAc,CAAC,UAAU,KAAK,QAAQ;mCAC3F,OAAO,cAAc,CAAC,QAAQ,KAAK,QAAQ,EAAE;gCAChD,IAAI,OAAO,cAAc,CAAC,WAAW,KAAK,QAAQ,EAAE;oCAChD,MAAM,OAAO,GAAG,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,WAAW;wCACtE,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;oCACpD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oCACxB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wCACb,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wCAC1D,IAAI,SAAS,GAAG,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;wCAC7C,IAAI,CAAC,CAAC,SAAS,YAAY,IAAI,CAAC,EAAE;4CAC9B,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;yCACnC;wCACD,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wCACpB,IAAI,OAAO,GAAG,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;wCACzC,IAAI,CAAC,CAAC,OAAO,YAAY,IAAI,CAAC,EAAE;4CAC5B,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;yCAC/B;wCACD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wCAClB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oCACxB,CAAC,CAAC,CAAC;iCACN;qCAAM;oCACH,MAAM,OAAO,GAAG,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;oCAChG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oCACxB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wCACb,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;wCAC3C,IAAI,SAAS,GAAG,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;wCAC7C,IAAI,CAAC,CAAC,SAAS,YAAY,IAAI,CAAC,EAAE;4CAC9B,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;yCACnC;wCACD,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wCACpB,IAAI,OAAO,GAAG,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;wCACzC,IAAI,CAAC,CAAC,OAAO,YAAY,IAAI,CAAC,EAAE;4CAC5B,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;yCAC/B;wCACD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wCAClB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oCACxB,CAAC,CAAC,CAAC;iCACN;6BACJ;yBACJ;wBACD,MAAM;oBACV,KAAK,oFAA0B;wBAC3B,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;4BACvD,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;4BACxE,MAAM,aAAa,GAAG,EAAE,CAAC;4BACzB,IAAI,SAAS,GAAG,KAAK,CAAC;4BACtB,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCAC7B,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;uCAC3D,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE;oCACjE,MAAM,iBAAiB,GAAG;wCACtB,GAAG,EAAE,CAAC,CAAC,OAAO;wCACd,IAAI,EAAE,CAAC,CAAC,OAAO;wCACf,GAAG,EAAE,CAAC,CAAC,KAAK;wCACZ,GAAG,EAAE,CAAC,CAAC,OAAO;wCACd,WAAW,EAAE,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM;wCACrD,QAAQ,EAAE,CAAC,CAAC,QAAQ;wCACpB,QAAQ,EAAE,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ;wCAC3C,KAAK,EAAE,CAAC,CAAC,WAAW;wCACpB,MAAM,EAAE,MAAM,CAAC,SAAS;wCACxB,OAAO,EAAE,MAAM,CAAC,SAAS;wCACzB,QAAQ,EAAE,MAAM,CAAC,SAAS;wCAC1B,MAAM,EAAE,MAAM,CAAC,SAAS;wCACxB,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI;qCACjC,CAAC;oCACF,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;oCACtC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oCAC5B,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oCAC5B,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oCAC1B,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oCAC5B,IAAI,iBAAiB,CAAC,WAAW,EAAE;wCAC/B,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;qCACvC;oCACD,IAAI,iBAAiB,CAAC,QAAQ,EAAE;wCAC5B,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;qCAC5C;oCACD,IAAI,iBAAiB,CAAC,SAAS,EAAE;wCAC7B,SAAS,GAAG,IAAI,CAAC;qCACpB;iCACJ;4BACL,CAAC,CAAC,CAAC;4BACH,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;4BAC5B,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gCAC1B,IAAI,SAAS,CAAC;gCACd,IAAI,SAAS,IAAI,MAAM,IAAI,MAAM,CAAC,aAAa,EAAE;oCAC7C,IAAI,aAAa,CAAC,SAAS,IAAI,OAAO,aAAa,CAAC,SAAS,CAAC,MAAM,IAAI,QAAQ,IAAI,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE;wCAChH,SAAS,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;qCAChG;yCAAM;wCACH,SAAS,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;qCACrD;iCACJ;gCACD,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oCACb,MAAM,GAAG,GAAG,EAAE,CAAC;oCACf,IAAI,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;oCAC9B,IAAI,SAAS,EAAE;wCACX,IAAI,SAAS,YAAY,IAAI,EAAE;4CAC3B,IAAI,SAAS,EAAE;gDACX,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;6CAChD;iDAAM;gDACH,SAAS,GAAG,6CAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;6CAC1C;yCACJ;wCACD,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,YAAY;qCACzC;yCAAM;wCACH,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;qCACvB;oCACD,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;wCAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;wCAChC,IAAI,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE;4CAC3B,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;yCAC7B;wCACD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wCACjB,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wCAClC,IAAI,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE;4CAC7B,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;yCAC/B;wCACD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wCAClB,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;wCAChC,IAAI,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE;4CAC7B,SAAS,CAAC,QAAQ,GAAG,MAAM,CAAC;yCAC/B;wCACD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wCACjB,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;wCAChC,IAAI,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE;4CAC3B,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;yCAC7B;wCACD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wCACjB,IAAI,SAAS,CAAC,WAAW,EAAE;4CACvB,IAAI,QAAQ,GAAG,IAAI,CAAC;4CACpB,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;4CACvC,IAAI,QAAQ,EAAE;gDACV,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;6CAC/B;4CACD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;yCACtB;wCACD,IAAI,SAAS,CAAC,QAAQ,EAAE;4CACpB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;yCAChC;oCACL,CAAC,CAAC,CAAC;oCACH,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gCACxB,CAAC,CAAC,CAAC;gCACH,IAAI,SAAS,EAAE;oCACX,MAAM,GAAG,GAAG,EAAE,CAAC;oCACf,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY;oCAC/B,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;wCAC9B,IAAI,SAAS,CAAC,SAAS,EAAE;4CACrB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;4CAC3B,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;4CAC5B,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;4CAC7B,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;4CAC3B,IAAI,SAAS,CAAC,WAAW,EAAE;gDACvB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;6CAClB;4CACD,IAAI,SAAS,CAAC,QAAQ,EAAE;gDACpB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;6CAClB;yCACJ;6CAAM;4CACH,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4CACf,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4CACf,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4CACf,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4CACf,IAAI,SAAS,CAAC,WAAW,EAAE;gDACvB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;6CAClB;4CACD,IAAI,SAAS,CAAC,QAAQ,EAAE;gDACpB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;6CAClB;yCACJ;oCACL,CAAC,CAAC,CAAC;oCACH,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iCACvB;6BACJ;yBACJ;wBACD,MAAM;oBACV,KAAK,4EAAkB;wBACnB,OAAO,IAAI,CAAC;wBACZ,MAAM;iBACb;gBACD,OAAO,SAAS,CAAC;aACpB;SACJ;IACL,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,IAAc,EAAE,QAAkB;QAC/D,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,EAAE;YAC3C,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC9B,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,EAAE;gBACnC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;aAC5B;iBAAM;gBACH,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;aAC7B;YACD,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,QAAuB;QAC5C,OAAO,IAAI,OAAO,CAAW,OAAO,CAAC,EAAE;YACnC,IAAI,QAAQ,EAAE;gBACV,IAAI,QAAQ,CAAC,YAAY,EAAE;oBACvB,qFAAmC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wBAChE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;4BACnB,OAAO,CAAC,CAAC,CAAC;yBACb;6BAAM,IAAI,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;4BAClE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;yBAClC;6BAAM,IAAI,+EAAmC,IAAI,sFAA0C,GAAG,CAAC,EAAE;4BAC9F,OAAO,CAAC,+EAAmC,CAAC,CAAC;yBAChD;6BAAM;4BACH,OAAO,CAAC,IAAI,CAAC,CAAC;yBACjB;oBACL,CAAC,CAAC,CAAC;iBACN;qBAAM,IAAI,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;iBAClC;qBAAM,IAAI,+EAAmC,IAAI,sFAA0C,GAAG,CAAC,EAAE;oBAC9F,OAAO,CAAC,+EAAmC,CAAC,CAAC;iBAChD;qBAAM;oBACH,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;aACJ;iBAAM;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC;aACjB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;;;;;;;;;;;;;;;;;;;;ACnuBsE;IAK9D,qBAAqB,SAArB,qBAAqB;IAGhC,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAGvC,OAAO,CAAC,KAAY;QACzB,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3E,IAAI,CAAC,aAAa,EAAE;YAClB,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,EAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBAC/C,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,gCAAgC;aAC9D;SACF;IACH,CAAC;;;;;;mCAbA,gDAAK;sBAIL,uDAAY,SAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;AAL/B,qBAAqB;IAHjC,wDAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;KAC9B,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;ACLsB;IAK3C,oBAAoB,SAApB,oBAAoB;IAExB,OAAO,CAAC,KAAU;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;IAC1B,CAAC;;;sBAHA,uDAAY,SAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;AADtB,oBAAoB;IAHhC,wDAAS,CAAC;QACT,QAAQ,EAAE,0BAA0B;KACrC,CAAC;GACW,oBAAoB;AAAA;AAO1B,MAAM,iBAAiB;IAC1B,MAAM,CAAC,SAAS,CAAC,KAAU;QACvB,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YACjC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC3B;IACL,CAAC;;;;;;;;;;;;;;;;;;;ACjBgC;AACE;AAEhC,MAAM,YAAY;;AACP,qBAAQ,GAAG,oDAAS,EAAE,CAAC;AACvB,6BAAgB,GAA6B,IAAI,iDAAe,CAAC,KAAK,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;ACL3D;AAC0B;AACE;AACA;AAEpD,MAAM,eAAe;IAEjB,MAAM,CAAC,IAAI;QACd,IAAI,SAAS,IAAI,SAAS,CAAC,WAAW,EAAE;YACpC,MAAM,IAAI,GAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;YAC7C,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC9C,qEAAqE;gBACrE,uCAAuC;gBAEvC,IAAI,MAAM,CAAC,KAAK,IAAI,SAAS,EAAG;oBAC5B,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC;oBACpC,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,EAAE;wBAC/C,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE;4BACxC,eAAe,CAAC,OAAO,EAAE,CAAC;yBAC7B;oBACL,CAAC,CAAC;oBACF,sFAAgC,CAAC,CAAC,KAAK,EAAE,EAAE;wBACvC,IAAI,KAAK,IAAI,sEAAa,EAAE;4BACxB,eAAe,CAAC,OAAO,EAAE,CAAC;yBAC7B;oBACL,CAAC,CAAC;oBACF,eAAe,CAAC,OAAO,EAAE,CAAC;oBAC1B,0FAAoC,CAAC,CAAC,KAAK,EAAE,EAAE;wBAC3C,eAAe,CAAC,OAAO,EAAE,CAAC;oBAC9B,CAAC,CAAC,CAAC;iBACN;gBACD,uCAAuC;gBACvC,sHAAsH;gBACtH,IAAI;YACR,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IACO,MAAM,CAAC,WAAW,CAAC,IAAI;QAC3B,IAAI,IAAI,IAAI,eAAe,CAAC,UAAU,EAAE;YACpC,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBAC9B,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;aACrD;SACJ;IACL,CAAC;IACM,MAAM,CAAC,OAAO;QACjB,IAAI;YACA,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE;gBACrB,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBACzC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACtC,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aACrC;SACJ;QAAC,MAAM;YACJ,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACrC;IACL,CAAC;IAMM,MAAM,CAAC,YAAY,CAAC,IAAI;QAC3B,IAAI,IAAI,IAAI,eAAe,CAAC,UAAU,EAAE;YACpC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAClD,eAAe,CAAC,gBAAgB,GAAG,IAAI,CAAC;YACxC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;SAC3E;IACL,CAAC;IACM,MAAM,CAAC,eAAe,CAAC,IAAI;QAC9B,IAAI,IAAI,IAAI,eAAe,CAAC,UAAU,EAAE;YACpC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAClD,eAAe,CAAC,gBAAgB,GAAG,IAAI,CAAC;YACxC,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE;gBACrB,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;oBAChE,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;gBAC5E,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACb,0EAAwB,CAAC,gCAAgC,EAAC,mBAAmB,CAAC,CAAC;gBACnF,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;;AA3Ea,4BAAY,GAAG,KAAK,CAAC;AAoDrB,gCAAgB,GAAG,IAAI,CAAC;AACvB,0BAAU,GAAG,IAAI,CAAC;AACnB,gCAAgB,GAAG,IAAI,yCAAO,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5DQ;AACX;AACe;AACY;AACF;AACN;AACV;AAC+B;AACpB;AACT;AAEpD,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAEpD,MAAM,qBAAqB;;QAC9B,sBAAiB,GAAG,IAAI,CAAC;QACzB,oBAAe,GAAG,IAAI,CAAC;IAC3B,CAAC;;AAEM,MAAM,mBAAmB;IAiBrB,MAAM,CAAC,IAAI;QACd,0FAAiC,CAAC,CAAC,GAAG,EAAE,EAAE;YACtC,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE;gBAC9C,mBAAmB,CAAC,OAAO,GAAG,iFAAmC,CAAuB,iFAAoB,CAAC,CAAC;gBAC9G,mGAA0C,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBACpC,IAAI,MAAM,CAAC,KAAK,KAAK,0FAAwB,EAAE;wBAC3C,IAAI,MAAM,CAAC,IAAI,KAAK,oDAAoD,EAAE;4BACtE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;4BAC3C,IAAI,OAAO,CAAC,OAAO,EAAE;gCACjB,mBAAmB,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;gCACjE,IAAI,OAAO,CAAC,OAAO,KAAK,mBAAmB,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE;oCAClE,MAAM,IAAI,GAAG,qFAAgC,EAAE,CAAC;oCAChD,IAAI,IAAI,EAAE;wCACN,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;qCAC5F;yCAAM;wCACH,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;qCAClE;iCACJ;6BACJ;yBACJ;6BAAM,IAAI,MAAM,CAAC,IAAI,KAAK,gDAAgD,EAAE;4BACzE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;4BAC3C,IAAI,OAAO,CAAC,OAAO,EAAE;gCACjB,MAAM,OAAO,GAAG,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gCACnE,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;gCAClE,IAAI,OAAO,CAAC,OAAO,KAAK,mBAAmB,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE;oCAClE,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oCAC1D,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,EAAE;wCAClD,MAAM,IAAI,GAAG,qFAAgC,EAAE,CAAC;wCAChD,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE;4CACjE,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;yCACzD;qCACJ;iCACJ;6BACJ;yBACJ;qBACJ;gBACL,CAAC,CAAC,CAAC;gBACH,mFAA0B,CAAC,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5E,wFAAmC,CAAC,GAAG,EAAE;oBACrC,mBAAmB,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;oBACpD,mBAAmB,CAAC,yBAAyB,GAAG,IAAI,CAAC;oBACrD,mBAAmB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBAC3C,mBAAmB,CAAC,YAAY,GAAG,EAAE,CAAC;oBACtC,mBAAmB,CAAC,cAAc,EAAE,CAAC;gBACzC,CAAC,CAAC,CAAC;gBACH,kGAAwC,CAAC,CAAC,cAAc,EAAE,EAAE;oBACxD,IAAI,cAAc,EAAE;wBAChB,mBAAmB,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;qBACvD;yBAAM,IAAI,mBAAmB,CAAC,OAAO,IAAI,mBAAmB,CAAC,yBAAyB,EAAE;wBACrF,mBAAmB,CAAC,OAAO,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;qBACjG;gBACL,CAAC,CAAC,CAAC;gBACH,kGAAwC,CAAC,GAAG,EAAE;oBAC1C,mBAAmB,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;gBACvD,CAAC,CAAC,CAAC;gBACH,8FAAoC,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,cAAc,EAAE,CAAC,CAAC;gBAEjF,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;gBACnE,IAAI,YAAY,EAAE;oBACd,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,8DAAW,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC,CAAC;iBACvF;gBACD,IAAI,mBAAmB,CAAC,mBAAmB,EAAE;oBACzC,mBAAmB,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;oBAC9E,mBAAmB,CAAC,mBAAmB,GAAG,IAAI,CAAC;iBAClD;aACJ;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,MAAM,CAAC,wBAAwB,CAAC,SAAkB;QACtD,IAAI,mBAAmB,CAAC,OAAO,IAAI,mBAAmB,CAAC,yBAAyB,EAAE;YAC9E,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBACzC,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,mBAAmB,CAAC,yBAAyB;aACzD,CAAC,CAAC,SAAS,EAAE,CAAC;SAClB;IACL,CAAC;IAEO,MAAM,CAAC,cAAc;QACzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACb,MAAM,GAAG,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACrD,IAAI,GAAG,EAAE;gBACL,GAAG,CAAC,WAAW,EAAE,CAAC;aACrB;QACL,CAAC,CAAC,CAAC;QACH,mBAAmB,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAC/C,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,OAAe;QACrC,IAAI,OAAO,EAAE;YACT,MAAM,OAAO,GAAG,mBAAmB,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC7D,IAAI,OAAO,EAAE;gBACT,MAAM,IAAI,GAAG,qFAAgC,EAAE,CAAC;gBAChD,IAAI,IAAI,EAAE;oBACN,+FAAsC,CAAC,mBAAmB,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE;wBAC7F,WAAW,EAAE,IAAI,IAAI,EAAE;wBACvB,OAAO,EAAE,OAAO;wBAChB,MAAM,EAAE,IAAI,CAAC,WAAW;wBACxB,QAAQ,EAAE,IAAI,CAAC,GAAG;wBAClB,OAAO,EAAE,OAAO;qBACnB,CAAC,CAAC;iBACN;aACJ;SACJ;IACL,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,OAAe;QAC1C,IAAI,mBAAmB,CAAC,OAAO,EAAE;YAC7B,IAAI,mBAAmB,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE;gBAC1D,IAAI,OAAO,EAAE;oBACT,IAAI,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC3D,MAAM,YAAY,GAAG,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;oBAChE,IAAI,WAAW,IAAI,YAAY,EAAE;wBAC7B,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAChD,MAAM,QAAQ,GAAG,EAAE,CAAC;wBACpB,MAAM,YAAY,GAAG,mBAAmB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;wBAC/D,IAAI,YAAY,EAAE;4BACd,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;yBAClC;wBACD,MAAM,IAAI,GAAG,qFAAgC,EAAE,CAAC;wBAChD,IAAI,IAAI,EAAE;4BACN,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC;yBAC5D;wBACD,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACtD,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;wBAC7D,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;qBAC7D;yBAAM;wBACH,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;4BAC/D,IAAI,EAAE,EAAE;gCACJ,mBAAmB,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;gCACpD,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC;gCAC7D,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gCAChD,MAAM,QAAQ,GAAG,EAAE,CAAC;gCACpB,MAAM,YAAY,GAAG,mBAAmB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gCAC/D,IAAI,YAAY,EAAE;oCACd,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;iCAClC;gCACD,IAAI,YAAY,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;gCACjC,MAAM,IAAI,GAAG,qFAAgC,EAAE,CAAC;gCAChD,IAAI,IAAI,EAAE;oCACN,YAAY,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC;iCAC1D;gCACD,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gCACtD,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gCACzD,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;6BAChE;iCAAM;gCACH,OAAO,mBAAmB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gCAChD,OAAO,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gCAClD,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCAC7C,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCAClD,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCACjD,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;6BACrD;wBACL,CAAC,CAAC,CAAC;qBACN;iBACJ;qBAAM;oBACH,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC7C,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAClD,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACjD,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACrD;aACJ;SACJ;aAAM;YACH,mBAAmB,CAAC,mBAAmB,GAAG,OAAO,CAAC;SACrD;IACL,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,OAAe;QACvC,IAAI,OAAO,EAAE;YACT,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBACpB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;oBACtB,OAAO,GAAG,kBAAkB,CAAC;iBAChC;qBAAM;oBACH,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;iBAClC;aACJ;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SACtC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,OAAe,EAAE,SAAkB;QACvD,IAAI,mBAAmB,CAAC,OAAO,IAAI,OAAO,EAAE;YACxC,IAAI,SAAS,EAAE;gBACX,mBAAmB,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,IAAI,8EAAqB,CAAC,mBAAmB,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE;oBACvI,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC9B,IAAI,OAAO,CAAC,OAAO,EAAE;wBACjB,IAAI,WAAW,GAAG,mBAAmB,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBACpE,IAAI,CAAC,WAAW,EAAE;4BACd,WAAW,GAAG,EAAE,CAAC;4BACjB,mBAAmB,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC;yBACnE;wBACD,MAAM,OAAO,GAAG,qFAAgC,EAAE,CAAC;wBACnD,OAAO,CAAC,UAAU,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC,QAAQ,CAAC;wBACjE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;wBAC3C,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;4BACzD,KAAK,EAAE,SAAS;4BAChB,GAAG,EAAE,SAAS;4BACd,IAAI,EAAE,SAAS;4BACf,MAAM,EAAE,SAAS;yBACpB,CAAC,CAAC;wBACH,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC1B,IAAI,OAAO,CAAC,OAAO,KAAK,mBAAmB,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE;4BAClE,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;yBACjE;wBACD,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBACrD,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;4BACrB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;4BACzD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,iBAAiB,EAAE;gCACzC,oFAAsC,CAAC,gBAAgB,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;oCAC1F,yEAAuB,CAAC,mFAAuB,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gCAChF,CAAC,CAAC,CAAC;6BACN;yBACJ;qBACJ;gBACL,CAAC,CAAC,CAAC;gBAEH,mBAAmB,CAAC,yBAAyB,GAAG,OAAO,CAAC;aAC3D;iBAAM;gBACH,MAAM,GAAG,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBAC3D,IAAI,GAAG,EAAE;oBACL,GAAG,CAAC,WAAW,EAAE,CAAC;iBACrB;gBACD,mBAAmB,CAAC,yBAAyB,GAAG,IAAI,CAAC;aACxD;YACD,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBACzC,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,OAAO;aACnB,CAAC,CAAC,SAAS,EAAE,CAAC;SAClB;IACL,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,QAAiB,EAAE,aAAsB;QAC5D,IAAI,mBAAmB,CAAC,OAAO,EAAE;YAC7B,MAAM,OAAO,GAAG,mBAAmB,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC7D,IAAI,OAAO,EAAE;gBACT,mBAAmB,CAAC,OAAO,CAAC,YAAY,CAAC;oBACrC,UAAU,EAAE,QAAQ;oBACpB,aAAa,EAAE,aAAa;oBAC5B,OAAO,EAAE,OAAO;iBACnB,CAAC,CAAC,SAAS,EAAE,CAAC;aAClB;SACJ;IACL,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,IAAY,EAAE,GAAG;QAC1C,IAAI,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACvD,IAAI,CAAC,QAAQ,EAAE;YACX,QAAQ,GAAG,IAAI,qBAAqB,EAAE,CAAC;SAC1C;QACD,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACrB,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,YAAY,CAAC,OAAO,CAAC,uBAAuB,EAAE,4DAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvE,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAAC,OAAO;QACpC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,mBAAmB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,KAAK,EAAE;YACP,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACd,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;SACN;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAzRc,gCAAY,GAAG,EAAE,CAAC;AAClB,+BAAW,GAAG,EAAE,CAAC;AACjB,iCAAa,GAAG,EAAE,CAAC;AACnB,qCAAiB,GAAG,EAAE,CAAC;AAIxB,iCAAa,GAAG,IAAI,iDAAe,CAAS,IAAI,CAAC,CAAC;AAClD,qCAAiB,GAAG,IAAI,iDAAe,CAAQ,IAAI,CAAC,CAAC;AACrD,sCAAkB,GAAG,IAAI,iDAAe,CAAQ,IAAI,CAAC,CAAC;AACtD,sCAAkB,GAAG,IAAI,iDAAe,CAAM,IAAI,CAAC,CAAC;AACpD,8BAAU,GAAG,IAAI,0CAAO,EAAU,CAAC;AACnC,kCAAc,GAAG,IAAI,0CAAO,EAAO,CAAC;AACpC,4BAAQ,GAAG,IAAI,iDAAe,CAAwB,IAAI,qBAAqB,EAAE,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;ACjCrG;AACA;AACA;AACA;AACA;AAEM,MAAO+tB,mBAAP,CAA0B;EAEQ,OAAvBC,uBAAuB,CAACC,UAAD,EAAaC,UAAb,EAAyBC,eAAzB,EAAwC;IAAA;MACxE,IAAItsD,MAAM,GAAG,IAAIisD,gEAAJ,EAAb,CADwE,CAExE;;MACA,IAAIM,QAAQ,GAAG,KAAf;;MACA,IAAIF,UAAU,CAACG,KAAX,IAAoBH,UAAU,CAACG,KAAX,CAAiB7lE,MAAjB,IAA2BylE,UAAU,CAACzlE,MAAX,GAAoB,CAAvE,EAA0E;QACtE,IAAI8lE,QAAQ,GAAGL,UAAU,CAACh/C,MAAX,CAAkB,EAAlB,CAAf;QACA,IAAIs/C,OAAO,GAAGL,UAAU,CAACG,KAAX,CAAiB,CAAjB,EAAoBG,aAAlC;QACA,IAAIz9D,KAAK,GAAG,KAAZ;;QACA,KAAK,IAAInB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0+D,QAAQ,CAAC9lE,MAA7B,EAAqCoH,CAAC,EAAtC,EAA0C;UACtC,IAAI0+D,QAAQ,CAAC1+D,CAAD,CAAR,CAAY1D,GAAZ,IAAmBqiE,OAAvB,EAAgC;YAC5BD,QAAQ,CAAC74D,MAAT,CAAgB7F,CAAhB,EAAmB,CAAnB;YACAmB,KAAK,GAAG,IAAR;YACA;UACH;QACJ;;QACD,IAAIA,KAAJ,EAAW;UACP,KAAK,IAAIquC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8uB,UAAU,CAACG,KAAX,CAAiB7lE,MAArC,EAA6C42C,CAAC,EAA9C,EAAkD;YAC9CruC,KAAK,GAAG,KAAR;;YACA,IAAIm9D,UAAU,CAACG,KAAX,CAAiBjvB,CAAjB,EAAoBovB,aAApB,IAAqCD,OAAzC,EAAkD;cAC9CA,OAAO,GAAGL,UAAU,CAACG,KAAX,CAAiBjvB,CAAjB,EAAoBqvB,WAA9B;;cACA,KAAK,IAAI7+D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0+D,QAAQ,CAAC9lE,MAA7B,EAAqCoH,CAAC,EAAtC,EAA0C;gBACtC,IAAI0+D,QAAQ,CAAC1+D,CAAD,CAAR,CAAY1D,GAAZ,IAAmBqiE,OAAvB,EAAgC;kBAC5BD,QAAQ,CAAC74D,MAAT,CAAgB7F,CAAhB,EAAmB,CAAnB;kBACAmB,KAAK,GAAG,IAAR;kBACA;gBACH;cACJ;YACJ,CATD,MASO;cACH;YACH;UACJ;;UACD,IAAIA,KAAJ,EAAW;YACPq9D,QAAQ,GAAG,IAAX;UACH;QACJ;MACJ;;MACD,IAAI,CAACA,QAAL,EAAe;QACX,MAAM5/D,OAAO,GAAGgK,iFAAA,CAAyDo1D,gFAAzD,CAAhB;QACA,IAAIc,SAAS,SAASlgE,OAAO,CAACmgE,eAAR,CAAwBT,UAAU,CAAC7vC,WAAnC,EAAgD0E,SAAhD,EAAtB;;QACA,IAAI;UACA,IAAI6rC,aAAa,GAAG,EAApB;UACAX,UAAU,CAACnlE,OAAX,CAAmB,UAAUkQ,CAAV,EAAW;YAC1B41D,aAAa,CAAC5nE,IAAd,CAAmBgS,CAAC,CAAC9M,GAArB;UACH,CAFD;UAGA,IAAI2iE,SAAS,GAAGd,mBAAmB,CAACe,WAApB,CAAgCF,aAAhC,EAA+CF,SAA/C,CAAhB;;UACA,IAAIG,SAAS,CAACE,YAAV,CAAuBvmE,MAAvB,GAAgC,CAApC,EAAuC;YACnC,IAAIwmE,OAAO,GAAG,EAAd;YACAH,SAAS,CAACE,YAAV,CAAuBjmE,OAAvB,CAA+B,UAAUmmE,GAAV,EAAa;cACxC,IAAI1gD,IAAI,GAAG0gD,GAAX;cACAd,eAAe,CAACxoD,IAAhB,CAAqB,UAAUupD,EAAV,EAAY;gBAC7B,IAAIA,EAAE,CAAChjE,GAAH,IAAU+iE,GAAd,EAAmB;kBACf1gD,IAAI,GAAG2gD,EAAE,CAACv9D,OAAV;kBACA,OAAO,IAAP;gBACH;;gBACD,OAAO,KAAP;cACH,CAND;cAOAq9D,OAAO,CAAChoE,IAAR,CAAaunB,IAAb;YACH,CAVD;YAWA1M,MAAM,CAACstD,SAAP,GAAmB,KAAnB;YACAttD,MAAM,CAAC5D,KAAP,GAAe+hC,wFAAA,CAA2C,qDAA3C,IAAoG,IAApG,GAA2GgvB,OAAO,CAAC9nD,IAAR,CAAa,IAAb,CAA1H;UACH,CAfD,MAeO,IAAI2nD,SAAS,CAACO,iBAAV,CAA4B5mE,MAA5B,IAAsC,CAA1C,EAA6C;YAChDqZ,MAAM,CAACstD,SAAP,GAAmB,KAAnB;YACAttD,MAAM,CAAC5D,KAAP,GAAe+hC,wFAAA,CAA2C,wDAA3C,CAAf;UACH,CAHM,MAGA,IAAI6uB,SAAS,CAACO,iBAAV,CAA4B5mE,MAA5B,IAAsC,CAA1C,EAA6C;YAChD;YACA0lE,UAAU,CAACG,KAAX,GAAmBQ,SAAS,CAACO,iBAAV,CAA4B,CAA5B,CAAnB;UACH,CAHM,MAGA;YACH;YACAvtD,MAAM,CAACstD,SAAP,GAAmB,KAAnB;YACAttD,MAAM,CAAC5D,KAAP,GAAe+hC,wFAAA,CAA2C,2CAA3C,CAAf;YACA,IAAIppC,IAAI,GAAG;cACPy3D,KAAK,EAAE,EADA;cAEPlvB,MAAM,EAAE8uB,UAFD;cAGPoB,SAAS,EAAEX,SAHJ;cAIPpwB,UAAU,EAAE6vB;YAJL,CAAX;YAMAU,SAAS,CAACO,iBAAV,CAA4BtmE,OAA5B,CAAoC,UAAU+mB,CAAV,EAAW;cAC3CjZ,IAAI,CAACy3D,KAAL,CAAWrnE,IAAX,CAAgB;gBACZsoE,QAAQ,EAAEz/C;cADE,CAAhB;YAGH,CAJD;YAKAka,6FAAA,CAAsB;cAClB4B,WAAW,EAAEkiC,gHADK;cAElBz8D,QAAQ,EAAEwF,IAFQ;cAGlB2zB,KAAK,EAAE,gBAHW;cAIlBoC,OAAO,EAAE,UAAU9c,CAAV,EAAW;gBAChB,IAAIA,CAAJ,EAAO;kBACHq+C,UAAU,CAACG,KAAX,GAAmBx+C,CAAnB;gBACH;cACJ;YARiB,CAAtB;UAUH;QACJ,CArDD,CAqDE,OAAO1X,CAAP,EAAU;UACR0J,MAAM,CAACstD,SAAP,GAAmB,KAAnB;UACAttD,MAAM,CAAC5D,KAAP,GAAe+hC,wFAAA,CAA2C,6DAA3C,IAA4G,IAA5G,GAAmH7nC,CAAC,CAAC22B,OAArH,GAA+H,GAA9I;QACH;MACJ;;MACD,OAAOjtB,MAAP;IAjGwE;EAkG3E;;EAEiB,OAAXitD,WAAW,CAACS,YAAD,EAAyBb,SAAzB,EAAyC;IACvD,IAAI7sD,MAAM,GAAG;MACTktD,YAAY,EAAE,EADL;MAETK,iBAAiB,EAAE;IAFV,CAAb;;IAIA,IAAIG,YAAY,IAAIA,YAAY,CAAC/mE,MAAb,GAAsB,CAAtC,IAA2CkmE,SAA3C,IAAwDA,SAAS,CAAClmE,MAAV,GAAmB,CAA/E,EAAkF;MAC9E,IAAIgnE,cAAc,GAAG,IAAI1zD,GAAJ,EAArB;;MACA,KAAK,IAAIlM,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2/D,YAAY,CAAC/mE,MAAb,GAAsB,CAA1C,EAA6CoH,CAAC,EAA9C,EAAkD;QAC9C,IAAI6/D,SAAS,GAAGF,YAAY,CAAC3/D,CAAD,CAA5B;QACA,IAAIglD,QAAQ,GAAG4a,cAAc,CAACn2D,GAAf,CAAmBo2D,SAAnB,CAAf;;QACA,IAAI,CAAC7a,QAAL,EAAe;UACXA,QAAQ,GAAG,IAAI94C,GAAJ,EAAX;QACH;;QACD,KAAK,IAAIsjC,CAAC,GAAGxvC,CAAC,GAAG,CAAjB,EAAoBwvC,CAAC,GAAGmwB,YAAY,CAAC/mE,MAArC,EAA6C42C,CAAC,EAA9C,EAAkD;UAC9C,IAAIswB,OAAO,GAAGH,YAAY,CAACnwB,CAAD,CAA1B;UACA,IAAIuwB,KAAK,GAAG5B,mBAAmB,CAAC6B,gBAApB,CAAqCH,SAArC,EAAgDC,OAAhD,EAAyDhB,SAAzD,EAAoE,EAApE,EAAwE,CAACe,SAAD,CAAxE,CAAZ;;UACA,IAAIE,KAAK,CAACnnE,MAAN,GAAe,CAAnB,EAAsB;YAClBosD,QAAQ,CAACt7C,GAAT,CAAao2D,OAAb,EAAsBC,KAAtB;YACA,IAAIE,UAAU,GAAGL,cAAc,CAACn2D,GAAf,CAAmBq2D,OAAnB,CAAjB;;YACA,IAAI,CAACG,UAAL,EAAiB;cACbA,UAAU,GAAG,IAAI/zD,GAAJ,EAAb;cACA0zD,cAAc,CAACl2D,GAAf,CAAmBo2D,OAAnB,EAA4BG,UAA5B;YACH;;YACD,IAAIC,SAAS,GAAG,EAAhB;YACAH,KAAK,CAAC7mE,OAAN,CAAc,UAAUylB,IAAV,EAAc;cACxB,IAAIwhD,SAAS,GAAG,EAAhB;cACAxhD,IAAI,CAACzlB,OAAL,CAAa,UAAU+mB,CAAV,EAAW;gBACpBkgD,SAAS,CAACt6D,MAAV,CAAiB,CAAjB,EAAoB,CAApB,EAAuBoa,CAAvB;cACH,CAFD;cAGAigD,SAAS,CAAC9oE,IAAV,CAAe+oE,SAAf;YACH,CAND;YAOAF,UAAU,CAACv2D,GAAX,CAAem2D,SAAf,EAA0BK,SAA1B;UACH;QACJ;;QACD,IAAIlb,QAAQ,CAAC/sD,IAAT,IAAiB,CAArB,EAAwB;UACpBga,MAAM,CAACktD,YAAP,CAAoB/nE,IAApB,CAAyByoE,SAAzB;QACH,CAFD,MAEO;UACHD,cAAc,CAACl2D,GAAf,CAAmBm2D,SAAnB,EAA8B7a,QAA9B;QACH;MACJ;;MACD,IAAI/yC,MAAM,CAACktD,YAAP,CAAoBvmE,MAApB,IAA8B,CAAlC,EAAqC;QACjC;QACAgnE,cAAc,CAAC1mE,OAAf,CAAuB,UAAU4+B,CAAV,EAAaqkB,CAAb,EAAc;UACjCgiB,mBAAmB,CAACiC,YAApB,CAAiC,CAACjkB,CAAD,CAAjC,EAAsCyjB,cAAtC,EAAsDD,YAAY,CAAC/mE,MAAnE,EAA2E,UAAU+lB,IAAV,EAAc;YACrF1M,MAAM,CAACutD,iBAAP,GAA2BvtD,MAAM,CAACutD,iBAAP,CAAyBngD,MAAzB,CAAgC8+C,mBAAmB,CAACkC,SAApB,CAA8B,CAA9B,EAAiC1hD,IAAjC,EAAuCihD,cAAvC,CAAhC,CAA3B;UACH,CAFD;QAGH,CAJD;MAKH;IACJ;;IACD,OAAO3tD,MAAP;EACH;;EAE8B,OAAhB+tD,gBAAgB,CAACH,SAAD,EAAYS,UAAZ,EAAwBxB,SAAxB,EAA0CyB,QAA1C,EAA8DC,SAA9D,EAAiF;IAC5G,IAAIvuD,MAAM,GAAG,EAAb;IACA6sD,SAAS,CAAC5lE,OAAV,CAAkB,UAAUunE,GAAV,EAAa;MAC3B,IAAI,CAACF,QAAQ,CAACxqD,IAAT,CAAc,UAAU6hB,CAAV,EAAW;QAAI,OAAOA,CAAC,IAAI6oC,GAAG,CAACnkE,GAAhB;MAAsB,CAAnD,CAAL,EAA2D;QACvD,IAAImkE,GAAG,CAACC,gBAAJ,IAAwBb,SAA5B,EAAuC;UACnC,IAAIY,GAAG,CAACE,kBAAJ,IAA0BL,UAA9B,EAA0C;YACtCruD,MAAM,CAAC7a,IAAP,CAAY,CAACqpE,GAAG,CAACnkE,GAAL,CAAZ;UACH,CAFD,MAEO,IAAI,CAACkkE,SAAS,CAACzqD,IAAV,CAAe,UAAU3M,CAAV,EAAW;YAAI,OAAOA,CAAC,IAAIq3D,GAAG,CAACE,kBAAhB;UAAqC,CAAnE,CAAL,EAA2E;YAC9E,IAAIC,SAAS,GAAGzC,mBAAmB,CAAC6B,gBAApB,CAAqCS,GAAG,CAACE,kBAAzC,EAA6DL,UAA7D,EAAyExB,SAAzE,EAAoFyB,QAAQ,CAAClhD,MAAT,CAAgB,CAACohD,GAAG,CAACnkE,GAAL,CAAhB,CAApF,EAAgHkkE,SAAS,CAACnhD,MAAV,CAAiB,CAACohD,GAAG,CAACE,kBAAL,CAAjB,CAAhH,CAAhB;YACAC,SAAS,CAAC1nE,OAAV,CAAkB,UAAUylB,IAAV,EAAc;cAC5B,IAAIA,IAAI,CAAC5I,IAAL,CAAU,UAAUkK,CAAV,EAAW;gBAAI,OAAOA,CAAC,IAAIwgD,GAAG,CAACnkE,GAAhB;cAAsB,CAA/C,CAAJ,EAAsD;gBAClD,MAAM,oCAAN;cACH;;cACD2V,MAAM,CAAC7a,IAAP,CAAY,CAACqpE,GAAG,CAACnkE,GAAL,EAAU+iB,MAAV,CAAiBV,IAAjB,CAAZ;YACH,CALD;UAMH;QACJ,CAZD,MAYO,IAAI8hD,GAAG,CAACE,kBAAJ,IAA0Bd,SAA9B,EAAyC;UAC5C,IAAIY,GAAG,CAACC,gBAAJ,IAAwBJ,UAA5B,EAAwC;YACpCruD,MAAM,CAAC7a,IAAP,CAAY,CAACqpE,GAAG,CAACnkE,GAAL,CAAZ;UACH,CAFD,MAEO,IAAI,CAACkkE,SAAS,CAACzqD,IAAV,CAAe,UAAU3M,CAAV,EAAW;YAAI,OAAOA,CAAC,IAAIq3D,GAAG,CAACC,gBAAhB;UAAmC,CAAjE,CAAL,EAAyE;YAC5E,IAAIE,SAAS,GAAGzC,mBAAmB,CAAC6B,gBAApB,CAAqCS,GAAG,CAACC,gBAAzC,EAA2DJ,UAA3D,EAAuExB,SAAvE,EAAkFyB,QAAQ,CAAClhD,MAAT,CAAgB,CAACohD,GAAG,CAACnkE,GAAL,CAAhB,CAAlF,EAA8GkkE,SAAS,CAACnhD,MAAV,CAAiB,CAACohD,GAAG,CAACC,gBAAL,CAAjB,CAA9G,CAAhB;YACAE,SAAS,CAAC1nE,OAAV,CAAkB,UAAUylB,IAAV,EAAc;cAC5B,IAAIA,IAAI,CAAC5I,IAAL,CAAU,UAAUkK,CAAV,EAAW;gBAAI,OAAOA,CAAC,IAAIwgD,GAAG,CAACnkE,GAAhB;cAAsB,CAA/C,CAAJ,EAAsD;gBAClD,MAAM,oCAAN;cACH;;cACD2V,MAAM,CAAC7a,IAAP,CAAY,CAACqpE,GAAG,CAACnkE,GAAL,EAAU+iB,MAAV,CAAiBV,IAAjB,CAAZ;YACH,CALD;UAMH;QACJ;MACJ;IACJ,CA5BD;IA6BA,OAAO1M,MAAP;EACH;;EAE0B,OAAZmuD,YAAY,CAACS,OAAD,EAAUC,IAAV,EAAgBloE,MAAhB,EAAwBmoE,OAAxB,EAA+B;IACtD,IAAIpC,OAAO,GAAGkC,OAAO,CAACA,OAAO,CAACjoE,MAAR,GAAiB,CAAlB,CAArB;IACA,IAAIooE,SAAS,GAAGF,IAAI,CAACr3D,GAAL,CAASk1D,OAAT,CAAhB;IACAqC,SAAS,CAAC9nE,OAAV,CAAkB,UAAU4+B,CAAV,EAAaqkB,CAAb,EAAc;MAC5B,IAAI,CAAC0kB,OAAO,CAAC9qD,IAAR,CAAa,UAAUkK,CAAV,EAAW;QAAI,OAAOA,CAAC,IAAIk8B,CAAZ;MAAgB,CAA5C,CAAL,EAAoD;QAChD,IAAI8kB,OAAO,GAAGJ,OAAO,CAACxhD,MAAR,CAAe,CAAC88B,CAAD,CAAf,CAAd;;QACA,IAAI8kB,OAAO,CAACroE,MAAR,IAAkBA,MAAtB,EAA8B;UAC1BmoE,OAAO,CAACE,OAAD,CAAP;QACH,CAFD,MAEO;UACH9C,mBAAmB,CAACiC,YAApB,CAAiCa,OAAjC,EAA0CH,IAA1C,EAAgDloE,MAAhD,EAAwDmoE,OAAxD;QACH;MACJ;IACJ,CATD;EAUH;;EAEuB,OAATV,SAAS,CAAChjE,KAAD,EAAQ6jE,QAAR,EAAkBJ,IAAlB,EAAsB;IAC1C,IAAI7uD,MAAM,GAAG,EAAb;IACA,IAAI4lB,IAAI,GAAGqpC,QAAQ,CAAC7jE,KAAD,CAAnB;IACA,IAAI8jE,EAAE,GAAGD,QAAQ,CAAC7jE,KAAK,GAAG,CAAT,CAAjB;IACA,IAAI+jE,SAAS,GAAGN,IAAI,CAACr3D,GAAL,CAASouB,IAAT,CAAhB;IACA,IAAI6L,IAAI,GAAG09B,SAAS,CAAC33D,GAAV,CAAc03D,EAAd,CAAX;;IACA,IAAI9jE,KAAK,IAAI6jE,QAAQ,CAACtoE,MAAT,GAAkB,CAA/B,EAAkC;MAC9B8qC,IAAI,CAACxqC,OAAL,CAAa,UAAU6K,KAAV,EAAe;QACxBkO,MAAM,CAAC7a,IAAP,CAAY,CAAC;UACTwnE,aAAa,EAAE/mC,IADN;UAETgnC,WAAW,EAAEsC,EAFJ;UAGT5hD,IAAI,EAAExb;QAHG,CAAD,CAAZ;MAKH,CAND;IAOH,CARD,MAQO;MACH,IAAIs9D,QAAQ,GAAGlD,mBAAmB,CAACkC,SAApB,CAA8BhjE,KAAK,GAAG,CAAtC,EAAyC6jE,QAAzC,EAAmDJ,IAAnD,CAAf;MACAp9B,IAAI,CAACxqC,OAAL,CAAa,UAAU6K,KAAV,EAAe;QACxBs9D,QAAQ,CAACnoE,OAAT,CAAiB,UAAUhC,IAAV,EAAc;UAC3B+a,MAAM,CAAC7a,IAAP,CAAY,CAAC;YACTwnE,aAAa,EAAE/mC,IADN;YAETgnC,WAAW,EAAEsC,EAFJ;YAGT5hD,IAAI,EAAExb;UAHG,CAAD,EAITsb,MAJS,CAIFnoB,IAJE,CAAZ;QAKH,CAND;MAOH,CARD;IASH;;IACD,OAAO+a,MAAP;EACH;;EAEwB,OAAlBqvD,kBAAkB,CAACC,YAAD,EAAqB;IAC1C,IAAItvD,MAAM,GAAG,EAAb;IACA,IAAIuvD,MAAJ;;IACA,OAAOD,YAAY,GAAG,CAAtB,EAAyB;MACrBC,MAAM,GAAG,CAACD,YAAY,GAAG,CAAhB,IAAqB,EAA9B;MACAtvD,MAAM,GAAGwvD,MAAM,CAACC,YAAP,CAAoBF,MAAM,GAAG,EAA7B,IAAmCvvD,MAA5C;MACAsvD,YAAY,GAAG/4B,IAAI,CAACm5B,KAAL,CAAW,CAACJ,YAAY,GAAGC,MAAhB,IAA0B,EAArC,CAAf;IACH;;IACD,OAAOvvD,MAAP;EACH;;AAjP2B;;;;;;;;;;;;;;;;ACNzB,MAAM,oBAAoB;IAC7B,MAAM,CAAC,uBAAuB,CAAC,cAAc;QACzC,IAAI,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QAClC,gDAAgD;QAChD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAGE,MAAM,cAAc;;QACvB,qBAAgB,GAAY,KAAK,CAAC;QAClC,uBAAkB,GAAa,EAAE,CAAC;IACtC,CAAC;;;;;;;;;;;;;;;;;;;;;ACXiC;AACkB;AAE7C,MAAM,UAAU;IAEnB,MAAM,CAAC,aAAa,CAAC,GAAW;QAC5B,IAAI,EAAE,GAAG,IAAI,UAAU,EAAE,CAAC;QAC1B,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE;YAClB,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,EAAE,CAAC,cAAc,GAAG,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;YAChE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnB,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvB,EAAE,CAAC,cAAc,GAAG,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;gBAChE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBACnB,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBACrB,EAAE,CAAC,YAAY,GAAG,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;oBACxD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBACnB,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAC1B,EAAE,CAAC,iBAAiB,GAAG,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;wBACjE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;4BACnB,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACrB,EAAE,CAAC,YAAY,GAAG,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;4BACzD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gCACnB,EAAE,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gCACzB,EAAE,CAAC,gBAAgB,GAAG,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;gCAC/D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oCACnB,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oCACpB,EAAE,CAAC,WAAW,GAAG,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;iCACzD;6BACJ;yBACJ;qBACJ;iBACJ;aACJ;SACJ;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,GAAW;QACnC,OAAO,UAAU,CAAC,4BAA4B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9D,CAAC;IAEO,MAAM,CAAC,4BAA4B,CAAC,GAAW,EAAE,YAAqB;QAC1E,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChB,iDAAiD;oBACjD,2BAA2B;oBAC3B,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC5B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBACnB,IAAI,MAAM,GAAG,IAAI,CAAC;wBAClB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;4BACnB,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;gCACpD,MAAM,GAAG,KAAK,CAAC;6BAClB;4BACD,OAAO,CAAC,MAAM,CAAC;wBACnB,CAAC,CAAC,CAAC;wBACH,OAAO,MAAM,CAAC;qBACjB;yBAAM;wBACH,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACxB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;4BACnB,uDAAuD;4BACvD,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gCACpB,IAAI,YAAY,GAAG,UAAU,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gCAC/D,IAAI,YAAY,CAAC,OAAO,EAAE;oCACtB,IAAI,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oCACvC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;wCACxB,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;4CACzB,IAAI,WAAW,GAAG,UAAU,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;4CACnE,IAAI,WAAW,CAAC,OAAO,EAAE;gDACrB,IAAI,OAAO,GAAG,UAAU,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gDAC/D,IAAI,OAAO,CAAC,OAAO,EAAE;oDACjB,OAAO,WAAW,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;iDAC/C;6CACJ;yCACJ;qCACJ;yCAAM;wCACH,IAAI,WAAW,GAAG,UAAU,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;wCAC9D,OAAO,WAAW,CAAC,OAAO,CAAC;qCAC9B;iCACJ;6BACJ;yBACJ;6BAAM;4BACH,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;4BACxB,8BAA8B;4BAC9B,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gCACpB,IAAI,WAAW,GAAG,UAAU,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gCAC9D,IAAI,WAAW,CAAC,OAAO,EAAE;oCACrB,IAAI,YAAY,GAAG,UAAU,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oCAC/D,IAAI,YAAY,CAAC,OAAO,EAAE;wCACtB,OAAO,WAAW,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC;qCACpD;iCACJ;6BACJ;iCAAM;gCACH,IAAI,MAAM,GAAG,UAAU,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;gCACnD,OAAO,MAAM,CAAC,OAAO,CAAC;6BACzB;yBACJ;qBACJ;iBACJ;qBAAM;oBACH,kCAAkC;oBAClC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;iBAC3E;aACJ;iBAAM;gBACH,wCAAwC;gBACxC,IAAI,YAAY,EAAE;oBACd,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;wBACf,OAAO,IAAI,CAAC;qBACf;iBACJ;gBACD,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;aACzC;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,GAAW;QAC/B,OAAO,UAAU,CAAC,wBAAwB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAEO,MAAM,CAAC,wBAAwB,CAAC,GAAW,EAAE,YAAqB;QACtE,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChB,iDAAiD;oBACjD,2BAA2B;oBAC3B,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC5B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBACnB,IAAI,MAAM,GAAG,IAAI,CAAC;wBAClB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;4BACnB,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;gCAChD,MAAM,GAAG,KAAK,CAAC;6BAClB;4BACD,OAAO,CAAC,MAAM,CAAC;wBACnB,CAAC,CAAC,CAAC;wBACH,OAAO,MAAM,CAAC;qBACjB;yBAAM;wBACH,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACxB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;4BACnB,uDAAuD;4BACvD,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gCACpB,IAAI,YAAY,GAAG,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gCAC3D,IAAI,YAAY,CAAC,OAAO,EAAE;oCACtB,IAAI,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oCACvC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;wCACxB,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;4CACzB,IAAI,WAAW,GAAG,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;4CAC/D,IAAI,WAAW,CAAC,OAAO,EAAE;gDACrB,IAAI,OAAO,GAAG,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gDAC3D,IAAI,OAAO,CAAC,OAAO,EAAE;oDACjB,OAAO,WAAW,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;iDAC/C;6CACJ;yCACJ;qCACJ;yCAAM;wCACH,IAAI,WAAW,GAAG,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;wCAC1D,OAAO,WAAW,CAAC,OAAO,CAAC;qCAC9B;iCACJ;6BACJ;yBACJ;6BAAM;4BACH,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;4BACxB,8BAA8B;4BAC9B,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gCACpB,IAAI,WAAW,GAAG,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gCAC1D,IAAI,WAAW,CAAC,OAAO,EAAE;oCACrB,IAAI,YAAY,GAAG,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oCAC3D,IAAI,YAAY,CAAC,OAAO,EAAE;wCACtB,OAAO,WAAW,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC;qCACpD;iCACJ;6BACJ;iCAAM;gCACH,IAAI,MAAM,GAAG,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;gCAC/C,OAAO,MAAM,CAAC,OAAO,CAAC;6BACzB;yBACJ;qBACJ;iBACJ;qBAAM;oBACH,kCAAkC;oBAClC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;wBACf,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;qBACzC;yBAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;wBACtB,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;qBACzC;iBACJ;aACJ;iBAAM;gBACH,wCAAwC;gBACxC,IAAI,YAAY,EAAE;oBACd,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;wBACf,OAAO,IAAI,CAAC;qBACf;iBACJ;gBACD,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;aACzC;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAID,MAAM,CAAC,iBAAiB,CAAC,GAAW;QAChC,OAAO,UAAU,CAAC,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAEO,MAAM,CAAC,yBAAyB,CAAC,GAAW,EAAE,YAAqB;QACvE,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChB,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;wBACjB,uCAAuC;wBACvC,IAAI,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;wBAC3B,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;4BAC7D,OAAO,IAAI,CAAC;yBACf;qBACJ;oBACD,iDAAiD;oBACjD,2BAA2B;oBAC3B,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC5B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBACnB,IAAI,MAAM,GAAG,IAAI,CAAC;wBAClB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;4BACnB,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;gCACjD,MAAM,GAAG,KAAK,CAAC;6BAClB;4BACD,OAAO,CAAC,MAAM,CAAC;wBACnB,CAAC,CAAC,CAAC;wBACH,OAAO,MAAM,CAAC;qBACjB;yBAAM;wBACH,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACxB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;4BACnB,uDAAuD;4BACvD,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gCACpB,IAAI,YAAY,GAAG,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gCACjE,IAAI,YAAY,CAAC,OAAO,EAAE;oCACtB,IAAI,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oCACvC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;wCACxB,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;4CACzB,IAAI,WAAW,GAAG,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;4CACpE,IAAI,WAAW,CAAC,OAAO,EAAE;gDACrB,IAAI,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gDAChE,IAAI,OAAO,CAAC,OAAO,EAAE;oDACjB,OAAO,WAAW,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;iDAC/C;6CACJ;yCACJ;qCACJ;yCAAM;wCACH,IAAI,WAAW,GAAG,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;wCAC/D,OAAO,WAAW,CAAC,OAAO,CAAC;qCAC9B;iCACJ;6BACJ;yBACJ;6BAAM;4BACH,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;4BACxB,8BAA8B;4BAC9B,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gCACpB,IAAI,WAAW,GAAG,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gCAC/D,IAAI,WAAW,CAAC,OAAO,EAAE;oCACrB,IAAI,YAAY,GAAG,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;oCAChE,IAAI,YAAY,CAAC,OAAO,EAAE;wCACtB,OAAO,WAAW,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC;qCACpD;iCACJ;6BACJ;iCAAM;gCACH,IAAI,MAAM,GAAG,UAAU,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gCACpD,OAAO,MAAM,CAAC,OAAO,CAAC;6BACzB;yBACJ;qBACJ;iBACJ;qBAAM;oBACH,kCAAkC;oBAClC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;iBAC1D;aACJ;iBAAM;gBACH,wCAAwC;gBACxC,IAAI,YAAY,EAAE;oBACd,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;wBACf,OAAO,IAAI,CAAC;qBACf;iBACJ;gBACD,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;aACzC;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,GAAW;QAC9B,OAAO,UAAU,CAAC,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAEO,MAAM,CAAC,uBAAuB,CAAC,GAAW,EAAE,YAAqB;QACrE,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChB,aAAa;oBACb,IAAI,YAAY,EAAE;wBACd,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,GAAG,EAAE;4BAC7B,4BAA4B;4BAC5B,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,oDAAoD;gCACrE,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;oCACjB,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;iCACzC;qCAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;oCACxB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;wCAChC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;qCACzC;yCAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;wCACtB,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;qCACzC;iCACJ;6BACJ;yBACJ;6BAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,GAAG,EAAE;4BACvD,0EAA0E;4BAC1E,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;gCAChC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;6BACzC;iCAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;gCACtB,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;6BACzC;yBACJ;qBACJ;oBAED,iDAAiD;oBACjD,2BAA2B;oBAC3B,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC5B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBACnB,IAAI,MAAM,GAAG,IAAI,CAAC;wBAClB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;4BACnB,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;gCAC/C,MAAM,GAAG,KAAK,CAAC;6BAClB;4BACD,OAAO,CAAC,MAAM,CAAC;wBACnB,CAAC,CAAC,CAAC;wBACH,OAAO,MAAM,CAAC;qBACjB;yBAAM;wBACH,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACxB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;4BACnB,uDAAuD;4BACvD,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gCACpB,IAAI,YAAY,GAAG,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gCAC3D,IAAI,YAAY,CAAC,OAAO,EAAE;oCACtB,IAAI,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oCACvC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;wCACxB,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;4CACzB,IAAI,WAAW,GAAG,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;4CAC/D,IAAI,WAAW,CAAC,OAAO,EAAE;gDACrB,IAAI,OAAO,GAAG,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gDAC3D,IAAI,OAAO,CAAC,OAAO,EAAE;oDACjB,OAAO,WAAW,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;iDAC/C;6CACJ;yCACJ;qCACJ;yCAAM;wCACH,IAAI,WAAW,GAAG,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;wCAC1D,OAAO,WAAW,CAAC,OAAO,CAAC;qCAC9B;iCACJ;6BACJ;yBACJ;6BAAM;4BACH,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;4BACxB,8BAA8B;4BAC9B,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gCACpB,IAAI,WAAW,GAAG,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gCAC1D,IAAI,WAAW,CAAC,OAAO,EAAE;oCACrB,IAAI,YAAY,GAAG,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oCAC3D,IAAI,YAAY,CAAC,OAAO,EAAE;wCACtB,OAAO,WAAW,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC;qCACpD;iCACJ;6BACJ;iCAAM;gCACH,IAAI,MAAM,GAAG,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;gCAC/C,OAAO,MAAM,CAAC,OAAO,CAAC;6BACzB;yBACJ;qBACJ;iBACJ;qBAAM;oBACH,oEAAoE;oBACpE,IAAI,YAAY,EAAE;wBACd,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,GAAG,EAAE;4BAC7B,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;yBAC1E;qBACJ;oBACD,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;wBAChC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;qBACzC;yBAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;wBACtB,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;qBACzC;iBACJ;aACJ;iBAAM;gBACH,sDAAsD;gBACtD,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,YAAY,EAAE;oBACd,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,IAAI,GAAG,EAAE;wBAC/D,OAAO,IAAI,CAAC;qBACf;iBACJ;gBACD,OAAO,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,CAAC;aACzC;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAID,MAAM,CAAC,eAAe,CAAC,GAAW;QAC9B,OAAO,UAAU,CAAC,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAEO,MAAM,CAAC,uBAAuB,CAAC,GAAW,EAAE,YAAqB;QACrE,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChB,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;wBACjB,8BAA8B;wBAC9B,IAAI,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;wBAC3B,IAAI,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;4BACjE,OAAO,IAAI,CAAC;yBACf;wBACD,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;4BACf,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;yBAC3E;qBACJ;oBACD,IAAI,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC/B,IAAI,OAAO,GAAG,CAAC,CAAC,EAAE;wBACd,mBAAmB;wBACnB,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE;4BAC5J,4FAA4F;4BAC5F,OAAO,KAAK,CAAC;yBAChB;qBACJ;oBAED,iDAAiD;oBACjD,2BAA2B;oBAC3B,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC5B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBACnB,IAAI,MAAM,GAAG,IAAI,CAAC;wBAClB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;4BACnB,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;gCAC/C,MAAM,GAAG,KAAK,CAAC;6BAClB;4BACD,OAAO,CAAC,MAAM,CAAC;wBACnB,CAAC,CAAC,CAAC;wBACH,OAAO,MAAM,CAAC;qBACjB;yBAAM;wBACH,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACxB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;4BACnB,uDAAuD;4BACvD,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gCACpB,IAAI,YAAY,GAAG,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gCACjE,IAAI,YAAY,CAAC,OAAO,EAAE;oCACtB,IAAI,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oCACvC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;wCACxB,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;4CACzB,IAAI,WAAW,GAAG,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;4CACpE,IAAI,WAAW,CAAC,OAAO,EAAE;gDACrB,IAAI,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gDAChE,IAAI,OAAO,CAAC,OAAO,EAAE;oDACjB,OAAO,WAAW,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;iDAC/C;6CACJ;yCACJ;qCACJ;yCAAM;wCACH,IAAI,WAAW,GAAG,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;wCAC/D,OAAO,WAAW,CAAC,OAAO,CAAC;qCAC9B;iCACJ;6BACJ;yBACJ;6BAAM;4BACH,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;4BACxB,8BAA8B;4BAC9B,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gCACpB,IAAI,WAAW,GAAG,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gCAC/D,IAAI,WAAW,CAAC,OAAO,EAAE;oCACrB,IAAI,YAAY,GAAG,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;oCAChE,IAAI,YAAY,CAAC,OAAO,EAAE;wCACtB,OAAO,WAAW,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC;qCACpD;iCACJ;6BACJ;iCAAM;gCACH,IAAI,MAAM,GAAG,UAAU,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gCACpD,OAAO,MAAM,CAAC,OAAO,CAAC;6BACzB;yBACJ;qBACJ;iBAEJ;qBAAM;oBACH,qCAAqC;oBACrC,IAAI,YAAY,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,GAAG,EAAE;wBAC7C,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;qBACzC;iBACJ;aACJ;iBAAM;gBACH,sDAAsD;gBACtD,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,YAAY,EAAE;oBACd,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,IAAI,GAAG,EAAE;wBAC/D,OAAO,IAAI,CAAC;qBACf;iBACJ;gBACD,OAAO,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,CAAC;aACzC;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,GAAW;QAC/B,OAAO,UAAU,CAAC,wBAAwB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAEO,MAAM,CAAC,wBAAwB,CAAC,GAAW,EAAE,YAAqB;QACtE,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChB,2BAA2B;gBAC3B,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBACnB,IAAI,MAAM,GAAG,IAAI,CAAC;oBAClB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;wBACnB,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;4BAChD,MAAM,GAAG,KAAK,CAAC;yBAClB;wBACD,OAAO,CAAC,MAAM,CAAC;oBACnB,CAAC,CAAC,CAAC;oBACH,OAAO,MAAM,CAAC;iBACjB;qBAAM;oBACH,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACxB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBACnB,wDAAwD;wBACxD,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;4BACpB,IAAI,YAAY,GAAG,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC9D,IAAI,YAAY,CAAC,OAAO,EAAE;gCACtB,IAAI,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gCACvC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oCACxB,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;wCACzB,IAAI,WAAW,GAAG,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;wCAC/D,IAAI,WAAW,CAAC,OAAO,EAAE;4CACrB,IAAI,OAAO,GAAG,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;4CAC3D,IAAI,OAAO,CAAC,OAAO,EAAE;gDACjB,OAAO,WAAW,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;6CAC/C;yCACJ;qCACJ;iCACJ;qCAAM;oCACH,IAAI,WAAW,GAAG,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oCAC1D,OAAO,WAAW,CAAC,OAAO,CAAC;iCAC9B;6BACJ;yBACJ;qBACJ;yBAAM;wBACH,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACxB,8BAA8B;wBAC9B,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;4BACpB,IAAI,WAAW,GAAG,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC1D,IAAI,WAAW,CAAC,OAAO,EAAE;gCACrB,IAAI,YAAY,GAAG,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gCAC3D,IAAI,YAAY,CAAC,OAAO,EAAE;oCACtB,OAAO,WAAW,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC;iCACpD;6BACJ;yBACJ;6BAAM;4BACH,IAAI,MAAM,GAAG,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;4BAC/C,OAAO,MAAM,CAAC,OAAO,CAAC;yBACzB;qBACJ;iBACJ;aACJ;iBAAM;gBACH,kBAAkB;gBAClB,IAAI,YAAY,EAAE;oBACd,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;wBACf,OAAO,IAAI,CAAC;qBACf;iBACJ;aACJ;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,MAAM,CAAC,qBAAqB,CAAC,GAAW;QAC5C,IAAI,MAAM,GAAG;YACT,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,CAAC,CAAC;SACb,CAAC;QACF,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YACpC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACvB;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;YACjB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;gBAChC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC9B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;aACzB;SACJ;aAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;YACxB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;gBAClE,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC9B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;aACzB;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAAC,GAAW;QACxC,IAAI,MAAM,GAAG;YACT,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,CAAC,CAAC;SACb,CAAC;QACF,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YACpC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACvB;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;YACjB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;gBAChC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC9B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;aACzB;SACJ;aAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;YACxB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;gBACf,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;oBAChC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC9B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;iBACzB;aACJ;iBAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;gBACtB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;oBAChC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC9B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;iBACzB;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,GAAW,EAAE,SAAkB;QAC3D,IAAI,MAAM,GAAG;YACT,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,CAAC,CAAC;SACb,CAAC;QACF,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YACpC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACvB;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;YACjB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;gBAChC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC9B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;aACzB;SACJ;aAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;YACxB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;gBACf,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;oBAChC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC9B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;iBACzB;aACJ;SACJ;aAAM,IAAI,SAAS,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;YACrC,IAAI,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClD,IAAI,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;oBAC/B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;oBACtB,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;oBACtB,MAAM;iBACT;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAAC,GAAW;QACxC,IAAI,MAAM,GAAG;YACT,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,CAAC,CAAC;SACb,CAAC;QACF,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YACpC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACvB;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;YACjB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;gBAChC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC9B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;aACzB;SACJ;aAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;YACxB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;gBAChC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;oBAChC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC9B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;iBACzB;aACJ;iBAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;gBACtB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;oBAChC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC9B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;iBACzB;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,GAAW,EAAE,SAAkB;QAC3D,IAAI,MAAM,GAAG;YACT,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,CAAC,CAAC;SACb,CAAC;QACF,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YACpC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACvB;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;YACjB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;gBAChC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC9B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;aACzB;SACJ;aAAM,IAAI,SAAS,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;YACrC,IAAI,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtD,IAAI,EAAE,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;oBACnC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;oBACtB,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;oBACtB,MAAM;iBACT;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,GAAW;QAC3C,IAAI,MAAM,GAAG;YACT,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,CAAC,CAAC;SACb,CAAC;QACF,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YACpC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACvB;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;YACjB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;gBAChC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC9B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;aACzB;SACJ;aAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;YACxB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;gBAClE,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC9B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;aACzB;SACJ;aAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;YACxB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;gBACf,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;oBAClE,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC9B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;iBACzB;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAAC,GAAW;QACxC,IAAI,MAAM,GAAG;YACT,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,CAAC,CAAC;SACb,CAAC;QACF,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YACpC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACvB;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;YACjB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;gBACf,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;oBACf,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;wBAClE,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;wBAC9B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;qBACzB;iBACJ;aACJ;iBAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;gBACtB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;oBACf,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;wBAClE,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;wBAC9B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;qBACzB;iBACJ;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAzjBc,oBAAS,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAyMjG,wBAAa,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAmX9E,MAAM,UAAU;;QACnB,YAAO,GAAW,GAAG,CAAC;QACtB,mBAAc,GAAY,IAAI,CAAC;QAC/B,YAAO,GAAW,GAAG,CAAC;QACtB,mBAAc,GAAY,IAAI,CAAC;QAC/B,UAAK,GAAW,GAAG,CAAC;QACpB,iBAAY,GAAY,IAAI,CAAC;QAC7B,eAAU,GAAW,GAAG,CAAC;QACzB,sBAAiB,GAAY,IAAI,CAAC;QAClC,UAAK,GAAW,GAAG,CAAC;QACpB,iBAAY,GAAY,IAAI,CAAC;QAC7B,cAAS,GAAW,GAAG,CAAC;QACxB,qBAAgB,GAAY,IAAI,CAAC;QACjC,SAAI,GAAW,GAAG,CAAC;QACnB,gBAAW,GAAY,IAAI,CAAC;IA0BhC,CAAC;IAxBG,aAAa;QACT,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtH,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAChB,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/B,oBAAoB;YACpB,OAAO,yDAAkB,CAAC,GAAG,CAAC,CAAC;SAClC;aAAM;YACH,OAAO,wFAA0C,CAAC,wBAAwB,CAAC,CAAC;SAC/E;IACL,CAAC;IAED,OAAO;QACH,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,WAAW,EAAE;YAC7J,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,EAAE;gBACxB,OAAO,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC;aAChC;iBAAM;gBACH,OAAO,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC;aAChC;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;;;;;;;;;;;;;;;;;;AC1yB2D;AAGzD,MAAM,gBAAgB;IACzB,MAAM,CAAC,kBAAkB,CAAC,WAAmB,EAAE,UAAmB,EAAE,GAAY,EAAE,SAAkB;QAChG,MAAM,MAAM,GAAG,IAAI,wEAAe,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,UAAU,EAAE;YACZ,IAAI,GAAG,EAAE;gBACL,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAC,oCAAoC;aACvE;iBAAM;gBACH,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAC,kCAAkC;aACrE;SACJ;aAAM;YACH,IAAI,GAAG,EAAE;gBACL,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAC,mCAAmC;aACxE;iBAAM;gBACH,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAC,iCAAiC;aACtE;SACJ;QACD,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACjC,MAAM,CAAC,yBAAyB,GAAG,SAAS,CAAC;QAC7C,OAAO,MAAM,CAAC;IAClB,CAAC;;;;;;;;;;;;;;;;;;;;;ACtB+C;AACK;IAO5C,mBAAmB,SAAnB,mBAAmB;IAC9B,SAAS,CAAC,KAAY,EAAE,MAAuB;QAC7C,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;YACnB,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE;YAC7C,OAAO,KAAK,CAAC;SACd;aAAM;YACL,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC3B,IAAI,MAAM,GAAG,IAAI,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;oBAClB,QAAQ,GAAG,CAAC,QAAQ,EAAE;wBACpB,KAAK,yEAAgB;4BAEnB,MAAM;wBACR,KAAK,uEAAc;4BACjB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE;gCACvC,MAAM,GAAG,KAAK,CAAC;6BAChB;4BACD,MAAM;wBACR,KAAK,yEAAgB;4BACnB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE;gCACtC,MAAM,GAAG,KAAK,CAAC;6BAChB;4BACD,MAAM;wBACR,KAAK,8EAAqB;4BACxB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE;gCACvC,MAAM,GAAG,KAAK,CAAC;6BAChB;4BACD,MAAM;wBACR,KAAK,oEAAW;4BAEd,MAAM;wBACR,KAAK,sEAAa;4BAChB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAC,CAAC,CAAC,CAAC,EAAE;gCAChD,MAAM,GAAG,KAAK,CAAC;6BAChB;4BACD,MAAM;wBACR,KAAK,4EAAmB;4BAEtB,MAAM;wBACR,KAAK,0EAAiB;4BACpB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE;gCACvC,MAAM,GAAG,KAAK,CAAC;6BAChB;4BACD,MAAM;wBACR,KAAK,uEAAc;4BAEjB,MAAM;wBACR,KAAK,yEAAgB;4BACnB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE;gCACtC,MAAM,GAAG,KAAK,CAAC;6BAChB;4BACD,MAAM;wBACR,KAAK,8EAAqB;4BACxB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE;gCACvC,MAAM,GAAG,KAAK,CAAC;6BAChB;4BACD,MAAM;qBACT;oBACD,IAAI,CAAC,MAAM,EAAE;wBACX,OAAO,MAAM,CAAC;qBACf;gBACH,CAAC,CAAC;gBACF,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;;AAnEU,mBAAmB;IAJ/B,mDAAI,CAAC;QACF,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,KAAK;KACd,CAAC;GACW,mBAAmB;AAAA;;;;;;;;;;;;;;;;;;;;ACRoB;AACD;IAOtC,iBAAiB,SAAjB,iBAAiB;IAC5B,SAAS,CAAC,KAAY,EAAE,IAAmB;QACzC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE;YACnB,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;YAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACvB,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,CAAC,CAAC;SACH;aAAM;YACL,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACzB,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;oBAC9C,OAAO,CAAC,CAAC;iBACV;gBACD,IAAI,MAAM,CAAC,KAAK,IAAI,+DAAS,EAAE;oBAC7B,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC3D;gBACD,IAAI,MAAM,CAAC,KAAK,IAAI,gEAAU,EAAE;oBAC9B,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC3D;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;;AAtBU,iBAAiB;IAJ7B,mDAAI,CAAC;QACF,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,KAAK;KACd,CAAC;GACW,iBAAiB;AAAA;;;;;;;;;;;;;;;;ACRvB,MAAM,cAAc;IACvB,MAAM,CAAC,YAAY;QACf,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE;YACvJ,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC1G,CAAC;;;;;;;;;;;;;;;;;ACJE,MAAM,UAAU;IACnB;;;OAGG;IACH,MAAM,CAAC,kBAAkB,CAAC,IAAI;QAC1B,IAAI,CAAC,CAAC,IAAI,YAAY,IAAI,CAAC,EAAE;YACzB,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,GAAG;YAC3B,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG;YACtD,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG;YACjD,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,GAAG;YAClD,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,GAAG;YACpD,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACvD,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,GAAW;QACvC,IAAI,GAAG,GAAG,EAAE,EAAE;YACV,OAAO,GAAG,GAAG,GAAG,CAAC;SACpB;QACD,OAAO,EAAE,GAAG,GAAG,CAAC;IACpB,CAAC;;;;;;;;;;;;;;;;;;;;;;ACtB8D;AACC;AACU;AACG;AACf;AAE3D,MAAM,iBAAiB,GAAG;IAC/B,OAAO,EAAE;QACP,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,SAAS;QACf,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,YAAY;YACzB,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,eAAe,EAAE;gBACf,UAAU,EAAE;oBACV,CAAC,EAAE,CAAC;oBACJ,CAAC,EAAE,GAAG;iBACP;gBACD,QAAQ,EAAE;oBACR,CAAC,EAAE,CAAC;oBACJ,CAAC,EAAE,GAAG;iBACP;gBACD,MAAM,EAAE;oBACN;wBACE,KAAK,EAAE;4BACL,CAAC,EAAE,GAAG;4BACN,CAAC,EAAE,GAAG;4BACN,CAAC,EAAE,GAAG;4BACN,CAAC,EAAE,GAAG;yBACP;wBACD,MAAM,EAAE,CAAC;qBACV;iBACF;gBACD,IAAI,EAAE,CAAC;aACR;YACD,SAAS,EAAE,IAAI;SAChB;KACF;IACD,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,MAAM;QACf,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,IAAI,EAAE;gBACJ,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,IAAI;gBACpB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,IAAI;gBACZ,SAAS,EAAE,IAAI;aAChB;SACF;KACF;IACD,SAAS,EAAE;QACT,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE;gBACR,GAAG,CAAC,GAAG,EAAE;oBACP,MAAM,KAAK,GAAG,IAAI,6EAAa,EAAE,CAAC;oBAClC,KAAK,CAAC,WAAW,GAAG,mFAAgB,CAAC;oBACrC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC;oBAC3B,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;oBACvB,MAAM,KAAK,GAAG,IAAI,6EAAa,EAAE,CAAC;oBAClC,KAAK,CAAC,WAAW,GAAG,mFAAgB,CAAC;oBACrC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC;oBAC3B,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;oBACvB,MAAM,KAAK,GAAG,IAAI,6EAAa,EAAE,CAAC;oBAClC,KAAK,CAAC,WAAW,GAAG,mFAAgB,CAAC;oBACrC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC;oBAC3B,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;oBACvB,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC/B,CAAC,CAAC,EAAE;aACL;YACD,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAChC;KACF;IACD,SAAS,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE;IACpD,YAAY,EAAE;QACZ,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;SAC/B;KACF;IACD,MAAM,EAAE;QACN,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE;YACN,UAAU,EAAE,mBAAmB;YAC/B,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,QAAQ;YACjB,eAAe,EAAE,OAAO;YACxB,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,SAAS,EAAE,IAAI;YACf,MAAM,EAAE;gBACN,UAAU,EAAE;oBACV,SAAS,EAAE;wBACT,IAAI,EAAE,CAAC;wBACP,KAAK,EAAE,CAAC;qBACT;oBACD,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE;wBACL,UAAU,EAAE;4BACV,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,QAAQ,EAAE;4BACR,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,MAAM,EAAE;4BACN;gCACE,KAAK,EAAE;oCACL,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;iCACP;gCACD,MAAM,EAAE,CAAC;6BACV;yBACF;wBACD,IAAI,EAAE,CAAC;qBACR;iBACF;gBACD,SAAS,EAAE;oBACT,SAAS,EAAE;wBACT,IAAI,EAAE,CAAC;wBACP,KAAK,EAAE,CAAC;qBACT;oBACD,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE;wBACL,UAAU,EAAE;4BACV,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,QAAQ,EAAE;4BACR,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,MAAM,EAAE;4BACN;gCACE,KAAK,EAAE;oCACL,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;iCACP;gCACD,MAAM,EAAE,CAAC;6BACV;yBACF;wBACD,IAAI,EAAE,CAAC;qBACR;iBACF;gBACD,WAAW,EAAE;oBACX,SAAS,EAAE;wBACT,IAAI,EAAE,CAAC;wBACP,KAAK,EAAE,CAAC;qBACT;oBACD,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE;wBACL,UAAU,EAAE;4BACV,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,QAAQ,EAAE;4BACR,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,MAAM,EAAE;4BACN;gCACE,KAAK,EAAE;oCACL,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;iCACP;gCACD,MAAM,EAAE,CAAC;6BACV;yBACF;wBACD,IAAI,EAAE,CAAC;qBACR;iBACF;gBACD,YAAY,EAAE;oBACZ,SAAS,EAAE;wBACT,IAAI,EAAE,CAAC;wBACP,KAAK,EAAE,CAAC;qBACT;oBACD,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE;wBACL,UAAU,EAAE;4BACV,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,QAAQ,EAAE;4BACR,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,MAAM,EAAE;4BACN;gCACE,KAAK,EAAE;oCACL,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;iCACP;gCACD,MAAM,EAAE,CAAC;6BACV;yBACF;wBACD,IAAI,EAAE,CAAC;qBACR;iBACF;gBACD,YAAY,EAAE;oBACZ,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;oBACjC,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;oBAClC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;oBAC9B,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;iBAChC;aACF;SACF;KACF;IACD,QAAQ,EAAE;QACR,cAAc,EAAE,KAAK;QACrB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAChC;KACF;IACD,MAAM,EAAE;QACN,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE;YACN,iBAAiB,EAAE,4FAAoB;YACvC,iBAAiB,EAAE,4FAAoB;YACvC,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAC/B;KACF;IACD,QAAQ,EAAE;QACR,cAAc,EAAE,KAAK;QACrB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAC/B;KACF;IACD,QAAQ,EAAE;QACR,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAChC;KACF;IACD,QAAQ,EAAE;QACR,YAAY,EAAE,IAAI;QAClB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAC/B;KACF;IACD,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC5B,cAAc,EAAE;QACd,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,eAAe,EAAE,IAAI;YACrB,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;SAC/B;QACD,IAAI,EAAE,gBAAgB;KACvB;IACD,cAAc,EAAE;QACd,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,SAAS,EAAE,IAAI;YACf,MAAM,EAAE;gBACN,UAAU,EAAE;oBACV,SAAS,EAAE;wBACT,IAAI,EAAE,CAAC;wBACP,KAAK,EAAE,CAAC;qBACT;oBACD,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE;wBACL,UAAU,EAAE;4BACV,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,QAAQ,EAAE;4BACR,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,MAAM,EAAE;4BACN;gCACE,KAAK,EAAE;oCACL,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;iCACP;gCACD,MAAM,EAAE,CAAC;6BACV;yBACF;wBACD,IAAI,EAAE,CAAC;qBACR;iBACF;gBACD,SAAS,EAAE;oBACT,SAAS,EAAE;wBACT,IAAI,EAAE,CAAC;wBACP,KAAK,EAAE,CAAC;qBACT;oBACD,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE;wBACL,UAAU,EAAE;4BACV,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,QAAQ,EAAE;4BACR,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,MAAM,EAAE;4BACN;gCACE,KAAK,EAAE;oCACL,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;iCACP;gCACD,MAAM,EAAE,CAAC;6BACV;yBACF;wBACD,IAAI,EAAE,CAAC;qBACR;iBACF;gBACD,WAAW,EAAE;oBACX,SAAS,EAAE;wBACT,IAAI,EAAE,CAAC;wBACP,KAAK,EAAE,CAAC;qBACT;oBACD,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE;wBACL,UAAU,EAAE;4BACV,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,QAAQ,EAAE;4BACR,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,MAAM,EAAE;4BACN;gCACE,KAAK,EAAE;oCACL,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;iCACP;gCACD,MAAM,EAAE,CAAC;6BACV;yBACF;wBACD,IAAI,EAAE,CAAC;qBACR;iBACF;gBACD,YAAY,EAAE;oBACZ,SAAS,EAAE;wBACT,IAAI,EAAE,CAAC;wBACP,KAAK,EAAE,CAAC;qBACT;oBACD,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE;wBACL,UAAU,EAAE;4BACV,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,QAAQ,EAAE;4BACR,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,MAAM,EAAE;4BACN;gCACE,KAAK,EAAE;oCACL,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;iCACP;gCACD,MAAM,EAAE,CAAC;6BACV;yBACF;wBACD,IAAI,EAAE,CAAC;qBACR;iBACF;gBACD,YAAY,EAAE,IAAI;aACnB;SACF;KACF;IACD,QAAQ,EAAE;QACR,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE;YACN,OAAO,EAAE,UAAU;YACnB,UAAU,EAAE,YAAY;YACxB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;SAC/B;KACF;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAC/B;KACF;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAChC;KACF;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAChC;KACF;IACD,cAAc,EAAE;QACd,OAAO,EAAE,gBAAgB;QACzB,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE;YACN,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAC/B;KACF;IACD,MAAM,EAAE;QACN,OAAO,EAAE,gBAAgB;QACzB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE;YACN,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAC/B;KACF;IACD,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE;YACN,SAAS,EAAE,OAAO;YAClB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAChC;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,MAAM;QACf,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;SAC/B;KACF;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAChC;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;SAC/B;KACF;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAChC;KACF;IACD,KAAK,EAAE;QACL,cAAc,EAAE,KAAK;QACrB,IAAI,EAAE,OAAO;QACb,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAChC;KACF;IACD,UAAU,EAAE;QACV,MAAM,EAAE,YAAY;QACpB,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,aAAa;YAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,SAAS,EAAE,IAAI;YACf,MAAM,EAAE;gBACN,UAAU,EAAE;oBACV,SAAS,EAAE;wBACT,IAAI,EAAE,CAAC;wBACP,KAAK,EAAE,CAAC;qBACT;oBACD,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE;wBACL,UAAU,EAAE;4BACV,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,QAAQ,EAAE;4BACR,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,MAAM,EAAE;4BACN;gCACE,KAAK,EAAE;oCACL,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;iCACP;gCACD,MAAM,EAAE,CAAC;6BACV;yBACF;wBACD,IAAI,EAAE,CAAC;qBACR;iBACF;gBACD,SAAS,EAAE;oBACT,SAAS,EAAE;wBACT,IAAI,EAAE,CAAC;wBACP,KAAK,EAAE,CAAC;qBACT;oBACD,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE;wBACL,UAAU,EAAE;4BACV,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,QAAQ,EAAE;4BACR,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,MAAM,EAAE;4BACN;gCACE,KAAK,EAAE;oCACL,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;iCACP;gCACD,MAAM,EAAE,CAAC;6BACV;yBACF;wBACD,IAAI,EAAE,CAAC;qBACR;iBACF;gBACD,WAAW,EAAE;oBACX,SAAS,EAAE;wBACT,IAAI,EAAE,CAAC;wBACP,KAAK,EAAE,CAAC;qBACT;oBACD,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE;wBACL,UAAU,EAAE;4BACV,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,QAAQ,EAAE;4BACR,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,MAAM,EAAE;4BACN;gCACE,KAAK,EAAE;oCACL,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;iCACP;gCACD,MAAM,EAAE,CAAC;6BACV;yBACF;wBACD,IAAI,EAAE,CAAC;qBACR;iBACF;gBACD,YAAY,EAAE;oBACZ,SAAS,EAAE;wBACT,IAAI,EAAE,CAAC;wBACP,KAAK,EAAE,CAAC;qBACT;oBACD,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE;wBACL,UAAU,EAAE;4BACV,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,QAAQ,EAAE;4BACR,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,MAAM,EAAE;4BACN;gCACE,KAAK,EAAE;oCACL,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;oCACN,CAAC,EAAE,GAAG;iCACP;gCACD,MAAM,EAAE,CAAC;6BACV;yBACF;wBACD,IAAI,EAAE,CAAC;qBACR;iBACF;gBACD,YAAY,EAAE,IAAI;aACnB;SACF;KACF;IACD,YAAY,EAAE;QACZ,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE;YACN,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;SAC/B;KACF;IACD,OAAO,EAAE;QACP,YAAY,EAAE,IAAI;QAClB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAChC;KACF;IACD,UAAU,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE;IACtD,OAAO,EAAE;QACP,YAAY,EAAE,IAAI;QAClB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;SAC/B;KACF;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAChC;KACF;IACD,aAAa,EAAE;QACb,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;SAC/B;KACF;IACD,YAAY,EAAE;QACZ,cAAc,EAAE,KAAK;QACrB,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAChC;KACF;IACD,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE;IACtD,YAAY,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE;IACxD,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;SAChB;KACF;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAChC;KACF;IACD,EAAE,EAAE;QACF,YAAY,EAAE,IAAI;QAClB,IAAI,EAAE,IAAI;QACV,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAChC;KACF;IACD,WAAW,EAAE;QACX,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YACjD,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAC/B;KACF;IACD,SAAS,EAAE;QACT,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAChC;KACF;IACD,gBAAgB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE;IAC5D,SAAS,EAAE;QACT,MAAM,EAAE,iBAAiB;QACzB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAC/B;KACF;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE;YACN,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,GAAG;YACZ,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,sGAA4B;YACzC,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;SAC/B;KACF;IACD,OAAO,EAAE;QACP,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE;gBACR,CAAC,GAAG,EAAE;oBACJ,MAAM,IAAI,GAAG,IAAI,6EAAa,EAAE,CAAC;oBACjC,IAAI,CAAC,WAAW,GAAG,mFAAgB,CAAC;oBACpC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;oBAC1B,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;oBACrB,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,EAAE;aACL;YACD,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAChC;KACF;IACD,GAAG,EAAE;QACH,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,KAAK;QACX,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE;gBACR,GAAG,CAAC,GAAG,EAAE;oBACP,MAAM,KAAK,GAAG,IAAI,6EAAa,EAAE,CAAC;oBAClC,KAAK,CAAC,WAAW,GAAG,mFAAgB,CAAC;oBACrC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC;oBAC3B,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC;oBACxB,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC;oBAC3B,MAAM,KAAK,GAAG,IAAI,6EAAa,EAAE,CAAC;oBAClC,KAAK,CAAC,WAAW,GAAG,mFAAgB,CAAC;oBACrC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC;oBAC3B,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC;oBACxB,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC;oBAC3B,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACxB,CAAC,CAAC,EAAE;aACL;YACD,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAChC;KACF;IACD,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE;YACN,UAAU,EAAE,mFAAiB;YAC7B,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,eAAe,EAAE;gBACf,gBAAgB,EAAE;oBAChB,CAAC,EAAE,EAAE;oBACL,CAAC,EAAE,GAAG;oBACN,CAAC,EAAE,GAAG;oBACN,CAAC,EAAE,GAAG;iBACP;gBACD,gBAAgB,EAAE;oBAChB,CAAC,EAAE,GAAG;oBACN,CAAC,EAAE,IAAI;oBACP,CAAC,EAAE,IAAI;oBACP,CAAC,EAAE,IAAI;iBACR;gBACD,IAAI,EAAE;oBACJ,CAAC,EAAE,GAAG;oBACN,CAAC,EAAE,EAAE;oBACL,CAAC,EAAE,EAAE;oBACL,CAAC,EAAE,EAAE;iBACN;aACF;SACF;KACF;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE;YACN,OAAO,EAAE,mBAAmB;YAC5B,UAAU,EAAE,YAAY;YACxB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;SAC/B;KACF;IACD,UAAU,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;IAClC,QAAQ,EAAE;QACR,MAAM,EAAE,UAAU;QAClB,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,yBAAyB;YACtC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,eAAe,EAAE;gBACf,UAAU,EAAE;oBACV,CAAC,EAAE,CAAC;oBACJ,CAAC,EAAE,GAAG;iBACP;gBACD,QAAQ,EAAE;oBACR,CAAC,EAAE,CAAC;oBACJ,CAAC,EAAE,GAAG;iBACP;gBACD,MAAM,EAAE;oBACN;wBACE,KAAK,EAAE;4BACL,CAAC,EAAE,GAAG;4BACN,CAAC,EAAE,GAAG;4BACN,CAAC,EAAE,GAAG;4BACN,CAAC,EAAE,GAAG;yBACP;wBACD,MAAM,EAAE,CAAC;qBACV;iBACF;gBACD,IAAI,EAAE,CAAC;aACR;SACF;KACF;IACD,WAAW,EAAE;QACX,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;SAC/B;KACF;IACD,QAAQ,EAAE;QACR,MAAM,EAAE,UAAU;QAClB,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAC/B;KACF;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE;YACN,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAC/B;KACF;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,oBAAoB;QAC1B,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;SAC/B;KACF;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;SAChB;KACF;IACD,MAAM,EAAE;QACN,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE;YACN,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,YAAY;YACxB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;SAC/B;KACF;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE;YACN,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;SAC/B;KACF;IACD,KAAK,EAAE;QACL,cAAc,EAAE,KAAK;QACrB,IAAI,EAAE,OAAO;QACb,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SAChC;KACF;CACF,CAAC;;;;;;;;;;;;;;;;;;ACl8BoD;AACC;AAEhD,MAAM,UAAU;IACZ,MAAM,CAAC,iBAAiB,CAAC,KAAK;QACjC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACvE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/D,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IACM,MAAM,CAAC,eAAe,CAAC,KAAK;QAC/B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACvE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAClE,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,EAAE;QAC1B,OAAO,IAAI,OAAO,CAAc,OAAO,CAAC,EAAE;YACtC,6EAA2B,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACrC,MAAM,IAAI,GAAG,EAAE,CAAC;gBAChB,IAAI,CAAC,EAAE;oBACH,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACV,IAAI,CAAC,IAAI,CAAC,IAAI,+DAAS,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChC,CAAC,CAAC,CAAC;iBACN;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;;;;;;;;;;;;;;;;;;;;AC/B2F;IAMnF,qBAAqB,SAArB,qBAAqB;IAS9B;QAPkB,sBAAiB,GAAyB,IAAI,uDAAY,EAAE;QAErC,eAAU,GAAG,MAAM;QACvB,gBAAW,GAAG,YAAY;QACpB,gBAAW,GAAG,SAAS;QACtB,iBAAY,GAAG,KAAK;IAGhE,CAAC;IAGM,UAAU,CAAC,GAAG;QACjB,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAGM,WAAW,CAAC,GAAG;QAClB,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;IACpC,CAAC;IAGM,MAAM,CAAC,GAAG;QACb,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;QAChC,IAAI,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;QACnC,IAAI,WAAW,GAAgB,KAAK,CAAC;QACrC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;;;;gCAtCA,iDAAM;yBAEN,sDAAW,SAAC,kBAAkB;0BAC9B,sDAAW,SAAC,cAAc;0BAC1B,sDAAW,SAAC,oBAAoB;2BAChC,sDAAW,SAAC,qBAAqB;yBAKjC,uDAAY,SAAC,UAAU,EAAE,CAAC,QAAQ,CAAC;0BASnC,uDAAY,SAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;qBASpC,uDAAY,SAAC,MAAM,EAAE,CAAC,QAAQ,CAAC;;AA9BvB,qBAAqB;IAJjC,wDAAS,CAAC;QACP,QAAQ,EAAE,gBAAgB;KAC7B,CAAC;GAEW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNoB;AACqC;AAClC;AACH;AACmB;AACtB;AACU;AACE;AAEX;AACO;AACF;AACV;AACJ;AAES;IAMvC,mBAAmB,SAAnB,mBAAmB;IAC/B,SAAS,CAAC,KAAY,EAAE,MAAc;QACrC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;YACtB,OAAO,KAAK,CAAC;SACb;QACD,OAAO,KAAK,CAAC,MAAM,CAClB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,KAAK,MAAM,CAAC,eAAe,CAAC,CACxD,CAAC;IACH,CAAC;;AARW,mBAAmB;IAJ/B,oDAAI,CAAC;QACL,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,KAAK;KACX,CAAC;GACW,mBAAmB;AAAA;IAenB,iBAAiB,SAAjB,iBAAiB;IAC7B,SAAS,CAAC,KAAY,EAAE,MAAc;QACrC,IAAI,CAAC,MAAM,EAAE;YACZ,OAAO,KAAK,CAAC;SACb;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAC5B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CACxE,CAAC;IACH,CAAC;;AARW,iBAAiB;IAJ7B,oDAAI,CAAC;QACL,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,KAAK;KACX,CAAC;GACW,iBAAiB;AAAA;IAcjB,aAAa,SAAb,aAAa;IACzB,SAAS,CAAC,KAAY,EAAE,MAAe,EAAE,OAAe;QACvD,IAAI,CAAC,MAAM,EAAE;YACZ,OAAO,KAAK,CAAC,MAAM,CAClB,CAAC,KAAK,EAAE,EAAE,CACT,KAAK,CAAC,IAAI,CAAC,aAAa;gBACxB,kDAAkD,CACnD,CAAC;SACF;QACD,OAAO,KAAK,CAAC;IACd,CAAC;;AAVW,aAAa;IAJzB,oDAAI,CAAC;QACL,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,IAAI;KACV,CAAC;GACW,aAAa;AAAA;IAgBb,YAAY,SAAZ,YAAY;IACxB,SAAS,CAAC,KAAU;QACnB,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE;YAC3B,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SAC5C;QACD,OAAO,IAAI,CAAC;IACb,CAAC;;AANW,YAAY;IAJxB,oDAAI,CAAC;QACL,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,IAAI;KACV,CAAC;GACW,YAAY;AAAA;AASlB,MAAM,YAAY;IACjB,MAAM,CAAC,gBAAgB,CAAC,cAAc;QAC5C,IAAI,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAChE,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACzC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;oBAC9B,KAAK,GAAG,IAAI,CAAC;iBACb;YACF,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,EAAE;gBACX,MAAM,MAAM,GAAG,IAAI,qEAAa,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;gBACxB,MAAM,CAAC,QAAQ,GAAG,0EAAiB,CAAC;gBACpC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;gBACjB,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACpC;SACD;aAAM;YACN,cAAc,CAAC,OAAO,GAAG,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,qEAAa,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;YACxB,MAAM,CAAC,QAAQ,GAAG,0EAAiB,CAAC;YACpC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;YACjB,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACpC;IACF,CAAC;IACM,MAAM,CAAC,eAAe,CAAC,cAAc,EAAE,YAAY;QACzD,IAAI,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAChE,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACzC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChD,YAAY,CAAC,eAAe,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;iBACnE;qBAAM;oBACN,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,EAAE;wBACtC,KAAK,GAAG,IAAI,CAAC;wBACb,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;wBACxC,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;wBAClC,IACC,YAAY,CAAC,QAAQ,KAAK,yEAAgB;4BAC1C,YAAY,CAAC,QAAQ,KAAK,4EAAmB,EAC5C;4BACD,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;yBACpC;qBACD;iBACD;YACF,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,EAAE;gBACX,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aAC1C;SACD;aAAM;YACN,cAAc,CAAC,OAAO,GAAG,EAAE,CAAC;YAC5B,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC1C;IACF,CAAC;IACM,MAAM,CAAC,uBAAuB,CAAC,cAAc,EAAE,YAAY;QACjE,IAAI,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAChE,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACzC,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,EAAE;oBACtC,KAAK,GAAG,IAAI,CAAC;oBACb,IAAI,MAAM,CAAC,KAAK,KAAK,YAAY,CAAC,KAAK,EAAE;wBACxC,OAAO,GAAG,IAAI,CAAC;qBACf;oBACD,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,EAAE;wBAC1C,OAAO,GAAG,IAAI,CAAC;qBACf;iBACD;YACF,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,EAAE;gBACX,OAAO,GAAG,IAAI,CAAC;aACf;YACD,OAAO,OAAO,CAAC;SACf;aAAM;YACN,OAAO,IAAI,CAAC;SACZ;IACF,CAAC;IACM,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK;QAC1C,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE;YACtD,OAAO,IAAI,CAAC;SACZ;QACD,IACC,MAAM,CAAC,OAAO;YACd,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACzB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EACjE;YACD,OAAO,IAAI,CAAC;SACZ;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IACM,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO;QACtD,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE;YAC3B,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC;SACvB;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE;YAC5B,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;SACxB;QACD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAChD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC5B,YAAY,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;SACH;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IACM,MAAM,CAAC,aAAa,CAAC,iBAAiB;QAC5C,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;QAE7C,MAAM,MAAM,GAAG,IAAI,uEAAc,EAAE,CAAC;QACpC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;QACpB,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;QAEpB,IAAI,iBAAiB,EAAE;YACtB,IAAI,UAAU,CAAC;YACf,IAAI,iBAAiB,CAAC,YAAY,EAAE;gBACnC,UAAU,GAAG,iBAAiB,CAAC,YAAY,CAAC;aAC5C;iBAAM,IAAI,iBAAiB,CAAC,UAAU,EAAE;gBACxC,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC;aAC1C;iBAAM,IAAI,iBAAiB,CAAC,MAAM,EAAE;gBACpC,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC;aACtC;YAED,IAAI,UAAU,EAAE;gBACf,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBACxD,MAAM,MAAM,GAAG,IAAI,mEAAqB,EAAE,CAAC;oBAC3C,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,0FAAyB,CAAC,CAAC;oBACnD,MAAM,UAAU,GAAG,IAAI,mGAA0B,CAChD,KAAK,EACL,YAAY,CAAC,YAAY,CAAC,iBAAiB,CAAC,EAC5C,IAAI,GAAG,EAAE,CACT,CAAC;oBACF,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;wBAChC,MAAM,GAAG,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;4BACtD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;4BAChC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACpC,IAAI,MAAM,EAAE;gCACX,OAAO,MAAM,CAAC,KAAK,CAAC;6BACpB;4BACD,OAAO,KAAK,CAAC;wBACd,CAAC,CAAC,CAAC;wBACH,IAAI,GAAG,EAAE;4BACR,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;yBACzB;oBACF,CAAC,CAAC,CAAC;iBACH;gBACD,IAAI,UAAU,CAAC,OAAO,EAAE;oBACvB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;iBAC3C;aACD;SACD;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IACM,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM;QAC7C,MAAM,MAAM,GAAG;YACd,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,EAAE;SACb,CAAC;QACF,MAAM,IAAI,GAAG,wEAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACxB,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE;oBACjC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;iBAC5C;YACF,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;SAC3B;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IACM,MAAM,CAAC,YAAY,CAAC,OAAO;QACjC,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE;YACjC,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;SACrC;QACD,SAAS,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5D,OAAO,SAAS,CAAC;IAClB,CAAC;IACO,MAAM,CAAC,kBAAkB,CAAC,OAAO;QACxC,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,2FAAqC,EAAE,CAAC;QACvD,IAAI,MAAM,EAAE;YACX,MAAM,MAAM,GAAG,gEAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACtD,IAAI,MAAM,EAAE;gBACX,IAAI,MAAM,CAAC,SAAS,EAAE;oBACrB,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;iBACpC;gBACD,SAAS,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;aAC3D;SACD;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IACM,MAAM,CAAC,kBAAkB;QAC/B,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,kFAAgC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;gBACrD,MAAM,MAAM,GAAG,EAAE,CAAC;gBAClB,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oBACtC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;wBACvB,MAAM,IAAI,GAAG,IAAI,4DAAQ,EAAE,CAAC;wBAC5B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC;wBACvB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;wBACnB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;wBACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnB,CAAC,CAAC,CAAC;iBACH;gBACD,OAAO,CAAC,MAAM,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACb,CAAC;IACM,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,eAAe;QACrD,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,OAAO,EAAE;YACnB,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC5B,MAAM,GAAG,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;gBAC9D,IAAI,GAAG,EAAE;oBACR,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBAClB;YACF,CAAC,CAAC,CAAC;YACH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvB,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;aACzB;iBAAM;gBACN,MAAM,GAAG,IAAI,CAAC;aACd;SACD;aAAM,IAAI,MAAM,CAAC,KAAK,EAAE;YACxB,MAAM,CAAC,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,MAAM,CAAC,UAAU,EAAE;gBACtB,IACC,MAAM,CAAC,KAAK,IAAI,IAAI;oBACpB,MAAM,CAAC,KAAK,KAAK,EAAE;oBACnB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,EACzD;oBACD,MAAM,GAAG,IAAI,CAAC;iBACd;aACD;YACD,IACC,MAAM,CAAC,QAAQ,KAAK,yEAAgB;gBACpC,MAAM,CAAC,QAAQ,KAAK,4EAAmB,EACtC;gBACD,IAAI,MAAM,CAAC,MAAM,EAAE;oBAClB,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC/C,IAAI,MAAM,CAAC,UAAU,EAAE;wBACtB,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE;4BAClD,MAAM,GAAG,IAAI,CAAC;yBACd;qBACD;iBACD;aACD;SACD;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,WAAW,CACxB,OAAuB,EACvB,IAAW,EACX,OAAc,IAAI;QAElB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7D,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;aACvE;iBAAM;gBACN,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;aACrB;SACD;QACD,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAgB,EAAE,EAAE;gBACjC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBAC7B,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;wBAC9B,OAAO,GAAG,CAAC,KAAK,IAAI,+DAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBACvC;oBACD,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;wBAC9B,OAAO,GAAG,CAAC,KAAK,IAAI,+DAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBACvC;oBACD,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;wBAC/B,OAAO,CAAC,CAAC;qBACT;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;SACH;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IACM,MAAM,CAAC,gBAAgB,CAC7B,OAAwB,EACxB,IAAW,EACX,OAAsB,IAAI;QAE1B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;aACpE;iBAAM;gBACN,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;aACrB;SACD;QACD,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACpB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBAC7B,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;wBACxC,OAAO,GAAG,CAAC,KAAK,IAAI,+DAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBACvC;oBACD,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;wBACxC,OAAO,GAAG,CAAC,KAAK,IAAI,+DAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBACvC;oBACD,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;wBACzC,OAAO,CAAC,CAAC;qBACT;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;SACH;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAEO,MAAM,CAAC,QAAQ,CAAC,OAAwB,EAAE,IAAS;QAC1D,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,IAAI,IAAI,EAAE;YACT,GAAG,GAAG,IAAI,CAAC;YACX,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,KAAK,iEAAS,EAAE;oBAC5C,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;wBACxB,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;4BACtC,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;yBAC9C;6BAAM;4BACN,OAAO,YAAY,CAAC,WAAW,CAC9B,CAAC,CAAC,IAAI,EACN,CAAC,CAAC,QAAQ,EACV,CAAC,CAAC,KAAK,EACP,CAAC,CAAC,MAAM,EACR,IAAI,CACJ,CAAC;yBACF;oBACF,CAAC,CAAC,CAAC;iBACH;qBAAM;oBACN,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;wBAClB,IAAI,SAAS,CAAC;wBACd,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;4BACtC,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;yBACnD;6BAAM;4BACN,SAAS,GAAG,YAAY,CAAC,WAAW,CACnC,CAAC,CAAC,IAAI,EACN,CAAC,CAAC,QAAQ,EACV,CAAC,CAAC,KAAK,EACP,CAAC,CAAC,MAAM,EACR,IAAI,CACJ,CAAC;yBACF;wBACD,IAAI,CAAC,SAAS,EAAE;4BACf,GAAG,GAAG,KAAK,CAAC;4BACZ,OAAO,IAAI,CAAC;yBACZ;wBACD,OAAO,KAAK,CAAC;oBACd,CAAC,CAAC,CAAC;iBACH;aACD;SACD;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IAEO,MAAM,CAAC,WAAW,CACzB,IAAY,EACZ,QAAkB,EAClB,KAAU,EACV,MAAW,EACX,IAAS;QAET,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,QAAQ,QAAQ,EAAE;YACjB,KAAK,uEAAc;gBAClB,OAAO,GAAG,KAAK,KAAK,CAAC;YACtB,KAAK,yEAAgB;gBACpB,OAAO,GAAG,GAAG,KAAK,CAAC;YACpB,KAAK,8EAAqB;gBACzB,OAAO,GAAG,IAAI,KAAK,CAAC;YACrB,KAAK,oEAAW;gBACf,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,KAAK,sEAAa;gBACjB,OAAO,CACN,OAAO,GAAG,KAAK,QAAQ;oBACvB,OAAO,KAAK,KAAK,QAAQ;oBACzB,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CACnD,CAAC;YACH,KAAK,yEAAgB;gBACpB,OAAO,CACN,OAAO,GAAG,KAAK,QAAQ;oBACvB,OAAO,KAAK,KAAK,QAAQ;oBACzB,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CACpD,CAAC;YACH,KAAK,0EAAiB;gBACrB,OAAO,GAAG,KAAK,KAAK,CAAC;YACtB,KAAK,uEAAc;gBAClB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1D,KAAK,yEAAgB;gBACpB,OAAO,GAAG,GAAG,KAAK,CAAC;YACpB,KAAK,8EAAqB;gBACzB,OAAO,GAAG,IAAI,KAAK,CAAC;YACrB,KAAK,yEAAgB;gBACpB,OAAO,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC;YACtC,KAAK,4EAAmB;gBACvB,OAAO,GAAG,GAAG,KAAK,IAAI,MAAM,GAAG,GAAG,CAAC;YACpC;gBACC,OAAO,KAAK,CAAC;SACd;IACF,CAAC;;;;;;;;;;;;;;;;;;;;AC3d4D;IAKjD,oBAAoB,SAApB,oBAAoB;IAE/B,YAAoB,EAAc;QAAd,OAAE,GAAF,EAAE,CAAY;QAChC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;SACnD;IACH,CAAC;IAED,QAAQ;QACN,MAAM,KAAK,GAAqB,IAAI,CAAC,EAAE,CAAC,aAAiC,CAAC;QAC1E,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,KAAK,CAAC,MAAM,EAAE,CAAC;IACjB,CAAC;;;;;AAZU,oBAAoB;IAHhC,wDAAS,CAAC;QACT,QAAQ,EAAE,eAAe;KAC1B,CAAC;GACW,oBAAoB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACLsF;AAChD;AACR;AACU;AACF;AACJ;AACpB;AACK;AAE7C,MAAM,qBAAqB;IAGtB,MAAM,CAAC,gBAAgB,CAAC,OAAe,EAAE,WAAqB;QAClE,IAAI,MAAM,GAAG,OAAO,CAAC;QACrB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;YAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBACpC,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aACzC;SACJ;QACD,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,IAAI,YAAY,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;gBAChF,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;oBACpB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC9B,MAAM;iBACT;qBAAM;oBACH,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAClC,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG;wBAC9D,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,EAAE;wBAChE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC9B,MAAM;qBACT;iBACJ;aACJ;YACD,QAAQ,OAAO,CAAC,CAAC,CAAC,EAAE;gBAChB,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG;oBACJ,IAAI,CAAC,KAAK,EAAE;wBACR,YAAY,EAAE,CAAC;qBAClB;oBACD,MAAM;gBACV,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG;oBACJ,IAAI,CAAC,KAAK,EAAE;wBACR,YAAY,EAAE,CAAC;qBAClB;oBACD,MAAM;gBACV,KAAK,GAAG;oBACJ,KAAK,GAAG,CAAC,KAAK,CAAC;oBACf,MAAM;gBACV,KAAK,IAAI;oBACL,IAAI,CAAC,KAAK,EAAE;wBACR,KAAK,GAAG,CAAC,KAAK,CAAC;qBAClB;oBACD,MAAM;aACb;SACJ;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,MAA8B,EAAE,IAAmB;QAC3E,MAAM,GAAG,GAAG,IAAI,qFAAsB,EAAE,CAAC;QACzC,GAAG,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;QACnC,GAAG,CAAC,IAAI,GAAG,yFAAyB,CAAC;QACrC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACvB,OAAO,GAAG,CAAC;IACf,CAAC;IAED,KAAK,CAAC,OAAe;QACjB,IAAI,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/C,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,aAAa,KAAK,gFAAkB,EAAE;YAC3E,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5B,MAAM,CAAC,IAAI,GAAG,yFAAyB,CAAC;gBACxC,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,oFAAsB,CAAC;aAC3D;iBAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aAC/B;SACJ;QACD,MAAM,CAAC,UAAU,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,YAAY,CAAC,SAAqC,EAAE,IAAsB;QACtE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAoC,CAAC;QACzD,QAAQ,IAAI,EAAE;YACV,KAAK,0FAAyB;gBAC1B,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC;oBACzB,IAAI,CAAC,CAAC,QAAQ,EAAE;wBACZ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;qBAChD;gBACL,CAAC,CAAC,CAAC;gBACH,MAAM;YACV,KAAK,8FAA6B;gBAC9B,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC;oBACzB,IAAI,CAAC,CAAC,IAAI,EAAE;wBACR,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;qBAC5C;gBACL,CAAC,CAAC,CAAC;gBACH,MAAM;SACb;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;IAEO,gBAAgB,CAAC,OAAe,EAAE,KAAa;QACnD,IAAI,MAAM,GAAG,IAAI,qFAAsB,EAAE,CAAC;QAC1C,IAAI,KAAK,GAAG,GAAG,EAAE;YACb,MAAM,wFAA0C,CAAC,+CAA+C,CAAC,CAAC;SACrG;QACD,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,SAAS,GAAG,EAAE,CAAC;YACnB,QAAQ,SAAS,EAAE;gBACf,KAAK,GAAG;oBACJ,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC/B,SAAS;gBACb,KAAK,GAAG;oBACJ,UAAU,GAAG,IAAI,CAAC;oBAClB,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC5B,IAAI,MAAM,CAAC,IAAI,KAAK,yFAAyB,EAAE;4BAC3C,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,oFAAsB,CAAC;4BACxD,MAAM,CAAC,IAAI,GAAG,yFAAyB,CAAC;yBAC3C;6BAAM,IAAI,MAAM,CAAC,SAAS,CAAC,aAAa,KAAK,oFAAsB,EAAE;4BAClE,MAAM,GAAG,qBAAqB,CAAC,YAAY,CAAC,MAAM,EAAE,oFAAsB,CAAC,CAAC;yBAC/E;qBACJ;oBACD,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAClD,SAAS;gBACb,KAAK,GAAG;oBACJ,SAAS,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;oBACpG,IAAI,MAAM,CAAC,IAAI,KAAK,yFAAyB,EAAE;wBAC3C,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,oFAAsB,CAAC;wBACxD,MAAM,CAAC,IAAI,GAAG,yFAAyB,CAAC;qBAC3C;yBAAM,IAAI,MAAM,CAAC,SAAS,CAAC,aAAa,KAAK,oFAAsB,EAAE;wBAClE,MAAM,GAAG,qBAAqB,CAAC,YAAY,CAAC,MAAM,EAAE,oFAAsB,CAAC,CAAC;qBAC/E;oBACD,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;oBAC3C,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAClD,MAAM;gBACV,KAAK,GAAG;oBACJ,SAAS,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC9G,IAAI,MAAM,CAAC,IAAI,KAAK,yFAAyB,EAAE;wBAC3C,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,oFAAsB,CAAC;wBACxD,MAAM,CAAC,IAAI,GAAG,yFAAyB,CAAC;wBACxC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;qBAC9C;yBAAM,IAAI,MAAM,CAAC,SAAS,CAAC,aAAa,KAAK,oFAAsB,EAAE;wBAClE,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,oFAAsB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;qBACpF;yBAAM;wBACH,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;qBAC9C;oBACD,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAClD,MAAM;gBACV,KAAK,GAAG;oBACJ,SAAS,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC9G,IAAI,MAAM,CAAC,IAAI,KAAK,yFAAyB,EAAE;wBAC3C,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,0FAA4B,CAAC;wBAC9D,MAAM,CAAC,IAAI,GAAG,yFAAyB,CAAC;wBACxC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;qBAC9C;yBAAM,IAAI,MAAM,CAAC,SAAS,CAAC,aAAa,KAAK,0FAA4B,EAAE;wBACxE,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,0FAA4B,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;qBAC1F;yBAAM;wBACH,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;qBAC9C;oBACD,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAClD,MAAM;gBACV,KAAK,GAAG;oBACJ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;wBAC1C,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,oFAAwB,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;qBACrF;yBAAM;wBACH,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,+EAAmB,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;qBAChF;oBACD,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM;gBACV,KAAK,GAAG;oBACJ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;wBAC1C,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,oFAAwB,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;qBACrF;yBAAM,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;wBACjD,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,gFAAoB,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;qBACjF;yBAAM;wBACH,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,+EAAmB,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;qBAChF;oBACD,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM;gBACV,KAAK,GAAG;oBACJ,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,6EAAiB,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;oBAC3E,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM;gBACV,KAAK,GAAG;oBACJ,SAAS,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;oBAChF,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;oBAC3C,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAClD,IAAI,UAAU,EAAE;wBACZ,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,cAAc,GAAG,UAAU,CAAC;qBAC3E;oBACD,MAAM;gBACV,KAAK,GAAG;oBACJ,SAAS,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC3G,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;oBACtC,MAAM,MAAM,GAAG,IAAI,qFAAsB,EAAE,CAAC;oBAC5C,MAAM,CAAC,cAAc,GAAG,UAAU,CAAC;oBACnC,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC;oBAC3B,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC;oBAC/B,MAAM,CAAC,UAAU,GAAG,YAAY,CAAC;oBACjC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC;oBAC9B,MAAM,CAAC,IAAI,GAAG,8FAA8B,CAAC;oBAC7C,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBAC9C,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAC1B,MAAM;gBACV;oBACI,SAAS,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;oBACnE,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;oBACrD,MAAM,UAAU,GAAG,2FAA4B,CAAC,aAAa,CAAC,CAAC;oBAC/D,IAAI,UAAU,EAAE;wBACZ,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBAClD,IAAI,KAAK,GAAG,MAAM,CAAC;wBACnB,IAAI,MAAM,CAAC,IAAI,KAAK,yFAAyB,EAAE;4BAC3C,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,gFAAkB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;yBAC1E;wBACD,IAAI,UAAU,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;wBACxE,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC;wBACvC,IAAI,aAAa,KAAK,KAAK,EAAE;4BACzB,KAAK,CAAC,SAAS,CAAC,aAAa,GAAG,kFAAoB,CAAC;4BACrD,KAAK,CAAC,SAAS,CAAC,eAAe,GAAG,mFAAmB,CAAC;yBACzD;6BAAM,IAAI,aAAa,KAAK,IAAI,EAAE;4BAC/B,KAAK,CAAC,SAAS,CAAC,aAAa,GAAG,kFAAoB,CAAC;4BACrD,KAAK,CAAC,SAAS,CAAC,eAAe,GAAG,kFAAkB,CAAC;yBACxD;6BAAM;4BACH,KAAK,CAAC,SAAS,CAAC,aAAa,GAAG,oFAAsB,CAAC;4BACvD,KAAK,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,CAAC;yBAC7C;wBACD,KAAK,CAAC,IAAI,GAAG,yFAAyB,CAAC;wBAEvC,OAAO,IAAI,EAAE;4BACT,MAAM,OAAO,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;4BAC1E,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;4BAC/C,IAAI,UAAU,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE;gCACtC,MAAM;6BACT;4BACD,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;yBACzD;wBACD,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;wBAC9C,MAAM,CAAC,cAAc,GAAG,UAAU,CAAC;qBACtC;yBAAM;wBACH,MAAM,GAAG,GAAG,IAAI,qFAAsB,EAAE,CAAC;wBACzC,GAAG,CAAC,cAAc,GAAG,UAAU,CAAC;wBAChC,SAAS,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;wBAC3G,IAAI,gBAAgB,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;wBACxC,IAAI,SAAS,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,EAAE;4BACtC,KAAK,IAAI,CAAC,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;gCACnD,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;oCAC7B,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oCACvE,MAAM;iCACT;6BACJ;4BACD,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;4BACzC,GAAG,CAAC,IAAI,GAAG,qFAAqB,CAAC;yBACpC;6BAAM;4BACH,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gCACtB,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;oCACtF,GAAG,CAAC,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oCACxE,GAAG,CAAC,IAAI,GAAG,yFAAyB,CAAC;iCACxC;qCAAM;oCACH,MAAM,wFAA0C,CAAC,2BAA2B,CAAC,CAAC;iCACjF;6BACJ;iCAAM,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;gCAC9B,GAAG,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gCAClF,GAAG,CAAC,IAAI,GAAG,yFAAyB,CAAC;6BACxC;iCAAM,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE;gCAC3C,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;gCACrB,GAAG,CAAC,IAAI,GAAG,yFAAyB,CAAC;6BACxC;iCAAM,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;gCAC5C,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;gCACtB,GAAG,CAAC,IAAI,GAAG,yFAAyB,CAAC;6BACxC;iCAAM;gCACH,GAAG,CAAC,IAAI,GAAG,wFAAwB,CAAC;gCACpC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;6BACtC;yBACJ;wBACD,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;wBAC9C,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;qBAC1B;oBACD,MAAM;aACb;YACD,UAAU,GAAG,KAAK,CAAC;SACtB;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,oFAAoB,IAAI,MAAM,CAAC,SAAS,CAAC,aAAa,KAAK,gFAAkB,EAAE;YAC7H,MAAM,CAAC,IAAI,GAAG,yFAAyB,CAAC;YACxC,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,oFAAsB,CAAC;SAC3D;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,WAAW,CAAC,OAAe,EAAE,MAA8B,EAAE,KAAa;QAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACvD,IAAI,IAAI,CAAC,IAAI,KAAK,oFAAoB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YAClE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;SACvC;aAAM;YACH,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC3B;IACL,CAAC;IAEO,gBAAgB,CAAC,MAA8B,EAAE,IAAmB,EAAE,OAAe,EAAE,KAAa;QACxG,MAAM,GAAG,GAAG,IAAI,qFAAsB,EAAE,CAAC;QACzC,GAAG,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;QACnC,GAAG,CAAC,IAAI,GAAG,yFAAyB,CAAC;QACrC,QAAQ,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE;YACpC,KAAK,mFAAqB,CAAC;YAC3B,KAAK,uFAAyB,CAAC;YAC/B,KAAK,oFAAsB;gBACvB,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC5D,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACvB,IAAI,OAAO,IAAI,IAAI,EAAE;oBACjB,OAAO,GAAG,CAAC;iBACd;gBACD,MAAM;YACV,KAAK,oFAAsB,CAAC;YAC5B,KAAK,0FAA4B,CAAC;YAClC,KAAK,oFAAsB;gBACvB,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACvB,MAAM,GAAG,GAAG,CAAC;gBACb,MAAM;SACb;QACD,IAAI,OAAO,IAAI,IAAI,EAAE;YACjB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;SACzC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,cAAc,CAAC,OAAe,EAAE,MAA8B,EAAE,EAAe,EAAE,MAAc,EAAE,KAAa;QAElH,IAAI,MAAM,CAAC,IAAI,KAAK,yFAAyB,EAAE;YAC3C,MAAM,CAAC,IAAI,GAAG,yFAAyB,CAAC;YACxC,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,mFAAqB,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,EAAE,CAAC;SACrC;aAAM,IAAI,MAAM,CAAC,SAAS,CAAC,aAAa,KAAK,mFAAqB,EAAE;YACjE,MAAM,GAAG,qBAAqB,CAAC,YAAY,CAAC,MAAM,EAAE,mFAAqB,CAAC,CAAC;YAC3E,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,EAAE,CAAC;SACrC;QACD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,OAA+B,EAAE,YAAoB;QAChE,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;YAC9D,IAAI,MAAM,EAAE;gBACR,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC3B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACnC,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;gBACvC,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC;aAC3C;iBAAM;gBACH,MAAM,+DAAmB,CAAC,wFAA0C,CAAC,gCAAgC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;aAC3H;SACJ;aAAM;YACH,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;YAC5B,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC;YAChC,OAAO,CAAC,UAAU,GAAG,YAAY,CAAC;YAClC,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC;SAClC;IACL,CAAC;;;;;;;;;;;;;;;;;;;;;;AC9WgE;AACrB;AACK;AACF;AAE5C,MAAM,SAAS;IAGX,MAAM,KAAK,aAAa;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IACM,MAAM,KAAK,cAAc;QAC5B,OAAO,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChE,CAAC;IAQO,MAAM,CAAC,WAAW,CAAC,KAAwB;QAE/C,OAAQ;IACZ,CAAC;IACM,MAAM,CAAC,UAAU;QACpB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,MAAM,IAAI,GAAG,iFAAmC,CAAa,4DAAU,CAAC,CAAC;YACzE,SAAS,CAAC,OAAO,GAAG,IAAI,6DAAU,CAAC,IAAI,CAAC,CAAC;YAEzC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBACjD,SAAS,CAAC,QAAQ,GAAG,MAAM,CAAC;gBAC5B,OAAO,CAAC,MAAM,CAAC,CAAC;gBAChB,IAAI,MAAM,EAAE;oBACR,SAAS,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;wBAC5C,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;4BACvC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;wBAClC,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC;iBACL;YACL,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;gBACP,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC3B,OAAO,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC,CAAC,CAAC;YACH,IAAI,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAC5D,IAAI,UAAU,EAAE;gBACZ,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACpC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACjD;YACD,SAAS,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC7C,IAAI,KAAK,IAAI,IAAI,EAAE;oBACf,YAAY,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;iBACjD;qBAAM,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,IAAI,KAAK,IAAI,WAAW,CAAC,EAAE;oBAC9D,YAAY,CAAC,OAAO,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;iBACrE;YACL,CAAC,CAAC;QACN,CAAC,CAAC;IACN,CAAC;IACO,MAAM,CAAC,WAAW;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC9C,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAC9B,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBACjC,IAAI,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBAC1D,IAAI,MAAM,IAAI,IAAI,EAAE;wBAChB,SAAS,CAAC,cAAc,GAAG,MAAM,CAAC;qBACrC;iBACJ;gBACD,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;IACN,CAAC;IACO,MAAM,CAAC,eAAe;QAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gBAChD,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC/B,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3B,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBACrD,IAAI,IAAI,IAAI,IAAI,EAAE;wBACd,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;qBAC9B;iBACJ;gBACD,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1C,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;IACN,CAAC;;AAjFa,kBAAQ,GAAG,KAAK,CAAC;AACjB,kBAAQ,GAAG,EAAE,CAAC;AAOd,yBAAe,GAAiB,IAAI,yCAAO,EAAO,CAAC;AAEnD,sBAAY,GAAG,EAAE,CAAC;AAClB,6BAAmB,GAAiB,IAAI,yCAAO,EAAO,CAAC;AAEvD,sBAAY,GAAG,KAAK,CAAC;AAqErB,wBAAc,GAAyB,IAAI,iDAAe,CAAC,WAAW,CAAC,CAAC;AACxE,4BAAkB,GAAyB,IAAI,iDAAe,CAAC,IAAI,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;ACzF1B;AACU;AACJ;AAC8B;AAClC;AACZ;AAEnD,WAAW;AACJ,MAAM,iBAAiB;IAMnB,MAAM,CAAC,gBAAgB,CAAC,MAAM;QACjC,iBAAiB,CAAC,WAAW,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;QACrE,iBAAiB,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC3C,iBAAiB,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,mBAAmB,EACzE,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,oFAAmB,CAAC,CAAC;QAEtD,iBAAiB,CAAC,WAAW,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,CAAC;QAChF,iBAAiB,CAAC,8BAA8B,GAAG,EAAE,CAAC;QACtD,iBAAiB,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;IACtG,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,MAAM;QAC/B,iBAAiB,CAAC,WAAW,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;QACzE,iBAAiB,CAAC,uBAAuB,GAAG,EAAE,CAAC;QAC/C,iBAAiB,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,uBAAuB,EAC7E,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,oFAAmB,CAAC,CAAC;QAEtD,iBAAiB,CAAC,WAAW,CAAC,iBAAiB,CAAC,kCAAkC,CAAC,CAAC;QACpF,iBAAiB,CAAC,kCAAkC,GAAG,EAAE,CAAC;QAC1D,iBAAiB,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC;IAC1G,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,SAAS;QAChC,IAAI,SAAS,EAAE;YACX,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpC,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBACjB,SAAS,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;gBACjC,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAEO,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa;QAC5E,IAAI,SAAS,EAAE;YACX,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxB,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC7C,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;oBACtE,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;wBACvC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;4BAC3D,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gCAC9B,QAAQ,MAAM,CAAC,UAAU,EAAE;oCACvB,KAAK,wFAAwB;wCACzB,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;wCACjF,IAAI,EAAE,EAAE;4CACJ,MAAM,MAAM,GAAG,IAAI,2EAAc,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;4CACrD,uFAA0B,CAAC,iGAAyC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;4CACxF,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;4CAClD,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;4CAC9B,MAAM,MAAM,GAAG,IAAI,qEAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;4CACnD,MAAM,CAAC,cAAc,EAAE,CAAC;4CACxB,MAAM;yCACT;wCACD,MAAM;oCACV,KAAK,wFAAwB;wCACzB,MAAM,CAAC,GAAG,+EAAiC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;wCACnG,IAAI,CAAC,EAAE;4CACH,IAAI,KAAK,CAAC,KAAK,EAAE;gDACb,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;gDACf,yEAA2B,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;6CAC1C;iDAAM;gDACH,KAAK;6CACR;yCACJ;wCACD,MAAM;iCACb;4BACL,CAAC,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;qBACN;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAEO,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM;QAClD,IAAI,MAAM,CAAC,YAAY,EAAE;YACrB,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAC5B,IAAI,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;gBACtD,IAAI,CAAC,QAAQ,EAAE;oBACX,QAAQ,GAAG;wBACP,EAAE,EAAE,CAAC,CAAC,OAAO;wBACb,QAAQ,EAAE,EAAE;qBACf,CAAC;oBACF,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC5B;gBACD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;YACH,iBAAiB,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,oFAAmB,CAAC,CAAC;SAC9F;IACL,CAAC;;;;;;;;;;;;;;;;;;;;ACpGL,WAAW;AACJ,MAAM,cAAc;;AAG3B,WAAW;AACJ,MAAM,YAAY;;AAGzB,WAAW;AACJ,MAAM,eAAe;;AAG5B,WAAW;AACJ,MAAM,aAAa;;;;;;;;;;;;;;;;;;ACjBK;AAExB,MAAM,eAAe;IAIxB;QAHA,aAAQ,GAAG,IAAI,CAAC;QAChB,YAAO,GAAG,EAAE,CAAC;QACb,aAAQ,GAAG,IAAI,yCAAO,EAAO,CAAC;QAE1B,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC,EAAE;YAC/C,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACpB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC/D,IAAI,MAAM,IAAI,MAAM,CAAC,cAAc,KAAK,KAAK,CAAC,cAAc,EAAE;oBAC1D,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;oBAC7C,MAAM,GAAG,IAAI,CAAC;iBACjB;YACL,CAAC,CAAC,CAAC;YACH,IAAI,MAAM,EAAE;gBACR,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC5B;QACL,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;;;;;;;;;;;;;;;;;;;;ACpBL,oCAAoC;AACO;AACJ;AAyCvC,mEAAmE;AACnE,KAAK;AACL,iHAAiH;AACjH,IAAI,OAAO,GAAG;IACZ,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,aAAa;IACrB,QAAQ,EAAE,YAAY;IACtB,KAAK,EAAE,IAAI;IACX,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,KAAK;CACX,CAAC;AAEF,yFAAyF;AACzF,yEAAyE;AACzE,IAAI,SAAS,GAAG;IACd,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,QAAQ;IACb,IAAI,EAAE,WAAW;IACjB,GAAG,EAAE,QAAQ;IACb,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,YAAY;IACnB,EAAE,EAAE,SAAS;CACd,CAAC;IAGW,iBAAiB,SAAjB,iBAAiB;IAM5B,+CAA+C;IAC/C,YAAY,IAAY;QA2GxB,qFAAqF;QAC7E,wBAAmB,GAAG,CAAC,KAAoB,EAAQ,EAAE;YAE3D,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,OAAgB,CAAC;YAErB,2DAA2D;YAC3D,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;gBAEnC,IAAI,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBAEpC,wEAAwE;oBACxE,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,MAAM,EAAE;wBAEpC,gEAAgE;wBAChE,oEAAoE;wBACpE,kEAAkE;wBAClE,gCAAgC;wBAChC,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAC/B,GAAmB,EAAE;4BAEnB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;wBAE1B,CAAC,CACF,CAAC;wBAEF,kEAAkE;wBAClE,kEAAkE;wBAClE,IAAI,MAAM,KAAK,KAAK,EAAE;4BAEpB,OAAO;4BAEP,iEAAiE;4BACjE,sEAAsE;yBACvE;6BAAM,IAAI,MAAM,KAAK,IAAI,EAAE;4BAE1B,SAAS;yBAEV;qBAEF;oBAED,8DAA8D;oBAC9D,IAAI,QAAQ,CAAC,QAAQ,KAAK,OAAO,EAAE;wBAEjC,OAAO;qBAER;iBAEF;gBAED,4EAA4E;gBAC5E,0CAA0C;gBAC1C,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE;oBAEpE,OAAO;iBAER;aAEF,CAAC,iBAAiB;QACrB,CAAC;QAtKC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE1C,gFAAgF;QAChF,iFAAiF;QACjF,8EAA8E;QAC9E,kFAAkF;QAClF,IAAI,CAAC,IAAI,CAAC,iBAAiB,CACzB,GAAS,EAAE;YAET,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAE/D,CAAC,CACF,CAAC;IAEJ,CAAC;IAED,MAAM;IACN,kBAAkB;IAClB,MAAM;IACN,oFAAoF;IACpF,kCAAkC;IAC3B,MAAM,CAAC,QAAkB,EAAE,OAAwB;QAExD,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC;YAClD,iBAAiB,EAAE,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,iBAAiB,CAAC;YAC7E,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC;YAC5C,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;SAC3C,CAAC,CAAC;QAEH,IAAI,QAAQ,GAAG,GAAS,EAAE;YAExB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAEhC,CAAC,CAAC;QAEF,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEpB,CAAC;IAED,MAAM;IACN,mBAAmB;IACnB,MAAM;IACN,8EAA8E;IACtE,WAAW,CAAC,QAAkB;QAEpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,CAAC,CAAW,EAAE,CAAW,EAAU,EAAE;YAEnC,yEAAyE;YACzE,uEAAuE;YACvE,8DAA8D;YAC9D,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE;gBAE3B,OAAO,CAAC,CAAC,CAAC,CAAC;aAEZ;iBAAM,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE;gBAElC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aAEb;iBAAM;gBAEL,OAAO,CAAC,CAAC,CAAC,CAAC;aAEZ;QAEH,CAAC,CACF,CAAC;QAEF,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEpB,CAAC;IAGD,uDAAuD;IACvD,KAAK;IACL,+EAA+E;IAC/E,mEAAmE;IAC3D,eAAe,CAAC,KAAoB;QAE1C,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,cAAc,CAAC,CAAC;QAElE,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YAExB,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SAEvD;QAED,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;QAElC,IAAI,KAAK,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,KAAK,CAAC,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,KAAK,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAExC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAE9C,CAAC;IAmED,uEAAuE;IAC/D,gBAAgB,CAAC,KAAoB;QAE3C,IAAI,KAAK,CAAC,MAAM,YAAY,IAAI,EAAE;YAEhC,QAAQ,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE;gBAC7B,KAAK,OAAO,CAAC;gBACb,KAAK,QAAQ,CAAC;gBACd,KAAK,UAAU;oBACb,OAAO,CAAC,IAAI,CAAC,CAAC;oBACd,iDAAiD;oBACjD,MAAM;gBACR;oBACE,OAAO,CAAC,KAAK,CAAC,CAAC;oBACf,iDAAiD;oBACjD,MAAM;aACT;SAEF;QAED,OAAO,CAAC,KAAK,CAAC,CAAC;IAEjB,CAAC;IAGD,mFAAmF;IACnF,wCAAwC;IAChC,iBAAiB,CAAC,QAAkB;QAE1C,IAAI,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAErC,KAAK,IAAI,GAAG,IAAI,QAAQ,EAAE;YAExB,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;SAEpD;QAED,OAAO,CAAC,UAAU,CAAC,CAAC;IAEtB,CAAC;IAGD,iCAAiC;IACzB,eAAe,CAAC,MAA2B;QAEjD,IAAI,MAAM,KAAK,SAAS,EAAE;YAExB,OAAO,CAAC,KAAK,CAAC,CAAC;SAEhB;QAED,OAAO,CAAC,MAAM,CAAC,CAAC;IAElB,CAAC;IAGD,8DAA8D;IACtD,YAAY,CAAC,GAAW;QAE9B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;YAE7B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,GAAG;iBAC3B,WAAW,EAAE;iBACb,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CACF,CAAC,OAAO,EAAU,EAAE;gBAElB,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC;YAEzC,CAAC,CACF;iBACA,IAAI,EAAE;iBACN,IAAI,CAAC,GAAG,CAAC,CACT;SAEJ;QAED,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IAEpC,CAAC;IAGD,mCAAmC;IAC3B,iBAAiB,CAAC,QAA8B;QAEtD,IAAI,QAAQ,KAAK,SAAS,EAAE;YAE1B,OAAO,CAAC,IAAI,CAAC,CAAC;SAEf;QAED,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEpB,CAAC;IAGD,4CAA4C;IACpC,0BAA0B,CAAC,IAA0B;QAE3D,IAAI,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAErC,IAAI,IAAI,EAAE;YAER,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;gBAEpB,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;aAE3C;SAEF;QAED,OAAO,CAAC,UAAU,CAAC,CAAC;IAEtB,CAAC;IAGD,4DAA4D;IACpD,cAAc,CAAC,gBAA0B;QAE/C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CACpC,CAAC,QAAkB,EAAW,EAAE;YAE9B,OAAO,CAAC,QAAQ,KAAK,gBAAgB,CAAC,CAAC;QAEzC,CAAC,CACF,CAAC;IAEJ,CAAC;;;;;AAjTU,iBAAiB;IAD7B,yDAAU,EAAE;GACA,iBAAiB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9ES;AAC+C;AACb;AACE;AACN;AACI;AACE;AAClB;AAEgB;AACd;AACF;AACQ;AACX;AACP;AACc;AACV;AACJ;AACY;AAUpD,MAAM,yBAAyB;IAiWlC,YAAoB,OAAe,EAAU,MAA2B;QAApD,YAAO,GAAP,OAAO,CAAQ;QAAU,WAAM,GAAN,MAAM,CAAqB;QA1VhE,cAAS,GAAG,KAAK,CAAC;QAClB,yBAAoB,GAAG,KAAK,CAAC;QAC7B,YAAO,GAAG,IAAI,CAAC;QACf,kBAAa,GAAG,EAAE,CAAC;QACnB,kBAAa,GAAG,EAAE,CAAC;QAuVvB,iFAA6B,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAClD,yBAAyB,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,UAAU,GAAG,kFAAmC,CAAuB,iFAAoB,CAAC,CAAC;QAClG,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;YAClC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;QAChE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS;IAChC,CAAC;IAzVM,MAAM,CAAC,YAAY,CAAC,OAAe,EAAE,MAA2B;QACnE,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE;YACrC,yBAAyB,CAAC,QAAQ,GAAG,IAAI,yBAAyB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACpF,MAAM,SAAS,GAAG,0FAAsC,CAAC,OAAO,CAAC,CAAC;YAClE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtB,MAAM,GAAG,GAAG,IAAI,gEAAmB,CAAC,0BAA0B,CAAC,CAAC;gBAChE,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC5C,yGAA2B,CAAC,GAAG,EAAE,IAAI,gEAAmB,CAAC,aAAa,CAAC,EAAE,sFAAoB,EAAE,yFAA0B,CAAC,CAAC;gBAC3H,oHAAoH;gBACpH,mEAAmE;gBACnE,2CAA2C;gBAC3C,2DAA2D;gBAC3D,WAAW;gBACX,SAAS;aACZ;iBAAM;gBACH,yBAAyB,CAAC,gBAAgB,EAAE,CAAC;aAChD;SACJ;IACL,CAAC;IAEM,MAAM,CAAC,WAAW;QACrB,IAAI,yBAAyB,CAAC,QAAQ,EAAE;YACpC,yBAAyB,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YACjD,yBAAyB,CAAC,QAAQ,GAAG,IAAI,CAAC;SAC7C;IACL,CAAC;IAEO,MAAM,CAAC,gBAAgB;QAC3B,MAAM,QAAQ,GAAG,mGAA+C,EAAE,CAAC;QACnE,IAAI,QAAQ,EAAE;YACV,MAAM,IAAI,GAAG,qFAAgC,EAAE,CAAC;YAChD,IAAI,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,EAAE;gBAC1B,yBAAyB,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;aACxD;iBAAM,IAAI,IAAI,CAAC,eAAe,EAAE;gBAC7B,MAAM,IAAI,GAAG,8FAA8F,CAAC;gBAC5G,MAAM,EAAE,GAAG,IAAI,gEAAmB,CAAC,IAAI,CAAC,CAAC;gBACzC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACpC,yGAA2B,CAAC,EAAE,EAAE,IAAI,gEAAmB,CAAC,6BAA6B,CAAC,EAClF,yFAAuB,EAAE,sFAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBACvD,IAAI,CAAC,KAAK,qFAAoB,EAAE;wBAC5B,gFAA4B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBACzC,yBAAyB,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;qBACxD;gBACL,CAAC,CAAC,CAAC;aACV;iBAAM;gBACH,MAAM,IAAI,GAAG,yDAAyD,CAAC;gBACvE,MAAM,EAAE,GAAG,IAAI,gEAAmB,CAAC,IAAI,CAAC,CAAC;gBACzC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACpC,yGAA2B,CAAC,EAAE,EAAE,IAAI,gEAAmB,CAAC,6BAA6B,CAAC,EAClF,sFAAoB,EAAE,yFAA0B,CAAC,CAAC;aACzD;SACJ;aAAM;YACH,yBAAyB,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;SACxD;IACL,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG;QACxC,IAAI,MAAM,EAAE;YACR,MAAM,UAAU,GAAG,yBAAyB,CAAC,yBAAyB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACpF,IAAI,UAAU,EAAE;gBACZ,IAAI,MAAM,GAAG,UAAU,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACrC,IAAI,CAAC,GAAG,CAAC,EAAE;wBACP,MAAM,IAAI,OAAO,CAAC;qBACrB;oBACD,MAAM,IAAI,WAAW,GAAG,CAAC,GAAG,aAAa,CAAC;oBAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;oBAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;wBACjB,MAAM,IAAI,GAAG,CAAC;qBACjB;oBACD,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,CAAC,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC;aACjB;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,yBAAyB,CAAC,aAAa,EAAE,GAAG;QACvD,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,aAAa,EAAE;YACf,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChD,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACpB,IAAI,MAAM,IAAI,IAAI,EAAE;wBAChB,MAAM,GAAG,EAAE,CAAC;qBACf;oBACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBACvC,IAAI,IAAI,EAAE;wBACN,IAAI,CAAC,IAAI,CAAC,wEAA2B,CAAC,aAAa,CAAC,CAAC,CAAC;qBACzD;yBAAM;wBACH,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,wEAA2B,CAAC,aAAa,CAAC,CAAC,CAAC;qBAC5E;gBACL,CAAC,CAAC,CAAC;aACN;YACD,IAAI,aAAa,CAAC,QAAQ,EAAE;gBACxB,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC/B,MAAM,SAAS,GAAG,yBAAyB,CAAC,yBAAyB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBAC9E,IAAI,SAAS,EAAE;wBACX,IAAI,MAAM,IAAI,IAAI,EAAE;4BAChB,MAAM,GAAG,EAAE,CAAC;yBACf;wBACD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACvB,IAAI,IAAI,EAAE;gCACN,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;6BAC9B;iCAAM;gCACH,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;6BACjC;wBACL,CAAC,CAAC,CAAC;qBACN;gBACL,CAAC,CAAC,CAAC;aACN;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAoB;QACrD,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE;YACxC,IAAI,YAAY,GAAG,MAAM,CAAC;YAC1B,IAAI,OAAO,CAAC;YACZ,IAAI,MAAM,CAAC,YAAY,EAAE;gBACrB,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE;oBAC9B,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,YAAY,CAAC,CAAC;oBAC1E,OAAO,GAAG,wEAA2B,CAAC,YAAY,CAAC,CAAC;iBACvD;qBAAM;oBACH,YAAY,GAAG,IAAI,CAAC;iBACvB;aACJ;YACD,IAAI,YAAY,EAAE;gBACd,QAAQ,MAAM,CAAC,gBAAgB,EAAE;oBAC7B,KAAK,8FAA6B;wBAC9B,MAAM,aAAa,GAAG,wEAA2B,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;wBAC7F,IAAI,aAAa,EAAE;4BACf,MAAM,GAAG,gBAAgB,GAAG,wEAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;gCAClG,cAAc,GAAG,wEAA2B,CAAC,aAAa,CAAC,CAAC;yBACnE;wBACD,MAAM;oBACV,KAAK,gGAA+B;wBAChC,MAAM,gBAAgB,GAAG,wEAA2B,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;wBAChG,IAAI,gBAAgB,EAAE;4BAClB,MAAM,GAAG,kBAAkB,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW;gCACxD,gBAAgB,GAAG,wEAA2B,CAAC,gBAAgB,CAAC,CAAC;yBACxE;wBACD,MAAM;oBACV,KAAK,gGAA+B;wBAChC,MAAM,mBAAmB,GAAG,wEAA2B,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;wBACtG,IAAI,mBAAmB,EAAE;4BACrB,IAAI,MAAM,CAAC,WAAW,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE;gCACnE,IAAI,mBAAmB,CAAC,QAAQ,EAAE;oCAC9B,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wCACvC,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE;4CACvC,MAAM,GAAG,gBAAgB,GAAG,wEAA2B,CAAC,CAAC,CAAC;gDACtD,kBAAkB,GAAG,wEAA2B,CAAC,mBAAmB,CAAC,CAAC;4CAC1E,OAAO,IAAI,CAAC;yCACf;wCACD,OAAO,KAAK,CAAC;oCACjB,CAAC,CAAC,CAAC;iCACN;6BACJ;iCAAM;gCACH,MAAM,mBAAmB,GAAG,wEAA2B,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gCACtG,IAAI,mBAAmB,EAAE;oCACrB,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;wCACpC,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE;4CACvC,MAAM,GAAG,gBAAgB,GAAG,wEAA2B,CAAC,CAAC,CAAC,GAAG,gBAAgB;gDACzE,wEAA2B,CAAC,mBAAmB,CAAC,GAAG,cAAc;gDACjE,wEAA2B,CAAC,mBAAmB,CAAC,CAAC;4CACrD,OAAO,IAAI,CAAC;yCACf;wCACD,OAAO,KAAK,CAAC;oCACjB,CAAC,CAAC,CAAC;iCACN;6BACJ;yBACJ;wBACD,MAAM;oBACV,KAAK,qGAAoC;wBACrC,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE;4BAC7B,MAAM,UAAU,GAAG,wEAA2B,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;4BAC7F,IAAI,UAAU,IAAI,UAAU,CAAC,QAAQ,EAAE;gCACnC,MAAM,WAAW,GAAG,EAAE,CAAC;gCACvB,MAAM,YAAY,GAAG,EAAE,CAAC;gCACxB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oCAC1C,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;wCACjD,IAAI,UAAU,CAAC;wCACf,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE;4CACrD,UAAU,GAAG,UAAU,CAAC;yCAC3B;6CAAM;4CACH,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;4CAC3C,IAAI,CAAC,UAAU,EAAE;gDACb,UAAU,GAAG,wEAA2B,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gDACzE,IAAI,UAAU,EAAE;oDACZ,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;iDAC9C;6CACJ;yCACJ;wCACD,IAAI,UAAU,EAAE;4CACZ,MAAM,WAAW,GAAG,EAAE,CAAC;4CACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gDACnC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;oDAC3B,IAAI,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,SAAS,EAAE;wDAChC,WAAW,CAAC,IAAI,CAAC,wEAA2B,CAAC,CAAC,CAAC,CAAC,CAAC;wDACjD,OAAO,IAAI,CAAC;qDACf;oDACD,OAAO,KAAK,CAAC;gDACjB,CAAC,CAAC,CAAC;4CACP,CAAC,CAAC,CAAC;4CACH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gDACxB,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gDAC1C,IAAI,EAAE,EAAE;oDACJ,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;iDAC3C;qDAAM;oDACH,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG;wDAC7B,IAAI,EAAE,wEAA2B,CAAC,UAAU,CAAC;wDAC7C,eAAe,EAAE,WAAW;qDAC/B,CAAC;iDACL;6CACJ;yCACJ;qCACJ;gCACL,CAAC,CAAC,CAAC;gCACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gCAC1C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oCACpB,MAAM,GAAG,QAAQ,CAAC;oCAClB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wCACrB,IAAI,CAAC,GAAG,CAAC,EAAE;4CACP,MAAM,IAAI,OAAO;yCACpB;wCACD,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;wCAC7B,MAAM,IAAI,SAAS,CAAC;wCACpB,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;4CACjC,MAAM,IAAI,GAAG,CAAC;yCACjB;wCACD,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC;oCACnF,CAAC,CAAC,CAAC;oCACH,MAAM,IAAI,cAAc,GAAG,wEAA2B,CAAC,UAAU,CAAC,CAAC;iCACtE;6BACJ;yBACJ;wBACD,MAAM;oBACV,KAAK,gGAA+B;wBAChC,MAAM,aAAa,GAAG,EAAE,CAAC;wBACzB,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;wBACnE,MAAM,GAAG,yBAAyB,CAAC,iBAAiB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;wBAClF,MAAM;oBACV,KAAK,qGAAoC;wBACrC,MAAM,kBAAkB,GAAG,EAAE,CAAC;wBAC9B,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BACpC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gCACtB,MAAM,IAAI,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;gCACpC,IAAI,IAAI,EAAE;oCACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;iCAC9B;qCAAM;oCACH,kBAAkB,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;iCAC9C;4BACL,CAAC,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;wBACH,MAAM,GAAG,yBAAyB,CAAC,iBAAiB,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;wBACvF,MAAM;oBACV,KAAK,+FAA8B;wBAC/B,MAAM,WAAW,GAAG,wEAA2B,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;wBAC3F,IAAI,WAAW,EAAE;4BACb,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;4BACnD,MAAM,GAAG,iBAAiB,GAAG,EAAE,CAAC,OAAO,GAAG,cAAc,GAAG,wEAA2B,CAAC,WAAW,CAAC,CAAC;yBACvG;wBACD,MAAM;oBACV,KAAK,gGAA+B;wBAChC,MAAM,cAAc,GAAG,wEAA2B,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;wBAC9F,IAAI,cAAc,IAAI,cAAc,CAAC,SAAS,EAAE;4BAC5C,MAAM,WAAW,GAAG,EAAE,CAAC;4BACvB,MAAM,MAAM,GAAG,EAAE,CAAC;4BAClB,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gCACrC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gCAC1B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;4BACjC,CAAC,CAAC,CAAC;4BACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCACtD,MAAM,GAAG,GAAG,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gCACnD,IAAI,GAAG,EAAE;oCACL,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iCACzB;6BACJ;4BACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gCACxB,MAAM,GAAG,kBAAkB,CAAC;gCAC5B,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oCACxB,MAAM,IAAI,GAAG,CAAC;iCACjB;gCACD,MAAM,IAAI,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,cAAc,GAAG,wEAA2B,CAAC,cAAc,CAAC,CAAC;6BACzG;yBACJ;wBACD,MAAM;oBACV,KAAK,iGAAgC;wBACjC,MAAM,cAAc,GAAG,wEAA2B,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;wBAC9F,IAAI,cAAc,EAAE;4BAChB,MAAM,GAAG,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAAC,eAAe,GAAG,gBAAgB;gCAChF,wEAA2B,CAAC,cAAc,CAAC,CAAC;yBACnD;wBACD,MAAM;oBACV,KAAK,iGAAgC;wBACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;wBAC3D,MAAM,GAAG,mBAAmB,GAAG,wEAA2B,CAAC,QAAQ,CAAC;4BAChE,cAAc,GAAG,wEAA2B,CAAC,MAAM,CAAC,CAAC;wBACzD,MAAM;oBACV,KAAK,mGAAkC;wBACnC,MAAM,GAAG,qBAAqB,GAAG,MAAM,CAAC,WAAW,CAAC,cAAc;4BAC9D,gBAAgB,GAAG,wEAA2B,CAAC,MAAM,CAAC,CAAC;wBAC3D,MAAM;iBACb;gBACD,IAAI,MAAM,IAAI,OAAO,EAAE;oBACnB,MAAM,IAAI,gBAAgB,GAAG,OAAO,GAAG,GAAG,CAAC;iBAC9C;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,OAAO;QAC7C,IAAI,IAAI,EAAE;YACN,IAAI,OAAO,GAAG,eAAe,CAAC;YAC9B,IAAI,OAAO,CAAC,IAAI,EAAE;gBACd,OAAO,IAAI,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;aACrD;YACD,OAAO,IAAI,IAAI,GAAG,IAAI,CAAC;YACvB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC1C,OAAO;gBACH,eAAe,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;oBAChD,KAAK,EAAE,SAAS;oBAChB,GAAG,EAAE,SAAS;oBACd,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,SAAS;iBACpB,CAAC;gBACF,OAAO,EAAE,OAAO;gBAChB,MAAM,EAAE,QAAQ;gBAChB,UAAU,EAAE,KAAK;aACpB,CAAC;SACL;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAWO,eAAe;QACnB,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YAC1C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACjB,IAAI,0FAAgC,EAAE,EAAE;oBACpC,IAAI,CAAC,SAAS,EAAE,CAAC;iBACpB;qBAAM;oBACH,MAAM,EAAE,GAAG,IAAI,gEAAmB,CAAC,8CAA8C,CAAC,CAAC;oBACnF,yGAA2B,CAAC,EAAE,EAAE,IAAI,gEAAmB,CAAC,iBAAiB,CAAC,EACtE,sFAAoB,EAAE,yFAA0B,CAAC,CAAC;iBACzD;aACJ;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,SAAS;QACb,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,2FAAiC,CAAC,CAAC,CAAC,EAAE;gBAC1D,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;oBAClC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;oBACjC,MAAM,EAAE,GAAG,IAAI,gEAAmB,CAAC,gDAAgD,CAAC,CAAC;oBACrF,yGAA2B,CAAC,EAAE,EAAE,IAAI,gEAAmB,CAAC,mBAAmB,CAAC,EACxE,yFAAuB,EAAE,sFAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wBACvD,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;wBAClC,IAAI,CAAC,KAAK,qFAAoB,EAAE;4BAC5B,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;yBAChC;oBACL,CAAC,CAAC,CAAC;iBACV;YACL,CAAC,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,oGAA0C,CAAC,QAAQ,CAAC,EAAE;gBAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACpC,MAAM,SAAS,GAAG,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;gBACjD,IAAI,MAAM,CAAC,KAAK,KAAK,0FAAwB,IAAI,MAAM,CAAC,QAAQ;oBAC5D,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,EAAE;oBAC5C,IAAI,MAAM,CAAC,IAAI,KAAK,oDAAoD,EAAE;wBACtE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBAC3C,IAAI,OAAO,EAAE;4BACT,IAAI,IAAI,CAAC;4BACT,IAAI,OAAO,CAAC,QAAQ,KAAK,kEAAqB,EAAE;gCAC5C,IAAI,IAAI,CAAC,OAAO,EAAE;oCACd,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iCACpC;qCAAM;oCACH,IAAI,GAAG,2EAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;iCACpG;6BACJ;iCAAM;gCACH,IAAI,GAAG,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;6BAC7G;4BACD,IAAI,IAAI,EAAE;gCACN,MAAM,OAAO,GAAG,yBAAyB,CAAC,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gCAC9E,IAAI,OAAO,EAAE;oCACT,MAAM,WAAW,GAAG,EAAE,CAAC;oCACvB,MAAM,WAAW,GAAG,yBAAyB,CAAC,2BAA2B,CAAC,QAAQ,EAAE,CAAC;oCACrF,IAAI,WAAW,EAAE;wCACb,WAAW,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;qCACpC;oCACD,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oCAC1B,yBAAyB,CAAC,2BAA2B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;iCAC3E;gCACD,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;6BAC/B;yBACJ;qBACJ;yBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,kDAAkD,EAAE;wBAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBAC3C,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,kEAAqB,EAAE;4BACvD,MAAM,QAAQ,GAAG,yFAAqC,EAAE,CAAC;4BACzD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,eAAe,EAAE;gCACvC,MAAM,EAAE,GAAG,IAAI,gEAAmB,CAAC,0BAA0B,CAAC,CAAC;gCAC/D,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCACxC,yGAA2B,CAAC,EAAE,EAAE,IAAI,gEAAmB,CAAC,cAAc,CAAC,EACnE,yFAAuB,EAAE,sFAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oCACvD,IAAI,CAAC,KAAK,qFAAoB,EAAE;wCAC5B,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;qCAChC;gCACL,CAAC,CAAC,CAAC;6BACV;iCAAM;gCACH,MAAM,EAAE,GAAG,IAAI,gEAAmB,CAAC,8BAA8B,CAAC,CAAC;gCACnE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCACxC,0EAAuB,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;6BAChD;yBACJ;qBACJ;iBACJ;YACL,CAAC,CAAC,CAAC,CAAC;YACJ,oFAA0B,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAEtF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,2FAAqC,CAAC,CAAC,CAAC,EAAE;gBAC9D,IAAI,CAAC,IAAI,qFAA+B,EAAE,KAAK,sEAAa,EAAE;oBAC1D,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;wBACjC,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;qBAChC,CAAC,CAAC,SAAS,EAAE,CAAC;iBAClB;YACL,CAAC,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gGAA4C,CAAC,CAAC,CAAC,EAAE,EAAE;gBACvE,MAAM,EAAE,GAAG,IAAI,gEAAmB,CAAC,gEAAgE,CAAC,CAAC;gBACrG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC7B,0EAAuB,CAAC,EAAE,EAAE,IAAI,gEAAmB,CAAC,2BAA2B,CAAC,CAAC,CAAC;gBAClF,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YACjC,CAAC,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gBAC5D,MAAM,QAAQ,GAAG,EAAE,CAAC;gBACpB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;gBACrC,IAAI,CAAC,EAAE;oBACH,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;wBACf,SAAS,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;wBACxC,MAAM,IAAI,GAAG,2EAA8B,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;wBAC/E,MAAM,OAAO,GAAG,yBAAyB,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;wBAC7E,IAAI,OAAO,EAAE;4BACT,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;yBAC1B;oBACL,CAAC,CAAC,CAAC;iBACN;gBACD,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBAClB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBACzC,IAAI,IAAI,GAAG,SAAS,EAAE;wBAClB,MAAM,IAAI,GAAG,2EAA8B,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;wBAC/E,MAAM,OAAO,GAAG,yBAAyB,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;wBAC7E,IAAI,OAAO,EAAE;4BACT,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;yBAC1B;qBACJ;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC7C,OAAO,IAAI,CAAC,OAAO,EAAE;oBACjB,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACpC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;wBAClB,MAAM,IAAI,GAAG,2EAA8B,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;wBAC/E,MAAM,OAAO,GAAG,yBAAyB,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;wBAC7E,IAAI,OAAO,EAAE;4BACT,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;yBAC1B;oBACL,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;iBAChD;gBACD,yBAAyB,CAAC,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC;YACH,yBAAyB,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClE,yBAAyB,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACrE;IACL,CAAC;IAEO,WAAW;QACf,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACjD,sFAA4B,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxF,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAClC,iFAA6B,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACnD,yBAAyB,CAAC,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnE,yBAAyB,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,yBAAyB,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;;AAhgBa,sDAA4B,GAA6B,IAAI,kDAAe,CAAC,KAAK,CAAC,CAAC;AACpF,qDAA2B,GAA6B,IAAI,kDAAe,CAAC,KAAK,CAAC,CAAC;AACnF,qDAA2B,GAA2B,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjCpC;AAE/B;AACuD;AACqB;AAClC;AACE;AACN;AACI;AAChB;AAId;AACK;AAMO;AACO;AACU;AACb;AACQ;AACJ;AACT;AACc;AAGpE,WAAW;AACJ,MAAM,YAAY;IACrB,0BAA0B;IACnB,MAAM,CAAC,gBAAgB,CAAC,WAA4B,EAAE,IAAY,EAAE,cAAwB;QAC/F,IAAI,cAAc,KAAK,IAAI,EAAE;YACzB,OAAO,YAAY,CAAC,uBAAuB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SAClE;aAAM;YACH,OAAO,YAAY,CAAC,2BAA2B,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SAC5E;IACL,CAAC;IACO,MAAM,CAAC,2BAA2B,CAAC,WAA4B,EAAE,IAAY,EAAE,YAAoB;QACvG,IAAI,MAAM,GAAkB,IAAI,CAAC;QACjC,IAAI,WAAW,IAAI,IAAI,EAAE;YACrB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACpB,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC5E,IAAI,SAAS,KAAK,IAAI,EAAE;oBACpB,MAAM,GAAG,IAAI,CAAC;oBACd,OAAO,IAAI,CAAC;iBACf;gBACD,IAAI,OAAO,GAAG,YAAY,CAAC;gBAC3B,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;oBACjC,IAAI,OAAO,EAAE;wBACT,OAAO,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;qBACtC;yBAAM;wBACH,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;qBAC/B;iBACJ;gBACD,MAAM,GAAG,YAAY,CAAC,2BAA2B,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBAChF,IAAI,MAAM,EAAE;oBACR,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,CAAC;SACN;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,uBAAuB,CAAC,WAA4B,EAAE,IAAY;QAC7E,IAAI,MAAM,GAAkB,IAAI,CAAC;QACjC,IAAI,WAAW,IAAI,IAAI,EAAE;YACrB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACpB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;oBACpB,MAAM,GAAG,IAAI,CAAC;oBACd,OAAO,IAAI,CAAC;iBACf;gBACD,MAAM,GAAG,YAAY,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACnE,IAAI,MAAM,EAAE;oBACR,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,CAAC;SACN;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,YAAY;IACZ,wBAAwB;IACjB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ;QACzC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,MAAM,EAAE;YACR,MAAM,IAAI,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACtE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;SACxB;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACO,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY;QAC7D,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,QAAQ,EAAE;YACV,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACjB,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC5E,IAAI,SAAS,KAAK,QAAQ,EAAE;oBACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAClB,OAAO,IAAI,CAAC;iBACf;gBACD,IAAI,OAAO,GAAG,YAAY,CAAC;gBAC3B,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;oBACjC,IAAI,OAAO,EAAE;wBACT,OAAO,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;qBACtC;yBAAM;wBACH,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;qBAC/B;iBACJ;gBACD,MAAM,SAAS,GAAG,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACnF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oBACtB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAClB,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;iBAC7B;YACL,CAAC,CAAC,CAAC;SACN;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,YAAY;IACZ,oBAAoB;IACb,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE;QACjC,IAAI,IAAI,EAAE;YACN,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;gBAChB,OAAO,IAAI,CAAC;aACf;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,MAAM,CAAC;gBACX,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBACvB,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC5C,IAAI,MAAM,EAAE;wBACR,OAAO,IAAI,CAAC;qBACf;oBACD,OAAO,KAAK,CAAC;gBACjB,CAAC,CAAC,EAAE;oBACA,OAAO,MAAM,CAAC;iBACjB;aACJ;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACM,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO;QAChD,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,KAAK,GAAG,YAAY,CAAC,yBAAyB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1E,IAAI,IAAI,GAAG,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;QACjC,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE;YAChB,KAAK,EAAE,CAAC;YACR,IAAI,GAAG,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;SAChC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACO,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO;QACxD,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,IAAI,EAAE;YACN,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;gBAC3B,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;oBAC/B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;oBAC1B,MAAM,EAAE,CAAC;iBACZ;aACJ;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACzB,MAAM,IAAI,YAAY,CAAC,yBAAyB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC1E,CAAC,CAAC,CAAC;aACN;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACM,MAAM,CAAC,0BAA0B,CAAC,IAAI,EAAE,MAAM;QACjD,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,KAAK,GAAG,YAAY,CAAC,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9E,IAAI,IAAI,GAAG,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC;QAChC,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE;YAChB,KAAK,EAAE,CAAC;YACR,IAAI,GAAG,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC;SAC/B;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACO,MAAM,CAAC,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO;QAC5D,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,IAAI,EAAE;YACN,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBAC/D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBAC1B,MAAM,EAAE,CAAC;aACZ;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACzB,MAAM,IAAI,YAAY,CAAC,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC9E,CAAC,CAAC,CAAC;aACN;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAMM,MAAM,CAAC,uBAAuB,CAAC,QAAQ;QAC1C,MAAM,MAAM,GAAG,IAAI,uEAAa,EAAE,CAAC;QACnC,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;QACnC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QACpC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC5B,IAAI,QAAQ,CAAC,MAAM,EAAE;YACjB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;SAC1C;QACD,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE;YAC9B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;SACnC;QACD,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC5B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;SACnC;QACD,MAAM,CAAC,WAAW,CAAC,sEAAa,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC;IAClB,CAAC;IACM,MAAM,CAAC,SAAS;QACnB,MAAM,IAAI,GAAG,kGAAuC,EAAE,CAAC;QACvD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,EAAE;YAC1G,OAAO,4FAAqC,EAAE,CAAC;SAClD;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACM,MAAM,CAAC,mBAAmB,CAAC,MAAM;QACpC,MAAM,IAAI,GAAG,sFAA+B,EAAE,CAAC;QAC/C,IAAI,MAAM,IAAI,IAAI,EAAE;YAChB,IAAI,UAAU,GAAG,IAAI,CAAC;YACtB,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrD,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;aAChH;YACD,IAAI,UAAU,EAAE;gBACZ,4FAAqC,CAAC,UAAU,CAAC,CAAC;gBAClD,OAAO,UAAU,CAAC;aACrB;iBAAM;gBACH,4FAAqC,CAAC,IAAI,CAAC,CAAC;aAC/C;SACJ;aAAM;YACH,4FAAqC,CAAC,IAAI,CAAC,CAAC;SAC/C;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,4BAA4B;IACrB,MAAM,CAAC,sBAAsB;QAChC,2FAAoC,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1C,MAAM,UAAU,GAAG,4FAAqC,EAAE,CAAC;YAC3D,IAAI,UAAU,EAAE;gBACZ,IAAI,IAAI,EAAE;oBACN,kFAA2B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACrC,IAAI,eAAe,GAAG,KAAK,CAAC;oBAC5B,IAAI,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7D,MAAM,IAAI,GAAG,sFAA+B,EAAE,CAAC;wBAC/C,IAAI,IAAI,EAAE;4BACN,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gCACnC,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE;oCACzD,eAAe,GAAG,IAAI,CAAC;oCACvB,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,EAAE;wCACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;qCACxB;oCACD,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;wCACvB,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;oCAC5B,CAAC,CAAC,CAAC;iCACN;4BACL,CAAC,CAAC,CAAC;yBACN;qBACJ;oBACD,IAAI,CAAC,eAAe,EAAE;wBAClB,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;wBACjC,0FAAmC,CAAC,IAAI,CAAC,CAAC;qBAC7C;iBACJ;aACJ;QACL,CAAC,CAAC,CAAC;QACH,4FAAqC,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5C,MAAM,UAAU,GAAG,4FAAqC,EAAE,CAAC;YAC3D,IAAI,UAAU,EAAE;gBACZ,IAAI,KAAK,EAAE;oBACP,kFAA2B,CAAC,IAAI,CAAC,CAAC;iBACrC;gBACD,IAAI,eAAe,GAAG,KAAK,CAAC;gBAC5B,IAAI,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC7D,MAAM,IAAI,GAAG,sFAA+B,EAAE,CAAC;oBAC/C,IAAI,IAAI,EAAE;wBACN,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;4BACnC,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE;gCACzD,eAAe,GAAG,IAAI,CAAC;gCACvB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oCACvB,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gCAC9B,CAAC,CAAC,CAAC;6BACN;wBACL,CAAC,CAAC,CAAC;qBACN;iBACJ;gBACD,IAAI,CAAC,eAAe,EAAE;oBAClB,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;oBACnC,0FAAmC,CAAC,IAAI,CAAC,CAAC;iBAC7C;aACJ;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACO,MAAM,CAAC,SAAS,CAAC,IAAS,EAAE,YAAiB;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,YAAY,CAAC;QACtC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACxB,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IACO,MAAM,CAAC,UAAU,CAAC,IAAS,EAAE,aAAkB;QACnD,IAAI,aAAa,EAAE;YACf,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YAC7C,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBACxB,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;gBACtC,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IACD,YAAY;IACZ,uBAAuB;IAChB,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAoB;QACxD,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,MAAM,IAAI,MAAM,EAAE;YAClB,IAAI,YAAY,GAAG,MAAM,CAAC;YAC1B,IAAI,OAAO,CAAC;YACZ,IAAI,MAAM,CAAC,YAAY,EAAE;gBACrB,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE;oBAC9B,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,YAAY,CAAC,CAAC;oBAC1E,OAAO,GAAG,YAAY,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;iBACvD;qBAAM;oBACH,YAAY,GAAG,IAAI,CAAC;iBACvB;aACJ;YACD,QAAQ,MAAM,CAAC,gBAAgB,EAAE;gBAC7B,KAAK,8FAA6B;oBAC9B,MAAM,GAAG,YAAY,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;oBACzE,MAAM;gBACV,KAAK,gGAA+B;oBAChC,MAAM,GAAG,YAAY,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;oBAC5E,MAAM;gBACV,KAAK,gGAA+B;oBAChC,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;oBACvE,MAAM;gBACV,KAAK,qGAAoC;oBACrC,MAAM,GAAG,YAAY,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;oBAC5E,MAAM;gBACV,KAAK,gGAA+B;oBAChC,MAAM,GAAG,YAAY,CAAC,yBAAyB,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;oBAClF,MAAM;gBACV,KAAK,qGAAoC;oBACrC,MAAM,GAAG,YAAY,CAAC,8BAA8B,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;oBACvF,MAAM;gBACV,KAAK,+FAA8B;oBAC/B,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;oBACpE,IAAI,MAAM,EAAE;wBACR,gGAAyC,CAAC,MAAM,CAAC,CAAC;qBACrD;oBACD,MAAM;gBACV,KAAK,gGAA+B;oBAChC,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;oBACxE,IAAI,MAAM,EAAE;wBACR,gGAAyC,CAAC,MAAM,CAAC,CAAC;qBACrD;oBACD,MAAM;gBACV,KAAK,iGAAgC;oBACjC,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC;oBACtE,IAAI,MAAM,EAAE;wBACR,gGAAyC,CAAC,MAAM,CAAC,CAAC;qBACrD;oBACD,MAAM;gBACV,KAAK,iGAAgC;oBACjC,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;oBAChE,MAAM;gBACV,KAAK,mGAAkC;oBACnC,MAAM,GAAG,YAAY,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;oBACnE,MAAM;aACb;YACD,IAAI,MAAM,IAAI,OAAO,EAAE;gBACnB,MAAM,IAAI,gBAAgB,GAAG,OAAO,GAAG,GAAG,CAAC;aAC9C;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,uBAAuB;IAChB,MAAM,CAAC,cAAc,CAAC,IAAI;QAC7B,IAAI,IAAI,EAAE;YACN,IAAI,IAAI,CAAC,IAAI,EAAE;gBACX,OAAO,IAAI,CAAC,IAAI,CAAC;aACpB;YACD,OAAO,IAAI,CAAC,EAAE,CAAC;SAClB;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAA4B;QAChE,MAAM,IAAI,GAAG,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/D,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAChB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;aACtB;YACD,MAAM,EAAE,GAAG,gEAAY,CAAC,uEAAa,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;YACvE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;aAC7B;YACD,oGAA6C,CAAC,IAAI,CAAC,CAAC;YACpD,OAAO,gBAAgB,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;SAClH;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAA8B;QACrE,MAAM,IAAI,GAAG,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/D,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YACvB,IAAI,KAAK,CAAC;YACV,IAAI,WAAW,CAAC;YAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC5B,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,SAAS,EAAE;oBACxB,KAAK,GAAG,CAAC,CAAC;oBACV,WAAW,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBAC7C,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,EAAE;gBACA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC/B,IAAI,IAAI,CAAC,aAAa,EAAE;oBACpB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;iBAC7B;gBACD,oGAA6C,CAAC,IAAI,CAAC,CAAC;gBACpD,OAAO,kBAAkB,GAAG,WAAW,GAAG,gBAAgB,GAAG,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;aAClG;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAA8B;QAChE,IAAI,IAAI,CAAC;QACT,IAAI,SAAS,CAAC;QACd,MAAM,UAAU,GAAG,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QACxE,IAAI,UAAU,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACvE,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,SAAS,EAAE;gBACxB,IAAI,GAAG,CAAC,CAAC;gBACT,SAAS,GAAG,CAAC,CAAC;gBACd,OAAO,IAAI,CAAC;aACf;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,EAAE;YACA,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;YAC3H,IAAI,UAAU,EAAE;gBACZ,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBACzC,IAAI,UAAU,CAAC,aAAa,EAAE;oBAC1B,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;iBACnC;gBACD,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;oBACtB,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;iBAC5B;gBACD,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;gBACtC,IAAI,UAAU,CAAC,aAAa,EAAE;oBAC1B,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;iBACnC;gBACD,oGAA6C,CAAC,IAAI,CAAC,CAAC;gBACpD,IAAI,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC,WAAW,EAAE;oBACrC,OAAO,gBAAgB,GAAG,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC;wBACvD,kBAAkB,GAAG,YAAY,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;iBACpE;qBAAM;oBACH,OAAO,gBAAgB,GAAG,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,gBAAgB;wBAC1E,YAAY,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;iBAC1G;aACJ;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAmC;QAC1E,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE;YACrB,MAAM,UAAU,GAAG,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;YACxE,IAAI,UAAU,EAAE;gBACZ,MAAM,QAAQ,GAAG,EAAE,CAAC;gBACpB,MAAM,WAAW,GAAG,EAAE,CAAC;gBACvB,MAAM,YAAY,GAAG,EAAE,CAAC;gBACxB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBAC3B,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;wBACjD,IAAI,UAAU,CAAC;wBACf,IAAI,OAAO,CAAC,QAAQ,KAAK,GAAG,CAAC,WAAW,EAAE;4BACtC,UAAU,GAAG,UAAU,CAAC;yBAC3B;6BAAM;4BACH,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;4BAC3C,IAAI,CAAC,UAAU,EAAE;gCACb,UAAU,GAAG,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gCACnE,IAAI,UAAU,EAAE;oCACZ,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;iCAC9C;6BACJ;yBACJ;wBACD,IAAI,UAAU,IAAI,UAAU,CAAC,QAAQ,EAAE;4BACnC,MAAM,WAAW,GAAG,EAAE,CAAC;4BACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gCACnC,IAAI,IAAI,CAAC;gCACT,IAAI,SAAS,CAAC;gCACd,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oCAClC,IAAI,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,SAAS,EAAE;wCAChC,IAAI,GAAG,CAAC,CAAC;wCACT,SAAS,GAAG,CAAC,CAAC;wCACd,OAAO,IAAI,CAAC;qCACf;oCACD,OAAO,KAAK,CAAC;gCACjB,CAAC,CAAC,EAAE;oCACA,QAAQ,CAAC,IAAI,CAAC;wCACV,OAAO,EAAE,IAAI;wCACb,SAAS,EAAE,WAAW,CAAC,SAAS;qCACnC,CAAC,CAAC;oCACH,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;oCACzC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;iCACvD;4BACL,CAAC,CAAC,CAAC;4BACH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gCACxB,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gCAC1C,IAAI,EAAE,EAAE;oCACJ,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;iCAC3C;qCAAM;oCACH,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG;wCAC7B,IAAI,EAAE,YAAY,CAAC,cAAc,CAAC,UAAU,CAAC;wCAC7C,eAAe,EAAE,WAAW;qCAC/B,CAAC;iCACL;6BACJ;yBACJ;qBACJ;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBACrB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACjC,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;wBAC5B,IAAI,IAAI,CAAC,aAAa,EAAE;4BACpB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;yBAC7B;oBACL,CAAC,CAAC,CAAC;oBACH,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;oBACnD,MAAM,cAAc,GAAG,EAAE,CAAC;oBAC1B,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;oBACtD,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;wBACtB,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;qBAC5B;oBACD,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,cAAc,CAAC,CAAC;oBAC5D,IAAI,UAAU,CAAC,aAAa,EAAE;wBAC1B,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;qBACnC;oBACD,oGAA6C,CAAC,IAAI,CAAC,CAAC;oBACpD,IAAI,MAAM,GAAG,QAAQ,CAAC;oBACtB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBACvC,IAAI,CAAC,GAAG,CAAC,EAAE;4BACP,MAAM,IAAI,OAAO;yBACpB;wBACD,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;wBAC7B,MAAM,IAAI,SAAS,CAAC;wBACpB,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;4BACjC,MAAM,IAAI,GAAG,CAAC;yBACjB;wBACD,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC;oBACnF,CAAC,CAAC,CAAC;oBACH,MAAM,IAAI,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;oBACnE,OAAO,MAAM,CAAC;iBACjB;aACJ;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,GAA8B;QAC3E,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,QAAQ,GAAG,YAAY,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/D,IAAI,QAAQ,EAAE;YACV,oGAA6C,CAAC,GAAG,CAAC,CAAC;SACtD;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEO,MAAM,CAAC,8BAA8B,CAAC,MAAM,EAAE,IAAoC;QACtF,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACtB,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBACtB,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrB,IAAI,IAAI,EAAE;oBACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;iBAC9B;qBAAM;oBACH,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;iBAC/B;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,YAAY,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/D,IAAI,QAAQ,EAAE;YACV,oGAA6C,CAAC,GAAG,CAAC,CAAC;SACtD;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,GAAwB;QACjD,IAAI,GAAG,EAAE;YACL,QAAQ,GAAG,CAAC,YAAY,EAAE;gBACtB,KAAK,UAAU;oBACX,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;wBAC1B,GAAG,CAAC,KAAK,GAAG,gEAAY,CAAC,uEAAa,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;qBACtD;oBACD,MAAM;gBACV,KAAK,QAAQ;oBACT,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;wBAC1B,GAAG,CAAC,KAAK,GAAG,gEAAY,CAAC,+DAAS,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;qBAClD;oBACD,MAAM;gBACV,uDAAuD;aAC1D;SACJ;IACL,CAAC;IACD,YAAY;IACZ,kBAAkB;IACV,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,GAAuB;QACtD,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,MAAM,EAAE;YACR,MAAM,EAAE,GAAG,+DAAW,CAAC,iFAAmB,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1D,IAAI,MAAM,CAAC,SAAS,EAAE;gBAClB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aAC7B;iBAAM;gBACH,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC;aAC3B;YACD,OAAO,iBAAiB,GAAG,EAAE,CAAC,OAAO,GAAG,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;SAChG;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,KAAqC;QACxE,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnE,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE;YAC5B,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,EAAE,CAAC;YAClB,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACxB,MAAM,GAAG,GAAG,+DAAW,CAAC,iFAAmB,EAAE,CAAC,CAAC,CAAC;gBAChD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC3C,IAAI,GAAG,EAAE;oBACL,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;oBACnC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;iBACjC;aACJ;YACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,IAAI,MAAM,GAAG,kBAAkB,CAAC;gBAChC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oBACxB,MAAM,IAAI,GAAG,CAAC;iBACjB;gBACD,MAAM,IAAI,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBAC9F,OAAO,MAAM,CAAC;aACjB;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAyB;QAC3D,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE;YAC5B,IAAI,KAAK,CAAC;YACV,IAAI,OAAO,CAAC;YACZ,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC/B,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,UAAU,EAAE;oBACzB,KAAK,GAAG,CAAC,CAAC;oBACV,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;oBACpB,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,EAAE;gBACA,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAClC,OAAO,mBAAmB,GAAG,OAAO,GAAG,gBAAgB,GAAG,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;aACjG;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,YAAY;IACZ,oBAAoB;IACZ,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,GAAyB;QAC1D,IAAI,MAAM,EAAE;YACR,MAAM,GAAG,GAAG,gEAAY,CAAC,wDAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YAC7D,IAAI,MAAM,CAAC,WAAW,EAAE;gBACpB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAChC;iBAAM;gBACH,MAAM,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;aAC9B;YACD,OAAO,mBAAmB,GAAG,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;SACxH;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAA2B;QAC/D,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE;YAC9B,IAAI,KAAK,CAAC;YACV,IAAI,OAAO,CAAC;YACZ,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjC,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,YAAY,EAAE;oBAC3B,KAAK,GAAG,CAAC,CAAC;oBACV,OAAO,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACzC,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,EAAE;gBACA,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACpC,OAAO,qBAAqB,GAAG,OAAO,GAAG,gBAAgB,GAAG,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;aACnG;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,YAAY;IAEJ,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG;QAC1C,IAAI,MAAM,EAAE;YACR,MAAM,UAAU,GAAG,YAAY,CAAC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAChE,IAAI,UAAU,EAAE;gBACZ,IAAI,MAAM,GAAG,UAAU,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACrC,IAAI,CAAC,GAAG,CAAC,EAAE;wBACP,MAAM,IAAI,OAAO,CAAC;qBACrB;oBACD,MAAM,IAAI,WAAW,GAAG,CAAC,GAAG,aAAa,CAAC;oBAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;oBAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;wBACjB,MAAM,IAAI,GAAG,CAAC;qBACjB;oBACD,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,CAAC,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC;aACjB;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAAC,aAAa,EAAE,GAAG;QAChD,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,aAAa,EAAE;YACf,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChD,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACpB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAChD,IAAI,GAAG,GAAG,aAAa,CAAC;oBACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;wBAC5C,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;wBACzB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;4BACzB,sBAAsB;yBACzB;qBACJ;oBACD,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;oBACpD,IAAI,MAAM,IAAI,IAAI,EAAE;wBAChB,MAAM,GAAG,EAAE,CAAC;qBACf;oBACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBACvC,IAAI,IAAI,EAAE;wBACN,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;qBACzD;yBAAM;wBACH,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;qBAC5E;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,aAAa,CAAC,aAAa,EAAE;oBAC7B,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;iBACtC;aACJ;YACD,IAAI,aAAa,CAAC,QAAQ,EAAE;gBACxB,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC/B,MAAM,SAAS,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBAC1D,IAAI,SAAS,EAAE;wBACX,IAAI,MAAM,IAAI,IAAI,EAAE;4BAChB,MAAM,GAAG,EAAE,CAAC;yBACf;wBACD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACvB,IAAI,IAAI,EAAE;gCACN,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;6BAC9B;iCAAM;gCACH,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;6BACjC;wBACL,CAAC,CAAC,CAAC;qBACN;gBACL,CAAC,CAAC,CAAC;aACN;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,YAAY;IAEZ,MAAM,CAAC,QAAQ,CAAC,IAAI;QAChB,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE;YAClB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBAC3B,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;aAC7B;SACJ;IACL,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAAC,aAAa,EAAE,IAAI,EAAE,YAAY;QAC/D,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,aAAa,CAAC,QAAQ,EAAE;YACxB,IAAI,aAAa,CAAC,WAAW,KAAK,UAAU,EAAE;gBAC1C,YAAY,IAAI,aAAa,CAAC,IAAI,GAAG,GAAG,CAAC;aAC5C;YACD,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACnC,YAAY,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAEO,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM;QACnD,MAAM,eAAe,GAAG,kFAAmC,CAAkB,wEAAe,CAAC,CAAC;QAC9F,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3C,sFAA+B,CAAC,MAAM,CAAC,CAAC;QACxC,qFAA8B,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAChC,QAAQ,EAAE,CAAC;SACd;IACL,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ;QACvE,MAAM,IAAI,GAAG,IAAI,gEAAmB,CAAC,gEAAgE,CAAC,CAAC;QACvG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC3C,yGAA2B,CAAC,IAAI,EAAE,IAAI,gEAAmB,CAAC,YAAY,CAAC,EACnE,yFAAuB,EAAE,sFAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACvD,IAAI,CAAC,KAAK,qFAAoB,EAAE;gBAC5B,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3D,MAAM,SAAS,GAAG,EAAE,CAAC;oBACrB,YAAY,CAAC,kBAAkB,CAAC,aAAa,EAAE,SAAS,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC;oBAC9E,qIAA0C,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;wBACrE,IAAI,CAAC,KAAK,qFAAoB,EAAE;4BAC5B,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;yBAC1D;oBACL,CAAC,CAAC,CAAC;iBACN;qBAAM;oBACH,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;iBAC1D;aACJ;QACL,CAAC,CAAC,CAAC;IACX,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG;QAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;YACzD,UAAU,CAAC,GAAG,EAAE;gBACZ,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,QAAQ;QAChC,IAAI,QAAQ,EAAE;YACV,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,KAAK,CAAC,SAAS,EAAE;oBACjB,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;oBACjE,OAAO,KAAK,CAAC,SAAS,CAAC;iBAC1B;gBACD,IAAI,KAAK,CAAC,YAAY,EAAE;oBACpB,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;oBACvE,OAAO,KAAK,CAAC,YAAY,CAAC;iBAC7B;aACJ;iBAAM;gBACH,MAAM,EAAE,GAAG,IAAI,uEAAa,EAAE,CAAC;gBAC/B,EAAE,CAAC,WAAW,GAAG,MAAM,CAAC;gBACxB,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC;gBACjB,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC;aAC5B;SACJ;IACL,CAAC;IAED,uBAAuB;IACvB,4BAA4B;IAC5B,wBAAwB;IACxB,yCAAyC;IACzC,mCAAmC;IACnC,mBAAmB;IACnB,qEAAqE;IACrE,cAAc;IACd,yCAAyC;IACzC,OAAO;IACP,GAAG;IACH,oCAAoC;IACpC,2DAA2D;IAC3D,qHAAqH;IACrH,sCAAsC;IACtC,kCAAkC;IAClC,YAAY;IACZ,OAAO;IACP,GAAG;IACI,MAAM,CAAC,aAAa,CAAC,CAAwB,EAAE,CAAwB,EAAE,OAA6B;QACzG,IAAI,MAAM,GAAkB,IAAI,0EAAa,EAAE,CAAC;QAChD,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;QACrB,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;QAErB,IAAI,OAAO,CAAC,iBAAiB,EAAE;YAC3B,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;SAC3B;aAAM;YACH,OAAO,MAAM,CAAC,WAAW,CAAC;SAC7B;QAGD,IAAI,cAAc,GAAa,EAAE,CAAC;QAClC,cAAc,CAAC,KAAK,GAAG,yFAA0C,CAAC,kBAAkB,CAAC,CAAC;QACtF,cAAc,CAAC,QAAQ,GAAG,EAAE,CAAC;QAC7B,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC/B,IAAI,SAAS,GAAa,EAAE,CAAC;QAC7B,SAAS,CAAC,KAAK,GAAG,yFAA0C,CAAC,aAAa,CAAC,CAAC;QAC5E,SAAS,CAAC,QAAQ,GAAG,EAAE,CAAC;QACxB,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;QAE1B,IAAI,YAAY,GAAG,YAAY,CAAC,qBAAqB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACnG,IAAI,cAAc,GAAG,YAAY,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChG,IAAI,OAAO,CAAC,iBAAiB,EAAE;YAC3B,cAAc,CAAC,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC;YAC5C,SAAS,CAAC,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC;YACzC,MAAM,CAAC,WAAW,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;SACpD;QACD,MAAM,CAAC,OAAO,GAAG,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;QACxE,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;SAC5B;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IACM,MAAM,CAAC,OAAO,CAAC,CAAgB,EAAE,CAAgB,EAAE,OAA6B;QACnF,OAAO,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACzG,CAAC;IACM,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,OAA6B;QACzD,OAAO,YAAY,CAAC,OAAO,CAAC,gEAAY,CAAC,uEAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,gEAAY,CAAC,uEAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACjI,CAAC;IAEM,MAAM,CAAC,qBAAqB,CAAC,CAAwB,EAAE,CAAwB,EAAE,OAA6B;QACjH,IAAI,MAAM,GAAG;YACT,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,EAAE;SACd;QACD,wBAAwB;QACxB,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,EAAE;YAExB,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;YACvB,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAExC,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;YACvB,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAExC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;oBACd,IAAI,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,qFAAwB,EAAE,sFAAyB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;oBACnH,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAC,IAAI,CAAC;oBACzB,IAAI,OAAO,CAAC,iBAAiB,EAAE;wBAC3B,IAAI,IAAI,GAAa,EAAE,CAAC;wBACxB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;wBACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;wBACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;wBACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAC1B;iBACJ;qBAAM;oBACH,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ;wBAC5C,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ;wBAC5C,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;qBAEzC;yBAAM;wBACH,IAAI,QAAQ,GAAY,IAAI,CAAC;wBAC7B,IAAI,OAAO,CAAC,iBAAiB,EAAE;4BAC3B,QAAQ,GAAG,EAAE,CAAC;4BACd,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;4BAC1C,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC;4BACnB,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;gCACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;6BAC9B;yBACJ;wBACD,IAAI,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,uFAA0B,EAAE,sFAAyB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;wBAE7J,IAAI,OAAO,CAAC,cAAc,EAAE;4BACxB,IAAI,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;4BACnF,IAAI,OAAO,CAAC,iBAAiB,EAAE;gCAC3B,IAAI,QAAQ,EAAE;oCACV,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;oCAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iCAC9B;qCAAM;iCAEN;6BACJ;4BACD,MAAM,CAAC,OAAO,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;yBAC/D;wBACD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAC,IAAI,CAAC;qBAC5B;iBACJ;YACL,CAAC,CAAC;YACF,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;oBACd,IAAI,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,kFAAqB,EAAE,sFAAyB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;oBAChH,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAC,IAAI,CAAC;oBACzB,IAAI,OAAO,CAAC,iBAAiB,EAAE;wBAC3B,IAAI,IAAI,GAAa,EAAE,CAAC;wBACxB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;wBACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;wBACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;wBACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAC1B;iBACJ;YACL,CAAC,CAAC;SACL;QACD,YAAY;QACZ,OAAO,MAAM,CAAC;IAClB,CAAC;IACO,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM;QACzD,IAAI,MAAM,GAAG;YACT,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,EAAE;SACd;QAED,IAAI,MAAM,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpC,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,IAAI,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC;gBAClC,IAAI,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC9B,IAAI,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBACzE,IAAI,QAAQ,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;gBACpG,IAAI,QAAQ,IAAI,OAAO,EAAE;oBACrB,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;oBAC1C,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;iBACjD;gBAED,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,EAAE;oBAC5B,IAAI,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,qFAAwB,EAAE,8EAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;oBACnH,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;oBAC/B,IAAI,OAAO,CAAC,iBAAiB,EAAE;wBAC3B,IAAI,IAAI,GAAa,EAAE,CAAC;wBACxB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;wBACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;wBACjB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC;wBACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAC1B;iBACJ;qBAAM;oBACH,IAAI,aAAa,IAAI,WAAW,EAAE;qBACjC;yBAAM;wBACH,IAAI,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,uFAA0B,EAAE,8EAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;wBACrH,IAAI,QAAQ,GAAa,EAAE,CAAC;wBAC5B,IAAI,OAAO,CAAC,iBAAiB,EAAE;4BAC3B,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC;4BACrB,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;4BACrB,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC;4BACvB,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;yBAC1B;wBAED,IAAI,OAAO,CAAC,cAAc,EAAE;4BACxB,IAAI,OAAO,EAAE;gCAET,IAAI,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;gCACtC,IAAI,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;gCAC1C,IAAI,MAAM,GAAG,YAAY,IAAI,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC;gCAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;oCAE7B,IAAI,YAAY,GAAG,IAAI,CAAC;oCACxB,IAAI,YAAY,GAAG,CAAC,EAAE;wCAClB,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;qCACjC;oCACD,IAAI,cAAc,GAAG,IAAI,CAAC;oCAC1B,IAAI,cAAc,GAAG,CAAC,EAAE;wCACpB,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;qCACrC;oCACD,IAAI,YAAY,IAAI,IAAI,IAAI,cAAc,IAAI,IAAI,EAAE;wCAChD,IAAI,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;wCACnG,IAAI,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,EAAE,uFAA0B,EAAE,8EAAiB,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;wCACzI,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;wCAC7C,IAAI,OAAO,CAAC,iBAAiB,EAAE;4CAC3B,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gDACzC,IAAI,aAAa,GAAa,EAAE,CAAC;gDACjC,aAAa,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;gDAC7B,aAAa,CAAC,IAAI,GAAG,OAAO,CAAC;gDAC7B,aAAa,CAAC,GAAG,GAAG,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC;gDACvC,aAAa,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;gDACtC,IAAI,QAAQ,EAAE;oDACV,QAAQ,CAAC,QAAQ,GAAG,CAAC,aAAa,CAAC,CAAC;iDACvC;6CACJ;yCACJ;wCACD,MAAM,CAAC,OAAO,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;qCAC9D;oCACD,IAAI,YAAY,IAAI,IAAI,IAAI,cAAc,IAAI,IAAI,EAAE;wCAChD,IAAI,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC,GAAC,EAAE,EAAE,kFAAqB,EAAE,8EAAiB,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;wCAC3G,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;wCAC1C,IAAI,OAAO,CAAC,iBAAiB,EAAE;4CAC3B,IAAI,QAAQ,EAAE;gDACV,IAAI,IAAI,GAAa,EAAE,CAAC;gDACxB,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;gDAAA,CAAC;gDACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gDACjB,IAAI,CAAC,GAAG,GAAG,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC;gDAC9B,QAAQ,CAAC,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;6CACpD;yCACJ;qCACJ;oCACD,IAAI,YAAY,IAAI,IAAI,IAAI,cAAc,IAAI,IAAI,EAAE;wCAChD,IAAI,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,EAAE,qFAAwB,EAAE,8EAAiB,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;wCAC9G,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;wCAC1C,IAAI,OAAO,CAAC,iBAAiB,EAAE;4CAC3B,IAAI,QAAQ,EAAE;gDACV,IAAI,IAAI,GAAa,EAAE,CAAC;gDACxB,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;gDAAA,CAAC;gDACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gDACjB,IAAI,CAAC,GAAG,GAAG,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC;gDAC9B,QAAQ,CAAC,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;6CACpD;yCACJ;qCACJ;iCACJ;gCACD,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oCAC/D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iCAC9B;6BACJ;iCAAM,IAAI,QAAQ,EAAE;gCACjB,IAAI,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gCACtF,IAAI,OAAO,CAAC,iBAAiB,EAAE;oCAC3B,IAAI,QAAQ,EAAE;wCACV,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;wCACjC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qCAC9B;iCACJ;gCACD,MAAM,CAAC,OAAO,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;6BAC9D;iCAAM;gCACH,IAAI,OAAO,CAAC,iBAAiB,EAAE;oCAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iCAC9B;6BACJ;yBACJ;6BAAM;4BACH,IAAI,OAAO,CAAC,iBAAiB,EAAE;gCAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;6BAC9B;yBACJ;wBACD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;qBAClC;iBACJ;YACL,CAAC,CAAC,CAAC;YACH,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACzB,IAAI,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC;gBAClC,IAAI,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC9B,IAAI,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBACzE,IAAI,QAAQ,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;gBACpG,IAAI,QAAQ,IAAI,OAAO,EAAE;oBACrB,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;oBAC1C,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;iBACjD;gBACD,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,SAAS,EAAE;oBAC1B,IAAI,IAAI,GAAG,IAAI,8EAAiB,EAAE,CAAC;oBACnC,IAAI,CAAC,UAAU,GAAG,kFAAqB,CAAC;oBACxC,IAAI,CAAC,IAAI,GAAG,8EAAiB,CAAC;oBAC9B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;oBACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC1B,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC;oBAC9B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC9B,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;oBAClC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;oBAC/B,IAAI,OAAO,CAAC,iBAAiB,EAAE;wBAC3B,IAAI,IAAI,GAAa,EAAE,CAAC;wBACxB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;wBACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;wBACjB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC;wBACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAC1B;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;QACD,IAAI,MAAM,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpC,IAAI,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,EAAE,kFAAqB,EAAE,8EAAiB,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YACvG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;YAC9B,IAAI,OAAO,CAAC,iBAAiB,EAAE;gBAC3B,IAAI,IAAI,GAAa,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;gBACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gBACjB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;SACJ;QACD,IAAI,MAAM,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpC,IAAI,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,EAAE,qFAAwB,EAAE,8EAAiB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACxG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;YAC9B,IAAI,OAAO,CAAC,iBAAiB,EAAE;gBAC3B,IAAI,IAAI,GAAa,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;gBACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gBACjB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;SACJ;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IACM,MAAM,CAAC,gBAAgB,CAAC,CAAwB,EAAE,CAAwB,EAAE,OAA6B;QAC5G,IAAI,MAAM,GAAG;YACT,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,EAAE;SACd;QACD,mBAAmB;QACnB,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,EAAE;YAC5B,IAAI,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC;YACzB,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC;YACzB,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC1C,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;oBACd,IAAI,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,qFAAwB,EAAE,iFAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBAClH,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;oBAC3B,IAAI,OAAO,CAAC,iBAAiB,EAAE;wBAC3B,IAAI,IAAI,GAAa,EAAE,CAAC;wBACxB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;wBACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;wBACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;wBACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAC1B;oBAED,IAAI,OAAO,CAAC,iBAAiB,EAAE;wBAC3B,IAAI,IAAI,GAAa,EAAE,CAAC;wBACxB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;wBACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;wBACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;wBACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAC1B;iBACJ;qBAAM;oBACH,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;qBAEzC;yBAAM;wBACH,IAAI,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,uFAA0B,EAAE,iFAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;wBAChI,IAAI,WAAW,GAAa,EAAE,CAAC;wBAC/B,WAAW,CAAC,KAAK,GAAG,SAAS,CAAC;wBAC9B,WAAW,CAAC,GAAG,GAAG,SAAS,CAAC;wBAC5B,WAAW,CAAC,QAAQ,GAAG,EAAE,CAAC;wBAC1B,IAAI,cAAc,GAAa,EAAE,CAAC;wBAClC,cAAc,CAAC,KAAK,GAAG,YAAY,CAAC;wBACpC,cAAc,CAAC,GAAG,GAAG,YAAY,CAAC;wBAClC,cAAc,CAAC,QAAQ,GAAG,EAAE,CAAC;wBAC7B,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU;4BAC9G,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;4BAChH,iBAAiB;4BACjB,IAAI,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;4BAClD,IAAI,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;4BAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCAC3C,IAAI,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gCAC1B,IAAI,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;gCAC1D,IAAI,IAAI,IAAI,IAAI,EAAE;oCACd,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;qCAE/C;yCAAM;wCACH,IAAI,OAAO,CAAC,cAAc,EAAE;4CACxB,IAAI,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,uFAA0B,EAAE,8EAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;4CACjH,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;4CACzC,IAAI,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;4CAChE,IAAI,OAAO,CAAC,OAAO,EAAE;gDACjB,MAAM,CAAC,OAAO,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;6CAC9D;4CACD,IAAI,OAAO,CAAC,iBAAiB,EAAE;gDAC3B,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oDACzC,IAAI,aAAa,GAAa,EAAE,CAAC;oDACjC,aAAa,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;oDAC7B,aAAa,CAAC,IAAI,GAAG,OAAO,CAAC;oDAC7B,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC;oDACnC,aAAa,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;oDACtC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;iDAC5C;6CACJ;yCACJ;qCACJ;iCACJ;qCAAM;oCACH,IAAI,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,qFAAwB,EAAE,8EAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;oCAC/G,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;oCACzC,IAAI,OAAO,CAAC,iBAAiB,EAAE;wCAC3B,IAAI,aAAa,GAAa,EAAE,CAAC;wCACjC,aAAa,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;wCAC7B,aAAa,CAAC,IAAI,GAAG,OAAO,CAAC;wCAC7B,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC;wCACnC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;qCAC5C;iCACJ;6BACJ;4BACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCAC3C,IAAI,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gCAC1B,IAAI,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;gCAC1D,IAAI,IAAI,IAAI,IAAI,EAAE;oCACd,IAAI,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,kFAAqB,EAAE,8EAAiB,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;oCAC5G,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;oCACzC,IAAI,OAAO,CAAC,iBAAiB,EAAE;wCAC3B,IAAI,aAAa,GAAa,EAAE,CAAC;wCACjC,aAAa,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;wCAC7B,aAAa,CAAC,IAAI,GAAG,OAAO,CAAC;wCAC7B,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC;wCACnC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;qCAC5C;iCACJ;6BACJ;4BACD,YAAY;4BACZ,oBAAoB;4BACpB,IAAI,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;4BACxD,IAAI,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;4BACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCAC9C,IAAI,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gCAC7B,IAAI,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;gCAC7D,IAAI,IAAI,IAAI,IAAI,EAAE;oCACd,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;qCAE/C;yCAAM;wCACH,IAAI,OAAO,CAAC,cAAc,EAAE;4CACxB,IAAI,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,uFAA0B,EAAE,8EAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;4CACjH,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;4CACzC,IAAI,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;4CAChE,IAAI,OAAO,CAAC,OAAO,EAAE;gDACjB,MAAM,CAAC,OAAO,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;6CAC9D;4CACD,IAAI,OAAO,CAAC,iBAAiB,EAAE;gDAC3B,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oDACzC,IAAI,aAAa,GAAa,EAAE,CAAC;oDACjC,aAAa,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;oDAC7B,aAAa,CAAC,IAAI,GAAG,OAAO,CAAC;oDAC7B,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC;oDACnC,aAAa,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;oDACtC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;iDAC/C;6CACJ;yCACJ;qCACJ;iCACJ;qCAAM;oCACH,IAAI,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,qFAAwB,EAAE,8EAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;oCAC/G,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;oCACzC,IAAI,OAAO,CAAC,iBAAiB,EAAE;wCAC3B,IAAI,aAAa,GAAa,EAAE,CAAC;wCACjC,aAAa,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;wCAC7B,aAAa,CAAC,IAAI,GAAG,OAAO,CAAC;wCAC7B,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC;wCACnC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;qCAC/C;iCACJ;6BACJ;4BACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCAC9C,IAAI,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gCAC7B,IAAI,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;gCAC7D,IAAI,IAAI,IAAI,IAAI,EAAE;oCACd,IAAI,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,kFAAqB,EAAE,8EAAiB,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;oCAC5G,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;oCACzC,IAAI,OAAO,CAAC,iBAAiB,EAAE;wCAC3B,IAAI,aAAa,GAAa,EAAE,CAAC;wCACjC,aAAa,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;wCAC7B,aAAa,CAAC,IAAI,GAAG,OAAO,CAAC;wCAC7B,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC;wCACnC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;qCAC/C;iCACJ;6BACJ;4BACD,YAAY;yBACf;wBAED,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;wBAC3B,IAAI,OAAO,CAAC,iBAAiB,EAAE;4BAE3B,IAAI,IAAI,GAAa,EAAE,CAAC;4BACxB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;4BACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;4BACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;4BACf,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;4BACnB,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gCACjC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;6BACnD;4BACD,IAAI,cAAc,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gCACpC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;6BACtD;4BACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;yBAC1B;qBACJ;iBACJ;YACL,CAAC,CAAC;YACF,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;oBACd,IAAI,OAAO,CAAC,iBAAiB,EAAE;wBAC3B,IAAI,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,kFAAqB,EAAE,iFAAoB,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;wBAC/G,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;wBAC3B,IAAI,OAAO,CAAC,iBAAiB,EAAE;4BAC3B,IAAI,IAAI,GAAa,EAAE,CAAC;4BACxB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;4BACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;4BACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;4BACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;yBAC1B;qBACJ;iBACJ;YACL,CAAC,CAAC;SACL;QACD,YAAY;QACZ,OAAO,MAAM,CAAC;IAClB,CAAC;IAGO,MAAM,CAAC,YAAY,CAAC,GAAW,EAAE,UAA6B,EAAE,IAAiB,EAAE,MAAM,EAAE,QAAQ;QACvG,IAAI,IAAI,GAAG,IAAI,8EAAiB,EAAE,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,MAAM,EAAC,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAC,KAAI,CAAC;QACrD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/D,OAAO,IAAI,CAAC;IAChB,CAAC;IACO,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ;QAC1D,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC;QACtB,IAAI,IAAI,GAAG,IAAI,iFAAoB,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QACzB,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;aACnD;SACJ;IACL,CAAC;IACM,MAAM,CAAC,WAAW,CAAC,OAAO;QAC7B,IAAI,MAAM,GAA0B;YAChC,MAAM,EAAE,OAAO;YACf,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE;SACd,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;YAC7C,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC5C,IAAI,IAAI,GAAG,IAAI,kFAAqB,EAAE,CAAC;gBACvC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;gBACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACrC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;YACzC,CAAC,CAAC,CAAC;SACN;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAhuCD,YAAY;AAEE,4BAAe,GAAiB,IAAI,0CAAO,EAAE,CAAC;;;;;;;;;;;;;;;;ACpMzD,MAAM,UAAU;IAEZ,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO;QAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,GAAC,KAAK,GAAC,GAAG,GAAG,OAAO,CAAC,CAAC;IACtE,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO;QAC9B,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC;IAC5E,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO;QAC7B,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC;IAC3E,CAAC;;;;;;;;;;;;;;;;;;;;ACXuB;AAC6B;AAElD,MAAM,aAAa;IAQf,MAAM,CAAC,UAAU,CAAC,MAAc;QACnC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC;QAC9B,sFAAiC,CAAC,CAAC,CAAC,EAAE;YAClC,aAAa,CAAC,UAAU,GAAG,CAAC;YAC5B,IAAI,CAAC,IAAI,aAAa,CAAC,UAAU,GAAG,CAAC,EAAE;gBACnC,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC;aAC1D;QACL,CAAC,CAAC,CAAC;QACH,IAAI,aAAa,CAAC,UAAU,EAAE;YAC1B,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAC7D,IAAI,YAAY,EAAE;gBACd,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC1C,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ,IAAI,QAAQ,CAAC,UAAU,GAAG,CAAC,EAAE;oBAChF,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC;oBAChD,IAAI,GAAG,EAAE;wBACL,MAAM,GAAG,GAAG,6CAAM,EAAE,CAAC;wBACrB,MAAM,YAAY,GAAG,6CAAM,CAAC,GAAG,CAAC,CAAC;wBACjC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC;wBAC7C,IAAI,IAAI,GAAG,QAAQ,EAAE;4BACjB,8EAAyB,EAAE,CAAC;4BAC5B,OAAO,IAAI,CAAC;yBACf;qBACJ;iBACJ;aACJ;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,eAAe;QACvC,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,eAAe,IAAI,OAAO,eAAe,CAAC,UAAU,KAAK,QAAQ,IAAI,eAAe,CAAC,UAAU,GAAG,CAAC,EAAE;YACrG,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC;SAC3C;QACD,IAAI,UAAU,KAAK,aAAa,CAAC,UAAU,EAAE;YACzC,aAAa,CAAC,UAAU,GAAG,UAAU,CAAC;YACtC,IAAI,UAAU,GAAG,CAAC,EAAE;gBAChB,aAAa,CAAC,kBAAkB,EAAE,CAAC;gBACnC,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC;aAC1D;iBAAM;gBACH,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;aACvC;SACJ;IACL,CAAC;IAEO,MAAM,CAAC,kBAAkB;QAC7B,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,aAAa,CAAC,MAAM,EAAE;YACpD,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;YACjC,aAAa,CAAC,MAAM,CAAC,iBAAiB,CAClC,GAAS,EAAE;gBACP,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;gBAC9D,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;YACpE,CAAC,CACJ,CAAC;SACL;IACL,CAAC;IAEO,MAAM,CAAC,MAAM,CAAC,OAAc;QAChC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,aAAa,CAAC,WAAW,IAAI,aAAa,CAAC,UAAU,EAAE;YACvD,aAAa,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBACpC,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC;gBAChD,IAAI,GAAG,EAAE;oBACL,MAAM,GAAG,GAAG,6CAAM,EAAE,CAAC;oBACrB,MAAM,YAAY,GAAG,6CAAM,CAAC,GAAG,CAAC,CAAC;oBACjC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBACpC,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,GAAG,KAAK,CAAC;oBAClD,MAAM,WAAW,GAAG,QAAQ,GAAG,IAAI,CAAC;oBACpC,IAAI,WAAW,IAAI,CAAC,EAAE;wBAClB,8EAAyB,EAAE,CAAC;qBAC/B;yBAAM;wBACH,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;qBACrC;iBACJ;YACL,CAAC,EAAE,OAAO,CAAC,CAAC;SACf;IACL,CAAC;;AApFc,wBAAU,GAAG,CAAC,CAAC;AAGf,yBAAW,GAAG,KAAK,CAAC;AAEpB,0BAAY,GAAG,EAAE,CAAC;AAiFlB,yBAAW,GAAG,GAAS,EAAE;IACpC,IAAI,aAAa,CAAC,UAAU,GAAG,CAAC,EAAE;QAC9B,MAAM,YAAY,GAAG,6CAAM,EAAE,CAAC,MAAM,EAAE,CAAC;QACvC,IAAI,YAAY,KAAK,aAAa,CAAC,YAAY,EAAE;YAC7C,aAAa,CAAC,YAAY,GAAG,YAAY,CAAC;YAC1C,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;SACtD;KACJ;AACL,CAAC;;;;;;;;;;;;;;;;;;;ACnGiC;AACgB;AACP;AAE/C,WAAW;AACJ,MAAM,UAAU;IAooBnB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY;QAClC,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,EAAE;YACrC,OAAO,YAAY,CAAC,MAAM,CAAC;SAC9B;aAAO;YACJ,OAAO,IAAI,CAAC;SACf;QAED,kDAAkD;QAClD,wDAAwD;QACxD,0CAA0C;QAC1C,4CAA4C;QAC5C,4BAA4B;QAC5B,WAAW;QACX,0DAA0D;QAC1D,uEAAuE;QACvE,2BAA2B;QAC3B,gCAAgC;QAChC,eAAe;QACf,WAAW;QACX,OAAO;QACP,UAAU;QACV,kBAAkB;QAClB,GAAG;IACP,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAY;QACpC,IAAI,IAAI,EAAE;YACN,IAAI,MAAM,GAAG,kEAAsB,EAAE,CAAC;YACtC,IAAI,MAAM,EAAE;gBACR,IAAI,UAAU,GAAG,4EAAgC,CAAC,MAAM,CAAC,CAAC;gBAC1D,IAAI,UAAU,EAAE;oBACZ,MAAM,GAAG,UAAU,CAAC;iBACvB;aACJ;YACD,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACnD,OAAO,MAAM,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC;SAChD;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY;QACtC,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,IAAI,YAAY,EAAE;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,IAAI,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,EAAE;oBAC7B,OAAO,CAAC,MAAM,CAAC,CAAC;iBACnB;gBACD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;oBAC7D,IAAI,MAAM,EAAE;wBACR,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;qBAClC;iBACJ;aACJ;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI;QAC/B,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,MAAM,EAAE;YACR,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,KAAK,sCAAsC,CAAC;gBACvF,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,KAAK,sCAAsC,CAAC;gBACrF,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,KAAK,sCAAsC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;gBAC9G,OAAO,MAAM,CAAC;aACjB;iBAAM;gBACH,OAAO,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;aACrD;SACJ;aAAM;YACH,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IACD,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI;QAClC,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,MAAM,EAAE;YACR,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACjB,OAAO,IAAI,CAAC;aACf;iBAAM;gBACH,OAAO,UAAU,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;aACxD;SACJ;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IACD,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,IAAI;QACvC,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,MAAM,EAAE;YACR,IAAI,MAAM,CAAC,SAAS,EAAE;gBAClB,OAAO,MAAM,CAAC;aACjB;iBAAM;gBACH,OAAO,UAAU,CAAC,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;aAC7D;SACJ;aAAM;YACH,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IACD,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY;QAC/C,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,MAAM,EAAE;YACR,IAAI,MAAM,CAAC,SAAS,EAAE;gBAClB,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;oBAC9C,OAAO,EAAE,CAAC,OAAO,KAAK,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC;gBAClD,CAAC,CAAC,CAAC;gBACH,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;oBACzB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;iBACjB;qBAAM;oBACH,OAAO,UAAU,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;iBACrE;aACJ;iBAAM;gBACH,OAAO,UAAU,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;aACrE;SACJ;aAAM;YACH,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IACD,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI;QACnC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,sCAAsC,EAAE;gBACjF,2EAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC5D,OAAO,CAAC,MAAM,CAAC,CAAC;oBAChB,OAAO;gBACX,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,MAAM,MAAM,GAAG,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACxD,IAAI,MAAM,EAAE;oBACR,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,KAAK,sCAAsC,EAAE;wBACvF,2EAAyB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;4BAChE,OAAO,CAAC,MAAM,CAAC,CAAC;wBACpB,CAAC,CAAC,CAAC;qBACN;yBAAM,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,KAAK,sCAAsC,CAAC;wBAC5F,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,KAAK,sCAAsC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;wBAC9G,2EAAyB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;4BAC9D,OAAO,CAAC,MAAM,CAAC,CAAC;wBACpB,CAAC,CAAC,CAAC;qBACN;yBAAM,IAAI,MAAM,CAAC,mBAAmB,EAAE;wBACnC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC;wBACnC,OAAO;qBACV;yBAAM;wBACH,OAAO,CAAC,IAAI,CAAC,CAAC;wBACd,OAAM;qBACT;iBACJ;qBAAM;oBACH,OAAO,CAAC,IAAI,CAAC;oBACb,OAAM;iBACT;gBACD,6CAA6C;gBAC7C,yCAAyC;gBACzC,UAAU;gBACV,oBAAoB;gBACpB,GAAG;aACN;QACL,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,IAAI;QACtC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,sCAAsC,EAAE;YACjF,OAAO,2EAAyB,CAAC,IAAI,CAAC,UAAU,CAAC;SACpD;aAAM;YACH,MAAM,MAAM,GAAG,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,MAAM,EAAE;gBACR,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,KAAK,sCAAsC,EAAE;oBACvF,OAAO,2EAAyB,CAAC,MAAM,CAAC,YAAY,CAAC;iBACxD;qBAAM,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,KAAK,sCAAsC,CAAC;oBAC5F,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,KAAK,sCAAsC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;oBAC9G,OAAO,2EAAyB,CAAC,MAAM,CAAC,UAAU,CAAC;iBACtD;qBAAM,IAAI,MAAM,CAAC,mBAAmB,EAAE;oBACnC,OAAO,wCAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC;iBACxC;qBAAM;oBACH,OAAO,wCAAE,CAAC,IAAI,CAAC,CAAC;iBACnB;aACJ;iBAAM;gBACH,OAAO,wCAAE,CAAC,IAAI,CAAC,CAAC;aACnB;SACJ;IACL,CAAC;IACD,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,IAAI;QACzC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,IAAI,sCAAsC,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,KAAK,sCAAsC,IAAI,IAAI,CAAC,cAAc,EAAE;gBAC/L,2EAAyB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC9D,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wBAC7D,OAAO,CAAC,CAAC,CAAC,CAAC;oBACf,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACN;iBACD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,sCAAsC,EAAE;gBACjF,2EAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC5D,OAAO,CAAC;wBACJ,aAAa,EAAE,KAAK;wBACpB,QAAQ,EAAE,KAAK;wBACf,KAAK,EAAE,MAAM;wBACb,UAAU,EAAE,IAAI;qBACnB,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,MAAM,MAAM,GAAG,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACxD,IAAI,MAAM,EAAE;oBACR,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,KAAK,sCAAsC,EAAE;wBACvF,2EAAyB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;4BAChE,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gCAC7D,OAAO,CAAC,CAAC,CAAC,CAAC;4BACf,CAAC,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;qBACN;yBAAM,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,KAAK,sCAAsC,CAAC;wBAC5F,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,KAAK,sCAAsC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;wBAC9G,2EAAyB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;4BAC9D,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gCAC7D,OAAO,CAAC,CAAC,CAAC,CAAC;4BACf,CAAC,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;qBACN;yBAAM;wBACH,OAAO,CAAC,IAAI,CAAC,CAAC;qBACjB;iBACJ;qBAAM;oBACH,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;aACJ;QACL,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,UAAU;QACjD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,IAAI,MAAM,EAAE;gBACR,MAAM,MAAM,GAAG;oBACX,aAAa,EAAE,KAAK;oBACpB,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,MAAM;oBACb,UAAU,EAAE,IAAI;iBACnB,CAAC;gBACF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC7B,IAAI,MAAM,EAAE;oBACR,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;oBACpD,IAAI,KAAK,EAAE;wBACP,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;wBAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,sCAAsC,EAAE;4BACvD,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,KAAK,sCAAsC,EAAE;gCACrF,2EAAyB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;oCAC1D,IAAI,GAAG,EAAE;wCACL,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;wCACnB,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;4CACpC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;4CACvB,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gDACjD,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;6CAC7C;yCACJ;wCACD,OAAO,CAAC,MAAM,CAAC,CAAC;qCACnB;yCAAM;wCACH,OAAO,CAAC,IAAI,CAAC,CAAC;qCACjB;gCACL,CAAC,CAAC,CAAC;6BACN;iCAAM;gCACH,OAAO,CAAC,MAAM,CAAC,CAAC;6BACnB;yBACJ;6BAAM,IAAI,KAAK,CAAC,IAAI,KAAK,sCAAsC,EAAE;4BAC9D,2EAAyB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gCAClD,IAAI,GAAG,EAAE;oCACL,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;oCACvB,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;oCACnB,OAAO,CAAC,MAAM,CAAC,CAAC;iCACnB;qCAAM;oCACH,OAAO,CAAC,IAAI,CAAC,CAAC;iCACjB;4BACL,CAAC,CAAC,CAAC;yBACN;6BAAM;4BACH,OAAO,CAAC,MAAM,CAAC,CAAC;yBACnB;qBACJ;yBAAM;wBACH,OAAO,CAAC,MAAM,CAAC,CAAC;qBACnB;iBACJ;qBAAM;oBACH,OAAO,CAAC,MAAM,CAAC,CAAC;iBACnB;aACJ;iBAAM;gBACH,OAAO,CAAC,MAAM,CAAC,CAAC;aACnB;QACL,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,IAAI;QACvC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,2FAA2F;YAC3F,sEAAsE;YACtE,0BAA0B;YAC1B,SAAS;YACT,SAAS;YACT,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,sCAAsC,EAAE;gBACjF,4EAA0B,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC9D,OAAO,CAAC,MAAM,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,MAAM,MAAM,GAAG,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACxD,IAAI,MAAM,EAAE;oBACR,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,KAAK,sCAAsC,EAAE;wBACvF,4EAA0B,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;4BAClE,OAAO,CAAC,MAAM,CAAC,CAAC;wBACpB,CAAC,CAAC,CAAC;qBACN;yBAAM,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,KAAK,sCAAsC,CAAC;wBAC5F,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,KAAK,sCAAsC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;wBAC9G,4EAA0B,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;4BAChE,OAAO,CAAC,MAAM,CAAC,CAAC;wBACpB,CAAC,CAAC,CAAC;qBACN;yBAAM;wBACH,OAAO,CAAC,IAAI,CAAC,CAAC;qBACjB;iBACJ;qBAAM;oBACH,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;aACJ;QACL,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI;QAChC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,KAAK,sCAAsC,EAAE;YACnF,OAAO,IAAI,CAAC,YAAY,CAAC;SAC5B;aAAM,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,sCAAsC,CAAC;YACxF,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,sCAAsC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACxG,OAAO,IAAI,CAAC,UAAU,CAAC;SAC1B;aAAM;YACH,MAAM,MAAM,GAAG,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,MAAM,EAAE;gBACR,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,KAAK,sCAAsC,EAAE;oBACvF,OAAO,MAAM,CAAC,YAAY,CAAC;iBAC9B;qBAAM,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,KAAK,sCAAsC,CAAC;oBAC5F,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,KAAK,sCAAsC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;oBAC9G,OAAO,MAAM,CAAC,UAAU,CAAC;iBAC5B;qBAAM;oBACH,OAAO,IAAI,CAAC;iBACf;aACJ;iBAAM;gBACH,OAAO,IAAI,CAAC;aACf;SACJ;IACL,CAAC;IACD,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE;QAC7B,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE;YACjB,OAAO,MAAM,CAAC;SACjB;QACD,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC9B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3C,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACzC,IAAI,GAAG,EAAE;wBACL,OAAO,GAAG,CAAC;qBACd;iBACJ;gBACD,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE;oBACf,OAAO,IAAI,CAAC;iBACf;aACJ;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW;QAC1D,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC3D,IAAI,MAAM,EAAE;YACR,IAAI,MAAM,CAAC,WAAW,KAAK,WAAW,EAAE;gBACpC,OAAO,MAAM,CAAC;aACjB;iBAAM;gBACH,OAAO,UAAU,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;aACxE;SACJ;aAAM;YACH,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IACD,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS;QACxD,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC3D,IAAI,MAAM,EAAE;YACR,IAAI,MAAM,CAAC,YAAY,EAAE;gBACrB,IAAI,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC;gBAE3E,IAAI,OAAO,EAAE;oBACT,OAAO,MAAM,CAAC;iBACjB;qBACI;oBACD,OAAO,UAAU,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;iBACtE;aACJ;iBAAM;gBACH,OAAO,UAAU,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;aACtE;SACJ;aAAM;YACH,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IAED,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI;QACrC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,IAAI,MAAM,CAAC;YACX,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACzD,MAAM,GAAG,MAAM,CAAC;gBAEhB,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;oBACzB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC5C,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;wBAC3D,OAAO,UAAU,CAAC,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;oBACzE,CAAC,CAAC,CAAC;oBACH,OAAO,CAAC,MAAM,CAAC,CAAC;iBACnB;qBAAM;oBACH,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,uBAAuB,CAAC,KAAK,EAAE,WAAW;QAC7C,IAAI,KAAK,IAAI,WAAW,EAAE;YACtB,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,KAAK,EAAE;gBACP,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;gBAClC,IAAI,MAAM,EAAE;oBACR,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;iBACxB;aACJ;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,CAAC,gBAAgB,CAAC,IAAI;QACxB,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;YACnB,MAAM,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,EAAE,EAAE;gBACJ,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC5B,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE;wBACf,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;qBACpB;gBACL,CAAC,CAAC,CAAC;aACN;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAjjCc,uBAAY,GAAG;IAC1B,eAAe;IACf,sCAAsC,EAAE;QACpC,mCAAmC;QACnC,wEAAwE;QACxE,IAAI;QACJ,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,OAAO,CAAC,QAAQ,CAAC;QAC5B,CAAC;QACD,SAAS,EAAE,UAAU,OAAO;YACxB,OAAO,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC;QACD,cAAc,EAAE,UAAU,OAAO;YAC7B,OAAO,OAAO,CAAC,QAAQ,CAAC;QAC5B,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC;KACJ;IACD,YAAY;IACZ,iBAAiB;IACjB,sCAAsC,EAAE;QACpC,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,aAAa,EAAE,UAAU,OAAO;YAC5B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,cAAc,EAAE,UAAU,OAAO;YAC7B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;KACJ;IACD,YAAY;IACZ,oBAAoB;IACpB,sCAAsC,EAAE;QACpC,SAAS,EAAE,UAAU,OAAO;YACxB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,gBAAgB,EAAE,UAAU,OAAO;YAC/B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;KACJ;IACD,YAAY;IACZ,oBAAoB;IACpB,sCAAsC,EAAE,EAAE;IAC1C,YAAY;IACZ,oBAAoB;IACpB,sCAAsC,EAAE;QACpC,SAAS,EAAE,UAAU,OAAO;YACxB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,gBAAgB,EAAE,UAAU,OAAO;YAC/B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;KACJ;IACD,YAAY;IACZ,oBAAoB;IACpB,sCAAsC,EAAE,EAAE;IAC1C,YAAY;IACZ,eAAe;IACf,sCAAsC,EAAE;QACpC,gBAAgB,EAAE,UAAU,OAAO;YAC/B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;KACJ;IACD,YAAY;IACZ,gBAAgB;IAChB,sCAAsC,EAAE;QACpC,SAAS,EAAE,UAAU,OAAO;YACxB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACrE,CAAC;QACD,cAAc,EAAE,UAAU,OAAO;YAC7B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,aAAa,EAAE,UAAU,OAAO;YAC5B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;KACJ;IACD,YAAY;IACZ,cAAc;IACd,sCAAsC,EAAE;QACpC,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACnD,CAAC;QACD,aAAa,EAAE,UAAU,OAAO;YAC5B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,iCAAiC;QACjC,wEAAwE;QACxE,KAAK;QACL,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,cAAc,EAAE,UAAU,OAAO;YAC7B,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACnD,CAAC;KACJ;IACD,YAAY;IACZ,cAAc;IACd,sCAAsC,EAAE;QACpC,SAAS,EAAE,UAAU,OAAO;YACxB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;KACJ;IACD,YAAY;IACZ,iBAAiB;IACjB,sCAAsC,EAAE;QACpC,SAAS,EAAE,UAAU,OAAO;YACxB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACrE,CAAC;QACD,cAAc,EAAE,UAAU,OAAO;YAC7B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,aAAa,EAAE,UAAU,OAAO;YAC5B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;KACJ;IACD,YAAY;IACZ,cAAc;IACd,sCAAsC,EAAE;QACpC,SAAS,EAAE,UAAU,OAAO;YACxB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACrE,CAAC;QACD,cAAc,EAAE,UAAU,OAAO;YAC7B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,aAAa,EAAE,UAAU,OAAO;YAC5B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;KACJ;IACD,YAAY;IACZ,cAAc;IACd,sCAAsC,EAAE;QACpC,SAAS,EAAE,UAAU,OAAO;YACxB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,OAAO,EAAE,UAAU,OAAO;YACtB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,cAAc,EAAE,UAAU,OAAO;YAC7B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,OAAO,EAAE,UAAU,OAAO;YACtB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,OAAO,EAAE,UAAU,OAAO;YACtB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACrE,CAAC;QACD,aAAa,EAAE,UAAU,OAAO;YAC5B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,IAAI,EAAE,UAAU,OAAO;YACnB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;KACJ;IACD,YAAY;IACZ,kBAAkB;IAClB,sCAAsC,EAAE;QACpC,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;KACJ;IACD,YAAY;IACZ,6BAA6B;IAC7B,sCAAsC,EAAE;QACpC,oBAAoB,EAAE,UAAU,OAAO;YACnC,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC;KACJ;IACD,YAAY;IACZ,kBAAkB;IAClB,sCAAsC,EAAE;QACpC,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC;QACD,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,SAAS,EAAE,UAAU,OAAO;YACxB,OAAO,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC;QACD,cAAc,EAAE,UAAU,OAAO;YAC7B,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ;IACD,YAAY;IACZ,cAAc;IACd,sCAAsC,EAAE;QACpC,SAAS,EAAE,UAAU,OAAO;YACxB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,OAAO,EAAE,UAAU,OAAO;YACtB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,cAAc,EAAE,UAAU,OAAO;YAC7B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,OAAO,EAAE,UAAU,OAAO;YACtB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,OAAO,EAAE,UAAU,OAAO;YACtB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACrE,CAAC;QACD,aAAa,EAAE,UAAU,OAAO;YAC5B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;KACJ;IACD,YAAY;CACf,CAAC;AAEa,oBAAS,GAAG;IACvB,eAAe;IACf,sCAAsC,EAAE;QACpC,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,IAAI,CAAC,CAAC,8DAA8D;QAC/E,CAAC;QACD,MAAM,EAAE,UAAU,OAAO;YACrB,OAAO,IAAI,CAAC,CAAC,8DAA8D;QAC/E,CAAC;QACD,eAAe,EAAE,UAAU,OAAO;YAC9B,OAAO,IAAI,CAAC,CAAC,8DAA8D;QAC/E,CAAC;QACD,iBAAiB,EAAE,UAAU,OAAO;YAChC,OAAO,IAAI,CAAC,CAAC,8DAA8D;QAC/E,CAAC;QACD,MAAM,EAAE,UAAU,OAAO;YACrB,OAAO,IAAI,CAAC,CAAC,8DAA8D;QAC/E,CAAC;QACD,mCAAmC;QACnC,wEAAwE;QACxE,IAAI;QACJ,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,OAAO,CAAC,QAAQ,CAAC;QAC5B,CAAC;QACD,SAAS,EAAE,UAAU,OAAO;YACxB,OAAO,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC;QACD,cAAc,EAAE,UAAU,OAAO;YAC7B,OAAO,OAAO,CAAC,QAAQ,CAAC;QAC5B,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC;QACD,aAAa,EAAE,UAAU,OAAO;YAC5B,OAAO,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC;QAC9C,CAAC;QACD,YAAY,EAAE,UAAU,OAAO;YAC3B,OAAO,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC;QAC9C,CAAC;KACJ;IACD,YAAY;IACZ,iBAAiB;IACjB,sCAAsC,EAAE;QACpC,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,aAAa,EAAE,UAAU,OAAO;YAC5B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,cAAc,EAAE,UAAU,OAAO;YAC7B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;KAEJ;IACD,YAAY;IACZ,oBAAoB;IACpB,sCAAsC,EAAE;QACpC,SAAS,EAAE,UAAU,OAAO;YACxB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,gBAAgB,EAAE,UAAU,OAAO;YAC/B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;KACJ;IACD,YAAY;IACZ,oBAAoB;IACpB,sCAAsC,EAAE,EAAE;IAC1C,YAAY;IACZ,oBAAoB;IACpB,sCAAsC,EAAE;QACpC,SAAS,EAAE,UAAU,OAAO;YACxB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,gBAAgB,EAAE,UAAU,OAAO;YAC/B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;KACJ;IACD,YAAY;IACZ,oBAAoB;IACpB,sCAAsC,EAAE,EAAE;IAC1C,YAAY;IACZ,eAAe;IACf,sCAAsC,EAAE;QACpC,gBAAgB,EAAE,UAAU,OAAO;YAC/B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,SAAS,EAAE,UAAU,OAAO;YACxB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;KACJ;IACD,YAAY;IACZ,gBAAgB;IAChB,sCAAsC,EAAE;QACpC,SAAS,EAAE,UAAU,OAAO;YACxB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACrE,CAAC;QACD,cAAc,EAAE,UAAU,OAAO;YAC7B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,aAAa,EAAE,UAAU,OAAO;YAC5B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;KACJ;IACD,YAAY;IACZ,cAAc;IACd,sCAAsC,EAAE;QACpC,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACnD,CAAC;QACD,aAAa,EAAE,UAAU,OAAO;YAC5B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,iCAAiC;QACjC,wEAAwE;QACxE,KAAK;QACL,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,cAAc,EAAE,UAAU,OAAO;YAC7B,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACnD,CAAC;KACJ;IACD,YAAY;IACZ,cAAc;IACd,sCAAsC,EAAE;QACpC,SAAS,EAAE,UAAU,OAAO;YACxB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;KACJ;IACD,YAAY;IACZ,iBAAiB;IACjB,sCAAsC,EAAE;QACpC,SAAS,EAAE,UAAU,OAAO;YACxB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACrE,CAAC;QACD,cAAc,EAAE,UAAU,OAAO;YAC7B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,aAAa,EAAE,UAAU,OAAO;YAC5B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;KACJ;IACD,YAAY;IACZ,cAAc;IACd,sCAAsC,EAAE;QACpC,SAAS,EAAE,UAAU,OAAO;YACxB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACrE,CAAC;QACD,cAAc,EAAE,UAAU,OAAO;YAC7B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,aAAa,EAAE,UAAU,OAAO;YAC5B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;KACJ;IACD,YAAY;IACZ,cAAc;IACd,sCAAsC,EAAE;QACpC,SAAS,EAAE,UAAU,OAAO;YACxB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,OAAO,EAAE,UAAU,OAAO;YACtB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,cAAc,EAAE,UAAU,OAAO;YAC7B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,OAAO,EAAE,UAAU,OAAO;YACtB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,OAAO,EAAE,UAAU,OAAO;YACtB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACrE,CAAC;QACD,aAAa,EAAE,UAAU,OAAO;YAC5B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,IAAI,EAAE,UAAU,OAAO;YACnB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;KACJ;IACD,YAAY;IACZ,kBAAkB;IAClB,sCAAsC,EAAE;QACpC,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;KACJ;IACD,YAAY;IACZ,6BAA6B;IAC7B,sCAAsC,EAAE;QACpC,oBAAoB,EAAE,UAAU,OAAO;YACnC,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC;KACJ;IACD,YAAY;IACZ,kBAAkB;IAClB,sCAAsC,EAAE;QACpC,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC;QACD,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,SAAS,EAAE,UAAU,OAAO;YACxB,OAAO,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC;QACD,cAAc,EAAE,UAAU,OAAO;YAC7B,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ;IACD,YAAY;IACZ,cAAc;IACd,sCAAsC,EAAE;QACpC,SAAS,EAAE,UAAU,OAAO;YACxB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,WAAW,EAAE,UAAU,OAAO;YAC1B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,OAAO,EAAE,UAAU,OAAO;YACtB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,cAAc,EAAE,UAAU,OAAO;YAC7B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,OAAO,EAAE,UAAU,OAAO;YACtB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,OAAO,EAAE,UAAU,OAAO;YACtB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACrE,CAAC;QACD,aAAa,EAAE,UAAU,OAAO;YAC5B,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,UAAU,OAAO;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;QACD,UAAU,EAAE,UAAU,OAAO;YACzB,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtE,CAAC;KACJ;IACD,YAAY;CACf,CAAC;;;;;;;;;;;;;;;;;ACvoBqG;AAGpG,MAAM,iBAAiB;IAE1B,MAAM,CAAC,iBAAiB,CAAC,IAAU,EAAE,MAAM,EAAE,iBAAiB,GAAG,KAAK;QAClE,IAAI,IAAI,IAAI,MAAM,EAAE;YAChB,iBAAiB,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;YACnF,IAAI,iBAAiB,IAAI,IAAI,CAAC,OAAO,EAAE;gBACnC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACxB;SACJ;IACL,CAAC;IAED,MAAM,CAAC,yBAAyB,CAAC,KAAiB,EAAE,MAAM,EAAE,iBAAiB,GAAG,KAAK;QACjF,IAAI,KAAK,EAAE;YACP,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACd,MAAM,CAAC,CAAC,CAAC,CAAC;gBACV,iBAAiB,CAAC,yBAAyB,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;gBACnF,IAAI,iBAAiB,IAAI,CAAC,CAAC,OAAO,EAAE;oBAChC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;iBACrB;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,IAAU,EAAE,QAAgB;QAC5C,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,IAAI,EAAE;YACN,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;SAChF;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,KAAiB,EAAE,QAAgB;QACnE,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,KAAK,EAAE;YACP,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACd,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBACzB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBAClB;qBAAM;oBACH,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;iBAChF;YACL,CAAC,CAAC,CAAC;SACN;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,IAAU,EAAE,QAAgB;QAC/C,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,IAAI,EAAE;YACN,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;SACnF;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,MAAM,CAAC,uBAAuB,CAAC,KAAiB,EAAE,QAAgB;QACrE,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,KAAK,EAAE;YACP,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACd,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBACzB,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACvB;qBAAM;oBACH,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,uBAAuB,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;iBACnF;YACL,CAAC,CAAC,CAAC;YACH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAC5B;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,KAAiB,EAAE,UAAkB,EAAE,YAAY;QAClE,IAAI,UAAU,KAAK,CAAC,EAAE;YAClB,YAAY,CAAC,KAAK,CAAC,CAAC;SACvB;aAAM;YACH,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACxC,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBAC7B,iBAAiB,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;gBACnF,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAmB,EAAE,CAAW,EAAE,CAAW,EAAE,CAAW;QAC3E,IAAI,MAAM,EAAE;YACR,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,MAAM,EAAE;gBACR,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAClC,IAAI,MAAM,EAAE;oBACR,OAAO,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;iBAC7B;aACJ;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,MAAmB,EAAE,CAAW,EAAE,CAAW,EAAE,CAAW;QAC1E,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,GAAG,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;SACrC;QACD,IAAI,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,GAAG,EAAE,CAAC;YACZ,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;SAC/B;QACD,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,EAAE,EAAE;YACL,EAAE,GAAG,IAAI,sFAAS,CAAC;gBACf,CAAC,EAAE,CAAC,CAAC,QAAQ;gBACb,CAAC,EAAE,CAAC,CAAC,QAAQ;gBACb,CAAC,EAAE,CAAC,CAAC,QAAQ;aAChB,CAAC,CAAC;YACH,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;SAC3B;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,MAAmB,EAAE,CAAW,EAAE,CAAW,EAAE,CAAW;QAC7E,MAAM,MAAM,GAAG;YACX,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,KAAK;SACf,CAAC;QACF,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,GAAG,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;SACrC;QACD,IAAI,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,GAAG,EAAE,CAAC;YACZ,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;SAC/B;QACD,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,EAAE,EAAE;YACL,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,EAAE,GAAG,IAAI,sFAAS,CAAC;gBACf,CAAC,EAAE,CAAC,CAAC,QAAQ;gBACb,CAAC,EAAE,CAAC,CAAC,QAAQ;gBACb,CAAC,EAAE,CAAC,CAAC,QAAQ;aAChB,CAAC,CAAC;YACH,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;SAC3B;QACD,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,MAAmB,EAAE,eAAyB,EAAE,OAAiB,EAAE,OAAiB,EAAE,MAAe;QAClH,IAAI,MAAM,EAAE;YACR,OAAO,iBAAiB,CAAC,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SACpF;aAAM;YACH,OAAO,iBAAiB,CAAC,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SACrF;IACL,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,MAAmB,EAAE,eAAyB,EAAE,OAAiB,EAAE,OAAiB,EAAE,MAAe;QAClH,IAAI,MAAM,EAAE;YACR,OAAO,iBAAiB,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;SACpF;aAAM;YACH,OAAO,iBAAiB,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;SACrF;IACL,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,IAAmB,EAAE,QAAoB,EAAE,YAA+B;QAC9F,MAAM,MAAM,GAAG;YACX,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;SACb,CAAC;QACF,IAAI,IAAI,EAAE;YACN,IAAI,OAAO,CAAC;YACZ,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACpC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBACjC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;oBAChC,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,EAAE;gBACA,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACjB,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,EAAE;wBACxB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACxB;gBACL,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBACd,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE;wBACnB,IAAI,UAAU,KAAK,YAAY,CAAC,KAAK,EAAE;4BACnC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BACrB,OAAO,IAAI,CAAC;yBACf;wBACD,UAAU,EAAE,CAAC;qBAChB;oBACD,OAAO,KAAK,CAAC;gBACjB,CAAC,CAAC,CAAC;gBACH,YAAY,CAAC,KAAK,EAAE,CAAC;aACxB;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAmB;QACpC,IAAI,MAAM,EAAE;YACR,IAAI,MAAM,CAAC,KAAK,EAAE;gBACd,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;oBACtB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;iBACpC;gBACD,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACzD;YACD,IAAI,MAAM,CAAC,KAAK,EAAE;gBACd,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;oBACtB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;iBACpC;gBACD,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACzD;YACD,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACjB,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAC5D;YACD,IAAI,MAAM,CAAC,KAAK,EAAE;gBACd,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACrB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACV,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BACV,IAAI,CAAC,EAAE;gCACH,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;6BACjB;wBACL,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,KAAiB;QAC5C,IAAI,KAAK,EAAE;YACP,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACjB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACjB,IAAI,IAAI,CAAC,OAAO,EAAE;oBACd,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;iBAC5B;gBACD,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAEM,MAAM,CAAC,sBAAsB,CAAC,KAAiB,EAAE,QAAgB;QACpE,IAAI,MAAM,CAAC;QACX,IAAI,KAAK,EAAE;YACP,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACX,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBACzB,MAAM,GAAG,CAAC,CAAC;oBACX,OAAO,IAAI,CAAC;iBACf;gBACD,MAAM,WAAW,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACnF,IAAI,WAAW,EAAE;oBACb,MAAM,GAAG,WAAW,CAAC;oBACrB,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,CAAC;SACN;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,KAAiB,EAAE,QAAgB,EAAE,QAAgB;QACjF,IAAI,MAAM,CAAC;QACX,IAAI,KAAK,EAAE;YACP,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACX,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBACpD,MAAM,GAAG,CAAC,CAAC;oBACX,OAAO,IAAI,CAAC;iBACf;gBACD,MAAM,WAAW,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACxF,IAAI,WAAW,EAAE;oBACb,MAAM,GAAG,WAAW,CAAC;oBACrB,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,CAAC;SACN;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7RgC;AAC2E;AACY;AAE6B;AAGhF;AACuD;AACpC;AAGrB;AACiC;AACgB;AAChB;AACa;AAChB;AACgB;AACvD;AACkB;AACrB;AACA;AACY;AACN;AACJ;AACJ;AACY;AACZ;AACT;AACmB;AACL;AACR;AACF;AACF;AACQ;AACkB;AACR;AAChB;AACsD;AAC/C;AACI;AACP;AAC+C;AACM;AACjB;AAC0B;AACwB;AAGvI,MAAM,gBAAgB;IAKlB,MAAM,CAAC,gBAAgB,CAAC,YAAY;QACvC,OAAO,YAAY,IAAI,IAAI,IAAI,YAAY,CAAC,OAAO,IAAI,IAAI,IAAI,YAAY,CAAC,OAAO,CAAC,YAAY,IAAI,sCAAsC,CAAC;IAC/I,CAAC;IAEM,MAAM,CAAC,yBAAyB,CAAC,YAAY;QAChD,IAAI,EAAE,GAAG,EAAE,CAAC;QACZ,IAAI,YAAY,CAAC,OAAO,CAAC,aAAa,IAAI,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACrF,IAAI,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACjD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC5B,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;aACtB;SACJ;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,uBAAuB,CAAC,YAAY;QAC9C,IAAI,GAAG,GAAG,IAAI,CAAC;QACf,IAAI,YAAY,CAAC,OAAO,CAAC,aAAa,IAAI,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACrF,IAAI,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACjD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC5B,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;aACnB;SACJ;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,SAAS;QAC3B,MAAM,IAAI,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,UAAU,GAA8B,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAmC,CAAC;QAC3D,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACnB,MAAM,IAAI,GAAG,IAAI,uBAAuB,CAAC,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC1B,IAAI,EAAE,CAAC,QAAQ,EAAE;gBACb,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;gBACxC,IAAI,MAAM,EAAE;oBACR,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBACzB;qBAAM;oBACH,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACzB;aACJ;iBAAM;gBACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACvB;QACL,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACtB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,MAAM,EAAE;gBACR,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACzB;QACL,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,SAAS;QAC5B,MAAM,SAAS,GAAG,gBAAgB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,uGAAqD,EAAE,CAAC;QACrE,OAAO;YACH,eAAe,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC;SACxE,CAAC;IACN,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI;QAC9C,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,UAAU,EAAE;YACZ,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACnB,MAAM,IAAI,GAAG;oBACT,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG;oBACd,KAAK,EAAE,4FAA+B,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;oBACtD,GAAG,EAAE,IAAI;oBACT,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,IAAI;oBACd,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,KAAK;iBACnB,CAAC;gBACF,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;oBACZ,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;iBACrD;gBACD,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;oBACb,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;iBAC3B;gBACD,IAAI,IAAI,EAAE;oBACN,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC9B,IAAI,OAAO,OAAO,KAAK,SAAS,EAAE;wBAC9B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;qBAC5B;iBACJ;gBACD,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE;oBACf,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;iBACzB;gBACD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACvE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;iBAC5B;gBACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;SACN;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,EAAU;QACjC,MAAM,MAAM,GAAG,IAAI,gFAAkB,EAAE,CAAC;QACxC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;QACrB,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC;QACzD,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,KAAK,GAAG,GAAG,CAAC;QAC/B,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,oBAAoB;QACvB,MAAM,CAAC,GAAG,IAAI,yDAAM,EAAE,CAAC;QAEvB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC,CAAC,IAAI,GAAG,YAAY,CAAC;QACtB,CAAC,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;QAC1B,CAAC,CAAC,SAAS,CAAC,GAAG,+EAAkB,EAAE,CAAC;QAEpC,MAAM,QAAQ,GAAG,IAAI,iEAAU,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,GAAG,IAAI,uEAAU,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,uEAAa,CAAC;QACnC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEpC,MAAM,aAAa,GAAG,IAAI,iEAAU,EAAE,CAAC;QACvC,aAAa,CAAC,IAAI,GAAG,IAAI,uEAAU,EAAE,CAAC;QACtC,aAAa,CAAC,IAAI,CAAC,IAAI,GAAG,wEAAc,CAAC;QACzC,aAAa,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAC9B,MAAM,cAAc,GAAG,IAAI,iEAAU,EAAE,CAAC;QACxC,cAAc,CAAC,IAAI,GAAG,IAAI,uEAAU,EAAE,CAAC;QACvC,cAAc,CAAC,IAAI,CAAC,IAAI,GAAG,uEAAa,CAAC;QACzC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QAEtD,MAAM,SAAS,GAAG,IAAI,uEAAa,EAAE,CAAC;QAEtC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QACzB,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;QAC1B,SAAS,CAAC,WAAW,GAAG,MAAM,CAAC;QAE/B,SAAS,CAAC,eAAe,GAAG,IAAI,mEAAQ,EAAE,CAAC;QAC3C,SAAS,CAAC,eAAe,CAAC,IAAI,GAAG,gFAAkB,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,qFAAiB,EAAE,CAAC;QACtC,KAAK,CAAC,KAAK,GAAG,qEAAa,CAAC,SAAS,CAAC,CAAC;QACvC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE7C,SAAS,CAAC,IAAI,GAAG,IAAI,2DAAI,EAAE,CAAC;QAC5B,SAAS,CAAC,IAAI,CAAC,SAAS,GAAG,qEAAa,CAAC,SAAS,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAAG,IAAI,iEAAU,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,GAAG,IAAI,uEAAU,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,wEAAc,CAAC;QACpC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,iEAAU,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,GAAG,IAAI,uEAAU,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,uEAAa,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,iEAAU,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,GAAG,IAAI,uEAAU,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,wEAAc,CAAC;QACpC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,iEAAU,EAAE,CAAC;QACnC,SAAS,CAAC,IAAI,GAAG,IAAI,uEAAU,EAAE,CAAC;QAClC,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,wEAAc,CAAC;QACrC,SAAS,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAE1B,SAAS,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAEzE,MAAM,QAAQ,GAAG,IAAI,iEAAU,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,GAAG,IAAI,uEAAU,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,uEAAa,CAAC;QAEnC,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEzC,MAAM,aAAa,GAAG,IAAI,uEAAa,EAAE,CAAC;QAC1C,aAAa,CAAC,IAAI,GAAG,kBAAkB,CAAC;QACxC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;QAC7B,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC9B,aAAa,CAAC,WAAW,GAAG,gBAAgB,CAAC;QAC7C,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEvC,MAAM,cAAc,GAAG,IAAI,uEAAa,EAAE,CAAC;QAC3C,cAAc,CAAC,IAAI,GAAG,iBAAiB,CAAC;QACxC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;QAC9B,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC/B,cAAc,CAAC,WAAW,GAAG,eAAe,CAAC;QAC7C,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1B,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAExC,MAAM,QAAQ,GAAG,IAAI,uEAAa,EAAE,CAAC;QACrC,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC;QAC7B,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;QACxB,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;QACzB,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;QAClC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACpB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAElC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE3B,MAAM,OAAO,GAAG,IAAI,uEAAa,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;QACzB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;QAChC,OAAO,CAAC,cAAc,CAAC,GAAG,yEAAe,CAAC;QAC1C,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEzB,OAAO,CAAC,CAAC;IACb,CAAC;IAED,MAAM,CAAC,qBAAqB;QACxB,gBAAgB;QAChB,MAAM,CAAC,GAAG,IAAI,yDAAM,EAAE,CAAC;QACvB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC;QACjB,CAAC,CAAC,eAAe,GAAG,IAAI,mEAAQ,EAAE,CAAC;QACnC,CAAC,CAAC,eAAe,CAAC,IAAI,GAAG,gFAAkB,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,qFAAiB,EAAE,CAAC;QAC3C,UAAU,CAAC,KAAK,GAAG,qEAAa,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE1C,CAAC,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;QAE1B,MAAM,QAAQ,GAAG,IAAI,iEAAU,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,GAAG,IAAI,uEAAU,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,uEAAa,CAAC;QACnC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEpC,MAAM,QAAQ,GAAG,IAAI,iEAAU,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,GAAG,IAAI,uEAAU,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,uEAAa,CAAC;QACnC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEjC,MAAM,KAAK,GAAG,IAAI,6DAAQ,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,KAAK,CAAC,IAAI,GAAG,eAAe,CAAC;QAE7B,MAAM,MAAM,GAAG,IAAI,6DAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;QACpB,MAAM,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC/B,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAE9B,MAAM,SAAS,GAAG,IAAI,uEAAa,EAAE,CAAC;QAEtC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QACzB,SAAS,CAAC,IAAI,GAAG,WAAW,CAAC;QAC7B,SAAS,CAAC,WAAW,GAAG,MAAM,CAAC;QAC/B,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC7B,SAAS,CAAC,0BAA0B,GAAG,2EAAgB,CAAC;QACxD,SAAS,CAAC,wBAAwB,GAAG,2EAAgB,CAAC;QACtD,SAAS,CAAC,KAAK,GAAG,IAAI,uEAAU,EAAE,CAAC;QACnC,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,wEAAc,CAAC;QACtC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;QAC5B,SAAS,CAAC,MAAM,GAAG,IAAI,uEAAU,EAAE,CAAC;QACpC,SAAS,CAAC,MAAM,CAAC,IAAI,GAAG,uEAAa,CAAC;QACtC,SAAS,CAAC,eAAe,GAAG,IAAI,mEAAQ,EAAE,CAAC;QAC3C,SAAS,CAAC,eAAe,CAAC,IAAI,GAAG,gFAAkB,CAAC;QACpD,SAAS,CAAC,MAAM,GAAG,IAAI,+DAAM,EAAE,CAAC;QAChC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,GAAG,wEAAc,CAAC;QAC5D,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;QACjD,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,wEAAc,CAAC;QAC7D,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;QAClD,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,GAAG,wEAAc,CAAC;QAC/D,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;QACpD,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,GAAG,wEAAc,CAAC;QAChE,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,IAAI,qFAAiB,EAAE,CAAC;QACtC,KAAK,CAAC,KAAK,GAAG,qEAAa,CAAC,SAAS,CAAC,CAAC;QACvC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE7C,MAAM,SAAS,GAAG,IAAI,uEAAa,EAAE,CAAC;QACtC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;QAC1B,SAAS,CAAC,IAAI,GAAG,WAAW,CAAC;QAC7B,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;QACpC,SAAS,CAAC,OAAO,GAAG,yEAAyE,CAAC;QAC9F,SAAS,CAAC,IAAI,GAAG,IAAI,2DAAI,EAAE,CAAC;QAC5B,SAAS,CAAC,IAAI,CAAC,SAAS,GAAG,qEAAa,CAAC,QAAQ,CAAC,CAAC;QACnD,SAAS,CAAC,KAAK,GAAG,IAAI,uEAAU,EAAE,CAAC;QACnC,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,wEAAc,CAAC;QACtC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;QAC5B,SAAS,CAAC,0BAA0B,GAAG,2EAAgB,CAAC;QACxD,SAAS,CAAC,uBAAuB,GAAG,2EAAgB,CAAC;QACrD,SAAS,CAAC,OAAO,GAAG,IAAI,yFAAmB,EAAE,CAAC;QAC9C,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,wEAAc,CAAC;QAC5C,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;QACjC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEnC,MAAM,UAAU,GAAG,IAAI,uEAAa,EAAE,CAAC;QACvC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,UAAU,CAAC,IAAI,GAAG,WAAW,CAAC;QAC9B,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC;QAChC,UAAU,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC;QACtC,UAAU,CAAC,IAAI,GAAG,IAAI,2DAAI,EAAE,CAAC;QAC7B,UAAU,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,6DAAK,EAAE,CAAC;QACxC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,+EAAwB,CAAC;QACpE,MAAM,SAAS,GAAG,IAAI,uEAAU,EAAE,CAAC;QACnC,SAAS,CAAC,IAAI,GAAG,wEAAc,CAAC;QAChC,SAAS,CAAC,KAAK,GAAG,GAAG,CAAC;QACtB,UAAU,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,uEAAU,EAAE,CAAC;QACpC,UAAU,CAAC,IAAI,GAAG,wEAAc,CAAC;QACjC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC;QACvB,UAAU,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;QACtC,UAAU,CAAC,0BAA0B,GAAG,2EAAgB,CAAC;QACzD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEpC,MAAM,SAAS,GAAG,IAAI,uEAAa,EAAE,CAAC;QACtC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QACzB,SAAS,CAAC,IAAI,GAAG,WAAW,CAAC;QAC7B,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;QACpC,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;QAC5B,SAAS,CAAC,IAAI,GAAG,IAAI,2DAAI,EAAE,CAAC;QAC5B,SAAS,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QAC7B,SAAS,CAAC,IAAI,CAAC,SAAS,GAAG,qEAAa,CAAC,SAAS,CAAC,CAAC;QACpD,SAAS,CAAC,KAAK,GAAG,IAAI,uEAAU,EAAE,CAAC;QACnC,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,0EAAgB,CAAC;QACxC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;QAC5B,SAAS,CAAC,uBAAuB,GAAG,2EAAgB,CAAC;QACrD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEnC,MAAM,QAAQ,GAAG,IAAI,uEAAa,EAAE,CAAC;QACrC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;QACxB,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC;QAC3B,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC;QAC9B,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC5B,QAAQ,CAAC,OAAO,GAAG,IAAI,yFAAmB,EAAE,CAAC;QAC7C,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,wEAAc,CAAC;QAC5C,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACjC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,wEAAc,CAAC;QAC7C,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QAElC,MAAM,QAAQ,GAAG,IAAI,uEAAa,EAAE,CAAC;QACrC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;QACxB,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC;QAC3B,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC;QAC9B,QAAQ,CAAC,0BAA0B,GAAG,2EAAgB,CAAC;QACvD,QAAQ,CAAC,wBAAwB,GAAG,2EAAgB,CAAC;QACrD,QAAQ,CAAC,MAAM,GAAG,IAAI,uEAAU,EAAE,CAAC;QACnC,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,0EAAgB,CAAC;QACxC,QAAQ,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;QAC5B,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;QAC5B,QAAQ,CAAC,IAAI,GAAG,IAAI,2DAAI,EAAE,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,6DAAK,EAAE,CAAC;QACtC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,+EAAwB,CAAC;QAClE,QAAQ,CAAC,MAAM,GAAG,IAAI,yFAAmB,EAAE,CAAC;QAC5C,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,wEAAc,CAAC;QAC5C,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QAChC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEjC,MAAM,OAAO,GAAG,IAAI,uEAAa,EAAE,CAAC;QACpC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;QACxB,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC;QAC3B,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;QAChC,OAAO,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC;QACpC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QAC3B,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAElC,MAAM,MAAM,GAAG,IAAI,uEAAa,EAAE,CAAC;QACnC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC;QAC7B,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC;QAC5B,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,CAAC,OAAO,GAAG,IAAI,yFAAmB,EAAE,CAAC;QAC3C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,wEAAc,CAAC;QAC1C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAC/B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,wEAAc,CAAC;QAC3C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QAEhC,MAAM,MAAM,GAAG,IAAI,uEAAa,EAAE,CAAC;QACnC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC;QAC7B,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC;QAC5B,MAAM,CAAC,0BAA0B,GAAG,2EAAgB,CAAC;QACrD,MAAM,CAAC,wBAAwB,GAAG,2EAAgB,CAAC;QACnD,MAAM,CAAC,MAAM,GAAG,IAAI,uEAAU,EAAE,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,0EAAgB,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;QAC1B,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;QACxB,MAAM,CAAC,IAAI,GAAG,IAAI,2DAAI,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,6DAAK,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,+EAAwB,CAAC;QAChE,MAAM,CAAC,MAAM,GAAG,IAAI,yFAAmB,EAAE,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,wEAAc,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QAC9B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE7B,MAAM,KAAK,GAAG,IAAI,uEAAa,EAAE,CAAC;QAClC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QACrB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,IAAI,GAAG,eAAe,CAAC;QAC7B,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC;QAC9B,KAAK,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC;QAClC,KAAK,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;QAChC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QACzB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE5B,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhC,MAAM,OAAO,GAAG,IAAI,uEAAa,EAAE,CAAC;QACpC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;QACxB,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;QACzB,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC;QAC7B,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC3B,OAAO,CAAC,OAAO,GAAG,IAAI,yFAAmB,EAAE,CAAC;QAC5C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,wEAAc,CAAC;QAC3C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,wEAAc,CAAC;QAC5C,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QAEjC,MAAM,OAAO,GAAG,IAAI,uEAAa,EAAE,CAAC;QACpC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;QACzB,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC;QAC7B,OAAO,CAAC,0BAA0B,GAAG,2EAAgB,CAAC;QACtD,OAAO,CAAC,wBAAwB,GAAG,2EAAgB,CAAC;QACpD,OAAO,CAAC,MAAM,GAAG,IAAI,uEAAU,EAAE,CAAC;QAClC,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,0EAAgB,CAAC;QACvC,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;QACxB,OAAO,CAAC,IAAI,GAAG,IAAI,2DAAI,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,6DAAK,EAAE,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,+EAAwB,CAAC;QACjE,OAAO,CAAC,MAAM,GAAG,IAAI,yFAAmB,EAAE,CAAC;QAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,wEAAc,CAAC;QAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE/B,MAAM,MAAM,GAAG,IAAI,uEAAa,EAAE,CAAC;QACnC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC;QACzB,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC;QAC/B,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;QAC/B,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE9B,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjC,MAAM,WAAW,GAAG,IAAI,uEAAa,EAAE,CAAC;QACxC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;QAC3B,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC5B,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC;QAC/B,WAAW,CAAC,WAAW,GAAG,UAAU,CAAC;QACrC,WAAW,CAAC,aAAa,CAAC,GAAG,4BAA4B,CAAC;QAC1D,WAAW,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC;QAC1C,WAAW,CAAC,OAAO,GAAG,IAAI,yFAAmB,EAAE,CAAC;QAChD,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,wEAAc,CAAC;QAC/C,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACpC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,wEAAc,CAAC;QAChD,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QACrC,WAAW,CAAC,MAAM,GAAG,IAAI,uEAAU,EAAE,CAAC;QACtC,WAAW,CAAC,MAAM,CAAC,IAAI,GAAG,wEAAc,CAAC;QACzC,WAAW,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;QAC9B,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAErC,MAAM,WAAW,GAAG,IAAI,uEAAa,EAAE,CAAC;QACxC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;QAC3B,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC5B,WAAW,CAAC,IAAI,GAAG,aAAa,CAAC;QACjC,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC;QACnC,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;QAC9B,WAAW,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;QACzC,WAAW,CAAC,KAAK,GAAG,IAAI,uEAAU,EAAE,CAAC;QACrC,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;QAC9B,WAAW,CAAC,KAAK,CAAC,IAAI,GAAG,0EAAgB,CAAC;QAC1C,WAAW,CAAC,eAAe,GAAG,IAAI,mEAAQ,EAAE,CAAC;QAC7C,WAAW,CAAC,eAAe,CAAC,IAAI,GAAG,gFAAkB,CAAC;QACtD,MAAM,UAAU,GAAG,IAAI,qFAAiB,EAAE,CAAC;QAC3C,UAAU,CAAC,KAAK,GAAG,IAAI,6DAAK,EAAE,CAAC;QAC/B,UAAU,CAAC,KAAK,CAAC,cAAc,GAAG,+EAAwB,CAAC;QAC3D,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,WAAW,CAAC,IAAI,GAAG,IAAI,2DAAI,EAAE,CAAC;QAC9B,WAAW,CAAC,IAAI,CAAC,SAAS,GAAG,qEAAa,CAAC,SAAS,CAAC,CAAC;QACtD,WAAW,CAAC,MAAM,GAAG,IAAI,+DAAM,EAAE,CAAC;QAClC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,GAAG,wEAAc,CAAC;QAC9D,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;QAClD,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,wEAAc,CAAC;QAC/D,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;QACnD,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,GAAG,wEAAc,CAAC;QACjE,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;QACrD,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,GAAG,wEAAc,CAAC;QAClE,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC;QACtD,WAAW,CAAC,OAAO,GAAG,IAAI,yFAAmB,EAAE,CAAC;QAChD,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,wEAAc,CAAC;QAC/C,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACpC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,wEAAc,CAAC;QAC9C,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;QACnC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,wEAAc,CAAC;QACjD,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;QACtC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,wEAAc,CAAC;QAChD,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QACrC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAErC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3B,YAAY;QAEZ,mBAAmB;QACnB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,uBAAuB;QACvB,MAAM,YAAY,GAAG,IAAI,iFAAmB,EAAE,CAAC;QAC/C,YAAY,CAAC,OAAO,GAAG,eAAe,CAAC;QACvC,YAAY,CAAC,EAAE,GAAG,sCAAsC,CAAC;QACzD,YAAY,CAAC,IAAI,GAAG,IAAI,0EAAY,EAAE,CAAC;QAEvC,MAAM,SAAS,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,SAAS,CAAC,MAAM,GAAG,sGAA8B,CAAC;QAClD,SAAS,CAAC,QAAQ,GAAG,IAAI,6FAAqB,EAAE,CAAC;QACjD,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE1C,MAAM,QAAQ,GAAG,IAAI,8FAAoB,EAAE,CAAC;QAC5C,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC;QAC9B,QAAQ,CAAC,IAAI,GAAG,0EAAc,CAAC;QAC/B,QAAQ,CAAC,IAAI,GAAG,mDAAmD,GAAG,8FAAqC,EAAE,CAAC;QAC9G,MAAM,cAAc,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,cAAc,CAAC,MAAM,GAAG,mGAAyB,CAAC;QAClD,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACnC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE/C,MAAM,aAAa,GAAG,IAAI,mGAAqB,EAAE,CAAC;QAClD,aAAa,CAAC,SAAS,GAAG,WAAW,CAAC;QACtC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,mBAAmB,CAAC,MAAM,GAAG,gHAAkC,CAAC;QAChE,mBAAmB,CAAC,QAAQ,GAAG,aAAa,CAAC;QAC7C,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAEpD,MAAM,WAAW,GAAG,IAAI,mIAAgC,EAAE,CAAC;QAC3D,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;YACtB,WAAW,EAAE,WAAW,CAAC,IAAI;YAC7B,UAAU,EAAE;gBACR;oBACI,YAAY,EAAE,aAAa;oBAC3B,OAAO,EAAE,aAAa,CAAC,SAAS;iBACnC;aACJ;SACJ,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/D,iBAAiB,CAAC,MAAM,GAAG,wIAAqC,CAAC;QACjE,iBAAiB,CAAC,QAAQ,GAAG,WAAW,CAAC;QACzC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAElD,MAAM,cAAc,GAAG,IAAI,wGAAyB,EAAE,CAAC;QACvD,cAAc,CAAC,EAAE,GAAG,sCAAsC,CAAC;QAC3D,cAAc,CAAC,UAAU,GAAG,KAAK,CAAC;QAClC,cAAc,CAAC,MAAM,GAAG,+nBAA+nB,CAAC;QACxpB,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,gBAAgB,CAAC,MAAM,GAAG,6GAA8B,CAAC;QACzD,gBAAgB,CAAC,QAAQ,GAAG,cAAc,CAAC;QAC3C,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEjD,MAAM,gBAAgB,GAAG,IAAI,4HAA6B,EAAE,CAAC;QAC7D,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3B,QAAQ,EAAE,WAAW,CAAC,IAAI;YAC1B,YAAY,EAAE,IAAI;YAClB,SAAS,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,kBAAkB,CAAC,MAAM,GAAG,iIAAkC,CAAC;QAC/D,kBAAkB,CAAC,QAAQ,GAAG,gBAAgB,CAAC;QAC/C,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAEnD,MAAM,aAAa,GAAG,sCAAsC,CAAC;QAE7D,MAAM,UAAU,GAAG,IAAI,2GAAmB,EAAE,CAAC;QAC7C,UAAU,CAAC,UAAU,GAAG,aAAa,CAAC;QACtC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,gBAAgB,CAAC,MAAM,GAAG,wHAAgC,CAAC;QAC3D,gBAAgB,CAAC,QAAQ,GAAG,UAAU,CAAC;QACvC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEjD,MAAM,mBAAmB,GAAG,IAAI,oGAAsB,EAAE,CAAC;QACzD,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC;YAChC,OAAO,EAAE,gBAAgB;YACzB,IAAI,EAAE,gBAAgB;SACzB,CAAC,CAAC;QACH,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,oBAAoB,CAAC,MAAM,GAAG,yGAA2B,CAAC;QAC1D,oBAAoB,CAAC,QAAQ,GAAG,mBAAmB,CAAC;QACpD,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAErD,MAAM,SAAS,GAAG,IAAI,gEAAS,EAAE,CAAC;QAClC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;QAC1B,MAAM,gBAAgB,GAAG,IAAI,iHAAyB,EAAE,CAAC;QACzD,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC;YACzB,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;YAC1C,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACpE,sBAAsB,CAAC,MAAM,GAAG,sHAA8B,CAAC;QAC/D,sBAAsB,CAAC,QAAQ,GAAG,gBAAgB,CAAC;QACnD,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAEvD,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC9B,UAAU,EAAE,SAAS,CAAC,EAAE;YACxB,WAAW,EAAE,cAAc,CAAC,EAAE;YAC9B,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC9B,UAAU,EAAE,cAAc,CAAC,EAAE;YAC7B,WAAW,EAAE,mBAAmB,CAAC,EAAE;YACnC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC9B,UAAU,EAAE,mBAAmB,CAAC,EAAE;YAClC,WAAW,EAAE,iBAAiB,CAAC,EAAE;YACjC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC9B,UAAU,EAAE,iBAAiB,CAAC,EAAE;YAChC,WAAW,EAAE,gBAAgB,CAAC,EAAE;YAChC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC9B,UAAU,EAAE,gBAAgB,CAAC,EAAE;YAC/B,WAAW,EAAE,kBAAkB,CAAC,EAAE;YAClC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC9B,UAAU,EAAE,kBAAkB,CAAC,EAAE;YACjC,WAAW,EAAE,gBAAgB,CAAC,EAAE;YAChC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC9B,UAAU,EAAE,gBAAgB,CAAC,EAAE;YAC/B,WAAW,EAAE,oBAAoB,CAAC,EAAE;YACpC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC9B,UAAU,EAAE,oBAAoB,CAAC,EAAE;YACnC,WAAW,EAAE,sBAAsB,CAAC,EAAE;YACtC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QAEH,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE/B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE;gBACN;oBACI,UAAU,EAAE,yFAAwB;oBACpC,MAAM,EAAE,YAAY,CAAC,EAAE;iBAC1B;aACJ;SACJ,CAAC,CAAC;QACH,YAAY;QAEZ,IAAI,GAAG,CAAC,CAAC;QACT,eAAe;QACf,MAAM,OAAO,GAAG,IAAI,iFAAmB,EAAE,CAAC;QAC1C,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1B,OAAO,CAAC,EAAE,GAAG,sCAAsC,CAAC;QACpD,OAAO,CAAC,IAAI,GAAG,IAAI,0EAAY,EAAE,CAAC;QAElC,MAAM,gBAAgB,GAAG,IAAI,gFAAkB,EAAE,CAAC;QAClD,gBAAgB,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;QAC7B,gBAAgB,CAAC,IAAI,GAAG,GAAG,CAAC;QAC5B,gBAAgB,CAAC,IAAI,GAAG,EAAE,CAAC;QAC3B,gBAAgB,CAAC,MAAM,GAAG,sGAA8B,CAAC;QACzD,gBAAgB,CAAC,QAAQ,GAAG,IAAI,yFAAiB,EAAE,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE5C,MAAM,YAAY,GAAG,IAAI,gIAA6B,EAAE,CAAC;QACzD,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC;YACxB,QAAQ,EAAE,CAAC,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,IAAI;YACpB,SAAS,EAAE,YAAY;YACvB,WAAW,EAAE,KAAK;SACrB,CAAC,CAAC;QACH,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC;YACxB,QAAQ,EAAE,CAAC,CAAC,IAAI;YAChB,QAAQ,EAAE,MAAM,CAAC,IAAI;YACrB,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,KAAK;SACrB,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,IAAI,gFAAkB,EAAE,CAAC;QACpD,kBAAkB,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;QAC/B,kBAAkB,CAAC,IAAI,GAAG,GAAG,CAAC;QAC9B,kBAAkB,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,GAAG,GAAG,CAAC;QACtD,kBAAkB,CAAC,MAAM,GAAG,+HAAkC,CAAC;QAC/D,kBAAkB,CAAC,QAAQ,GAAG,YAAY,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAE9C,MAAM,KAAK,GAAG,IAAI,qFAAiB,EAAE,CAAC;QACtC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC/B,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC;QACnC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;QAC5B,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAClC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;QAC5B,KAAK,CAAC,cAAc,GAAG,sFAAsB,CAAC;QAC9C,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC;QAC9B,MAAM,WAAW,GAAG,IAAI,gFAAkB,EAAE,CAAC;QAC7C,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;QACxB,WAAW,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC;QAC3C,WAAW,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,GAAG,GAAG,CAAC;QACjD,WAAW,CAAC,MAAM,GAAG,0FAAsB,CAAC;QAC5C,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEvC,MAAM,OAAO,GAAG,IAAI,mIAAgC,EAAE,CAAC;QACvD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YAClB,WAAW,EAAE,SAAS,CAAC,IAAI;YAC3B,UAAU,EAAE,CAAC;oBACT,OAAO,EAAE,sFAAsF;oBAC/F,YAAY,EAAE,SAAS;iBAC1B,CAAC;SACL,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,gFAAkB,EAAE,CAAC;QAC/C,aAAa,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;QAC1B,aAAa,CAAC,IAAI,GAAG,EAAE,CAAC;QACxB,aAAa,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,GAAG,GAAG,CAAC;QAC5C,aAAa,CAAC,MAAM,GAAG,wIAAqC,CAAC;QAC7D,aAAa,CAAC,QAAQ,GAAG,OAAO,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEzC,MAAM,YAAY,GAAG,IAAI,mIAAgC,EAAE,CAAC;QAC5D,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;YACvB,WAAW,EAAE,SAAS,CAAC,IAAI;YAC3B,UAAU,EAAE,CAAC;oBACT,OAAO,EAAE,yCAAyC;oBAClD,YAAY,EAAE,SAAS;iBAC1B,CAAC;SACL,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,IAAI,gFAAkB,EAAE,CAAC;QACpD,kBAAkB,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;QAC/B,kBAAkB,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC;QAClD,kBAAkB,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,GAAG,EAAE,CAAC;QAClD,kBAAkB,CAAC,MAAM,GAAG,wIAAqC,CAAC;QAClE,kBAAkB,CAAC,QAAQ,GAAG,YAAY,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAE9C,MAAM,QAAQ,GAAG,IAAI,mIAAgC,EAAE,CAAC;QACxD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACnB,WAAW,EAAE,SAAS,CAAC,IAAI;YAC3B,UAAU,EAAE,CAAC;oBACT,OAAO,EAAE,gCAAgC;oBACzC,YAAY,EAAE,SAAS;iBAC1B,CAAC;SACL,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,IAAI,gFAAkB,EAAE,CAAC;QAChD,cAAc,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;QAC3B,cAAc,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,GAAG,GAAG,CAAC;QACpD,cAAc,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;QACzC,cAAc,CAAC,MAAM,GAAG,wIAAqC,CAAC;QAC9D,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE1C,MAAM,KAAK,GAAG,IAAI,iHAAyB,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,gEAAS,EAAE,CAAC;QAC9B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QACrB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;YACd,QAAQ,EAAE;gBACN;oBACI,QAAQ,EAAE,SAAS,CAAC,IAAI;iBAC3B;aACJ;YACD,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,gFAAkB,EAAE,CAAC;QAC7C,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;QACxB,WAAW,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC;QAC3C,WAAW,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,GAAG,GAAG,CAAC;QACjD,WAAW,CAAC,MAAM,GAAG,sHAA8B,CAAC;QACpD,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEvC,MAAM,eAAe,GAAG,IAAI,oGAAsB,EAAE,CAAC;QACrD,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC;YAC5B,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,MAAM,qBAAqB,GAAG,IAAI,gFAAkB,EAAE,CAAC;QACvD,qBAAqB,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;QAClC,qBAAqB,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,GAAG,GAAG,CAAC;QACvD,qBAAqB,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,GAAG,EAAE,CAAC;QAC1D,qBAAqB,CAAC,MAAM,GAAG,yGAA2B,CAAC;QAC3D,qBAAqB,CAAC,QAAQ,GAAG,eAAe,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAEjD,MAAM,OAAO,GAAG,IAAI,mIAAgC,EAAE,CAAC;QACvD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YAClB,WAAW,EAAE,SAAS,CAAC,IAAI;YAC3B,UAAU,EAAE,CAAC;oBACT,OAAO,EAAE,6BAA6B;oBACtC,YAAY,EAAE,SAAS;iBAC1B,CAAC;SACL,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,gFAAkB,EAAE,CAAC;QAC3C,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;QACtB,SAAS,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,GAAG,GAAG,CAAC;QAC3C,SAAS,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;QACpC,SAAS,CAAC,MAAM,GAAG,wIAAqC,CAAC;QACzD,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAErC,MAAM,UAAU,GAAG,IAAI,mIAAgC,EAAE,CAAC;QAC1D,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,WAAW,EAAE,SAAS,CAAC,IAAI;YAC3B,UAAU,EAAE,CAAC;oBACT,OAAO,EAAE,6BAA6B;oBACtC,YAAY,EAAE,SAAS;iBAC1B,CAAC;SACL,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,IAAI,gFAAkB,EAAE,CAAC;QAClD,gBAAgB,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;QAC7B,gBAAgB,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC;QAC7C,gBAAgB,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QACvC,gBAAgB,CAAC,MAAM,GAAG,wIAAqC,CAAC;QAChE,gBAAgB,CAAC,QAAQ,GAAG,UAAU,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE5C,MAAM,SAAS,GAAG,IAAI,iHAAyB,EAAE,CAAC;QAClD,MAAM,cAAc,GAAG,IAAI,gEAAS,EAAE,CAAC;QACvC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;QAC9B,MAAM,gBAAgB,GAAG,IAAI,gEAAS,EAAE,CAAC;QACzC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;QACjC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;YAClB,QAAQ,EAAE;gBACN;oBACI,QAAQ,EAAE,OAAO,CAAC,IAAI;iBACzB;aACJ;YACD,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;YAClB,QAAQ,EAAE;gBACN;oBACI,QAAQ,EAAE,QAAQ,CAAC,IAAI;iBAC1B;gBACD;oBACI,QAAQ,EAAE,MAAM,CAAC,IAAI;iBACxB;gBACD;oBACI,QAAQ,EAAE,WAAW,CAAC,IAAI;iBAC7B;aACJ;YACD,MAAM,EAAE,gBAAgB;YACxB,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,gFAAkB,EAAE,CAAC;QACjD,eAAe,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;QAC5B,eAAe,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC;QAC7C,eAAe,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,GAAG,GAAG,CAAC;QACnD,eAAe,CAAC,MAAM,GAAG,sHAA8B,CAAC;QACxD,eAAe,CAAC,QAAQ,GAAG,SAAS,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAE3C,MAAM,WAAW,GAAG,IAAI,8HAA4B,EAAE,CAAC;QACvD,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;YACtB,QAAQ,EAAE,CAAC,CAAC,IAAI;YAChB,SAAS,EAAE;gBACP;oBACI,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,cAAc,EAAE,KAAK;oBACrB,WAAW,EAAE,KAAK;oBAClB,KAAK,EAAE,MAAM;iBAChB;aACJ;SACJ,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,IAAI,gFAAkB,EAAE,CAAC;QACnD,iBAAiB,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;QAC9B,iBAAiB,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;QAC9C,iBAAiB,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,GAAG,GAAG,CAAC;QACpD,iBAAiB,CAAC,MAAM,GAAG,4HAAiC,CAAC;QAC7D,iBAAiB,CAAC,QAAQ,GAAG,WAAW,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAE7C,MAAM,kBAAkB,GAAG,IAAI,8HAA4B,EAAE,CAAC;QAC9D,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC7B,QAAQ,EAAE,CAAC,CAAC,IAAI;YAChB,SAAS,EAAE;gBACP;oBACI,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,cAAc,EAAE,KAAK;oBACrB,WAAW,EAAE,KAAK;oBAClB,KAAK,EAAE,OAAO;iBACjB;aACJ;SACJ,CAAC,CAAC;QACH,MAAM,wBAAwB,GAAG,IAAI,gFAAkB,EAAE,CAAC;QAC1D,wBAAwB,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;QACrC,wBAAwB,CAAC,IAAI,GAAG,EAAE,CAAC;QACnC,wBAAwB,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;QACjD,wBAAwB,CAAC,MAAM,GAAG,4HAAiC,CAAC;QACpE,wBAAwB,CAAC,QAAQ,GAAG,kBAAkB,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAEpD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACzB,UAAU,EAAE,gBAAgB,CAAC,EAAE;YAC/B,WAAW,EAAE,kBAAkB,CAAC,EAAE;YAClC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACzB,UAAU,EAAE,kBAAkB,CAAC,EAAE;YACjC,WAAW,EAAE,WAAW,CAAC,EAAE;YAC3B,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACzB,UAAU,EAAE,WAAW,CAAC,EAAE;YAC1B,WAAW,EAAE,wBAAwB,CAAC,EAAE;YACxC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACzB,UAAU,EAAE,WAAW,CAAC,EAAE;YAC1B,WAAW,EAAE,aAAa,CAAC,EAAE;YAC7B,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACzB,UAAU,EAAE,WAAW,CAAC,EAAE;YAC1B,WAAW,EAAE,kBAAkB,CAAC,EAAE;YAClC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACzB,UAAU,EAAE,WAAW,CAAC,EAAE;YAC1B,WAAW,EAAE,cAAc,CAAC,EAAE;YAC9B,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACzB,UAAU,EAAE,aAAa,CAAC,EAAE;YAC5B,WAAW,EAAE,WAAW,CAAC,EAAE;YAC3B,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACzB,UAAU,EAAE,kBAAkB,CAAC,EAAE;YACjC,WAAW,EAAE,WAAW,CAAC,EAAE;YAC3B,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACzB,UAAU,EAAE,cAAc,CAAC,EAAE;YAC7B,WAAW,EAAE,WAAW,CAAC,EAAE;YAC3B,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACzB,UAAU,EAAE,WAAW,CAAC,EAAE;YAC1B,WAAW,EAAE,qBAAqB,CAAC,EAAE;YACrC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACzB,UAAU,EAAE,qBAAqB,CAAC,EAAE;YACpC,WAAW,EAAE,gBAAgB,CAAC,EAAE;YAChC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACzB,UAAU,EAAE,gBAAgB,CAAC,EAAE;YAC/B,WAAW,EAAE,eAAe,CAAC,EAAE;YAC/B,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACzB,UAAU,EAAE,eAAe,CAAC,EAAE;YAC9B,WAAW,EAAE,iBAAiB,CAAC,EAAE;YACjC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACzB,UAAU,EAAE,qBAAqB,CAAC,EAAE;YACpC,WAAW,EAAE,SAAS,CAAC,EAAE;YACzB,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACzB,UAAU,EAAE,SAAS,CAAC,EAAE;YACxB,WAAW,EAAE,WAAW,CAAC,EAAE;YAC3B,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QAEH,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE1B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE;gBACN;oBACI,UAAU,EAAE,yFAAwB;oBACpC,MAAM,EAAE,OAAO,CAAC,EAAE;iBACrB;aACJ;SACJ,CAAC,CAAC;QACH,YAAY;QACZ,IAAI,GAAG,CAAC,CAAC;QACT,iBAAiB;QACjB,MAAM,SAAS,GAAG,IAAI,iFAAmB,EAAE,CAAC;QAC5C,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC;QAC9B,SAAS,CAAC,EAAE,GAAG,sCAAsC,CAAC;QACtD,SAAS,CAAC,IAAI,GAAG,IAAI,0EAAY,EAAE,CAAC;QAEpC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,kBAAkB,CAAC,MAAM,GAAG,sGAA8B,CAAC;QAC3D,kBAAkB,CAAC,QAAQ,GAAG,IAAI,yFAAiB,EAAE,CAAC;QACtD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAEhD,MAAM,SAAS,GAAG,IAAI,sHAA6B,EAAE,CAAC;QACtD,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;YACtB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,KAAK;SACrB,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,eAAe,CAAC,MAAM,GAAG,2HAAkC,CAAC;QAC5D,eAAe,CAAC,QAAQ,GAAG,SAAS,CAAC;QACrC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAE7C,MAAM,UAAU,GAAG,IAAI,oGAAsB,EAAE,CAAC;QAChD,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC;YACvB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,aAAa;SACzB,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,gBAAgB,CAAC,MAAM,GAAG,oBAAoB,CAAC;QAC/C,gBAAgB,CAAC,QAAQ,GAAG,UAAU,CAAC;QACvC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE9C,MAAM,MAAM,GAAG,IAAI,2GAAmB,EAAE,CAAC;QACzC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,YAAY,CAAC,MAAM,GAAG,cAAc,CAAC;QACrC,YAAY,CAAC,QAAQ,GAAG,MAAM,CAAC;QAC/B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE1C,MAAM,kBAAkB,GAAG,IAAI,uHAA4B,EAAE,CAAC;QAC9D,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,wBAAwB,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACtE,wBAAwB,CAAC,MAAM,GAAG,4HAAiC,CAAC;QACpE,wBAAwB,CAAC,QAAQ,GAAG,kBAAkB,CAAC;QACvD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAEtD,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC3B,UAAU,EAAE,kBAAkB,CAAC,EAAE;YACjC,WAAW,EAAE,eAAe,CAAC,EAAE;YAC/B,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC3B,UAAU,EAAE,eAAe,CAAC,EAAE;YAC9B,WAAW,EAAE,gBAAgB,CAAC,EAAE;YAChC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC3B,UAAU,EAAE,gBAAgB,CAAC,EAAE;YAC/B,WAAW,EAAE,YAAY,CAAC,EAAE;YAC5B,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC3B,UAAU,EAAE,gBAAgB,CAAC,EAAE;YAC/B,WAAW,EAAE,wBAAwB,CAAC,EAAE;YACxC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;YAChB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE;gBACN;oBACI,UAAU,EAAE,yFAAwB;oBACpC,MAAM,EAAE,SAAS,CAAC,EAAE;iBACvB;aACJ;SACJ,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;YACd,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE;gBACN;oBACI,UAAU,EAAE,yFAAwB;oBACpC,MAAM,EAAE,SAAS,CAAC,EAAE;iBACvB;aACJ;SACJ,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YACf,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE;gBACN;oBACI,UAAU,EAAE,yFAAwB;oBACpC,MAAM,EAAE,SAAS,CAAC,EAAE;iBACvB;aACJ;SACJ,CAAC,CAAC;QAEH,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,YAAY;QACZ,IAAI,GAAG,CAAC,CAAC;QACT,yBAAyB;QACzB,MAAM,WAAW,GAAG,IAAI,iFAAmB,EAAE,CAAC;QAC9C,WAAW,CAAC,OAAO,GAAG,iBAAiB,CAAC;QACxC,WAAW,CAAC,EAAE,GAAG,aAAa,CAAC;QAC/B,WAAW,CAAC,IAAI,GAAG,IAAI,0EAAY,EAAE,CAAC;QAEtC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,oBAAoB,CAAC,MAAM,GAAG,sGAA8B,CAAC;QAC7D,oBAAoB,CAAC,QAAQ,GAAG,IAAI,yFAAiB,EAAE,CAAC;QACxD,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAEpD,MAAM,uBAAuB,GAAG,IAAI,mGAAqB,EAAE,CAAC;QAC5D,uBAAuB,CAAC,SAAS,GAAG,kBAAkB,CAAC;QACvD,uBAAuB,CAAC,eAAe,GAAG,IAAI,CAAC;QAC/C,MAAM,wBAAwB,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACtE,wBAAwB,CAAC,MAAM,GAAG,gHAAkC,CAAC;QACrE,wBAAwB,CAAC,QAAQ,GAAG,uBAAuB,CAAC;QAC5D,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAExD,MAAM,iBAAiB,GAAG,IAAI,sHAA6B,EAAE,CAAC;QAC9D,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,gBAAgB;YACzB,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,KAAK;SACrB,CAAC,CAAC;QACH,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,gBAAgB;YACzB,SAAS,EAAE,SAAS;YACpB,WAAW,EAAE,KAAK;SACrB,CAAC,CAAC;QACH,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,UAAU;YACrB,WAAW,EAAE,KAAK;SACrB,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,kBAAkB,CAAC,MAAM,GAAG,mHAAiC,CAAC;QAC9D,kBAAkB,CAAC,QAAQ,GAAG,iBAAiB,CAAC;QAChD,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAElD,MAAM,cAAc,GAAG,IAAI,uHAA4B,EAAE,CAAC;QAC1D,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,oBAAoB,CAAC,MAAM,GAAG,4HAAiC,CAAC;QAChE,oBAAoB,CAAC,QAAQ,GAAG,cAAc,CAAC;QAC/C,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAEpD,MAAM,uBAAuB,GAAG,IAAI,oGAAsB,EAAE,CAAC;QAC7D,uBAAuB,CAAC,UAAU,CAAC,IAAI,CAAC;YACpC,OAAO,EAAE,0BAA0B;YACnC,IAAI,EAAE,QAAQ;SACjB,CAAC,CAAC;QACH,MAAM,wBAAwB,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACtE,wBAAwB,CAAC,MAAM,GAAG,yGAA2B,CAAC;QAC9D,wBAAwB,CAAC,QAAQ,GAAG,uBAAuB,CAAC;QAC5D,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAExD,MAAM,YAAY,GAAG,IAAI,sHAA6B,EAAE,CAAC;QACzD,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC;YACzB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,KAAK;SACrB,CAAC,CAAC;QACH,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC;YACzB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,SAAS;YACpB,WAAW,EAAE,KAAK;SACrB,CAAC,CAAC;QACH,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC;YACzB,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,UAAU;YACrB,WAAW,EAAE,KAAK;SACrB,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,kBAAkB,CAAC,MAAM,GAAG,2HAAkC,CAAC;QAC/D,kBAAkB,CAAC,QAAQ,GAAG,YAAY,CAAC;QAC3C,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAElD,MAAM,SAAS,GAAG,IAAI,8HAA4B,EAAE,CAAC;QACrD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;YACpB,QAAQ,EAAE,CAAC,CAAC,IAAI;YAChB,SAAS,EAAE;gBACP;oBACI,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,cAAc,EAAE,KAAK;oBACrB,WAAW,EAAE,KAAK;oBAClB,KAAK,EAAE,QAAQ;iBAClB;aACJ;SACJ,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,eAAe,CAAC,MAAM,GAAG,4HAAiC,CAAC;QAC3D,eAAe,CAAC,QAAQ,GAAG,SAAS,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAE/C,MAAM,aAAa,GAAG,IAAI,oGAAsB,EAAE,CAAC;QACnD,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC;YAC1B,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,sCAAsC;SAClD,CAAC,CAAC;QACH,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC;YAC1B,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,iDAAiD;SAC7D,CAAC,CAAC;QACH,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,mBAAmB,CAAC,MAAM,GAAG,yGAA2B,CAAC;QACzD,mBAAmB,CAAC,QAAQ,GAAG,aAAa,CAAC;QAC7C,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAEnD,MAAM,SAAS,GAAG,IAAI,gEAAS,EAAE,CAAC;QAClC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;QAC1B,MAAM,eAAe,GAAG,IAAI,iHAAyB,EAAE,CAAC;QACxD,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC;YACxB,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvC,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,qBAAqB,CAAC,MAAM,GAAG,sHAA8B,CAAC;QAC9D,qBAAqB,CAAC,QAAQ,GAAG,eAAe,CAAC;QACjD,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAErD,MAAM,OAAO,GAAG,IAAI,gEAAS,EAAE,CAAC;QAChC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;QACxB,MAAM,aAAa,GAAG,IAAI,iHAAyB,EAAE,CAAC;QACtD,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC;YACtB,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YACrC,MAAM,EAAE,OAAO;YACf,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,mBAAmB,CAAC,MAAM,GAAG,sHAA8B,CAAC;QAC5D,mBAAmB,CAAC,QAAQ,GAAG,aAAa,CAAC;QAC7C,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAEnD,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC7B,UAAU,EAAE,oBAAoB,CAAC,EAAE;YACnC,WAAW,EAAE,wBAAwB,CAAC,EAAE;YACxC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC7B,UAAU,EAAE,wBAAwB,CAAC,EAAE;YACvC,WAAW,EAAE,kBAAkB,CAAC,EAAE;YAClC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC7B,UAAU,EAAE,kBAAkB,CAAC,EAAE;YACjC,WAAW,EAAE,oBAAoB,CAAC,EAAE;YACpC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC7B,UAAU,EAAE,oBAAoB,CAAC,EAAE;YACnC,WAAW,EAAE,wBAAwB,CAAC,EAAE;YACxC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC7B,UAAU,EAAE,wBAAwB,CAAC,EAAE;YACvC,WAAW,EAAE,kBAAkB,CAAC,EAAE;YAClC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC7B,UAAU,EAAE,wBAAwB,CAAC,EAAE;YACvC,WAAW,EAAE,eAAe,CAAC,EAAE;YAC/B,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC7B,UAAU,EAAE,kBAAkB,CAAC,EAAE;YACjC,WAAW,EAAE,eAAe,CAAC,EAAE;YAC/B,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC7B,UAAU,EAAE,eAAe,CAAC,EAAE;YAC9B,WAAW,EAAE,mBAAmB,CAAC,EAAE;YACnC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC7B,UAAU,EAAE,mBAAmB,CAAC,EAAE;YAClC,WAAW,EAAE,qBAAqB,CAAC,EAAE;YACrC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC7B,UAAU,EAAE,mBAAmB,CAAC,EAAE;YAClC,WAAW,EAAE,mBAAmB,CAAC,EAAE;YACnC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QACH,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC7B,UAAU,EAAE,qBAAqB,CAAC,EAAE;YACpC,WAAW,EAAE,mBAAmB,CAAC,EAAE;YACnC,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,EAAE,EAAE,IAAI,EAAE;YACV,GAAG,EAAE,oDAAS,EAAE;SACnB,CAAC,CAAC;QAEH,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE9B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,kBAAkB;YAC3B,QAAQ,EAAE;gBACN;oBACI,UAAU,EAAE,yFAAwB;oBACpC,MAAM,EAAE,WAAW,CAAC,EAAE;iBACzB;aACJ;SACJ,CAAC,CAAC;QACH,YAAY;QACZ,YAAY;QAEZ,OAAO,CAAC,CAAC;IACb,CAAC;;AAGE,MAAM,uBAAuB;IAchC,YAAY,EAAE;QAZN,qBAAgB,GAAgC,EAAE,CAAC;QAavD,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC7B,CAAC;IAZD,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;IACnC,CAAC;IACD,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC;IAChD,CAAC;IACD,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;IACxC,CAAC;IAMD,QAAQ,CAAC,KAA8B;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;YAC5C,IAAI,KAAK,EAAE;gBACP,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,EAAE;oBACpB,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;oBAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACnD,IAAI,CAAC,KAAK,CAAC,EAAE;4BACT,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;4BAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;4BAClD,IAAI,KAAK,CAAC,gBAAgB,KAAK,MAAM,EAAE;gCACnC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;gCAC7B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gCACnC,OAAO;6BACV;yBACJ;qBACJ;oBACD,OAAO;iBACV;aACJ;YACD,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,IAAI,KAAK,CAAC,gBAAgB,KAAK,IAAI,EAAE;gBACjC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACnD,IAAI,CAAC,KAAK,CAAC,EAAE;wBACT,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBAC3C,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;wBAChC,IAAI,UAAU,CAAC,gBAAgB,KAAK,KAAK,CAAC,EAAE,EAAE;4BAC1C,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;4BAC7B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BACnC,OAAO;yBACV;qBACJ;iBACJ;gBACD,OAAO;aACV;SACJ;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,YAAY;QACR,MAAM,MAAM,GAAG;YACX,IAAI,EAAE,IAAI,CAAC,cAAc;YACzB,QAAQ,EAAE,EAAE;SACf,CAAC;QACF,IAAI,MAAM,CAAC;QACX,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC/B,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE;gBACxB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACV,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC3C,CAAC,CAAC,CAAC;gBACH,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC;aACf;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,EAAE;YACA,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBAClC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,KAAK,MAAM,EAAE;oBAClC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACV,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;oBAC3C,CAAC,CAAC,CAAC;oBACH,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5B,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC,CAAC,EAAE,GAAG;SACV;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;;;;;;;;;;;;;;;;;;;ACvgDyD;AACmB;AAEjF,SAAS;AACF,MAAM,iBAAiB;IAqC1B;QACI,iBAAiB,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IA5BM,MAAM,CAAC,IAAI;QACd,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;SAChC;QACD,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;YACrD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpB,CAAC,CAAC;QACF,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACvD,iBAAiB,CAAC,OAAO,GAAG,+CAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACxD,iBAAiB,CAAC,QAAQ,GAAG,+CAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAE1D,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YACpC,iBAAiB,CAAC,MAAM,GAAG,gGAA2B,CAAC;YACvD,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YACrC,iBAAiB,CAAC,MAAM,GAAG,iGAA4B,CAAC;YACxD,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,MAAM,CAAC,QAAQ;QACnB,OAAO,CAAC,GAAG,CAAC,GAAG,GAAC,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7F,CAAC;;AAjCa,wBAAM,GAAyB,gGAA2B,CAAC;AAE3D,wBAAM,GAA6B,IAAI,iDAAe,CAAC,KAAK,CAAC,CAAC;AAE7D,yBAAO,GAAsB,IAAI,CAAC;AAClC,0BAAQ,GAAsB,IAAI,CAAC;AAEnC,2BAAS,GAAG,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;ACZ6C;AAClB;AACT;AACqB;AACI;AACxC;AAEhC,MAAM,kBAAkB;IAapB,MAAM,CAAC,UAAU,CAAC,OAAuB,EAAE,SAA2B;QACzE,kBAAkB,CAAC,OAAO,GAAG,OAAO,CAAC;QACrC,kBAAkB,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7C,CAAC;IACM,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,aAAc,EAAE,WAAY;QAC9D,kBAAkB,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,+EAAmB,CAAC,CAAC;IACvG,CAAC;IACM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,aAAc,EAAE,WAAY;QAC3D,kBAAkB,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,mFAAuB,CAAC,CAAC;IAC3G,CAAC;IACM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,aAAc,EAAE,WAAY;QAC5D,kBAAkB,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,6EAAiB,CAAC,CAAC;IACrG,CAAC;IACM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,aAAc,EAAE,WAAY;QAC3D,kBAAkB,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,+EAAmB,CAAC,CAAC;IACvG,CAAC;IAEM,MAAM,CAAC,wBAAwB,CAAC,kBAAkB;QACrD,IAAI,KAAK,GAAG,+FAA6B,CAAC,CAAC,cAAc;QACzD,IAAI,kBAAkB,CAAC,KAAK,EAAE;YAC1B,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC;SACpC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,SAAS,CAAC,KAAK,EAAE;YACjB,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;SAC3B;QACD,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,SAAS,CAAC,OAAO,EAAE;YACnB,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;SAC/B;QACD,IAAI,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC;QACvC,IAAI,SAAS,CAAC,WAAW,EAAE;YACvB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC;SACvC;QACD,QAAQ,KAAK,EAAE;YACX,KAAK,yFAAuB,CAAC;YAC7B,KAAK,4FAA0B;gBAC3B,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE;oBACzC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;iBAC5D;gBACD,kBAAkB,CAAC,aAAa,CAAC,6EAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBACnG,MAAM;YACV,KAAK,2FAAyB;gBAC1B,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC3D,kBAAkB,CAAC,aAAa,CAAC,+EAAmB,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBACrG,MAAM;YACV;gBACI,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBACxD,kBAAkB,CAAC,aAAa,CAAC,mFAAuB,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBACzG,MAAM;SACb;IACL,CAAC;IACM,MAAM,CAAC,uBAAuB,CAAC,kBAAkB;QACpD,IAAI,KAAK,GAAG,+FAA6B,CAAC,CAAC,cAAc;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,KAAK,GAAG,EAAE,CAAC;QAEf,IAAI,SAAS,CAAC,KAAK,EAAE;YACjB,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;SAC3B;QACD,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,SAAS,CAAC,OAAO,EAAE;YACnB,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;SAC/B;QACD,IAAI,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC;QACvC,IAAI,SAAS,CAAC,WAAW,EAAE;YACvB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC;SACvC;QACD,IAAI,SAAS,CAAC,KAAK,EAAE;YACjB,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;SAC3B;QACD,QAAQ,KAAK,EAAE;YACX,KAAK,yFAAuB,CAAC;YAC7B,KAAK,4FAA0B;gBAC3B,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE;oBACzC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;iBAC5D;gBACD,kBAAkB,CAAC,aAAa,CAAC,6EAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBACnG,MAAM;YACV,KAAK,2FAAyB;gBAC1B,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC3D,kBAAkB,CAAC,aAAa,CAAC,+EAAmB,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBACrG,MAAM;YACV;gBACI,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBACxD,kBAAkB,CAAC,aAAa,CAAC,mFAAuB,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBACzG,MAAM;SACb;IACL,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW;QACjF,IAAI,OAAO,YAAY,+DAAmB,EAAE;YACxC,aAAa,GAAG,EAAE,CAAC;YACnB,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAClC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;SACnC;QACD,IAAI,KAAK,YAAY,+DAAmB,EAAE;YACtC,WAAW,GAAG,EAAE,CAAC;YACjB,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAChC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;YACH,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC;SAC/B;QAED,IAAI,OAAO,EAAE;YACT,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;gBACxE,IAAI,KAAK,EAAE;oBACP,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;wBACpE,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBAC3D,CAAC,CAAC,CAAC;iBACN;qBAAM;oBACH,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;iBAC3D;YACL,CAAC,CAAC,CAAC;SACN;aAAM,IAAI,KAAK,EAAE;YACd,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;gBACpE,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;SACN;aAAM;YACH,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SAC9D;IACL,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,WAAwB,EAAE,IAAY,EAAE,IAAY,EAAE,aAAsB;QAC3F,QAAQ,WAAW,EAAE;YACjB,KAAK,6EAAiB;gBAClB,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE;oBACzC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;iBAC3E;gBACD,MAAM;YACV,KAAK,mFAAuB;gBACxB,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBACvE,MAAM;YACV,KAAK,+EAAmB;gBACpB,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBAC1E,MAAM;YACV,KAAK,+EAAmB;gBACpB,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBAC1E,MAAM;SACb;QACD,IAAI,aAAa,EAAE;YACf,kBAAkB,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;SACzE;IACL,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU;QAC5D,MAAM,EAAE,GAAG,IAAI,uFAAe,EAAE,CAAC;QACjC,EAAE,CAAC,UAAU,GAAG,UAAU,CAAC;QAC3B,EAAE,CAAC,WAAW,GAAG,WAAW,CAAC;QAC7B,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;QAChB,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;QAClB,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC;QAChB,MAAM,WAAW,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,MAAM,WAAW,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QACnE,IAAI,WAAW,EAAE;YACb,WAAW,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;SACpC;QACD,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1D,CAAC;IAEM,MAAM,CAAC,aAAa;QACvB,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;;AAnLa,mCAAgB,GAAuC,IAAI,iDAAe,CAAoB,EAAE,CAAC,CAAC;AAClG,sCAAmB,GAAG,KAAK,CAAC;AAC3B,0BAAO,GAAmB,IAAI,CAAC;AAC/B,4BAAS,GAAqB,IAAI,CAAC;AACnC,yBAAM,GAAuB;IACxC,OAAO,EAAE,IAAI;IACb,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,KAAK;IACnB,YAAY,EAAE,IAAI;IAClB,cAAc,EAAE,GAAG;IACnB,QAAQ,EAAE,kEAA0B;CACvC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpBN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CAKA;;AACA;AACA;CAGA;;AACM,MAAOmwD,aAAP,CAAoB;EAaG,WAAPC,OAAO;IACrB,OAAO,KAAKC,YAAZ;EACH;;EACwB,WAAPD,OAAO,CAAC7pE,KAAD,EAAM;IAC3B,KAAK8pE,YAAL,GAAoB9pE,KAApB;EACH;;EACwB,OAAX+pE,WAAW;IACrB,IAAIrqE,MAAM,GAAG2I,YAAY,CAACC,OAAb,CAAqB,iBAArB,CAAb;;IACA,IAAI5I,MAAJ,EAAY;MACR,KAAKoqE,YAAL,GAAoBthE,IAAI,CAACC,KAAL,CAAW/I,MAAX,CAApB;IACH,CAFD,MAEO;MACH,KAAKoqE,YAAL,GAAoB,IAApB;IACH;EACJ;;EACwB,OAAXvK,WAAW;IAErB,IAAI,KAAKuK,YAAT,EAAuB;MACnB,IAAIE,IAAI,GAAGllE,MAAM,CAACC,IAAP,CAAY,KAAK+kE,YAAjB,CAAX;;MACA,IAAIE,IAAI,IAAIA,IAAI,CAAC5pE,MAAL,GAAc,CAA1B,EAA6B;QACzB,KAAK,IAAIoH,CAAC,GAAGwiE,IAAI,CAAC5pE,MAAL,GAAc,CAA3B,EAA8BoH,CAAC,IAAI,CAAnC,EAAsCA,CAAC,EAAvC,EAA2C;UACvC,IAAIyiE,OAAO,GAAGnlE,MAAM,CAACC,IAAP,CAAY,KAAK+kE,YAAL,CAAkBE,IAAI,CAACxiE,CAAD,CAAtB,EAA2BwmD,OAAvC,CAAd;;UACA,IAAIic,OAAO,IAAIA,OAAO,CAAC7pE,MAAR,GAAgB,CAA/B,EAAkC;YAC9B,KAAK,IAAI42C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGizB,OAAO,CAAC7pE,MAA5B,EAAoC42C,CAAC,EAArC,EAAyC;cACrC,IAAIzrC,KAAK,GAAG,KAAKu+D,YAAL,CAAkBE,IAAI,CAACxiE,CAAD,CAAtB,EAA2BwmD,OAA3B,CAAmCic,OAAO,CAACjzB,CAAD,CAA1C,CAAZ;;cACA,IAAIzrC,KAAK,CAACghC,MAAN,IAAgB,CAApB,EAAuB;gBACnB,OAAO,KAAKu9B,YAAL,CAAkBE,IAAI,CAACxiE,CAAD,CAAtB,EAA2BwmD,OAA3B,CAAmCic,OAAO,CAACjzB,CAAD,CAA1C,CAAP;cACH;YACJ;UACJ;;UACDizB,OAAO,GAAGnlE,MAAM,CAACC,IAAP,CAAY,KAAK+kE,YAAL,CAAkBE,IAAI,CAACxiE,CAAD,CAAtB,EAA2BwmD,OAAvC,CAAV;;UACA,IAAI,CAACic,OAAD,IAAYA,OAAO,CAAC7pE,MAAR,IAAkB,CAAlC,EAAqC;YACjC,OAAO,KAAK0pE,YAAL,CAAkBE,IAAI,CAACxiE,CAAD,CAAtB,CAAP;UACH;QACJ;MACJ;;MAEDwiE,IAAI,GAAGllE,MAAM,CAACC,IAAP,CAAY,KAAK+kE,YAAjB,CAAP;;MACA,IAAI,CAACE,IAAD,IAASA,IAAI,CAAC5pE,MAAL,IAAe,CAA5B,EAA+B;QAC3BiI,YAAY,CAAC6hE,UAAb,CAAwB,iBAAxB;MACH,CAFD,MAEO;QACH7hE,YAAY,CAAC2E,OAAb,CAAqB,iBAArB,EAAwCxE,IAAI,CAACW,SAAL,CAAe,KAAK2gE,YAApB,CAAxC;MACH;IACJ;EACJ;;EACyB,WAAPp9B,OAAO;IACtB,IAAIrkC,YAAY,CAACC,OAAb,CAAqB,YAArB,CAAJ,EAAwC;MACpC,OAAOwzD,QAAQ,CAACzzD,YAAY,CAACC,OAAb,CAAqB,YAArB,CAAD,CAAf;IACH;;IACD,OAAO,IAAP;EACH;;EACyB,WAAPokC,OAAO,CAAC1sC,KAAD,EAAa;IACnCqI,YAAY,CAAC2E,OAAb,CAAqB,YAArB,EAAmChN,KAAK,GAAC,EAAzC;EACH;;EAEwB,WAANmqE,MAAM;IACrB,IAAI9hE,YAAY,CAACC,OAAb,CAAqB,WAArB,CAAJ,EAAuC;MACnC,OAAOD,YAAY,CAACC,OAAb,CAAqB,WAArB,CAAP;IACH;;IACD,OAAO,IAAP;EACH;;EACwB,WAAN6hE,MAAM,CAACnqE,KAAD,EAAW;IAChCqI,YAAY,CAAC2E,OAAb,CAAqB,WAArB,EAAkChN,KAAlC;EACH,CA3EqB,CA4EtB;EACA;;;EACgC,OAAlBoqE,kBAAkB,CAACplE,GAAD,EAAI;IAChC,IAAI,KAAKmpD,QAAL,IAAiB,IAAjB,IAAyB,KAAKA,QAAL,CAAckc,OAAvC,IAAkD,KAAKlc,QAAL,CAAckc,OAAd,CAAsBrb,MAA5E,EAAoF;MAChF,KAAKsb,EAAL,CAAQ,wBAAR,EAAkCC,KAAlC,CAAwC,KAAxC,EAA+CC,MAA/C,CAAsDxlE,GAAtD,EAA2D2O,MAA3D;IACH,CAFD,MAEO;MACHtL,YAAY,CAAC6hE,UAAb,CAAwB,6BAA6BllE,GAArD;IACH;EACJ;;EAC4B,OAAfylE,eAAe,CAACzlE,GAAD,EAAMrF,IAAN,EAAU;IACnC,IAAIA,IAAI,IAAI,IAAZ,EAAkB;MACd,IAAI,KAAKwuD,QAAL,IAAiB,IAAjB,IAAyB,KAAKA,QAAL,CAAckc,OAAvC,IAAkD,KAAKlc,QAAL,CAAckc,OAAd,CAAsBrb,MAA5E,EAAoF;QAChF,KAAKsb,EAAL,CAAQ,wBAAR,EAAkCI,GAAlC,CAAsC;UAAE5hB,GAAG,EAAE9jD,GAAP;UAAYmJ,KAAK,EAAE3F,IAAI,CAACW,SAAL,CAAexJ,IAAf;QAAnB,CAAtC;MACH,CAFD,MAEO;QACH0I,YAAY,CAAC2E,OAAb,CAAqB,6BAA6BhI,GAAlD,EAAuDwD,IAAI,CAACW,SAAL,CAAexJ,IAAf,CAAvD;MACH;IACJ;EACJ;;EAC4B,OAAfgrE,eAAe,CAAC3lE,GAAD,EAAI;IAC7B,OAAO,IAAIxB,OAAJ,CAAaC,OAAD,IAAY;MAC3B,IAAI,KAAK0qD,QAAL,IAAiB,IAAjB,IAAyB,KAAKA,QAAL,CAAckc,OAAvC,IAAkD,KAAKlc,QAAL,CAAckc,OAAd,CAAsBrb,MAA5E,EAAoF;QAChF,KAAKrB,KAAL,CAAW,wBAAX,EAAqC;UAAErzB,OAAO,EAAE,CAAC;YAAEpsB,IAAI,EAAE,KAAR;YAAe+qB,QAAQ,EAAEhC,uEAAzB;YAAyC9oB,KAAK,EAAEnJ;UAAhD,CAAD;QAAX,CAArC,EAA2GlG,SAA3G,CAAsH2a,MAAD,IAAW;UAC5H,IAAIA,MAAM,IAAIA,MAAM,CAACrZ,MAAP,GAAgB,CAA9B,EAAiC;YAC7BqD,OAAO,CAAC+E,IAAI,CAACC,KAAL,CAAWgR,MAAM,CAAC,CAAD,CAAN,CAAUtL,KAArB,CAAD,CAAP;UACH,CAFD,MAEO;YACH1K,OAAO,CAAC,IAAD,CAAP;UACH;QACJ,CAND;MAOH,CARD,MAQO;QACH,IAAIgW,MAAM,GAAGpR,YAAY,CAACC,OAAb,CAAqB,6BAA6BtD,GAAlD,CAAb;;QACA,IAAIyU,MAAJ,EAAY;UACRhW,OAAO,CAAC+E,IAAI,CAACC,KAAL,CAAWgR,MAAX,CAAD,CAAP;QACH,CAFD,MAEO;UACHhW,OAAO,CAAC,IAAD,CAAP;QACH;MACJ;IACJ,CAjBM,CAAP;EAkBH,CAjHqB,CAkHtB;;;EACwB,OAAVkgC,UAAU,CAACv9B,OAAD,EAA0BwkE,cAA1B,EAA+DC,kBAA/D,EAAuGC,KAAvG,EAA8GC,MAA9G,EAAoH;IACxI,KAAKC,cAAL,GAAsB5kE,OAAtB;IACA,KAAKwkE,cAAL,GAAsBA,cAAtB;IACA,KAAKC,kBAAL,GAA0BA,kBAA1B;IAEA,KAAKI,IAAL,GAAY5iE,YAAY,CAACC,OAAb,CAAqB,MAArB,CAAZ;;IACA,IAAI,KAAK2iE,IAAT,EAAe;MACX,KAAKA,IAAL,GAAYziE,IAAI,CAACC,KAAL,CAAW,KAAKwiE,IAAhB,CAAZ;IACH;;IAED,IAAIjX,QAAQ,GAAQ3rD,YAAY,CAACC,OAAb,CAAqB,iBAArB,CAApB;;IACA,IAAI0rD,QAAJ,EAAc;MACVA,QAAQ,GAAGxrD,IAAI,CAACC,KAAL,CAAWurD,QAAX,CAAX;IACH;;IACD,KAAK7F,QAAL,GAAgB6F,QAAhB;IAEA,KAAKr1D,aAAL,CAAmB,OAAnB,IAA8BmsE,KAAK,CAAChsE,SAAN,CAAiB+O,IAAD,IAAS;MACnD,KAAKo9D,IAAL,GAAYp9D,IAAZ;MACA,KAAKq9D,cAAL;IACH,CAH6B,CAA9B;IAKA,KAAKvsE,aAAL,CAAmB,QAAnB,IAA+BosE,MAAM,CAACjsE,SAAP,CAAiB,MAAK;MACjD,IAAI,KAAKmsE,IAAT,EAAe;QACXvB,sFAAA,CAA6B,CAAC;UAAEyB,OAAO,EAAE,KAAKF,IAAL,CAAUnnE,GAAV,GAAgB,eAA3B;UAA4C8T,KAAK,EAAE,CAAC,CAAD;QAAnD,CAAD,CAA7B;QACA,KAAKqzD,IAAL,GAAY,IAAZ;MACH;IACJ,CAL8B,CAA/B;IAOA,KAAKtsE,aAAL,CAAmB,QAAnB,IAA+BgrE,iFAAA,CAAoC0B,MAAD,IAAW;MACzE,KAAKD,MAAL,GAAcC,MAAd;;MACA,IAAIA,MAAJ,EAAY;QACR,KAAKH,cAAL;MACH;IACJ,CAL8B,CAA/B;IAOA,KAAKvsE,aAAL,CAAmB,QAAnB,IAA+B+qE,2FAAA,CAAmCl/C,KAAD,IAAU;MACvE,KAAK8gD,eAAL,GAAuB9gD,KAAvB;;MACA,IAAIA,KAAJ,EAAW;QACP,KAAK0gD,cAAL;MACH;IACJ,CAL8B,CAA/B;IAOA,KAAKvsE,aAAL,CAAmB,SAAnB,IAAgC+qE,oGAAA,CAA4C8B,QAAD,IAAa;MACpF,MAAMC,MAAM,GAAGjjE,IAAI,CAACC,KAAL,CAAW+iE,QAAX,CAAf;;MACA,IAAIC,MAAM,CAAC7zD,KAAP,IAAgB0xD,0FAAhB,IAA4CmC,MAAM,CAACriE,IAAP,IAAe,aAA/D,EAA8E;QAC1E,IAAIqiE,MAAM,CAACjgE,OAAX,EAAoB;UAChB,MAAMmgE,YAAY,GAAGnjE,IAAI,CAACC,KAAL,CAAWgjE,MAAM,CAACjgE,OAAlB,CAArB;;UACA,IAAImgE,YAAY,CAAC5pE,IAAjB,EAAuB;YACnB,MAAMgnD,OAAO,GAAGvgD,IAAI,CAACC,KAAL,CAAWkjE,YAAY,CAAC5pE,IAAxB,CAAhB;;YACA,IAAI4pE,YAAY,CAACviE,IAAb,IAAqB,UAAzB,EAAqC;cACjCf,YAAY,CAAC2E,OAAb,CAAqB,aAArB,EAAoC,IAAIk+C,IAAJ,CAASnC,OAAT,EAAkB6iB,MAAlB,EAApC;YACH,CAFD,MAEO;cACH,IAAI9iE,KAAK,CAACC,OAAN,CAAcggD,OAAd,CAAJ,EAA4B;gBACxBA,OAAO,CAACroD,OAAR,CAAiBf,IAAD,IAAS;kBACrB,KAAK2qE,EAAL,CAAQqB,YAAY,CAACviE,IAArB,EAA2BshE,GAA3B,CAA+B/qE,IAA/B;gBACH,CAFD;cAGH,CAJD,MAIO;gBACH,KAAK2qE,EAAL,CAAQqB,YAAY,CAACviE,IAArB,EAA2BshE,GAA3B,CAA+B3hB,OAA/B;cACH;YACJ;UACJ;QACJ;MACJ;IACJ,CArB+B,CAAhC;IAsBA,KAAK8iB,QAAL;EACH;;EACkC,OAAdX,cAAc;IAAA;;IAAA;MAC/B,IAAI,KAAI,CAACD,IAAL,IAAa,KAAI,CAACK,eAAtB,EAAuC;QACnC,IAAI,KAAI,CAACnd,QAAL,IAAiB,IAAjB,IAAyB,KAAI,CAACA,QAAL,CAAckc,OAAvC,IAAkD,KAAI,CAAClc,QAAL,CAAckc,OAAd,CAAsBrb,MAA5E,EAAoF;UAChF,IAAI;YACA,MAAM,KAAI,CAAC6c,QAAL,EAAN;YACAnC,oFAAA,CAA2B,CAAC;cAAEyB,OAAO,EAAE,KAAI,CAACF,IAAL,CAAUnnE,GAAV,GAAgB,eAA3B;cAA4C8T,KAAK,EAAE,CAAC,CAAD;YAAnD,CAAD,CAA3B;YACA,IAAIm0D,IAAI,GAAG,IAAI7gB,IAAJ,CAAS,sBAAT,CAAX;;YACA,IAAI7iD,YAAY,CAACC,OAAb,CAAqB,aAArB,CAAJ,EAAyC;cACrCyjE,IAAI,GAAG,IAAI7gB,IAAJ,CAAS7iD,YAAY,CAACC,OAAb,CAAqB,aAArB,CAAT,CAAP;YACH;;YACD,IAAI,KAAI,CAAC8iE,MAAT,EAAiB;cACb,KAAI,CAACY,eAAL;;cACA,KAAI,CAAChB,cAAL,CAAoBiB,eAApB,CAAoCF,IAAI,CAACH,MAAL,EAApC,EAAmD9sE,SAAnD;YACH;UACJ,CAXD,CAWE,OAAMotE,EAAN,EAAU;YACR1/D,OAAO,CAACC,GAAR,CAAYy/D,EAAZ;UACH;QACJ;MACJ;IAlB8B;EAmBlC,CAxMqB,CA0MtB;;;EAC2B,OAAbC,aAAa,CAACjkE,IAAD,EAAOw4B,IAAP,EAAW;IAClC,IAAIgqB,KAAK,GAAG,KAAK4f,EAAL,CAAQpiE,IAAR,CAAZ;;IACA,IAAIw4B,IAAJ,EAAU;MACN,IAAIA,IAAI,CAAC0rC,IAAL,IAAa1rC,IAAI,CAAC0rC,IAAL,CAAUhsE,MAAV,GAAmB,CAApC,EAAuC;QACnCsgC,IAAI,CAAC0rC,IAAL,CAAU1rE,OAAV,CAAmBmC,IAAD,IAAS;UACvB,IAAIA,IAAI,CAAC0mE,KAAL,IAAcA,+DAAlB,EAA6B;YACzB7e,KAAK,GAAGA,KAAK,CAAC4hB,OAAN,CAAczpE,IAAI,CAACqL,IAAnB,CAAR;UACH,CAFD,MAEO;YACHw8C,KAAK,GAAGA,KAAK,CAAC4hB,OAAN,CAAczpE,IAAI,CAACqL,IAAnB,EAAyBkiC,OAAzB,EAAR;UACH;QACJ,CAND;MAOH;;MACD,IAAI1P,IAAI,CAACpG,OAAL,IAAgBoG,IAAI,CAACpG,OAAL,CAAal6B,MAAb,GAAsB,CAA1C,EAA6C;QACzCsqD,KAAK,GAAGA,KAAK,CAAC/nD,MAAN,CAAc3C,KAAD,IAAU;UAC3B,IAAIyZ,MAAM,GAAG,KAAK8yD,UAAL,CAAgB7rC,IAAI,CAACpG,OAArB,EAA8Bt6B,KAA9B,EAAqCqpE,kEAArC,CAAb;UACA,OAAO5vD,MAAP;QACH,CAHO,CAAR;MAIH;;MACD,IAAIinB,IAAI,CAACvH,QAAL,IAAiBuH,IAAI,CAACpH,MAA1B,EAAkC;QAC9BoxB,KAAK,GAAGA,KAAK,CAAC+hB,MAAN,CAAa/rC,IAAI,CAACvH,QAAlB,EAA4BuzC,KAA5B,CAAkChsC,IAAI,CAACpH,MAAL,GAAcoH,IAAI,CAACvH,QAArD,CAAR;MACH;IACJ;;IACD,OAAOuxB,KAAP;EACH;;EACwB,OAAV6hB,UAAU,CAACI,OAAD,EAAU3sE,KAAV,EAAiB6mB,MAAjB,EAAuB;IAC5C,IAAIpN,MAAM,GAAGoN,MAAM,IAAIwiD,kEAAvB;;IACA,KAAK,IAAI7hE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmlE,OAAO,CAACvsE,MAA5B,EAAoCoH,CAAC,EAArC,EAAyC;MACrC,IAAI7E,MAAM,GAAGgqE,OAAO,CAACnlE,CAAD,CAApB;;MAEA,IAAI7E,MAAM,CAAC23B,OAAP,IAAkB,IAAlB,IAA0B33B,MAAM,CAAC23B,OAAP,CAAel6B,MAAf,GAAwB,CAAtD,EAAyD;QACrDqZ,MAAM,GAAG,KAAK8yD,UAAL,CAAgB5pE,MAAM,CAAC23B,OAAvB,EAAgCt6B,KAAhC,EAAuC2C,MAAM,CAAC0mE,MAA9C,CAAT;MACH;;MAED,IAAI5vD,MAAM,IAAI,KAAV,IAAmBoN,MAAM,IAAIwiD,kEAAjC,EAA6C;QACzC;MACH;;MACD,IAAI/hB,IAAI,GAAG,KAAX;;MACA,QAAQ3kD,MAAM,CAACs2B,QAAf;QACI,KAAKhC,uEAAL;UACIqwB,IAAI,GAAGtnD,KAAK,CAAC2C,MAAM,CAACuL,IAAR,CAAL,IAAsBvL,MAAM,CAACwL,KAApC;UACA;;QACJ,KAAK8oB,0EAAL;UACIqwB,IAAI,GAAGtnD,KAAK,CAAC2C,MAAM,CAACuL,IAAR,CAAL,IAAsBvL,MAAM,CAACwL,KAApC;UACA;;QACJ,KAAK8oB,yEAAL;UAAuB;;QACvB,KAAKA,4EAAL;UAA0B;;QAC1B,KAAKA,oEAAL;UACIqwB,IAAI,GAAG3kD,MAAM,CAACwL,KAAP,CAAapB,OAAb,CAAqB/M,KAAK,CAAC2C,MAAM,CAACuL,IAAR,CAA1B,IAA2C,CAAC,CAAnD;UACA;;QACJ,KAAK+oB,uEAAL;UACIqwB,IAAI,GAAG3kD,MAAM,CAACwL,KAAP,CAAapB,OAAb,CAAqB/M,KAAK,CAAC2C,MAAM,CAACuL,IAAR,CAA1B,KAA4C,CAAC,CAApD;UACA;;QACJ,KAAK+oB,yEAAL;UACIqwB,IAAI,GAAGtnD,KAAK,CAAC2C,MAAM,CAACuL,IAAR,CAAL,GAAqBvL,MAAM,CAACwL,KAAnC;UACA;;QACJ,KAAK8oB,8EAAL;UACIqwB,IAAI,GAAGtnD,KAAK,CAAC2C,MAAM,CAACuL,IAAR,CAAL,IAAsBvL,MAAM,CAACwL,KAApC;UACA;;QACJ,KAAK8oB,yEAAL;UACIqwB,IAAI,GAAGtnD,KAAK,CAAC2C,MAAM,CAACuL,IAAR,CAAL,GAAqBvL,MAAM,CAACwL,KAAnC;UACA;;QACJ,KAAK8oB,8EAAL;UACIqwB,IAAI,GAAGtnD,KAAK,CAAC2C,MAAM,CAACuL,IAAR,CAAL,IAAsBvL,MAAM,CAACwL,KAApC;UACA;;QACJ,KAAK8oB,sEAAL;UACIqwB,IAAI,GAAGtnD,KAAK,CAAC2C,MAAM,CAACuL,IAAR,CAAL,CAAmBnB,OAAnB,CAA2BpK,MAAM,CAACwL,KAAlC,IAA2C,CAAC,CAAnD;UACA;;QACJ,KAAK8oB,yEAAL;UACIqwB,IAAI,GAAGtnD,KAAK,CAAC2C,MAAM,CAACuL,IAAR,CAAL,CAAmBnB,OAAnB,CAA2BpK,MAAM,CAACwL,KAAlC,KAA4C,CAAC,CAApD;UACA;MAhCR;;MAkCA,IAAI0Y,MAAM,IAAIwiD,iEAAd,EAAyB;QACrB,IAAI/hB,IAAJ,EAAU;UACN7tC,MAAM,GAAG6tC,IAAT;QACH;MACJ,CAJD,MAIO;QACH7tC,MAAM,GAAG6tC,IAAT;MACH;IACJ;;IACD,OAAO7tC,MAAP;EACH;;EAE4B,OAAR8zD,QAAQ,CAACC,IAAD,EAAOC,KAAP,EAAY;IAAA;;IAAA;MACrC,IAAIA,KAAK,IAAIA,KAAK,CAAC12B,MAAf,IAAyBy2B,IAA7B,EAAmC;QAC/B,KAAK,IAAIxW,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyW,KAAK,CAAC12B,MAAN,CAAa32C,MAAjC,EAAyC42D,CAAC,EAA1C,EAA8C;UAC1C,IAAInqB,KAAK,GAAG4gC,KAAK,CAAC12B,MAAN,CAAaigB,CAAb,CAAZ;;UACA,IAAInqB,KAAK,CAACzjC,IAAN,IAAc,sCAAlB,EAA0D;YACtD,IAAIyjC,KAAK,CAAC1S,QAAN,IAAkB,CAAC0S,KAAK,CAACzS,SAA7B,EAAwC;cACpC,IAAIozC,IAAI,CAAC3gC,KAAK,CAAC3+B,IAAP,CAAR,EAAsB;gBAClB,IAAI2+B,KAAK,CAAC3S,MAAV,EAAkB;kBACd,IAAIhoB,GAAG,SAAS03D,aAAa,CAAC8D,KAAd,GAAsB7gC,KAAK,CAAC1Q,YAA5B,EAA0CouC,KAA1C,CAAgD,KAAhD,EAAuDoD,KAAvD,CAA6DH,IAAI,CAAC3gC,KAAK,CAAC3+B,IAAP,CAAjE,EAA+E0/D,OAA/E,EAAhB;;kBACA,IAAI17D,GAAG,IAAIA,GAAG,CAAC9R,MAAJ,GAAa,CAAxB,EAA2B;oBACvBotE,IAAI,CAAC3gC,KAAK,CAAC3+B,IAAP,CAAJ,GAAmBgE,GAAnB;;oBACA,KAAK,IAAI27D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG37D,GAAG,CAAC9R,MAAxB,EAAgCytE,CAAC,EAAjC,EAAqC;sBACjC,MAAM,MAAI,CAACN,QAAL,CAAcr7D,GAAG,CAAC27D,CAAD,CAAjB,EAAsBhhC,KAAtB,CAAN;oBACH;kBACJ;gBACJ,CARD,MAQO;kBACH,IAAI36B,GAAG,SAAS03D,aAAa,CAAC8D,KAAd,GAAsB7gC,KAAK,CAAC1Q,YAA5B,EAA0CouC,KAA1C,CAAgD,KAAhD,EAAuDC,MAAvD,CAA8DgD,IAAI,CAAC3gC,KAAK,CAAC3+B,IAAP,CAAlE,EAAgF0/D,OAAhF,EAAhB;;kBACA,IAAI17D,GAAG,IAAIA,GAAG,CAAC9R,MAAJ,GAAa,CAAxB,EAA2B;oBACvBotE,IAAI,CAAC3gC,KAAK,CAAC3+B,IAAP,CAAJ,GAAmBgE,GAAG,CAAC,CAAD,CAAtB;oBACA,MAAM,MAAI,CAACq7D,QAAL,CAAcr7D,GAAG,CAAC,CAAD,CAAjB,EAAsB26B,KAAtB,CAAN;kBACH;gBACJ;cACJ;YACJ,CAlBD,MAkBO;cACH,IAAIA,KAAK,CAAC3S,MAAV,EAAkB;gBACd,KAAK,IAAI2zC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGL,IAAI,CAAC3gC,KAAK,CAAC3+B,IAAP,CAAJ,CAAiB9N,MAArC,EAA6CytE,CAAC,EAA9C,EAAkD;kBAC9C,MAAM,MAAI,CAACN,QAAL,CAAcC,IAAI,CAAC3gC,KAAK,CAAC3+B,IAAP,CAAJ,CAAiB2/D,CAAjB,CAAd,EAAmChhC,KAAnC,CAAN;gBACH;cACJ,CAJD,MAIO;gBACH,MAAM,MAAI,CAAC0gC,QAAL,CAAcC,IAAI,CAAC3gC,KAAK,CAAC3+B,IAAP,CAAlB,EAAgC2+B,KAAhC,CAAN;cACH;YACJ;UACJ;;UACD,IAAIA,KAAK,CAACzjC,IAAN,IAAc,sCAAlB,EAA0D;YACtDokE,IAAI,CAAC3gC,KAAK,CAAC3+B,IAAP,CAAJ,GAAmB+0C,4FAAA,CAAgCuqB,IAAI,CAAC3gC,KAAK,CAAC3+B,IAAP,CAApC,CAAnB;UACH;QACJ;MACJ;IArCoC;EAsCxC;;EACoC,OAAhB4/D,gBAAgB,CAACL,KAAD,EAAM;IAAA;;IAAA;MACvC,IAAIA,KAAK,IAAIA,KAAK,CAAC12B,MAAnB,EAA2B;QACvB,KAAK,IAAIvvC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGimE,KAAK,CAAC12B,MAAN,CAAa32C,MAAjC,EAAyCoH,CAAC,EAA1C,EAA8C;UAC1C,IAAIqlC,KAAK,GAAG4gC,KAAK,CAAC12B,MAAN,CAAavvC,CAAb,CAAZ;;UACA,IAAIqlC,KAAK,CAACzjC,IAAN,IAAc,sCAAlB,EAA0D;YACtD,IAAIqJ,MAAM,SAASm3D,aAAa,CAAC8D,KAAd,GAAsB,kDAAtB,EAA0EnD,KAA1E,CAAgF,KAAhF,EAAuFC,MAAvF,CAA8F39B,KAAK,CAAC1Q,YAApG,EAAkHyxC,OAAlH,EAAnB;;YACA,IAAIn7D,MAAM,IAAIA,MAAM,CAACrS,MAAP,GAAgB,CAA9B,EAAiC;cAC7B,IAAIy/B,GAAG,GAAGptB,MAAM,CAAC,CAAD,CAAhB;;cACA,IAAIotB,GAAG,IAAIA,GAAG,CAACkX,MAAf,EAAuB;gBACnBlK,KAAK,CAACkK,MAAN,GAAetkC,MAAM,CAAC,CAAD,CAAN,CAAUskC,MAAzB;gBACA,MAAM,MAAI,CAAC+2B,gBAAL,CAAsBjhC,KAAtB,CAAN;cACH;YACJ;UACJ;QACJ;MACJ;IAfsC;EAgB1C;;EAEuB,OAAVkhC,UAAU,CAACN,KAAD,EAAM;IAC1B,OAAO,IAAIjqE,OAAJ,CAAY,CAACC,OAAD,EAAUwO,MAAV,KAAoB;MACnC,IAAIwH,MAAM,GAAG;QACTmZ,OAAO,EAAE,CAAC;UACN,cAAc,IADR;UAEN,mBAAmB,KAFb;UAGN,gBAAgB,KAHV;UAIN,YAAY,KAJN;UAKN,UAAU,CALJ;UAMN,oBAAoB,CANd;UAON,gBAAgB,CAPV;UAQN,QAAQ,KARF;UASN,aAAa66C,KAAK,CAACtD,MAAN,GAAe,GAAf,GAAqBsD,KAAK,CAACv/D,IATlC;UAUN,QAAQ,aAVF;UAWN,oBAAoB,sCAXd;UAYN,SAAS,sCAZH;UAaN,SAAS;QAbH,CAAD,EAcN;UACC,cAAc,IADf;UAEC,mBAAmB,KAFpB;UAGC,gBAAgB,KAHjB;UAIC,YAAY,KAJb;UAKC,UAAU,CALX;UAMC,oBAAoB,CANrB;UAOC,gBAAgB,CAPjB;UAQC,QAAQ,UART;UASC,aAAau/D,KAAK,CAACtD,MAAN,GAAe,GAAf,GAAqBsD,KAAK,CAACv/D,IATzC;UAUC,QAAQ,aAVT;UAWC,oBAAoB,sCAXrB;UAYC,SAAS,sCAZV;UAaC,SAAS;QAbV,CAdM,EA4BN;UACC,cAAc,IADf;UAEC,mBAAmB,KAFpB;UAGC,gBAAgB,KAHjB;UAIC,YAAY,KAJb;UAKC,UAAU,CALX;UAMC,oBAAoB,CANrB;UAOC,gBAAgB,CAPjB;UAQC,QAAQ,SART;UASC,aAAau/D,KAAK,CAACtD,MAAN,GAAe,GAAf,GAAqBsD,KAAK,CAACv/D,IATzC;UAUC,QAAQ,cAVT;UAWC,oBAAoB,sCAXrB;UAYC,SAAS,sCAZV;UAaC,SAAS;QAbV,CA5BM,CADA;QA4CT8/D,MAAM,EAAE,KA5CC;QA6CT9/D,IAAI,EAAEu/D,KAAK,CAACv/D,IA7CH;QA8CTi8D,MAAM,EAAE,MA9CC;QA+CT8D,gBAAgB,EAAER,KAAK,CAAC3pE,GA/Cf;QAgDToqE,eAAe,EAAE;MAhDR,CAAb;;MAkDA,IAAIT,KAAK,IAAIA,KAAK,CAAC12B,MAAnB,EAA2B;QACvB6yB,aAAa,CAACuE,kBAAd,CAAiCV,KAAK,CAAC12B,MAAvC,EAA+C,EAA/C,EAAmDt9B,MAAnD,EAA2D/W,IAA3D,CAAiE89D,OAAD,IAAY;UACxE/mD,MAAM,CAACmZ,OAAP,CAAeh0B,IAAf,CAAoB,GAAG4hE,OAAvB;UACA/8D,OAAO,CAACgW,MAAD,CAAP;QACH,CAHD;MAIH,CALD,MAKO;QACHhW,OAAO,CAACgW,MAAD,CAAP;MACH;IACJ,CA3DM,CAAP;EA4DH;;EACsC,OAAlB00D,kBAAkB,CAACp3B,MAAD,EAASlwB,MAAT,EAAiB4mD,KAAjB,EAAsB;IAAA;;IAAA;MACzD,OAAO,IAAIjqE,OAAJ;QAAA,kKAAY,WAAOC,OAAP,EAAgBwO,MAAhB,EAA0B;UACzC,IAAIwH,MAAM,GAAG,EAAb;;UAEA,KAAK,IAAIjS,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuvC,MAAM,CAAC32C,MAA3B,EAAmCoH,CAAC,EAApC,EAAwC;YACpC,IAAIqlC,KAAK,GAAGkK,MAAM,CAACvvC,CAAD,CAAlB;YACAqlC,KAAK,CAAC3+B,IAAN,GAAa2Y,MAAM,GAAGgmB,KAAK,CAAC3+B,IAA5B;YAEA,IAAI8wD,MAAM,GAAG;cACT,cAAcnyB,KAAK,CAACuhC,UADX;cAET,mBAAmB,KAFV;cAGT,gBAAgB,KAHP;cAIT,YAAY,KAJH;cAKT,UAAU,CALD;cAMT,oBAAoB,CANX;cAOT,gBAAgB,CAPP;cAQT,QAAQvhC,KAAK,CAAC3+B,IARL;cAST,aAAau/D,KAAK,CAACtD,MAAN,GAAe,GAAf,GAAqBsD,KAAK,CAACv/D,IAT/B;cAUT,QAAQ2+B,KAAK,CAACwhC,OAVL;cAWT,oBAAoBxhC,KAAK,CAACjkC,EAXjB;cAYT,SAASikC,KAAK,CAACzjC,IAZN;cAaT,SAASyjC,KAAK,CAAC1Q;YAbN,CAAb;YAgBA1iB,MAAM,CAAC7a,IAAP,CAAYogE,MAAZ;;YAEA,IAAInyB,KAAK,CAACzjC,IAAN,IAAc,sCAAlB,EAA0D;cACtD,IAAIqJ,MAAM,SAASm3D,aAAa,CAAC8D,KAAd,GAAsB,kDAAtB,EAA0EnD,KAA1E,CAAgF,KAAhF,EAAuFC,MAAvF,CAA8F39B,KAAK,CAAC1Q,YAApG,EAAkHyxC,OAAlH,EAAnB;;cACA,IAAIn7D,MAAM,IAAIA,MAAM,CAACrS,MAAP,GAAgB,CAA9B,EAAiC;gBAC7B,IAAIy/B,GAAG,GAAGptB,MAAM,CAAC,CAAD,CAAhB;;gBACA,IAAIotB,GAAG,IAAIA,GAAG,CAACkX,MAAf,EAAuB;kBACnBt9B,MAAM,CAAC7a,IAAP,CAAY,UAAS,MAAI,CAACuvE,kBAAL,CAAwBtuC,GAAG,CAACkX,MAA5B,EAAoClK,KAAK,CAAC3+B,IAAN,GAAa,GAAjD,EAAsDu/D,KAAtD,CAAT,CAAZ;gBACH;cACJ;YACJ;UACJ;;UACDhqE,OAAO,CAACgW,MAAD,CAAP;QACH,CApCM;;QAAA;UAAA;QAAA;MAAA,IAAP;IADyD;EAsC5D;;EAEwC,OAArB60D,qBAAqB,CAACb,KAAD,EAAQ9qE,MAAR,EAAc;IAAA;;IAAA;MACnD,OAAO,IAAIa,OAAJ;QAAA,mKAAY,WAAOC,OAAP,EAAgBwO,MAAhB,EAA0B;UACzC,IAAIwH,MAAM,GAAG,EAAb;;UACA,IAAI,CAAC9W,MAAL,EAAa;YACTA,MAAM,GAAG,IAAIw0B,uEAAJ,EAAT;UACH;;UACD,IAAI,CAACx0B,MAAM,CAACiwB,OAAR,IAAmBjwB,MAAM,CAACiwB,OAAP,CAAexyB,MAAf,IAAyB,CAAhD,EAAmD;YAC/C,IAAImuE,aAAa,SAAS,MAAI,CAACR,UAAL,CAAgBN,KAAhB,CAA1B;YACAc,aAAa,CAAC37C,OAAd,CAAsBlyB,OAAtB,CAA+Bs+D,MAAD,IAAW;cACrCr8D,MAAM,CAACiwB,OAAP,GAAiB,EAAjB;cACA,IAAIjzB,IAAI,GAAG,IAAI8pE,qEAAJ,EAAX;cACA9pE,IAAI,CAAC6uE,gBAAL,GAAwB,IAAxB;cACA7uE,IAAI,CAACuO,IAAL,GAAY8wD,MAAM,CAAC9wD,IAAnB;cACAvL,MAAM,CAACiwB,OAAP,CAAeh0B,IAAf,CAAoBe,IAApB;YACH,CAND;UAOH;;UACD,MAAM,MAAI,CAACmuE,gBAAL,CAAsBL,KAAtB,CAAN;UAEA,IAAIgB,OAAO,SAAS,MAAI,CAAC9gB,KAAL,CAAW8f,KAAK,CAAC3pE,GAAjB,EAAsBnB,MAAtB,EAA8Bg4B,SAA9B,EAApB;;UACA,IAAI8zC,OAAJ,EAAa;YACT,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,OAAO,CAACruE,MAA5B,EAAoCsuE,CAAC,EAArC,EAAyC;cACrC,IAAIzlE,GAAG,GAAGwlE,OAAO,CAACC,CAAD,CAAjB;cACA,MAAM,MAAI,CAACnB,QAAL,CAActkE,GAAd,EAAmBwkE,KAAnB,CAAN;cAEA,IAAIz+C,IAAI,GAAG,EAAX;cAEArsB,MAAM,CAACiwB,OAAP,CAAelyB,OAAf,CAAwBs+D,MAAD,IAAW;gBAC9B,IAAI/4C,KAAK,GAAG+4C,MAAM,CAAC9wD,IAAP,CAAY+X,KAAZ,CAAkB,GAAlB,CAAZ;;gBACA,IAAIA,KAAK,IAAIA,KAAK,CAAC7lB,MAAN,IAAgB,CAA7B,EAAgC;kBAC5B4uB,IAAI,CAACgwC,MAAM,CAAC9wD,IAAR,CAAJ,GAAoBjF,GAAG,CAAC+1D,MAAM,CAAC9wD,IAAR,CAAvB;gBACH,CAFD,MAEO,IAAI+X,KAAK,IAAIA,KAAK,CAAC7lB,MAAN,GAAe,CAA5B,EAA+B;kBAClC,IAAIT,IAAI,GAAGsJ,GAAX;;kBACA,KAAK,IAAIzB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGye,KAAK,CAAC7lB,MAA1B,EAAkCoH,CAAC,EAAnC,EAAuC;oBACnC,IAAI2e,IAAI,GAAGF,KAAK,CAACze,CAAD,CAAhB;;oBACA,IAAI7H,IAAI,CAACwmB,IAAD,CAAR,EAAgB;sBACZ,IAAIrd,KAAK,CAACC,OAAN,CAAcpJ,IAAI,CAACwmB,IAAD,CAAlB,CAAJ,EAA+B;wBAC3B,IAAI64C,MAAM,CAACwP,gBAAX,EAA6B;0BACzB,IAAI9uE,MAAM,GAAG,EAAb;;0BACA,KAAK,IAAIqQ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGpQ,IAAI,CAACwmB,IAAD,CAAJ,CAAW/lB,MAA/B,EAAuC2P,CAAC,EAAxC,EAA4C;4BACxC,IAAImC,GAAG,GAAG+T,KAAK,CAACze,CAAC,GAAG,CAAL,CAAf;4BACA,IAAI+D,KAAK,GAAG5L,IAAI,CAACwmB,IAAD,CAAJ,CAAWpW,CAAX,EAAcmC,GAAd,CAAZ;;4BACA,IAAInC,CAAC,GAAG,CAAR,EAAW;8BACPrQ,MAAM,IAAI,IAAV;4BACH;;4BACDA,MAAM,IAAI6L,KAAV;0BACH;;0BACD/D,CAAC,IAAI,CAAL;;0BACA,IAAIsB,KAAK,CAACC,OAAN,CAAcimB,IAAd,CAAJ,EAAyB;4BACrB,KAAK,IAAIjwB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiwB,IAAI,CAAC5uB,MAAzB,EAAiCrB,CAAC,EAAlC,EAAsC;8BAClCiwB,IAAI,CAACjwB,CAAD,CAAJ,CAAQigE,MAAM,CAAC9wD,IAAf,IAAuBxO,MAAvB;4BACH;0BACJ,CAJD,MAIO;4BACHsvB,IAAI,CAACgwC,MAAM,CAAC9wD,IAAR,CAAJ,GAAoBxO,MAApB;0BACH;wBACJ,CAlBD,MAkBO;0BACH,IAAIivE,KAAK,GAAG,EAAZ;;0BAEA,KAAK,IAAI5+D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGpQ,IAAI,CAACwmB,IAAD,CAAJ,CAAW/lB,MAA/B,EAAuC2P,CAAC,EAAxC,EAA4C;4BACxC,IAAIjH,KAAK,CAACC,OAAN,CAAcimB,IAAd,CAAJ,EAAyB;8BACrBA,IAAI,CAACtuB,OAAL,CAAc3B,CAAD,IAAM;gCACf,IAAIuoD,IAAI,GAAG9+C,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACW,SAAL,CAAepK,CAAf,CAAX,CAAX;gCACA4vE,KAAK,CAAC/vE,IAAN,CAAW0oD,IAAX;gCACA,IAAIp1C,GAAG,GAAG+T,KAAK,CAACze,CAAC,GAAG,CAAL,CAAf;gCACA8/C,IAAI,CAAC0X,MAAM,CAAC9wD,IAAR,CAAJ,GAAoBvO,IAAI,CAACwmB,IAAD,CAAJ,CAAWpW,CAAX,EAAcmC,GAAd,CAApB;8BACH,CALD;4BAMH,CAPD,MAOO;8BACH,IAAIo1C,IAAI,GAAG9+C,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACW,SAAL,CAAe6lB,IAAf,CAAX,CAAX;8BACA2/C,KAAK,CAAC/vE,IAAN,CAAW0oD,IAAX;8BACA,IAAIp1C,GAAG,GAAG+T,KAAK,CAACze,CAAC,GAAG,CAAL,CAAf;8BACA8/C,IAAI,CAAC0X,MAAM,CAAC9wD,IAAR,CAAJ,GAAoBvO,IAAI,CAACwmB,IAAD,CAAJ,CAAWpW,CAAX,EAAcmC,GAAd,CAApB;4BACH;0BACJ;;0BACD1K,CAAC,IAAI,CAAL;0BACAwnB,IAAI,GAAG2/C,KAAP;wBACH;sBACJ,CAxCD,MAwCO;wBACH,IAAI7lE,KAAK,CAACC,OAAN,CAAcimB,IAAd,CAAJ,EAAyB;0BACrB,KAAK,IAAIjwB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiwB,IAAI,CAAC5uB,MAAzB,EAAiCrB,CAAC,EAAlC,EAAsC;4BAClCiwB,IAAI,CAACjwB,CAAD,CAAJ,CAAQigE,MAAM,CAAC9wD,IAAf,IAAuBvO,IAAI,CAACwmB,IAAD,CAA3B;0BACH;wBACJ,CAJD,MAIO;0BACH6I,IAAI,CAACgwC,MAAM,CAAC9wD,IAAR,CAAJ,GAAoBvO,IAAI,CAACwmB,IAAD,CAAxB;wBACH;;wBACDxmB,IAAI,GAAGA,IAAI,CAACwmB,IAAD,CAAX;sBACH;oBACJ;kBACJ;gBACJ;cAEJ,CA/DD;;cAgEA,IAAIrd,KAAK,CAACC,OAAN,CAAcimB,IAAd,CAAJ,EAAyB;gBACrBvV,MAAM,CAAC7a,IAAP,CAAY,GAAGowB,IAAf;cACH,CAFD,MAEO;gBACHvV,MAAM,CAAC7a,IAAP,CAAYowB,IAAZ;cACH;YACJ;;YACDvrB,OAAO,CAACgW,MAAD,CAAP;UACH,CA9ED,MA8EO;YACHhW,OAAO,CAACgW,MAAD,CAAP;UACH;QACJ,CAnGM;;QAAA;UAAA;QAAA;MAAA,IAAP;IADmD;EAqGtD,CAjiBqB,CAkiBtB;EACA;;;EACmB,OAALk0C,KAAK,CAACzlD,IAAD,EAAOvF,MAAP,EAAa;IAC5B,IAAIjD,MAAM,GAAG,EAAb;;IACA,IAAI,KAAK4qE,EAAL,CAAQpiE,IAAR,CAAJ,EAAmB;MACf,IAAI,CAACvF,MAAL,EAAa;QACTA,MAAM,GAAG,IAAIw0B,uEAAJ,EAAT;MACH;;MACD,IAAI,CAACx0B,MAAM,CAAC23B,OAAZ,EAAqB;QACjB33B,MAAM,CAAC23B,OAAP,GAAiB,EAAjB;MACH;;MAED,IAAItB,GAAG,GAAG,IAAI9B,qEAAJ,EAAV;MACA8B,GAAG,CAAC9qB,IAAJ,GAAW,SAAX;MACA8qB,GAAG,CAACC,QAAJ,GAAehC,0EAAf;MACA+B,GAAG,CAAC7qB,KAAJ,GAAY,CAAZ;MACAxL,MAAM,CAAC23B,OAAP,CAAeo4B,OAAf,CAAuB15B,GAAvB;MAEAt5B,MAAM,GAAG,KAAKysE,aAAL,CAAmBjkE,IAAnB,EAAyBvF,MAAzB,EAAiCirE,OAAjC,EAAT;IACH;;IACD,OAAOvuC,2CAAI,CAAC3/B,MAAD,CAAX;EACH;;EACkB,OAALguE,KAAK;IACf,OAAO,KAAKpD,EAAZ;EACH,CA1jBqB,CA2jBtB;EACA;;;EAC6B,OAARuB,QAAQ;IAAA;;IAAA;MACzB,IAAI,MAAI,CAACZ,IAAT,EAAe;QACX,IAAI2D,MAAM,GAAG;UACT,sCAAsC,+BAD7B;UAET,wCAAwC,+BAF/B;UAGT,sCAAsC,+BAH7B;UAIT,sCAAsC,+BAJ7B;UAKT,2CAA2C,+BALlC;UAMT,0CAA0C,+BANjC;UAOT,8CAA8C,+BAPrC;UAQT,wCAAwC,yBAR/B;UAST,kCAAkC,WATzB;UAUT,8CAA8C,WAVrC;UAWT,oCAAoC,+BAX3B;UAYT;UACA,6CAA6C,+BAbpC;UAcT,iDAAiD,uCAdxC;UAeT,wDAAwD,4BAf/C;UAgBT,6CAA6C,WAhBpC;UAiBT,8CAA8C,WAjBrC;UAkBT,oDAAoD,WAlB3C;UAmBT,6CAA6C,WAnBpC;UAoBT,mDAAmD,+BApB1C;UAqBT,8CAA8C,+BArBrC;UAsBT,sDAAsD,WAtB7C;UAuBT,0CAA0C,WAvBjC;UAwBT,2CAA2C,8CAxBlC;UAyBT,iDAAiD,KAzBxC;UA0BT,iDAAiD,KA1BxC;UA2BT,oCAAoC,WA3B3B;UA4BT,qDAAqD,gBA5B5C;UA6BT,gDAAgD,MA7BvC;UA8BT,gCAAgC,gCA9BvB;UA+BT,kCAAkC,UA/BzB;UAgCT,0BAAyB;QAhChB,CAAb;;QAkCA,IAAIjF,gFAAA,EAAJ,EAAyC;UACrC,MAAMkF,SAAS,SAAS,MAAI,CAACjE,cAAL,CAAoBkE,UAApB,CAA+B,uBAA/B,EAAwD,sBAAxD,EAAgFn0C,SAAhF,EAAxB;UACAk0C,SAAS,CAACnuE,OAAV,CAAmBiN,GAAD,IAAQ;YACtBihE,MAAM,CAACjhE,GAAG,CAAC7J,GAAL,CAAN,GAAkB,oEAAlB;;YACA,IAAI6J,GAAG,IAAIA,GAAG,CAACopC,MAAf,EAAuB;cACnBppC,GAAG,CAACopC,MAAJ,CAAWr2C,OAAX,CAAoBmsC,KAAD,IAAU;gBACzB+hC,MAAM,CAACjhE,GAAG,CAAC7J,GAAL,CAAN,IAAmB,OAAO+oC,KAAK,CAAC3+B,IAAhC;cACH,CAFD;YAGH;UACJ,CAPD;QAQH;;QACD,IAAIy7D,gFAAA,OAAwC,CAAC,MAAI,CAACQ,MAAN,IAAgB,MAAI,CAACA,MAAL,IAAe3hE,IAAI,CAACW,SAAL,CAAeylE,MAAf,CAAvE,CAAJ,EAAoG;UAChG,MAAI,CAACzE,MAAL,GAAc3hE,IAAI,CAACW,SAAL,CAAeylE,MAAf,CAAd;;UAEA,IAAI,CAAC,MAAI,CAACliC,OAAV,EAAmB;YACf,MAAI,CAACA,OAAL,GAAe,CAAf;UACH,CAFD,MAEO;YACH,MAAI,CAACA,OAAL;UACH;QACJ;;QAED,MAAI,CAAC49B,EAAL,GAAU,IAAIlB,6CAAJ,CAAU,cAAV,CAAV;;QACA,IAAI;UACA,MAAI,CAACkB,EAAL,CAAQyE,OAAR,CAAgB,MAAI,CAACriC,OAArB,EAA8BsiC,MAA9B,CAAqCxmE,IAAI,CAACC,KAAL,CAAW,MAAI,CAAC0hE,MAAhB,CAArC;QACH,CAFD,CAEE,OAAO+B,EAAP,EAAW,CAEZ;MACJ;IA/DwB;EAgE5B;;EACqB,OAAR+C,QAAQ;IAClB5mE,YAAY,CAAC6hE,UAAb,CAAwB,YAAxB;IACA7hE,YAAY,CAAC6hE,UAAb,CAAwB,aAAxB;IACA,KAAKx9B,OAAL,GAAe,CAAf;IACA,OAAO,KAAK49B,EAAL,CAAQ32D,MAAR,EAAP;EACH;;EACuB,OAAVu7D,UAAU;IACpB,KAAKrD,QAAL;EACH;;EACgC,OAAbsD,aAAa,CAACC,WAAD,EAAczvE,IAAd,EAAkB;IAAA;;IAAA;MAE/C,IAAI,CAAC,MAAI,CAACkqE,OAAV,EAAmB;QACf,MAAI,CAACA,OAAL,GAAe,EAAf;MACH;;MACD,IAAI,CAAC,MAAI,CAACA,OAAL,CAAauF,WAAb,CAAL,EAAgC;QAC5B,IAAIC,IAAI,SAAS,MAAI,CAAC3B,KAAL,GAAa,kDAAb,EAAiEnD,KAAjE,CAAuE,KAAvE,EAA8EC,MAA9E,CAAqF4E,WAArF,EAAkGxB,OAAlG,EAAjB;QACA,IAAI0B,SAAS,GAAG,IAAhB;;QACA,IAAID,IAAI,IAAIA,IAAI,CAACjvE,MAAL,GAAc,CAA1B,EAA6B;UACzBkvE,SAAS,GAAGD,IAAI,CAAC,CAAD,CAAhB;QACH;;QACD,MAAI,CAACxF,OAAL,CAAauF,WAAb,IAA4B;UACxBn4B,WAAW,EAAEm4B,WADW;UAExBG,aAAa,EAAED,SAAS,CAACphE,IAFD;UAGxB8/C,OAAO,EAAE;QAHe,CAA5B;MAKH;;MACD,MAAI,CAAC6b,OAAL,CAAauF,WAAb,EAA0BphB,OAA1B,CAAkCruD,IAAI,CAAC6oD,GAAvC,IAA8C;QAC1CgnB,IAAI,EAAE7vE,IADoC;QAE1C4sC,MAAM,EAAE,CAFkC;QAG1C0K,WAAW,EAAEm4B,WAH6B;QAI1CG,aAAa,EAAE,MAAI,CAAC1F,OAAL,CAAauF,WAAb,EAA0BG;MAJC,CAA9C;;MAMA,MAAI,CAAChQ,WAAL;IAvB+C;EAwBlD,CA/pBqB,CAgqBtB;EACA;;;EAC6B,OAAf0M,eAAe,CAACF,IAAD,EAAW;IACpC,IAAIA,IAAI,IAAI,IAAZ,EAAkB;MACdA,IAAI,GAAG,IAAI7gB,IAAJ,CAAS,sBAAT,CAAP;IACH;;IACD,IAAI,KAAKkgB,MAAT,EAAiB;MACb,KAAKJ,cAAL,CAAoBiB,eAApB,CAAoCF,IAAI,CAACH,MAAL,EAApC,EAAmD9sE,SAAnD;IACH;EACJ;;EAC+B,OAAlB2wE,kBAAkB,CAACL,WAAD,EAAczvE,IAAd,EAAkB;IAC9C,OAAO,IAAI6D,OAAJ,CAAY,CAACC,OAAD,EAAUwO,MAAV,KAAoB;MACnC,KAAK+4D,cAAL,CAAoB0E,YAApB,CAAiCN,WAAjC,EAA8CzvE,IAA9C,EAAoDb,SAApD,CAA+DY,MAAD,IAAW;QACrE,IAAIA,MAAM,IAAIA,MAAM,CAAC,SAAD,CAApB,EAAiC;UAC7BC,IAAI,CAAC4sC,MAAL,GAAci9B,6EAAd;QACH;;QACD,KAAKjK,WAAL;QACA97D,OAAO,CAAC/D,MAAD,CAAP;MACH,CAND;IAOH,CARM,CAAP;EASH;;EAC8B,OAAjBiwE,iBAAiB,CAAChwE,IAAD,EAAOiwE,QAAP,EAAe;IAC1C,OAAO,IAAIpsE,OAAJ,CAAY,CAACC,OAAD,EAAUwO,MAAV,KAAoB;MACnC,KAAK+4D,cAAL,CAAoB2E,iBAApB,CAAsChwE,IAAI,CAACs3C,WAA3C,EAAwDt3C,IAAI,CAACiwE,QAAD,CAA5D,EAAwE9wE,SAAxE,CAAmFY,MAAD,IAAW;QACzF,IAAIA,MAAM,IAAIA,MAAM,CAAC,SAAD,CAApB,EAAiC;UAC7BC,IAAI,CAAC4sC,MAAL,GAAci9B,6EAAd;QACH;;QACD,KAAKjK,WAAL;QACA97D,OAAO,CAAC/D,MAAD,CAAP;MACH,CAND;IAOH,CARM,CAAP;EASH;;EACkC,OAAfssE,eAAe;IAAA;;IAAA;MAC/B,MAAI,CAACjC,WAAL;;MACA,IAAI,MAAI,CAACF,OAAT,EAAkB;QACd,IAAIgG,MAAM,GAAG,EAAb;QACA,IAAI9qE,IAAI,GAAGD,MAAM,CAACC,IAAP,CAAY,MAAI,CAAC8kE,OAAjB,CAAX;;QACA,KAAK,IAAIriE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGzC,IAAI,CAAC3E,MAAzB,EAAiCoH,CAAC,EAAlC,EAAsC;UAClC,IAAIsoE,UAAU,GAAG,MAAI,CAACjG,OAAL,CAAa9kE,IAAI,CAACyC,CAAD,CAAjB,CAAjB;;UACA,IAAIsoE,UAAU,IAAIA,UAAU,CAAC9hB,OAA7B,EAAsC;YAClC,IAAI+hB,OAAO,GAAGjrE,MAAM,CAACC,IAAP,CAAY+qE,UAAU,CAAC9hB,OAAvB,CAAd;;YACA,KAAK,IAAIhX,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+4B,OAAO,CAAC3vE,MAA5B,EAAoC42C,CAAC,EAArC,EAAyC;cACrC,IAAIg5B,GAAG,GAAGF,UAAU,CAAC9hB,OAAX,CAAmB+hB,OAAO,CAAC/4B,CAAD,CAA1B,CAAV;cACA,IAAIv9B,MAAM,SAAS,MAAI,CAACg2D,kBAAL,CAAwBO,GAAG,CAAC/4B,WAA5B,EAAyC+4B,GAAG,CAACR,IAA7C,CAAnB;;cACA,IAAI/1D,MAAM,IAAIA,MAAM,CAAC+tB,OAArB,EAA8B;gBAC1BwoC,GAAG,CAACzjC,MAAJ,GAAa,CAAb;gBACA,OAAOujC,UAAU,CAAC9hB,OAAX,CAAmB+hB,OAAO,CAAC/4B,CAAD,CAA1B,CAAP;cACH,CAHD,MAGO;gBACHg5B,GAAG,CAACzjC,MAAJ,GAAa,CAAb;;gBACA,IAAI9yB,MAAM,CAACw2D,QAAX,EAAqB;kBACjBD,GAAG,CAACE,QAAJ,GAAe1nE,IAAI,CAACC,KAAL,CAAWgR,MAAM,CAACw2D,QAAlB,CAAf;gBACH;;gBACDJ,MAAM,CAACjxE,IAAP,CAAYoxE,GAAZ;cACH;YACJ;UACJ;QACJ;;QACD,IAAIH,MAAM,IAAIA,MAAM,CAACzvE,MAAP,GAAgB,CAA9B,EAAiC;UAC7B8mC,2EAAA,CAAyB,iDAAzB,EAA4E,cAA5E;QACH;;QACD,MAAI,CAACq4B,WAAL;MACH;IA7B8B;EA8BlC;;AA9tBqB;AAIPqK,gCAAkB,KAAlB;AAIAA,8BAAgB,EAAhB;AAEAA,uBAAS,IAAT;AACDA,sBAAQ,EAAR;;;;;;;;;;;;;;;;;;;;;;;;;;AC/ByB;AACkD;AACP;AACX;AACN;AACI;AACkB;AAElC;AACH;AACP;AACY;AAEpD,MAAM,cAAc;IAsBvB,YAAoB,MAAM,EAAU,QAAQ,EAAU,OAAoB;QAAtD,WAAM,GAAN,MAAM;QAAU,aAAQ,GAAR,QAAQ;QAAU,YAAO,GAAP,OAAO,CAAa;QArBlE,kBAAa,GAAG,IAAI,CAAC;QAIrB,qBAAgB,GAAG,KAAK,CAAC;QAIzB,iBAAY,GAAG,KAAK,CAAC;QAQrB,2BAAsB,GAAiB,IAAI,0CAAO,EAAE,CAAC;QAC7D,oBAAe,GAAoB,IAAI,CAAC,sBAAsB,CAAC;QAK3D,IAAI,MAAM,EAAE;YACR,IAAI,CAAC,UAAU,GAAG,oEAAwB,CAAC,MAAM,CAAC,CAAC;SACtD;QACD,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE;YAClC,IAAI,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE;gBAC9B,MAAM,IAAI,GAAG,qFAAgC,EAAE,CAAC;gBAChD,IAAI,IAAI,IAAI,QAAQ,CAAC,WAAW,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE;oBACrD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;oBACzB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;iBAC9B;qBAAM;oBACH,gHAA2B,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC9B,IAAI,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,EAAE;4BAC7B,IAAI,CAAC,UAAU,EAAE,CAAC;yBACrB;6BAAM;4BACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;4BAC7B,4GAA6C,EAAE,CAAC;yBACnD;oBACL,CAAC,CAAC,CAAC;iBACN;aACJ;iBAAM;gBACH,MAAM,IAAI,GAAG,IAAI,+DAAmB,CAAC,eAAe,CAAC,CAAC;gBACtD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;gBAC1D,yEAAuB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;aACnD;SACJ;IACL,CAAC;IA9CD,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAmCD,UAAU;QACN,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE;YAC9C,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gBACpD,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;oBACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;oBAClB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACpC,IAAI,CAAC,UAAU,GAAG,oEAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACxD,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE;wBACvB,MAAM,IAAI,GAAG,IAAI,+DAAmB,CAAC,0CAA0C,CAAC,CAAC;wBACjF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBAClC,4EAA0B,CAAC,IAAI,EAAE,IAAI,+DAAmB,CAAC,mBAAmB,CAAC,CAAC,CAAC;wBAC/E,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;wBAC3B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;wBAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;wBACzB,4GAA6C,EAAE,CAAC;qBACnD;yBAAM;wBACH,MAAM,IAAI,GAAG,IAAI,+DAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;wBACzG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;wBACnD,yGAA2B,CAAC,IAAI,EAAE,IAAI,+DAAmB,CAAC,gBAAgB,CAAC,EACvE,sFAAoB,EAAE,yFAA0B,CAAC,CAAC;qBACzD;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,MAAM;QACF,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAC/B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE;gBAC9C,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;oBACxD,IAAI,CAAC,EAAE;wBACH,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;wBAClB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACpC,IAAI,CAAC,UAAU,GAAG,oEAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBACxD,MAAM,IAAI,GAAG,IAAI,+DAAmB,CAAC,0CAA0C,CAAC,CAAC;wBACjF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBAClC,4EAA0B,CAAC,IAAI,EAAE,IAAI,+DAAmB,CAAC,mBAAmB,CAAC,CAAC,CAAC;qBAClF;yBAAM;wBACH,0EAAwB,CAAC,IAAI,+DAAmB,CAAC,uBAAuB,CAAC,EACrE,IAAI,+DAAmB,CAAC,mBAAmB,CAAC,CAAC,CAAC;qBACrD;oBACD,OAAO,EAAE,CAAC;gBACd,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,OAAO,EAAE,CAAC;aACb;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK;QACD,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAC/B,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC1B,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC;gBACvC,OAAO,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,YAAY;QACR,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAC/B,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACpC,IAAI,IAAI,CAAC,MAAM,EAAE;oBACb,MAAM,OAAO,GAAG,sEAA0B,CAAC,IAAI,CAAC,UAAU,EAAE,oEAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;wBAC/F,iBAAiB,EAAE,KAAK;wBACxB,cAAc,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,IAAI,OAAO,CAAC,UAAU,EAAE;wBACpB,yGAA2B,CAAC,IAAI,+DAAmB,CAAC,gCAAgC,CAAC,EACjF,IAAI,+DAAmB,CAAC,aAAa,CAAC,EAAE,yFAAuB,EAAE,sFAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;4BAC/F,IAAI,CAAC,KAAK,qFAAoB,EAAE;gCAC5B,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;oCACpB,OAAO,EAAE,CAAC;gCACd,CAAC,CAAC,CAAC;6BACN;iCAAM;gCACH,OAAO,EAAE,CAAC;6BACb;wBACL,CAAC,CAAC,CAAC;qBACV;yBAAM;wBACH,OAAO,EAAE,CAAC;qBACb;iBACJ;qBAAM;oBACH,OAAO,EAAE,CAAC;iBACb;aACJ;iBAAM;gBACH,OAAO,EAAE,CAAC;aACb;QACL,CAAC,CAAC,CAAC;IACP,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACtJiD;AACN;AACa;AACJ;AACZ;AACtC,MAAM,eAAe;IAExB,YAAmB,KAAe;QAAf,UAAK,GAAL,KAAK,CAAU;IAClC,CAAC;;AAGE,MAAM,gBAAgB;IAcpB,MAAM,CAAC,QAAQ;QACtB,MAAM,KAAK,GAAG,gBAAgB,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QACtD,IAAI,KAAK,EAAE;YACV,OAAO,KAAK,CAAC,KAAK,CAAC;SACnB;QACD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,QAAQ,EAAE;YACb,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC,cAAc,CAAC;SAC3B;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,MAAM,CAAC,qBAAqB,CAAC,SAAS;QAC5C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC/C,MAAM,IAAI,GACT,SAAS,KAAK,YAAY;gBACzB,CAAC,CAAC,gBAAgB,CAAC,qBAAqB;gBACxC,CAAC,CAAC,gBAAgB,CAAC,wBAAwB,CAAC;YAC9C,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YAC1C,IAAI,KAAK,EAAE;gBACV,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;gBAC5B,IAAI,MAAM,GAAG,CAAC,EAAE;oBACf,MAAM,SAAS,GACd,0GAAmD,EAAE,CAAC;oBACvD,IAAI,SAAS,EAAE;wBACd,sFAAoC,CAAC,SAAS,CAAC,CAAC,IAAI,CACnD,CAAC,SAAS,EAAE,EAAE;4BACb,IAAI,SAAS,EAAE;gCACd,IAAI,KAAK,GAAG,CAAC,CAAC;gCACd,MAAM,WAAW,GAAG,EAAE,CAAC;gCACvB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oCACtB,MAAM,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC;oCACzD,mFAAiC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;wCACpD,gBAAgB,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;wCACnD,KAAK,IAAI,CAAC,CAAC;wCACX,IAAI,KAAK,KAAK,MAAM,EAAE;4CACrB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;4CACvB,OAAO,CAAC,IAAI,CAAC,CAAC;yCACd;oCACF,CAAC,CAAC,CAAC;gCACJ,CAAC,CAAC,CAAC;6BACH;iCAAM;gCACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCAChB,OAAO,CAAC,IAAI,CAAC,CAAC;6BACd;wBACF,CAAC,CACD,CAAC;wBACF,OAAO;qBACP;iBACD;aACD;YACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IAChB,CAAC;IACO,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI;QAC9C,IAAI,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YACzC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,MAAM,EAAE;gBACX,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACpC,IAAI,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;oBAChC,IAAI,CAAC,MAAM,EAAE;wBACZ,MAAM,GAAG,EAAE,CAAC;wBACZ,WAAW,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;qBAC5B;oBACD,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE;wBACvB,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;qBACxC;oBACD,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE;wBACxB,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;qBAC1C;gBACF,CAAC,CAAC,CAAC;aACH;SACD;IACF,CAAC;IACM,MAAM,CAAC,wBAAwB;QACrC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC/C,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YAC1C,IAAI,KAAK,EAAE;gBACV,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;gBAC5B,IAAI,MAAM,GAAG,CAAC,EAAE;oBACf,IAAI,KAAK,GAAG,CAAC,CAAC;oBACd,MAAM,WAAW,GAAG,EAAE,CAAC;oBACvB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;wBACtB,uFAAqC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;4BACzD,gBAAgB,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;4BAClD,KAAK,IAAI,CAAC,CAAC;4BACX,IAAI,KAAK,KAAK,MAAM,EAAE;gCACrB,gBAAgB,CAAC,2BAA2B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gCAC/D,OAAO,CAAC,IAAI,CAAC,CAAC;6BACd;wBACF,CAAC,CAAC,CAAC;oBACJ,CAAC,CAAC,CAAC;iBACH;qBAAM;oBACN,gBAAgB,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxD,OAAO,CAAC,IAAI,CAAC,CAAC;iBACd;aACD;iBAAM;gBACN,gBAAgB,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,CAAC;aACd;QACF,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IAChB,CAAC;IACO,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI;QAC7C,IAAI,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YACzC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,MAAM,EAAE;gBACX,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACpC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE;wBACtD,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;qBAC1B;gBACF,CAAC,CAAC,CAAC;aACH;SACD;IACF,CAAC;IACM,MAAM,CAAC,OAAO;QACpB,MAAM,UAAU,GAAG,2FAAsC,EAAE,CAAC;QAC5D,OAAO,UAAU,IAAI,UAAU,CAAC,OAAO,KAAK,IAAI,CAAC;IAClD,CAAC;IACM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO;QACnC,MAAM,UAAU,GAAG,2FAAsC,EAAE,CAAC;QAC5D,IAAI,UAAU,EAAE;YACf,IAAI,UAAU,CAAC,OAAO,KAAK,IAAI,EAAE;gBAChC,OAAO,IAAI,CAAC;aACZ;YACD,IAAI,UAAU,CAAC,MAAM,EAAE;gBACtB,MAAM,gBAAgB,GAAG;oBACxB,kDAAkD;oBAClD,yCAAyC;oBACzC,gDAAgD;iBAChD,CAAC;gBACF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;gBACjE,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,6DAAmB,EAAE;oBAC3E,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;wBACpC,OAAO,KAAK,CAAC;qBACb;iBACD;gBACD,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,OAAO,CAAC;aACvD;SACD;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,uBAAuB;QACpC,OAAO,gBAAgB,CAAC,QAAQ,CAC/B,4CAA4C,EAC5C,CAAC,CACD,CAAC;IACH,CAAC;IACM,MAAM,CAAC,qBAAqB;QAClC,OAAO,gBAAgB,CAAC,QAAQ,CAC/B,4CAA4C,EAC5C,CAAC,CACD,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,wBAAwB;QACrC,OAAO,CACN,gBAAgB,CAAC,QAAQ,CACxB,4CAA4C,EAC5C,KAAK,CACL,IAAI,gBAAgB,CAAC,QAAQ,CAAC,uCAAuC,EAAE,CAAC,CAAC,CAC1E,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,0BAA0B,CAAC,GAAW;QACnD,IAAI,GAAG,EAAE;YACR,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxB,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC;gBAC1C,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;oBAChD,MAAM,SAAS,GACd,0GAAmD,EAAE,CAAC;oBACvD,IAAI,SAAS,IAAI,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE;wBACzC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;4BAC/B,gBAAgB,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,IAAI,CACxD,GAAG,EAAE,GAAE,CAAC,CACR,CAAC;yBACF;6BAAM;4BACN,gBAAgB,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;yBAC1D;qBACD;iBACD;aACD;SACD;IACF,CAAC;;AA3Ma,yCAAwB,GACrC,IAAI,iDAAe,CAAM,IAAI,CAAC,CAAC;AAClB,sCAAqB,GAClC,IAAI,iDAAe,CAAM,IAAI,CAAC,CAAC;AAClB,4CAA2B,GACxC,IAAI,iDAAe,CAAM,IAAI,CAAC,CAAC;AAClB,4BAAW,GACxB,IAAI,iDAAe,CAAkB,IAAI,CAAC,CAAC;AAC9B,+BAAc,GAC3B,IAAI,iDAAe,CAAU,KAAK,CAAC,CAAC;AACvB,yCAAwB,GACrC,IAAI,yCAAO,EAAU,CAAC;;;;;;;;;;;;;;;;ACrBjB,MAAM,cAAc;IAEhB,MAAM,CAAC,UAAU,CAAC,QAAkB;QACvC,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACvC,CAAC;;;;;;;;;;;;;;;;;ACNE,MAAM,cAAc;IAChB,MAAM,CAAC,WAAW,CAAC,MAAW,EAAE,MAAW;QAC9C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC9B,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACL4C;AAC0C;AACsB;AACjD;AACU;AAC3B;AACU;AAElD,MAAM,cAAc;IAChB,MAAM,CAAC,aAAa,CAAC,eAA0C,EAAE,OAAO;QAC3E,MAAM,MAAM,GAAG,IAAI,wEAAW,EAAE,CAAC;QACjC,IAAI,eAAe,EAAE;YACjB,eAAe,GAAG,+DAAY,CAAC,yHAAyB,EAAE,eAAe,CAAC;YAC1E,IAAI,eAAe,CAAC,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7D,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;gBACpB,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBACrC,MAAM,MAAM,GAAG,IAAI,kFAAgB,EAAE,CAAC;oBACtC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;oBACvC,MAAM,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;oBACnD,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;oBACzC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;oBAC/B,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC;oBAC3B,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,EAAE;wBACvC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;qBAC1C;oBACD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC;gBACH,IAAI,eAAe,CAAC,SAAS,EAAE;oBAC3B,MAAM,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS;iBAC/C;qBAAM;oBACH,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;iBACzB;gBACD,IAAI,eAAe,CAAC,WAAW,IAAI,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE;oBACpE,IAAI,SAAS,GAAG,EAAE,CAAC;oBACnB,IAAI,OAAO,EAAE;wBACT,SAAS,GAAG,qEAAyB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;qBAChE;oBACD,MAAM,UAAU,GAAG,IAAI,mGAA0B,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;oBAC/E,MAAM,MAAM,GAAG,IAAI,kEAAqB,EAAE,CAAC;oBAC3C,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBAC5C,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC1C,KAAK,GAAG,yEAA6B,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC;wBAC/G,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;4BACjB,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;yBACvB;wBACD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC/B,CAAC,CAAC,CAAC;iBACN;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;ACnDL;AACA;AACA;AACA;AACA;AACA;AACA;AAGM,MAAOh0B,eAAP,CAAsB;EAEK,OAAhBa,gBAAgB,CAAC05B,WAAD,EAAcb,SAAd,EAAyBc,gBAAzB,EAA2CC,aAA3C,EAA0DC,YAA1D,EAAwEhK,SAAxE,EAAkF;IAAA;MAC3G,IAAI7sD,MAAM,GAAG,IAAb;;MACA,IAAI22D,gBAAgB,IAAIA,gBAAgB,CAAChwE,MAAjB,GAA0B,CAAlD,EAAqD;QACjD,IAAI,CAACkmE,SAAL,EAAgB;UACZ,MAAMlgE,OAAO,GAAGgK,iFAAA,CAAyDqgD,uEAAzD,CAAhB;UACA6V,SAAS,SAASlgE,OAAO,CAAC0oE,UAAR,CAAmB,8BAAnB,EACd,iBADc,EACK,eAAeqB,WADpB,EACiCx1C,SADjC,EAAlB;QAEH;;QACD,MAAM41C,OAAO,GAAG36B,eAAe,CAAC46B,wBAAhB,CAAyClB,SAAzC,EAAoDc,gBAApD,EAAsEC,aAAtE,EAAqF/J,SAArF,CAAhB;;QACA,IAAIiK,OAAO,CAACE,OAAZ,EAAqB;UACjBh3D,MAAM,GAAG;YACLk9B,SAAS,EAAE,CAAC24B,SAAD,CADN;YAEL14B,OAAO,EAAE,CAAC25B,OAAO,CAACE,OAAT;UAFJ,CAAT;QAIH,CALD,MAKO,IAAIF,OAAO,CAACG,QAAR,CAAiBtwE,MAAjB,GAA0B,CAA9B,EAAiC;UACpC,IAAI+lB,IAAJ;UACAoqD,OAAO,CAACG,QAAR,CAAiBnzD,IAAjB,CAAsBozD,EAAE,IAAG;YACvB,MAAMC,WAAW,GACbh7B,eAAe,CAAC46B,wBAAhB,CAAyC;cAAE1sE,GAAG,EAAE6sE,EAAE,CAAC1wD;YAAV,CAAzC,EAA6DmwD,gBAA7D,EAA+E,CAAC;cAAES,QAAQ,EAAEF,EAAE,CAAC7sE;YAAf,CAAD,CAA/E,EAAuGwiE,SAAvG,CADJ;;YAEA,IAAIsK,WAAW,CAACH,OAAhB,EAAyB;cACrBtqD,IAAI,GAAG,CAACwqD,EAAE,CAAC7sE,GAAJ,EAAS8sE,WAAW,CAACH,OAAZ,CAAoBI,QAA7B,CAAP;cACA,OAAO,IAAP;YACH,CAHD,MAGO;cACH,MAAMtJ,KAAK,GAAG3xB,eAAe,CAACk7B,WAAhB,CAA4BF,WAA5B,EAAyCR,gBAAzC,EAA2D,CAACd,SAAS,CAACxrE,GAAX,EAAgB6sE,EAAE,CAAC1wD,MAAnB,CAA3D,EAAuFqmD,SAAvF,CAAd;cACAiB,KAAK,CAAC7mE,OAAN,CAAc+mB,CAAC,IAAG;gBACd,IAAI,CAACtB,IAAD,IAASsB,CAAC,CAACrnB,MAAF,GAAW+lB,IAAI,CAAC/lB,MAAL,GAAc,CAAtC,EAAyC;kBACrC+lB,IAAI,GAAG,CAACwqD,EAAE,CAAC7sE,GAAJ,EAAS+iB,MAAT,CAAgBY,CAAhB,CAAP;gBACH;cACJ,CAJD;YAKH;;YACD,OAAO,KAAP;UACH,CAfD;;UAgBA,IAAItB,IAAJ,EAAU;YACN,IAAI4qD,YAAY,GAAGzB,SAAS,CAAC15C,QAA7B;YACA,MAAMo7C,QAAQ,GAAG,CAAC1B,SAAD,CAAjB;YACA,MAAM2B,OAAO,GAAG,EAAhB;YACA,IAAI1xC,IAAI,GAAGqY,wFAAA,CAA2C,4DAA3C,IACP,OADJ;YAEA,IAAIuuB,OAAO,GAAGmJ,SAAd;;YACA,KAAK,IAAI9nE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2e,IAAI,CAAC/lB,MAAL,GAAc,CAAlC,EAAqCoH,CAAC,EAAtC,EAA0C;cACtCupE,YAAY;cACZ,MAAM9I,GAAG,GAAGryB,eAAe,CAACs7B,aAAhB,CAA8B5K,SAA9B,EAAyCngD,IAAI,CAAC3e,CAAD,CAA7C,CAAZ;cACA,IAAI2pE,OAAJ;cACA,IAAIC,MAAJ;;cACA,IAAInJ,GAAG,CAACC,gBAAJ,KAAyB/B,OAAO,CAACriE,GAArC,EAA0C;gBACtCqtE,OAAO,GAAGv7B,eAAe,CAACs7B,aAAhB,CAA8BZ,YAA9B,EAA4CrI,GAAG,CAACE,kBAAhD,CAAV;gBACAiJ,MAAM,GAAG;kBACLC,qBAAqB,EAAElL,OAAO,CAACvwC,QAD1B;kBAELwwC,aAAa,EAAED,OAAO,CAACriE,GAFlB;kBAGLwtE,cAAc,EAAEnL,OAAO,CAACrvB,YAHnB;kBAILy6B,mBAAmB,EAAER,YAJhB;kBAKL1K,WAAW,EAAE8K,OAAO,CAACrtE,GALhB;kBAML0tE,YAAY,EAAEL,OAAO,CAACr6B,YANjB;kBAOL+5B,QAAQ,EAAE5I,GAAG,CAACnkE;gBAPT,CAAT;cASH,CAXD,MAWO;gBACHqtE,OAAO,GAAGv7B,eAAe,CAACs7B,aAAhB,CAA8BZ,YAA9B,EAA4CrI,GAAG,CAACC,gBAAhD,CAAV;gBACAkJ,MAAM,GAAG;kBACLC,qBAAqB,EAAEN,YADlB;kBAEL3K,aAAa,EAAE+K,OAAO,CAACrtE,GAFlB;kBAGLwtE,cAAc,EAAEH,OAAO,CAACr6B,YAHnB;kBAILy6B,mBAAmB,EAAEpL,OAAO,CAACvwC,QAJxB;kBAKLywC,WAAW,EAAEF,OAAO,CAACriE,GALhB;kBAML0tE,YAAY,EAAErL,OAAO,CAACrvB,YANjB;kBAOL+5B,QAAQ,EAAE5I,GAAG,CAACnkE;gBAPT,CAAT;cASH;;cACDy7B,IAAI,IAAI4xC,OAAO,CAAC5nE,OAAR,GAAkB,IAA1B;cACA4nE,OAAO,CAACv7C,QAAR,GAAmBm7C,YAAnB;cACA5K,OAAO,GAAGgL,OAAV;cACAH,QAAQ,CAACpyE,IAAT,CAAcunE,OAAd;cACA8K,OAAO,CAACryE,IAAR,CAAawyE,MAAb;YACH;;YACD,MAAMK,OAAO,GAAG77B,eAAe,CAACs7B,aAAhB,CAA8B5K,SAA9B,EAAyCngD,IAAI,CAACA,IAAI,CAAC/lB,MAAL,GAAc,CAAf,CAA7C,CAAhB;;YACA,IAAIqxE,OAAO,CAACvJ,gBAAR,KAA6B/B,OAAO,CAACriE,GAAzC,EAA8C;cAC1C,MAAMsvD,GAAG,GAAGxd,eAAe,CAACs7B,aAAhB,CAA8Bd,gBAA9B,EAAgDqB,OAAO,CAACtJ,kBAAxD,CAAZ;cACA8I,OAAO,CAACryE,IAAR,CAAa;gBACTyyE,qBAAqB,EAAElL,OAAO,CAACvwC,QADtB;gBAETwwC,aAAa,EAAED,OAAO,CAACriE,GAFd;gBAGTwtE,cAAc,EAAEnL,OAAO,CAACrvB,YAHf;gBAITy6B,mBAAmB,EAAEne,GAAG,CAACx9B,QAJhB;gBAKTywC,WAAW,EAAEjT,GAAG,CAACtvD,GALR;gBAMT0tE,YAAY,EAAEpe,GAAG,CAACtc,YANT;gBAOT+5B,QAAQ,EAAEY,OAAO,CAAC3tE;cAPT,CAAb;YASH,CAXD,MAWO;cACH,MAAM4tE,IAAI,GAAG97B,eAAe,CAACs7B,aAAhB,CAA8Bd,gBAA9B,EAAgDqB,OAAO,CAACvJ,gBAAxD,CAAb;cACA+I,OAAO,CAACryE,IAAR,CAAa;gBACTyyE,qBAAqB,EAAEK,IAAI,CAAC97C,QADnB;gBAETwwC,aAAa,EAAEsL,IAAI,CAAC5tE,GAFX;gBAGTwtE,cAAc,EAAEI,IAAI,CAAC56B,YAHZ;gBAITy6B,mBAAmB,EAAEpL,OAAO,CAACvwC,QAJpB;gBAKTywC,WAAW,EAAEF,OAAO,CAACriE,GALZ;gBAMT0tE,YAAY,EAAErL,OAAO,CAACrvB,YANb;gBAOT+5B,QAAQ,EAAEY,OAAO,CAAC3tE;cAPT,CAAb;YASH;;YACDy7B,IAAI,IAAI,OAAOqY,wFAAA,CAA2C,uDAA3C,CAAf;YACA,MAAM+5B,QAAQ,SAAS16D,yGAAA,CAA4B,IAAIL,+DAAJ,CAAwB2oB,IAAxB,CAA5B,EACnB,IAAI3oB,+DAAJ,CAAwB,yBAAxB,CADmB,EACiCG,yFADjC,EAC0DC,sFAD1D,CAAvB;;YAEA,IAAI26D,QAAQ,KAAKl1C,qFAAjB,EAAuC;cACnChjB,MAAM,GAAG;gBACLk9B,SAAS,EAAEq6B,QADN;gBAELp6B,OAAO,EAAEq6B;cAFJ,CAAT;YAIH,CALD,MAKO;cACHx3D,MAAM,GAAG;gBACLk9B,SAAS,EAAE,EADN;gBAELC,OAAO,EAAE;cAFJ,CAAT;YAIH;UACJ;QACJ;MACJ;;MACD,OAAOn9B,MAAP;IAlH2G;EAmH9G;;EAE2B,OAAby3D,aAAa,CAAChmC,IAAD,EAAO0mC,GAAP,EAAU;IAClC,IAAIn4D,MAAM,GAAG,IAAb;IACAyxB,IAAI,CAAC3tB,IAAL,CAAUhS,KAAK,IAAG;MACd,IAAIA,KAAK,CAACzH,GAAN,KAAc8tE,GAAlB,EAAuB;QACnBn4D,MAAM,GAAGlO,KAAT;QACA,OAAO,IAAP;MACH;;MACD,OAAO,KAAP;IACH,CAND;IAOA,OAAOkO,MAAP;EACH;;EAEyB,OAAXq3D,WAAW,CAACP,OAAD,EAAUH,gBAAV,EAA4ByB,cAA5B,EAA4CvL,SAA5C,EAAqD;IAC3E,MAAM7sD,MAAM,GAAG,EAAf;IACA82D,OAAO,CAACG,QAAR,CAAiBhwE,OAAjB,CAAyBiwE,EAAE,IAAG;MAC1B,IAAI,CAACkB,cAAc,CAACt0D,IAAf,CAAoBu0D,EAAE,IAAIA,EAAE,KAAKnB,EAAE,CAAC1wD,MAApC,CAAL,EAAkD;QAC9C,MAAM2wD,WAAW,GACbh7B,eAAe,CAAC46B,wBAAhB,CAAyC;UAAE1sE,GAAG,EAAE6sE,EAAE,CAAC1wD;QAAV,CAAzC,EAA6DmwD,gBAA7D,EAA+E,CAAC;UAAES,QAAQ,EAAEF,EAAE,CAAC7sE;QAAf,CAAD,CAA/E,EAAuGwiE,SAAvG,CADJ;;QAEA,IAAIsK,WAAW,CAACH,OAAhB,EAAyB;UACrBh3D,MAAM,CAAC7a,IAAP,CAAY,CAAC+xE,EAAE,CAAC7sE,GAAJ,EAAS8sE,WAAW,CAACH,OAAZ,CAAoBI,QAA7B,CAAZ;QACH,CAFD,MAEO;UACH,MAAMtJ,KAAK,GAAG3xB,eAAe,CAACk7B,WAAhB,CAA4BF,WAA5B,EAAyCR,gBAAzC,EAA2DyB,cAAc,CAAChrD,MAAf,CAAsB,CAAC8pD,EAAE,CAAC1wD,MAAJ,CAAtB,CAA3D,EAA+FqmD,SAA/F,CAAd;UACAiB,KAAK,CAAC7mE,OAAN,CAAc+mB,CAAC,IAAG;YACdhO,MAAM,CAAC7a,IAAP,CAAY,CAAC+xE,EAAE,CAAC7sE,GAAJ,EAAS+iB,MAAT,CAAgBY,CAAhB,CAAZ;UACH,CAFD;QAGH;MACJ;IACJ,CAbD;IAcA,OAAOhO,MAAP;EACH;;EAEsC,OAAxB+2D,wBAAwB,CAAClB,SAAD,EAAYc,gBAAZ,EAA8BC,aAA9B,EAA6C/J,SAA7C,EAAsD;IACzF,MAAM7sD,MAAM,GAAG;MACXg3D,OAAO,EAAE,IADE;MAEXC,QAAQ,EAAE;IAFC,CAAf;;IAIA,IAAIpK,SAAS,IAAIA,SAAS,CAAClmE,MAAV,GAAmB,CAApC,EAAuC;MACnCkmE,SAAS,CAAC/oD,IAAV,CAAe6hB,CAAC,IAAG;QACf,IAAIixC,aAAa,IAAIA,aAAa,CAAC9yD,IAAd,CAAmBw0D,EAAE,IAAI3yC,CAAC,CAACt7B,GAAF,KAAUiuE,EAAE,CAAClB,QAAtC,CAArB,EAAsE;UAClE,OAAO,KAAP;QACH;;QACD,IAAIzxC,CAAC,CAAC8oC,gBAAF,KAAuBoH,SAAS,CAACxrE,GAArC,EAA0C;UACtC2V,MAAM,CAACi3D,QAAP,CAAgB9xE,IAAhB,CAAqB;YACjBkF,GAAG,EAAEs7B,CAAC,CAACt7B,GADU;YAEjBmc,MAAM,EAAEmf,CAAC,CAAC+oC;UAFO,CAArB;UAIA,OAAOiI,gBAAgB,CAAC7yD,IAAjB,CAAsBy0D,EAAE,IAAG;YAC9B,IAAIA,EAAE,CAACluE,GAAH,KAAWs7B,CAAC,CAAC+oC,kBAAjB,EAAqC;cACjC1uD,MAAM,CAACg3D,OAAP,GAAiB;gBACbY,qBAAqB,EAAE/B,SAAS,CAAC15C,QADpB;gBAEbwwC,aAAa,EAAEkJ,SAAS,CAACxrE,GAFZ;gBAGbwtE,cAAc,EAAEhC,SAAS,CAACx4B,YAHb;gBAIby6B,mBAAmB,EAAES,EAAE,CAACp8C,QAJX;gBAKbywC,WAAW,EAAE2L,EAAE,CAACluE,GALH;gBAMb0tE,YAAY,EAAEQ,EAAE,CAACl7B,YANJ;gBAOb+5B,QAAQ,EAAEzxC,CAAC,CAACt7B;cAPC,CAAjB;cASA,OAAO,IAAP;YACH;;YACD,OAAO,KAAP;UACH,CAdM,CAAP;QAeH,CApBD,MAoBO,IAAIs7B,CAAC,CAAC+oC,kBAAF,KAAyBmH,SAAS,CAACxrE,GAAvC,EAA4C;UAC/C2V,MAAM,CAACi3D,QAAP,CAAgB9xE,IAAhB,CAAqB;YACjBkF,GAAG,EAAEs7B,CAAC,CAACt7B,GADU;YAEjBmc,MAAM,EAAEmf,CAAC,CAAC8oC;UAFO,CAArB;UAIA,OAAOkI,gBAAgB,CAAC7yD,IAAjB,CAAsBy0D,EAAE,IAAG;YAC9B,IAAIA,EAAE,CAACluE,GAAH,KAAWs7B,CAAC,CAAC8oC,gBAAjB,EAAmC;cAC/BzuD,MAAM,CAACg3D,OAAP,GAAiB;gBACbY,qBAAqB,EAAEW,EAAE,CAACp8C,QADb;gBAEbwwC,aAAa,EAAE4L,EAAE,CAACluE,GAFL;gBAGbwtE,cAAc,EAAEU,EAAE,CAACl7B,YAHN;gBAIby6B,mBAAmB,EAAEjC,SAAS,CAAC15C,QAJlB;gBAKbywC,WAAW,EAAEiJ,SAAS,CAACxrE,GALV;gBAMb0tE,YAAY,EAAElC,SAAS,CAACx4B,YANX;gBAOb+5B,QAAQ,EAAEzxC,CAAC,CAACt7B;cAPC,CAAjB;cASA,OAAO,IAAP;YACH;;YACD,OAAO,KAAP;UACH,CAdM,CAAP;QAeH;;QACD,OAAO,KAAP;MACH,CA9CD;IA+CH;;IACD,OAAO2V,MAAP;EACH;;EAEoB,OAAdw4D,cAAc,CAACC,QAAD,EAAWC,QAAX,EAAqBC,YAArB,EAAiC;IAClD,OAAOx8B,eAAe,CAACy8B,sBAAhB,CAAuCH,QAAvC,EAAiDC,QAAjD,EAA2DC,YAA3D,EAAyE,IAAzE,CAAP;EACH;;EAEoC,OAAtBC,sBAAsB,CAACH,QAAD,EAAWC,QAAX,EAAqBC,YAArB,EAAmCE,MAAnC,EAAyC;IAC1E,IAAI74D,MAAJ;IACA24D,YAAY,CAAC70D,IAAb,CAAkB0qD,GAAG,IAAG;MACpB,IAAIA,GAAG,CAAC4I,QAAJ,KAAiByB,MAArB,EAA6B;QACzB,IAAIC,SAAJ;;QACA,IAAItK,GAAG,CAACoJ,qBAAJ,KAA8Ba,QAAlC,EAA4C;UACxCK,SAAS,GAAGtK,GAAG,CAACsJ,mBAAhB;QACH,CAFD,MAEO,IAAItJ,GAAG,CAACsJ,mBAAJ,KAA4BW,QAAhC,EAA0C;UAC7CK,SAAS,GAAGtK,GAAG,CAACoJ,qBAAhB;QACH;;QACD,IAAI,OAAOkB,SAAP,KAAqB,QAAzB,EAAmC;UAC/B,IAAIA,SAAS,KAAKJ,QAAlB,EAA4B;YACxB14D,MAAM,GAAGwuD,GAAT;YACA,OAAO,IAAP;UACH,CAHD,MAGO;YACH,MAAMuK,QAAQ,GAAG58B,eAAe,CAACy8B,sBAAhB,CAAuCE,SAAvC,EAAkDJ,QAAlD,EAA4DC,YAA5D,EAA0EnK,GAAG,CAAC4I,QAA9E,CAAjB;;YACA,IAAI2B,QAAJ,EAAc;cACV/4D,MAAM,GAAGwuD,GAAT;cACA,OAAO,IAAP;YACH;UACJ;QACJ;MACJ;;MACD,OAAO,KAAP;IACH,CAtBD;IAuBA,OAAOxuD,MAAP;EACH;;AA7OuB;;;;;;;;;;;;;;;;;;;;;ACTwB;AACH;AACa;IAGjD,sBAAsB,SAAtB,sBAAsB;IAC/B,SAAS,CAAC,OAAO;QACb,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACjD,MAAM,GAAG,+DAAY,CAAC,sEAAa,EAAE,MAAM,CAAC,CAAC;QAC7C,OAAO,MAAM,CAAC;IAClB,CAAC;;AALQ,sBAAsB;IADlC,mDAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACpC,sBAAsB;AAAA;IAUtB,kBAAkB,SAAlB,kBAAkB;IAC3B,SAAS,CAAC,KAAK;QACX,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE;YACrB,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACtB,MAAM,GAAG;gBACL,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI;gBACxB,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI;gBAC1B,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI;gBACpB,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;gBACtB,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI;gBACxB,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI;gBAC1B,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI;gBAChB,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI;gBAChB,QAAQ,EAAE,UAAU;aACvB,CAAC;SACL;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAlBQ,kBAAkB;IAD9B,mDAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAChC,kBAAkB;AAAA;;;;;;;;;;;;;;;;;ACdA;AAE/B,WAAW;AACJ,MAAM,SAAS;IAEX,MAAM,CAAC,UAAU,CAAC,GAAmB;QACxC,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;IAC9B,CAAC;IAED,MAAM,KAAK,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IACD,MAAM,KAAK,SAAS,CAAC,KAAK;QACtB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;;AAPc,oBAAU,GAAG,KAAK,CAAC;AAQpB,0BAAgB,GAAoB,IAAI,yCAAO,EAAE,CAAC;;;;;;;;;;;;;;;;;AChB6B;AAG1F,MAAM,eAAe;;QACxB,cAAS,GAAG,IAAI,wEAAa,EAAE,CAAC;QAChC,YAAO,GAAG,IAAI,wEAAa,EAAE,CAAC;QAE9B,oBAAe,GAAG,EAAE,CAAC;QAEb,qBAAgB,GAAG,IAAI,wEAAa,EAAE,CAAC;QACvC,WAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACjC,WAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAEjC,cAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACpC,cAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;QA8BpC,SAAI,GAAG,EAAE,CAAC;QACV,SAAI,GAAG,EAAE,CAAC;QAElB,UAAK,GAAG,EAAE,CAAC;QACX,YAAO,GAAY,EAAE,CAAC;QAwBd,cAAS,GAAG,IAAI,2EAAgB,EAAE,CAAC;QAuC3C,cAAS,GAAG,KAAK,CAAC;QAClB,YAAO,GAAG,KAAK,CAAC;QAwGR,WAAM,GAAG,CAAC,CAAC;IAYvB,CAAC;IApNG,cAAc,CAAC,KAAoB;QAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE;YAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;SAChC;QACD,IAAI,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE;YAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;SAChC;QACD,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE;YACtB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;SACxB;QACD,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE;YACtB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;SACxB;QACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAClC,CAAC;IAED,aAAa;QACT,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAEtC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAC7C,CAAC;IAQO,SAAS;QACb,IAAI,IAAI,CAAC;QACT,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE;YAC/B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC;SACnD;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;YACzB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;SAClC;QACD,IAAI,IAAI,EAAE;YACN,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;gBAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;aACpB;SACJ;IACL,CAAC;IACO,SAAS;QACb,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;gBAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;aACpB;SACJ;IACL,CAAC;IAED,eAAe;QACX,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,EAAE,CAAC;YAEjB,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YACvC,IAAI,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YAC5C,IAAI,QAAQ,GAAG,MAAM,EAAE;gBACnB,IAAI,IAAI,GAAG,QAAQ,CAAC;gBACpB,QAAQ,GAAG,MAAM,CAAC;gBAClB,MAAM,GAAG,IAAI,CAAC;aACjB;YACD,IAAI,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;YAEhC,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAC/D,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAEpE,IAAI,WAAW,GAAG,SAAS,EAAE;gBACzB,IAAI,IAAI,GAAG,WAAW,CAAC;gBACvB,WAAW,GAAG,SAAS,CAAC;gBACxB,SAAS,GAAG,IAAI,CAAC;aACpB;YACD,IAAI,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC;YACtC,IAAI,CAAC,cAAc,EAAE,CAAC;YAEtB,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,QAAQ,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,WAAW,CAAC;YACpC,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC;YAEhC,KAAK,IAAI,GAAG,GAAG,QAAQ,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3C,KAAK,IAAI,GAAG,GAAG,WAAW,EAAE,GAAG,IAAI,SAAS,EAAE,GAAG,EAAE,EAAE;oBACjD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC;iBAC5D;aACJ;SACJ;IACL,CAAC;IAID,iBAAiB;QACb,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAC5D,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAExD,IAAI,QAAQ,GAAG,MAAM,EAAE;gBACnB,IAAI,IAAI,GAAG,QAAQ,CAAC;gBACpB,QAAQ,GAAG,MAAM,CAAC;gBAClB,MAAM,GAAG,IAAI,CAAC;aACjB;YAED,IAAI,CAAC,cAAc,EAAE,CAAC;YAEtB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,2EAAgB,CAAC;oBACpD,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ;oBAC/B,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;oBAC3B,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,MAAM;iBACf,CAAC,CAAC,CAAC;YAEJ,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC5C,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC9B,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;wBAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAC7B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;wBACvC,UAAU,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG;4BACtB,UAAU,EAAE,OAAO;4BACnB,QAAQ,EAAE,CAAC;yBACd,CAAC;qBACL;iBACJ;YACL,CAAC,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAChC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAC1D;IACL,CAAC;IAAA,CAAC;IACM,cAAc;QAClB,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;YACnD,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;gBACzD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,GAAG,KAAK,CAAC;aAC7D;SACJ;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,aAAa,GAAG,KAAK,CAAC;QACzF,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;YACzD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,GAAG,KAAK,CAAC;SACjF;IACL,CAAC;IACO,cAAc;QAClB,IAAI,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACxD,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9B,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBAC9B,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;wBAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAC9B,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;4BAC7C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;yBAChD;qBACJ;gBACL,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAED,YAAY;QACR,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAErE,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC5C,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC9B,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC7B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACvC,UAAU,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG;wBACtB,UAAU,EAAE,OAAO;wBACnB,QAAQ,EAAE,CAAC;qBACd,CAAC;iBACL;aACJ;QACL,CAAC,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAChC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEvD,IAAI,MAAM,GAAG,IAAI,wEAAa,EAAE,CAAC;QACjC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAClC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAElC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,mBAAmB;QACf,sBAAsB;QACtB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YACrG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC;SAChE;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;QAC7C,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YAC9J,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;SAClF;QACD,YAAY;IAChB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnOqE;AACA;AACQ;AACM;AACZ;AACN;AACF;AACc;AACZ;AACI;AACS;AACC;AAE7E,MAAM,oBAAoB,GAAG;IAChC,IAAI,4EAAa,EAAE;IACnB,IAAI,8EAAc,EAAE;IACpB,IAAI,kFAAgB,EAAE;IACtB,IAAI,6FAAqB,EAAE;IAC3B,IAAI,0FAAoB,EAAE;IAC1B,IAAI,kFAAgB,EAAE;IACtB,IAAI,0FAAoB,EAAE;IAC1B,IAAI,8EAAc,EAAE;IACpB,IAAI,4FAAqB,EAAE;IAC3B,IAAI,oFAAiB,EAAE;IACvB,IAAI,gGAAuB,EAAE;IAC7B,IAAI,kFAAgB,EAAE;CACzB;AAGM,MAAM,qBAAqB;IAGvB,MAAM,CAAC,KAAK;QACf,oBAAoB,CAAC,OAAO,CAAC,CAAC,OAAkC,EAAE,EAAE;YAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAClC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACnC,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;YACtF,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,OAAkC,EAAE,EAAE;YAC1E,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAClC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACnC,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;YACtF,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;;AAfa,qCAAe,GAAG,EAAE,CAAC;AACrB,+CAAyB,GAAgC,EAAE,CAAC;;;;;;;;;;;;;;;;;;;AChC1B;IAKvC,oBAAoB,SAApB,oBAAoB;IAE/B,SAAS,CAAC,KAAa;QACrB,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,EAAE,CAAC;SACX;QACD,yDAAyD;QACzD,MAAM,UAAU,GAAG,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,4CAA4C;IACpE,CAAC;;AATU,oBAAoB;IAHhC,mDAAI,CAAC;QACJ,IAAI,EAAE,kBAAkB;KACzB,CAAC;GACW,oBAAoB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLmB;AACxB;AAC0B;AACQ;AACM;AACgC;AACG;AACtC;AACI;AACV;AACI;AACN;AACY;AACY;AACpB;AACI;AACY;AACY;AAChC;AACI;AAEC;AACkB;AAClB;AACV;AACM;AACU;AAChB;AACX;AACK;IAGjC,sBAAsB,SAAtB,sBAAsB;IAK/B,SAAS,CAAC,aAAa,EAAE,YAAY;QACjC,mHAAmH;QACnH,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,aAAa,IAAI,aAAa,CAAC,OAAO,EAAE;YACxC,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC/C,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC;YAC3D,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAE1D,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;aAC1C;YACD,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC5B,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC/B,CAAC,CAAC,CAAC;aACN;SACJ;QACD,yHAAyH;QACzH,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,UAAU,CAAC,OAAO,EAAE,MAAM;QACtB,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACvD,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACjD,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC1C,IAAI,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE;oBAC7B,MAAM,CAAC,YAAY,CAAC,IAAI,sFAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAChE,IAAI,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE;wBAC7B,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,GAAG,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAC;wBACxD,IAAI,UAAU,CAAC,cAAc,IAAI,IAAI,EAAE;4BACnC,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,GAAG,kGAAwB,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;4BAClF,IAAI,UAAU,CAAC,KAAK,IAAI,IAAI,EAAE;gCAC1B,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,GAAG,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC;6BACxD;yBACJ;qBACJ;oBACD,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE;wBACpC,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC;qBAC/B;iBACJ;aACJ;SACJ;QACD,cAAc;QACd,IAAI,OAAO,CAAC,IAAI,EAAE;YACd,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBAC3B,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;oBACnB,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;iBAClC;qBAAM;oBACH,gCAAgC;oBAChC,MAAM,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC;iBACpC;aACJ;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;gBAC7B,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;oBACrB,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;iBACnC;qBAAM;oBACH,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC;iBAC/B;aACJ;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;gBAChC,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;oBACxB,MAAM,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC;iBAC3C;qBAAM;oBACH,OAAO,MAAM,CAAC,iBAAiB,CAAC,CAAC;iBACpC;aACJ;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;gBACrC,IAAI,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE;oBAC7B,IAAI,uEAA0B,IAAI,uEAA0B,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;wBACvF,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,GAAG,uEAA0B,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,YAAY,GAAG,GAAG,CAAC;qBAC/G;yBAAM;wBACH,MAAM,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;qBACvD;iBACJ;qBAAM;oBACH,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC;iBAChC;aACJ;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC/B,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACvB,MAAM,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;iBACtD;qBAAM;oBACH,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC;iBAC9B;aACJ;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;gBACxB,MAAM,SAAS,GAAG,0EAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC7D,IAAI,SAAS,EAAE;oBACX,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;iBAC/B;qBAAM;oBACH,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;iBAC1B;aACJ;SACJ;QACD,YAAY;QACZ,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;YAC5B,MAAM,CAAC,aAAa,CAAC,GAAG,sEAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SAC1D;QACD,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI,EAAE;YAC9B,MAAM,CAAC,eAAe,CAAC,GAAG,0EAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;SAChE;QACD,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE;YAC7D,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;YACtD,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;SAC3D;QACD,mBAAmB;QACnB,IAAI,OAAO,CAAC,WAAW,KAAK,MAAM,EAAE;YAChC,QAAQ,OAAO,CAAC,0BAA0B,EAAE;gBACxC,KAAK,0EAAgB;oBACjB,MAAM,CAAC,iBAAiB,CAAC,GAAG,QAAQ,CAAC;oBACrC,MAAM;gBACV,KAAK,uEAAa;oBACd,MAAM,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAAC;oBACvC,MAAM;gBACV,KAAK,yEAAe;oBAChB,MAAM,CAAC,iBAAiB,CAAC,GAAG,YAAY,CAAC;oBACzC,MAAM;aACb;YAED,QAAQ,OAAO,CAAC,wBAAwB,EAAE;gBACtC,KAAK,yEAAe;oBAChB,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC;oBACrC,MAAM;gBACV,KAAK,uEAAa;oBACd,MAAM,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC;oBACnC,MAAM;gBACV,KAAK,0EAAgB;oBACjB,MAAM,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC;oBACjC,MAAM;aACb;SACJ;QACD,YAAY;QACZ,uBAAuB;QACvB,QAAQ,OAAO,CAAC,uBAAuB,EAAE;YACrC,KAAK,0EAAgB;gBACjB,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;gBAChC,MAAM;YACV,KAAK,uEAAa;gBACd,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;gBAC7B,MAAM;YACV,KAAK,yEAAe;gBAChB,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC;gBAC/B,MAAM;YACV,KAAK,2EAAiB;gBAClB,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;gBACjC,MAAM;SACb;QACD,IAAI,OAAO,CAAC,WAAW,KAAK,UAAU,IAAI,OAAO,CAAC,WAAW,KAAK,MAAM,IAAI,OAAO,CAAC,WAAW,KAAK,WAAW,EAAE;YAC7G,QAAQ,OAAO,CAAC,qBAAqB,EAAE;gBACnC,KAAK,yEAAe;oBAChB,MAAM,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC;oBAChC,MAAM;gBACV,KAAK,uEAAa;oBACd,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;oBAC9B,MAAM;gBACV,KAAK,0EAAgB;oBACjB,MAAM,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC;oBACjC,MAAM;aACb;SACJ;aAAM;YACH,QAAQ,OAAO,CAAC,qBAAqB,EAAE;gBACnC,KAAK,yEAAe;oBAChB,MAAM,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC;oBACjC,MAAM;gBACV,KAAK,uEAAa;oBACd,MAAM,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC;oBACpC,MAAM;gBACV,KAAK,0EAAgB;oBACjB,MAAM,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC;oBACpC,MAAM;aACb;SACJ;QACD,YAAY;QACZ,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE;YACjC,gBAAgB;YAChB,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnD,IAAI,UAAU,GAAG,EAAE,CAAC;gBACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAClC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;oBACtG,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;wBACtB,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;wBACvB,IAAI,OAAO,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE;4BACjC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;yBACjC;wBACD,IAAI,GAAG,IAAI,CAAC,EAAE;4BACV,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC;yBACtB;6BAAM;4BACH,IAAI,KAAK,GAAG,qEAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BACtC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;4BAChC,IAAI,IAAI,0EAAkB,CAAC,KAAK,CAAC,CAAC;yBACrC;qBACJ;yBAAM;wBACH,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC;qBACtB;oBACD,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE;wBACpC,IAAI,IAAI,IAAI,CAAC;qBAChB;oBACD,UAAU,IAAI,IAAI,CAAC;iBACtB;gBACD,IAAI,UAAU,EAAE;oBACZ,MAAM,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;iBACrC;aACJ;YACD,YAAY;YACZ,gBAAgB;YAChB,IAAI,OAAO,CAAC,MAAM,EAAE;gBAChB,IAAI,KAAK,GAAG,qFAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAChE,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,KAAK,KAAK,EAAE,EAAE;oBAC3C,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;iBACjC;gBACD,KAAK,GAAG,qFAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC3D,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE;oBAC1C,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;iBAChC;gBACD,KAAK,GAAG,qFAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC7D,IAAI,OAAO,CAAC,MAAM,CAAC,WAAW,IAAI,KAAK,KAAK,EAAE,EAAE;oBAC5C,MAAM,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;iBAClC;gBACD,KAAK,GAAG,qFAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC9D,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,IAAI,KAAK,EAAE;oBACtC,MAAM,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC;iBACnC;gBACD,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE;oBAC7B,KAAK,GAAG,8EAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;oBAChE,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,IAAI,KAAK,KAAK,EAAE,EAAE;wBACrD,MAAM,CAAC,wBAAwB,CAAC,GAAG,KAAK,CAAC;qBAC5C;oBACD,KAAK,GAAG,8EAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;oBACjE,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE;wBACtD,MAAM,CAAC,yBAAyB,CAAC,GAAG,KAAK,CAAC;qBAC7C;oBACD,KAAK,GAAG,8EAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;oBACnE,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,IAAI,KAAK,KAAK,EAAE,EAAE;wBACxD,MAAM,CAAC,2BAA2B,CAAC,GAAG,KAAK,CAAC;qBAC/C;oBACD,KAAK,GAAG,8EAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;oBACpE,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,IAAI,KAAK,KAAK,EAAE,EAAE;wBACzD,MAAM,CAAC,4BAA4B,CAAC,GAAG,KAAK,CAAC;qBAChD;iBACJ;aACJ;YACD,YAAY;YACZ,oBAAoB;YACpB,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;YACnC,IAAI,EAAE,EAAE;gBACJ,MAAM,MAAM,GAAG,kFAAuB,CAAC,EAAE,CAAC,CAAC;gBAC3C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAChC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACN;YACD,IAAI,OAAO,CAAC,eAAe,EAAE;gBACzB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;oBACtD,IAAI,IAAI,CAAC,WAAW,EAAE;wBAClB,MAAM,GAAG,GAAG,mFAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;wBAC1E,MAAM,CAAC,kBAAkB,CAAC,GAAG,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC;qBACvD;yBAAM;wBACH,iFAA+B,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;4BACjF,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;4BAC1B,MAAM,GAAG,GAAG,mFAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;4BAC1E,MAAM,CAAC,kBAAkB,CAAC,GAAG,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC;wBACxD,CAAC,CAAC,CAAC;qBACN;iBACJ;aACJ;YACD,IAAI,OAAO,OAAO,CAAC,gBAAgB,KAAK,QAAQ,IAAI,OAAO,CAAC,gBAAgB,IAAI,CAAC,EAAE;gBAC/E,MAAM,CAAC,mBAAmB,CAAC,GAAG,2EAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;aAC5E;YACD,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,QAAQ,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,EAAE;gBAC3E,MAAM,CAAC,iBAAiB,CAAC,GAAG,yEAAc,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;aACtE;YACD,IAAI,OAAO,OAAO,CAAC,kBAAkB,KAAK,QAAQ,IAAI,OAAO,CAAC,kBAAkB,IAAI,CAAC,EAAE;gBACnF,MAAM,CAAC,qBAAqB,CAAC,GAAG,6EAAkB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;aAClF;YACD,YAAY;SACf;QAED,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE;YAC3B,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;SAC9B;aAAM,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE;YACjC,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;SAC5B;QACD,IAAI,OAAO,CAAC,cAAc,IAAI,IAAI,EAAE;YAChC,MAAM,CAAC,UAAU,CAAC,GAAG,6EAAc,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SAC/D;QACD,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE;YAC1B,MAAM,CAAC,YAAY,CAAC,GAAG,mEAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SACtD;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;YAChB,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,QAAQ,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;oBACpC,KAAK,QAAQ,CAAC;oBACd,KAAK,UAAU,CAAC;oBAChB,KAAK,uBAAuB,CAAC;oBAC7B,KAAK,QAAQ;wBACT,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;wBAClC,MAAM;iBACb;aACJ;SACJ;IACL,CAAC;;AAlTQ,sBAAsB;IADlC,oDAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACpC,sBAAsB;AAAA;IAsTtB,mBAAmB,SAAnB,mBAAmB;IAK5B,SAAS,CAAC,aAAa,EAAE,YAAY;QACjC,gHAAgH;QAEhH,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,aAAa,IAAI,aAAa,CAAC,OAAO,EAAE;YACxC,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC/C,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC;YAC3D,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAE1D,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;aACjE;YACD,IAAI,aAAa,EAAE;gBACf,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;aACjE;YACD,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC5B,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;gBACtD,CAAC,CAAC,CAAC;aACN;YACD,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,WAAW,KAAK,MAAM,EAAE;gBACrE,MAAM,KAAK,GAAG,oEAAuB,CAAC;gBACtC,IAAI,KAAK,IAAI,KAAK,CAAC,YAAY,KAAK,mFAAsB,EAAE;oBACxD,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;wBAC5D,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC;oBACjE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,aAAa,CAAC,WAAW,CAAC,EAAE;wBACvD,QAAQ,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE;4BACtC,KAAK,kFAAsB,CAAC;4BAC5B,KAAK,yFAA6B,CAAC;4BACnC,KAAK,0FAA8B,CAAC;4BACpC,KAAK,iGAAqC;gCACtC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;oCAC1C,MAAM,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;iCACjC;gCACD,MAAM;4BACV,KAAK,gFAAoB,CAAC;4BAC1B,KAAK,uFAA2B,CAAC;4BACjC,KAAK,wFAA4B,CAAC;4BAClC,KAAK,+FAAmC;gCACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;oCAC5C,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;iCACjC;gCACD,MAAM;yBACb;qBACJ;iBACJ;aACJ;SACJ;QACD,sHAAsH;QACtH,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO;QAC/B,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACvD,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACjD,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC1C,IAAI,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE;oBAC7B,MAAM,CAAC,YAAY,CAAC,IAAI,sFAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAChE,IAAI,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE;wBAC7B,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,GAAG,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAC;wBACxD,IAAI,UAAU,CAAC,cAAc,IAAI,IAAI,EAAE;4BACnC,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,GAAG,kGAAwB,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;4BAClF,IAAI,UAAU,CAAC,KAAK,IAAI,IAAI,EAAE;gCAC1B,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,GAAG,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC;6BACxD;yBACJ;qBACJ;oBACD,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE;wBACpC,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC;qBAC/B;iBACJ;aACJ;SACJ;QACD,IAAI,OAAO,CAAC,IAAI,EAAE;YACd,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBAC3B,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;oBACnB,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;iBAClC;qBAAM;oBACH,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC;oBAC7B,oCAAoC;iBACvC;aACJ;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;gBAC7B,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;oBACrB,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;iBACnC;qBAAM;oBACH,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC;iBAC/B;aACJ;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;gBAChC,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;oBACxB,MAAM,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC;iBAC3C;qBAAM;oBACH,OAAO,MAAM,CAAC,iBAAiB,CAAC,CAAC;iBACpC;aACJ;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;gBACrC,IAAI,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE;oBAC7B,IAAI,uEAA0B,IAAI,uEAA0B,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;wBACvF,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,GAAG,uEAA0B,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,YAAY,GAAG,GAAG,CAAC;qBAC/G;yBAAM;wBACH,MAAM,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;qBACvD;iBACJ;qBAAM;oBACH,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC;iBAChC;aACJ;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC/B,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACvB,MAAM,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;iBACtD;qBAAM;oBACH,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC;iBAC9B;aACJ;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;gBACxB,MAAM,SAAS,GAAG,0EAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC7D,IAAI,SAAS,EAAE;oBACX,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;iBAC/B;qBAAM;oBACH,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;iBAC1B;aACJ;SACJ;QACD,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;YAC5B,MAAM,CAAC,aAAa,CAAC,GAAG,sEAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SAC1D;QACD,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI,EAAE;YAC9B,MAAM,CAAC,eAAe,CAAC,GAAG,0EAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;SAChE;QACD,IAAI,OAAO,CAAC,KAAK,EAAE;YACf,MAAM,KAAK,GAAG,8EAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,KAAK,KAAK,EAAE,EAAE;gBACd,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;aAC3B;SACJ;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;YAChB,MAAM,KAAK,GAAG,8EAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,KAAK,KAAK,EAAE,EAAE;gBACd,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;aAC5B;SACJ;QACD,IAAI,OAAO,CAAC,QAAQ,EAAE;YAClB,MAAM,KAAK,GAAG,8EAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,KAAK,KAAK,EAAE,EAAE;gBACd,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;aAC/B;SACJ;QACD,IAAI,OAAO,CAAC,SAAS,EAAE;YACnB,MAAM,KAAK,GAAG,8EAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACpD,IAAI,KAAK,KAAK,EAAE,EAAE;gBACd,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;aAChC;SACJ;QACD,IAAI,OAAO,CAAC,QAAQ,EAAE;YAClB,MAAM,KAAK,GAAG,8EAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,KAAK,KAAK,EAAE,EAAE;gBACd,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;aAC/B;SACJ;QACD,IAAI,OAAO,CAAC,SAAS,EAAE;YACnB,MAAM,KAAK,GAAG,8EAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACpD,IAAI,KAAK,KAAK,EAAE,EAAE;gBACd,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;aAChC;SACJ;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;YAChB,MAAM,SAAS,GAAG,8EAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1D,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE;gBAClC,MAAM,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;aACrC;YACD,MAAM,QAAQ,GAAG,8EAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxD,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,QAAQ,EAAE;gBAChC,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;aACnC;YACD,MAAM,UAAU,GAAG,8EAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,KAAK,EAAE,EAAE;gBAC3C,MAAM,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC;aACvC;YACD,MAAM,WAAW,GAAG,8EAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9D,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,WAAW,KAAK,EAAE,EAAE;gBAC7C,MAAM,CAAC,eAAe,CAAC,GAAG,WAAW,CAAC;aACzC;YACD,sBAAsB;YACtB,6CAA6C;YAC7C,wFAAwF;YACxF,gCAAgC;YAChC,uDAAuD;YACvD,iCAAiC;YACjC,wDAAwD;YACxD,GAAG;YACH,yBAAyB;YACzB,4BAA4B;YAC5B,mEAAmE;YACnE,cAAc;YACd,qDAAqD;YACrD,OAAO;YACP,GAAG;YACH,uBAAuB;YACvB,8CAA8C;YAC9C,yFAAyF;YACzF,+BAA+B;YAC/B,uDAAuD;YACvD,kCAAkC;YAClC,0DAA0D;YAC1D,GAAG;YACH,0BAA0B;YAC1B,6BAA6B;YAC7B,sEAAsE;YACtE,cAAc;YACd,uDAAuD;YACvD,OAAO;YACP,GAAG;SACN;QACD,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE;YACxB,MAAM,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;YACnC,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;gBAClC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;gBAChC,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE;oBAC1E,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;iBAC5C;aACJ;SACJ;aAAM;YACH,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE;gBACxB,OAAO,OAAO,CAAC,MAAM,CAAC;gBACtB,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE;oBAC1E,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;iBAC5C;aACJ;SACJ;QACD,IAAI,OAAO,CAAC,UAAU,EAAE;YACpB,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;SAC/B;QACD,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE;YAC1B,MAAM,CAAC,UAAU,CAAC,GAAG,kEAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SACnD;aAAM;YACH,MAAM,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;SACjC;QACD,QAAQ,OAAO,CAAC,0BAA0B,EAAE;YACxC,KAAK,0EAAgB;gBACjB,MAAM,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC;gBAClC,MAAM;YACV,KAAK,uEAAa;gBACd,MAAM,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC;gBACpC,MAAM;YACV,KAAK,yEAAe;gBAChB,MAAM,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;gBACtC,MAAM;SACb;QACD,QAAQ,OAAO,CAAC,wBAAwB,EAAE;YACtC,KAAK,yEAAe;gBAChB,MAAM,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;gBACpC,MAAM;YACV,KAAK,uEAAa;gBACd,MAAM,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;gBAClC,MAAM;YACV,KAAK,0EAAgB;gBACjB,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;gBAChC,MAAM;SACb;QAED,uBAAuB;QACvB,QAAQ,OAAO,CAAC,uBAAuB,EAAE;YACrC,KAAK,0EAAgB;gBACjB,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;gBAChC,MAAM;YACV,KAAK,uEAAa;gBACd,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;gBAC7B,MAAM;YACV,KAAK,yEAAe;gBAChB,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC;gBAC/B,MAAM;YACV,KAAK,2EAAiB;gBAClB,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;gBACjC,MAAM;SACb;QAED,QAAQ,OAAO,CAAC,qBAAqB,EAAE;YACnC,KAAK,yEAAe;gBAChB,MAAM,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC;gBACjC,MAAM;YACV,KAAK,uEAAa;gBACd,MAAM,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC;gBACpC,MAAM;YACV,KAAK,0EAAgB;gBACjB,MAAM,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC;gBACpC,MAAM;SACb;QACD,YAAY;QAEZ,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE;YAC3B,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;SAC9B;aAAM,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE;YACjC,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;SAC5B;QAED,IAAI,OAAO,CAAC,OAAO,EAAE;YACjB,IAAI,KAAK,GAAG,8EAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,EAAE;gBAC/B,MAAM,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;aAClC;YACD,KAAK,GAAG,8EAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAChD,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK,EAAE;gBAC9B,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;aACjC;YACD,KAAK,GAAG,8EAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,EAAE;gBAChC,MAAM,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC;aACnC;YACD,KAAK,GAAG,8EAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACnD,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE;gBACjC,MAAM,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC;aACpC;SACJ;QACD,IAAI,OAAO,CAAC,cAAc,IAAI,IAAI,EAAE;YAChC,MAAM,CAAC,UAAU,CAAC,GAAG,6EAAc,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SAC/D;QACD,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE;YAC1B,MAAM,CAAC,YAAY,CAAC,GAAG,mEAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SACtD;QACD,IAAI,OAAO,CAAC,QAAQ,EAAE;YAClB,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBACjE,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;aACpD;YACD,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBAC/D,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;aAClD;YACD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBACnE,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;aACtD;YACD,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBACrE,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;aACxD;SACJ;QACD,IAAI,OAAO,CAAC,sBAAsB,EAAE;YAChC,gBAAgB;YAChB,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnD,IAAI,UAAU,GAAG,EAAE,CAAC;gBACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAClC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;oBACtG,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;wBACtB,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;wBACvB,IAAI,OAAO,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE;4BACjC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;yBACjC;wBACD,IAAI,GAAG,IAAI,CAAC,EAAE;4BACV,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC;yBACtB;6BAAM;4BACH,IAAI,KAAK,GAAG,qEAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BACtC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;4BAChC,IAAI,IAAI,0EAAkB,CAAC,KAAK,CAAC,CAAC;yBACrC;qBACJ;yBAAM;wBACH,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC;qBACtB;oBACD,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE;wBACpC,IAAI,IAAI,IAAI,CAAC;qBAChB;oBACD,UAAU,IAAI,IAAI,CAAC;iBACtB;gBACD,IAAI,UAAU,EAAE;oBACZ,MAAM,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;iBACrC;aACJ;YACD,YAAY;YACZ,gBAAgB;YAChB,IAAI,OAAO,CAAC,MAAM,EAAE;gBAChB,IAAI,KAAK,GAAG,qFAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAChE,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,KAAK,KAAK,EAAE,EAAE;oBAC3C,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;iBACjC;gBACD,KAAK,GAAG,qFAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC3D,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE;oBAC1C,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;iBAChC;gBACD,KAAK,GAAG,qFAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC7D,IAAI,OAAO,CAAC,MAAM,CAAC,WAAW,IAAI,KAAK,KAAK,EAAE,EAAE;oBAC5C,MAAM,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;iBAClC;gBACD,KAAK,GAAG,qFAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC9D,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,IAAI,KAAK,EAAE;oBACtC,MAAM,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC;iBACnC;gBACD,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE;oBAC7B,KAAK,GAAG,8EAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;oBAChE,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,IAAI,KAAK,KAAK,EAAE,EAAE;wBACrD,MAAM,CAAC,wBAAwB,CAAC,GAAG,KAAK,CAAC;qBAC5C;oBACD,KAAK,GAAG,8EAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;oBACjE,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE;wBACtD,MAAM,CAAC,yBAAyB,CAAC,GAAG,KAAK,CAAC;qBAC7C;oBACD,KAAK,GAAG,8EAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;oBACnE,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,IAAI,KAAK,KAAK,EAAE,EAAE;wBACxD,MAAM,CAAC,2BAA2B,CAAC,GAAG,KAAK,CAAC;qBAC/C;oBACD,KAAK,GAAG,8EAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;oBACpE,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,IAAI,KAAK,KAAK,EAAE,EAAE;wBACzD,MAAM,CAAC,4BAA4B,CAAC,GAAG,KAAK,CAAC;qBAChD;iBACJ;aACJ;YACD,YAAY;YACZ,oBAAoB;YACpB,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;YACnC,IAAI,EAAE,EAAE;gBACJ,MAAM,MAAM,GAAG,kFAAuB,CAAC,EAAE,CAAC,CAAC;gBAC3C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAChC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACN;YACD,IAAI,OAAO,CAAC,eAAe,EAAE;gBACzB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;oBACtD,IAAI,IAAI,CAAC,WAAW,EAAE;wBAClB,MAAM,GAAG,GAAG,mFAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;wBAC1E,MAAM,CAAC,kBAAkB,CAAC,GAAG,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC;qBACvD;yBAAM;wBACH,iFAA+B,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;4BACjF,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;4BAC1B,MAAM,GAAG,GAAG,mFAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;4BAC1E,MAAM,CAAC,kBAAkB,CAAC,GAAG,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC;wBACxD,CAAC,CAAC,CAAC;qBACN;iBACJ;aACJ;YACD,IAAI,OAAO,OAAO,CAAC,gBAAgB,KAAK,QAAQ,IAAI,OAAO,CAAC,gBAAgB,IAAI,CAAC,EAAE;gBAC/E,MAAM,CAAC,mBAAmB,CAAC,GAAG,2EAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;aAC5E;YACD,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,QAAQ,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,EAAE;gBAC3E,MAAM,CAAC,iBAAiB,CAAC,GAAG,yEAAc,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;aACtE;YACD,IAAI,OAAO,OAAO,CAAC,kBAAkB,KAAK,QAAQ,IAAI,OAAO,CAAC,kBAAkB,IAAI,CAAC,EAAE;gBACnF,MAAM,CAAC,qBAAqB,CAAC,GAAG,6EAAkB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;aAClF;YACD,YAAY;SACf;QACD,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,EAAE;YACzB,aAAa,IAAI,UAAU,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;SAC3D;QACD,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,EAAE;YACzB,aAAa,IAAI,UAAU,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;SAC3D;QACD,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,EAAE;YACzB,aAAa,IAAI,UAAU,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;SAC3D;QACD,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,EAAE;YACxD,aAAa,IAAI,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;SACxE;QACD,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,EAAE;YACxD,aAAa,IAAI,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;SACxE;QACD,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,EAAE;YACxD,aAAa,IAAI,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;SACxE;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;YAChB,aAAa,IAAI,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;SACtD;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;YAChB,aAAa,IAAI,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;SACtD;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;YAChB,aAAa,IAAI,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;SACtD;QACD,IAAI,aAAa,EAAE;YACf,MAAM,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC;SACvC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;YAChB,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;SACrC;IACL,CAAC;;AA5dQ,mBAAmB;IAD/B,oDAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACjC,mBAAmB;AAAA;IA+dnB,qBAAqB,SAArB,qBAAqB;IAC9B,SAAS,CAAC,aAAa,EAAE,YAAY;QACjC,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,IAAI,aAAa,IAAI,aAAa,CAAC,OAAO,EAAE;YACxC,IAAI,aAAa,CAAC,WAAW,KAAK,UAAU,EAAE;gBAC1C,OAAO;oBACH,OAAO,EAAE,MAAM;iBAClB,CAAC;aACL;YACD,IAAI,aAAa,CAAC,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1F,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;aAC3D;YACD,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACvC,IAAI,aAAa,CAAC,OAAO,CAAC,cAAc,IAAI,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzF,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC7C,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC/B,CAAC,CAAC,CAAC;aACN;SACJ;QACD,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE;YAChD,MAAM,GAAG,MAAM,CAAC;YAChB,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC;YAC9B,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC;SAC/B;QAED,OAAO;YACH,OAAO,EAAE,MAAM;SAClB,CAAC;IACN,CAAC;IACD,UAAU,CAAC,OAAO,EAAE,MAAM;QACtB,QAAQ,OAAO,CAAC,0BAA0B,EAAE;YACxC,KAAK,0EAAgB;gBACjB,MAAM,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC;gBAClC,MAAM;YACV,KAAK,uEAAa;gBACd,MAAM,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC;gBACpC,MAAM;YACV,KAAK,yEAAe;gBAChB,MAAM,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;gBACtC,MAAM;SACb;QACD,QAAQ,OAAO,CAAC,wBAAwB,EAAE;YACtC,KAAK,yEAAe;gBAChB,MAAM,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;gBACpC,MAAM;YACV,KAAK,uEAAa;gBACd,MAAM,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;gBAClC,MAAM;YACV,KAAK,0EAAgB;gBACjB,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;gBAChC,MAAM;SACb;IACL,CAAC;;AAtDQ,qBAAqB;IADjC,oDAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACnC,qBAAqB;AAAA;IAyDrB,0BAA0B,SAA1B,0BAA0B;IACnC,SAAS,CAAC,SAAS,EAAE,aAAa;QAC9B,MAAM,MAAM,GAAG,SAAS,CAAC;QACzB,IAAI,aAAa,IAAI,aAAa,CAAC,OAAO,EAAE;YACxC,IAAI,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE;gBACnC,MAAM,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;aAChC;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AATQ,0BAA0B;IADtC,oDAAI,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACxC,0BAA0B;AAAA;IAe1B,uBAAuB,SAAvB,uBAAuB;IAChC,SAAS,CAAC,SAAS,EAAE,aAAa;QAC9B,MAAM,MAAM,GAAG,SAAS,CAAC;QACzB,IAAI,aAAa,CAAC,iBAAiB,IAAI,aAAa,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/E,MAAM,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;SACzF;QACD,IAAI,aAAa,CAAC,cAAc,IAAI,aAAa,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YACzE,MAAM,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;SACnF;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,aAAa,CAAC,KAAmB;QAC7B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;gBACf,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,uEAAa,EAAE;oBACrC,SAAS,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;iBAChC;qBAAM;oBACH,SAAS,CAAC,CAAC,CAAC,GAAG,kFAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACxD;aACJ;SACJ;QACD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACpC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnB,MAAM,IAAI,GAAG,CAAC;aACjB;YACD,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;;AA9BQ,uBAAuB;IADnC,oDAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACrC,uBAAuB;AAAA;IAiCvB,iBAAiB,SAAjB,iBAAiB;IAC1B,SAAS,CAAC,IAAI,EAAE,YAAY;QACxB,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,IAAI,IAAI,CAAC,GAAG,EAAE;YACV,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;YAC9B,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,MAAM,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;gBACpC,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;aACpD;SACJ;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACpC,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,MAAM,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC1C,MAAM,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;aAC1D;SACJ;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;SAC/B;aAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YAClC,MAAM,CAAC,UAAU,CAAC,GAAG,kEAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACpD;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAxBQ,iBAAiB;IAD7B,oDAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAC/B,iBAAiB;AAAA;IA2BjB,qBAAqB,SAArB,qBAAqB;IAC9B,SAAS,CAAC,IAAI,EAAE,IAAI;QAChB,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,GAAG,EAAE;YACV,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;SACjC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;SACvC;QACD,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE;YAC/D,MAAM,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC;SACxC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAbQ,qBAAqB;IADjC,oDAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACnC,qBAAqB;AAAA;IAgBrB,sBAAsB,SAAtB,sBAAsB;IAC/B,SAAS,CAAC,IAAI;QACV,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,QAAQ,IAAI,CAAC,wBAAwB,EAAE;YACnC,KAAK,yEAAe;gBAChB,MAAM,CAAC,iBAAiB,CAAC,GAAG,YAAY,CAAC;gBACzC,MAAM;YACV,KAAK,uEAAa;gBACd,MAAM,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAAC;gBACvC,MAAM;YACV,KAAK,0EAAgB;gBACjB,MAAM,CAAC,iBAAiB,CAAC,GAAG,QAAQ,CAAC;gBACrC,MAAM;SACb;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAfQ,sBAAsB;IADlC,oDAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACpC,sBAAsB;AAAA;IAkBtB,iBAAiB,SAAjB,iBAAiB;IAC1B,SAAS,CAAC,IAAI;QACV,MAAM,QAAQ,GAAG;YACb,sBAAsB,EAAE,KAAK;YAC7B,oBAAoB,EAAE,KAAK;SAC9B,CAAC;QACF,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;YAC1D,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;gBACvD,MAAM,GAAG,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACvD,IAAI,GAAG,CAAC,sBAAsB,EAAE;oBAC5B,QAAQ,CAAC,sBAAsB,GAAG,IAAI,CAAC;iBAC1C;gBACD,IAAI,GAAG,CAAC,oBAAoB,EAAE;oBAC1B,QAAQ,CAAC,oBAAoB,GAAG,IAAI,CAAC;iBACxC;YACL,CAAC,CAAC,CAAC;SACN;aAAM;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvD,IAAI,GAAG,CAAC,sBAAsB,EAAE;gBAC5B,QAAQ,CAAC,sBAAsB,GAAG,IAAI,CAAC;aAC1C;YACD,IAAI,GAAG,CAAC,oBAAoB,EAAE;gBAC1B,QAAQ,CAAC,oBAAoB,GAAG,IAAI,CAAC;aACxC;SACJ;QACD,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE;YAChC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;SAC7B;QACD,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE;YAClC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;SAC5B;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,uBAAuB,CAAC,OAAO,EAAE,MAAM;QACnC,MAAM,QAAQ,GAAG;YACb,sBAAsB,EAAE,KAAK;YAC7B,oBAAoB,EAAE,KAAK;SAC9B,CAAC;QACF,QAAQ,OAAO,CAAC,0BAA0B,EAAE;YACxC,KAAK,0EAAgB;gBACjB,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;gBAChC,QAAQ,CAAC,sBAAsB,GAAG,IAAI,CAAC;gBACvC,MAAM;YACV,KAAK,uEAAa;gBACd,MAAM,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;gBAClC,QAAQ,CAAC,sBAAsB,GAAG,IAAI,CAAC;gBACvC,MAAM;YACV,KAAK,yEAAe;gBAChB,MAAM,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;gBACpC,QAAQ,CAAC,sBAAsB,GAAG,IAAI,CAAC;gBACvC,MAAM;SACb;QACD,QAAQ,OAAO,CAAC,wBAAwB,EAAE;YACtC,KAAK,yEAAe;gBAChB,QAAQ,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBACrC,MAAM;YACV,KAAK,uEAAa;gBACd,QAAQ,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBACrC,MAAM;YACV,KAAK,0EAAgB;gBACjB,QAAQ,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBACrC,MAAM;SACb;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;;AAlEQ,iBAAiB;IAD7B,oDAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAC/B,iBAAiB;AAAA;IAuEjB,aAAa,SAAb,aAAa;IACtB,SAAS,CAAC,OAAO,EAAE,YAAY;QAC3B,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,OAAO,EAAE;YACT,IAAI,OAAO,CAAC,cAAc,IAAI,IAAI,EAAE;gBAChC,MAAM,CAAC,aAAa,CAAC,GAAG,2EAAiB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;aACrE;YACD,IAAI,OAAO,CAAC,gBAAgB,IAAI,IAAI,EAAE;gBAClC,MAAM,CAAC,eAAe,CAAC,GAAG,8EAAoB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;aAC5E;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAZQ,aAAa;IADzB,oDAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAC3B,aAAa;AAAA;IAeb,aAAa,SAAb,aAAa;IACtB,SAAS,CAAC,OAAO,EAAE,YAAY;QAC3B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,QAAQ,OAAO,CAAC,WAAW,EAAE;YACzB,KAAK,kFAAsB;gBAAE,MAAM,GAAG,UAAU,CAAC;gBAAC,MAAM;YACxD,KAAK,yFAA6B;gBAAE,MAAM,GAAG,kBAAkB,CAAC;gBAAC,MAAM;YACvE,KAAK,0FAA8B;gBAAE,MAAM,GAAG,mBAAmB,CAAC;gBAAC,MAAM;YACzE,KAAK,iGAAqC;gBAAE,MAAM,GAAG,2BAA2B,CAAC;gBAAC,MAAM;YACxF,KAAK,gFAAoB;gBAAE,MAAM,GAAG,aAAa,CAAC;gBAAC,MAAM;YACzD,KAAK,uFAA2B;gBAAE,MAAM,GAAG,qBAAqB,CAAC;gBAAC,MAAM;YACxE,KAAK,wFAA4B;gBAAE,MAAM,GAAG,sBAAsB,CAAC;gBAAC,MAAM;YAC1E,KAAK,+FAAmC;gBAAE,MAAM,GAAG,8BAA8B,CAAC;gBAAC,MAAM;SAC5F;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAdQ,aAAa;IADzB,oDAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAC3B,aAAa;AAAA;IAiBb,YAAY,SAAZ,YAAY;IAIrB,SAAS,CAAC,OAAO,EAAE,MAAM;QACrB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE;YACnE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBACrD,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SACjD;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,uBAAuB,CAAC,IAAI,EAAE,MAAM;QAChC,QAAQ,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YAC7B,KAAK,kFAAsB,CAAC;YAC5B,KAAK,yFAA6B,CAAC;YACnC,KAAK,0FAA8B,CAAC;YACpC,KAAK,iGAAqC;gBACtC,QAAQ,IAAI,CAAC,wBAAwB,EAAE;oBACnC,KAAK,yEAAe;wBAChB,MAAM,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;wBACpC,MAAM;oBACV,KAAK,uEAAa;wBACd,MAAM,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;wBAClC,MAAM;oBACV,KAAK,0EAAgB;wBACjB,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;wBAChC,MAAM;iBACb;gBACD,MAAM;YACV,KAAK,gFAAoB,CAAC;YAC1B,KAAK,uFAA2B,CAAC;YACjC,KAAK,wFAA4B,CAAC;YAClC,KAAK,+FAAmC;gBACpC,QAAQ,IAAI,CAAC,0BAA0B,EAAE;oBACrC,KAAK,0EAAgB;wBACjB,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;wBAChC,MAAM;oBACV,KAAK,uEAAa;wBACd,MAAM,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;wBAClC,MAAM;oBACV,KAAK,yEAAe;wBAChB,MAAM,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;wBACpC,MAAM;iBACb;SACR;IACL,CAAC;;AAlDQ,YAAY;IADxB,oDAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAC1B,YAAY;AAAA;IAsDZ,eAAe,SAAf,eAAe;IAIxB,SAAS,CAAC,IAAI,EAAE,MAAM;QAClB,IAAI,IAAI,IAAI,MAAM,EAAE;YAChB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;SACnC;QACD,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YACvB,OAAO,MAAM,CAAC;SACjB;QACD,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE;YAC3B,OAAO,MAAM,CAAC;SACjB;IACL,CAAC;;AAdQ,eAAe;IAD3B,oDAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAC7B,eAAe;AAAA;IAiBf,sBAAsB,SAAtB,sBAAsB;IAC/B,SAAS,CAAC,OAAO,EAAE,YAAY;QAC3B,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,OAAO,CAAC,QAAQ,EAAE;YAClB,IAAI,6DAAmB,KAAK,KAAK,EAAE;gBAC/B,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,8EAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;oBAC3E,MAAM,CAAC,MAAM,CAAC,GAAG,8EAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBAC9D;gBACD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,8EAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE;oBAC7E,MAAM,CAAC,OAAO,CAAC,GAAG,8EAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBAChE;aACJ;iBAAM;gBACH,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,8EAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;oBAC3E,MAAM,CAAC,OAAO,CAAC,GAAG,8EAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBAC/D;gBACD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,8EAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE;oBAC7E,MAAM,CAAC,MAAM,CAAC,GAAG,8EAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBAC/D;aACJ;YACD,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,8EAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE;gBACzE,MAAM,CAAC,KAAK,CAAC,GAAG,8EAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;aAC5D;YACD,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI,8EAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE;gBAC/E,MAAM,CAAC,QAAQ,CAAC,GAAG,8EAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aAClE;SACJ;QACD,IAAI,OAAO,CAAC,KAAK,IAAI,8EAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE;YAC3D,MAAM,CAAC,OAAO,CAAC,GAAG,8EAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACvD;QACD,IAAI,OAAO,CAAC,MAAM,IAAI,8EAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE;YAC7D,MAAM,CAAC,QAAQ,CAAC,GAAG,8EAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SACzD;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;YAChB,MAAM,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;SACtC;QACD,MAAM,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;QAChC,OAAO,MAAM,CAAC;IAClB,CAAC;;AArCQ,sBAAsB;IADlC,oDAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACpC,sBAAsB;AAAA;IA0CtB,iBAAiB,SAAjB,iBAAiB;IAC1B,SAAS,CAAC,OAAO,EAAE,OAAO;QACtB,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,OAAO,CAAC,IAAI,EAAE;YACd,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBAC3B,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;oBACnB,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;iBAClC;qBAAM;oBACH,gCAAgC;oBAChC,MAAM,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC;iBACpC;aACJ;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;gBAC7B,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;oBACrB,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;iBACnC;qBAAM;oBACH,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC;iBAC/B;aACJ;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;gBAChC,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;oBACxB,MAAM,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC;iBAC3C;qBAAM;oBACH,OAAO,MAAM,CAAC,iBAAiB,CAAC,CAAC;iBACpC;aACJ;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;gBACrC,IAAI,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE;oBAC7B,IAAI,uEAA0B,IAAI,uEAA0B,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;wBACvF,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,GAAG,uEAA0B,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,YAAY,GAAG,GAAG,CAAC;qBAC/G;yBAAM;wBACH,MAAM,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;qBACvD;iBACJ;qBAAM;oBACH,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC;iBAChC;aACJ;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC/B,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACvB,MAAM,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;iBACtD;qBAAM;oBACH,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC;iBAC9B;aACJ;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;gBACxB,MAAM,SAAS,GAAG,0EAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC7D,IAAI,SAAS,EAAE;oBACX,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;iBAC/B;qBAAM;oBACH,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;iBAC1B;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAtDQ,iBAAiB;IAD7B,oDAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAC/B,iBAAiB;AAAA;IAyDjB,kBAAkB,SAAlB,kBAAkB;IAK3B,SAAS,CAAC,aAAa,EAAE,YAAY;QACjC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,aAAa,IAAI,aAAa,CAAC,OAAO,EAAE;YACxC,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC/C,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC;YAC3D,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC;YAErD,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;aACjE;YACD,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;YAC9D,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC5B,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;gBACtD,CAAC,CAAC,CAAC;aACN;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO;QAE/B,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;YAC5B,MAAM,CAAC,aAAa,CAAC,GAAG,sEAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SAC1D;QACD,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI,EAAE;YAC9B,MAAM,CAAC,eAAe,CAAC,GAAG,0EAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;SAChE;QACD,IAAI,OAAO,CAAC,UAAU,EAAE;YACpB,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;SAC/B;aAAM,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE;YACjC,MAAM,CAAC,UAAU,CAAC,GAAG,kEAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SACnD;aAAM;YACH,MAAM,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;SACjC;IACL,CAAC;;AAxCQ,kBAAkB;IAD9B,oDAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAChC,kBAAkB;AAAA;IA2ClB,gBAAgB,SAAhB,gBAAgB;IAKzB,SAAS,CAAC,aAAa,EAAE,YAAY;QACjC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,aAAa,IAAI,aAAa,CAAC,OAAO,EAAE;YACxC,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC/C,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC;YAC3D,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC;YAErD,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;aACjE;YACD,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;YAC9D,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC5B,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;gBACtD,CAAC,CAAC,CAAC;aACN;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO;QAC/B,IAAI,OAAO,CAAC,WAAW,EAAE;YACrB,MAAM,SAAS,GAAG,8EAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/D,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,SAAS,EAAE;gBACvC,MAAM,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;aACrC;YACD,MAAM,QAAQ,GAAG,8EAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC7D,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,QAAQ,EAAE;gBACrC,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;aACnC;YACD,MAAM,UAAU,GAAG,8EAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACjE,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,UAAU,KAAK,EAAE,EAAE;gBAChD,MAAM,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC;aACvC;YACD,MAAM,WAAW,GAAG,8EAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACnE,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,IAAI,WAAW,KAAK,EAAE,EAAE;gBAClD,MAAM,CAAC,eAAe,CAAC,GAAG,WAAW,CAAC;aACzC;YACD,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IAAI,SAAS,KAAI,EAAE,IAAI,UAAU,KAAK,EAAE,EAAE;gBACtC,UAAU,GAAG,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC;aACrF;iBAAM,IAAI,SAAS,KAAK,EAAE,EAAE;gBACzB,UAAU,GAAG,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC;aACpD;iBAAM,IAAI,UAAU,KAAK,EAAE,EAAE;gBAC1B,UAAU,GAAG,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC;aACrD;YACD,IAAI,UAAU,IAAI,EAAE,EAAE;gBAClB,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE;oBACjB,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC;iBAC5D;qBAAM;oBACH,MAAM,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,UAAU,CAAC;iBAC9C;aACJ;YACD,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,QAAQ,KAAK,EAAE,IAAI,WAAW,KAAK,EAAE,EAAE;gBACvC,WAAW,GAAG,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC;aACtF;iBAAM,IAAI,QAAQ,KAAK,EAAE,EAAE;gBACxB,WAAW,GAAG,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC;aACpD;iBAAM,IAAI,WAAW,KAAK,EAAE,EAAE;gBAC3B,WAAW,GAAG,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC;aACvD;YACD,IAAI,WAAW,IAAI,EAAE,EAAE;gBACnB,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE;oBAClB,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC;iBAC/D;qBAAM;oBACH,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,GAAG,WAAW,CAAC;iBAChD;aACJ;SACJ;IACL,CAAC;;AA1EQ,gBAAgB;IAD5B,oDAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAC9B,gBAAgB;AAAA;IA6EhB,qBAAqB,SAArB,qBAAqB;IAC9B,SAAS,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI;QACvC,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,QAAQ,IAAI,EAAE;YACV,KAAK,EAAE;gBACH,IAAI,aAAa,CAAC,SAAS,EAAE;oBACzB,MAAM,CAAC,OAAO,CAAC,GAAG,8EAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;iBACjE;gBACD,IAAI,aAAa,CAAC,UAAU,EAAE;oBAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,8EAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;iBACnE;gBACD,MAAM;YACV,KAAK,KAAK;gBACN,IAAI,aAAa,CAAC,YAAY,EAAE;oBAC5B,MAAM,CAAC,OAAO,CAAC,GAAG,8EAAkB,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;iBACpE;gBACD,IAAI,aAAa,CAAC,aAAa,EAAE;oBAC7B,MAAM,CAAC,QAAQ,CAAC,GAAG,8EAAkB,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;iBACtE;gBACD,MAAM;SACb;QAGD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAzBQ,qBAAqB;IADjC,oDAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACnC,qBAAqB;AAAA;IA6BrB,iBAAiB,SAAjB,iBAAiB;IAC1B,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI;QACpC,OAAO;YACH,KAAK,EAAE,KAAK,CAAC,WAAW,GAAG,IAAI;YAC/B,MAAM,EAAE,MAAM,GAAG,IAAI;YACrB,YAAY,EAAE,SAAS,GAAG,IAAI;SACjC,CAAC;IACN,CAAC;;AAPQ,iBAAiB;IAD7B,oDAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAC/B,iBAAiB;AAAA;IAUjB,kBAAkB,SAAlB,kBAAkB;IAC3B,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW;QACtC,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE;YAC7G,IAAI,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;YACzD,IAAI,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE;gBAC3C,SAAS,CAAC,0BAA0B,GAAG,IAAI,CAAC;aAC/C;iBAAM;gBACH,SAAS,CAAC,0BAA0B,GAAG,KAAK,CAAC;aAChD;SACJ;aAAM;YACH,SAAS,CAAC,0BAA0B,GAAG,KAAK,CAAC;SAChD;QAED,OAAM;IACV,CAAC;;AAdQ,kBAAkB;IAD9B,oDAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAChC,kBAAkB;AAAA;IAiBlB,gBAAgB,SAAhB,gBAAgB;IAKzB,SAAS,CAAC,aAAa,EAAE,YAAY;QACjC,gHAAgH;QAEhH,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,aAAa,IAAI,aAAa,CAAC,OAAO,EAAE;YACxC,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC/C,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC;YAC3D,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAE1D,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;aAC1C;YACD,IAAI,aAAa,EAAE;gBACf,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;aAC1C;YACD,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC5B,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC/B,CAAC,CAAC,CAAC;aACN;SACJ;QACD,sHAAsH;QACtH,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,UAAU,CAAC,OAAO,EAAE,MAAM;QACtB,IAAI,OAAO,CAAC,IAAI,EAAE;YACd,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBAC3B,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;oBACnB,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;iBAClC;qBAAM;oBACH,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC;oBAC7B,oCAAoC;iBACvC;aACJ;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;gBAC7B,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;oBACrB,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;iBACnC;qBAAM;oBACH,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC;iBAC/B;aACJ;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;gBAChC,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;oBACxB,MAAM,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC;iBAC3C;qBAAM;oBACH,OAAO,MAAM,CAAC,iBAAiB,CAAC,CAAC;iBACpC;aACJ;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;gBACrC,IAAI,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE;oBAC7B,IAAI,uEAA0B,IAAI,uEAA0B,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;wBACvF,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,GAAG,uEAA0B,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,YAAY,GAAG,GAAG,CAAC;qBAC/G;yBAAM;wBACH,MAAM,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;qBACvD;iBACJ;qBAAM;oBACH,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC;iBAChC;aACJ;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC/B,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACvB,MAAM,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;iBACtD;qBAAM;oBACH,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC;iBAC9B;aACJ;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;gBACxB,MAAM,SAAS,GAAG,0EAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC7D,IAAI,SAAS,EAAE;oBACX,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;iBAC/B;qBAAM;oBACH,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;iBAC1B;aACJ;SACJ;QACD,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;YAC5B,MAAM,CAAC,aAAa,CAAC,GAAG,sEAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SAC1D;QACD,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI,EAAE;YAC9B,MAAM,CAAC,eAAe,CAAC,GAAG,0EAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;SAChE;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;;AAzFQ,gBAAgB;IAD5B,oDAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAC9B,gBAAgB;AAAA;IA6FhB,yBAAyB,SAAzB,yBAAyB;IAClC,SAAS,CAAC,OAAO,EAAE,YAAY;QAC3B,MAAM,QAAQ,GAAG;YACb,iBAAiB,EAAE,QAAQ;SAC9B,CAAC;QAEF,IAAI,OAAO,EAAE;YACT,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;YAClC,IAAI,GAAG,EAAE;gBACL,QAAQ,GAAG,EAAE;oBACT,KAAK,OAAO;wBACR,QAAQ,CAAC,iBAAiB,CAAC,GAAG,YAAY,CAAC;wBAC3C,MAAM;oBACV,KAAK,KAAK;wBACN,QAAQ,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAAC;wBACzC,MAAM;iBACb;aACJ;SAEJ;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;;AArBQ,yBAAyB;IADrC,oDAAI,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACvC,yBAAyB;AAAA;IAyBzB,uBAAuB,SAAvB,uBAAuB;IAChC,SAAS,CAAC,OAAO,EAAE,YAAY;QAE3B,MAAM,SAAS,GAAG;YACd,iBAAiB,EAAE,QAAQ;SAC9B,CAAC;QACF,IAAI,OAAO,EAAE;YACT,MAAM,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;YACtC,IAAI,GAAG,EAAE;gBACL,QAAQ,GAAG,EAAE;oBACT,KAAK,KAAK;wBACN,SAAS,CAAC,iBAAiB,CAAC,GAAG,YAAY,CAAC;wBAC5C,MAAM;oBACV,KAAK,QAAQ;wBACT,SAAS,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAAC;wBAC1C,MAAM;iBACb;aACJ;SACJ;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;;AApBQ,uBAAuB;IADnC,oDAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACrC,uBAAuB;AAAA;IAwBvB,uBAAuB,SAAvB,uBAAuB;IAChC,SAAS,CAAC,OAAO,EAAE,YAAY;QAC3B,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,uBAAuB;QACvB,QAAQ,OAAO,CAAC,eAAe,EAAE;YAC7B,KAAK,KAAK;gBACN,MAAM;YACV,KAAK,OAAO;gBACR,MAAM;YACV,KAAK,QAAQ;gBACT,MAAM;YACV,KAAK,MAAM;gBACP,MAAM;SACb;QAED,QAAQ,OAAO,CAAC,uBAAuB,EAAE;YACrC,KAAK,0EAAgB;gBACjB,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;gBAChC,MAAM;YACV,KAAK,uEAAa;gBACd,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;gBAC7B,MAAM;YACV,KAAK,yEAAe;gBAChB,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC;gBAC/B,MAAM;YACV,KAAK,2EAAiB;gBAClB,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;gBACjC,MAAM;SACb;QAED,QAAQ,OAAO,CAAC,qBAAqB,EAAE;YACnC,KAAK,yEAAe;gBAChB,MAAM,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;gBACpC,MAAM;YACV,KAAK,uEAAa;gBACd,MAAM,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;gBAClC,MAAM;YACV,KAAK,0EAAgB;gBACjB,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;gBAChC,MAAM;SACb;QACD,YAAY;QACZ,OAAO,MAAM,CAAC;IAClB,CAAC;;AA5CQ,uBAAuB;IADnC,oDAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACrC,uBAAuB;AAAA;IAiDvB,cAAc,SAAd,cAAc;IACvB,SAAS,CAAC,aAAa,EAAE,YAAY;QACjC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;QACzB,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;QAClC,IAAI,KAAK,EAAE;YACP,MAAM,UAAU,GAAG,8EAAkB,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,UAAU,EAAE;gBACZ,MAAM,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC;aAChC;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAZQ,cAAc;IAD1B,oDAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAC5B,cAAc;AAAA;IAgBd,0BAA0B,SAA1B,0BAA0B;IACnC,SAAS,CAAC,KAAK,EAAE,MAAM;QACnB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;IAC7D,CAAC;;AAHQ,0BAA0B;IADtC,oDAAI,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACxC,0BAA0B;AAAA;IAQ1B,wBAAwB,SAAxB,wBAAwB;IACjC,SAAS,CAAC,MAAM,EAAE,SAAS;QACvB,OAAO;YACH,KAAK,EAAE,MAAM,CAAC,eAAe;YAC7B,sCAAsC;YACtC,sCAAsC;YACtC,UAAU,EAAE,SAAS,CAAC,gBAAgB;YACtC,KAAK,EAAE,SAAS,CAAC,gBAAgB;YACjC,cAAc,EAAE,SAAS,CAAC,IAAI;SACjC,CAAC;IACN,CAAC;;AAVQ,wBAAwB;IADpC,oDAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACtC,wBAAwB;AAAA;IAaxB,sBAAsB,SAAtB,sBAAsB;IAC/B,SAAS,CAAC,MAAM,EAAE,SAAS;QACvB,OAAO;YACH,KAAK,EAAE,MAAM,CAAC,eAAe;YAC7B,sCAAsC;YACtC,sCAAsC;YACtC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI;YAC/D,cAAc,EAAE,SAAS,CAAC,IAAI;SACjC,CAAC;IACN,CAAC;;AATQ,sBAAsB;IADlC,oDAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACpC,sBAAsB;AAAA;IAYtB,wBAAwB,SAAxB,wBAAwB;IAEjC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW;QACpC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,EAAE;YACR,IAAI,MAAM,CAAC,MAAM,EAAE;gBACf,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;aAC3B;YACD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,WAAW,EAAE;gBAChD,IAAI,MAAM,CAAC,IAAI,KAAK,iBAAiB,IAAI,MAAM,CAAC,UAAU,EAAE;oBACxD,MAAM,MAAM,GAAG,6CAAM,CAAC,IAAI,CAAC,CAAC;oBAC5B,IAAI,MAAM,CAAC,iBAAiB,EAAE;wBAC1B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;qBAC3C;oBACD,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;iBAC9C;qBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,IAAI,MAAM,CAAC,gBAAgB,IAAI,IAAI,EAAE;oBAC3E,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;iBAC/D;qBAAM,IAAI,MAAM,CAAC,MAAM,IAAI,WAAW,EAAE;oBACrC,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC7C,IAAI,UAAU,EAAE;wBACZ,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;wBAClD,IAAI,EAAE,EAAE;4BACJ,IAAI,iFAAkC,EAAE;gCACpC,MAAM,IAAI,yFAA0C,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;6BACpE;iCAAM;gCACH,MAAM,IAAI,EAAE,CAAC,OAAO,CAAC;6BACxB;yBACJ;6BAAM;4BACH,MAAM,IAAI,IAAI,CAAC;yBAClB;qBACJ;yBAAM;wBACH,MAAM,IAAI,IAAI,CAAC;qBAClB;iBACJ;qBAAM,IAAI,MAAM,CAAC,KAAK,KAAK,sCAAsC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;oBAC5F,MAAM,IAAI,4FAA+B,CAAC,IAAI,CAAC,CAAC;iBACnD;qBAAM;oBACH,MAAM,IAAI,IAAI,CAAC;iBAClB;aACJ;YACD,IAAI,MAAM,CAAC,MAAM,EAAE;gBACf,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;aAC3B;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW;QAC9B,OAAO,wBAAwB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACxF,CAAC;;AAhDQ,wBAAwB;IADpC,oDAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;GACvC,wBAAwB;AAAA;IAoDxB,4BAA4B,SAA5B,4BAA4B;IACrC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW;QAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,EAAE;YACR,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,WAAW,EAAE;gBACtE,IAAI,MAAM,CAAC,MAAM,EAAE;oBACf,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;iBACrC;qBAAM,IAAI,CAAC,sCAAsC,EAAE,sCAAsC,EAAE,sCAAsC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;oBAC5J,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;wBAChB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;4BACrC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;4BAC5B,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC;4BACtB,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC;4BACpB,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;gCACX,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;6BAC5B;4BACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;gCAChC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;6BAC1B;4BACD,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;gCACb,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,MAAM,GAAG,EAAE,EAAE;oCAC3B,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oCAC/B,OAAO,IAAI,CAAC;iCACf;6BACJ;iCAAM;gCACH,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE;oCACX,IAAI,IAAI,IAAI,MAAM,EAAE;wCAChB,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;wCAC/B,OAAO,IAAI,CAAC;qCACf;iCACJ;qCAAM;oCACH,IAAI,IAAI,IAAI,MAAM,IAAI,MAAM,GAAG,EAAE,EAAE;wCAC/B,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;wCAC/B,OAAO,IAAI,CAAC;qCACf;iCACJ;6BACJ;4BACD,OAAO,KAAK,CAAC;wBACjB,CAAC,CAAC,CAAC;qBACN;iBACJ;qBAAM,IAAI,MAAM,CAAC,KAAK,IAAI,sCAAsC,EAAE;oBAC/D,MAAM,MAAM,GAAG,6CAAM,CAAC,IAAI,CAAC,CAAC;oBAC5B,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE;wBAClB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;4BACrC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;4BAC5B,IAAI,IAAI,CAAC;4BACT,IAAI,EAAE,CAAC;4BACP,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;gCACX,IAAI,GAAG,6CAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;6BAC5B;4BACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;gCAChC,EAAE,GAAG,6CAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;6BAC1B;4BACD,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;gCACxB,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;oCACpB,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;wCACnD,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;wCAC/B,OAAO,IAAI,CAAC;qCACf;iCACJ;qCAAM;oCACH,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;wCAC5B,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;wCAC/B,OAAO,IAAI,CAAC;qCACf;iCACJ;6BACJ;iCAAM;gCACH,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;oCACpB,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;wCACrB,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;wCAC/B,OAAO,IAAI,CAAC;qCACf;iCACJ;6BACJ;4BACD,OAAO,KAAK,CAAC;wBACjB,CAAC,CAAC,CAAC;qBACN;iBACJ;qBAAM;oBACH,MAAM,IAAI,GAAG,wBAAwB,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;oBACzE,IAAI,IAAI,EAAE;wBACN,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;qBACrC;iBACJ;aACJ;YACD,IAAI,CAAC,MAAM,EAAE;gBACT,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;aAC/B;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AA1FQ,4BAA4B;IADxC,oDAAI,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;GAC3C,4BAA4B;AAAA;IAgG5B,iBAAiB,SAAjB,iBAAiB;IAC1B,SAAS,CAAC,SAAS,EAAE,OAAO;QAGxB,QAAQ,OAAO,CAAC,UAAU,EAAE;YACxB,KAAK,2EAAe;gBAChB,SAAS,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;gBAC7B,MAAM;YACV,KAAK,iFAAqB;gBACtB,SAAS,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;gBACnC,MAAM;YACV,KAAK,+EAAmB;gBACpB,SAAS,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;gBACjC,MAAM;YACV;gBACI,SAAS,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;gBAC7B,MAAM;SACb;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;;AAnBQ,iBAAiB;IAD7B,oDAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAC/B,iBAAiB;AAAA;IAwBjB,eAAe,SAAf,eAAe;IACxB,SAAS,CAAC,OAAO,EAAE,aAAa;QAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACxB,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,aAAa,EAAE;gBACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACrC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBACxB,IAAI,CAAC,GAAG,CAAC,EAAE;wBACP,MAAM,IAAI,IAAI,CAAC;qBAClB;oBACD,MAAM,IAAI,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;iBAC5C;aACJ;YACD,OAAO,MAAM,CAAC;SACjB;aAAM;YACH,IAAI,aAAa,EAAE;gBACf,OAAO,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;aAC5C;SACJ;QACD,OAAO,EAAE,CAAC;IACd,CAAC;;AApBQ,eAAe;IAD3B,oDAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAC7B,eAAe;AAAA;IAwBf,iBAAiB,SAAjB,iBAAiB;IAC1B,SAAS,CAAC,OAAO,EAAE,iBAAiB;QAChC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACxB,MAAM,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,iBAAiB,EAAE;gBACnB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAChB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;wBACvB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;qBACnC;yBAAM;wBACH,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBAChB;gBACL,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;aACzB;YACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1B;aAAM;YACH,IAAI,iBAAiB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAClD,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC;aACrC;iBAAM;gBACH,OAAO,EAAE,GAAG,OAAO,CAAC;aACvB;SACJ;IACL,CAAC;;AAvBQ,iBAAiB;IAD7B,oDAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAC/B,iBAAiB;AAAA;IA2BjB,oBAAoB,SAApB,oBAAoB;IAC7B,SAAS,CAAC,OAAO,EAAE,aAAa;QAC5B,IAAI,aAAa,IAAI,OAAO,EAAE;YAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACxB,IAAI,MAAM,GAAG,EAAE,CAAC;gBAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACrC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBACxB,IAAI,CAAC,GAAG,CAAC,EAAE;wBACP,MAAM,IAAI,IAAI,CAAC;qBAClB;oBACD,MAAM,IAAI,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACjD;gBACD,OAAO,MAAM,CAAC;aACjB;iBAAM;gBACH,OAAO,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aACjD;SACJ;QACD,OAAO,EAAE,CAAC;IACd,CAAC;;AAlBQ,oBAAoB;IADhC,oDAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAClC,oBAAoB;AAAA;IAsBpB,aAAa,SAAb,aAAa;IACtB,SAAS,CAAC,aAAa,EAAE,YAAY;QACjC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;QACzB,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;QAC1B,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;QAC1C,IAAI,SAAS,EAAE;YACX,MAAM,UAAU,GAAG,8EAAkB,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,UAAU,EAAE;gBACZ,MAAM,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC;aAChC;SACJ;QACD,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;QAC5C,IAAI,UAAU,EAAE;YACZ,MAAM,WAAW,GAAG,8EAAkB,CAAC,UAAU,CAAC,CAAC;YACnD,IAAI,WAAW,EAAE;gBACb,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC;aAClC;SACJ;QAED,qBAAqB;QACrB,IAAI,aAAa,CAAC,WAAW,EAAE;YAC3B,IAAI,KAAK,GAAG,8EAAkB,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/D,IAAI,aAAa,CAAC,WAAW,CAAC,IAAI,IAAI,KAAK,EAAE;gBACzC,MAAM,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;aAClC;YACD,KAAK,GAAG,8EAAkB,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC1D,IAAI,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,KAAK,EAAE;gBACxC,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;aACjC;YACD,KAAK,GAAG,8EAAkB,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,aAAa,CAAC,WAAW,CAAC,KAAK,IAAI,KAAK,EAAE;gBAC1C,MAAM,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC;aACnC;YACD,KAAK,GAAG,8EAAkB,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7D,IAAI,aAAa,CAAC,WAAW,CAAC,MAAM,IAAI,KAAK,EAAE;gBAC3C,MAAM,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;aAClC;SACJ;QACD,YAAY;QAGZ,qBAAqB;QACrB,IAAI,aAAa,CAAC,UAAU,EAAE;YAC1B,IAAI,KAAK,GAAG,8EAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC9D,IAAI,aAAa,CAAC,UAAU,CAAC,IAAI,IAAI,KAAK,EAAE;gBACxC,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;aACjC;YACD,KAAK,GAAG,8EAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACzD,IAAI,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI,KAAK,EAAE;gBACvC,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;aAChC;YACD,KAAK,GAAG,8EAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,aAAa,CAAC,UAAU,CAAC,KAAK,IAAI,KAAK,EAAE;gBACzC,MAAM,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;aAClC;YACD,KAAK,GAAG,8EAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC5D,IAAI,aAAa,CAAC,UAAU,CAAC,MAAM,IAAI,KAAK,EAAE;gBAC1C,MAAM,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC;aACnC;SACJ;QACD,YAAY;QAEZ,uBAAuB;QACvB,QAAQ,aAAa,CAAC,aAAa,EAAE;YACjC,KAAK,yEAAe;gBAChB,MAAM,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;gBACpC,MAAM;YACV,KAAK,uEAAa;gBACd,MAAM,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;gBAClC,MAAM;YACV,KAAK,0EAAgB;gBACjB,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;gBAChC,MAAM;YACV,KAAK,2EAAiB;gBAClB,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;gBACjC,MAAM;SACb;QACD,YAAY;QAEZ,OAAO,MAAM,CAAC;IAClB,CAAC;;AAjFQ,aAAa;IADzB,oDAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAC3B,aAAa;AAAA;IAqFb,wBAAwB,SAAxB,wBAAwB;IACjC,SAAS,CAAC,OAAO;QACb,MAAM,MAAM,GAAG,IAAI,uEAAa,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,MAAM,CAAC;IAClB,CAAC;;AALQ,wBAAwB;IADpC,oDAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACtC,wBAAwB;AAAA;IASxB,mBAAmB,SAAnB,mBAAmB;IAK5B,SAAS,CAAC,aAAa,EAAE,YAAY;QACjC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,aAAa,IAAI,aAAa,CAAC,OAAO,EAAE;YACxC,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC/C,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC;YAC3D,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC;YAErD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;aAC1C;YACD,IAAI,aAAa,EAAE;gBACf,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;aAC1C;YACD,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAC5B,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC/B,CAAC,CAAC,CAAC;aACN;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,UAAU,CAAC,OAAO,EAAE,MAAM;QACtB,uBAAuB;QACvB,QAAQ,OAAO,CAAC,uBAAuB,EAAE;YACrC,KAAK,0EAAgB;gBACjB,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;gBAChC,MAAM;YACV,KAAK,uEAAa;gBACd,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;gBAC7B,MAAM;YACV,KAAK,yEAAe;gBAChB,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC;gBAC/B,MAAM;YACV,KAAK,2EAAiB;gBAClB,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;gBACjC,MAAM;SACb;QACD,IAAI,OAAO,CAAC,WAAW,KAAK,UAAU,IAAI,OAAO,CAAC,WAAW,KAAK,MAAM,IAAI,OAAO,CAAC,WAAW,KAAK,WAAW,EAAE;YAC7G,QAAQ,OAAO,CAAC,qBAAqB,EAAE;gBACnC,KAAK,yEAAe;oBAChB,MAAM,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC;oBAChC,MAAM;gBACV,KAAK,uEAAa;oBACd,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;oBAC9B,MAAM;gBACV,KAAK,0EAAgB;oBACjB,MAAM,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC;oBACjC,MAAM;aACb;SACJ;aAAM;YACH,QAAQ,OAAO,CAAC,qBAAqB,EAAE;gBACnC,KAAK,yEAAe;oBAChB,MAAM,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC;oBACjC,MAAM;gBACV,KAAK,uEAAa;oBACd,MAAM,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC;oBACpC,MAAM;gBACV,KAAK,0EAAgB;oBACjB,MAAM,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC;oBACpC,MAAM;aACb;SACJ;QACD,YAAY;IAChB,CAAC;;AArEQ,mBAAmB;IAD/B,oDAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACjC,mBAAmB;AAAA;IAyEnB,mBAAmB,SAAnB,mBAAmB;IAC5B,SAAS,CAAC,QAAQ,EAAE,KAAK;QACrB,IAAI,QAAQ,EAAE;YACV,OAAO,kCAAkC,CAAC;SAC7C;QACD,IAAI,KAAK,EAAE;YACP,OAAO,+BAA+B,CAAC;SAC1C;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;;AATQ,mBAAmB;IAD/B,oDAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACjC,mBAAmB;AAAA;IAanB,iBAAiB,SAAjB,iBAAiB;IAC1B,SAAS,CAAC,QAAQ,EAAE,KAAK;QACrB,IAAI,QAAQ,EAAE;YACV,OAAO,UAAU,CAAC;SACrB;QACD,IAAI,KAAK,EAAE;YACP,OAAO,EAAE,CAAC;SACb;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;;AATQ,iBAAiB;IAD7B,oDAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAC/B,iBAAiB;AAAA;IAajB,gBAAgB,SAAhB,gBAAgB;IACzB,SAAS,CAAC,aAAa,EAAE,YAAY;QACjC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,aAAa,IAAI,aAAa,CAAC,OAAO,EAAE;YACxC,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC;YAChD,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9C,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;aACrC;YACD,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC;YACtD,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACjB,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC/B,CAAC,CAAC,CAAC;aACN;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,UAAU,CAAC,OAAO,EAAE,MAAM;QACtB,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YAChD,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;gBACxB,MAAM,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC;aAC3C;iBAAM;gBACH,OAAO,MAAM,CAAC,iBAAiB,CAAC,CAAC;aACpC;SACJ;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;YAChB,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;SACrC;IACL,CAAC;;AA7BQ,gBAAgB;IAD5B,oDAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAC9B,gBAAgB;AAAA;IAiChB,sBAAsB,SAAtB,sBAAsB;IAC/B,SAAS,CAAC,KAAK;QACX,IAAI,MAAM,GAAQ,EAAE;QAEpB,IAAI,KAAK,IAAI,KAAK,CAAC,aAAa,EAAE;YAC9B,IAAI,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC;YAC/B,IAAI,IAAI,CAAC,OAAO,IAAI,+FAAyB,EAAE;gBAC3C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;gBACxB,IAAI,IAAI,CAAC,OAAO,EAAE;oBACd,MAAM,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC;oBACrC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wBACzB,MAAM,CAAC,uBAAuB,CAAC,IAAI,GAAG,GAAC,GAAG,CAAC;oBAC/C,CAAC,CAAC,CAAC;iBACN;gBACD,IAAI,IAAI,CAAC,IAAI,EAAE;oBACX,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC;oBAClC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wBACtB,MAAM,CAAC,oBAAoB,CAAC,IAAI,GAAG,GAAC,GAAG,CAAC;oBAC5C,CAAC,CAAC,CAAC;iBACN;aACJ;YACD,IAAI,IAAI,CAAC,OAAO,IAAI,+FAAyB,EAAE;gBAC3C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;aAC3B;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AA1BQ,sBAAsB;IADlC,oDAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACpC,sBAAsB;AAAA;IA6BtB,iBAAiB,SAAjB,iBAAiB;IAC1B,SAAS,CAAC,SAAc;QACpB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,SAAS,EAAE;YACX,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClD,IAAI,UAAU,GAAG,EAAE,CAAC;gBACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACvC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC1B,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;oBACtG,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;wBACtB,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;wBACvB,IAAI,OAAO,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE;4BACjC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;yBACjC;wBACD,IAAI,GAAG,IAAI,CAAC,EAAE;4BACV,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC;yBACtB;6BAAM;4BACH,IAAI,KAAK,GAAG,qEAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BACtC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;4BAChC,IAAI,IAAI,0EAAkB,CAAC,KAAK,CAAC,CAAC;yBACrC;qBACJ;yBAAM;wBACH,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC;qBACtB;oBACD,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE;wBAC5B,IAAI,IAAI,IAAI,CAAC;qBAChB;oBACD,UAAU,IAAI,IAAI,CAAC;iBACtB;gBACD,IAAI,UAAU,EAAE;oBACZ,MAAM,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;iBACrC;aACJ;iBAAK,IAAI,OAAO,SAAS,IAAI,QAAQ,EAAE;gBACpC,MAAM,IAAI,GAAG,SAAS,CAAC;gBACvB,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACtG,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;oBACtB,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;oBACvB,IAAI,OAAO,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE;wBACjC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;qBACjC;oBACD,IAAI,GAAG,IAAI,CAAC,EAAE;wBACV,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC;qBACtB;yBAAM;wBACH,IAAI,KAAK,GAAG,qEAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACtC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;wBAChC,IAAI,IAAI,0EAAkB,CAAC,KAAK,CAAC,CAAC;qBACrC;iBACJ;qBAAM;oBACH,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC;iBACtB;gBAED,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;aAC/B;SACJ;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;;AAxDQ,iBAAiB;IAD7B,oDAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;GAChC,iBAAiB;AAAA;IA4DjB,gBAAgB,SAAhB,gBAAgB;IACzB,SAAS,CAAC,KAAK;QACX,IAAI,MAAM,GAAQ,EAAE;QAEpB,IAAI,KAAK,EAAE;YACP,IAAI,KAAK,CAAC,OAAO,IAAI,+FAAyB,EAAE;gBAC5C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;gBACxB,IAAI,KAAK,CAAC,OAAO,EAAE;oBACf,MAAM,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC;oBACrC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wBAC1B,MAAM,CAAC,uBAAuB,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC;oBACjD,CAAC,CAAC,CAAC;iBACN;gBACD,IAAI,KAAK,CAAC,IAAI,EAAE;oBACZ,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC;oBAClC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wBACvB,MAAM,CAAC,oBAAoB,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC;oBAC9C,CAAC,CAAC,CAAC;iBACN;aACJ;YACD,IAAI,KAAK,CAAC,OAAO,IAAI,+FAAyB,EAAE;gBAC5C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;aAC3B;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAzBQ,gBAAgB;IAD5B,oDAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAC9B,gBAAgB;AAAA;IA4BhB,yBAAyB,SAAzB,yBAAyB;IAClC,SAAS,CAAC,IAAI;QACV,IAAI,MAAM,GAAQ,EAAE,CAAC,mHAAkH;QAEvI,IAAI,IAAI,EAAE;YACN,IAAI,IAAI,CAAC,KAAK,EAAE;gBACZ,QAAQ,IAAI,CAAC,aAAa,EAAE;oBACxB,KAAK,6FAAwB;wBACzB,MAAM,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC;wBACjC,MAAM;oBACV,KAAK,8FAAyB;wBAC1B,MAAM,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC;wBAChC,MAAM;oBACV,KAAK,+FAA0B;wBAC3B,MAAM,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;wBAC/B,MAAM;oBACV,KAAK,gGAA2B;wBAC5B,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;wBAC9B,MAAM;oBACV;wBACI,MAAM,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC;wBACjC,MAAM;iBACb;gBACD,IAAI,IAAI,CAAC,YAAY,EAAE;oBACnB,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;iBAC3C;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AA7BQ,yBAAyB;IADrC,oDAAI,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACvC,yBAAyB;AAAA;IAgCzB,oBAAoB,SAApB,oBAAoB;IAC7B,SAAS,CAAC,IAAI;QACV,IAAI,MAAM,GAAQ,EAAE,CAAC,mHAAkH;QAEvI,IAAI,IAAI,EAAE;YACN,MAAM,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;YAC9B,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;YAC1B,IAAI,IAAI,CAAC,GAAG,EAAE;gBACV,IAAI,IAAI,CAAC,OAAO,EAAE;oBACd,MAAM,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;oBACpC,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;iBACpD;qBAAM;oBACH,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;iBACjC;aACJ;YACD,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,IAAI,IAAI,CAAC,OAAO,EAAE;oBACd,MAAM,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;oBAC1C,MAAM,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;iBAC1D;qBAAM;oBACH,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;iBACvC;aACJ;YACD,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE;gBAClC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;gBAC3B,QAAQ,IAAI,CAAC,aAAa,EAAE;oBACxB,KAAK,6FAAwB;wBACzB,MAAM,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC;wBACpC,MAAM,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;wBAClC,MAAM;oBACV,KAAK,8FAAyB;wBAC1B,MAAM,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC;wBACjC,MAAM,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC;wBACjC,MAAM;oBACV,KAAK,+FAA0B;wBAC3B,MAAM,CAAC,gBAAgB,CAAC,GAAG,aAAa,CAAC;wBACzC,MAAM,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC;wBACjC,MAAM;oBACV,KAAK,gGAA2B;wBAC5B,MAAM,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC;wBAC5C,MAAM,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;wBAClC,MAAM;iBACb;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AA9CQ,oBAAoB;IADhC,oDAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAClC,oBAAoB;AAAA;IAkDpB,0BAA0B,SAA1B,0BAA0B;IACnC,SAAS,CAAC,IAAI,EAAE,YAAY;QACxB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC5B,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,GAAG,CAAC,MAAM,EAAE;oBACZ,MAAM,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;iBACjC;gBACD,IAAI,GAAG,CAAC,YAAY,EAAE;oBAClB,MAAM,IAAI,aAAa,GAAG,GAAG,CAAC,YAAY,CAAC;iBAC9C;gBACD,IAAI,GAAG,CAAC,cAAc,IAAI,IAAI,EAAE;oBAC5B,MAAM,IAAI,GAAG,GAAG,8EAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;oBACnD,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE;wBACf,MAAM,IAAI,GAAG;qBAChB;iBACJ;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAtBQ,0BAA0B;IADtC,oDAAI,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACxC,0BAA0B;AAAA;IAyB1B,YAAY,SAAZ,YAAY;IACrB,SAAS,CAAC,IAAI,EAAE,YAAY;QACxB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC5B,MAAM,IAAI,gBAAgB,GAAG,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC;YACrD,CAAC,CAAC;SACL;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,MAAM,IAAI,aAAa,CAAC;YACxB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;gBACxB,MAAM,IAAI,GAAG,GAAG,8EAAc,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;aACxD;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;;AAfQ,YAAY;IADxB,oDAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GAC1B,YAAY;AAAA;;;;;;;;;;;;;;;;;;;;;ACn0ElB,MAAM+2C,YAAY,GAAG,IAAI98C,GAAJ,EAArB;AAED,MAAO+wD,iBAAP,CAAwB;AASxB,MAAgBtD,mBAAhB,CAAmC;EAEpCiE,UAAU,CAAClU,YAAD,EAAa;IACpB,OAAO,IAAP;EACH;;EAEKvY,UAAU,CAACiG,IAAD,EAAYlG,EAAZ,EAAmB;IAAA;MAAqB,OAAO,EAAP;IAArB;EAAgC;;AAN9B;AASlC,IAAKwb,QAAZ;;AAAA,WAAYA,QAAZ,EAAoB;EAChBA;EACAA;AACH,CAHD,EAAYA,QAAQ,KAARA,QAAQ,MAApB;;;;;;;;;;;;;;;;;;;;;;;;;;ACpB2C;AACkD;AACP;AACX;AACN;AACI;AACkB;AAElC;AACH;AACP;AACY;AAEpD,MAAM,kBAAkB;IAsB3B,YAAoB,MAAM,EAAU,YAAY,EAAU,OAAoB;QAA1D,WAAM,GAAN,MAAM;QAAU,iBAAY,GAAZ,YAAY;QAAU,YAAO,GAAP,OAAO,CAAa;QArBtE,kBAAa,GAAG,IAAI,CAAC;QAIrB,qBAAgB,GAAG,KAAK,CAAC;QAIzB,iBAAY,GAAG,KAAK,CAAC;QAQrB,+BAA0B,GAAiB,IAAI,0CAAO,EAAE,CAAC;QACjE,wBAAmB,GAAoB,IAAI,CAAC,0BAA0B,CAAC;QAKnE,IAAI,MAAM,EAAE;YACR,sEAA0B,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,oEAAwB,CAAC,MAAM,CAAC,CAAC;SACtD;QACD,IAAI,YAAY,IAAI,YAAY,CAAC,WAAW,IAAI,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE;YAC9E,MAAM,IAAI,GAAG,qFAAgC,EAAE,CAAC;YAChD,IAAI,IAAI,IAAI,YAAY,CAAC,WAAW,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE;gBACzD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;aAC9B;iBAAM;gBACH,gHAA2B,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC9B,IAAI,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,EAAE;wBAC7B,IAAI,CAAC,UAAU,EAAE,CAAC;qBACrB;yBAAM;wBACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;wBAC7B,4GAA6C,EAAE,CAAC;qBACnD;gBACL,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC;IAzCD,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IA8BD,UAAU;QACN,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE;YAClD,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gBACxD,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;oBACpB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;oBACtB,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACxC,IAAI,CAAC,UAAU,GAAG,oEAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACxD,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE;wBACvB,MAAM,IAAI,GAAG,IAAI,+DAAmB,CAAC,6CAA6C,CAAC,CAAC;wBACpF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBAClC,4EAA0B,CAAC,IAAI,EAAE,IAAI,+DAAmB,CAAC,sBAAsB,CAAC,CAAC,CAAC;wBAClF,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;wBAC3B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;wBAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;wBACzB,4GAA6C,EAAE,CAAC;qBACnD;yBAAM;wBACH,MAAM,IAAI,GAAG,IAAI,+DAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;wBACzG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;wBACnD,yGAA2B,CAAC,IAAI,EAAE,IAAI,+DAAmB,CAAC,gBAAgB,CAAC,EACvE,sFAAoB,EAAE,yFAA0B,CAAC,CAAC;qBACzD;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,MAAM;QACF,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAC/B,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE;gBAClD,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;oBAC5D,IAAI,CAAC,EAAE;wBACH,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;wBACtB,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACxC,IAAI,CAAC,UAAU,GAAG,oEAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBACxD,MAAM,IAAI,GAAG,IAAI,+DAAmB,CAAC,6CAA6C,CAAC,CAAC;wBACpF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBAClC,4EAA0B,CAAC,IAAI,EAAE,IAAI,+DAAmB,CAAC,sBAAsB,CAAC,CAAC,CAAC;qBACrF;yBAAM;wBACH,0EAAwB,CAAC,IAAI,+DAAmB,CAAC,uBAAuB,CAAC,EACrE,IAAI,+DAAmB,CAAC,sBAAsB,CAAC,CAAC,CAAC;qBACxD;oBACD,OAAO,EAAE,CAAC;gBACd,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,OAAO,EAAE,CAAC;aACb;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK;QACD,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAC/B,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE;gBACxC,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI,CAAC;gBACjD,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE;oBAC5B,MAAM,OAAO,GAAG,sEAA0B,CAAC,IAAI,CAAC,UAAU,EAAE,oEAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;wBAC/F,iBAAiB,EAAE,KAAK;wBACxB,cAAc,EAAE,KAAK;qBACxB,CAAC,CAAC;oBACH,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;iBACnC;gBACD,IAAI,UAAU,EAAE;oBACZ,yGAA2B,CAAC,IAAI,+DAAmB,CAAC,gCAAgC,CAAC,EACjF,IAAI,+DAAmB,CAAC,aAAa,CAAC,EAAE,yFAAuB,EAAE,sFAAuB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wBAC/F,IAAI,CAAC,KAAK,qFAAoB,EAAE;4BAC5B,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gCACpB,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,CAAC;gCAC3C,OAAO,EAAE,CAAC;4BACd,CAAC,CAAC,CAAC;yBACN;6BAAM;4BACH,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,CAAC;4BAC3C,OAAO,EAAE,CAAC;yBACb;oBACL,CAAC,CAAC,CAAC;iBACV;qBAAM;oBACH,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,CAAC;oBAC3C,OAAO,EAAE,CAAC;iBACb;aACJ;iBAAM;gBACH,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,CAAC;gBAC3C,OAAO,EAAE,CAAC;aACb;QACL,CAAC,CAAC,CAAC;IACP,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5IoF;AACxC;AACD;AACM;AACQ;AACD;AACT;AACA;AAEO;AACF;AAGzD,WAAW;AACJ,MAAM,WAAW;IAcf,MAAM,CAAC,UAAU,CACtB,sBAA8C,EAC9C,WAAwB,EACxB,iBAA4C;QAE5C,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAIO,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG;QACnC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IACvD,CAAC;IACO,MAAM,CAAC,MAAM,CAAC,KAAK;QACzB,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC3B,MAAM,gBAAgB,GAA6B,EAAE,CAAC;QACtD,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,IAAI,WAAW,CAAC,SAAS,EAAE;gBACzB,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBACtC,IAAI;wBACF,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;qBACzB;oBAAC,MAAM,GAAE;gBACZ,CAAC,CAAC,CAAC;aACJ;YACD,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;gBAC1B,WAAW,CAAC,SAAS,GAAG,EAAE,CAAC;aAC5B;YACD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrB,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC5C,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;gBAExB,IAAI,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACxC,IAAI,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACvB,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE;4BACxB,IAAI,QAAQ,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;4BAChE,IAAI,QAAQ,IAAI,CAAC,EAAE;gCACjB,gBAAgB,CAAC,IAAI,CAAC;oCACpB,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;iCAC7C,CAAC,CAAC;6BACJ;4BACD,IAAI,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;4BAC1E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,CAAC;yBAC7D;qBACF;iBACF;gBACD,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtD,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClC,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACvD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;SACJ;IACL,CAAC;IACM,MAAM,CAAC,OAAO,CAAC,GAAG;QACvB,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IACM,MAAM,CAAC,iBAAiB;QAC7B,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YACnD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC;IACO,MAAM,CAAC,QAAQ,CAAC,YAAY;QAClC,IAAI,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,CAAC,EACtD,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAEjD,YAAY,CAAC,WAAW,GAAG,YAAY,CAAC;QACxC,+DAA+D;QAC/D,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAEnC,OAAO,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC;IACrC,CAAC;IACM,MAAM,CAAC,UAAU;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBACnD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;gBACrB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBACvB,KAAK,GAAG,+DAAY,CAAC,4DAAK,EAAE,KAAK,CAAC,CAAC;oBACnC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACpC,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;oBACpD,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC/B,WAAW,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC3C;gBACH,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,KAAY;QACjC,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,KAAK,GAAG,6EAAsB,EAAE,CAAC;SAClC;QACD,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC5D,IAAI,KAAK,CAAC,WAAW,EAAE;YACrB,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YACrE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YACpE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,2BAA2B,CAAC,CAAC;SACzF;aAAM;YACL,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YACrE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YACpE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;SACvE;QACD,IAAI,KAAK,CAAC,IAAI,EAAE;YACd,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBAC3B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;oBACnB,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;oBACzE,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;iBAC9C;qBAAM;oBACL,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;oBACpE,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC;iBAChD;aACF;YACD,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;gBAC7B,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;oBACrB,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;oBAC1E,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;iBAC/C;qBAAM;oBACL,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;oBACnE,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;iBAC3C;aACF;YACD,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;gBAChC,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE;oBACxB,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,wBAAwB,EAAE,WAAW,CAAC,CAAC;oBAClF,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC;iBACvD;qBAAM;oBACL,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;oBACxE,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;iBAChD;aACF;YACD,IAAI,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;gBACrC,IAAI,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE;oBAC7B,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC5F,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;iBACjE;qBAAM;oBACL,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAC,OAAO,CAAC,CAAC;oBACzE,8CAA8C;iBAC/C;aACF;YACD,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;gBAC/B,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACvB,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAC/D,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;iBACnG;qBAAM;oBACL,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAC,MAAM,CAAC,CAAC;oBACtE,4CAA4C;iBAC7C;aACF;SACF;aAAM;YACL,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;YACpE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;YAClE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;YACpE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;YACxE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;YAEnE,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;SAC1C;QAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACrD,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;YACvE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,uBAAuB,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;SAC5F;aAAM;YACL,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;YAC3E,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,uBAAuB,EAAE,mDAAmD,CAAC,CAAC;SAC1H;QACD,IAAI,KAAK,CAAC,MAAM,EAAE;YAChB,MAAM,SAAS,GAAG,yEAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACnD,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACtD,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;SACzE;aAAM;YACL,MAAM,SAAS,GAAG,WAAW,CAAC;YAC9B,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACtD,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;SACzE;QACD,IAAI,KAAK,CAAC,IAAI,EAAE;YACd,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAClD,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;SACrE;aAAM;YACL,MAAM,OAAO,GAAG,WAAW,CAAC;YAC5B,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAClD,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;SACrE;QACD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YACtB,IAAI,KAAK,CAAC,UAAU,EAAE;gBACpB,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,yEAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;aACxG;iBAAM;gBACL,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;aAC7E;SACF;QACD,IAAI,KAAK,CAAC,WAAW,EAAE;YACrB,IAAI,KAAK,CAAC,kBAAkB,EAAE;gBAC5B,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,yEAAkB,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;aAChH;iBAAM;aACN;SACF;QACD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YACtB,IAAI,KAAK,CAAC,UAAU,EAAE;gBACpB,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,yEAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;aAChG;iBAAM;gBACL,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;aACvE;SACF;QACD,IAAI,KAAK,CAAC,WAAW,EAAE;YACrB,IAAI,KAAK,CAAC,kBAAkB,EAAE;gBAC5B,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,yEAAkB,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;aACxG;iBAAM;gBACL,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;aACvE;SACF;QACD,IAAI,KAAK,CAAC,WAAW,EAAE;YACrB,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,yEAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;SACrG;aAAM;YACL,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;SAC3E;QACD,IAAI,KAAK,CAAC,eAAe,EAAE,KAAK,GAAG,CAAC,EAAE;YACpC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,8EAAkB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;SAC7G;aAAM;YACL,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;SACzE;QACD,IACE,KAAK,CAAC,sBAAsB,EAAE,KAAK,GAAG,CAAC;YACvC,KAAK,CAAC,uBAAuB,EAAE,KAAK,GAAG,CAAC;YACxC,KAAK,CAAC,mBAAmB,EAAE,KAAK,GAAG,CAAC;YACpC,KAAK,CAAC,oBAAoB,EAAE,KAAK,GAAG,CAAC,EACrC;YACA,IAAI,KAAK,CAAC,sBAAsB,EAAE;gBAChC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,8EAAkB,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;aAC7H;YACD,IAAI,KAAK,CAAC,uBAAuB,EAAE;gBACjC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,8BAA8B,EAAE,8EAAkB,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;aAC/H;YACD,IAAI,KAAK,CAAC,mBAAmB,EAAE;gBAC7B,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,0BAA0B,EAAE,8EAAkB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;aACvH;YACD,IAAI,KAAK,CAAC,oBAAoB,EAAE;gBAC9B,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,2BAA2B,EAAE,8EAAkB,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;aACzH;SACF;aAAM;YACL,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACjF,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YAClF,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YAC9E,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;SAChF;QACD,IAAI,KAAK,CAAC,WAAW,EAAE;YACrB,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,yEAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;SACrG;QACD,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC1B,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,EAAE,yEAAkB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;SAChH;QACD,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC1B,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,EAAE,yEAAkB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;SAChH;QACD,IAAI,KAAK,CAAC,WAAW,EAAE;YACrB,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,yEAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;SACrG;QACD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YACtB,IAAI,KAAK,CAAC,UAAU,EAAE;gBACpB,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,yEAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;aACxG;iBAAM;gBACL,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;aAC/E;SACF;QACD,IAAI,KAAK,CAAC,WAAW,EAAE;YACrB,IAAI,KAAK,CAAC,sBAAsB,EAAE;gBAChC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,yBAAyB,EAAE,yEAAkB,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBACxH,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,yEAAkB,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;aACpH;iBAAM;gBACL,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,yBAAyB,EAAE,WAAW,CAAC,CAAC;gBACnF,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;aAC/E;SACF;QACD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YACtB,IAAI,KAAK,CAAC,cAAc,EAAE;gBACxB,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,yBAAyB,EAAE,yEAAkB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;aACjH;iBAAM;gBACL,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,yBAAyB,EAAE,WAAW,CAAC,CAAC;aACpF;SACF;QACD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YACtB,IAAI,KAAK,CAAC,uBAAuB,EAAE;gBACjC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,mCAAmC,EAAE,yEAAkB,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;aACpI;iBAAM;gBACL,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,mCAAmC,EAAE,WAAW,CAAC,CAAC;aAC9F;SACF;QACD,IAAI,KAAK,CAAC,mBAAmB,EAAE;YAC7B,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,+BAA+B,EAAE,yEAAkB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;SAC5H;aAAM;YACL,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,+BAA+B,EAAE,WAAW,CAAC,CAAC;SAC1F;QAED,IAAI,KAAK,CAAC,yBAAyB,EAAE;YACnC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,+BAA+B,EAAE,yEAAkB,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;SAClI;QACD,IAAI,KAAK,CAAC,yBAAyB,EAAE;YACnC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,+BAA+B,EAAE,yEAAkB,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;SAClI;QACD,IAAI,KAAK,CAAC,iBAAiB,EAAE;YAC3B,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,uBAAuB,EAAE,yEAAkB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;SAClH;QACD,IAAI,KAAK,CAAC,sBAAsB,EAAE;YAChC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,yEAAkB,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;SAC7H;QACD,MAAM,KAAK,GAAG,yEAAkB,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACrE,IAAI,KAAK,EAAE;YACT,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;SACxF;aAAM;YACL,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,mCAAmC,EAAE,sBAAsB,CAAC,CAAC;SACzG;QACD,IAAI,KAAK,CAAC,aAAa,EAAE;YACvB,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,yEAAkB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;SACzG;QACD,IAAI,KAAK,CAAC,2BAA2B,EAAE;YACrC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,iCAAiC,EAAE,yEAAkB,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;SACtI;QACD,IAAI,KAAK,CAAC,2BAA2B,EAAE;YACrC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,iCAAiC,EAAE,yEAAkB,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;SACtI;QACD,IAAI,KAAK,CAAC,mBAAmB,EAAE;YAC7B,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,yBAAyB,EAAE,yEAAkB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;SACtH;QACD,IAAI,KAAK,CAAC,wBAAwB,EAAE;YAClC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,+BAA+B,EAAE,yEAAkB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;SACjI;QACD,MAAM,KAAK,GAAG,yEAAkB,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACvE,IAAI,KAAK,EAAE;YACT,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;SAC1F;aAAM;YACL,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,qCAAqC,EAAE,sBAAsB,CAAC,CAAC;SAC3G;QACD,IAAI,KAAK,CAAC,eAAe,EAAE;YACzB,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,yEAAkB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;SAC7G;QAED,IAAI,KAAK,CAAC,wBAAwB,EAAE;YAClC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CACrC,oGAA6C,EAC7C,6EAAsB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CACvD,CAAC;SACH;QACD,IAAI,KAAK,CAAC,cAAc,EAAE;YACxB,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,0FAAmC,EAAE,6EAAsB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;SAC5H;QACD,IAAI,KAAK,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,2FAAoC,EAAE,6EAAsB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;SAC9H;aAAM;YACL,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,2FAAoC,EAAE,YAAY,CAAC,CAAC;SAC7F;QACD,IAAI,KAAK,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,wFAAiC,EAAE,6EAAsB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;SACxH;QACD,IAAI,KAAK,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,yFAAkC,EAAE,6EAAsB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;SAC1H;QACD,IAAI,KAAK,CAAC,mBAAmB,EAAE;YAC7B,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,+FAAwC,EAAE,6EAAsB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;SACtI;QACD,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC1B,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,4FAAqC,EAAE,6EAAsB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;SAChI;QACD,IAAI,KAAK,CAAC,oBAAoB,EAAE;YAC9B,IAAI,CAAC,sBAAsB,CAAC,WAAW,CACrC,gGAAyC,EACzC,6EAAsB,CAAC,KAAK,CAAC,oBAAoB,CAAC,CACnD,CAAC;SACH;QACD,IAAI,KAAK,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,2FAAoC,EAAE,6EAAsB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;YAC7H,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,gGAAyC,EAAE,yEAAkB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;SAC/H;QACD,IAAI,KAAK,CAAC,cAAc,EAAE;YACxB,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,0FAAmC,EAAE,6EAAsB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;SAC5H;QACD,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC1B,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,4FAAqC,EAAE,6EAAsB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;SAChI;QACD,IAAI,KAAK,CAAC,wBAAwB,EAAE;YAClC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CACrC,oGAA6C,EAC7C,6EAAsB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CACvD,CAAC;YACF,IAAI,CAAC,sBAAsB,CAAC,WAAW,CACrC,yGAAkD,EAClD,yEAAkB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CACnD,CAAC;SACH;QACD,IAAI,KAAK,CAAC,sBAAsB,EAAE;YAChC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CACrC,kGAA2C,EAC3C,6EAAsB,CAAC,KAAK,CAAC,sBAAsB,CAAC,CACrD,CAAC;SACH;QACD,IAAI,KAAK,CAAC,uBAAuB,EAAE;YACjC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CACrC,mGAA4C,EAC5C,6EAAsB,CAAC,KAAK,CAAC,uBAAuB,CAAC,CACtD,CAAC;SACH;QACD,IAAI,KAAK,CAAC,wBAAwB,EAAE;YAClC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CACrC,oGAA6C,EAC7C,6EAAsB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CACvD,CAAC;SACH;QACD,IAAI,KAAK,CAAC,gCAAgC,EAAE;YAC1C,IAAI,CAAC,sBAAsB,CAAC,WAAW,CACrC,4GAAqD,EACrD,6EAAsB,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAC/D,CAAC;SACH;QACD,IAAI,KAAK,CAAC,8BAA8B,EAAE;YACxC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CACrC,0GAAmD,EACnD,6EAAsB,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAC7D,CAAC;SACH;QACD,IAAI,KAAK,CAAC,wBAAwB,EAAE;YAClC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CACrC,oGAA6C,EAC7C,6EAAsB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CACvD,CAAC;SACH;QACD,IAAI,KAAK,CAAC,4BAA4B,EAAE;YACtC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CACrC,wGAAiD,EACjD,6EAAsB,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAC3D,CAAC;SACH;QAED,IAAI,KAAK,CAAC,cAAc,EAAE;YACxB,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,0FAAmC,EAAE,6EAAsB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;SAC5H;QACD,IAAI,KAAK,CAAC,iBAAiB,EAAE;YAC3B,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,6FAAsC,EAAE,6EAAsB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACjI,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,kGAA2C,EAAE,yEAAkB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;SACnI;QACD,IAAI,KAAK,CAAC,kBAAkB,EAAE;YAC5B,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,8FAAuC,EAAE,6EAAsB,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;SACpI;QACD,IAAI,KAAK,CAAC,kBAAkB,EAAE;YAC5B,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,8FAAuC,EAAE,6EAAsB,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACnI,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,mGAA4C,EAAE,yEAAkB,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;SACrI;QACD,IAAI,KAAK,CAAC,wBAAwB,EAAE;YAClC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CACrC,oGAA6C,EAC7C,6EAAsB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CACvD,CAAC;YACF,IAAI,CAAC,sBAAsB,CAAC,WAAW,CACrC,yGAAkD,EAClD,yEAAkB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CACnD,CAAC;SACH;QACD,IAAI,KAAK,CAAC,sBAAsB,EAAE;YAChC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CACrC,kGAA2C,EAC3C,6EAAsB,CAAC,KAAK,CAAC,sBAAsB,CAAC,CACrD,CAAC;SACH;QACD,IAAI,KAAK,CAAC,mBAAmB,EAAE;YAC7B,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,+FAAwC,EAAE,6EAAsB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;SACtI;QACD,IAAI,KAAK,CAAC,kBAAkB,EAAE;YAC5B,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,8FAAuC,EAAE,6EAAsB,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;SACpI;QACD,IAAI,KAAK,CAAC,uBAAuB,EAAE;YACjC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CACrC,mGAA4C,EAC5C,6EAAsB,CAAC,KAAK,CAAC,uBAAuB,CAAC,CACtD,CAAC;YACF,IAAI,CAAC,sBAAsB,CAAC,WAAW,CACrC,wGAAiD,EACjD,yEAAkB,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAClD,CAAC;SACH;QACD,IAAI,KAAK,CAAC,cAAc,EAAE;YACxB,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,0FAAmC,EAAE,6EAAsB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;YAC3H,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,+FAAwC,EAAE,yEAAkB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;SAC7H;QACD,IAAI,KAAK,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,2FAAoC,EAAE,6EAAsB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;YAC7H,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,gGAAyC,EAAE,yEAAkB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;SAC/H;QACD,IAAI,KAAK,CAAC,sBAAsB,EAAE;YAChC,IAAI,KAAK,CAAC,WAAW,EAAE;gBACrB,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,0FAAmC,EAAE,6EAAsB,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;aACpI;YACD,IAAI,KAAK,CAAC,WAAW,EAAE;gBACrB,IAAI,CAAC,sBAAsB,CAAC,WAAW,CACrC,+FAAwC,EACxC,6EAAsB,CAAC,KAAK,CAAC,sBAAsB,CAAC,CACrD,CAAC;aACH;SACF;QACD,IAAI,KAAK,CAAC,cAAc,EAAE;YACxB,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBACtB,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,0FAAmC,EAAE,6EAAsB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;aAC5H;YACD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBACtB,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,+FAAwC,EAAE,6EAAsB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;aACjI;SACF;QACD,IAAI,KAAK,CAAC,mBAAmB,EAAE;YAC7B,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,+FAAwC,EAAE,6EAAsB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACrI,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,oGAA6C,EAAE,yEAAkB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;SACvI;QACD,IAAI,KAAK,CAAC,mBAAmB,EAAE;YAC7B,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,+FAAwC,EAAE,6EAAsB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACrI,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,oGAA6C,EAAE,yEAAkB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;SACvI;QACD,IAAI,KAAK,CAAC,yBAAyB,EAAE;YACnC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CACrC,qGAA8C,EAC9C,6EAAsB,CAAC,KAAK,CAAC,yBAAyB,CAAC,CACxD,CAAC;YACF,IAAI,CAAC,sBAAsB,CAAC,WAAW,CACrC,0GAAmD,EACnD,yEAAkB,CAAC,KAAK,CAAC,yBAAyB,CAAC,CACpD,CAAC;SACH;QACD,IAAI,KAAK,CAAC,YAAY,EAAE;YACtB,qFAAmC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBACjE,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IACM,MAAM,CAAC,sBAAsB;QAClC,IAAI,CAAC,WAAW,CAAC,wBAAwB,EAAE,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE;YAClE,IAAI,SAAS,EAAE;gBACb,sFAAgC,GAAG,SAAS,CAAC;gBAC7C,WAAW,CAAC,eAAe,EAAE,CAAC;aAC/B;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,eAAe;QAC5B,mFAA6B,GAAG,EAAE,CAAC;QACnC,8FAAwC,CAAC,CAAC,QAAQ,EAAE,EAAE;YACpD,mFAA6B,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,IAAI,sFAAgC,EAAE;YACpC,8FAAwC,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACpD,mFAA6B,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;YACzD,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAEM,MAAM,CAAC,kBAAkB;QAC9B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACtF,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,sFAAgC,EAAE;YACpC,8FAAwC,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACpD,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpF,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,wBAAwB,EAAE,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE;gBAClE,IAAI,SAAS,EAAE;oBACb,sFAAgC,GAAG,SAAS,CAAC;oBAC7C,WAAW,CAAC,eAAe,EAAE,CAAC;oBAC9B,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;wBAC7B,IAAI,QAAQ,CAAC,YAAY,EAAE;4BACzB,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;yBACnF;wBACD,IAAI,QAAQ,CAAC,IAAI,IAAI,8EAAmB,EAAE;4BACxC,IAAI;gCACF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;6BACrD;4BAAC,MAAM,GAAE;yBACX;wBACD,IAAI,QAAQ,CAAC,IAAI,IAAI,0EAAe,EAAE;4BACpC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;4BACrC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;yBAC/C;oBACH,CAAC,CAAC,CAAC;oBACH,kFAA6B,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;iBACxD;gBACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACxD,IAAI,CAAC,GAAG,CAAC,EAAE;wBACT,OAAO,CAAC,CAAC;qBACV;oBACD,IAAI,CAAC,GAAG,CAAC,EAAE;wBACT,OAAO,CAAC,CAAC,CAAC;qBACX;oBACD,OAAO,CAAC,CAAC;gBACX,CAAC,CAAC,CAAC;gBACH,IAAI,cAAc,GAAG,EAAE,CAAC;gBACxB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACpC,cAAc,CAAC,IAAI,CACjB,0DAA0D;wBACxD,IAAI;wBACJ,mFAAmF;wBACnF,IAAI;wBACJ,2BAA2B;wBAC3B,IAAI;wBACJ,MAAM,CACT,CAAC;gBACJ,CAAC,CAAC,CAAC;gBACH,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC7B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;iBAChC;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,KAAK;QAC3B,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC9C,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;YACxB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrB,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAAC,KAAK;QACpC,IAAI,KAAK,EAAE;YACT,IAAI,KAAK,CAAC,eAAe,EAAE;gBACzB,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBAC1D,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC;aACtF;YACD,IAAI,KAAK,CAAC,OAAO,EAAE;gBACjB,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAClD,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;aACnF;YACD,IAAI,KAAK,CAAC,iBAAiB,EAAE;gBAC3B,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBAC5D,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,iCAAiC,EAAE,OAAO,CAAC,CAAC;aACxF;YACD,IAAI,KAAK,CAAC,OAAO,EAAE;gBACjB,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAClD,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;aACnF;YACD,IAAI,KAAK,CAAC,KAAK,EAAE;gBACf,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAChD,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;aACjF;iBAAM;gBACL,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC;aACnF;YACD,IAAI,KAAK,CAAC,iBAAiB,EAAE;gBAC3B,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBAC5D,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,iCAAiC,EAAE,OAAO,CAAC,CAAC;aACxF;YACD,IAAI,KAAK,CAAC,YAAY,EAAE;gBACtB,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACvD,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;aACnF;YACD,0BAA0B;YAC1B,IAAI,KAAK,CAAC,kBAAkB,EAAE;gBAC5B,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBAC7D,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;aAC9E;YACD,IAAI,KAAK,CAAC,aAAa,EAAE;gBACvB,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBACxD,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;aACzE;YAED,IAAI,KAAK,CAAC,2BAA2B,EAAE;gBACrC,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBACtE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,iCAAiC,EAAE,OAAO,CAAC,CAAC;aACxF;YACD,IAAI,KAAK,CAAC,sBAAsB,EAAE;gBAChC,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBACjE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;aACnF;YAED,IAAI,KAAK,CAAC,wBAAwB,EAAE;gBAClC,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;gBACnE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC;aACrF;YACD,IAAI,KAAK,CAAC,mBAAmB,EAAE;gBAC7B,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBAC9D,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC;aAChF;YAED,IAAI,KAAK,CAAC,wBAAwB,EAAE;gBAClC,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;gBACnE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC;aACrF;YACD,IAAI,KAAK,CAAC,mBAAmB,EAAE;gBAC7B,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBAC9D,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC;aAChF;YAED,IAAI,KAAK,CAAC,wBAAwB,EAAE;gBAClC,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;gBACnE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC;aACrF;YACD,IAAI,KAAK,CAAC,mBAAmB,EAAE;gBAC7B,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBAC9D,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC;aAChF;YAED,IAAI,KAAK,CAAC,uBAAuB,EAAE;gBACjC,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBAClE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;aACzE;YACD,IAAI,KAAK,CAAC,kBAAkB,EAAE;gBAC5B,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBAC7D,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;aAC/E;YACD,IAAI,KAAK,CAAC,qBAAqB,EAAE;gBAC/B,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;gBAChE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;aACvE;YACD,IAAI,KAAK,CAAC,gBAAgB,EAAE;gBAC1B,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBAC3D,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;aAC7E;YACD,IAAI,KAAK,CAAC,iBAAiB,EAAE;gBAC3B,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBAC5D,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,mCAAmC,EAAE,OAAO,CAAC,CAAC;aAC1F;YACD,IAAI,KAAK,CAAC,sBAAsB,EAAE;gBAChC,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBACjE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,mCAAmC,EAAE,OAAO,CAAC,CAAC;aAC1F;YACD,IAAI,KAAK,CAAC,gCAAgC,EAAE;gBAC1C,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAC3E,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,uCAAuC,EAAE,OAAO,CAAC,CAAC;aAC9F;YACD,IAAI,KAAK,CAAC,0BAA0B,EAAE;gBACpC,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBACrE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,iCAAiC,EAAE,OAAO,CAAC,CAAC;aACxF;YACD,IAAI,KAAK,CAAC,4BAA4B,EAAE;gBACtC,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBACvE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,kCAAkC,EAAE,OAAO,CAAC,CAAC;aACzF;YACD,IAAI,KAAK,CAAC,uBAAuB,EAAE;gBACjC,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBAClE,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;aACpF;YACD,IAAI,KAAK,CAAC,oCAAoC,EAAE;gBAC9C,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBAC/E,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,2CAA2C,EAAE,OAAO,CAAC,CAAC;aAClG;YACD,IAAI,KAAK,CAAC,+BAA+B,EAAE;gBACzC,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBAC1E,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,sCAAsC,EAAE,OAAO,CAAC,CAAC;aAC7F;YACD,YAAY;YACZ,wBAAwB;YACxB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC9E,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3C,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC3B,MAAM,OAAO,GAAG,yEAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC/C,IAAI,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;oBAC7C,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;wBAC/B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;qBACnD;yBAAM;wBACL,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;qBACzC;oBACD,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;gBAClF,CAAC,CAAC,CAAC;aACJ;YACD,YAAY;SACb;IACH,CAAC;;AAlxBa,8BAAkB,GAAiB,IAAI,yCAAO,EAAE,CAAC;AAIjD,8BAAkB,GAAyB,IAAI,kDAAe,CAAC,IAAI,CAAC,CAAC;AAcpE,qBAAS,GAAG,EAAE,CAAC;AAChB,+BAAmB,GAAyB,IAAI,kDAAe,CAAM,IAAI,CAAC,CAAC;AAqF3E,2BAAe,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;AC7HO;AAEmC;AAGxE,MAAM,UAAU;IAEnB,MAAM,CAAC,uCAAuC,CAAC,EAAoB,EAAE,YAA0B;QAC3F,IAAI,MAAM,GAAS,IAAI,CAAC;QACxB,IAAI,EAAE,EAAE;YACJ,QAAQ,EAAE,CAAC,QAAQ,EAAE;gBACjB,KAAK,yEAAmB;oBACpB,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACpB,IAAI,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC3C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,SAAS;wBACjC,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC;wBACtC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAgB,EAAE,CAAgB,EAAE,EAAE;4BACnD,OAAO,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;wBACjE,CAAC,CAAC,CAAC;wBACH,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;4BACxB,IAAI,GAAG,IAAI,SAAS,CAAC,aAAa,EAAE;gCAChC,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gCACxC,OAAO,KAAK,CAAC;6BAChB;4BACD,OAAO,IAAI,CAAC;wBAChB,CAAC,CAAC,CAAC;qBACN;oBACD,MAAM;gBACV,KAAK,4EAAsB;oBACvB,QAAQ,EAAE,CAAC,WAAW,EAAE;wBACpB,KAAK,4EAAsB;4BACvB,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;4BACtC,MAAM;wBACV,KAAK,0EAAoB;4BACrB,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;4BACpC,MAAM;qBACb;oBACD,MAAM;gBACV,KAAK,yEAAmB;oBACpB,IAAI,EAAE,CAAC,OAAO,EAAE;wBACZ,MAAM,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;qBACjC;oBACD,MAAM;gBACV;oBACI,MAAM;aACb;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,uCAAuC,CAAC,KAAW,EAAE,YAAoC;QAC5F,IAAI,MAAM,GAAS,IAAI,CAAC;QACxB,IAAI,KAAK,EAAE;YACP,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,YAAY,EAAE;gBACd,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBAChC,IAAI,KAAK,KAAK,CAAC,EAAE;wBACb,QAAQ,GAAG,EAAE;4BACT,KAAK,8DAAmB;gCACpB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,CAAC;gCACjD,MAAM;4BACV,KAAK,kEAAuB;gCACxB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;gCAC/C,MAAM;4BACV,KAAK,iEAAsB;gCACvB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;gCAC/C,MAAM;4BACV,KAAK,+DAAoB;gCACrB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,CAAC;gCAC3C,MAAM;4BACV,KAAK,8DAAmB;gCACpB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;gCAC7C,MAAM;4BACV,KAAK,6DAAkB;gCACnB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC;gCACzC,MAAM;yBACb;qBACJ;gBACL,CAAC,CAAC,CAAC;aACN;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,uCAAuC,CAAC,GAAqB,EAAE,KAAW;QAC7E,IAAI,MAAM,GAAS,IAAI,CAAC;QACxB,IAAI,KAAK,EAAE;YACP,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,GAAG,EAAE;gBACL,IAAI,GAAG,CAAC,YAAY,EAAE;oBAClB,QAAQ,GAAG,CAAC,aAAa,EAAE;wBACvB,KAAK,kEAAuB;4BACxB,IAAI,OAAO,GAAG,CAAC,CAAC;4BAChB,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,kEAAuB,CAAC,CAAC;4BAC/D,IAAI,QAAQ,IAAI,CAAC,EAAE;gCACf,OAAO,GAAG,CAAC,CAAC;6BACf;4BACD,IAAI,aAAa,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,+DAAoB,CAAC,CAAC;4BAC/D,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,GAAG,CAAC,EAAE;gCACxD,IAAI,aAAa,GAAG,CAAC,EAAE;oCACnB,aAAa,GAAG,CAAC,CAAC;iCACrB;qCAAM;oCACH,aAAa,EAAE,CAAC;iCACnB;gCACD,OAAO,IAAI,aAAa,CAAC;6BAC5B;4BACD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;4BACzB,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,6DAAkB,CAAC,EAAE,MAAM,CAAC,CAAC;4BACpE,MAAM;wBACV,KAAK,iEAAsB;4BACvB,IAAI,MAAM,GAAG,CAAC,CAAC;4BACf,IAAI,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,iEAAsB,CAAC,CAAC;4BAC3D,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,EAAE;gCAC5C,IAAI,OAAO,KAAK,CAAC,EAAE;oCACf,MAAM,GAAG,CAAC,CAAC;iCACd;qCAAM,IAAI,OAAO,KAAK,CAAC,EAAE;oCACtB,MAAM,GAAG,CAAC,CAAC;iCACd;qCAAM;oCACH,MAAM,GAAG,CAAC,CAAC;iCACd;6BACJ;4BACD,IAAI,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,+DAAoB,CAAC,CAAC;4BAC9D,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,GAAG,CAAC,EAAE;gCACtD,IAAI,YAAY,GAAG,CAAC,EAAE;oCAClB,YAAY,GAAG,CAAC,CAAC;iCACpB;qCAAM;oCACH,YAAY,EAAE,CAAC;iCAClB;gCACD,MAAM,IAAI,YAAY,CAAC;6BAC1B;4BACD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;4BACxB,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,6DAAkB,CAAC,EAAE,MAAM,CAAC,CAAC;4BACpE,MAAM;wBACV,KAAK,+DAAoB;4BACrB,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,6DAAkB,CAAC,EAAE,MAAM,CAAC,CAAC;4BACpE,MAAM;wBACV,KAAK,8DAAmB;4BACpB,IAAI,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,6DAAkB,CAAC,CAAC;4BACvD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gCAC7B,IAAI,OAAO,GAAG,CAAC,EAAE;oCACb,OAAO,GAAG,CAAC,CAAC;iCACf;qCAAM,IAAI,OAAO,GAAG,CAAC,EAAE;oCACpB,OAAO,GAAG,CAAC,CAAC;iCACf;qCAAM;oCACH,OAAO,EAAE,CAAC;iCACb;6BACJ;iCAAM;gCACH,OAAO,GAAG,CAAC,CAAC;6BACf;4BACD,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;4BACnB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;4BAClB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;4BAClC,IAAI,SAAS,GAAG,CAAC,EAAE,EAAE,kBAAkB;gCACnC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC;6BAC3C;iCAAM,EAAE,qBAAqB;gCAC1B,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC;6BAC/C;4BACD,IAAI,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,8DAAmB,CAAC,CAAC;4BACzD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,GAAG,CAAC,EAAE;gCAC9C,IAAI,QAAQ,GAAG,EAAE,EAAE;oCACf,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;iCAC7C;qCAAM;oCACH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;iCACzD;6BACJ;4BACD,MAAM;qBACb;iBACJ;gBACD,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,IAAI,GAAG,CAAC,WAAW,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;oBACvF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;iBACtD;aACJ;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,IAAY;QAClC,OAAO,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;IAEO,MAAM,CAAC,MAAM,CAAC,MAAc,EAAE,IAAU;QAC5C,IAAI,IAAI,EAAE;YACN,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;gBAC5B,IAAI,MAAM,GAAG,CAAC,EAAE;oBACZ,MAAM,GAAG,CAAC,CAAC;iBACd;qBAAM,IAAI,MAAM,GAAG,EAAE,EAAE;oBACpB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC9B,QAAQ,KAAK,EAAE;wBACX,KAAK,CAAC,EAAE,UAAU;4BACd,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;4BAChC,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gCAC7B,IAAI,MAAM,GAAG,EAAE,EAAE;oCACb,MAAM,GAAG,EAAE,CAAC;iCACf;6BACJ;iCAAM,IAAI,MAAM,GAAG,EAAE,EAAE;gCACpB,MAAM,GAAG,EAAE,CAAC;6BACf;4BACD,MAAM;wBACV,KAAK,CAAC,CAAC,CAAC,QAAQ;wBAChB,KAAK,CAAC,CAAC,CAAC,OAAO;wBACf,KAAK,CAAC,CAAC,CAAC,YAAY;wBACpB,KAAK,EAAE,EAAE,WAAW;4BAChB,IAAI,MAAM,GAAG,EAAE,EAAE;gCACb,MAAM,GAAG,EAAE,CAAC;6BACf;4BACD,MAAM;wBACV;4BACI,IAAI,MAAM,GAAG,EAAE,EAAE;gCACb,MAAM,GAAG,EAAE,CAAC;6BACf;4BACD,MAAM;qBACb;iBACJ;aACJ;iBAAM;gBACH,MAAM,GAAG,CAAC,CAAC;aACd;YACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SACxB;IACL,CAAC;;;;;;;;;;;;;;;;;ACxNL,WAAW;AACJ,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;ACId;IAKV,kBAAkB,SAAlB,kBAAkB;;QAEjB,gBAAW,GAAG,IAAI,uDAAY,EAAO;IA0BnD,CAAC;IAvBgD,UAAU,CAAC,GAAG;QACvD,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;IAG6C,WAAW,CAAC,GAAG;QACzD,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IAGwC,MAAM,CAAC,GAAG;QAC/C,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;QACnC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAChC;IACL,CAAC;;;uBA1BA,sDAAW,SAAC,gBAAgB;0BAC5B,iDAAM;yBAGN,uDAAY,SAAC,UAAU,EAAE,CAAC,QAAQ,CAAC;0BAOnC,uDAAY,SAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;qBAOpC,uDAAY,SAAC,MAAM,EAAE,CAAC,QAAQ,CAAC;;AAnBvB,kBAAkB;IAH9B,wDAAS,CAAC;QACP,QAAQ,EAAE,aAAa;KAC1B,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;ACZM;AAIrC,WAAW;AACJ,MAAM,cAAc;IAEhB,MAAM,CAAC,UAAU,CAAC,OAAO;QAC5B,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC;IACvC,CAAC;IAWM,MAAM,CAAC,cAAc,CAAC,QAAQ;QACjC,MAAM,EAAE,GAAG,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;QACpE,IAAI,EAAE,EAAE;YACJ,OAAO,EAAE,CAAC,OAAO,CAAC;SACrB;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,yBAAyB,CAAC,MAAM;QAC1C,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC5B,QAAQ,MAAM,EAAE;gBACZ,KAAK,QAAQ;oBACT,OAAO,eAAe,CAAC;gBAC3B,KAAK,SAAS;oBACV,OAAO,gBAAgB,CAAC;gBAC5B,KAAK,QAAQ;oBACT,OAAO,eAAe,CAAC;gBAC3B,KAAK,MAAM;oBACP,OAAO,iBAAiB,CAAC;gBAC7B,KAAK,QAAQ;oBACT,OAAO,eAAe,CAAC;aAC9B;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,IAAY,EAAE,GAAQ;QAClD,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC;QAC3B,IAAI,OAAO,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,EAAE;YACzC,QAAQ,IAAI,EAAE;gBACV,KAAK,eAAe;oBAChB,OAAO,OAAO,KAAK,QAAQ,CAAC;gBAChC,KAAK,gBAAgB;oBACjB,OAAO,OAAO,KAAK,SAAS,CAAC;gBACjC,KAAK,cAAc,CAAC;gBACpB,KAAK,eAAe;oBAChB,OAAO,OAAO,KAAK,QAAQ,CAAC;gBAChC,KAAK,iBAAiB;oBAClB,OAAO,GAAG,YAAY,IAAI,CAAC;gBAC/B,KAAK,eAAe;oBAChB,OAAO,OAAO,KAAK,QAAQ,CAAC;gBAChC,KAAK,MAAM;oBACP,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aACjC;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ;QACvC,IAAI,MAAM,IAAI,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3E,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC7E,IAAI,IAAI,EAAE;gBACN,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE;oBAC7D,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBACpF;gBACD,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC;oBACjC,QAAQ,EAAE,MAAM,CAAC,GAAG;oBACpB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACrC,MAAM,EAAE,QAAQ,CAAC,EAAE;iBACtB,CAAC,CAAC,SAAS,EAAE,CAAC;aAClB;SACJ;IACL,CAAC;IACM,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM;QACnC,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACjD,IAAI,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC;YACpE,IAAI,QAAQ,EAAE;gBACV,OAAO,MAAM,CAAC;aACjB;SACJ;QACD,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAChD,IAAI,QAAQ,EAAE;oBACV,OAAO,QAAQ,CAAC;iBACnB;aACJ;SACJ;IACL,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO;IAE5C,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,MAAM;QAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gBACvB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;aAC7B;YACD,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBAC1B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;aAChC;YACD,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBAC1B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;aAChC;YACD,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBACzB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;aAC/B;YAED,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACnD,cAAc,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAElD,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC/C,IAAI,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,gBAAgB,EAAE;gBACrD,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE;oBACtE,IAAI,SAAS,EAAE;wBACX,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;wBACvD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;4BACtB,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gCACvB,IAAI,IAAI,CAAC,KAAK,EAAE;oCACZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iCACvC;gCACD,MAAM,KAAK,GAAG,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;gCACrG,IAAI,KAAK,EAAE;oCACP,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;iCAC5B;gCACD,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;4BACjF,CAAC,CAAC,CAAC;yBACN;qBACJ;oBACD,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC;aACjB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACO,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,UAAU;QACvD,IAAI,UAAU,EAAE;YACZ,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvD,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;aACvF;YACD,IAAI,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzD,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBAClC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;wBACV,IAAI,CAAC,EAAE,GAAG,oDAAS,EAAE,CAAC;qBACzB;gBACL,CAAC,CAAC;gBACF,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;oBAChD,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;iBACtD;gBACD,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;aAC/E;YACD,IAAI,UAAU,CAAC,WAAW,IAAI,WAAW,IAAI,UAAU,CAAC,WAAW,IAAI,uBAAuB,EAAE;gBAC5F,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;oBAC/C,cAAc,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;iBACrD;gBACD,cAAc,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACjE;SACJ;IACL,CAAC;;AArKc,kCAAmB,GAAwB,IAAI,CAAC;AAIxD,wBAAS,GAAG;IACf,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE;IAC7C,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE;IAC9C,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE;IAChD,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,EAAE;IAClD,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE;IAChD,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE;IAC/C,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE;CACxC,CAAC;AA0JF,2DAA2D;AAC3D,wEAAwE;AAE1D,oCAAqB,GAAG,EAAE,CAAC;AAC3B,8BAAe,GAAG,IAAI,CAAC;AACvB,iCAAkB,GAAG,IAAI,CAAC;AAC1B,iCAAkB,GAAG,IAAI,CAAC;AAC1B,gCAAiB,GAAG,IAAI,CAAC;AAEpC,MAAM,cAAc;;;;;;;;;;;;;;;;;;ACrLgB;AAEpC,MAAM,YAAY;IAMrB,YAAY,IAAI;QAHR,cAAS,GAAG,IAAI,yCAAO,EAAgB,CAAC;QACxC,YAAO,GAAG,IAAI,yCAAO,EAAc,CAAC;QAIxC,MAAM,cAAc,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAElC,IAAI,cAAc,EAAE;YAChB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YAEzF,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,eAAe,CACxC,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CACxD,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,EAAE;gBAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,EAAE;gBAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC,CAAC;SAEL;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;SAC/C;IACL,CAAC;IAED,WAAW,CAAC,IAAI;QACZ,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IACvC,CAAC;IAED,SAAS;QACL,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;SAC3B;IACL,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChDsD;AACX;AACgG;AAC7D;AAChB;AACN;AACJ;AACa;AACP;AAChB;AACI;AACQ;AACH;AAEjD,MAAM,mBAAmB;IAarB,MAAM,CAAC,IAAI;QACd,mBAAmB,CAAC,sBAAsB,EAAE,CAAC;QAC7C,mBAAmB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC5C,IAAI,CAAC,IAAI,CAAC,CAAC,qBAAqB,EAAE;gBAC9B,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE;oBACtC,MAAM,IAAI,GAAG,qFAAgC,EAAE,CAAC;oBAChD,IAAI,IAAI,EAAE;wBACN,mBAAmB,CAAC,eAAe,GAAG,IAAI,8EAAqB,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE;4BAChH,MAAM,IAAI,GAAG,+DAAW,CAAC,mFAAmB,EAAE,CAAC,CAAC,CAAC;4BACjD,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,iEAAqB,EAAE;gCAC9F,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oCACpB,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gCAC1C,CAAC,CAAC,CAAC;6BACN;wBACL,CAAC,CAAC,CAAC;qBACN;iBACJ;aACJ;iBAAM,IAAI,mBAAmB,CAAC,eAAe,EAAE;gBAC5C,mBAAmB,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;gBAClD,mBAAmB,CAAC,eAAe,GAAG,IAAI,CAAC;aAC9C;QACL,CAAC,CAAC,CAAC;QACH,mBAAmB,CAAC,+BAA+B,EAAE,CAAC;QACtD,8FAAoC,CAAC,GAAG,EAAE;YACtC,mBAAmB,CAAC,WAAW,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,wFAAmC,CAAC,CAAC,CAAC,EAAE;YACpC,mBAAmB,CAAC,WAAW,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,iFAA4B,CAAC,CAAC,CAAC,EAAE;YAC7B,mBAAmB,CAAC,+BAA+B,EAAE,CAAC;YACtD,mBAAmB,CAAC,sBAAsB,EAAE,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,MAAM,IAAI,MAAM,KAAK,iEAAqB,EAAE;YAC5C,mBAAmB,CAAC,0BAA0B,CAAC;gBAC3C,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE;oBACL,aAAa,EAAE,iEAAqB;oBACpC,WAAW,EAAE,MAAM;iBACtB;aACJ,CAAC,CAAC;YACH,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtC,mBAAmB,CAAC,SAAS,EAAE,CAAC;YACpC,CAAC,EAAE,IAAI,CAAC,CAAC;SACZ;IACL,CAAC;IAEO,MAAM,CAAC,yBAAyB,CAAC,OAAe;QACpD,IAAI,OAAO,EAAE;YACT,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;gBACvB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC5B,QAAQ,MAAM,CAAC,IAAI,EAAE;oBACjB,KAAK,gBAAgB;wBACjB,mBAAmB,CAAC,sBAAsB,EAAE,CAAC;wBAC7C,yEAAuB,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;wBAC9D,MAAM;oBACV,KAAK,iBAAiB;wBAClB,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,KAAK,iEAAqB,EAAE;4BACzD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gCACnB,mBAAmB,CAAC,YAAY,EAAE,CAAC;4BACvC,CAAC,EAAE,EAAE,CAAC,CAAC;yBACV;wBACD,MAAM;oBACV,KAAK,gBAAgB;wBACjB,IAAI,IAAI,EAAE;4BACN,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;yBACjD;wBACD,MAAM;oBACV,KAAK,eAAe;wBAChB,IAAI,mBAAmB,CAAC,kBAAkB,EAAE;4BACxC,YAAY,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;yBACxD;wBACD,mBAAmB,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAChD,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,KAAK,iEAAqB,EAAE;4BAC5E,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,iEAAqB,CAAC,EAAE;gCAC7D,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gCACvD,mBAAmB,CAAC,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;6BACjE;yBACJ;wBACD,MAAM;oBACV,KAAK,eAAe;wBAChB,mBAAmB,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAChD,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,iEAAqB,EAAE;4BACzC,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAC3C,IAAI,mBAAmB,CAAC,iBAAiB,EAAE;gCACvC,mBAAmB,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;gCACpD,mBAAmB,CAAC,iBAAiB,GAAG,IAAI,CAAC;6BAChD;yBACJ;wBACD,MAAM;oBACV,KAAK,oBAAoB;wBACrB,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,iEAAqB,EAAE;4BACpD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gCACnB,mBAAmB,CAAC,0BAA0B,CAAC;oCAC3C,IAAI,EAAE,mBAAmB;oCACzB,OAAO,EAAE,IAAI,CAAC,aAAa;iCAC9B,CAAC,CAAC;4BACP,CAAC,EAAE,EAAE,CAAC,CAAC;yBACV;wBACD,MAAM;oBACV,KAAK,mBAAmB;wBACpB,IAAI,IAAI,KAAK,iEAAqB,EAAE;4BAChC,IAAI,mBAAmB,CAAC,kBAAkB,EAAE;gCACxC,YAAY,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;6BACxD;yBACJ;wBACD,MAAM;iBACb;aACJ;SACJ;IACL,CAAC;IAEO,MAAM,CAAC,sBAAsB;QACjC,IAAI,wFAAsC,EAAE,EAAE;YAC1C,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAC/D,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,+DAAW,CAAC,2FAAqB,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC;SAChG;aAAM;YACH,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,2FAAqB,EAAE,CAAC,CAAC;SACvE;IACL,CAAC;IAEO,MAAM,CAAC,WAAW;QACtB,IAAI,mBAAmB,CAAC,oBAAoB,EAAE;YAC1C,mBAAmB,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;YACvD,mBAAmB,CAAC,oBAAoB,GAAG,IAAI,CAAC;SACnD;QACD,IAAI,mBAAmB,CAAC,eAAe,EAAE;YACrC,mBAAmB,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;YAClD,mBAAmB,CAAC,eAAe,GAAG,IAAI,CAAC;SAC9C;QACD,IAAI,mBAAmB,CAAC,iBAAiB,EAAE;YACvC,mBAAmB,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;YACpD,mBAAmB,CAAC,iBAAiB,GAAG,IAAI,CAAC;SAChD;QACD,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,EAAE,IAAI,EAAE,KAAK,iEAAqB,EAAE;YACpC,mBAAmB,CAAC,SAAS,EAAE,CAAC;SACnC;IACL,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,QAA+B;QACxD,IAAI,CAAC,QAAQ,EAAE;YACX,QAAQ,GAAG,IAAI,2FAAqB,EAAE,CAAC;SAC1C;QACD,YAAY,CAAC,OAAO,CAAC,uBAAuB,EAAE,6DAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnE,mBAAmB,CAAC,0BAA0B,CAAC;YAC3C,IAAI,EAAE,gBAAgB;SACzB,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,gBAAgB;QAC1B,mBAAmB,CAAC,0BAA0B,CAAC;YAC3C,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE;gBACL,gBAAgB,EAAE,iEAAqB;aAC1C;SACJ,CAAC,CAAC;IACP,CAAC;IAEO,MAAM,CAAC,YAAY;QACvB,MAAM,GAAG,GAAG,IAAI,+EAAe,EAAE,CAAC;QAClC,GAAG,CAAC,QAAQ,GAAG,iEAAqB,CAAC;QACrC,GAAG,CAAC,GAAG,GAAG,0FAAmC,EAAE,CAAC;QAChD,mBAAmB,CAAC,0BAA0B,CAAC;YAC3C,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,GAAG;SACf,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,aAAa;QACvC,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,CAAC,WAAW,EAAE;YACd,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,iEAAqB,CAAC,CAAC;YAC3D,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,iEAAqB,CAAC,EAAE;gBACtD,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,iEAAqB,CAAC,CAAC;aAC/D;YACD,IAAI,GAAG,IAAI,CAAC;YACZ,mBAAmB,CAAC,uBAAuB,CAAC,iEAAqB,CAAC,CAAC;SACtE;aAAM;YACH,IAAI,GAAG,WAAW,KAAK,iEAAqB,CAAC;SAChD;QACD,IAAI,IAAI,EAAE;YACN,mBAAmB,CAAC,0BAA0B,CAAC;gBAC3C,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE;oBACL,eAAe,EAAE,aAAa;oBAC9B,WAAW,EAAE,iEAAqB;iBACrC;aACJ,CAAC,CAAC;SACN;IACL,CAAC;IAEM,MAAM,CAAC,SAAS;QACnB,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACvC,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,mBAAmB,CAAC,iBAAiB,EAAE;YACvC,mBAAmB,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;YACpD,mBAAmB,CAAC,iBAAiB,GAAG,IAAI,CAAC;SAChD;QACD,mBAAmB,CAAC,0BAA0B,CAAC;YAC3C,IAAI,EAAE,eAAe;SACxB,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,QAAgB;QACvC,IAAI,QAAQ,KAAK,iEAAqB,EAAE;YACpC,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC9C;aAAM;YACH,mBAAmB,CAAC,0BAA0B,CAAC;gBAC3C,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,QAAQ;aACpB,CAAC,CAAC;SACN;IACL,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,OAA4B;QACvD,IAAI,OAAO,EAAE;YACT,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE;gBACnC,mBAAmB,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;aAC1D;iBAAM;gBACH,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBACnD,IAAI,MAAM,EAAE;oBACR,MAAM,SAAS,GAAG,iFAAmC,CAAkB,uEAAe,CAAC,CAAC;oBACxF,SAAS,CAAC,gBAAgB,CAAC,eAAe,GAAG,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;iBAC7E;aACJ;SACJ;IACL,CAAC;IAEO,MAAM,CAAC,yBAAyB,CAAC,OAA4B;QACjE,QAAQ,OAAO,CAAC,IAAI,EAAE;YAClB,KAAK,eAAe,CAAC;YACrB,KAAK,kBAAkB;gBACnB,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7C,MAAM;YACV,KAAK,UAAU;gBACX,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;oBACnB,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACvD,CAAC,EAAE,GAAG,CAAC,CAAC;gBACR,MAAM;SACb;IACL,CAAC;IAEO,MAAM,CAAC,+BAA+B;QAC1C,IAAI,mBAAmB,CAAC,oBAAoB,EAAE;YAC1C,mBAAmB,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;YACvD,mBAAmB,CAAC,oBAAoB,GAAG,IAAI,CAAC;SACnD;QACD,MAAM,IAAI,GAAG,qFAAgC,EAAE,CAAC;QAChD,IAAI,IAAI,EAAE;YACN,mBAAmB,CAAC,oBAAoB,GAAG,IAAI,8EAAqB,CAAC,uBAAuB,GAAG,IAAI,CAAC,GAAG,EAAE,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE;gBACnI,mBAAmB,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAEO,MAAM,CAAC,0BAA0B,CAAC,OAAO;QAC7C,MAAM,IAAI,GAAG,qFAAgC,EAAE,CAAC;QAChD,IAAI,IAAI,EAAE;YACN,+FAAsC,CAAC,uBAAuB,GAAG,IAAI,CAAC,GAAG,EAAE,sBAAsB,EAAE,OAAO,CAAC,CAAC;SAC/G;IACL,CAAC;IAEO,MAAM,CAAC,uBAAuB,CAAC,QAAQ;QAC3C,IAAI,mBAAmB,CAAC,iBAAiB,EAAE;YACvC,mBAAmB,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;YACpD,mBAAmB,CAAC,iBAAiB,GAAG,IAAI,CAAC;SAChD;QACD,mBAAmB,CAAC,iBAAiB,GAAG,IAAI,8EAAqB,CAAC,eAAe,GAAG,QAAQ,EAAE,uDAAuD,EAAE,CAAC,CAAC,EAAE,EAAE;YACzJ,MAAM,OAAO,GAAG,+DAAW,CAAC,mFAAmB,EAAE,CAAC,CAAC,CAAC;YACpD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,iEAAqB,EAAE;gBACrD,mBAAmB,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;aAC1D;QACL,CAAC,CAAC,CAAC;IACP,CAAC;;AA7Ra,iCAAa,GAAG,IAAI,kDAAe,CAAwB,IAAI,CAAC,CAAC;AACjE,2BAAO,GAAG,IAAI,0CAAO,EAAmB,CAAC;AACzC,kCAAc,GAAG,IAAI,0CAAO,EAAmB,CAAC;AAChD,+BAAW,GAAG,IAAI,kDAAe,CAAS,IAAI,CAAC,CAAC;AAChD,oCAAgB,GAAG,IAAI,0CAAO,EAAE,CAAC;AACjC,4BAAQ,GAAG,IAAI,0CAAO,EAAgB,CAAC;AACvC,8BAAU,GAAG,IAAI,0CAAO,EAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzByC;AACjC;AACM;AACH;AACY;AACG;AACN;AACiC;AACvC;AACS;AACwB;AAE1G,MAAM,WAAW,GAAG;IACvB,qFAAW;IACX,kFAAU;IACV,iGAAe;IACf,wFAAY;IACZ,oGAAgB;IAChB,8FAAc;IACd,+HAAyB;IACzB,0HAAuB;IACvB,iGAAe;IACf,wFAAY;IACZ,mHAAqB;CACxB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxBsF;AACC;AACa;AACd;AACzB;AAC+B;AACL;AACD;AACO;AACD;AACY;AACN;AACd;AACY;AACH;AACA;AAC0B;AACnC;AACkC;AACzB;AACU;AACY;AAClC;AACa;AACpB;AACmB;AACa;AACvB;AACjB;AACiB;AAE9E,MAAM,UAAU,GAAG;IACtB,gGAAe;IACf,iGAAa;IACb,8GAAsB;IACtB,gGAAe;IACf,uEAAU;IACV,sGAAoB;IACpB,iGAAe;IACf,gGAAe;IACf,uGAAqB;IACrB,sGAAiB;IACjB,mHAAqB;IACrB,6GAAqB;IACrB,+FAAc;IACd,2GAAoB;IACpB,wGAAiB;IACjB,wGAAiB;IACjB,kIAA0B;IAC1B,+FAAY;IACZ,iIAA4B;IAC5B,qHAAoB;IACpB,wGAAmB;IACnB,4FAAmB;IACnB,wGAAyB;IACzB,kHAAmB;IACnB,8HAAuB;IACvB,yGAAiB;IACjB,qFAAW;IACX,8FAAc;IACd,gFAAQ;IACR,8FAAkB;CACrB,CAAC;;;;;;;;;;;;;;;;;AC9DgF;AAG3E,MAAM,aAAa,GAAG;IACzB,0FAAmB;CACtB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACL6E;AACH;AACe;AACyB;AAC9B;AACmB;AACL;AACL;AAClB;AACM;AACN;AACM;AACA;AACA;AACH;AACuB;AACF;AAClB;AACI;AACV;AACH;AACuB;AACQ;AACX;AACvB;AACM;AACH;AACkB;AACH;AACa;AACjB;AACL;AACa;AACJ;AACL;AACV;AACG;AACqB;AACG;AACN;AACA;AACP;AACb;AACW;AACwB;AACzC;AACuB;AACN;AACN;AACH;AACG;AACZ;AACsD;AACL;AACrB;AACb;AACG;AACN;AACY;AACT;AACY;AACuB;AACX;AACK;AACzC;AACe;AACQ;AACjB;AACM;AACoB;AAC7B;AACO;AACK;AACT;AACmB;AACzB;AACA;AAC0C;AACN;AAChD;AACoB;AACmB;AACI;AACJ;AACU;AACV;AAGhC;AACK;AACY;AACJ;AACU;AACjB;AACmC;AACvB;AACR;AACS;AACkB;AACO;AACL;AACP;AAC+B;AACJ;AACJ;AACE;AACI;AACA;AACnC;AACiB;AAGG;AACyB;AACL;AACE;AAC9C;AACkB;AACM;AACjB;AACD;AACE;AACF;AAC4B;AAC5B;AACjB;AACX;AACuB;AACO;AACO;AACI;AACR;AACmB;AAC/C;AAC6C;AAC7C;AACgC;AACuB;AACxB;AACG;AAElG,MAAM,YAAY,GAAG;IACxB,8FAAU;IACV,yFAAc;IACd,4FAAe;IACf,uGAAc;IACd,4FAAe;IACf,4FAAe;IACf,qFAAa;IACb,wGAAmB;IACnB,iFAAW;IACX,qGAAkB;IAClB,8GAAqB;IACrB,yFAAc;IACd,gFAAW;IACX,yFAAc;IACd,sGAAoB;IACpB,yFAAc;IACd,oHAAkB;IAClB,yHAAwB;IACxB,+HAA2B;IAC3B,kGAAiB;IACjB,sFAAa;IACb,8GAAqB;IACrB,wGAAkB;IAClB,sFAAa;IACb,mFAAY;IACZ,wGAAmB;IACnB,sFAAa;IACb,+FAAgB;IAChB,0FAAY;IACZ,iGAAmB;IACnB,iHAAuB;IACvB,mFAAY;IACZ,6FAAgB;IAChB,4FAAe;IACf,sFAAa;IACb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AACgB;AAC/C;AACA;AACuB;AACP;AACK;AACgC;AACK;AACZ;AACnC;AACa;AAC+C;AAC5C;AACtB;AACoC;AACpC;AAC2C;AACjC;AACP;AACZ;AACc;AAC+B;AACtC;AACmC;AAC9B;AAC0D;AACX;AACZ;AACF;AACzB;AACV;AACX;AACI;AACe;AACX;AACG;AACG;AACN;AACM;AACoB;AACjB;AACf;AACS;AACkB;AACrB;AACG;AACa;AAC+B;AAClC;AACD;AACL;AAC2B;AACc;AACd;AACE;AACA;AACM;AAGZ;AAGA;AACc;AACM;AACzB;AACgB;AACN;AACmB;AACjB;AACd;AACN;AACa;AACzB;AACc;AACE;AAC0B;AAC3B;AACkB;AACvB;AACI;AACgB;AAC9B;AACU;AACR;AACC;AACsD;AACvD;AACmB;AAExF,MAAM,YAAY,GAAG;IACxB,mFAAgB;IAChB,2FAAwB;IACxB,iFAAc;IACd,kGAAuB;IACvB,mGAAuB;IACvB,qFAAgB;IAChB,mFAAc;IACd,qGAAwB;IACxB,iFAAY;IACZ,mFAAgB;IAChB,iFAAc;IACd,wEAAQ;IACR,iFAAW;IACX,8EAAU;IACV,8EAAU;IACV,8EAAU;IACV,oFAAY;IACZ,oFAAY;IACZ,wGAAqB;IACrB,uFAAa;IACb,iFAAW;IACX,iFAAW;IACX,uEAAY;IACZ,qEAAU;IACV,qFAAgB;IAChB,+FAAoB;IACpB,uEAAY;IACZ,qEAAU;IACV,wFAAoB;IACpB,sFAAkB;IAClB,8EAAY;IACZ,uEAAY;IACZ,0FAAe;IACf,yEAAY;IACZ,uEAAU;IACV,uFAAgB;IAChB,0GAAuB;IACvB,2FAAoB;IACpB,8FAAiB;IACjB,6EAAc;IACd,0EAAW;IACX,sFAAiB;IACjB,oFAAe;IACf,gIAAqB;IACrB,0HAAe;IACf,kHAAkB;IAClB,sFAAiB;IACjB,mGAAkB;IAClB,oGAAyB;IACzB,kGAAuB;IACvB,sGAAmB;IACnB,gJAA0B;IAC1B,gJAA0B;IAC1B,2EAAY;IACZ,+FAAkB;IAClB,2EAAY;IACZ,qGAAsB;IACtB,mGAAoB;IACpB,kHAAkB;IAClB,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC78BL,iHAAiH;AACC;AACrD;AACkH;AACxE;AAClB;AACW;AAC+D;AAC5D;AACwB;AACgB;AACI;AACtC;AACwC;AACxC;AACH;AACkB;AACtB;AACI;AACF;AACE;AACA;AACE;AACA;AACA;AACF;AACL;AAC+B;AACO;AACZ;AACZ;AACZ;AACnB;AACiB;AACY;AACG;AACH;AACT;AACN;AACe;AACI;AACb;AACG;AACG;AACH;AACM;AACZ;AACS;AACA;AACA;AACA;AACN;AACS;AACT;AACD;AACa;AACgB;AACR;AAChB;AACiB;AACd;AACE;AACR;AACX;AACU;AACP;AACjB;AACd;AAC6C;AACT;AACzB;AACqC;AAC3B;AAC2B;AAC8D;AACR;AACzC;AACY;AACpB;AACI;AACa;AAC+B;AACE;AAC/C;AACY;AACuB;AAC3B;AACH;AACL;AACa;AAC5C;AACW;AACA;AACJ;AACG;AACF;AACgD;AACzB;AAG/G,MAAM,eAAe,GAAG;IAC3B,oEAAW;IACX,kEAAS;IACT,qFAAmB;IACnB,mFAAiB;IACjB,sGAAsB;IACtB,oGAAoB;IACpB,uGAAuB;IACvB,uGAAsB;IACtB,oGAAqB;IACrB,wGAAuB;IACvB,qGAAqB;IACrB,wGAAqB;IACrB,oHAAiB;IACjB,0KAAuB;IACvB,kLAAyB;IACzB,iIAAqB;IACrB,6IAA2B;IAC3B,6FAAoB;IACpB,4HAAoB;IACpB,wIAAyB;IACzB,2KAAwB;IACxB,iIAAqB;IACrB,4HAAoB;IACpB,yIAA0B;IAC1B,oIAAkB;IAClB,+JAAoB;IACpB,6HAAoB;IACpB,0IAA0B;IAC1B,yKAAuB;IACvB,yHAAmB;IACnB,uGAAkB;IAClB,0GAAe;IACf,4GAAgB;IAChB,4GAAgB;IAChB,8GAAiB;IACjB,8GAAiB;IACjB,4GAAgB;IAChB,8GAAiB;IACjB,oEAAW;IACX,kFAAe;IACf,8FAAmB;IACnB,4FAAiB;CACpB,CAAC;AAEK,MAAM,YAAY,GAAG;IACxB,uEAAmB;IACnB,qEAAiB;IACjB,iEAAa;I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AAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvSA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA","sources":["./src/app/app.component.ts","./src/app/app.module.ts","./src/app/app.routing.ts","./src/app/appbuilder/common/layouteditcontrol/layout.edit.control.ts","./src/app/appbuilder/common/menutabcontrol/accordion.menu.control.ts","./src/app/appbuilder/common/menutabcontrol/menu.tab.control.ts","./src/app/appbuilder/controls/base.theme.control.ts","./src/app/appbuilder/controls/borderselection/borderselection.theme.control.ts","./src/app/appbuilder/controls/boxshadow/boxshadow.theme.control.ts","./src/app/appbuilder/controls/button/button.theme.control.ts","./src/app/appbuilder/controls/checkbox/checkbox.control.ts","./src/app/appbuilder/controls/colorpicker/colorpicker.theme.control.ts","./src/app/appbuilder/controls/combobox/combobox.theme.control.ts","./src/app/appbuilder/controls/datetime/datetime.control.ts","./src/app/appbuilder/controls/fileselection/fileselection.theme.control.ts","./src/app/appbuilder/controls/formulabox/formula.textbox.theme.control.ts","./src/app/appbuilder/controls/gradientpicker/gradientpicker.theme.control.ts","./src/app/appbuilder/controls/header/header.theme.control.ts","./src/app/appbuilder/controls/inputswitch/inputswitch.theme.control.ts","./src/app/appbuilder/controls/layoutunitthickness/layoutunitthickness.component.ts","./src/app/appbuilder/controls/listbox/listbox.theme.control.ts","./src/app/appbuilder/controls/monaco/monaco.theme.control.ts","./src/app/appbuilder/controls/textarea/textarea.theme.control.ts","./src/app/appbuilder/controls/textbox/textbox.theme.control.ts","./src/app/appbuilder/controls/togglebutton/togglebutton.theme.control.ts","./src/app/appbuilder/controls/togglebuttongroup/togglebuttongroup.theme.control.ts","./src/app/appbuilder/controls/translation/translation.textbox.theme.control.ts","./src/app/appbuilder/controls/unittypeselection/unitselection.theme.control.ts","./src/app/appbuilder/controls/unittypeselection/unittypeselection.theme.control.ts","./src/app/appbuilder/layouts/overlay/overlay.layout.ts","./src/app/appbuilder/menutabs/charts/charts.menu.tab.ts","./src/app/appbuilder/menutabs/charts/series.menu.control.ts","./src/app/appbuilder/menutabs/columnvisibility/columnvisibility.menu.tab.ts","./src/app/appbuilder/menutabs/content/content.menu.tab.ts","./src/app/appbuilder/menutabs/controls/controls.menu.tab.ts","./src/app/appbuilder/menutabs/customevents/customevents.menu.tab.ts","./src/app/appbuilder/menutabs/databinding/databinding.menu.tab.ts","./src/app/appbuilder/menutabs/datatable/datatable.menu.tab.ts","./src/app/appbuilder/menutabs/events/events.menu.tab.ts","./src/app/appbuilder/menutabs/generic/generic.menu.tab.ts","./src/app/appbuilder/menutabs/layout/layout.menu.tab.ts","./src/app/appbuilder/menutabs/listbox/listbox.menu.tab.ts","./src/app/appbuilder/menutabs/pagesettings/pagesettings.menu.tab.ts","./src/app/appbuilder/menutabs/properties/properties.menu.tab.ts","./src/app/appbuilder/menutabs/resolution/resolution.menu.tab.ts","./src/app/appbuilder/menutabs/statics/workflow/workflow.static.menu.tab.ts","./src/app/appbuilder/menutabs/template/template.menu.tab.ts","./src/app/appbuilder/menutabs/tree/tree.menu.tab.ts","./src/app/appbuilder/menutabs/tree/tree.settings.control.ts","./src/app/appbuilder/menutabs/variables/variables.menu.tab.ts","./src/app/appbuilder/menutabs/widget/joblogs/joblogs.widget.menu.ts","./src/app/appbuilder/menutabs/widget/jobs/jobs.widget.menu.ts","./src/app/appbuilder/menutabs/widget/widget.menu.tab.ts","./src/app/appbuilder/menutabs/workflow/workflow.menu.tab.ts","./src/app/appbuilder/menutabs/workflow/workflow.usage.dialog.ts","./src/app/appbuilder/panels/advanced.panel.ts","./src/app/appbuilder/panels/base.panel.ts","./src/app/appbuilder/panels/content.panel.ts","./src/app/appbuilder/panels/customevents.panel.ts","./src/app/appbuilder/panels/datasource.panel.ts","./src/app/appbuilder/panels/decorations.panel.ts","./src/app/appbuilder/panels/simplereporting.panel.ts","./src/app/appbuilder/panels/transitions.panel.ts","./src/app/cache/cache.service.ts","./src/app/cache/drivers/inmem.driver.ts","./src/app/cache/drivers/nocache.driver.ts","./src/app/cache/models/cacheitem.model.ts","./src/app/cache/models/cachetable.model.ts","./src/app/cache/multi/cache.service.ts","./src/app/cache/multi/models/database.model.ts","./src/app/component_v2/create-app/create-app.component.ts","./src/app/component_v2/create.flag.service.ts","./src/app/component_v2/dashboard/dashboard.component.ts","./src/app/component_v2/dashboard/my-apps/my-apps.component.ts","./src/app/component_v2/dashboard/without-dashboard/without-dashboard.component.ts","./src/app/component_v2/forgot-password/OTPDialog/OTP-dialog.ts","./src/app/component_v2/forgot-password/forgot-password.component.ts","./src/app/component_v2/google-signin/google-signin.component.ts","./src/app/component_v2/header/header.component.ts","./src/app/component_v2/header/help.menu/help.menu.ts","./src/app/component_v2/header/messagecenter.dialogue.ts","./src/app/component_v2/header/usermenu.component.ts","./src/app/component_v2/help-center/help-center.component.ts","./src/app/component_v2/help-center/live-agent-chat-button/live-agent-chat-button.component.ts","./src/app/component_v2/listview/listview.component.ts","./src/app/component_v2/login/login.component.ts","./src/app/component_v2/personal-settings/personal-settings.component.ts","./src/app/component_v2/sidebar/sidebar.component.ts","./src/app/component_v2/sidebar/tour-guide/tour-guide.component.ts","./src/app/components/actions/base.action.ts","./src/app/components/actions/style/backgroundcolor/backgroundcolor.action.ts","./src/app/components/actions/style/bold/bold.action.ts","./src/app/components/actions/style/border/border.action.ts","./src/app/components/actions/style/empty/empty.action.ts","./src/app/components/actions/style/fontcolor/fontcolor.action.ts","./src/app/components/actions/style/fontfamily/fontfamily.action.ts","./src/app/components/actions/style/fontsize/fontsize.action.ts","./src/app/components/actions/style/horizontalalignment/horizontalalignment.action.ts","./src/app/components/actions/style/italic/italic.action.ts","./src/app/components/actions/style/underline/underline.action.ts","./src/app/components/actions/style/verticalalignment/verticalalignment.action.ts","./src/app/components/chart/apexcharts.component.ts","./src/app/components/chart/chart.component.ts","./src/app/components/chart/chart.module.ts","./src/app/components/chart/sunburst.component.ts","./src/app/components/common/aboutcontrol/about.control.ts","./src/app/components/common/basetreecontrol/base.tree.control.ts","./src/app/components/common/capsuletagcontrol/capsule.tag.control.ts","./src/app/components/common/chart.series.settings.control.ts","./src/app/components/common/collaboration/user.overview.control.ts","./src/app/components/common/componentfilter/componentfilter.control.ts","./src/app/components/common/contextmenu/contextmenu.component.ts","./src/app/components/common/cronbuilder/cron.builder.dialog.ts","./src/app/components/common/cronbuilder/cron.builder.ts","./src/app/components/common/datasourceselectioncontol/datasource.selection.control.ts","./src/app/components/common/default.group.header.ts","./src/app/components/common/development/branchselect/branchselect.control.ts","./src/app/components/common/development/repositoryselect/repositoryselect.control.ts","./src/app/components/common/dropdowncontrol/dropdown.control.ts","./src/app/components/common/formulaEditor/formulaEditor.control.ts","./src/app/components/common/formulaEditor/formulatextbox.control.ts","./src/app/components/common/indeterminatecheckbox/indeterminate.checkbox.ts","./src/app/components/common/jiracontrol/jira.control.ts","./src/app/components/common/navigationcontrol/navigation.control.ts","./src/app/components/common/navigationcontrol/navigation.tabs.ts","./src/app/components/common/navigationmenu/navigation.menu.ts","./src/app/components/common/nestedmenu/nested.menu.ts","./src/app/components/common/number.format.panel.ts","./src/app/components/common/operator.component.ts","./src/app/components/common/overlays/comparison/comparison.overlay.ts","./src/app/components/common/propertyControl/property.control.ts","./src/app/components/common/requestoptions/request.options.control.ts","./src/app/components/common/scripteditor/scripteditor.control.ts","./src/app/components/common/style.control.ts","./src/app/components/common/textblock.document.header.ts","./src/app/components/common/timespanControl/timespan.control.ts","./src/app/components/common/variable.chooser.ts","./src/app/components/controls/accordion/accordion.control.ts","./src/app/components/controls/advancedfilter/advancedfilter.component.ts","./src/app/components/controls/appswitch/appswitch.component.ts","./src/app/components/controls/autocomplete/autocomplete.control.ts","./src/app/components/controls/base.component.ts","./src/app/components/controls/button/button.control.ts","./src/app/components/controls/carousel/carousel.control.ts","./src/app/components/controls/charts/charts.control.ts","./src/app/components/controls/checkbox/checkbox.control.ts","./src/app/components/controls/chiplist/chiplist.control.ts","./src/app/components/controls/combobox/combobox.control.ts","./src/app/components/controls/content/content.control.ts","./src/app/components/controls/datacapsuletag/data.capsule.tag.control.ts","./src/app/components/controls/datetimepicker/datetimepicker.control.ts","./src/app/components/controls/download/download.control.ts","./src/app/components/controls/dropdown/dropdown.component.ts","./src/app/components/controls/editor/editor.control.ts","./src/app/components/controls/embed/embed.control.ts","./src/app/components/controls/filter/filter.dropdown.control.ts","./src/app/components/controls/filter/filter.tree.control.ts","./src/app/components/controls/filter/filter.tree.dialog.ts","./src/app/components/controls/filter/from.to.filter.ts","./src/app/components/controls/gmap/gmap.control.ts","./src/app/components/controls/gradientpicker/colorpicker.control.ts","./src/app/components/controls/gradientpicker/colorpickermenu.control.ts","./src/app/components/controls/gradientpicker/gradientpicker.control.ts","./src/app/components/controls/href/href.control.ts","./src/app/components/controls/hyperpay/hyperpay.control.ts","./src/app/components/controls/icon/icon.control.ts","./src/app/components/controls/iframe/iframe.control.ts","./src/app/components/controls/image/image.control.ts","./src/app/components/controls/imageeditor/imageeditor.control.ts","./src/app/components/controls/inputgroup/inputgroup.control.ts","./src/app/components/controls/languagemenu/language.menu.ts","./src/app/components/controls/layout.tree.ts","./src/app/components/controls/layoutitem/layout.item.component.ts","./src/app/components/controls/listbox/listbox.control.ts","./src/app/components/controls/listbox/simple.listbox.control.ts","./src/app/components/controls/listdetail/listdetail.control.ts","./src/app/components/controls/loading/loading.component.ts","./src/app/components/controls/login/login.control.ts","./src/app/components/controls/marker/marker.control.ts","./src/app/components/controls/messagecenter/messagecenter.control.ts","./src/app/components/controls/messagecenter/messagecenter.dialog.ts","./src/app/components/controls/navigationtree/navigationtree.control.ts","./src/app/components/controls/navigationtree/navigationtree.item.ts","./src/app/components/controls/objectviewer/objectviewer.control.ts","./src/app/components/controls/output/page.index.component.ts","./src/app/components/controls/output/sum.component.ts","./src/app/components/controls/pdfviewer/pdfviewer.control.ts","./src/app/components/controls/profilemanagement/profilemanagement.control.ts","./src/app/components/controls/qr/qr.component.ts","./src/app/components/controls/radiobutton/radiobutton.control.ts","./src/app/components/controls/reference/reference.axis.component.ts","./src/app/components/controls/reference/reference.overview.component.ts","./src/app/components/controls/scheduler/scheduler.control.ts","./src/app/components/controls/sidenav/sidenav.control.ts","./src/app/components/controls/simplereporting/chartwrapper.component.ts","./src/app/components/controls/simplereporting/preview-dialogue/preview-dialogue.component.ts","./src/app/components/controls/simplereporting/simplereporting.component.ts","./src/app/components/controls/slider/slider.control.ts","./src/app/components/controls/stepper/stepper.control.ts","./src/app/components/controls/tab/tab.control.ts","./src/app/components/controls/tables/basic-ptable/basic-datatable.control.ts","./src/app/components/controls/tables/columnvisibility/columnvisibility.control.ts","./src/app/components/controls/tables/datatable/datatable.control.ts","./src/app/components/controls/tables/datatable/datatable.datasource.ts","./src/app/components/controls/tables/primetable/primetable.control.ts","./src/app/components/controls/textarea/textarea.control.ts","./src/app/components/controls/textblock/textblock.control.ts","./src/app/components/controls/textbox/textbox.control.ts","./src/app/components/controls/themeswitch/themeswitch.control.ts","./src/app/components/controls/timespan/timespan.control.ts","./src/app/components/controls/togglebutton/togglebutton.control.ts","./src/app/components/controls/translationtextbox/translation.textbox.component.ts","./src/app/components/controls/translationtextbox/translation.textbox.control.ts","./src/app/components/controls/translationtextbox/translation.textbox.dialog.ts","./src/app/components/controls/tree/tree.control.ts","./src/app/components/controls/treetable/treetable.control.ts","./src/app/components/controls/treetable/treetableitem.control.ts","./src/app/components/controls/upload/upload.control.ts","./src/app/components/controls/usermenu/usermenu.control.ts","./src/app/components/controls/variable/variabledefinition.control.ts","./src/app/components/controls/video/video.control.ts","./src/app/components/controls/video/videojs.player.ts","./src/app/components/datatable/a.base.cell.ts","./src/app/components/datatable/cell.content.ts","./src/app/components/datatable/content.column.container.ts","./src/app/components/datatable/datatable.cell.ts","./src/app/components/datatable/datatable.component.ts","./src/app/components/datatable/datatable.module.ts","./src/app/components/datatable/datatable.row.ts","./src/app/components/datatable/header.column.container.ts","./src/app/components/datatable/spreadsheet.cell.ts","./src/app/components/dialogs/actions/action.dialog.ts","./src/app/components/dialogs/advancedfilter/advancedfilter.dialog.ts","./src/app/components/dialogs/basedialog/base.dialog.ts","./src/app/components/dialogs/changekeydialog/change.key.dialog.ts","./src/app/components/dialogs/containerSelect.dialog.ts","./src/app/components/dialogs/content/content.dialog.ts","./src/app/components/dialogs/datadescription/datadescription.control.ts","./src/app/components/dialogs/datadescription/datadescription.edit.dialog.ts","./src/app/components/dialogs/definememberattribute/definememberattribute.dialog.ts","./src/app/components/dialogs/deploymentaction/deploymentaction.dialog.ts","./src/app/components/dialogs/eventtree/event.tree.dialog.ts","./src/app/components/dialogs/layouteditdialog/layout.edit.dialog.ts","./src/app/components/dialogs/messagebox/messagebox.dialog.ts","./src/app/components/dialogs/monacopreview/monaco.preview.dialog.ts","./src/app/components/dialogs/objectpreview/object.preview.dialog.ts","./src/app/components/dialogs/relation.overview.dialog.ts","./src/app/components/dialogs/reqeustname/reqeustname.dialog.ts","./src/app/components/dialogs/template/template.dialog.ts","./src/app/components/dialogs/tourguide/tourguide.dialog/tourguide.dialog.component.ts","./src/app/components/dialogs/translatedstring.dialog.ts","./src/app/components/dialogs/translationdialog/translation.control.ts","./src/app/components/dialogs/translationdialog/translation.dialog.ts","./src/app/components/dialogs/webhookdialog/webhook.dialog.ts","./src/app/components/dialogs/workflowdebug/workflow.name.change.dialog.ts","./src/app/components/dialogs/workflowdebug/workflowdebug.dialog.ts","./src/app/components/fileexplorer/fileexplorer.control.ts","./src/app/components/fileexplorer/fileexplorer.dialog.ts","./src/app/components/generate-mobile-app/generate-mobile-app.component.ts","./src/app/components/integration/integration.component.ts","./src/app/components/layouts/base/base.layout.ts","./src/app/components/layouts/bootstrapgrid/bootstrapgrid.layout.ts","./src/app/components/layouts/bootstraprepeat/bootstraprepeat.layout.ts","./src/app/components/layouts/canvas/canvas.layout.ts","./src/app/components/layouts/expansionpanel/expansion.panel.layout.ts","./src/app/components/layouts/flex/flex.layout.ts","./src/app/components/layouts/grid/grid.layout.ts","./src/app/components/layouts/navigation/navigation.layout.ts","./src/app/components/layouts/raster/raster.layout.ts","./src/app/components/layouts/repeating/repeating.layout.ts","./src/app/components/layouts/sidenav/sidenav.layout.ts","./src/app/components/layouts/template/template.layout.ts","./src/app/components/layouts/widget/widget.layout.ts","./src/app/components/menutabs/datadescription/datadescription.menu.tab.ts","./src/app/components/menutabs/filtertree/conditional.filter.dialog.ts","./src/app/components/menutabs/filtertree/filter.dropdown.menu.tab.ts","./src/app/components/menutabs/filtertree/filtertree.menu.tab.ts","./src/app/components/menutabs/fromtofilter/from.to.filter.menu.tab.ts","./src/app/components/multipanels/objectcreatorsource/objectcreatorsource.multidim.ts","./src/app/components/multipanels/objectcreatorsource/objectcreatorsource.multipanel.ts","./src/app/components/multipanels/objectcreatorsource/objectcreatorsource.relational.ts","./src/app/components/multipanels/objectcreatorsource/objectcreatorsourcetree.base.ts","./src/app/components/multipanels/objectcreatorsource/objectcreatorsourcetree.level.ts","./src/app/components/multipanels/objectcreatorsource/objectcreatorsourcetree.measure.ts","./src/app/components/multipanels/objectcreatorsource/objectcreatorsourcetree.special.ts","./src/app/components/objectcreator/datataskpanel/datatask.panel.ts","./src/app/components/objectcreator/filter/filterpanel.control.ts","./src/app/components/objectcreator/helper/delete.task.dialog.ts","./src/app/components/objectcreator/helper/objectcreator.datamanager.ts","./src/app/components/objectcreator/helper/replace.element.dialog.ts","./src/app/components/objectcreator/measuredefinition/measuredef.control.ts","./src/app/components/objectcreator/measuredefinition/panels/dynamictimereference/dynamictimereference.control.ts","./src/app/components/objectcreator/measuredefinition/panels/elementreference/elementreference.control.ts","./src/app/components/objectcreator/measuredefinition/panels/elementreference/elementreference.tree.ts","./src/app/components/objectcreator/measuredefinition/panels/parentreference/parentreference.control.ts","./src/app/components/objectcreator/measuredefrel/measuredef.rel.control.ts","./src/app/components/objectcreator/multidimensional/axis.control.ts","./src/app/components/objectcreator/multidimensional/heterogenArea.control.ts","./src/app/components/objectcreator/multidimensional/heterogenSubArea.control.ts","./src/app/components/objectcreator/objectcreator.droparea.ts","./src/app/components/objectcreator/objectcreator.maincontrol.ts","./src/app/components/objectcreator/variablenitem/multidimvariable.control.ts","./src/app/components/pages/403-page/403-page.component.ts","./src/app/components/pages/404-page/not-found404.page.ts","./src/app/components/pages/content.page.ts","./src/app/components/pages/not-permitted.page.ts","./src/app/components/pages/settings.page.ts","./src/app/components/query/Manipulations/ReloadExecutionManipulation.ts","./src/app/components/query/Manipulations/a.execution.manipulation.ts","./src/app/components/query/Manipulations/all.element.renaming.manipulation.ts","./src/app/components/query/Manipulations/dynamic.time.measure.referencing.manipulation.ts","./src/app/components/query/Manipulations/master.child.manipulation.ts","./src/app/components/query/Manipulations/view.manipulation.ts","./src/app/components/query/ddhelper.query.ts","./src/app/components/query/executer.query.ts","./src/app/components/query/merger.query.ts","./src/app/components/query/queryhelper.query.ts","./src/app/components/reportobjectcontrols/chart/chart.reportobject.ts","./src/app/components/reportobjectcontrols/planning/planning.reportobject.ts","./src/app/components/reportobjectcontrols/table/table.reportobject.ts","./src/app/components/reportobjectmenus/chart/axis.menu.tab.ts","./src/app/components/reportobjectmenus/chart/chart.menu.tab.ts","./src/app/components/reportobjectmenus/chart/series.menu.control.ts","./src/app/components/reportobjectmenus/planning/activecell.menu.tab.ts","./src/app/components/reportobjectmenus/planning/planning.format.menu.tab.ts","./src/app/components/reportobjectmenus/planning/planning.menu.tab.ts","./src/app/components/reportobjectmenus/planning/references.menu.tab.ts","./src/app/components/reportobjectmenus/planning/sheets.menu.tab.ts","./src/app/components/reportobjectmenus/planning/size.menu.tab.ts","./src/app/components/reportobjectmenus/query/queries.menu.tab.ts","./src/app/components/reportobjectmenus/query/query.menu.tab.ts","./src/app/components/reportobjectmenus/table/expand.menu.tab.ts","./src/app/components/reportobjectmenus/table/fix.menu.tab.ts","./src/app/components/reportobjectmenus/table/format.menu.tab.ts","./src/app/components/reportobjectmenus/table/mactable.menu.tab.ts","./src/app/components/reportobjectmenus/table/size.menu.tab.ts","./src/app/components/reportobjectmenus/table/sum.menu.tab.ts","./src/app/components/staticclasscontrols/datasource/datasource.static.control.ts","./src/app/components/staticclasscontrols/workflow/workflow.static.control.ts","./src/app/components/taskpanels/a.task.panel.ts","./src/app/components/taskpanels/calculate/calculate.task.panel.ts","./src/app/components/taskpanels/chartformatting/bubbleseries/bubble.series.formatting.panel.ts","./src/app/components/taskpanels/chartformatting/conditional.series.formatting.panel.ts","./src/app/components/taskpanels/chartformatting/series/chart.series.formatting.panel.ts","./src/app/components/taskpanels/chartformatting/series/chart.series.label.panel.ts","./src/app/components/taskpanels/codedescription/codedescription.task.panel.ts","./src/app/components/taskpanels/cumulate/cumulate.task.panel.ts","./src/app/components/taskpanels/datasort/dataSort.task.panel.ts","./src/app/components/taskpanels/edit/edit.task.panel.ts","./src/app/components/taskpanels/filter/filter.task.panel.ts","./src/app/components/taskpanels/formatting/columndescriptionheader/columndescriptionheader.formatting.task.panel.ts","./src/app/components/taskpanels/formatting/conditionalformat/aconditional.formatting.task.panel.ts","./src/app/components/taskpanels/formatting/conditionalformat/levelconditional.formatting.task.panel.ts","./src/app/components/taskpanels/formatting/conditionalformat/measureconditional.formatting.task.panel.ts","./src/app/components/taskpanels/formatting/level/level.formatting.task.panel.ts","./src/app/components/taskpanels/formatting/levelheader/levelheader.formatting.task.panel.ts","./src/app/components/taskpanels/formatting/measure/measure.formatting.task.panel.ts","./src/app/components/taskpanels/formatting/measureheader/measureheader.formatting.task.panel.ts","./src/app/components/taskpanels/formatting/sum/sum.formatting.task.panel.ts","./src/app/components/taskpanels/formatting/sum/sum.xlevel.formatting.task.panel.ts","./src/app/components/taskpanels/new.task.dialog.ts","./src/app/components/taskpanels/planning/cell/cell.planning.task.panel.ts","./src/app/components/taskpanels/planning/content/content.planning.task.panel.ts","./src/app/components/taskpanels/planning/header/header.planning.task.panel.ts","./src/app/components/taskpanels/planning/row/rowdesc.planning.task.panel.ts","./src/app/components/taskpanels/previouslevel/previous.level.task.panel.ts","./src/app/components/taskpanels/rank/rank.task.panel.ts","./src/app/components/taskpanels/task.overview.ts","./src/app/components/taskpanels/topdown/topdown.task.panel.ts","./src/app/components/widgets/actions/actions.widget.ts","./src/app/components/wizards/layout/layout.wizard.dialog.ts","./src/app/debugconsole/debug.window.ts","./src/app/debugconsole/workflow/debug.script.breakpoint.control.ts","./src/app/debugconsole/workflow/debug.workflow.attach.dialog.ts","./src/app/debugconsole/workflow/debug.workflow.breakpoint.control.ts","./src/app/debugconsole/workflow/debug.workflow.connection.page.ts","./src/app/debugconsole/workflow/debug.workflow.log.ts","./src/app/debugconsole/workflow/debug.workflow.settings.page.ts","./src/app/debugconsole/workflow/debug.workflow.state.control.ts","./src/app/helpers/IntersectionHelper.ts","./src/app/helpers/about.info.ts","./src/app/helpers/acaptiongetter.ts","./src/app/helpers/array.helpers.ts","./src/app/helpers/audio.helper.ts","./src/app/helpers/callback.pipe.ts","./src/app/helpers/capsule.helper.ts","./src/app/helpers/chart.data.ts","./src/app/helpers/clickOutside.directive.ts","./src/app/helpers/clickstoppropagation.directive.ts","./src/app/helpers/client.helper.ts","./src/app/helpers/clipboard.helper.ts","./src/app/helpers/collaboration.helper.ts","./src/app/helpers/containerpath.helper.ts","./src/app/helpers/containertable.helper.ts","./src/app/helpers/cron.helper.ts","./src/app/helpers/datasource.helper.ts","./src/app/helpers/datatable.filter.ts","./src/app/helpers/datatable.sort.ts","./src/app/helpers/datatype.helper.ts","./src/app/helpers/date.helper.ts","./src/app/helpers/defaultProperties.helper.ts","./src/app/helpers/enum.helper.ts","./src/app/helpers/file-drag-drop.directive.ts","./src/app/helpers/filter.helper.ts","./src/app/helpers/focusonshow.directive.ts","./src/app/helpers/formula.parser.ts","./src/app/helpers/git.helper.ts","./src/app/helpers/globalevent.helper.ts","./src/app/helpers/injector.helper.ts","./src/app/helpers/intersect.helper.ts","./src/app/helpers/keyboard.helper.ts","./src/app/helpers/layout.change.status.handler.ts","./src/app/helpers/layout.helper.ts","./src/app/helpers/log.helpers.ts","./src/app/helpers/logout.handler.ts","./src/app/helpers/meta.helper.ts","./src/app/helpers/multiresult.helper.ts","./src/app/helpers/navigation.helper.ts","./src/app/helpers/network.helpers.ts","./src/app/helpers/notification.helper.ts","./src/app/helpers/offline.helper.ts","./src/app/helpers/page.edit.client.ts","./src/app/helpers/permissions.helper.ts","./src/app/helpers/platform.helper.ts","./src/app/helpers/property.mapper.ts","./src/app/helpers/relquery.helper.ts","./src/app/helpers/relsource.helper.ts","./src/app/helpers/render.helper.ts","./src/app/helpers/rtl.helper.ts","./src/app/helpers/selection.helper.ts","./src/app/helpers/serviceregistry.helper.ts","./src/app/helpers/splitDisplayName.pipe.ts","./src/app/helpers/style.helper.ts","./src/app/helpers/task.registry.ts","./src/app/helpers/template.edit.client.ts","./src/app/helpers/theme.helpers.ts","./src/app/helpers/time.helper.ts","./src/app/helpers/translate.helper.ts","./src/app/helpers/upload.dnd.directive.ts","./src/app/helpers/variable.helper.ts","./src/app/helpers/worker.helper.ts","./src/app/helpers/workflow.debug.helper.ts","./src/app/imports/app.actions.ts","./src/app/imports/app.common.ts","./src/app/imports/app.components.ts","./src/app/imports/app.controls.ts","./src/app/imports/app.datamodel.ts","./src/app/imports/app.declarations.ts","./src/app/imports/app.dialogs.ts","./src/app/imports/app.exports.ts","./src/app/imports/app.helpers.ts","./src/app/imports/app.layouts.ts","./src/app/imports/app.mediatypes.ts","./src/app/imports/app.menutabs.ts","./src/app/imports/app.multipanels.ts","./src/app/imports/app.mw.services.ts","./src/app/imports/app.others.ts","./src/app/imports/app.pages.ts","./src/app/imports/app.services.ts","./src/app/imports/app.settings.ts","./src/app/imports/app.themecontrols.ts","./src/app/imports/app.widgets.ts","./src/app/imports/app.wizards.ts","./src/app/imports/evi.controls.ts","./src/app/imports/mac.dialogs.ts","./src/app/imports/mac.menutabs.ts","./src/app/imports/mac.services.ts","./src/app/imports/material.module.ts","./src/app/imports/primeng.module.ts","./src/app/lib/appframework.component.ts","./src/app/lib/appframework.module.ts","./src/app/models/ContainerClassObject.ts","./src/app/models/actions/changedatasource.model.ts","./src/app/models/base.model.ts","./src/app/models/basic/cell.content.model.ts","./src/app/models/basic/column.model.ts","./src/app/models/basic/cursortypes.ts","./src/app/models/basic/custombasestyle.model.ts","./src/app/models/basic/formulaEditor.model.ts","./src/app/models/basic/layoutunit.model.ts","./src/app/models/basic/layoutunitthickness.model.ts","./src/app/models/basic/navigationitem.model.ts","./src/app/models/basic/point.model.ts","./src/app/models/basic/row.model.ts","./src/app/models/basic/selection.model.ts","./src/app/models/calculation/absformula.ts","./src/app/models/calculation/actualdate.ts","./src/app/models/calculation/addition.ts","./src/app/models/calculation/and.ts","./src/app/models/calculation/avg.ts","./src/app/models/calculation/dateadd.ts","./src/app/models/calculation/dayformula.ts","./src/app/models/calculation/daysdiffformula.ts","./src/app/models/calculation/division.ts","./src/app/models/calculation/equal.ts","./src/app/models/calculation/formula.node.calculator.ts","./src/app/models/calculation/formula.registry.ts","./src/app/models/calculation/generatenull.ts","./src/app/models/calculation/getproperty.ts","./src/app/models/calculation/greater.ts","./src/app/models/calculation/greaterequal.ts","./src/app/models/calculation/iformula.ts","./src/app/models/calculation/ifthenelse.ts","./src/app/models/calculation/indexof.ts","./src/app/models/calculation/isnull.ts","./src/app/models/calculation/ltrim.ts","./src/app/models/calculation/max.ts","./src/app/models/calculation/min.ts","./src/app/models/calculation/monthformula.ts","./src/app/models/calculation/multiplication.ts","./src/app/models/calculation/newguid.ts","./src/app/models/calculation/notequal.ts","./src/app/models/calculation/or.ts","./src/app/models/calculation/pow.ts","./src/app/models/calculation/roundformula.ts","./src/app/models/calculation/rtrim.ts","./src/app/models/calculation/smaller.ts","./src/app/models/calculation/smallerequal.ts","./src/app/models/calculation/squareroot.ts","./src/app/models/calculation/strlength.ts","./src/app/models/calculation/substring.ts","./src/app/models/calculation/subtraction.ts","./src/app/models/calculation/sum.ts","./src/app/models/calculation/todoubleformula.ts","./src/app/models/calculation/tojson.ts","./src/app/models/calculation/tolower.ts","./src/app/models/calculation/toobject.ts","./src/app/models/calculation/toupper.ts","./src/app/models/calculation/translateformula.ts","./src/app/models/calculation/weekformula.ts","./src/app/models/calculation/yearformula.ts","./src/app/models/contextevent.model.ts","./src/app/models/controls/chart.data.model.ts","./src/app/models/controls/chart.model.ts","./src/app/models/controls/sidenav.model.ts","./src/app/models/datadescription/dataDescriptionDescription.model.ts","./src/app/models/datadescription/datadescriptiondata.model.ts","./src/app/models/datadescription/multi/datadescription.model.ts","./src/app/models/datadescription/multi/filter/filterElementSettings.model.ts","./src/app/models/datadescription/multi/filter/filterMultidimensional.model.ts","./src/app/models/datadescription/multi/levelnode.model.ts","./src/app/models/datadescription/multi/measureinfo.model.ts","./src/app/models/datadescription/multi/measurereportparameterref.model.ts","./src/app/models/datadescription/multi/multiresult.model.ts","./src/app/models/datadescription/multi/querydef.model.ts","./src/app/models/datadescription/multi/querysettings.model.ts","./src/app/models/datadescription/relational/datadescriptionrelational.model.ts","./src/app/models/datamodel/abaseelement.model.ts","./src/app/models/datamodel/adbinfo.model.ts","./src/app/models/datamodel/datamodel.model.ts","./src/app/models/datamodel/datasource.model.ts","./src/app/models/datamodel/mediasource.model.ts","./src/app/models/datasource/chart.datasource.ts","./src/app/models/datasource/chart.multidimensional.datasource.ts","./src/app/models/datasource/chart.relational.datasource.ts","./src/app/models/datasource/table.multidimensional.datasource.ts","./src/app/models/datasource/table.planning.datasource.ts","./src/app/models/datasource/table.relational.datasource.ts","./src/app/models/enums.ts","./src/app/models/enums/actionsize.enum.ts","./src/app/models/enums/alignment.enum.ts","./src/app/models/enums/animationmode.enum.ts","./src/app/models/enums/axistextposition.enum.ts","./src/app/models/enums/background.enum.ts","./src/app/models/enums/binaryoperation.enum.ts","./src/app/models/enums/bodytype.enum.ts","./src/app/models/enums/borderstyle.enum.ts","./src/app/models/enums/calendarview.enum.ts","./src/app/models/enums/ccotype.enum.ts","./src/app/models/enums/chartanimationeasing.enum.ts","./src/app/models/enums/chartcomponent.enum.ts","./src/app/models/enums/chartcurvetype.enum.ts","./src/app/models/enums/chartlegendalignment.enum.ts","./src/app/models/enums/chartlegendposition.enum.ts","./src/app/models/enums/charttooltiptrigger.enum.ts","./src/app/models/enums/charttype.enum.ts","./src/app/models/enums/comparer.enum.ts","./src/app/models/enums/comparetype.enum.ts","./src/app/models/enums/componentcategory.enum.ts","./src/app/models/enums/conditiondatatype.enum.ts","./src/app/models/enums/conditionoperator.enum.ts","./src/app/models/enums/connectionstatusenum.enum.ts","./src/app/models/enums/contact.enum.ts","./src/app/models/enums/contenttype.enum.ts","./src/app/models/enums/controlstyle.enum.ts","./src/app/models/enums/cssvartype.enum.ts","./src/app/models/enums/customrestendpointtype.enum.ts","./src/app/models/enums/dialogbutton.enum.ts","./src/app/models/enums/dialogresult.enum.ts","./src/app/models/enums/dialogtype.enum.ts","./src/app/models/enums/dropstate.enum.ts","./src/app/models/enums/enum.value.ts","./src/app/models/enums/errorcorrectionlevel.enum.ts","./src/app/models/enums/eventactiontype.enum.ts","./src/app/models/enums/expandstate.enum.ts","./src/app/models/enums/filemode.enum.ts","./src/app/models/enums/formulagroupenum.enum.ts","./src/app/models/enums/formulainputmode.enum.ts","./src/app/models/enums/formulanodetype.enum.ts","./src/app/models/enums/gitfilestatus.enum.ts","./src/app/models/enums/gradienttype.enum.ts","./src/app/models/enums/guidrepresentation.ts","./src/app/models/enums/indextype.enum.ts","./src/app/models/enums/keyfilter.enum.ts","./src/app/models/enums/languagemenutext.enum.ts","./src/app/models/enums/layoutchangetype.enum.ts","./src/app/models/enums/layoutposition.enum.ts","./src/app/models/enums/linetype.enum.ts","./src/app/models/enums/loginerror.enum.ts","./src/app/models/enums/loglevel.enum.ts","./src/app/models/enums/logstatus.enum.ts","./src/app/models/enums/mailauthtype.enum.ts","./src/app/models/enums/mailprovider.enum.ts","./src/app/models/enums/menutabposition.enum.ts","./src/app/models/enums/messageboxbuttons.enum.ts","./src/app/models/enums/messageboxicon.enum.ts","./src/app/models/enums/messageboxresult.enum.ts","./src/app/models/enums/messagetype.enum.ts","./src/app/models/enums/methodtype.enum.ts","./src/app/models/enums/mfatype.enum.ts","./src/app/models/enums/mongoauthmechanism.enum.ts","./src/app/models/enums/mongodbconnectiontype.enum.ts","./src/app/models/enums/monitoringchartfunctions.enum.ts","./src/app/models/enums/mysqlsslmode.enum.ts","./src/app/models/enums/notificationlevel.enum.ts","./src/app/models/enums/objectfit.enum.ts","./src/app/models/enums/oc.DragItemType.ts","./src/app/models/enums/oc.enum.ts","./src/app/models/enums/offlinestrategy.enum.ts","./src/app/models/enums/operationtype.enum.ts","./src/app/models/enums/operator.enum.ts","./src/app/models/enums/order.enum.ts","./src/app/models/enums/orientation.enum.ts","./src/app/models/enums/outputpagetype.enum.ts","./src/app/models/enums/overflow.enum.ts","./src/app/models/enums/page.enum.ts","./src/app/models/enums/pagingtype.enum.ts","./src/app/models/enums/pickermode.enum.ts","./src/app/models/enums/pickerstartview.enum.ts","./src/app/models/enums/pickertype.enum.ts","./src/app/models/enums/plantype.enum.ts","./src/app/models/enums/pointShape.enum.ts","./src/app/models/enums/primeflexsizes.enum.ts","./src/app/models/enums/propertygroupdisplay.enum.ts","./src/app/models/enums/providerchoice.enum.ts","./src/app/models/enums/query.enum.ts","./src/app/models/enums/resizeable.enum.ts","./src/app/models/enums/resourcebase.enum.ts","./src/app/models/enums/responsivetype.enum.ts","./src/app/models/enums/selectmode.enum.ts","./src/app/models/enums/seriestype.enum.ts","./src/app/models/enums/sidenavmode.enum.ts","./src/app/models/enums/sidenavposition.enum.ts","./src/app/models/enums/slider.orientation.enum.ts","./src/app/models/enums/sortType.enum.ts","./src/app/models/enums/specialElementType.ts","./src/app/models/enums/stepperorientation.enum.ts","./src/app/models/enums/syncstatus.enum.ts","./src/app/models/enums/tablestyle.enum.ts","./src/app/models/enums/tagtype.enum.ts","./src/app/models/enums/textcomparison.enum.ts","./src/app/models/enums/textoverflow.enum.ts","./src/app/models/enums/transitionproperty.enum.ts","./src/app/models/enums/transitiontimingfunction.enum.ts","./src/app/models/enums/triggerqueuestate.enum.ts","./src/app/models/enums/triggerstate.enum.ts","./src/app/models/enums/unittype.enum.ts","./src/app/models/enums/valuetype.enum.ts","./src/app/models/enums/variabledisplay.enum.ts","./src/app/models/enums/viewtype.enum.ts","./src/app/models/enums/whitespace.enum.ts","./src/app/models/enums/wordtreetype.enum.ts","./src/app/models/enums/workflowerrortype.enum.ts","./src/app/models/enums/workflowparametertype.enum.ts","./src/app/models/enums/workflowtype.enum.ts","./src/app/models/enums/workflowviewtype.enum.ts","./src/app/models/git/gitcomparison.model.ts","./src/app/models/layout.model.ts","./src/app/models/layout/layout.change.model.ts","./src/app/models/layout/layout.edit.client.ts","./src/app/models/layout/raster.model.ts","./src/app/models/layoutbase.model.ts","./src/app/models/layoutelement.model.ts","./src/app/models/menutab/menutab.property.model.ts","./src/app/models/notification/receivedmessage.model.ts","./src/app/models/offline/offline.model.ts","./src/app/models/page.status.ts","./src/app/models/planning/cell.reference.model.ts","./src/app/models/planning/planvalues.model.ts","./src/app/models/query/relcolumn.model.ts","./src/app/models/query/relquerydef.model.ts","./src/app/models/query/relrequestcolumn.model.ts","./src/app/models/reportobjects/reporttablesettings.model.ts","./src/app/models/rest/mapping.structure.ts","./src/app/models/rest/requestcolumn.ts","./src/app/models/rest/requestfilter.ts","./src/app/models/rest/requestoptions.ts","./src/app/models/rest/requestparameters.ts","./src/app/models/rest/requestsort.ts","./src/app/models/ribbon/action.model.ts","./src/app/models/selects/select.model.ts","./src/app/models/style/border.model.ts","./src/app/models/style/borderradius.model.ts","./src/app/models/style/borderside.model.ts","./src/app/models/style/color.model.ts","./src/app/models/style/font.model.ts","./src/app/models/style/gradient.model.ts","./src/app/models/style/gradientstopcolor.model.ts","./src/app/models/style/theme.model.ts","./src/app/models/styling/cell.style.ts","./src/app/models/styling/chart.style.merger.ts","./src/app/models/styling/number.format.model.ts","./src/app/models/styling/styleMerger.ts","./src/app/models/tasks/atask.model.ts","./src/app/models/tasks/chartformattasks/bubble.series.formatting.task.ts","./src/app/models/tasks/chartformattasks/chart.format.model.ts","./src/app/models/tasks/chartformattasks/chart.series.formatting.task.ts","./src/app/models/tasks/chartformattasks/chart.series.label.task.ts","./src/app/models/tasks/conditional.model.ts","./src/app/models/tasks/datatasks/calculate.model.ts","./src/app/models/tasks/datatasks/codedescription.model.ts","./src/app/models/tasks/datatasks/cumulate.model.ts","./src/app/models/tasks/datatasks/datasort.model.ts","./src/app/models/tasks/datatasks/edit.model.ts","./src/app/models/tasks/datatasks/filter.model.ts","./src/app/models/tasks/datatasks/previous.level.model.ts","./src/app/models/tasks/datatasks/rank.model.ts","./src/app/models/tasks/datatasks/topdown.model.ts","./src/app/models/tasks/defaulttasks/sum.row.task.ts","./src/app/models/tasks/formattasks/aconditional.formatting.task.ts","./src/app/models/tasks/formattasks/conditionallevel.formatting.task.ts","./src/app/models/tasks/formattasks/conditionalmeasure.formatting.task.ts","./src/app/models/tasks/formattasks/level.formatting.task.ts","./src/app/models/tasks/formattasks/levelheader.formatting.task.ts","./src/app/models/tasks/formattasks/measure.formatting.task.ts","./src/app/models/tasks/formattasks/measureheader.formatting.task.ts","./src/app/models/tasks/formattasks/sum.formatting.task.ts","./src/app/models/tasks/formattasks/sum.xlevel.formatting.task.ts","./src/app/models/tasks/planning/cell.formatting.task.ts","./src/app/models/tasks/planning/content.formatting.task.ts","./src/app/models/tasks/planning/header.formatting.task.ts","./src/app/models/tasks/planning/rowdesc.formatting.task.ts","./src/app/models/tasks/task.helper.ts","./src/app/models/time/dynamictimepoint.model.ts","./src/app/models/time/dynamictimerange.model.ts","./src/app/models/time/timerangereference.model.ts","./src/app/models/translatedstring.model.ts","./src/app/models/userconfig.model.ts","./src/app/models/variable.model.ts","./src/app/models/workflow/debug.log.message.ts","./src/app/models/workflow/workflow.debug.settings.ts","./src/app/models/workflow/workflow.model.ts","./src/app/offline/endpoints/capsule.endpoints.ts","./src/app/offline/endpoints/dynamic.endpoints.ts","./src/app/offline/endpoints/dynamicdata.endpoints.ts","./src/app/offline/endpoints/globalvariable.endpoints.ts","./src/app/offline/endpoints/language.endpoints.ts","./src/app/offline/endpoints/media.endpoints.ts","./src/app/offline/endpoints/meta.endpoints.ts","./src/app/offline/endpoints/permissions.endpoints.ts","./src/app/offline/endpoints/roles.endpoints.ts","./src/app/offline/endpoints/sidenav.endpoints.ts","./src/app/offline/endpoints/translation.endpoints.ts","./src/app/offline/endpoints/usersettings.endpoints.ts","./src/app/offline/offline.client.ts","./src/app/registries/actions/actions.registry.ts","./src/app/registries/controls/component.registry.mac.helper.ts","./src/app/registries/controls/component.registry.middle.helper.ts","./src/app/registries/controls/component.registry.ts","./src/app/registries/settings/app.mw.settings.ts","./src/app/registries/settings/mac.settings.ts","./src/app/registries/settings/settings.registry.ts","./src/app/registries/tasks/mac.tasks.ts","./src/app/registries/workflows/app.mw.workflow.ts","./src/app/registries/workflows/mac.workflows.ts","./src/app/registries/workflows/workflow.registry.ts","./src/app/script/modules/executer.script.ts","./src/app/script/modules/parser.script.ts","./src/app/script/modules/registry.script.ts","./src/app/script/modules/wrapper/cultureinfo.wrapper.script.ts","./src/app/script/modules/wrapper/global.wrapper.script.ts","./src/app/script/modules/wrapper/layout.wrapper.script.ts","./src/app/script/modules/wrapper/math.wrapper.script.ts","./src/app/script/modules/wrapper/status.wrapper.script.ts","./src/app/script/script.model.ts","./src/app/script/scriptoperation.model.ts","./src/app/services/agent.service.ts","./src/app/services/appbuildersettings.service.ts","./src/app/services/basic_auth.interceptor.ts","./src/app/services/capsule.service.ts","./src/app/services/changelog.service.ts","./src/app/services/collaboration.service.ts","./src/app/services/connector.service.ts","./src/app/services/customrest.service.ts","./src/app/services/data.preview.service.ts","./src/app/services/data.service.ts","./src/app/services/data.settings.service.ts","./src/app/services/datadescription.service.ts","./src/app/services/datamodel.service.ts","./src/app/services/datatable-communication.service.ts","./src/app/services/debug.service.ts","./src/app/services/dynamic.component.service.ts","./src/app/services/dynamicdata.service.ts","./src/app/services/dynamictimesettings.service.ts","./src/app/services/export.service.ts","./src/app/services/external-rest-endpoints.service.ts","./src/app/services/formula.service.ts","./src/app/services/generalsettings.service.ts","./src/app/services/git.service.ts","./src/app/services/global-search.service.ts","./src/app/services/globalvariable.service.ts","./src/app/services/interceptor.skip.header.ts","./src/app/services/jira.service.ts","./src/app/services/kpi.service.ts","./src/app/services/language.service.ts","./src/app/services/layout.service.ts","./src/app/services/logs.service.ts","./src/app/services/mailsettings.service.ts","./src/app/services/media.service.ts","./src/app/services/meta.service.ts","./src/app/services/mobile-config.service.ts","./src/app/services/monitoring.service.ts","./src/app/services/navigation.service.ts","./src/app/services/numbercircle.service.ts","./src/app/services/offline.service.ts","./src/app/services/owl.services.ts","./src/app/services/permissions.service.ts","./src/app/services/planning.service.ts","./src/app/services/query.engine.service.ts","./src/app/services/refresh-token.service.ts","./src/app/services/refresh.interceptor.ts","./src/app/services/relSource.service.ts","./src/app/services/reporting.service.ts","./src/app/services/request-base.ts","./src/app/services/rest.service.ts","./src/app/services/roles.service.ts","./src/app/services/scheduler.service.ts","./src/app/services/scriptlibrary.service.ts","./src/app/services/security.service.ts","./src/app/services/settings.service.ts","./src/app/services/sidenav.service.ts","./src/app/services/translation.service.ts","./src/app/services/users.service.ts","./src/app/services/usersettings.service.ts","./src/app/services/versioning.service.ts","./src/app/services/webhook.service.ts","./src/app/services/webpush.service.ts","./src/app/services/websocket.service.ts","./src/app/services/worker.service.ts","./src/app/services/workflow-communication.service.ts","./src/app/services/workflow.service.ts","./src/app/services/workflow.wizard.service.ts","./src/app/settings/about/about.settings.ts","./src/app/settings/actions/datasource/changedatasource.action.ts","./src/app/settings/actions/deployactions.settings.ts","./src/app/settings/agent/agent.settings.ts","./src/app/settings/base.list.settings.ts","./src/app/settings/capsuleoverview/capsule.overview.page.ts","./src/app/settings/changelogoverview/changelog.overview.ts","./src/app/settings/changelogoverview/save.changelog.dialog.ts","./src/app/settings/ci/appbuilder/appbuilder.settings.ts","./src/app/settings/ci/chartpalette/chart.palette.settings.ts","./src/app/settings/ci/controlstyles/control.styles.settings.ts","./src/app/settings/ci/customcss/customcss.settings.ts","./src/app/settings/ci/customcssvars/customcssvars.settings.ts","./src/app/settings/ci/fonts/font.settings.ts","./src/app/settings/ci/icons/icon.settings.ts","./src/app/settings/ci/system-icons/system-icon.settings.ts","./src/app/settings/ci/tags/metatags.settings.ts","./src/app/settings/ci/theme/theme.settings.ts","./src/app/settings/common/abaseelement.name.control.ts","./src/app/settings/connector/connector.overview.settings.ts","./src/app/settings/connector/connector.workflow.edit.dialog.ts","./src/app/settings/connector/scripts/connector.scripts.settings.ts","./src/app/settings/connector/wfmapping/connector.wfmapping.settings.ts","./src/app/settings/datadescription/datadescription.settings.ts","./src/app/settings/datamodel/common/adatamodeldetail.ts","./src/app/settings/datamodel/common/adatapreview.settings.ts","./src/app/settings/datamodel/common/containerrelation.overview.ts","./src/app/settings/datamodel/common/logininfo.control.ts","./src/app/settings/datamodel/common/query.relation.overview.ts","./src/app/settings/datamodel/containerbusinessmodel/containerbusinessmodel.settings.ts","./src/app/settings/datamodel/containercsv/containercsv.settings.ts","./src/app/settings/datamodel/containercube/containercube.settings.ts","./src/app/settings/datamodel/containerdatetime/containerdatetime.settings.ts","./src/app/settings/datamodel/containerdimension/containerdimension.settings.ts","./src/app/settings/datamodel/containeremail/containeremail.settings.ts","./src/app/settings/datamodel/containerenumtable/container.enum.table.settings.ts","./src/app/settings/datamodel/containerexcel/containerexcel.settings.ts","./src/app/settings/datamodel/containerjson/containerjson.settings.ts","./src/app/settings/datamodel/containerobjectview/containerobjectview.settings.ts","./src/app/settings/datamodel/containerrest/containerrest.detail.ts","./src/app/settings/datamodel/containerrest/containerrest.settings.ts","./src/app/settings/datamodel/containerrest/mapping/forms/base.mapping.ts","./src/app/settings/datamodel/containerrest/mapping/forms/fixed.mapping.ts","./src/app/settings/datamodel/containerrest/mapping/forms/order.mapping.ts","./src/app/settings/datamodel/containerrest/mapping/forms/paging.mapping.ts","./src/app/settings/datamodel/containerrest/mapping/forms/select.mapping.ts","./src/app/settings/datamodel/containerrest/mapping/forms/update.mapping.ts","./src/app/settings/datamodel/containerrest/mapping/forms/where.mapping.ts","./src/app/settings/datamodel/containerrest/mapping/rest.mapping.ts","./src/app/settings/datamodel/containerrest/models/object.for.datasource.ts","./src/app/settings/datamodel/containertable/containertable.settings.ts","./src/app/settings/datamodel/containertabular/containertabular.settings.ts","./src/app/settings/datamodel/containerview/containerview.settings.ts","./src/app/settings/datamodel/containerwebfeed/containerwebfeed.settings.ts","./src/app/settings/datamodel/containerxml/containerxml.settings.ts","./src/app/settings/datamodel/datamodel.settings.ts","./src/app/settings/datamodel/dataobject/dataobject.field.dialog.ts","./src/app/settings/datamodel/dataobject/dataobject.settings.ts","./src/app/settings/datamodel/dataobject/dataobject.translate.dialog.ts","./src/app/settings/datamodel/datasource/datasource.settings.ts","./src/app/settings/datamodel/datasource/datasourcepanels/asdb/asdb.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/basedatasource.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/bigquery/bigquery.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/cassandra/cassandra.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/connectors/connectors.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/cosmosdb/cosmosdb.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/couchbase/couchbase.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/crate/crate.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/db2/db2.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/dbinfo.interactive.property.control.ts","./src/app/settings/datamodel/datasource/datasourcepanels/dymanics365/dynamics365.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/dynamodb/dynamodb.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/filesystemdb/filesystemdb.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/ftpdb/ftpdb.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/imapclient/imap.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/lexbizz/lexbizz.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/litedb/litedb.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/mediasourcedb/msdb.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/mongodb/mongodb.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/mysqldb/mysqldb.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/nodatabase/nodatabase.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/odbcdb/odbcdb.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/openai/openai.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/oracledb/oracledb.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/postgredb/postgredb.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/rest/rest.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/rolapdb/rolapdb.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/sambadb/sambadb.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/sapb1db/sapb1db.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/sqldb/sqldb.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/tabular/tabular.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/tsbdb/tsbdb.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/webdavdb/webdavdb.panel.ts","./src/app/settings/datamodel/datasource/datasourcepanels/webdb/webdb.panel.ts","./src/app/settings/datamodel/dialogs/attribute.chooser.dialog.ts","./src/app/settings/datamodel/dialogs/container.attribute.edit.dialog.ts","./src/app/settings/datamodel/dialogs/container.businessmodel.elements.dialog.ts","./src/app/settings/datamodel/dialogs/container.businessmodel.line.dialog.ts","./src/app/settings/datamodel/dialogs/container.field.edit.dialog.ts","./src/app/settings/datamodel/dialogs/container.tabular.column.edit.dialog.ts","./src/app/settings/datamodel/dialogs/containerpath.chooser.dialog.ts","./src/app/settings/datamodel/dialogs/containerrelation.edit.dialog.ts","./src/app/settings/datamodel/dialogs/containerview.column.dialog.ts","./src/app/settings/datamodel/dialogs/rel.query.def.dialog.ts","./src/app/settings/datamodel/dialogs/related.attributes.dialog.ts","./src/app/settings/datamodel/dialogs/tabular.column.dialog.ts","./src/app/settings/datamodel/enum/containerenum.settings.ts","./src/app/settings/datamodel/mediasource/mediasource.settings.ts","./src/app/settings/datamodel/mediasource/mediasourcepanel/amazondrive/amazondrive.panel.ts","./src/app/settings/datamodel/mediasource/mediasourcepanel/auzureblob/auzureblob.panel.ts","./src/app/settings/datamodel/mediasource/mediasourcepanel/basemediasource.panel.ts","./src/app/settings/datamodel/mediasource/mediasourcepanel/box/box.panel.ts","./src/app/settings/datamodel/mediasource/mediasourcepanel/dropbox/dropbox.panel.ts","./src/app/settings/datamodel/mediasource/mediasourcepanel/googledrive/googledrive.panel.ts","./src/app/settings/datamodel/mediasource/mediasourcepanel/minio/minio.panel.ts","./src/app/settings/datamodel/mediasource/mediasourcepanel/onedrive/onedrive.panel.ts","./src/app/settings/datamodel/mediasource/mediasourcepanel/sharepoint/sharepoint.panel.ts","./src/app/settings/development/git/git.settings.ts","./src/app/settings/dynamictimepoint/dtp.reference.dialog.ts","./src/app/settings/dynamictimepoint/dynamic.timepoint.settings.ts","./src/app/settings/erd/edit/erd.edit.settings.ts","./src/app/settings/erd/erd.settings.ts","./src/app/settings/erd/overview/erd.overview.settings.ts","./src/app/settings/external/customrest/customrest.settings.ts","./src/app/settings/general/general.settings.ts","./src/app/settings/globalvariable/globalvariable.settings.ts","./src/app/settings/groups/groups.settings.ts","./src/app/settings/jira/jira.settings.ts","./src/app/settings/jobs/joblogs/jobs.logs.ts","./src/app/settings/jobs/jobs.settings.ts","./src/app/settings/jobs/queue/job.info.dialog.ts","./src/app/settings/jobs/queue/jobs.queue.ts","./src/app/settings/kpi/kpi.category.settings.ts","./src/app/settings/kpi/kpi.settings.ts","./src/app/settings/languages/languages.settings.ts","./src/app/settings/layoutevents/layout.events.settings.ts","./src/app/settings/logsettings/logs.settings.ts","./src/app/settings/logsettings/logsdialog.component.ts","./src/app/settings/logsettings/logsdialogsystem.component.ts","./src/app/settings/logsettings/logsmails/logsmails.settings.ts","./src/app/settings/mail/mail.settings.ts","./src/app/settings/messagesettings/MessageSettingsService.ts","./src/app/settings/messagesettings/Trigger/tapp.message.worker.control.ts","./src/app/settings/messagesettings/User/add.user.ts","./src/app/settings/messagesettings/User/dispatcher.timer.ts","./src/app/settings/navigation/overview/navigation.overview.settings.ts","./src/app/settings/navigation/overview/navigation.overview.version.settings.ts","./src/app/settings/navigation/structure/navigation.structure.settings.ts","./src/app/settings/numbercircles/numbercircle.settings.ts","./src/app/settings/output/output.settings.ts","./src/app/settings/output/repeating.chooser.ts","./src/app/settings/pages/pages.detail.ts","./src/app/settings/pages/pages.settings.ts","./src/app/settings/pages/pages.version.settings.ts","./src/app/settings/provider/amazon/amazon.form.ts","./src/app/settings/provider/azuread/azuread.form.ts","./src/app/settings/provider/facebook/facebook.form.ts","./src/app/settings/provider/google/google.form.ts","./src/app/settings/provider/identity/identity.form.ts","./src/app/settings/provider/identity/identity.mfa.mail.dialog.ts","./src/app/settings/provider/instagram/instagram.form.ts","./src/app/settings/provider/ldap/ldap.form.ts","./src/app/settings/provider/linkdid/linkdid.form.ts","./src/app/settings/provider/provider.settings.ts","./src/app/settings/provider/simple/simple.form.ts","./src/app/settings/provider/twitter/twitter.form.ts","./src/app/settings/rest/models/auth.type.ts","./src/app/settings/rest/models/end.point.description.ts","./src/app/settings/rest/models/end.point.rest.item.ts","./src/app/settings/rest/models/import.init.args.ts","./src/app/settings/rest/models/oauth2.settings.ts","./src/app/settings/rest/models/rest.container.classobject.ts","./src/app/settings/rest/models/rest.item.ts","./src/app/settings/rest/models/rest.object.ts","./src/app/settings/rest/rest.overview/access.token.dialog/access.token.dialog.ts","./src/app/settings/rest/rest.overview/end.point.settings/end.point.rest/end.point.content.type.dialog/end.point.content.type.dialog.ts","./src/app/settings/rest/rest.overview/end.point.settings/end.point.rest/end.point.parameter.dialog/end.point.parameter.dialog.ts","./src/app/settings/rest/rest.overview/end.point.settings/end.point.rest/end.point.rest.ts","./src/app/settings/rest/rest.overview/end.point.settings/end.point.rest/end.pont.rest.detail.ts","./src/app/settings/rest/rest.overview/end.point.settings/import.rest/import.rest.ts","./src/app/settings/rest/rest.overview/end.point.settings/mappings.rest/mapping.rest.detail.ts","./src/app/settings/rest/rest.overview/end.point.settings/mappings.rest/mapping.rest.ts","./src/app/settings/rest/rest.overview/end.point.settings/mappings.rest/mapping.rest.values.dialog/mapping.rest.values.dialog.ts","./src/app/settings/rest/rest.overview/end.point.settings/rest.objects/rest.object.property.dialog/rest.object.property.dialog.ts","./src/app/settings/rest/rest.overview/end.point.settings/rest.objects/rest.objects.detail.ts","./src/app/settings/rest/rest.overview/end.point.settings/rest.objects/rest.objects.ts","./src/app/settings/rest/rest.overview/end.point.settings/templates.rest/template.column.dialog/template.column.dialog.ts","./src/app/settings/rest/rest.overview/end.point.settings/templates.rest/template.rest.detail.ts","./src/app/settings/rest/rest.overview/end.point.settings/templates.rest/templates.rest.ts","./src/app/settings/rest/rest.overview/end.point.settings/webhook.rest/webhook.rest.detail.ts","./src/app/settings/rest/rest.overview/end.point.settings/webhook.rest/webhook.rest.ts","./src/app/settings/rest/rest.overview/rest.overview.component.ts","./src/app/settings/rest/rest.overview/rest.overview.ts","./src/app/settings/roles/childRoles/childroles.settings.ts","./src/app/settings/roles/container/container.settings.ts","./src/app/settings/roles/enumSec/enumsec.settings.ts","./src/app/settings/roles/permissions/permissions.page.ts","./src/app/settings/roles/roles.settings.ts","./src/app/settings/scheduler/controls/base.scheduler.control.ts","./src/app/settings/scheduler/controls/triggercontrols/base.trigger.control.ts","./src/app/settings/scheduler/controls/triggercontrols/cco.trigger.control.ts","./src/app/settings/scheduler/controls/triggercontrols/filesystem.trigger.control.ts","./src/app/settings/scheduler/controls/triggercontrols/ftp.trigger.control.ts","./src/app/settings/scheduler/controls/triggercontrols/mail.trigger.control.ts","./src/app/settings/scheduler/controls/triggercontrols/time.trigger.control.ts","./src/app/settings/scheduler/controls/triggercontrols/webhook.trigger.control.ts","./src/app/settings/scheduler/controls/workercontrols/base.worker.control.ts","./src/app/settings/scheduler/controls/workercontrols/capsuleexport/capsule.export.worker.control.ts","./src/app/settings/scheduler/controls/workercontrols/capsuleimport/capsule.import.worker.control.ts","./src/app/settings/scheduler/controls/workercontrols/dbbackup/dbbackup.worker.control.ts","./src/app/settings/scheduler/controls/workercontrols/workflow/workflow.worker.control.ts","./src/app/settings/scheduler/scheduler.settings.ts","./src/app/settings/scriptlibrary/scriptlibrary.settings.ts","./src/app/settings/scriptlibrary/scriptlibrary.version.settings.ts","./src/app/settings/systemdatabase/systempassthrough.settings.ts","./src/app/settings/templates/templates.settings.ts","./src/app/settings/templates/templates.version.settings.ts","./src/app/settings/translations/translations.settings.ts","./src/app/settings/user-permissions/user-permissions.settings.ts","./src/app/settings/user-roles/user-roles.settings.ts","./src/app/settings/user/user.provider.settings.ts","./src/app/settings/user/user.settings.ts","./src/app/settings/versioningoverview/versioning.overview.ts","./src/app/settings/workflow/edit.workflow.group.dialog.ts","./src/app/settings/workflow/workflow.settings.ts","./src/app/settings/workflow/workflow.version.settings.ts","./src/app/settings/workflowwizard/workflow.wizard.component.ts","./src/app/settings/workflowwizard/workflow.wizard.control.ts","./src/app/settings/workflowwizard/workflow.wizard.edit.item.ts","./src/app/settings/workflowwizard/workflow.wizard.menu.tab.ts","./src/app/settings/workflowwizard/workflow.wizard.settings.ts","./src/app/shared-module/shared.module.ts","./src/app/tour-guide/tour-step-template/tour-step-template.component.ts","./src/app/workflow/disabled-workflow.edit.dialog.ts","./src/app/workflow/modules/audio/audio.settings.ts","./src/app/workflow/modules/condition/condition.settings.ts","./src/app/workflow/modules/containeroperations/container.chooser.ts","./src/app/workflow/modules/containeroperations/executecount/execute.count.settings.ts","./src/app/workflow/modules/containeroperations/executedelete/execute.delete.settings.ts","./src/app/workflow/modules/containeroperations/executeinsert/execute.insert.settings.ts","./src/app/workflow/modules/containeroperations/executeread/execute.read.settings.ts","./src/app/workflow/modules/containeroperations/executereplace/execute.replace.settings.ts","./src/app/workflow/modules/containeroperations/executeupdate/execute.update.settings.ts","./src/app/workflow/modules/convertToImage/convertToImage.settings.ts","./src/app/workflow/modules/dataoperations/add.settings.ts","./src/app/workflow/modules/dataoperations/addcolumns/addcolumns.settings.ts","./src/app/workflow/modules/dataoperations/aggregate/aggregate.settings.ts","./src/app/workflow/modules/dataoperations/ai/anomalydetection/anomaly.detection.settings.ts","./src/app/workflow/modules/dataoperations/ai/augment.control.ts","./src/app/workflow/modules/dataoperations/ai/clustering/clustering.settings.ts","./src/app/workflow/modules/dataoperations/ai/correlation/correlation.settings.ts","./src/app/workflow/modules/dataoperations/ai/luis/luis.settings.ts","./src/app/workflow/modules/dataoperations/ai/multianomalydetection/multi.anomaly.detection.settings.ts","./src/app/workflow/modules/dataoperations/ai/multifeaturemodel/multi.feature.model.settings.ts","./src/app/workflow/modules/dataoperations/ai/multifeatureprediction/multi.feature.prediction.settings.ts","./src/app/workflow/modules/dataoperations/ai/region.control.ts","./src/app/workflow/modules/dataoperations/ai/singlefeaturemodel/single.feature.model.settings.ts","./src/app/workflow/modules/dataoperations/ai/singlefeatureprediction/single.feature.prediction.settings.ts","./src/app/workflow/modules/dataoperations/ai/textclassificationmodel/text.classification.model.settings.ts","./src/app/workflow/modules/dataoperations/ai/textclassificationpredict/text.classification.predict.settings.ts","./src/app/workflow/modules/dataoperations/changedatatype/changedatatype.settings.ts","./src/app/workflow/modules/dataoperations/cleardeltainfo/cleardeltainfo.settings.ts","./src/app/workflow/modules/dataoperations/datasource/datasource.settings.ts","./src/app/workflow/modules/dataoperations/delete.settings.ts","./src/app/workflow/modules/dataoperations/deletebyfilter.settings.ts","./src/app/workflow/modules/dataoperations/editcolumns/editcolumns.settings.ts","./src/app/workflow/modules/dataoperations/executeonactual/executeonactual.settings.ts","./src/app/workflow/modules/dataoperations/exportdata/exportdata.settings.ts","./src/app/workflow/modules/dataoperations/generatereader/generate.reader.settings.ts","./src/app/workflow/modules/dataoperations/pivot/pivot.settings.ts","./src/app/workflow/modules/dataoperations/python/python.settings.ts","./src/app/workflow/modules/dataoperations/read.data.settings.ts","./src/app/workflow/modules/dataoperations/read.settings.ts","./src/app/workflow/modules/dataoperations/readrowdata/readrowdata.settings.ts","./src/app/workflow/modules/dataoperations/refresh.settings.ts","./src/app/workflow/modules/dataoperations/reltoobject/reltoobject.data.ts","./src/app/workflow/modules/dataoperations/reltoobject/reltoobject.object.settings.ts","./src/app/workflow/modules/dataoperations/reltoobject/reltoobject.settings.ts","./src/app/workflow/modules/dataoperations/save.settings.ts","./src/app/workflow/modules/dataoperations/simplecomparison/simplecomparison.settings.ts","./src/app/workflow/modules/dataoperations/uniondatasource/unionds.settings.ts","./src/app/workflow/modules/dataoperations/unpivot/unpivot.settings.ts","./src/app/workflow/modules/dataswitch/dataswitch.settings.ts","./src/app/workflow/modules/definedate/define.date.settings.ts","./src/app/workflow/modules/definelist/define.list.settings.ts","./src/app/workflow/modules/defineobject/define.objects.settings.ts","./src/app/workflow/modules/definetext/define.texts.settings.ts","./src/app/workflow/modules/definevalue/define.multi.values.settings.ts","./src/app/workflow/modules/definevalue/define.value.settings.ts","./src/app/workflow/modules/documentoperations/generatedocumentstructure/generate.document.structure.settings.ts","./src/app/workflow/modules/documentoperations/getobjectandtemplatefrompython/get.object.and.template.from.python.ts","./src/app/workflow/modules/documentoperations/getobjectfromdocumentstructure/get.object.from.document.structure.settings.ts","./src/app/workflow/modules/download/download.settings.ts","./src/app/workflow/modules/enumSwitch/enum.switch.advanced.settings.ts","./src/app/workflow/modules/enumSwitch/enumSwitch.settings.ts","./src/app/workflow/modules/events/trigger.event.settings.ts","./src/app/workflow/modules/events/trigger.layout.event.settings.ts","./src/app/workflow/modules/executeWorkflow/executeWorkflow.settings.ts","./src/app/workflow/modules/fileoperations/deleteresource/delete.resource.settings.ts","./src/app/workflow/modules/fileoperations/loadresource/load.resource.settings.ts","./src/app/workflow/modules/fileoperations/saveresource/save.resource.settings.ts","./src/app/workflow/modules/fileoperations/writetotcp/write.to.tcp.settings.ts","./src/app/workflow/modules/forEach/forEachLoop.settings.ts","./src/app/workflow/modules/generateoutput/generateoutput.settings.ts","./src/app/workflow/modules/kpi/fillkpi/fill.kpi.settings.ts","./src/app/workflow/modules/kpi/readkpi/read.kpi.settings.ts","./src/app/workflow/modules/layout/addToDatasource/addtodatasource.settings.ts","./src/app/workflow/modules/layout/closedropdown/close.dropdown.settings.ts","./src/app/workflow/modules/layout/elemProperty/elemProperty.settings.ts","./src/app/workflow/modules/layout/elemProperty/read.control.properties.settings.ts","./src/app/workflow/modules/layout/elemProperty/set.control.properties.settings.ts","./src/app/workflow/modules/layout/elemValue/elemValue.settings.ts","./src/app/workflow/modules/layout/elemValue/get.multi.elem.value.settings.ts","./src/app/workflow/modules/layout/elemValue/set.multi.elem.value.settings.ts","./src/app/workflow/modules/layout/layout.item.chooser.ts","./src/app/workflow/modules/layout/opendropdown/open.dropdown.settings.ts","./src/app/workflow/modules/layout/removeFromDatasource/removefromdatasource.settings.ts","./src/app/workflow/modules/layout/scrollTo/scroll.to.settings.ts","./src/app/workflow/modules/layout/setFocus/set.focus.settings.ts","./src/app/workflow/modules/layout/setStyle/remove.multi.style.settings.ts","./src/app/workflow/modules/layout/setStyle/set.multi.style.settings.ts","./src/app/workflow/modules/layout/setStyle/set.style.settings.ts","./src/app/workflow/modules/linkexternal/linkexternal.settings.ts","./src/app/workflow/modules/listoperations/getlistcount.settings.ts","./src/app/workflow/modules/listoperations/getlistitem.settings.ts","./src/app/workflow/modules/listoperations/getlistitemcalc.settings.ts","./src/app/workflow/modules/login/login.settings.ts","./src/app/workflow/modules/navigation/navigationparameters.settings.ts","./src/app/workflow/modules/navigation/openURL.settings.ts","./src/app/workflow/modules/navigation/preventnavigation.settings.ts","./src/app/workflow/modules/navigation/read.url.settings.ts","./src/app/workflow/modules/navigation/url.navigation.settings.ts","./src/app/workflow/modules/objectoperations/addproperties/add.properties.settings.ts","./src/app/workflow/modules/objectoperations/ai/python.object.settings.ts","./src/app/workflow/modules/objectoperations/editproperties/editproperties.settings.ts","./src/app/workflow/modules/objectoperations/generatereader/generate.object.reader.settings.ts","./src/app/workflow/modules/objectoperations/object.property.chooser.ts","./src/app/workflow/modules/objectoperations/objecttorel/objecttorel.settings.ts","./src/app/workflow/modules/objectoperations/readobjectprops/readobjectprops.settings.ts","./src/app/workflow/modules/objectoperations/replaceenum/replaceenum.settings.ts","./src/app/workflow/modules/offline/delete.offline.value.settings.ts","./src/app/workflow/modules/offline/get.offline.value.settings.ts","./src/app/workflow/modules/offline/set.offline.value.settings.ts","./src/app/workflow/modules/profile/add/add.profile.settings.ts","./src/app/workflow/modules/profile/apply/apply.profile.settings.ts","./src/app/workflow/modules/profile/delete/delete.profile.settings.ts","./src/app/workflow/modules/profile/read/read.profiles.settings.ts","./src/app/workflow/modules/profile/update/update.profile.settings.ts","./src/app/workflow/modules/readProperty/read.multi.property.settings.ts","./src/app/workflow/modules/readProperty/readProperty.settings.ts","./src/app/workflow/modules/readProperty/set.multi.property.settings.ts","./src/app/workflow/modules/readProperty/setProperty.settings.ts","./src/app/workflow/modules/readselectedcoordinates/read.selected.coordinates.settings.ts","./src/app/workflow/modules/rest/execute.rest.endpoint.settings.ts","./src/app/workflow/modules/rest/rest.object.info.dialog.ts","./src/app/workflow/modules/restCall/restCall.settings.ts","./src/app/workflow/modules/savetomediasource/savetomediasource.settings.ts","./src/app/workflow/modules/script/execute.script.settings.ts","./src/app/workflow/modules/sendmessage/sendmessage.settings.ts","./src/app/workflow/modules/sendmessage/trigger.message.settings.ts","./src/app/workflow/modules/sendnotification/send.notification.settings.ts","./src/app/workflow/modules/service.workflow.usage.dialog.ts","./src/app/workflow/modules/service/editimage/editimage.settings.ts","./src/app/workflow/modules/service/gettriggercontext/get.trigger.context.settings.ts","./src/app/workflow/modules/service/redis/addtoredis.settings.ts","./src/app/workflow/modules/service/redis/getfromredis.settings.ts","./src/app/workflow/modules/service/redis/removefromredis.settings.ts","./src/app/workflow/modules/service/sendmail/sendmail.settings.ts","./src/app/workflow/modules/service/start/start.settings.ts","./src/app/workflow/modules/setqueryview/set.query.view.settings.ts","./src/app/workflow/modules/settaskactivity/set.task.activity.ts","./src/app/workflow/modules/showDialog/acontent.dialog.ts","./src/app/workflow/modules/showDialog/close.dialog.settings.ts","./src/app/workflow/modules/showDialog/disable.dialog.close.settings.ts","./src/app/workflow/modules/showDialog/layout.dialog.content.ts","./src/app/workflow/modules/showDialog/show.content.dialog.settings.ts","./src/app/workflow/modules/showDialog/show.messagebox.settings.ts","./src/app/workflow/modules/showDialog/showDialog.settings.ts","./src/app/workflow/modules/showDialog/template.dialog.content.ts","./src/app/workflow/modules/showwizard/show.wizard.dialog.ts","./src/app/workflow/modules/showwizard/show.wizard.settings.ts","./src/app/workflow/modules/simple/getCurrentDate.settings.ts","./src/app/workflow/modules/simple/getCurrentGeoLocation.settings.ts","./src/app/workflow/modules/simple/getCurrentLanguage.settings.ts","./src/app/workflow/modules/simple/getCurrentUser.settings.ts","./src/app/workflow/modules/sleep/sleep.settings.ts","./src/app/workflow/modules/startend/end.wfmodule.ts","./src/app/workflow/modules/startend/start.wfmodule.ts","./src/app/workflow/modules/template/template.advanced.settings.ts","./src/app/workflow/modules/template/template.settings.ts","./src/app/workflow/modules/variables/readGlobalVariable/read.multi.global.variable.settings.ts","./src/app/workflow/modules/variables/readGlobalVariable/readGlobalVariable.settings.ts","./src/app/workflow/modules/variables/readVariable/read.multi.variable.settings.ts","./src/app/workflow/modules/variables/readVariable/readVariable.settings.ts","./src/app/workflow/modules/variables/setGlobalVariable/set.multi.global.variable.settings.ts","./src/app/workflow/modules/variables/setGlobalVariable/setGlobalVariable.settings.ts","./src/app/workflow/modules/variables/setVariable/set.multi.variable.settings.ts","./src/app/workflow/modules/variables/setVariable/setVariable.settings.ts","./src/app/workflow/modules/wfStatus/getWFStatus.settings.ts","./src/app/workflow/modules/wfStatus/setWFStatus.settings.ts","./src/app/workflow/workflow.container.chooser.ts","./src/app/workflow/workflow.control.ts","./src/app/workflow/workflow.dialog.ts","./src/app/workflow/workflow.edit.dialog.ts","./src/app/workflow/workflow.engine.ts","./src/app/workflow/workflow.expression.dialog.ts","./src/app/workflow/workflow.item.ts","./src/app/workflow/workflow.param.dialog.ts","./src/environments/environment.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$","ignored|/home/azureuser/ga-universe/Web/GAWeb/ClientApp/node_modules/crypto-js|crypto","ignored|/home/azureuser/ga-universe/Web/GAWeb/ClientApp/node_modules/global|min-document","ignored|/home/azureuser/ga-universe/Web/GAWeb/ClientApp/node_modules/pdfjs-dist/build|canvas","ignored|/home/azureuser/ga-universe/Web/GAWeb/ClientApp/node_modules/pdfjs-dist/build|fs","ignored|/home/azureuser/ga-universe/Web/GAWeb/ClientApp/node_modules/pdfjs-dist/build|http","ignored|/home/azureuser/ga-universe/Web/GAWeb/ClientApp/node_modules/pdfjs-dist/build|https","ignored|/home/azureuser/ga-universe/Web/GAWeb/ClientApp/node_modules/pdfjs-dist/build|url","ignored|/home/azureuser/ga-universe/Web/GAWeb/ClientApp/node_modules/pdfjs-dist/build|zlib","ignored|/home/azureuser/ga-universe/Web/GAWeb/ClientApp/node_modules/seedrandom|crypto"],"sourcesContent":["import { Component, OnDestroy, OnInit } from \"@angular/core\"\nimport { TourService } from \"ngx-ui-tour-md-menu\"\nimport { MatIconRegistry } from \"@angular/material/icon\"\nimport { DomSanitizer } from \"@angular/platform-browser\"\nimport icons from \"../assets/icons/svg-icons.json\"\n\n// import { ComponentRegistry } from './helpers/component.registry.helper';\n// import { MACSettingsRegistryHelper } from './imports/mac.settings';\n// import { TaskRegistryHelper } from './imports/mac.tasks';\n// import { PageStatus } from './models/page.status';\n// import { NavigationService } from './services/navigation.service';\n// import { MacWorkflowRegistryHelper } from './imports/mac.workflows';\n// import { MWSettingsRegistryHelper } from './imports/app.mw.settings';\n// import { MWWorkflowRegistryHelper } from './imports/app.mw.workflow';\n// import { InterceptorSkipHeader } from './services/interceptor.skip.header';\n// import { HttpClient, HttpHeaders } from '@angular/common/http';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css'],\n})\nexport class AppComponent implements OnInit, OnDestroy {\n // svg icons\n svg_icons = [\n { name: 'apps', svg: icons.apps },\n { name: '_SYSTEM_LAYOUT', svg: icons.aspect_ratio },\n { name: '_SYSTEM_DATA', svg: icons.folder_managed },\n { name: '_SYSTEM_USER_MANAGEMENT', svg: icons.manage_accounts },\n { name: '_SYSTEM_CORP_IDENTITY', svg: icons.edit_square },\n { name: '_SYSTEM_SETTINGS', svg: icons.manufacturing },\n { name: '_SYSTEM_ABOUT', svg: icons.info },\n { name: '_SYSTEM_PAGES', svg: icons.tab },\n { name: 'create_new_folder', svg: icons.create_new_folder },\n { name: 'file-upload', svg: icons.file_upload },\n { name: 'publish', svg: icons.file_upload },\n { name: 'refresh', svg: icons.refresh },\n { name: 'add', svg: icons.add },\n { name: 'settings_add', svg: icons.add },\n { name: 'workflow_add', svg: icons.add },\n { name: 'add2', svg: icons.add2 },\n { name: 'save', svg: icons.save },\n { name: 'settings_save', svg: icons.save },\n { name: 'delete', svg: icons.delete },\n { name: 'settings_delete', svg: icons.delete },\n { name: 'workflow_delete', svg: icons.delete },\n { name: 'layouttree_delete', svg: icons.delete },\n { name: 'edit', svg: icons.edit },\n { name: 'border_color', svg: icons.edit },\n { name: 'settings_edit', svg: icons.edit },\n { name: 'workflow_edit', svg: icons.edit },\n { name: 'border-pencil', svg: icons.edit },\n { name: 'layouttree_edit', svg: icons.edit },\n { name: 'settings_copy', svg: icons.copy },\n { name: 'workflow_copy', svg: icons.copy },\n { name: 'copy', svg: icons.copy },\n { name: 'file_copy', svg: icons.copy },\n { name: 'layouttree_copy', svg: icons.copy },\n { name: 'paste', svg: icons.paste },\n { name: 'settings_paste', svg: icons.paste },\n { name: 'workflow_paste', svg: icons.paste },\n { name: 'layouttree_paste', svg: icons.paste },\n { name: 'duplicate', svg: icons.duplicate },\n { name: 'settings_duplicate', svg: icons.duplicate },\n { name: 'workflow_duplicate', svg: icons.duplicate },\n { name: 'layouttree_duplicate', svg: icons.duplicate },\n { name: 'close', svg: icons.close },\n { name: 'clear', svg: icons.close },\n { name: 'cancel', svg: icons.close },\n { name: 'info', svg: icons.info },\n { name: 'settings_info', svg: icons.info },\n { name: 'error', svg: icons.error },\n { name: 'help', svg: icons.help },\n { name: 'warning', svg: icons.warning },\n { name: 'play_arrow', svg: icons.play_arrow },\n { name: 'debug_play', svg: icons.play_arrow },\n { name: 'bug', svg: icons.bug },\n { name: 'list_add', svg: icons.list_add },\n { name: 'search', svg: icons.search },\n { name: 'zoom_in', svg: icons.zoom_in },\n { name: 'zoom_out', svg: icons.zoom_out },\n { name: 'zoom_reset', svg: icons.zoom_reset },\n { name: 'fullscreen', svg: icons.fullscreen },\n { name: 'toolbox_resolution', svg: icons.fullscreen },\n { name: 'keyboard_arrow_left', svg: icons.chevron_left },\n { name: 'keyboard_arrow_right', svg: icons.chevron_right },\n { name: 'keyboard_arrow_right', svg: icons.chevron_right },\n { name: 'keyboard_arrow_up', svg: icons.expand_less },\n { name: 'keyboard_arrow_down', svg: icons.expand_more },\n { name: 'arrow_forward', svg: icons.arrow_forward },\n { name: 'assignment', svg: icons.assignment },\n { name: 'list', svg: icons.list },\n { name: 'table_chart', svg: icons.table_chart },\n { name: 'bold', svg: icons.bold },\n { name: 'italic', svg: icons.italic },\n { name: 'underline', svg: icons.underline },\n { name: 'color_fill', svg: icons.color_fill },\n { name: 'done', svg: icons.done },\n { name: 'done_all', svg: icons.done_all },\n { name: 'more_vert', svg: icons.more_vert },\n { name: 'more_horiz', svg: icons.more_horiz },\n { name: 'menu', svg: icons.menu },\n { name: 'wf_group_actions', svg: icons.wf_group_actions },\n { name: 'wf_group_datachecks', svg: icons.wf_group_datachecks },\n { name: 'wf_group_dataoperations', svg: icons.wf_group_dataoperations },\n { name: 'wf_group_events', svg: icons.wf_group_events },\n { name: 'wf_group_generatedata', svg: icons.wf_group_generatedata },\n { name: 'wf_group_listoperations', svg: icons.wf_group_listoperations },\n { name: 'wf_group_navigation', svg: icons.wf_group_navigation },\n { name: 'wf_group_offline', svg: icons.wf_group_offline },\n { name: 'wf_group_status', svg: icons.wf_group_status },\n { name: 'wf_group_variables', svg: icons.wf_group_variables },\n {\n name: 'wf_group_containeroperations',\n svg: icons.wf_group_containeroperations,\n },\n { name: 'wf_group_fileoperations', svg: icons.wf_group_fileoperations },\n {\n name: 'wf_group_documentoperations',\n svg: icons.wf_group_documentoperations,\n },\n {\n name: 'wf_group_reldataoperations',\n svg: icons.wf_group_reldataoperations,\n },\n {\n name: 'wf_group_objectoperations',\n svg: icons.wf_group_objectoperations,\n },\n { name: 'grid_guides', svg: icons.grid_guides },\n { name: 'wf_group_aioperations', svg: icons.wf_group_aioperations },\n { name: 'wf_group_none', svg: icons.wf_group_none },\n { name: 'toolbox_textbox', svg: icons.toolbox_textbox },\n { name: 'toolbox_inputgroup', svg: icons.toolbox_inputgroup },\n { name: 'toolbox_textarea', svg: icons.toolbox_textarea },\n { name: 'toolbox_translationbox', svg: icons.toolbox_translationbox },\n { name: 'toolbox_editor', svg: icons.toolbox_editor },\n { name: 'toolbox_qr', svg: icons.toolbox_qr },\n { name: 'toolbox_table', svg: icons.toolbox_table },\n { name: 'toolbox_columnvisibility', svg: icons.toolbox_columnvisibility },\n { name: 'toolbox_checkbox', svg: icons.toolbox_checkbox },\n { name: 'toolbox_combobox', svg: icons.toolbox_combobox },\n { name: 'toolbox_dropdown', svg: icons.toolbox_dropdown },\n { name: 'toolbox_button', svg: icons.toolbox_button },\n { name: 'toolbox_togglebutton', svg: icons.toolbox_togglebutton },\n { name: 'toolbox_sidenav', svg: icons.toolbox_sidenav },\n { name: 'toolbox_themeswitch', svg: icons.toolbox_themeswitch },\n { name: 'toolbox_messagecenter', svg: icons.toolbox_messagecenter },\n { name: 'toolbox_radiobutton', svg: icons.toolbox_radiobutton },\n { name: 'toolbox_datetimepicker', svg: icons.toolbox_datetimepicker },\n { name: 'toolbox_timespan', svg: icons.toolbox_timespan },\n { name: 'toolbox_scheduler', svg: icons.toolbox_scheduler },\n { name: 'toolbox_tree', svg: icons.toolbox_tree },\n { name: 'toolbox_listbox', svg: icons.toolbox_listbox },\n { name: 'toolbox_listdetail', svg: icons.toolbox_listdetail },\n { name: 'toolbox_chips', svg: icons.toolbox_chips },\n { name: 'toolbox_slider', svg: icons.toolbox_slider },\n { name: 'toolbox_image', svg: icons.toolbox_image },\n { name: 'toolbox_icon', svg: icons.toolbox_icon },\n { name: 'toolbox_objectviewer', svg: icons.toolbox_objectviewer },\n { name: 'toolbox_marker', svg: icons.toolbox_marker },\n { name: 'toolbox_profilemanagement', svg: icons.toolbox_profilemanagement },\n { name: 'toolbox_textblock', svg: icons.toolbox_textblock },\n { name: 'maps', svg: icons.maps },\n { name: 'toolbox_languagemenu', svg: icons.toolbox_languagemenu },\n { name: 'toolbox_usermenu', svg: icons.toolbox_usermenu },\n { name: 'toolbox_accordion', svg: icons.toolbox_accordion },\n { name: 'toolbox_stepper', svg: icons.toolbox_stepper },\n { name: 'toolbox_tab', svg: icons.toolbox_tab },\n { name: 'toolbox_iframe', svg: icons.toolbox_iframe },\n { name: 'toolbox_embed', svg: icons.toolbox_embed },\n { name: 'toolbox_autocomplete', svg: icons.toolbox_autocomplete },\n { name: 'toolbox_video', svg: icons.toolbox_video },\n { name: 'toolbox_chart', svg: icons.toolbox_chart },\n { name: 'toolbox_upload', svg: icons.toolbox_upload },\n { name: 'toolbox_download', svg: icons.toolbox_download },\n { name: 'toolbox_loading', svg: icons.toolbox_loading },\n { name: 'chart', svg: icons.chart },\n { name: 'toolbox_capsuletag', svg: icons.toolbox_capsuletag },\n { name: 'toolbox_raster', svg: icons.toolbox_raster },\n { name: 'toolbox_grid', svg: icons.toolbox_grid },\n { name: 'toolbox_flex', svg: icons.toolbox_flex },\n { name: 'toolbox_canvas', svg: icons.toolbox_canvas },\n { name: 'toolbox_repeat', svg: icons.toolbox_repeat },\n { name: 'toolbox_expansionpanel', svg: icons.toolbox_expansionpanel },\n { name: 'toolbox_widget', svg: icons.toolbox_widget },\n { name: 'toolbox_workflow', svg: icons.toolbox_workflow },\n { name: 'toolbox_datasource', svg: icons.toolbox_datasource },\n { name: 'toolbox_properties', svg: icons.toolbox_properties },\n { name: 'toolbox_job', svg: icons.toolbox_job },\n { name: 'toolbox_logs', svg: icons.toolbox_logs },\n {\n name: 'toolbox_actionwidgettoolbox_actionwidget',\n svg: icons.toolbox_actionwidgettoolbox_actionwidget,\n },\n { name: 'toolbox_clientworkflow', svg: icons.toolbox_clientworkflow },\n { name: 'toolbox_resolution', svg: icons.toolbox_resolution },\n { name: 'toolbox_settings', svg: icons.toolbox_settings },\n {\n name: 'vertical_align_center_text',\n svg: icons.vertical_align_center_text,\n },\n { name: 'align_right_text', svg: icons.align_right_text },\n { name: 'vertical_align_bottom', svg: icons.vertical_align_bottom },\n { name: 'align_left_text', svg: icons.align_left_text },\n { name: 'align_center', svg: icons.align_center },\n { name: 'align_center_content', svg: icons.align_center_content },\n { name: 'align_center_text', svg: icons.align_center_text },\n { name: 'align_left', svg: icons.align_left },\n { name: 'align_left_content', svg: icons.align_left_content },\n { name: 'align_right', svg: icons.align_right },\n { name: 'align_right_content', svg: icons.align_right_content },\n {\n name: 'vertical_align_bottom_content',\n svg: icons.vertical_align_bottom_content,\n },\n {\n name: 'vertical_align_bottom_text',\n svg: icons.vertical_align_bottom_text,\n },\n { name: 'vertical_align_center', svg: icons.vertical_align_center },\n {\n name: 'vertical_align_center_content',\n svg: icons.vertical_align_center_content,\n },\n { name: 'vertical_align_top', svg: icons.vertical_align_top },\n {\n name: 'vertical_align_top_content',\n svg: icons.vertical_align_top_content,\n },\n { name: 'vertical_align_top_text', svg: icons.vertical_align_top_text },\n { name: 'font_color', svg: icons.font_color },\n { name: 'background_color', svg: icons.background_color },\n { name: 'image', svg: icons.image },\n { name: 'use_border', svg: icons.use_border },\n { name: 'datadescription', svg: icons.datadescription },\n { name: 'layoutunit_single', svg: icons.layoutunit_single },\n { name: 'layoutunit_multi', svg: icons.layoutunit_multi },\n { name: 'layoutunit_toall', svg: icons.layoutunit_toall },\n { name: 'layoutunit_none', svg: icons.layoutunit_none },\n { name: 'calendar', svg: icons.calendar },\n { name: 'device_hub', svg: icons.device_hub },\n { name: 'text_fields', svg: icons.text_fields },\n { name: 'toolbox_carousel', svg: icons.toolbox_carousel },\n { name: 'toolbox_href', svg: icons.toolbox_href },\n { name: 'arrow_down', svg: icons.arrow_down },\n { name: 'message', svg: icons.message },\n { name: 'workflow', svg: icons.device_hub },\n { name: 'android-icon', svg: icons.android_icon },\n { name: 'apple-icon', svg: icons.apple_icon },\n { name: 'ar-SA', svg: icons.ar_SA },\n { name: 'en-US', svg: icons.en_US },\n { name: 'globalvariable', svg: icons.globalvariable },\n { name: 'eye', svg: icons.eye },\n { name: 'language', svg: icons.language },\n { name: 'contact', svg: icons.contact },\n { name: 'report', svg: icons.report },\n { name: 'color_reset', svg: icons.color_reset },\n { name: 'gradient', svg: icons.gradient },\n { name: '_SYSTEM_DASHBOARD', svg: icons.dashboard },\n { name: 'coffee', svg: icons.coffee },\n { name: 'anchor', svg: icons.anchor },\n { name: 'move_down', svg: icons.move_down },\n { name: 'keyboard_command', svg: icons.keyboad_command },\n { name: 'event_list', svg: icons.event_list },\n { name: 'terminal', svg: icons.terminal },\n { name: 'flight', svg: icons.flight },\n { name: 'cycle', svg: icons.cycle },\n { name: 'integration', svg: icons.integration },\n { name: 'edit_new', svg: icons.edit_new },\n { name: 'display_settings', svg: icons.display_settings },\n { name: 'rocket_launch', svg: icons.rocket_launch },\n ];\n\n // Initialized = false;\n\n //#region Lifecycle\n constructor(public tourService: TourService, private iconRegistry: MatIconRegistry, private sanitizer: DomSanitizer) {\n // register svg icons\n this.svg_icons.forEach((icon) => {\n this.registerIcon(icon.name, icon.svg);\n });\n }\n\n ngOnInit(): void {\n // const headers = new HttpHeaders().set(InterceptorSkipHeader, '');\n // this.http.get('assets/config.json', { headers }).subscribe((result) => {\n // if (result) {\n // if (result['CLIENTVERSION'] == \"Macframework\") {\n // console.log(result['CLIENTVERSION']);\n // //MACCCCC\n // // ComponentRegistry.Initialize();\n // // MACSettingsRegistryHelper.Build();\n // // TaskRegistryHelper.Build();\n // // MacWorkflowRegistryHelper.Build();\n // // NavigationService.SelectedPage.subscribe(p => {\n // // PageStatus.ActualState.next(new PageStatus());\n // // });\n // //MACCCCC\n // } else if (result['CLIENTVERSION'] == \"Middleframework\") {\n // //Middle\n // console.log(result['CLIENTVERSION']);\n // // ComponentRegistry.Initialize();\n // // MWSettingsRegistryHelper.Build();\n // // MWWorkflowRegistryHelper.Build();\n // this.Initialized = true;\n // //Middle\n // }\n // }\n // });\n }\n\n registerIcon(name: string, svgContent: string): void {\n this.iconRegistry.addSvgIconLiteral(name, this.sanitizer.bypassSecurityTrustHtml(svgContent));\n }\n\n ngOnDestroy(): void {}\n\n //#endregion\n}\n","import { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\nimport { ServiceWorkerModule } from \"@angular/service-worker\";\nimport { environment } from \"../environments/environment\";\nimport { AppComponent } from \"./app.component\";\nimport { AppFrameworkModule } from \"./lib/appframework.module\";\nimport { HttpClientJsonpModule } from \"@angular/common/http\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { TourMatMenuModule } from \"ngx-ui-tour-md-menu\";\nimport { RouterModule } from \"@angular/router\";\nimport { TourStepTemplateComponent } from \"./tour-guide/tour-step-template/tour-step-template.component\";\nimport { MaterialModule } from \"./imports/material.module\";\nimport { ButtonModule } from \"primeng/button\";\nimport { MenuModule } from \"primeng/menu\";\n\n@NgModule({\n declarations: [AppComponent, TourStepTemplateComponent],\n imports: [\n BrowserModule,\n FormsModule,\n RouterModule,\n MaterialModule,\n ReactiveFormsModule,\n BrowserAnimationsModule,\n HttpClientJsonpModule,\n AppFrameworkModule,\n ServiceWorkerModule.register(\"ngsw-worker.js\", {\n enabled: environment.production,\n }),\n MatIconModule,\n TourMatMenuModule.forRoot(),\n ServiceWorkerModule.register(\"ngsw-worker.js\", {\n enabled: environment.production,\n }),\n ButtonModule,\n MenuModule,\n ],\n bootstrap: [AppComponent],\n})\nexport class AppModule {}\n","/* tslint:disable: max-line-length */\nimport { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot, CanDeactivate, Route, RouterStateSnapshot, Routes, UrlSegment, UrlSegmentGroup, UrlTree\n} from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { ContentPage } from './components/pages/content.page';\nimport { SettingsPage } from './components/pages/settings.page';\nimport { LayoutService } from './services/layout.service';\nimport { NavigationService } from './services/navigation.service';\nimport { HelpCenterComponent } from './component_v2/help-center/help-center.component';\nimport {PersonalSettingsComponent} from \"./component_v2/personal-settings/personal-settings.component\";\nimport { DashboardComponent } from 'src/app/component_v2/dashboard/dashboard.component';\nimport { PermissionDeniedPage } from './components/pages/not-permitted.page';\n\nexport function CustomSettingsUrlMatcher(segments: UrlSegment[], group: UrlSegmentGroup, route: Route) {\n return segments.length > 1 && segments[1].path === 'settings' ? ({ consumed: segments }) : null;\n}\n\n@Injectable()\nexport class CanDeactivateContentPage implements CanDeactivate{\n canDeactivate(component: ContentPage, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot): boolean | UrlTree | Observable | Promise {\n const disableText = NavigationService.DisableBack.getValue();\n if (disableText) {\n if (LayoutService.PreventBrowserClose.getValue()) {\n if (confirm(disableText) == false) {\n history.pushState(null, null, location.href);\n return false;\n } else {\n LayoutService.PreventBrowserClose.next(false);\n NavigationService.DisableBack.next(null);\n }\n } else {\n NavigationService.DisableBack.next(null);\n if (confirm(disableText) == false) {\n history.pushState(null, null, location.href);\n return false;\n }\n }\n }\n return true;\n }\n}\n\nexport const routes: Routes = [\n { path: 'default/settings/dashboard', component: DashboardComponent },\n { path: 'default/settings/front-pages', loadChildren: () => import('src/app/component_v2/front-pages/front-pages.module').then(m => m.FrontPagesModule) },\n { path: 'default/settings/help-center', component: HelpCenterComponent },\n { path: 'default/settings/personal-settings', component: PersonalSettingsComponent },\n { path: 'default/settings/access-denied', component: PermissionDeniedPage },\n { component: SettingsPage, matcher: CustomSettingsUrlMatcher },\n { path: '**', component: ContentPage, canDeactivate: [CanDeactivateContentPage] },\n];\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ViewType } from '../../../models/enums/viewtype.enum';\nimport { LayoutElement } from '../../../models/layoutelement.model';\nimport { LayoutService } from '../../../services/layout.service';\n\n@Component({\n selector: 'layout-edit-control',\n templateUrl: './layout.edit.control.html'\n})\nexport class LayoutEditControl implements OnInit, OnDestroy {\n Layout;\n BaseLayout;\n Subscriptions = [];\n ContentStyle;\n LastItem;\n ngOnInit(): void {\n LayoutService.LayoutEditDialogOpen.next(true);\n this.Subscriptions.push(LayoutService.SelectedLayout.subscribe(l => {\n this.Layout = l;\n this.BaseLayout = l;\n let viewType = ViewType.View;\n if (l) {\n viewType = ViewType.Edit;\n l.SetViewType(ViewType.Edit);\n }\n LayoutService.SelectedItem.next(l);\n if (LayoutService.ViewType.getValue() !== viewType) {\n LayoutService.ViewType.next(viewType);\n }\n }));\n this.Subscriptions.push(LayoutService.RootSize.subscribe(async (size) => {\n const result = {};\n let item = this.BaseLayout;\n\n if (size != null) {\n result['max-width'] = size.Width + 'px';\n result['margin-left'] = 'auto';\n result['margin-right'] = 'auto';\n\n let resolution = this.BaseLayout.Resolutions.find((value) => size.Width > value.FromWidth && size.Width <= value.ToWidth);\n if (resolution) {\n item = resolution;\n item.SetViewType(ViewType.Edit);\n if (!resolution.Elements || resolution.Elements.length == 0) {\n let element = new LayoutElement();\n element.ElementType = \"content\";\n resolution.Elements.push(element);\n }\n LayoutService.SelectedResolution.next(resolution);\n }\n else {\n LayoutService.SelectedResolution.next(null);\n }\n } else {\n result['width'] = '100%';\n LayoutService.SelectedResolution.next(null);\n }\n if (this.Layout != item) {\n LayoutService.SelectedLayout.next(item);\n }\n this.Layout = item;\n result['height'] = '100%';\n this.ContentStyle = result;\n }));\n }\n\n ngOnDestroy(): void {\n this.Subscriptions.forEach(x => x.unsubscribe());\n LayoutService.LayoutEditDialogOpen.next(false);\n }\n\n itemSelected() {\n if (this.Layout && !this.Layout.Selected) {\n LayoutService.SelectedItem.next(this.BaseLayout);\n }\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { LayoutService } from '../../../services/layout.service';\nimport { FilteredControlService } from 'src/app/services/dynamic.component.service';\n\n@Component({\n selector: 'accordion-menu-control',\n templateUrl: './accordion.menu.control.html',\n styleUrls: ['./accordion.menu.control.css'],\n})\nexport class AccordionMenuControl implements OnDestroy, OnInit {\n ExpandedState = {\n Layout: true,\n Form: true,\n Reportobjects: true,\n Reportcontrols: true,\n Data: true,\n Block: true,\n Media: true,\n Advanced: true,\n Templates: true,\n Widgets: true,\n };\n //#region Items\n ItemsValue = [];\n RawItems = [];\n TabsCount: {};\n \n activeIndexes = [];\n @Input()\n get Items() {\n return this.ItemsValue;\n }\n set Items(val) {\n this.RawItems = val;\n this.CheckGroupVisibiltiy().then(() => {\n this.ItemsValue = this.RawItems.filter((value) => value.Visible).sort((a, b) => {\n if (a.Index > b.Index) {\n return 1;\n }\n if (a.Index < b.Index) {\n return -1;\n }\n return 0;\n });\n this.ItemsChange.emit(val);\n this.cdRef.detectChanges();\n });\n }\n @Output() ItemsChange = new EventEmitter();\n //#endregion\n\n @Input() _activeIndexes: number[] = [];\n\n\n\n onOpened(item) {\n item.Expanded = true;\n }\n\n onClosed(item) {\n item.Expanded = false;\n }\n SelectedItem;\n Subscriptions = {};\n RefreshItems() {\n if (this.RawItems) {\n this.CheckGroupVisibiltiy().then(() => {\n this.ItemsValue = this.RawItems.filter((value) => value.Visible).sort((a, b) => {\n if (a.Index > b.Index) {\n return 1;\n }\n if (a.Index < b.Index) {\n return -1;\n }\n return 0;\n });\n this.cdRef.detectChanges();\n });\n }\n }\n CheckGroupVisibiltiy() {\n return new Promise((resolve) => {\n if (this.RawItems && this.SelectedItem) {\n let asynccount = 0;\n let received = 0;\n this.RawItems.forEach((item) => {\n if (item && item.PropertyGroup) {\n let pg = item.PropertyGroup;\n if (pg.SID && this.ExpandedState[pg.SID] == null) {\n this.ExpandedState[pg.SID] = false;\n }\n if (pg.CheckVisibility) {\n item.Visible = pg.CheckVisibility(this.SelectedItem);\n }\n if (pg.CheckVisibilityAsync) {\n asynccount += 1;\n\n pg.CheckVisibilityAsync(this.SelectedItem).then((value) => {\n item.Visible = value;\n received += 1;\n if (asynccount == received) {\n resolve(true);\n }\n });\n }\n }\n });\n if (asynccount == 0) {\n resolve(true);\n }\n }\n });\n }\n\n constructor(private cdRef: ChangeDetectorRef,private filteredItemsCountService: FilteredControlService,\n protected filteredControlService:FilteredControlService) {}\n ngOnInit(): void {\n this.Unsubscribe();\n this.Subscriptions['PropertyPanelsChanged'] = LayoutService.PropertyPanelsChanged.subscribe(() => {\n this.RefreshItems();\n });\n this.Subscriptions['refresh'] = LayoutHelper.RefreshMenuTabs.subscribe(() => {\n this.RefreshItems();\n });\n this.Subscriptions['selecteditem'] = LayoutService.SelectedItem.subscribe((item) => {\n this.SelectedItem = item;\n this.RefreshItems();\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if(changes['Items']) {\n const _items = [...changes['Items'].currentValue];\n if (_items[0].SID == 'Form'&&this.activeIndexes.length <= 0) {\n this.openAccordionMenu(_items);\n }\n }\n\n }\n\n openAccordionMenu(_items) {\n if(_items && _items.length > 0) {\n this.activeIndexes = _items.map((_, index) => index);\n this.cdRef.detectChanges();\n }\n }\n ngOnDestroy(): void {\n this.Unsubscribe();\n }\n Unsubscribe() {\n if (this.Subscriptions) {\n Object.keys(this.Subscriptions).forEach((key) => {\n this.Subscriptions[key].unsubscribe();\n });\n }\n }\n ComponentAttached(event, item) {\n event.instance.PropertyGroup = item;\n }\n}\n","import { ComponentPortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Directive, ElementRef,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { TreeNode } from 'primeng/api';\nimport { SETTINGS_LIST } from '../../../components/pages/settings.page';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { PermissionHelper } from \"../../../helpers/permissions.helper\";\nimport { MenuTabPosition } from '../../../models/enums/menutabposition.enum';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MetaService } from '../../../services/meta.service';\nimport { NavigationService } from '../../../services/navigation.service';\nimport { UsersService } from \"../../../services/users.service\";\nimport { APropertyTab } from '../../menutabs/properties/properties.menu.tab';\nimport { FilteredControlService } from 'src/app/services/dynamic.component.service';\n\n@Directive({\n selector: '[specialContent]'\n})\nexport class MenuTabSpecialContentDirective { }\n@Directive({\n selector: '[middleContent]'\n})\nexport class MenuTabMiddleContentDirective { }\n\n@Component({\n selector: 'menu-tab-control',\n templateUrl: './menu.tab.control.html',\n styleUrls: ['./menu.tab.control.css']\n})\nexport class MenuTabControl implements AfterViewInit{\n @ContentChild(MenuTabSpecialContentDirective, { read: TemplateRef }) specialContentTemplate;\n @ContentChild(MenuTabMiddleContentDirective, { read: TemplateRef }) middleContentTemplate;\n Instance;\n Style = {\n padding: '10px'\n };\n SelectedPanelLeft;\n SelectedPanelRight;\n LeftPanels = [];\n LeftPanelWidth = '350px';\n LeftPaneMinlWidth = '350px';\n TempLeftPanelWidth = null;\n RightPanels = [];\n RightPanelWidth = '330px';\n RightPanelMinWidth = '330px';\n NaviPanels = [];\n AvailablePanels = [];\n TempRightPanelWidth = null;\n SelectedTreeNodes = [];\n //#region Items\n ItemsValue = [];\n\n isToolboxActive = true;\n @Input()\n get Items() {\n return this.ItemsValue;\n }\n set Items(val) {\n this.ItemsValue = val;\n this.GenerateTree();\n this.ShowRightMenu = false;\n this.showPanelRight(0);\n this.showPanelLeft(0);\n this.ItemsChange.emit(val);\n }\n @Output() ItemsChange = new EventEmitter();\n //#endregion\n GenerateTree() {\n this.AvailablePanels = [];\n this.LeftPanels = [];\n this.RightPanels = [];\n this.NaviPanels = [];\n let ClientPanels: TreeNode = {};\n ClientPanels.children = [];\n ClientPanels.label = this.translate.instant(\"@@ClientPanels\");\n if (this.ItemsValue) {\n for (var i = 0; i < this.ItemsValue.length; i++) {\n switch (this.ItemsValue[i].Position) {\n case MenuTabPosition.Left:\n this.LeftPanels.push(this.ItemsValue[i]);\n break;\n case MenuTabPosition.Right:\n this.RightPanels.push(this.ItemsValue[i]);\n break;\n case MenuTabPosition.Navi:\n this.NaviPanels.push(this.ItemsValue[i]);\n let item: TreeNode = {};\n item.data = this.ItemsValue[i];\n item.icon = this.ItemsValue[i].Icon;\n item.label = this.ItemsValue[i].Tooltip;\n item.selectable = true;\n item.type = \"Client\";\n ClientPanels.children.push(item);\n break;\n default:\n this.NaviPanels.push(this.ItemsValue[i]);\n break;\n }\n }\n }\n this.AvailablePanels.push(ClientPanels);\n this.AddSettingsPanels();\n\n let savedPanels = localStorage.getItem(\"Appbuilder_ActivePanels\");\n if (savedPanels) {\n let panels = JSON.parse(savedPanels);\n for (var i = 0; i < panels.length; i++) {\n let panel = panels[i];\n let found = this.NaviPanels.find((value) => value.ID == panel.ID);\n if (found) {\n panels[i] = found;\n }\n if (this.NavigationItemsObj[panel.ID]) {\n if (Array.isArray(this.NavigationItemsObj[panel.ID])) {\n if (panel.InitArgs) {\n let obj = this.NavigationItemsObj[panel.ID].find((navobj) => JSON.stringify(navobj.InitArgs) == JSON.stringify(panel.InitArgs));\n if (obj) {\n panels[i] = obj;\n }\n }\n } else {\n panels[i] = this.NavigationItemsObj[panel.ID];\n }\n }\n if (panels[i].Type == \"Settings\") {\n panels[i].Visible = this.checkSettingPanelVisibility(panels[i]);\n }\n }\n this.NaviPanels = panels;\n }\n\n }\n AddSettingsPanels() {\n let Panels: TreeNode = {};\n Panels.children = [];\n Panels.label = this.translate.instant(\"@@SettingsPanels\");\n\n for (var i = 0; i < this.InternalNavigationItems.length; i++) {\n let val = this.InternalNavigationItems[i];\n if (this.checkSettingPanelVisibility(val)) {\n val.Type = \"Settings\";\n let item: TreeNode = {};\n item.data = val;\n item.icon = val.Icon;\n item.label = val.Caption;\n item.selectable = true;\n item.type = val.Type;\n if (val.UpdateFunction && (!val.Children || val.Children.length == 0)) {\n val.UpdateFunction(val);\n }\n if (val.Children && val.Children.length > 0) {\n item.children = this.PrepareSettingsPanels(val.Children);\n }\n Panels.children.push(item);\n }\n }\n this.AvailablePanels.push(Panels);\n }\n private PrepareSettingsPanels(Items): TreeNode[] {\n let result: TreeNode[] = [];\n if (this.ShowMenu) {\n for (var i = 0; i < Items.length; i++) {\n let val = Items[i];\n if (val.ID != 'pages' && val.ID != 'templates' && val.ID != 'widgets' && this.checkSettingPanelVisibility(val)) {\n val.Type = \"Settings\";\n let item: TreeNode = {};\n item.data = val;\n item.icon = val.Icon;\n item.label = val.Caption;\n item.selectable = true;\n item.type = val.Type;\n if (val.UpdateFunction && (!val.Children || val.Children.length == 0)) {\n val.UpdateFunction(val);\n }\n if (val.Children && val.Children.length > 0) {\n item.children = this.PrepareSettingsPanels(val.Children);\n }\n result.push(item)\n }\n }\n }\n return result;\n }\n //#region ShowMenu\n ShowMenuValue = false;\n @Input()\n get ShowMenu() {\n return this.ShowMenuValue;\n }\n set ShowMenu(val) {\n this.ShowMenuValue = val;\n this.GenerateTree();\n \n this.ShowMenuChange.emit(val);\n }\n @Output() ShowMenuChange = new EventEmitter();\n //#endregion\n ShowLeftMenu = false;\n SelectedIndexLeft = 0;\n SelectedIndexNavi = 0;\n SelectedIndexRight = 0;\n ShowRightMenu = false;\n IsSettingsPanel = false;\n SelectedSettingsPanel = null;\n\n NaviPanelEditMode = false;\n InternalNavigationItems = [];\n NavigationItemsObj = {}\n //#region NavigationItems\n NavigationItemsValue = [];\n @Input()\n get NavigationItems() {\n return this.NavigationItemsValue;\n }\n set NavigationItems(val) {\n this.NavigationItemsValue = val;\n this.NavigationItemsObj = {};\n this.FillNavItemsObj(val);\n this.NavigationItemsChange.emit(val);\n }\n @Output() NavigationItemsChange = new EventEmitter();\n FillNavItemsObj(val) {\n if (val && val.length > 0) {\n for (let i = 0; i < val.length; i++) {\n let item = val[i];\n if (!this.NavigationItemsObj[item.ID]) {\n this.NavigationItemsObj[item.ID] = item;\n } else {\n this.NavigationItemsObj[item.ID] = [this.NavigationItemsObj[item.ID], item];\n }\n \n if (item.Children && item.Children.length > 0) {\n this.FillNavItemsObj(item.Children);\n }\n }\n }\n }\n //#endregion\n\n @Output() ContentSizeChanged = new EventEmitter();\n\n constructor(private cdRef: ChangeDetectorRef, private service: MetaService, private router: Router, private translate: TranslateService, private filteredControlService: FilteredControlService) {\n this.NavigationItems = SETTINGS_LIST;\n\n this.InternalNavigationItems = SETTINGS_LIST;\n this.Instance = this;\n NavigationService.Refresh.subscribe(() => {\n this.NavigationItems = SETTINGS_LIST;\n this.InternalNavigationItems = SETTINGS_LIST;\n this.GenerateTree();\n });\n LayoutHelper.RefreshMenuTabs.subscribe(() => {\n this.cdRef.detectChanges();\n })\n }\n\n ngAfterViewInit() {\n // show left panel by default\n this.showPanelLeft(0);\n }\n\n //#region NavigationPanel\n SelectedComponent;\n SetComponent(nav, comp) {\n this.SelectedComponent = comp;\n if (nav && typeof nav.UpdateFunction === 'function') {\n nav.UpdateFunction(nav);\n }\n }\n ngOnInit() {\n this.filteredControlService.filteredControlItems$.subscribe(value => {\n this.filterValue = value;\n });\n }\n async CheckComponent() {\n if (this.SelectedComponent) {\n if (typeof this.SelectedComponent.checkHasChanges === 'function') {\n return await this.SelectedComponent.checkHasChanges();\n }\n }\n return true;\n }\n //#endregion\n filterValue: string = '';\n //#region Left panel\n onFilterControls(value:string):void {\n this.filteredControlService.setfilterdControls(value)\n }\n\n showPanelLeft(i) {\n this.LeftPanels.forEach(x => x.IsActive = false);\n this.NaviPanels.forEach(x => x.IsActive = false);\n this.IsSettingsPanel = false;\n this.SelectedIndexNavi = null;\n this.selectedPortal = null;\n this.SelectedSettingsPanel = null;\n if (this.ShowLeftMenu && (this.SelectedIndexLeft == i || i == null)) {\n this.ShowLeftMenu = false;\n this.SelectedPanelLeft = null;\n this.SelectedIndexLeft = null;\n this.TempLeftPanelWidth = this.LeftPanelWidth;\n this.LeftPanelWidth = '0px';\n this.LeftPaneMinlWidth = '0px';\n } else {\n this.ShowLeftMenu = true;\n this.SelectedIndexLeft = i;\n const entry = this.LeftPanels[i];\n if(entry) entry.IsActive = true;\n if (entry?.Content) {\n this.SelectedPanelLeft = new ComponentPortal(entry.Content);\n } else {\n this.SelectedPanelLeft = null;\n }\n this.LeftPanelWidth = this.TempLeftPanelWidth;\n this.LeftPaneMinlWidth = '350px';\n }\n\n this.isToolboxActive = true;\n this.cdRef.detectChanges();\n this.ContentSizeChanged.emit();\n }\n onResizeLeftEnd(event) {\n this.LeftPanelWidth = event.rectangle.width + 'px';\n this.ContentSizeChanged.emit();\n }\n //#endregion\n //#region Right panel\n showPanelRight(i) {\n this.RightPanels.forEach(x => x.IsActive = false);\n if (this.ShowRightMenu && (this.SelectedIndexRight == i || i == null)) {\n this.ShowRightMenu = false;\n this.SelectedPanelRight = null;\n this.SelectedIndexRight = null;\n this.TempRightPanelWidth = this.RightPanelWidth;\n this.RightPanelWidth = '0px';\n this.RightPanelMinWidth = '0px';\n } else {\n this.ShowRightMenu = true;\n this.SelectedIndexRight = i;\n const entry = this.RightPanels[i];\n if (entry) {\n entry.IsActive = true;\n if (entry.Content) {\n this.SelectedPanelRight = new ComponentPortal(entry.Content);\n } else {\n this.SelectedPanelRight = null;\n }\n } else {\n this.SelectedPanelRight = null;\n }\n \n this.RightPanelWidth = this.TempRightPanelWidth;\n this.RightPanelMinWidth = '330px';\n }\n this.cdRef.detectChanges();\n this.ContentSizeChanged.emit();\n }\n InternalResizeValue = false;\n get InternalResize() {\n return this.InternalResizeValue;\n }\n set InternalResize(value) {\n this.InternalResizeValue = value;\n this.cdRef.detectChanges();\n }\n onResizeRightStart(event) {\n this.InternalResize = true;\n }\n onResizeRightEnd(event) {\n this.RightPanelWidth = event.rectangle.width + 'px';\n this.InternalResize = false;\n this.ContentSizeChanged.emit();\n }\n //#endregion\n //#region Left Navigation\n UseNavigation = false;\n selectedPortal = null;\n selectedEntry = null;\n showNaviPanel(i) {\n console.log('i->', i);\n this.isToolboxActive = false;\n if (!this.NaviPanelEditMode) {\n this.selectedPortal = null;\n this.LeftPanels.forEach(x => x.IsActive = false);\n this.NaviPanels.forEach(x => x.IsActive = false);\n this.SelectedIndexLeft = null;\n this.SelectedSettingsPanel = null;\n this.IsSettingsPanel = false;\n this.UseNavigation = false;\n if (this.ShowLeftMenu && (this.SelectedIndexNavi == i || i == null)) {\n this.ShowLeftMenu = false;\n this.SelectedPanelLeft = null;\n this.SelectedIndexNavi = null;\n } else {\n this.ShowLeftMenu = true;\n this.SelectedIndexNavi = i;\n const entry = this.NaviPanels[i];\n this.selectedEntry = entry;\n entry.IsActive = true;\n if (entry.Type == \"Settings\") {\n this.IsSettingsPanel = true;\n if (entry.Children && entry.Children.length > 0) {\n this.SelectedSettingsPanel = entry.Children;\n this.UseNavigation = true;\n } else {\n this.selectedPortal = new ComponentPortal(entry.Content);\n }\n } else {\n if (entry.Content) {\n this.SelectedPanelLeft = new ComponentPortal(entry.Content);\n } else {\n this.SelectedPanelLeft = null;\n }\n }\n }\n this.cdRef.detectChanges();\n this.ContentSizeChanged.emit();\n }\n }\n PanelSelectionOpen = false;\n OpenPanelSelection() {\n\n }\n AddClientPanel(panel) {\n if (this.NaviPanels.indexOf(panel.data) == -1) {\n this.NaviPanels.push(panel.data);\n }\n localStorage.setItem(\"Appbuilder_ActivePanels\", JSON.stringify(this.NaviPanels));\n this.PanelSelectionOpen = false;\n this.cdRef.detectChanges();\n }\n AddSettingsPanel(panel) {\n if (this.NaviPanels.indexOf(panel.data) == -1) {\n this.NaviPanels.push(panel.data);\n }\n localStorage.setItem(\"Appbuilder_ActivePanels\", JSON.stringify(this.NaviPanels));\n this.PanelSelectionOpen = false;\n this.cdRef.detectChanges();\n }\n EditNaviPanels() {\n this.NaviPanelEditMode = !this.NaviPanelEditMode;\n }\n RemoveNaviPanel(panel) {\n let index = this.NaviPanels.indexOf(panel);\n if (index > -1) {\n this.NaviPanels.splice(this.NaviPanels.indexOf(panel), 1);\n }\n localStorage.setItem(\"Appbuilder_ActivePanels\", JSON.stringify(this.NaviPanels));\n }\n //#endregion\n checkTabVisibility() {\n this.ItemsValue.forEach(x => {\n if (typeof x.CheckVisible === 'function') {\n const visible = x.CheckVisible();\n this.setTabVisibility(x, visible);\n }\n if (typeof x.CheckVisibleAsync === 'function') {\n x.CheckVisibleAsync((val) => {\n this.setTabVisibility(x, val);\n });\n }\n });\n }\n\n private setTabVisibility(tab, visible) {\n tab.Visible = visible;\n if (tab.IsActive && !tab.Visible) {\n tab.IsActive = false;\n switch (tab.Position) {\n case MenuTabPosition.Left:\n this.showPanelLeft(null);\n break;\n case MenuTabPosition.Right:\n this.showPanelRight(null);\n break;\n case MenuTabPosition.Navi:\n this.showNaviPanel(null)\n break;\n }\n }\n }\n \n ComponentAttached(event) {\n if (event.instance && this.selectedEntry && this.selectedEntry.InitArgs) {\n event.instance.InitArgs = this.selectedEntry.InitArgs;\n }\n }\n\n PanelOver() {\n /*LayoutService.ResetHighlight.next(true);*/\n }\n\n // Check the visibility of settings panels content in the side navigation panel.\n checkSettingPanelVisibility(item) {\n let user = UsersService.ActiveUser.getValue();\n if (user) {\n if (user.IsAdministrator) {\n return true;\n } else {\n if (item.Security) {\n return PermissionHelper.GetRight(item.Security.Name, item.Security.Value);\n } else {\n return true;\n }\n }\n }\n return false;\n }\n\n goToSettingArea() {\n this.router.navigate([])\n .then((result) => {\n window.open('default/settings/dashboard', '_blank');\n });\n }\n\n}\n@Directive()\nexport abstract class ALayoutMenuTab extends APropertyTab {\n Layout;\n ContentLayout;\n ngOnInit() {\n super.ngOnInit();\n const page = NavigationService.SelectedPage.getValue();\n if (page === 'content' || page === 'widget' || page === 'template' || page === 'output' || page === 'layout' || page === 'settings') {\n this.Subscriptions.push(LayoutService.SelectedLayout.subscribe((layout) => {\n this.ContentLayout = layout;\n this.Layout = LayoutHelper.GetActiveResolution(layout);\n this.onLayoutSet();\n this.cdRef.detectChanges();\n }));\n }\n }\n\n onLayoutSet() {\n }\n}\n","import { AfterViewInit, ChangeDetectorRef, Directive, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { ControlStyle } from '../../models/enums/controlstyle.enum';\n\n// @dynamic\n@Directive()\nexport abstract class BaseThemeControl implements OnDestroy, AfterViewInit {\n //#region ID\n ControlIDDValue;\n @Input()\n get ControlID() {\n return this.ControlIDDValue;\n }\n set ControlID(val) {\n this.ControlIDDValue = val;\n this.ControlIDChange.emit(this.ControlIDDValue);\n }\n @Output() ControlIDChange = new EventEmitter();\n //#endregion\n\n //#region ControlStyle\n ControlStyleValue: ControlStyle = ControlStyle.Bootstrap;\n @Input()\n get ControlStyle(): ControlStyle {\n return this.ControlStyleValue;\n }\n set ControlStyle(val: ControlStyle) {\n this.ControlStyleValue = val;\n this.ControlStyleChange.emit(this.ControlStyleValue);\n }\n @Output() ControlStyleChange = new EventEmitter();\n //#endregion\n\n //#region ExternalStyle\n ExternalStyleValue;\n @Input()\n get ExternalStyle() {\n return this.ExternalStyleValue;\n }\n set ExternalStyle(val) {\n this.ExternalStyleValue = val;\n this.ExternalStyleChange.emit(this.ExternalStyleValue);\n }\n @Output() ExternalStyleChange = new EventEmitter();\n //#endregion\n\n\n //#region Placeholder\n PlaceholderValue: string;\n @Input()\n get Placeholder(): string {\n return this.PlaceholderValue;\n }\n set Placeholder(val: string) {\n this.PlaceholderValue = val;\n this.PlaceholderChange.emit(this.PlaceholderValue);\n }\n @Output() PlaceholderChange = new EventEmitter();\n //#endregion\n //#region PathBinding\n PathBindingValue: string;\n @Input()\n get PathBinding(): string {\n return this.PathBindingValue;\n }\n set PathBinding(val: string) {\n this.PathBindingValue = val;\n this.PathBindingChange.emit(this.PathBindingValue);\n this.cdRef.detectChanges();\n }\n @Output() PathBindingChange = new EventEmitter();\n //#endregion\n //#region DataSource\n DataSourceValue;\n @Input()\n get DataSource() {\n if (this.PathBindingValue) {\n return this.SelectedItemValue[this.PathBindingValue];\n }\n return this.DataSourceValue;\n }\n set DataSource(val) {\n if (this.PathBindingValue) {\n this.SelectedItemValue[this.PathBindingValue] = val;\n } else {\n this.DataSourceValue = val;\n }\n this.DataSourceChange.emit(this.DataSource);\n this.DataSourceInternalChange.emit(this.DataSource);\n this.cdRef.detectChanges();\n }\n @Output() DataSourceChange = new EventEmitter();\n\n @Input()\n get DataSourceInternal() {\n if (this.PathBindingValue) {\n return this.SelectedItemValue[this.PathBindingValue];\n }\n return this.DataSourceValue;\n }\n set DataSourceInternal(val) {\n if (this.PathBindingValue) {\n this.SelectedItemValue[this.PathBindingValue] = val;\n } else {\n this.DataSourceValue = val;\n }\n this.DataSourceChange.emit(this.DataSource);\n this.DataSourceInternalChange.emit(this.DataSource);\n this.StyleChanged.emit();\n this.cdRef.detectChanges();\n }\n @Output() DataSourceInternalChange = new EventEmitter();\n //#endregion\n //#region SelectedItem\n SelectedItemValue;\n @Input()\n get SelectedItem() {\n return this.SelectedItemValue;\n }\n set SelectedItem(val) {\n this.SelectedItemValue = val;\n this.SelectedItemChange.emit(this.SelectedItemValue);\n this.cdRef.detectChanges();\n }\n @Output() SelectedItemChange = new EventEmitter();\n //#endregion\n //#region TabIndex\n TabIndexValue: number;\n @Input()\n get TabIndex(): number {\n return this.TabIndexValue;\n }\n set TabIndex(val: number) {\n this.TabIndexValue = val;\n this.TabIndexChange.emit(this.TabIndexValue);\n }\n @Output() TabIndexChange = new EventEmitter();\n //#endregion\n\n //#region Disabled\n DisabledValue = false;\n @Input()\n get Disabled(): boolean {\n return this.DisabledValue;\n }\n set Disabled(val: boolean) {\n this.DisabledValue = val;\n this.DisabledChange.emit(this.DisabledValue);\n this.cdRef.detectChanges();\n }\n @Output() DisabledChange = new EventEmitter();\n //#endregion\n\n //#region Required\n RequiredValue = false;\n @Input()\n get Required(): boolean {\n return this.RequiredValue;\n }\n set Required(val: boolean) {\n this.RequiredValue = val;\n this.RequiredChange.emit(this.RequiredValue);\n }\n @Output() RequiredChange = new EventEmitter();\n //#endregion\n\n //#region Tooltip\n TooltipValue: string;\n @Input()\n get Tooltip(): string {\n return this.TooltipValue;\n }\n set Tooltip(val: string) {\n this.TooltipValue = val;\n this.TooltipChange.emit(this.TooltipValue);\n }\n @Output() TooltipChange = new EventEmitter();\n //#endregion\n Subscriptions = {}\n ViewInit = false;\n cdRef: ChangeDetectorRef;\n constructor(cdRef: ChangeDetectorRef) {\n this.cdRef = cdRef;\n }\n ngAfterViewInit(): void {\n this.ViewInit = true;\n }\n ngOnDestroy(): void {\n const keys = Object.keys(this.Subscriptions);\n keys.forEach((key) => {\n if (this.Subscriptions[key].unsubscribe) {\n this.Subscriptions[key].unsubscribe();\n }\n });\n }\n\n @Output() StyleChanged = new EventEmitter();\n onStyleChanged() {\n this.StyleChanged.emit();\n this.cdRef.detectChanges();\n }\n\n @Output() LayoutPropertyChanged = new EventEmitter();\n onLayoutPropertyChanged(event) {\n this.LayoutPropertyChanged.emit();\n this.cdRef.detectChanges();\n }\n\n SetProperties(props) {\n if (props) {\n let keys = Object.keys(props);\n for (let i = 0; i < keys.length; i++) {\n let key = keys[i];\n this[key] = props[key];\n }\n }\n }\n\n get BaseStyle() {\n return {\n 'height': '33px',\n 'line-height': '13px',\n 'font-size': '13px'\n }\n }\n\n ExternalSubscriptions;\n Action;\n EmitAction(ev) {\n if (this.Action) {\n this.Action({\n Event: ev,\n SelectedItem: this.SelectedItemValue,\n DataSource: this.DataSource,\n Source: this\n });\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { LayoutUnit } from '../../../models/basic/layoutunit.model';\nimport { BorderStyle } from '../../../models/enums/borderstyle.enum';\nimport { Border } from '../../../models/style/border.model';\nimport { BorderRadius } from '../../../models/style/borderradius.model';\nimport { BorderSide } from '../../../models/style/borderside.model';\nimport { Color } from '../../../models/style/color.model';\nimport { Gradient } from '../../../models/style/gradient.model';\nimport { GradientStopColor } from '../../../models/style/gradientstopcolor.model';\nimport { BaseThemeControl } from '../base.theme.control';\n\n@Component({\n selector: 'borderselection-theme-control',\n templateUrl: './borderselection.theme.control.html',\n styleUrls: ['./borderselection.theme.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BorderThemeControl extends BaseThemeControl implements OnInit {\n \n\n //#region Caption\n CaptionValue;\n @Input()\n get Caption() {\n return this.CaptionValue;\n }\n set Caption(val) {\n this.CaptionValue = val;\n this.cdRef.detectChanges();\n }\n //#endregion\n\n //#region CaptionPosition\n CaptionPositionValue\n @Input()\n get CaptionPosition() {\n return this.CaptionPositionValue;\n }\n set CaptionPosition(val) {\n this.CaptionPositionValue = val;\n this.CaptionPositionChange.emit(this.CaptionPositionValue);\n this.cdRef.detectChanges();\n }\n\n @Output() CaptionPositionChange = new EventEmitter();\n //#endregion\n\n //#region Tooltip\n TooltipValue\n @Input()\n get Tooltip() {\n return this.TooltipValue;\n }\n set Tooltip(val) {\n this.TooltipValue = val;\n this.TooltipChange.emit(this.TooltipValue);\n this.cdRef.detectChanges();\n }\n\n @Output() TooltipChange = new EventEmitter();\n //#endregion\n\n //#region Icon\n IconValue\n @Input()\n get Icon() {\n return this.IconValue;\n }\n set Icon(val) {\n this.IconValue = val;\n this.IconChange.emit(this.IconValue);\n this.cdRef.detectChanges();\n }\n\n @Output() IconChange = new EventEmitter();\n //#endregion\n //#region BorderStyle\n BorderStyles = [];\n BorderStyleValue;\n get BorderStyle() {\n return this.BorderStyleValue;\n }\n set BorderStyle(value) {\n this.BorderStyleValue = value;\n \n this.cdRef.detectChanges();\n }\n BorderStyleChanged() {\n this.DataSourceInternal.TopBorder.Style = this.BorderStyle;\n this.DataSourceInternal.LeftBorder.Style = this.BorderStyle;\n this.DataSourceInternal.RightBorder.Style = this.BorderStyle;\n this.DataSourceInternal.BottomBorder.Style = this.BorderStyle;\n this.StyleChanged.emit();\n }\n //#endregion\n //#region BorderSize\n BorderSizeValue =new LayoutUnit();\n get BorderSize() {\n return this.BorderSizeValue;\n }\n set BorderSize(value) {\n this.BorderSizeValue = value;\n \n this.cdRef.detectChanges();\n }\n SizeChanged() {\n this.DataSourceInternal.TopBorder.Thickness = JSON.parse(JSON.stringify(this.BorderSize));\n this.DataSourceInternal.LeftBorder.Thickness = JSON.parse(JSON.stringify(this.BorderSize));\n this.DataSourceInternal.RightBorder.Thickness = JSON.parse(JSON.stringify(this.BorderSize));\n this.DataSourceInternal.BottomBorder.Thickness = JSON.parse(JSON.stringify(this.BorderSize));\n this.StyleChanged.emit();\n }\n //#endregion\n //#region\n BorderRadiusValue = new LayoutUnit();\n get BorderRadius() {\n return this.BorderRadiusValue;\n }\n set BorderRadius(value) {\n this.BorderRadiusValue = value;\n \n this.cdRef.detectChanges();\n }\n RadiusChanged() {\n this.DataSourceInternal.BorderRadius.BottomLeft = JSON.parse(JSON.stringify(this.BorderRadius));\n this.DataSourceInternal.BorderRadius.TopLeft = JSON.parse(JSON.stringify(this.BorderRadius));\n this.DataSourceInternal.BorderRadius.BottomRight = JSON.parse(JSON.stringify(this.BorderRadius));\n this.DataSourceInternal.BorderRadius.TopRight = JSON.parse(JSON.stringify(this.BorderRadius));\n this.StyleChanged.emit();\n }\n //#endregion\n //#region BorderColor\n BorderColorValue = new Color();\n get BorderColor() {\n return this.BorderColorValue;\n }\n set BorderColor(value) {\n this.BorderColorValue = value;\n \n this.cdRef.detectChanges();\n }\n ColorChanged() {\n this.DataSourceInternal.TopBorder.Color = Gradient.Solid(Color.FromObject(this.BorderColor));\n this.DataSourceInternal.LeftBorder.Color = Gradient.Solid(Color.FromObject(this.BorderColor));\n this.DataSourceInternal.RightBorder.Color = Gradient.Solid(Color.FromObject(this.BorderColor));\n this.DataSourceInternal.BottomBorder.Color = Gradient.Solid(Color.FromObject(this.BorderColor));\n this.StyleChanged.emit();\n }\n //#endregion\n\n get TopLeft() {\n let retVal = {}\n retVal['border-top-left-radius'] = LayoutUnit.ToStyle(this.DataSourceInternal.BorderRadius.TopLeft);\n return retVal;\n }\n get TopRight() {\n let retVal = {}\n retVal['border-top-right-radius'] = LayoutUnit.ToStyle(this.DataSourceInternal.BorderRadius.TopRight);\n return retVal;\n }\n get BottomLeft() {\n let retVal = {}\n retVal['border-bottom-left-radius'] = LayoutUnit.ToStyle(this.DataSourceInternal.BorderRadius.BottomLeft);\n return retVal;\n }\n get BottomRight() {\n let retVal = {}\n retVal['border-bottom-right-radius'] = LayoutUnit.ToStyle(this.DataSourceInternal.BorderRadius.BottomRight);\n return retVal;\n }\n DifferentRadiusValue = false;\n get DifferentRadius() {\n return this.DifferentRadiusValue;\n }\n set DifferentRadius(value) {\n this.DifferentRadiusValue = value;\n }\n DifferentBorder = false;\n DifferentBorderValueChanged(event) {\n if (!this.DifferentBorder) {\n if (this.DataSourceInternal) {\n this.DataSourceInternal.TopBorder = new BorderSide();\n this.BorderStyleValue = this.DataSourceInternal.TopBorder.Style;\n this.BorderSizeValue = this.DataSourceInternal.TopBorder.Thickness;\n this.DataSourceInternal.TopBorder.Color = Gradient.Solid(Color.FromHex('#000000'));\n this.BorderColorValue = this.DataSourceInternal.TopBorder.Color.Colors[0].Color;\n\n\n this.DataSourceInternal.TopBorder.Color = Gradient.Solid(Color.FromObject(this.BorderColor));\n this.DataSourceInternal.TopBorder.Thickness = this.BorderSize;\n this.DataSourceInternal.TopBorder.Style = this.BorderStyle;\n\n this.DataSourceInternal.LeftBorder.Color = Gradient.Solid(Color.FromObject(this.BorderColor));\n this.DataSourceInternal.LeftBorder.Thickness = this.BorderSize;\n this.DataSourceInternal.LeftBorder.Style = this.BorderStyle;\n\n this.DataSourceInternal.RightBorder.Color = Gradient.Solid(Color.FromObject(this.BorderColor));\n this.DataSourceInternal.RightBorder.Thickness = this.BorderSize;\n this.DataSourceInternal.RightBorder.Style = this.BorderStyle;\n\n this.DataSourceInternal.BottomBorder.Color = Gradient.Solid(Color.FromObject(this.BorderColor));\n this.DataSourceInternal.BottomBorder.Thickness = this.BorderSize;\n this.DataSourceInternal.BottomBorder.Style = this.BorderStyle;\n this.StyleChanged.emit();\n }\n }\n }\n TopBorderSet = false;\n LeftBorderSet = false;\n RightBorderSet = false;\n BottomBorderSet = false;\n get SelectedBorder() {\n if (this.DataSourceInternal && this.SelectedBorderPath) {\n switch (this.SelectedBorderPath) {\n case 'left':\n return this.DataSourceInternal.LeftBorder;\n case 'right':\n return this.DataSourceInternal.RightBorder;\n case 'bottom':\n return this.DataSourceInternal.BottomBorder;\n case 'top':\n return this.DataSourceInternal.TopBorder;\n }\n }\n return null;\n }\n SelectedBorderPath = null;\n SetSelectedBorder(value) {\n if (this.SelectedBorderPath != value) {\n this.SelectedBorderPath = value;\n } else {\n this.SelectedBorderPath = null;\n }\n }\n constructor(cdRef: ChangeDetectorRef) {\n super(cdRef);\n this.BorderStyles = EnumHelper.GetDropdownValues(BorderStyle);\n this.DataSourceInternalChange.subscribe((value) => {\n if (value) {\n this.TopBorderSet = (value.TopBorder && BorderSide.BorderToStyle(value.TopBorder) != '');\n this.LeftBorderSet = (value.LeftBorder && BorderSide.BorderToStyle(value.LeftBorder) != '');\n this.RightBorderSet = (value.RightBorder && BorderSide.BorderToStyle(value.RightBorder) != '');\n this.BottomBorderSet = (value.BottomBorder && BorderSide.BorderToStyle(value.BottomBorder) != '');\n if (value.TopBorder && value.LeftBorder && value.RightBorder && value.BottomBorder) {\n let tb = BorderSide.BorderToStyle(value.TopBorder)\n let lb = BorderSide.BorderToStyle(value.LeftBorder)\n let rb = BorderSide.BorderToStyle(value.RightBorder)\n let bb = BorderSide.BorderToStyle(value.BottomBorder)\n if (!(tb || lb || rb ||bb)) {\n this.DifferentBorder = false;\n } else {\n if (tb == lb && tb == rb && tb == bb) {\n this.DifferentBorder = false;\n this.BorderStyleValue = value.TopBorder.Style;\n this.BorderSizeValue = value.TopBorder.Thickness;\n this.BorderColorValue = value.TopBorder.Color.Colors[0].Color;\n } else {\n this.DifferentBorder = true;\n }\n }\n } \n if (value.BorderRadius) {\n let tl = LayoutUnit.ToStyle(value.BorderRadius.TopLeft)\n let tr = LayoutUnit.ToStyle(value.BorderRadius.TopRight)\n let bl = LayoutUnit.ToStyle(value.BorderRadius.BottomLeft)\n let br = LayoutUnit.ToStyle(value.BorderRadius.BottomRight)\n if (!(tl || tr || bl || br)) {\n this.DifferentRadiusValue = false;\n } else {\n if (tl && tl == tr && tl == bl && tl == br) {\n this.DifferentRadiusValue = false;\n this.BorderRadiusValue = value.BorderRadius.BottomLeft;\n\n } else {\n this.DifferentRadiusValue = true;\n }\n }\n }\n this.cdRef.detectChanges();\n }\n })\n }\n ngOnInit(): void {\n //this.BorderSize = new LayoutUnit();\n //this.BorderRadius = new LayoutUnit();\n }\n\n onClick(ev) {\n this.EmitAction(ev);\n }\n onStyleChanged() {\n this.StyleChanged.emit();\n }\n ClearBorderSide() {\n switch (this.SelectedBorderPath) {\n case 'left':\n this.DataSourceInternal.LeftBorder = new BorderSide();\n this.LeftBorderSet = false;\n break;\n case 'right':\n this.DataSourceInternal.RightBorder = new BorderSide();\n this.RightBorderSet = false;\n break\n case 'bottom':\n this.DataSourceInternal.BottomBorder = new BorderSide();\n this.BottomBorderSet = false;\n break\n case 'top':\n this.DataSourceInternal.TopBorder = new BorderSide();\n this.TopBorderSet = false;\n break\n }\n this.SetSelectedBorder(null);\n this.StyleChanged.emit();\n this.cdRef.detectChanges();\n }\n onBorderStyleChanged() {\n switch (this.SelectedBorderPath) {\n case 'left':\n this.LeftBorderSet = true;\n break;\n case 'right':\n this.RightBorderSet = true;\n break\n case 'bottom':\n this.BottomBorderSet = true;\n break\n case 'top':\n this.TopBorderSet = true;\n break\n }\n this.StyleChanged.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Color } from '../../../models/style/color.model';\nimport { BaseThemeControl } from '../base.theme.control';\n\n@Component({\n selector: 'boxshadow-theme-control',\n templateUrl: './boxshadow.theme.control.html',\n styleUrls:['./boxshadow.theme.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BoxShadowThemeControl extends BaseThemeControl {\n SelectedEntry;\n SelectionChanged(item) {\n if (item) {\n if (!item.Color) {\n item.Color = '#000000';\n }\n if (item.ShiftRight == null) {\n item.ShiftRight = 0;\n }\n if (item.ShiftDown == null) {\n item.ShiftDown = 3;\n }\n if (item.Blur == null) {\n item.Blur = 6;\n }\n if (item.Spread == null) {\n item.Spread = 0;\n }\n if (item.Opacity == null) {\n item.Opacity = 0.16;\n }\n this.SelectedEntryColor = Color.FromHex(item.Color);\n this.SelectedEntryColor.A = item.Opacity * 255;\n\n } else {\n this.SelectedEntryColor = null;\n }\n }\n onStyleChanged() {\n this.StyleChanged.emit();\n }\n SelectedEntryColor;\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BaseThemeControl } from '../base.theme.control';\n\n@Component({\n selector: 'button-theme-control',\n templateUrl: './button.theme.control.html',\n styleUrls: ['./buttom.theme.control.css'],\n // styles: [`::ng-deep .mat-button,\n // .mat-raised-button,\n // .mat-icon-button,\n // .mat-stroked-button,\n // .mat-flat-button,\n // .mat-fab,\n // .mat-mini-fab {\n // background: var(--appbuilder-primary-color) !important;\n // color: var(--appbuilder-hover-color) !important;\n // }`],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ButtonThemeControl extends BaseThemeControl {\n\n //#region Caption\n CaptionValue;\n @Input()\n get Caption() {\n return this.CaptionValue;\n }\n set Caption(val) {\n this.CaptionValue = val;\n this.cdRef.detectChanges();\n }\n //#endregion\n\n //#region CaptionPosition\n CaptionPositionValue\n @Input()\n get CaptionPosition() {\n return this.CaptionPositionValue;\n }\n set CaptionPosition(val) {\n this.CaptionPositionValue = val;\n this.CaptionPositionChange.emit(this.CaptionPositionValue);\n this.cdRef.detectChanges();\n }\n\n @Output() CaptionPositionChange = new EventEmitter();\n //#endregion\n\n //#region Tooltip\n TooltipValue\n @Input()\n get Tooltip() {\n return this.TooltipValue;\n }\n set Tooltip(val) {\n this.TooltipValue = val;\n this.TooltipChange.emit(this.TooltipValue);\n this.cdRef.detectChanges();\n }\n\n @Output() TooltipChange = new EventEmitter();\n //#endregion\n\n //#region Icon\n IconValue\n @Input()\n get Icon() {\n return this.IconValue;\n }\n set Icon(val) {\n this.IconValue = val;\n this.IconChange.emit(this.IconValue);\n this.cdRef.detectChanges();\n }\n\n @Output() IconChange = new EventEmitter();\n //#endregion\n\n @Output() Clicked = new EventEmitter();\n onClick(ev) {\n this.EmitAction(ev);\n this.Clicked.emit(ev);\n }\n}\n","import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { BaseThemeControl } from '../base.theme.control';\r\n\r\n@Component({\r\n selector: 'checkbox-theme-control',\r\n templateUrl: './checkbox.control.html',\r\n styleUrls: ['./checkbox.control.css']\r\n})\r\nexport class CheckBoxThemeControl extends BaseThemeControl {\r\n //#region IsChecked\r\n @Input()\r\n get IsChecked() {\n if (typeof this.DataSourceInternal === 'boolean') {\n return this.DataSourceInternal;\n }\n return false;\n }\n set IsChecked(val) {\n this.DataSourceInternal = val;\n this.IsCheckedChange.emit(val);\n this.cdRef.detectChanges();\n }\r\n\r\n @Output() IsCheckedChange = new EventEmitter();\r\n //#endregion\r\n //#region LabelPosition\r\n LabelPositionValue;\r\n @Input()\r\n get LabelPosition() {\n return this.LabelPositionValue;\n }\n set LabelPosition(val) {\n this.LabelPositionValue = val;\n this.LabelPositionChange.emit(this.LabelPositionValue);\n this.cdRef.detectChanges();\n }\r\n\r\n @Output() LabelPositionChange = new EventEmitter();\r\n //#endregion\r\n //#region Caption\r\n CaptionValue;\r\n @Input()\r\n get Caption() {\n return this.CaptionValue;\r\n }\n set Caption(val) {\n this.CaptionValue = val;\n this.cdRef.detectChanges();\n }\r\n //#endregion\r\r @Output() OnCheckedChanged = new EventEmitter();\r\n\r\n constructor(cdRef: ChangeDetectorRef) {\r\n super(cdRef);\r\n }\r\n\r\n onChange(ev) {\r\n this.EmitAction(ev);\r\n this.OnCheckedChanged.emit(ev.checked);\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, OnDestroy, Output } from '@angular/core';\nimport { Subscription } from 'rxjs'; // Import Subscription\nimport { MenuKeyDownHelper } from '../../../helpers/clickstoppropagation.directive';\nimport { GradientType } from '../../../models/enums/gradienttype.enum';\nimport { Border } from '../../../models/style/border.model';\nimport { BorderSide } from '../../../models/style/borderside.model';\nimport { Color } from '../../../models/style/color.model';\nimport { Gradient } from '../../../models/style/gradient.model';\nimport { GradientStopColor } from '../../../models/style/gradientstopcolor.model';\nimport { BaseThemeControl } from '../base.theme.control';\n\n@Component({\n selector: 'colorpicker-theme-control',\n templateUrl: './colorpicker.theme.control.html',\n styleUrls: ['./colorpicker.theme.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ColorpickerThemeControl extends BaseThemeControl implements OnInit, OnDestroy {\n private subscriptions: Subscription[] = []; // Array to hold subscriptions\n\n //#region Caption\n CaptionValue: string;\n @Input()\n get Caption(): string {\n return this.CaptionValue;\n }\n set Caption(val: string) {\n this.CaptionValue = val;\n this.CaptionChange.emit(this.CaptionValue);\n }\n\n @Output() CaptionChange = new EventEmitter();\n //#endregion\n //#region Icon\n IconValue: string;\n @Input()\n get Icon(): string {\n return this.IconValue;\n }\n set Icon(val: string) {\n this.IconValue = val;\n this.IconChange.emit(this.IconValue);\n }\n\n @Output() IconChange = new EventEmitter();\n //#endregion\n //#region ColorType\n ColorTypeValue: string = 'Color';\n @Input()\n get ColorType(): string {\n return this.ColorTypeValue;\n }\n set ColorType(val: string) {\n this.ColorTypeValue = val;\n this.ColorTypeChange.emit(this.ColorTypeValue);\n }\n\n @Output() ColorTypeChange = new EventEmitter();\n //#endregion\n\n //#region ColorSet\n ColorSetValue: boolean = false;\n get ColorSet(): boolean {\n return this.ColorSetValue;\n }\n set ColorSet(val: boolean) {\n this.ColorSetValue = val;\n this.cdRef.detectChanges();\n }\n //#endregion\n //#region Active\n ActiveValue: boolean = false;\n get Active(): boolean {\n return this.ActiveValue;\n }\n set Active(val: boolean) {\n this.ActiveValue = val;\n this.cdRef.detectChanges();\n }\n //#endregion\n\n get Color() {\n if (this.DataSourceInternal) {\n if (this.DataSourceInternal instanceof Border || this.ColorType == 'Border') {\n if (this.DataSourceInternal.BottomBorder && this.DataSourceInternal.BottomBorder.Color && this.DataSourceInternal.BottomBorder.Color.Colors && this.DataSourceInternal.BottomBorder.Color.Colors.length == 1) {\n return this.DataSourceInternal.BottomBorder.Color.Colors[0].Color;\n }\n } else if (this.DataSourceInternal instanceof Gradient || this.ColorType == 'Gradient') {\n if (this.DataSourceInternal.Colors && this.DataSourceInternal.Colors.length == 1) {\n return this.DataSourceInternal.Colors[0].Color;\n }\n return null;\n } else {\n return this.DataSourceInternal;\n }\n } else {\n return null;\n }\n }\n\n InitComplete = false;\n\n ngOnInit(): void {\n // Store subscriptions in the array\n this.subscriptions.push(this.DataSourceInternalChange.subscribe((value) => {\n this.RefreshInternalValues(true);\n }));\n this.subscriptions.push(this.SelectedItemChange.subscribe((value) => {\n this.RefreshInternalValues(true);\n }));\n this.RefreshInternalValues(true);\n }\n\n ngOnDestroy(): void {\n // Unsubscribe from all subscriptions\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n }\n\n RefreshInternalValues(setActive) {\n if (this.UserChange) {\n this.UserChange = false;\n } else {\n if (setActive) {\n this.Active = false;\n }\n this.updateFillStyle();\n if (Color.GetStyleText(this.Color) != '' && setActive) {\n this.Active = true;\n }\n if (this.Color && (this.Color.R || this.Color.G || this.Color.B)) {\n this.ColorSet = true;\n }\n this.cdRef.detectChanges();\n }\n }\n\n menuKeyDown(ev) {\n MenuKeyDownHelper.onKeyDown(ev);\n }\n FillStyle = {};\n UserChange = false;\n\n ActiveChanged(val) {\n this.UserChange = true;\n if (!val) {\n if (this.DataSourceInternal instanceof Border || this.ColorType == 'Border') {\n this.setBorderSide(this.SelectedItemValue.TopBorder, null);\n this.setBorderSide(this.SelectedItemValue.RightBorder, null);\n this.setBorderSide(this.SelectedItemValue.BottomBorder, null);\n this.setBorderSide(this.SelectedItemValue.LeftBorder, null);\n this.StyleChanged.emit();\n } else if (this.DataSourceInternal instanceof Gradient || this.ColorType == 'Gradient') {\n this.DataSourceInternal.Colors = [];\n this.StyleChanged.emit();\n } else {\n this.DataSourceInternal = new Color();\n }\n this.ColorSet = false;\n this.updateFillStyle();\n }\n }\n\n updateFillStyle() {\n const style = {};\n\n if (this.Color) {\n style['fill'] = Color.GetStyleText(this.Color);\n this.ColorSet = Color.GetStyleText(this.Color) != '';\n }\n this.FillStyle = style;\n this.cdRef.detectChanges();\n }\n\n setBorderSide(side, color) {\n if (side) {\n if (color) {\n const cs = new GradientStopColor();\n cs.Color = color;\n if (!side.Colors) {\n side.Colors = [];\n }\n side.Colors.push(cs);\n } else {\n side.Colors = [];\n }\n }\n }\n\n SetDataSource(color) {\n if (color) {\n if (!this.DataSourceInternal) {\n switch (this.ColorType) {\n case 'Border': this.DataSourceInternal = new Border(); break;\n case 'Gradient': this.DataSourceInternal = new Gradient(); break;\n case 'Color': this.DataSourceInternal = new Color(); break;\n }\n }\n if (this.DataSourceInternal instanceof Border || this.ColorType == 'Border') {\n this.setBorderSide(this.SelectedItemValue.TopBorder, color);\n this.setBorderSide(this.SelectedItemValue.RightBorder, color);\n this.setBorderSide(this.SelectedItemValue.BottomBorder, color);\n this.setBorderSide(this.SelectedItemValue.LeftBorder, color);\n this.StyleChanged.emit();\n } else if (this.DataSourceInternal instanceof Gradient || this.ColorType == 'Gradient') {\n this.DataSourceInternal.Type = GradientType.Solid;\n this.DataSourceInternal.Colors = [];\n const cs = new GradientStopColor();\n cs.Color = color;\n this.DataSourceInternal.Colors.push(cs);\n this.StyleChanged.emit();\n } else if (this.DataSourceInternal instanceof Color || this.ColorType == 'Color') {\n this.DataSourceInternal = color;\n }\n\n this.ColorSet = true;\n } else {\n if (this.DataSourceInternal instanceof Border || this.ColorType == 'Border') {\n this.setBorderSide(this.SelectedItemValue.TopBorder, null);\n this.setBorderSide(this.SelectedItemValue.RightBorder, null);\n this.setBorderSide(this.SelectedItemValue.BottomBorder, null);\n this.setBorderSide(this.SelectedItemValue.LeftBorder, null);\n this.StyleChanged.emit();\n } else if (this.DataSourceInternal instanceof Gradient || this.ColorType == 'Gradient') {\n this.DataSourceInternal.Colors = [];\n this.StyleChanged.emit();\n } else {\n this.DataSourceInternal = null;\n }\n\n this.ColorSet = false;\n }\n this.updateFillStyle();\n }\n\n clearValue(event): void {\n event.stopPropagation();\n if (this.DataSourceInternal instanceof Border || this.ColorType == 'Border') {\n this.setBorderSide(this.SelectedItemValue.TopBorder, null);\n this.setBorderSide(this.SelectedItemValue.RightBorder, null);\n this.setBorderSide(this.SelectedItemValue.BottomBorder, null);\n this.setBorderSide(this.SelectedItemValue.LeftBorder, null);\n this.StyleChanged.emit();\n } else if (this.DataSourceInternal instanceof Gradient || this.ColorType == 'Gradient') {\n this.DataSourceInternal.Colors = [];\n this.StyleChanged.emit();\n } else {\n this.DataSourceInternal = null;\n }\n this.ColorSet = false;\n this.updateFillStyle();\n }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { UUID } from 'angular2-uuid';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { BaseThemeControl } from '../base.theme.control';\n@Component({\n selector: 'combobox-theme-control',\n templateUrl: './combobox.theme.control.html',\n styleUrls: ['./combobox.theme.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ComboboxThemeControl extends BaseThemeControl implements AfterViewInit {\n ngAfterViewInit(): void {\n this.cdRef.detectChanges();\n this.CheckSelection();\n this.Subscriptions['DataSourceChange'] = this.DataSourceChange.subscribe(() => {\n this.CheckSelection();\n });\n }\n @Output() valueChange: EventEmitter = new EventEmitter();\n\n @Input() showClearButton: boolean = true;\n\n CheckSelection() {\n if (this.DataSourceInternal && this.ItemsSource) {\n if (this.UseGrouping) {\n let item = null;\n for (var i = 0; i < this.ItemsSource.length; i++) {\n let group = this.ItemsSource[i];\n if (group.items) {\n item = group.items.find((value) => {\n return this.ValueMemberPath ? value[this.ValueMemberPath] == this.DataSourceInternal : value == this.DataSourceInternal\n })\n if (item) {\n break;\n }\n }\n }\n this.Selection = item;\n } else {\n let item = this.ItemsSource.find((value) => {\n return this.ValueMemberPath ? value[this.ValueMemberPath] == this.DataSourceInternal : value == this.DataSourceInternal\n })\n this.Selection = item;\n }\n\n }\n }\n\n Selection;\n ID = UUID.UUID()\n //#region Multiple\n MultipleValue = false;\n @Input()\n get Multiple(): boolean {\n return this.MultipleValue;\n }\n set Multiple(val: boolean) {\n this.MultipleValue = val;\n this.MultipleChange.emit(this.MultipleValue);\n }\n\n @Output() MultipleChange = new EventEmitter();\n //#endregion\n //#region IconMemberPath\n IconMemberPathValue: string;\n @Input()\n get IconMemberPath(): string {\n return this.IconMemberPathValue;\n }\n set IconMemberPath(val: string) {\n this.IconMemberPathValue = val;\n this.IconMemberPathChange.emit(this.IconMemberPathValue);\n }\n\n @Output() IconMemberPathChange = new EventEmitter();\n //#endregion\n\n //#region ValueMemberPath\n ValueMemberPathValue: string;\n @Input()\n get ValueMemberPath(): string {\n return this.ValueMemberPathValue;\n }\n set ValueMemberPath(val: string) {\n this.ValueMemberPathValue = val;\n this.ValueMemberPathChange.emit(this.ValueMemberPathValue);\n }\n\n @Output() ValueMemberPathChange = new EventEmitter();\n //#endregion\n\n //#region DisplayMemberPath\n DisplayMemberPathValue: string;\n @Input()\n get DisplayMemberPath(): string {\n return this.DisplayMemberPathValue;\n }\n set DisplayMemberPath(val: string) {\n this.DisplayMemberPathValue = val;\n this.DisplayMemberPathChange.emit(this.DisplayMemberPathValue);\n }\n\n @Output() DisplayMemberPathChange = new EventEmitter();\n //#endregion\n //#region ShowClear\n ShowClearValue: boolean = true;\n @Input()\n get ShowClear(): boolean {\n return this.ShowClearValue;\n }\n set ShowClear(val: boolean) {\n this.ShowClearValue = val;\n this.ShowClearChange.emit(this.ShowClearValue);\n }\n\n @Output() ShowClearChange = new EventEmitter();\n //#endregion\n //#region UseGrouping\n UseGroupingValue: boolean = false;\n @Input()\n get UseGrouping(): boolean {\n return this.UseGroupingValue;\n }\n set UseGrouping(val: boolean) {\n this.UseGroupingValue = val;\n this.UseGroupingChange.emit(this.UseGroupingValue);\n }\n\n @Output() UseGroupingChange = new EventEmitter();\n //#endregion\n //#region OptionStyle\n OptionStyleValue: string;\n @Input()\n get OptionStyle(): string {\n return this.OptionStyleValue;\n }\n set OptionStyle(val: string) {\n this.OptionStyleValue = val;\n this.OptionStyleChange.emit(this.OptionStyleValue);\n }\n\n @Output() OptionStyleChange = new EventEmitter();\n //#endregion\n //#region ItemsSourceSub\n ItemsSourceSubValue;\n @Input()\n get ItemsSourceSub() {\n return this.ItemsSourceSubValue;\n }\n set ItemsSourceSub(val) {\n //if (this.ItemsSourceSubValue) {\n // this.ItemsSourceSubValue.unsubscribe();\n //}\n //if (val) {\n this.ItemsSourceSubValue = val.subscribe((items) => {\n this.ItemsSource = items;\n })\n //}\n this.ItemsSourceSubValue = val;\n }\n //#endregion\n //#region ItemsSource\n ItemsSourceValue: any[] = [];\n @Input()\n get ItemsSource(): any[] {\n return this.ItemsSourceValue;\n }\n set ItemsSource(val: any[]) {\n this.ItemsSourceValue = val;\n this.ItemsSourceChange.emit(this.ItemsSourceValue);\n this.cdRef.detectChanges();\n }\n\n @Output() ItemsSourceChange = new EventEmitter();\n //#endregion\n //#region EnumSource\n EnumSourceValue: any;\n @Input()\n get EnumSource(): any {\n return this.EnumSourceValue;\n }\n set EnumSource(val: any) {\n this.ItemsSourceValue = EnumHelper.GetDropdownValues(val);\n this.ValueMemberPath = 'type';\n this.DisplayMemberPath = 'value';\n this.EnumSourceValue = val;\n this.EnumSourceChange.emit(this.EnumSourceValue);\n this.cdRef.detectChanges();\n }\n\n @Output() EnumSourceChange = new EventEmitter();\n //#endregion\n @Output() SelectionChange = new EventEmitter();\n\n onSelectionChange(ev) {\n this.EmitAction(ev);\n this.SelectionChange.emit(this.DataSourceInternal);\n this.valueChange.emit(ev);\n }\n\n clear() {\n this.DataSourceInternal = null;\n this.onSelectionChange({ originalEvent: null, value: null });\n }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BaseThemeControl } from '../base.theme.control';\nimport { PickerType } from 'src/app/models/enums/pickertype.enum';\nimport { PickerMode } from 'src/app/models/enums/pickermode.enum';\n\n@Component({\n selector: 'datetime-theme-control',\n templateUrl: './datetime.control.html',\n styleUrls: ['./datetime.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DateTimeThemeControl extends BaseThemeControl {\n ViewInitialized = false;\n ngAfterViewInit(): void {\n this.ViewInitialized = true;\n this.cdRef.detectChanges();\n }\n\n //#region InputType\n InputTypeValue: string = \"range\";\n @Input()\n get InputType(): string {\n return this.InputTypeValue;\n }\n set InputType(val: string) {\n this.InputTypeValue = val;\n this.InputTypeChange.emit(this.InputTypeValue);\n if (this.ViewInitialized) {\n this.cdRef.detectChanges();\n }\n }\n \n @Output() InputTypeChange = new EventEmitter();\n\n \n //#region IsChecked\n @Input()\n get IsChecked() {\n return this.DataSourceInternal;\n }\n set IsChecked(val) {\n this.DataSourceInternal = val;\n this.IsCheckedChange.emit(val);\n this.cdRef.detectChanges();\n }\n\n @Output() IsCheckedChange = new EventEmitter();\n \n\n @Output() OnCheckedChanged = new EventEmitter();\n\n constructor(cdRef: ChangeDetectorRef) {\n super(cdRef);\n }\n setFocus() {\n let control = document.getElementById(\"dt1\");\n if (control) {\n control.focus();\n }\n }\n onDateChanged(ev) {\n this.EmitAction(ev);\n this.OnCheckedChanged.emit(ev.checked);\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { FileExplorerDialog } from '../../../components/fileexplorer/fileexplorer.dialog';\nimport { BaseThemeControl } from '../base.theme.control';\n\n@Component({\n selector: 'fileselection-theme-control',\n templateUrl: './fileselection.theme.control.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FileSelectionThemeControl extends BaseThemeControl {\n constructor(public cdRef: ChangeDetectorRef, private dialog: MatDialog) {\n super(cdRef);\n }\n\n OpenExplorer() {\n const dialogRef = this.dialog.open(FileExplorerDialog, {\n panelClass: 'fileexplorer-dialog-container',\n data: { MediaSourceID: this.SelectedItem.MediaSource }\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.DataSourceInternal = result;\n }\n });\n }\n\n clearFile() {\n this.DataSourceInternal = null;\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { FormulaEditorDialog } from '../../../components/common/formulaEditor/formulaEditor.control';\nimport { AdvancedFormulaParser } from '../../../helpers/formula.parser';\nimport { RTLHelper } from '../../../helpers/rtl.helper';\nimport { FormulaNodeInformation } from '../../../models/basic/formulaEditor.model';\nimport { FormulaGroupEnum } from '../../../models/enums/formulagroupenum.enum';\nimport { FormulaInputMode } from '../../../models/enums/formulainputmode.enum';\nimport { VariableDisplay } from '../../../models/enums/variabledisplay.enum';\nimport { StandardRequestBase } from '../../../services/request-base';\nimport { BaseThemeControl } from '../base.theme.control';\n\n@Component({\n selector: 'formulatextbox-theme-control',\n templateUrl: './formula.textbox.theme.control.html',\n styleUrls: ['./formula.textbox.theme.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormulaTextBoxThemeControl extends BaseThemeControl {\n Mentions = [];\n GlobalMentions = [];\n //#region Variables\n VariablesValue = [];\n @Input()\n get Variables() {\n return this.VariablesValue;\n }\n set Variables(val) {\n this.VariablesValue = val;\n }\n //#endregion\n //#region VariablesSub\n VariablesSubValue;\n @Input()\n get VariablesSub() {\n return this.VariablesSubValue;\n }\n set VariablesSub(val) {\n if (this.VariablesSubValue) {\n this.VariablesSubValue.unsubscribe();\n }\n if (val) {\n this.VariablesSubValue = val.subscribe((items) => {\n this.Variables = items;\n })\n }\n }\n //#endregion\n //#region SystemVariables\n SystemVariablesValue = [];\n\n @Input()\n get SystemVariables() {\n return this.SystemVariablesValue;\n }\n set SystemVariables(val) {\n if (val) {\n this.SystemVariablesValue = val;\n const list = [];\n if (Array.isArray(val)) {\n val.forEach(sv => {\n list.push(sv.Name);\n });\n }\n this.updateMentions(list);\n this.SystemVariablesChange.emit(this.SystemVariablesValue);\n }\n }\n\n @Output() SystemVariablesChange = new EventEmitter();\n //#endregion\n //#region InputMode\n InputModeValue = FormulaInputMode.VariableName;\n\n @Input()\n get InputMode() {\n return this.InputModeValue;\n }\n set InputMode(val) {\n this.InputModeValue = val;\n this.InputModeChange.emit(this.InputModeValue);\n }\n\n @Output() InputModeChange = new EventEmitter();\n //#endregion\n\n //#region InputMode\n FormulaGroupValue = FormulaGroupEnum.All;\n\n @Input()\n get FormulaGroup() {\n return this.FormulaGroupValue;\n }\n set FormulaGroup(val) {\n this.FormulaGroupValue = val;\n this.FormulaGroupChange.emit(this.FormulaGroupValue);\n }\n\n @Output() FormulaGroupChange = new EventEmitter();\n //#endregion\n //#region DisplayFormula\n DisplayFormulaValue;\n\n @Input()\n get DisplayFormula() {\n return this.DisplayFormulaValue;\n }\n set DisplayFormula(val) {\n this.DisplayFormulaValue = val;\n this.DisplayFormulaChange.emit(this.DisplayFormulaValue);\n }\n\n @Output() DisplayFormulaChange = new EventEmitter();\n //#endregion\n IsRtl = false;\n constructor(private dialog: MatDialog, cdRef: ChangeDetectorRef, private requestService: StandardRequestBase) {\n super(cdRef);\n\n this.Subscriptions['DataSourceInternalChange'] = this.DataSourceInternalChange.subscribe(x => {\n if (x) {\n const formula = FormulaNodeInformation.ToFormulaNodeInformation(this.DataSourceInternal);\n if (formula) {\n this.DisplayFormula = formula.ToString(null, VariableDisplay.NodeName);\n }\n }\n });\n this.Subscriptions['PathBinding'] = this.PathBindingChange.subscribe(x => {\n if (this.DataSourceInternal) {\n const formula = FormulaNodeInformation.ToFormulaNodeInformation(this.DataSourceInternal);\n if (formula) {\n this.DisplayFormula = formula.ToString(null, VariableDisplay.NodeName);\n }\n }\n })\n this.IsRtl = RTLHelper.Direction === 'rtl';\n this.Subscriptions['RTL'] = RTLHelper.DirectionChanged.subscribe((dir) => {\n this.IsRtl = dir === 'rtl';\n });\n }\n updateMentions(systemVariables) {\n const mentions = [];\n mentions.push(...systemVariables);\n mentions.push(...this.GlobalMentions);\n this.Mentions = mentions;\n }\n \n openDialog() {\n const args = {\n Variables: this.Variables,\n SystemVariables: this.SystemVariables,\n InputMode: this.InputModeValue,\n FormulaGroup: this.FormulaGroupValue,\n Formula: this.DisplayFormula ? this.DisplayFormula:this.DataSourceInternal\n };\n FormulaEditorDialog.ShowDialog(args, (r) => {\n if (r) {\n this.DisplayFormula = r.Formula;\n this.OnFormulaChanged();\n }\n return true;\n });\n }\n OnFormulaChanged() {\n if (this.DisplayFormula) {\n const parser = new AdvancedFormulaParser();\n parser.SetVariables(this.Variables, FormulaInputMode.VariableName);\n try {\n this.DataSourceInternal = parser.Parse(this.DisplayFormula);\n } catch {\n if (this.DataSourceInternal) {\n const formula = FormulaNodeInformation.ToFormulaNodeInformation(this.DataSourceInternal);\n if (formula) {\n this.DisplayFormula = formula.ToString(null, VariableDisplay.NodeName);\n } else {\n this.DisplayFormula = '';\n this.DataSourceInternal = null;\n }\n }\n }\n this.onStyleChanged();\n this.displayMemberChanged();\n } else {\n this.DataSourceInternal = null;\n }\n }\n displayMemberChanged() {\n if (this.SelectedItemValue && this.SelectedItemValue.Element &&\n typeof this.SelectedItemValue.Element.UpdateCaptionGetter === 'function') {\n this.SelectedItemValue.Element.UpdateCaptionGetter();\n }\n }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MenuKeyDownHelper } from '../../../helpers/clickstoppropagation.directive';\nimport { Point } from '../../../models/basic/point.model';\nimport { GradientType } from '../../../models/enums/gradienttype.enum';\nimport { Gradient } from '../../../models/style/gradient.model';\nimport { BaseThemeControl } from '../base.theme.control';\n\n\n@Component({\n selector: 'gradientpicker-theme-control',\n templateUrl: './gradientpicker.theme.control.html',\n styleUrls: ['./gradientpicker.theme.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GradientpickerThemeControl extends BaseThemeControl implements OnInit {\n //#region Caption\n CaptionValue: string;\n @Input()\n get Caption(): string {\n return this.CaptionValue;\n }\n set Caption(val: string) {\n this.CaptionValue = val;\n this.CaptionChange.emit(this.CaptionValue);\n }\n\n @Output() CaptionChange = new EventEmitter();\n //#endregion\n //#region Icon\n IconValue: string;\n @Input()\n get Icon(): string {\n return this.IconValue;\n }\n set Icon(val: string) {\n this.IconValue = val;\n this.IconChange.emit(this.IconValue);\n }\n\n @Output() IconChange = new EventEmitter();\n //#endregion\n\n //#region ColorSet\n ColorSetValue: boolean = false;\n get ColorSet(): boolean {\n return this.ColorSetValue;\n }\n set ColorSet(val: boolean) {\n this.ColorSetValue = val;\n this.cdRef.detectChanges();\n }\n //#endregion\n //#region Active\n ActiveValue: boolean = false;\n get Active(): boolean {\n return this.ActiveValue;\n }\n set Active(val: boolean) {\n this.ActiveValue = val;\n this.cdRef.detectChanges();\n }\n //#endregion\n ActiveChanged(val) {\n if (!val) {\n this.clearValue();\n }\n }\n ngOnInit(): void {\n this.DataSourceInternalChange.subscribe((value) => {\n this.RefreshInternalValues();\n })\n this.SelectedItemChange.subscribe((value) => {\n this.RefreshInternalValues();\n })\n this.RefreshInternalValues();\n }\n RefreshInternalValues() {\n this.Active = false;\n this.ColorSet = false;\n this.updateFillStyle();\n let styleobj = Gradient.getStyleObject(this.DataSourceInternal);\n if (Object.keys(styleobj).length > 0) {\n this.Active = true;\n this.ColorSet = true;\n }\n }\n menuKeyDown(ev) {\n MenuKeyDownHelper.onKeyDown(ev);\n }\n FillStyle = {};\n updateFillStyle() {\n const fillStyle = {};\n if (this.DataSourceInternal) {\n const gradient = Gradient.getStyleObject(this.DataSourceInternal);\n if (gradient) {\n if (this.DataSourceInternal.Type === GradientType.Solid) {\n const bgc = gradient['background-color'];\n if (bgc) {\n fillStyle['fill'] = bgc;\n }\n } else {\n Object.assign(fillStyle, gradient);\n }\n }\n }\n this.FillStyle = fillStyle;\n this.cdRef.detectChanges();\n }\n SetDataSource(color) {\n if (color) {\n this.DataSourceInternal.StartPoint = color.StartPoint;\n this.DataSourceInternal.EndPoint = color.EndPoint;\n this.DataSourceInternal.Colors = color.Colors;\n this.DataSourceInternal.Type = color.Type;\n this.ColorSet = true;\n this.StyleChanged.emit();\n } else {\n let styleobj = Gradient.getStyleObject(this.DataSourceInternal);\n if (Object.keys(styleobj).length > 0) {\n this.DataSourceInternal.StartPoint = new Point();\n this.DataSourceInternal.EndPoint = new Point();\n this.DataSourceInternal.Colors = [];\n this.DataSourceInternal.Type = GradientType.None;\n this.StyleChanged.emit();\n }\n this.ColorSet = false;\n }\n \n this.updateFillStyle();\n }\n\n clearValue(): void {\n this.DataSourceInternal.StartPoint = null;\n this.DataSourceInternal.EndPoint = null;\n this.DataSourceInternal.Colors = null;\n this.DataSourceInternal.Type = null;\n this.ColorSet = false;\n this.StyleChanged.emit();\n this.updateFillStyle();\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { BaseThemeControl } from '../base.theme.control';\n\n@Component({\n selector: 'header-theme-control',\n templateUrl: './header.theme.control.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class HeaderThemeControl extends BaseThemeControl {\n TextValue = '';\n get Text() {\n return this.TextValue\n }\n set Text(value) {\n this.TextValue = value;\n this.cdRef.detectChanges();\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BaseThemeControl } from '../base.theme.control';\n\n@Component({\n selector: 'inputswitch-theme-control',\n templateUrl: './inputswitch.theme.control.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class InputswitchThemeControl extends BaseThemeControl {\n onChange(ev) {\n this.EmitAction(this.DataSourceInternal);\n this.ValueChanged.emit(this.DataSourceInternal);\n }\n @Output() ValueChanged = new EventEmitter();\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { LayoutUnit } from '../../../models/basic/layoutunit.model';\nimport { LayoutUnitThickness } from '../../../models/basic/layoutunitthickness.model';\nimport { UnitType } from '../../../models/enums/unittype.enum';\nimport { BaseThemeControl } from '../base.theme.control';\n\nexport class CarouselMenuTabOptionsChanged {\n Name: string;\n Property: string;\n}\n\n@Component({\n selector: 'layoutunitthickness',\n templateUrl: './layoutunitthickness.component.html',\n styleUrls: ['./layoutunitthickness.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutUnitThicknessComponent extends BaseThemeControl {\n SelectModeValue = 'none';\n get SelectMode() {\n return this.SelectModeValue;\n }\n set SelectMode(value) {\n this.Check(value)\n this.SelectModeValue = value;\n this.cdRef.detectChanges();\n }\n \n //#region Title\n TitleValue;\n @Input()\n get Title() {\n return this.TitleValue;\n }\n set Title(val) {\n this.TitleValue = val;\n this.TitleChange.emit(this.TitleValue);\n this.cdRef.detectChanges();\n }\n @Output() TitleChange = new EventEmitter();\n //#endregion\n //#region IsBorderRadius\n IsBorderRadiusValue = false;\n @Input()\n get IsBorderRadius() {\n return this.IsBorderRadiusValue;\n }\n set IsBorderRadius(val) {\n this.IsBorderRadiusValue = val;\n this.IsBorderRadiusChange.emit(this.IsBorderRadiusValue);\n this.cdRef.detectChanges();\n }\n @Output() IsBorderRadiusChange = new EventEmitter();\n //#endregion\n\n AllValue = new LayoutUnit();\n get All() {\n return this.AllValue;\n }\n set All(value) {\n this.AllValue = value;\n if (this.IsBorderRadius) {\n this.SetValue(this.DataSourceInternal.TopLeft, value)\n this.SetValue(this.DataSourceInternal.TopRight, value)\n this.SetValue(this.DataSourceInternal.BottomRight, value)\n this.SetValue(this.DataSourceInternal.BottomLeft, value)\n } else {\n this.SetValue(this.DataSourceInternal.Top, value)\n this.SetValue(this.DataSourceInternal.Left, value)\n this.SetValue(this.DataSourceInternal.Right, value)\n this.SetValue(this.DataSourceInternal.Bottom, value)\n }\n }\n HorizontalValue = new LayoutUnit();\n get Horizontal() {\n if (this.DataSourceInternal.Left == this.DataSourceInternal.Right) {\n return this.DataSourceInternal.Left;\n } \n return this.HorizontalValue;\n }\n set Horizontal(value) {\n this.HorizontalValue = value;\n this.SetValue(this.DataSourceInternal.Left, value)\n this.SetValue(this.DataSourceInternal.Right, value)\n }\n VerticalValue = new LayoutUnit();\n get Vertical() {\n if (this.DataSourceInternal.Top == this.DataSourceInternal.Bottom) {\n return this.DataSourceInternal.Top;\n }\n return this.VerticalValue;\n }\n set Vertical(value) {\n this.VerticalValue = value;\n this.SetValue(this.DataSourceInternal.Top, value)\n this.SetValue(this.DataSourceInternal.Bottom, value)\n }\n TopRadiusValue = new LayoutUnit();\n get TopRadius() {\n return this.TopRadiusValue;\n }\n set TopRadius(value) {\n this.TopRadiusValue = value;\n this.SetValue(this.DataSourceInternal.TopLeft, value)\n this.SetValue(this.DataSourceInternal.TopRight, value)\n }\n BottomRadiusValue = new LayoutUnit();\n get BottomRadius() {\n return this.BottomRadiusValue;\n }\n set BottomRadius(value) {\n this.BottomRadiusValue = value;\n this.SetValue(this.DataSourceInternal.BottomRight, value)\n this.SetValue(this.DataSourceInternal.BottomLeft, value)\n }\n\n SetValue(item, value) {\n if (item) {\n item.Type = value.Type;\n item.Value = value.Value\n }\n }\n\n constructor(cdRef: ChangeDetectorRef) {\n super(cdRef);\n this.DataSourceChange.subscribe((val) => {\n if (this.IsBorderRadius) {\n if (LayoutUnit.ToStyle(val.TopLeft) != '' || LayoutUnit.ToStyle(val.TopRight) != '' || LayoutUnit.ToStyle(val.BottomRight) != '' || LayoutUnit.ToStyle(val.BottomLeft) != '') {\n this.SelectMode = 'single'\n if ((LayoutUnit.ToStyle(val.TopLeft) != '' || LayoutUnit.ToStyle(val.BottomLeft) != '') &&\n LayoutUnit.ToStyle(val.TopLeft) != LayoutUnit.ToStyle(val.BottomLeft) &&\n LayoutUnit.ToStyle(val.TopLeft) == LayoutUnit.ToStyle(val.TopRight) &&\n LayoutUnit.ToStyle(val.BottomLeft) == LayoutUnit.ToStyle(val.BottomRight)) {\n this.SelectMode = 'width'\n this.TopRadius = val.TopLeft;\n this.BottomRadius = val.BottomLeft;\n }\n if (LayoutUnit.ToStyle(val.TopLeft) != '' &&\n LayoutUnit.ToStyle(val.TopLeft) == LayoutUnit.ToStyle(val.TopRight) &&\n LayoutUnit.ToStyle(val.TopLeft) == LayoutUnit.ToStyle(val.BottomLeft) &&\n LayoutUnit.ToStyle(val.TopLeft) == LayoutUnit.ToStyle(val.BottomRight)) {\n this.SelectMode = 'all'\n this.All = val.TopLeft;\n }\n } else {\n this.SelectMode = 'none'\n }\n } else {\n if (LayoutUnit.ToStyle(val.Top) != '' || LayoutUnit.ToStyle(val.Left) != '' || LayoutUnit.ToStyle(val.Right) != '' || LayoutUnit.ToStyle(val.Bottom) != '') {\n this.SelectMode = 'single'\n if ((LayoutUnit.ToStyle(val.Top) != '' || LayoutUnit.ToStyle(val.Left) != '') &&\n LayoutUnit.ToStyle(val.Top) != LayoutUnit.ToStyle(val.Left) &&\n LayoutUnit.ToStyle(val.Top) == LayoutUnit.ToStyle(val.Bottom) &&\n LayoutUnit.ToStyle(val.Left) == LayoutUnit.ToStyle(val.Right)) {\n this.SelectMode = 'width'\n this.Vertical = val.Top;\n this.Horizontal = val.Left;\n }\n if (LayoutUnit.ToStyle(val.Top) != '' &&\n LayoutUnit.ToStyle(val.Top) == LayoutUnit.ToStyle(val.Left) &&\n LayoutUnit.ToStyle(val.Top) == LayoutUnit.ToStyle(val.Right) &&\n LayoutUnit.ToStyle(val.Top) == LayoutUnit.ToStyle(val.Bottom)) {\n this.SelectMode = 'all'\n this.All = val.Top;\n }\n } else {\n this.SelectMode = 'none'\n }\n }\n })\n }\n Clear() {\n this.SelectMode = 'none';\n this.Reset();\n }\n Reset() {\n this.All = new LayoutUnit();\n this.Vertical = new LayoutUnit();\n this.Horizontal = new LayoutUnit();\n this.TopRadius = new LayoutUnit();\n this.BottomRadius = new LayoutUnit();\n if (this.DataSourceInternal) {\n if (this.IsBorderRadius) {\n if (this.DataSourceInternal.TopLeft) {\n this.DataSourceInternal.TopLeft = new LayoutUnit();\n }\n if (this.DataSourceInternal.TopRight) {\n this.DataSourceInternal.TopRight = new LayoutUnit();\n }\n if (this.DataSourceInternal.BottomRight) {\n this.DataSourceInternal.BottomRight = new LayoutUnit();\n }\n if (this.DataSourceInternal.BottomLeft) {\n this.DataSourceInternal.BottomLeft = new LayoutUnit();\n }\n } else {\n if (this.DataSourceInternal.Top) {\n this.DataSourceInternal.Top = new LayoutUnit();\n }\n if (this.DataSourceInternal.Left) {\n this.DataSourceInternal.Left = new LayoutUnit();\n }\n if (this.DataSourceInternal.Right) {\n this.DataSourceInternal.Right = new LayoutUnit();\n }\n if (this.DataSourceInternal.Bottom) {\n this.DataSourceInternal.Bottom = new LayoutUnit();\n }\n }\n }\n this.onStyleChanged();\n }\n ChangeLock(key) {\n if (this.SelectedItem[key]) {\n let item = this.SelectedItem[key];\n let unit = new LayoutUnit();\n unit.Value = item.Value;\n unit.Type = item.Type;\n\n\n this.SelectedItem[key] = unit;\n }\n this.onStyleChanged();\n }\n\n Check(mode) {\n if (mode == null) {\n switch (this.SelectMode) {\n case 'none': break;\n case 'all':\n this.All = this.All;\n break;\n case 'width':\n if (this.IsBorderRadius) {\n this.TopRadius = this.TopRadius;\n this.BottomRadius = this.BottomRadius;\n } else {\n this.Horizontal = this.Horizontal\n this.Vertical = this.Vertical\n }\n break;\n case 'single':\n break;\n }\n } else if (mode != this.SelectMode) {\n if (mode == 'none') {\n this.Reset();\n } else {\n switch (this.SelectMode) {\n case 'none':\n if (mode == 'all') {\n this.All = new LayoutUnit()\n }\n break;\n case 'all':\n if (mode == 'width') {\n if (this.IsBorderRadius) {\n this.TopRadius = this.DataSourceInternal.TopLeft;\n this.BottomRadius = this.DataSourceInternal.BottomLeft;\n } else {\n this.Horizontal = this.DataSourceInternal.Left\n this.Vertical = this.DataSourceInternal.Top\n }\n }\n break;\n case 'width':\n //if (mode == 'all') {\n // if (this.IsBorderRadius) {\n // this.TopRadius = this.DataSourceInternal.TopLeft;\n // this.BottomRadius = this.DataSourceInternal.BottomLeft;\n // } else {\n // this.Horizontal = this.DataSourceInternal.Left\n // this.Vertical = this.DataSourceInternal.Top\n // }\n //}\n break;\n case 'single':\n if (mode == 'width') {\n if (this.IsBorderRadius) {\n if ((LayoutUnit.ToStyle(this.DataSourceInternal.TopLeft) != '' || LayoutUnit.ToStyle(this.DataSourceInternal.BottomLeft) != '') &&\n LayoutUnit.ToStyle(this.DataSourceInternal.TopLeft) == LayoutUnit.ToStyle(this.DataSourceInternal.TopRight) &&\n LayoutUnit.ToStyle(this.DataSourceInternal.BottomLeft) == LayoutUnit.ToStyle(this.DataSourceInternal.BottomRight)) {\n this.TopRadius = this.DataSourceInternal.TopLeft;\n this.BottomRadius = this.DataSourceInternal.BottomLeft;\n } else {\n this.Reset()\n }\n \n } else {\n if ((LayoutUnit.ToStyle(this.DataSourceInternal.Left) != '' || LayoutUnit.ToStyle(this.DataSourceInternal.Top) != '') &&\n LayoutUnit.ToStyle(this.DataSourceInternal.Left) == LayoutUnit.ToStyle(this.DataSourceInternal.Right) &&\n LayoutUnit.ToStyle(this.DataSourceInternal.Top) == LayoutUnit.ToStyle(this.DataSourceInternal.Bottom)) {\n this.Horizontal = this.DataSourceInternal.Left\n this.Vertical = this.DataSourceInternal.Top\n } else {\n this.Reset()\n }\n }\n \n }\n if (mode == 'all') {\n if (this.IsBorderRadius) {\n if (LayoutUnit.ToStyle(this.DataSourceInternal.TopLeft) != '' &&\n LayoutUnit.ToStyle(this.DataSourceInternal.TopLeft) == LayoutUnit.ToStyle(this.DataSourceInternal.TopRight) &&\n LayoutUnit.ToStyle(this.DataSourceInternal.TopLeft) == LayoutUnit.ToStyle(this.DataSourceInternal.BottomLeft) &&\n LayoutUnit.ToStyle(this.DataSourceInternal.TopLeft) == LayoutUnit.ToStyle(this.DataSourceInternal.BottomRight)) {\n this.All = this.DataSourceInternal.TopLeft;\n } else {\n this.Reset()\n }\n\n } else {\n if (LayoutUnit.ToStyle(this.DataSourceInternal.Left) != '' &&\n LayoutUnit.ToStyle(this.DataSourceInternal.Left) == LayoutUnit.ToStyle(this.DataSourceInternal.Right) &&\n LayoutUnit.ToStyle(this.DataSourceInternal.Left) == LayoutUnit.ToStyle(this.DataSourceInternal.Top) &&\n LayoutUnit.ToStyle(this.DataSourceInternal.Left) == LayoutUnit.ToStyle(this.DataSourceInternal.Bottom)) {\n this.All = this.DataSourceInternal.Top;\n } else {\n this.Reset()\n }\n }\n }\n break;\n }\n }\n \n if (this.SelectMode == 'none') {\n\n }\n if (this.SelectMode == 'all') {\n\n }\n if (this.SelectMode == 'width') {\n\n }\n if (this.SelectMode == 'single') {\n\n }\n }\n //if (this.IsBorderRadius) {\n \n // if ((this.DataSourceInternal.TopLeft && this.DataSourceInternal.TopLeft.this.DataSourceInternalue) || (this.DataSourceInternal.TopRight && this.DataSourceInternal.TopRight.this.DataSourceInternalue) || (this.DataSourceInternal.BottomRight && this.DataSourceInternal.BottomRight.this.DataSourceInternalue) || (this.DataSourceInternal.BottomLeft && this.DataSourceInternal.BottomLeft.this.DataSourceInternalue)) {\n // if (((this.DataSourceInternal.TopLeft && this.DataSourceInternal.TopRight && this.DataSourceInternal.TopLeft.this.DataSourceInternalue == this.DataSourceInternal.TopRight.this.DataSourceInternalue) || (this.DataSourceInternal.TopLeft && this.DataSourceInternal.TopRight)) && ((this.DataSourceInternal.BottomRight && this.DataSourceInternal.BottomLeft && this.DataSourceInternal.BottomRight.this.DataSourceInternalue == this.DataSourceInternal.BottomLeft.this.DataSourceInternalue) || (!this.DataSourceInternal.BottomRight && !this.DataSourceInternal.BottomLeft))) {\n // this.TopRadius = this.DataSourceInternal.TopLeft;\n // this.BottomRadius = this.DataSourceInternal.BottomLeft;\n // }\n // if (this.DataSourceInternal.TopLeft && this.DataSourceInternal.TopRight && this.DataSourceInternal.BottomRight && this.DataSourceInternal.BottomLeft && this.DataSourceInternal.TopLeft.this.DataSourceInternalue == this.DataSourceInternal.TopRight.this.DataSourceInternalue == this.DataSourceInternal.BottomRight.this.DataSourceInternalue == this.DataSourceInternal.BottomLeft.this.DataSourceInternalue) {\n // this.All = this.DataSourceInternal.Top;\n // }\n // }\n //} else {\n // if ((this.DataSourceInternal.Top && this.DataSourceInternal.Top.this.DataSourceInternalue) || (this.DataSourceInternal.Bottom && this.DataSourceInternal.Bottom.this.DataSourceInternalue) || (this.DataSourceInternal.Right && this.DataSourceInternal.Right.this.DataSourceInternalue) || (this.DataSourceInternal.Left && this.DataSourceInternal.Left.this.DataSourceInternalue)) {\n // if (((this.DataSourceInternal.Bottom && this.DataSourceInternal.Top && this.DataSourceInternal.Bottom.this.DataSourceInternalue == this.DataSourceInternal.Top.this.DataSourceInternalue) || (!this.DataSourceInternal.Bottom && !this.DataSourceInternal.Top)) && ((this.DataSourceInternal.Left && this.DataSourceInternal.Right && this.DataSourceInternal.Left.this.DataSourceInternalue == this.DataSourceInternal.Right.this.DataSourceInternalue) || (!this.DataSourceInternal.Left && !this.DataSourceInternal.Right))) {\n // this.Vertical = this.DataSourceInternal.Top;\n // this.Horizontal = this.DataSourceInternal.Left;\n // }\n // if (this.DataSourceInternal.Top && this.DataSourceInternal.Bottom && this.DataSourceInternal.Right && this.DataSourceInternal.left && this.DataSourceInternal.Top.this.DataSourceInternalue == this.DataSourceInternal.Bottom.this.DataSourceInternalue == this.DataSourceInternal.Right.this.DataSourceInternalue == this.DataSourceInternal.Left.this.DataSourceInternalue) {\n // this.All = this.DataSourceInternal.Top;\n // }\n // }\n //}\n }\n\n\n @Output() StyleChanged = new EventEmitter();\n onStyleChanged() {\n this.Check(null)\n this.StyleChanged.emit();\n }\n ToAll() {\n this.SelectMode = 'all';\n }\n ToWidth() {\n this.SelectMode = 'width';\n }\n ToSingle() {\n this.SelectMode = 'single';\n }\n}\n","import { moveItemInArray } from '@angular/cdk/drag-drop';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { LayoutElement } from '../../../models/layoutelement.model';\nimport { LayoutService } from '../../../services/layout.service';\nimport { BaseThemeControl } from '../base.theme.control';\n\n@Component({\n selector: 'listbox-theme-control',\n templateUrl: './listbox.theme.control.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ListBoxThemeControl extends BaseThemeControl {\n ClearButtonPlaceholder = false;\n ClearButtonInputType = false;\n ClearButtonInputMode = false;\n\n //#region SelectedEntry\n SelectedEntryValue;\n @Input()\n get SelectedEntry() {\n return this.SelectedEntryValue;\n }\n set SelectedEntry(val) {\n this.SelectedEntryValue = val;\n this.CheckVisibility();\n this.SelectedEntryChange.emit(this.SelectedEntryValue);\n }\n\n @Output() SelectedEntryChange = new EventEmitter();\n //#endregion\n DisplayMemberPathValue = \"Name\";\n @Input()\n get DisplayMemberPath() {\n return this.DisplayMemberPathValue;\n }\n set DisplayMemberPath(val) {\n this.DisplayMemberPathValue = val;\n this.cdRef.detectChanges();\n }\n //#region Properties\n PropertiesValue;\n RawProperties;\n @Input()\n get Properties() {\n return this.PropertiesValue;\n }\n set Properties(val) {\n if (val) {\n const rawProperties = [];\n val.forEach(v => {\n rawProperties.push({\n ...v\n });\n });\n this.RawProperties = rawProperties;\n } else {\n this.RawProperties = null;\n }\n this.CheckVisibility();\n this.PropertiesChange.emit(this.PropertiesValue);\n }\n\n @Output() PropertiesChange = new EventEmitter();\n //#endregion\n\n //#region UseCountAsCaption\n UseCountAsCaptionValue = false;\n @Input()\n get UseCountAsCaption() {\n return this.UseCountAsCaptionValue;\n }\n set UseCountAsCaption(val) {\n this.UseCountAsCaptionValue = val;\n this.UseCountAsCaptionChange.emit(this.UseCountAsCaptionValue);\n }\n\n @Output() UseCountAsCaptionChange = new EventEmitter();\n //#endregion\n inputTypes = [];\n inputModes = [];\n\n ngAfterViewInit(): void {\n super.ngAfterViewInit();\n this.Subscriptions['SelectedItem'] = LayoutService.SelectedItem.subscribe(() => {\n this.SelectedEntry = null;\n this.cdRef.detectChanges();\n });\n }\n\n AddItem() {\n const item = this.GenerateNewItem();\n this.SelectedEntry = item;\n if (!this.DataSourceInternal) {\n this.DataSourceInternal = [];\n }\n this.DataSourceInternal.push(item);\n this.onStyleChanged();\n LayoutService.OnLayoutElementAdded({\n ElementContent: JSON.stringify(item),\n Index: this.DataSourceInternal.length - 1,\n ParentID: this.SelectedItemValue.ID\n });\n }\n\n GenerateNewItem() {\n return {};\n }\n\n DropEntry(event) {\n if (event.previousIndex !== event.currentIndex) {\n if (this.DataSourceInternal) {\n const item = this.DataSourceInternal[event.previousIndex];\n moveItemInArray(this.DataSourceInternal, event.previousIndex, event.currentIndex);\n this.onStyleChanged();\n LayoutService.OnLayoutElementMoved({\n ElementID: item.ID,\n Index: event.currentIndex,\n OldParentID: this.SelectedItemValue.ID,\n NewParentID: this.SelectedItemValue.ID\n });\n }\n }\n }\n\n // detect style changes on click of remove button\n onRemoveStyleChanges() {\n this.onStyleChanged();\n }\n\n RemoveItem(entry) {\n if (this.SelectedEntry && this.DataSourceInternal) {\n const index = this.DataSourceInternal.indexOf(this.SelectedEntry);\n if (index > -1) {\n if (this.SelectedEntry instanceof LayoutElement) {\n let templatePath = '';\n let Layout = LayoutService.SelectedLayout.getValue();\n if (Layout && Layout.Workflows) {\n const parents = MetaHelper.FindParentPath(Layout, this.SelectedEntry);\n if (parents) {\n parents.forEach(x => {\n if (x.ElementType === 'template') {\n templatePath += x.Name + '.';\n }\n });\n }\n }\n LayoutHelper.OnDeleteElement(this.SelectedEntry, templatePath, Layout, () => {\n const itemID = this.SelectedEntry.ID;\n let itemName = itemID;\n if (this.SelectedEntry.Name) {\n itemName = this.SelectedEntry.Name;\n }\n this.DataSourceInternal.splice(index, 1);\n const length = this.DataSourceInternal.length;\n if (length > 0) {\n if (index < length) {\n this.SelectedEntry = this.DataSourceInternal[index];\n } else {\n this.SelectedEntry = this.DataSourceInternal[length - 1];\n }\n } else {\n this.SelectedEntry = null;\n }\n this.onStyleChanged();\n LayoutService.OnLayoutElementRemoved({\n ElementID: itemID,\n ElementName: itemName,\n ParentID: this.SelectedItem.ID\n });\n }); \n } else {\n const itemID = this.SelectedEntry.ID;\n this.DataSourceInternal.splice(index, 1);\n const length = this.DataSourceInternal.length;\n if (length > 0) {\n if (index < length) {\n this.SelectedEntry = this.DataSourceInternal[index];\n } else {\n this.SelectedEntry = this.DataSourceInternal[length - 1];\n }\n } else {\n this.SelectedEntry = null;\n }\n this.onStyleChanged();\n LayoutService.OnLayoutElementRemoved({\n ElementID: itemID,\n ElementName: itemID,\n ParentID: this.SelectedItem.ID\n });\n }\n }\n }\n }\n\n onButtonStyleChanged(prop) {\n if (this.SelectedItem) {\n if (this.SelectedItem.ValuesChanged) {\n this.SelectedItem.ValuesChanged.next(prop);\n }\n this.StyleChanged.emit();\n this.cdRef.detectChanges();\n }\n }\n CheckVisibility() {\n if (this.SelectedEntry && this.RawProperties) {\n this.PropertiesValue = this.RawProperties.filter(v => !v.CheckVisibility || v.CheckVisibility(this.SelectedItemValue, this.SelectedEntry)); \n } else {\n this.PropertiesValue = [];\n }\n if (this.ViewInit) {\n this.cdRef.detectChanges();\n }\n }\n GetCaption(data, i) {\n if (this.UseCountAsCaptionValue) {\n return i+1;\n } else {\n return data[this.DisplayMemberPath];\n }\n }\n SetDataSource(item) {\n if (this.SelectedEntry && item && item.instance) {\n item.instance.SelectedItem = this.SelectedEntry;\n if (this.SelectedItem[item.ID] == null && item.Type != null) {\n this.SelectedItem[item.ID] = new item.Type();\n }\n if (item.Type == null || typeof (item.Type) == 'string') {\n item.instance.PathBinding = item.ID;\n } else {\n item.instance.DataSourceInternal = this.SelectedEntry[item.ID];\n }\n }\n if (item.InitArgs) {\n item.instance.SetProperties(item.InitArgs);\n }\n if (item.Properties) {\n item.instance.Properties = item.Properties;\n }\n if (!item.instance.ExternalSubscriptions) {\n item.instance.ExternalSubscriptions = {};\n }\n }\n ComponentAttached(event, item) {\n if (event && item) {\n item.instance = event.instance;\n }\n if (this.SelectedEntry && item && item.instance) {\n this.SetDataSource(item);\n if (item.SelectedChangeSub) {\n item.SelectedChangeSub.unsubscribe();\n item.SelectedChangeSub = null;\n }\n item.SelectedChangeSub = this.SelectedEntryChange.subscribe(() => {\n this.SetDataSource(item);\n });\n if (item.instance.StyleChanged) {\n if (item.instance.ExternalSubscriptions[\"StyleChanged\"]) {\n item.instance.ExternalSubscriptions[\"StyleChanged\"].unsubscribe();\n }\n item.instance.ExternalSubscriptions[\"StyleChanged\"] = item.instance.StyleChanged.subscribe((val) => {\n this.CheckVisibility();\n this.onStyleChanged();\n });\n }\n this.cdRef.detectChanges();\n }\n }\n}","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BaseThemeControl } from '../base.theme.control';\n\n@Component({\n selector: 'monaco-theme-control',\n templateUrl: './monaco.theme.control.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MonacoThemeControl extends BaseThemeControl {\n editorOptions = {\n automaticLayout: true,\n language: 'css'\n };\n onChange(ev) {\n this.EmitAction(this.DataSourceInternal);\n this.ValueChanged.emit(this.DataSourceInternal);\n }\n @Output() ValueChanged = new EventEmitter();\n\n editor;\n async init(editor) {\n this.editor = editor;\n\n let that = this;\n this.editor.onDidChangeModelContent(function (e) {\n that.ValueChanged.emit(e);\n });\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { BaseThemeControl } from '../base.theme.control';\n\n@Component({\n selector: 'textarea-theme-control',\n templateUrl: './textarea.theme.control.html',\n styleUrls: ['./textarea.theme.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TextAreaThemeControl extends BaseThemeControl {\n\n}\n","import { AfterViewInit, ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { NotificationHelper } from '../../../helpers/notification.helper';\nimport { BaseThemeControl } from '../base.theme.control';\n\n@Component({\n selector: 'textbox-theme-control',\n templateUrl: './textbox.theme.control.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TextboxThemeControl extends BaseThemeControl implements AfterViewInit {\n ViewInitialized = false;\n ngAfterViewInit(): void {\n this.ViewInitialized = true;\n this.cdRef.detectChanges();\n }\n\n //#region InputType\n InputTypeValue: string;\n @Input()\n get InputType(): string {\n return this.InputTypeValue;\n }\n set InputType(val: string) {\n this.InputTypeValue = val;\n this.InputTypeChange.emit(this.InputTypeValue);\n if (this.ViewInitialized) {\n this.cdRef.detectChanges();\n }\n }\n\n @Output() InputTypeChange = new EventEmitter();\n //#endregion\n\n //#region Minimum\n MinimumValue: string;\n @Input()\n get Minimum(): string {\n return this.MinimumValue;\n }\n set Minimum(val: string) {\n this.MinimumValue = val;\n this.MinimumChange.emit(this.MinimumValue);\n }\n\n @Output() MinimumChange = new EventEmitter();\n //#endregion\n\n //#region Maximum\n MaximumValue: string;\n @Input()\n get Maximum(): string {\n return this.MaximumValue;\n }\n set Maximum(val: string) {\n this.MaximumValue = val;\n this.MaximumChange.emit(this.MaximumValue);\n }\n\n @Output() MaximumChange = new EventEmitter();\n //#endregion\n //#region Mentions\n MentionsValue: string;\n @Input()\n get Mentions(): string {\n return this.MentionsValue;\n }\n set Mentions(val: string) {\n this.MentionsValue = val;\n this.MentionsChange.emit(this.MentionsValue);\n }\n\n @Output() MentionsChange = new EventEmitter();\n //#endregion\n //#region Nachkommastellen\n DecimalPositionValue: string;\n @Input()\n get DecimalPositions(): string {\n return this.DecimalPositionValue;\n }\n set DecimalPositions(val: string) {\n this.DecimalPositionValue = val;\n if (this.DataSourceInternal && this.DecimalPositionValue && Number(this.DecimalPositionValue) > 0) {\n this.DataSourceInternal = Number(this.DataSourceInternal).toFixed(Number(this.DecimalPositionValue));\n }\n this.DecimalPositionsChange.emit(this.DecimalPositionValue);\n }\n\n @Output() DecimalPositionsChange = new EventEmitter();\n //#endregion\n\n //#region Step\n StepValue: string;\n @Input()\n get Step(): string {\n if (this.StepValue !== undefined) {\n return this.StepValue;\n }\n return 'any;';\n }\n set Step(val: string) {\n this.StepValue = val;\n this.StepChange.emit(this.StepValue);\n }\n\n @Output() StepChange = new EventEmitter();\n //#endregion\n\n //#region events\n @Output() Changed = new EventEmitter();\n onChange(ev) {\n if (this.InputType === 'number') {\n\n let setMaxValue = false;\n let setMinValue = false;\n\n let valueNumberTemp = Number(this.DataSourceInternal);\n if (this.DataSourceInternal < this.Minimum) {\n valueNumberTemp = Number(this.Minimum);\n setMinValue = true;\n\n } else if (this.DataSourceInternal > this.Maximum) {\n valueNumberTemp = Number(this.Maximum);\n setMaxValue = true;\n }\n\n if (this.DecimalPositions && Number(this.DecimalPositions) > 0) {\n\n const valueString = valueNumberTemp.toString();\n valueNumberTemp = Number(valueNumberTemp.toFixed(Number(this.DecimalPositions)));\n\n if (!setMaxValue && !setMinValue && valueString !== valueNumberTemp.toString()) {\n NotificationHelper.Info('@@Der Wert wurde auf die maximale Nachkommastellenanzahl von {0} gesetzt.', '@@maximal {0} Nachkommstellen zulaessig', { 0: this.DecimalPositions }, { 0: this.DecimalPositions });\n }\n }\n\n if (setMaxValue) {\n NotificationHelper.Info('@@Der Wert wurde auf das Maximum {0} gesetzt. Die maximale Nachkommastellenanzahl von {1} wurde beachtet.', '@@Maximum ueberschritten', { 0: valueNumberTemp, 1: this.DecimalPositions });\n }\n if (setMinValue) {\n NotificationHelper.Info('@@Der Wert wurde auf das Minimum {0} gesetzt. Die maximale Nachkommastellenanzahl von {1} wurde beachtet.', '@@Minimum unterschritten', { 0: valueNumberTemp, 1: this.DecimalPositions });\n }\n\n if (!isNaN(valueNumberTemp)) {\n this.DataSourceInternal = valueNumberTemp;\n }\n }\n if (this.DataSourceInternal != null) {\n const eventValue = '' + this.DataSourceInternal;\n this.Changed.emit(eventValue);\n }\n } \n\n //#endregion\n\n \n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BaseThemeControl } from '../base.theme.control';\n\n\n@Component({\n selector: 'togglebutton-theme-control',\n templateUrl: './togglebutton.theme.control.html',\n styleUrls: ['./togglebutton.theme.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TogglebuttonThemeControl extends BaseThemeControl {\n //#region Caption\n CaptionValue: string;\n @Input()\n get Caption(): string {\n return this.CaptionValue;\n }\n set Caption(val: string) {\n this.CaptionValue = val;\n this.CaptionChange.emit(this.CaptionValue);\n }\n\n @Output() CaptionChange = new EventEmitter();\n //#endregion\n //#region CaptionPosition\n CaptionPositionValue: string;\n @Input()\n get CaptionPosition(): string {\n return this.CaptionPositionValue;\n }\n set CaptionPosition(val: string) {\n this.CaptionPositionValue = val;\n this.CaptionPositionChange.emit(this.CaptionPositionValue);\n }\n\n @Output() CaptionPositionChange = new EventEmitter();\n //#endregion\n //#region Icon\n IconValue\n @Input()\n get Icon() {\n return this.IconValue;\n }\n set Icon(val) {\n this.IconValue = val;\n this.IconChange.emit(this.IconValue);\n this.cdRef.detectChanges();\n }\n\n @Output() IconChange = new EventEmitter();\n //#endregion\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { BaseThemeControl } from '../base.theme.control';\n\n\n@Component({\n selector: 'togglebuttongroup-theme-control',\n templateUrl: './togglebuttongroup.theme.control.html',\n styleUrls: ['./togglebuttongroup.theme.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TogglebuttongroupThemeControl extends BaseThemeControl {\n \n\n value: any;\n \n\n //#region Buttons\n ButtonsValue;\n get Buttons() {\n return this.ButtonsValue;\n }\n set Buttons(val) {\n this.ButtonsValue = val;\n this.cdRef.detectChanges();\n }\n //#endregion \n\n clearValue(): void {\n this.DataSourceInternal = null;\n }\n\n onValChanged(val) {\n this.DataSourceInternal = val;\n }\n\n \n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { TranslationTextBoxDialog } from '../../../components/controls/translationtextbox/translation.textbox.dialog';\nimport { TranslationDialog } from '../../../components/dialogs/translationdialog/translation.dialog';\nimport { RTLHelper } from '../../../helpers/rtl.helper';\nimport { TranslatedString } from '../../../models/translatedstring.model';\nimport { LayoutService } from '../../../services/layout.service';\nimport { StandardRequestBase } from '../../../services/request-base';\nimport { BaseThemeControl } from '../base.theme.control';\n\n@Component({\n selector: 'translationtextbox-theme-control',\n templateUrl: './translation.textbox.theme.control.html',\n styleUrls: ['./translation.textbox.theme.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TranslationTextBoxThemeControl extends BaseThemeControl {\n AllLanguages = [];\n //#region DataType\n DataTypeValue = 'translatedtext';;\n @Input()\n get DataType() {\n return this.DataTypeValue;\n }\n set DataType(val) {\n this.DataTypeValue = val;\n this.DataTypeChange.emit(this.DataTypeValue);\n }\n\n @Output() DataTypeChange = new EventEmitter();\n //#endregion\n\n get DefaultValue() {\n if (this.DataType == 'translatedtext') {\n if (this.DataSourceInternal) {\n return this.DataSourceInternal.DefaultValue;\n }\n }\n if (this.DataType == 'string') {\n return this.DataSourceInternal\n }\n return null;\n }\n set DefaultValue(text) {\n if (this.DataType == 'translatedtext') {\n if (this.DataSourceInternal) {\n this.DataSourceInternal.DefaultValue = text;\n } else {\n this.DataSourceInternal = {\n DefaultValue: text,\n SerializedTranslations: []\n };\n }\n }\n if (this.DataType == 'string') {\n this.DataSourceInternal = text;\n }\n }\n\n IsRtl = false;\n constructor(private dialog: MatDialog, cdRef: ChangeDetectorRef, private requestService: StandardRequestBase) {\n super(cdRef);\n requestService.executeGet('config/api/config', 'GetSelectedLanguages').subscribe(languages => {\n let list = [];\n if (languages) {\n list.push(...languages);\n }\n list.unshift({ LCID: \"default\", Caption:\"Default\" })\n this.AllLanguages = list;\n this.FillLanguages();\n this.cdRef.detectChanges();\n });\n\n this.Subscriptions['DataSourceInternalChange'] = this.DataSourceInternalChange.subscribe(x => {\n this.FillLanguages();\n });\n\n this.IsRtl = RTLHelper.Direction === 'rtl';\n this.Subscriptions['RTL'] = RTLHelper.DirectionChanged.subscribe((dir) => {\n this.IsRtl = dir === 'rtl';\n });\n }\n FillLanguages() {\n if (this.AllLanguages && this.AllLanguages.length > 0) {\n if (this.DataSourceInternal == null) {\n this.AllLanguages.forEach((lang) => lang.Value = null);\n } else {\n this.AllLanguages[0].Value = this.DataSourceInternal.DefaultValue;\n if (this.DataSourceInternal.SerializedTranslations) {\n this.AllLanguages.forEach((trans) => {\n if (trans.LCID != 'default') {\n let found = this.DataSourceInternal.SerializedTranslations.find((value) => value.LCID == trans.LCID);\n if (found) {\n trans.Value = found.Value;\n } else {\n trans.Value = null;\n }\n }\n trans.Valid = true;\n });\n }\n }\n }\n }\n\n langChanged(lang) {\n if (lang.LCID == 'default') {\n if (this.DataSourceInternal) {\n this.DataSourceInternal.DefaultValue = lang.Value;\n } else {\n this.DataSourceInternal = {\n DefaultValue: lang.Value,\n SerializedTranslations: []\n };\n }\n } else {\n if (this.DataSourceInternal) {\n let trans = this.DataSourceInternal.SerializedTranslations.find((val) => val.LCID == lang.LCID);\n if (lang.Value == \"\") {\n if (trans) {\n this.DataSourceInternal.SerializedTranslations.splice(this.DataSourceInternal.SerializedTranslations.indexOf(trans), 1);\n }\n } else {\n if (trans) {\n trans.Value = lang.Value;\n } else {\n this.DataSourceInternal.SerializedTranslations.push({ LCID: lang.LCID, Value: lang.Value });\n }\n }\n } else {\n this.DataSourceInternal = {\n DefaultValue: lang.Value,\n SerializedTranslations: [{ LCID: lang.LCID, Value: lang.Value }]\n };\n }\n }\n \n }\n\n openDialog() {\n if (this.DataType == 'translatedtext') {\n if (this.DataSourceInternal) {\n this.dialog.open(TranslationTextBoxDialog, { data: { Data: this.DataSourceInternal } });\n } else {\n const ts = new TranslatedString();\n const dialogRef = this.dialog.open(TranslationTextBoxDialog, { data: { Data: ts } });\n dialogRef.afterClosed().subscribe(() => {\n this.DataSourceInternal = ts;\n });\n }\n }\n if (this.DataType == 'string') {\n TranslationDialog.ShowDialog(this.DataSourceInternal);\n }\n }\n getLanguageName(lcid: number): string {\n var retVal = '';\n let lang = this.AllLanguages.find((lang) => lang.LCID == lcid);\n if(lang) {\n retVal = lang.Caption;\n }\n return retVal;\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { UnitType } from '../../../models/enums/unittype.enum';\nimport { BaseThemeControl } from '../base.theme.control';\n\n@Component({\n selector: 'unitselection',\n templateUrl: './unitselection.theme.control.html',\n styleUrls: ['./unitselection.theme.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class UnitSelectionControl extends BaseThemeControl {\n\n ClearButtonIsVisibile = false;\n\n \n //#region RemoveTypes\n RemoveTypesValue = [UnitType.fr, UnitType.Rest];\n\n @Input()\n get RemoveTypes() {\n return this.RemoveTypesValue;\n }\n set RemoveTypes(val) {\n this.RemoveTypesValue = val;\n this.RemoveTypesChange.emit(this.RemoveTypesValue);\n }\n\n @Output() RemoveTypesChange = new EventEmitter();\n //#endregion\n //#region UseLock\n UseLockValue = false;\n @Input()\n get UseLock() {\n return this.UseLockValue;\n }\n set UseLock(val) {\n this.UseLockValue = val;\n this.UseLockChange.emit(this.UseLockValue);\n this.cdRef.detectChanges();\n }\n @Output() UseLockChange = new EventEmitter();\n //#endregion\n //#region Icon\n IconValue: string;\n @Input()\n get Icon(): string {\n return this.IconValue;\n }\n set Icon(val: string) {\n this.IconValue = val;\n this.IconChange.emit(this.IconValue);\n }\n\n @Output() IconChange = new EventEmitter();\n //#endregion\n //#region Min\n MinValue: string;\n @Input()\n get Min(): string {\n return this.MinValue;\n }\n set Min(val: string) {\n this.MinValue = val;\n this.MinChange.emit(this.MinValue);\n }\n\n @Output() MinChange = new EventEmitter();\n //#endregion\n //#region Max\n MaxValue: string;\n @Input()\n get Max(): string {\n return this.MaxValue;\n }\n set Max(val: string) {\n this.MaxValue = val;\n this.MaxChange.emit(this.MaxValue);\n }\n\n @Output() MaxChange = new EventEmitter();\n //#endregion\n //#region Rotate\n RotateValue: string='0';\n @Input()\n get Rotate(): string {\n return this.RotateValue;\n }\n set Rotate(val: string) {\n this.RotateValue = val;\n this.RotateChange.emit(this.RotateValue);\n }\n\n @Output() RotateChange = new EventEmitter();\n //#endregion\n\n constructor(cdRef: ChangeDetectorRef) {\n super(cdRef);\n }\n\n \n\n selectionChanged() {\n this.onStyleChanged();\n }\n\n \n clearFilter() {\n this.DataSourceInternal.Value = null;\n this.DataSourceInternal.Type = UnitType.Pixel;\n\n this.cdRef.detectChanges();\n this.onStyleChanged();\n }\n\n}\n","import { Component, EventEmitter, Input, Output, AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { UnitType } from '../../../models/enums/unittype.enum';\n\n@Component({\n selector: 'unittypeselection',\n templateUrl: './unittypeselection.theme.control.html',\n styleUrls: ['./unitselection.theme.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class UnitTypeSelectionControl implements AfterViewInit {\n\n UnitTypes = [];\n FullUnitTypes = [];\n //#region SelectedType\n SelectedTypeValue;\n\n @Input()\n get SelectedType() {\n return this.SelectedTypeValue;\n }\n set SelectedType(val) {\n this.SelectedTypeValue = val;\n this.SelectedTypeChange.emit(this.SelectedTypeValue);\n }\n\n @Output() SelectedTypeChange = new EventEmitter();\n //#endregion\n //#region RemoveTypes\n RemoveTypesValue = [UnitType.fr];\n\n @Input()\n get RemoveTypes() {\n return this.RemoveTypesValue;\n }\n set RemoveTypes(val) {\n this.RemoveTypesValue = val;\n this.onRemoveTypesChanged();\n this.RemoveTypesChange.emit(this.RemoveTypesValue);\n }\n\n @Output() RemoveTypesChange = new EventEmitter();\n //#endregion\n //#region Disabled\n DisabledValue;\n\n @Input()\n get Disabled() {\n return this.DisabledValue;\n }\n set Disabled(val) {\n this.DisabledValue = val;\n this.DisabledChange.emit(this.DisabledValue);\n }\n\n @Output() DisabledChange = new EventEmitter();\n //#endregion\n @Output() selectionChange = new EventEmitter();\n initialized = false;\n\n constructor(private cdRef: ChangeDetectorRef) {\n this.FullUnitTypes = EnumHelper.GetDropdownValues(UnitType);\n }\n\n ngAfterViewInit(): void {\n this.initialized = true;\n this.onRemoveTypesChanged();\n }\n\n onRemoveTypesChanged() {\n if (this.initialized) {\n if (this.RemoveTypes && this.RemoveTypes.length > 0) {\n this.UnitTypes = this.FullUnitTypes.filter(fu => !this.RemoveTypes.some(rt => rt == fu.type));\n } else {\n this.UnitTypes = [...this.FullUnitTypes];\n }\n this.cdRef.detectChanges();\n }\n }\n\n getShortCap(item) {\n switch (item) {\n case UnitType.Pixel: return 'px';\n case UnitType.Percent: return '%';\n case UnitType.Auto: return 'a';\n case UnitType.Rest: return 're';\n case UnitType.em: return 'em';\n case UnitType.fr: return 'fr';\n case UnitType.vw: return 'vw';\n case UnitType.vh: return 'vh';\n case UnitType.calc: return 'calc';\n default: return item;\n }\n }\n\n select(item) {\n this.SelectedType = item.type;\n this.selectionChange.emit();\n }\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild\n} from '@angular/core';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { ViewType } from '../../../models/enums/viewtype.enum';\nimport { ILayoutEditClient, LayoutEditService } from '../../../models/layout/layout.edit.client';\nimport { MultiLayoutElement } from '../../../models/layoutelement.model';\nimport { FilteredControlService, MENUTABREGISTRY } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MenuTabControl } from '../../common/menutabcontrol/menu.tab.control';\n\n@Component({\n selector: 'overlay',\n templateUrl: './overlay.layout.html',\n styleUrls: ['./overlay.layout.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OverlayLayout implements OnInit, OnDestroy {\n\n //#region ShowMenu\n ShowMenuValue = false;\n @Input()\n get ShowMenu() {\n return this.ShowMenuValue;\n }\n set ShowMenu(val) {\n this.ShowMenuValue = val;\n this.ShowMenuChange.emit(val);\n }\n @Output() ShowMenuChange = new EventEmitter();\n //#endregion\n menuItems = [];\n Subscriptions = {};\n EditSubscriptions = {};\n ShowCancel = false;\n LayoutEditClient: ILayoutEditClient;\n\n get TriggerEvents() {\n return LayoutService.TriggerEventsInEditMode.getValue();\n }\n set TriggerEvents(val: boolean) {\n LayoutService.TriggerEventsInEditMode.next(val);\n }\n\n @ViewChild('menuTabControl') menuTabControl: MenuTabControl;\n\n constructor(private cdRef: ChangeDetectorRef, private filteredControlService: FilteredControlService) {\n } \n\n ngOnInit(): void {\n this.Subscriptions['ViewType'] = LayoutService.ViewType.subscribe((vt) => {\n if (vt == ViewType.Edit) {\n const tabs = [];\n MENUTABREGISTRY.forEach(x => {\n const item = Object.assign({}, x);\n item.Visible = true;\n if (typeof x.CheckVisible === 'function') {\n item.Visible = x.CheckVisible();\n }\n if (typeof x.CheckVisibleAsnyc === 'function') {\n x.CheckVisibleAsync().then((val) => item.Visible = val);\n }\n tabs.push(item);\n });\n this.menuItems = tabs;\n this.cdRef.detectChanges();\n this.EditSubscriptions['SelectedItem'] = LayoutService.SelectedItem.subscribe((item) => {\n if (this.menuTabControl) {\n this.menuTabControl.checkTabVisibility();\n }\n if (item) {\n item.Selected = true;\n } \n });\n this.EditSubscriptions['SelectedItems'] = LayoutService.SelectedItems.subscribe((result) => {\n if (this.menuTabControl) {\n this.menuTabControl.checkTabVisibility();\n }\n });\n this.EditSubscriptions['LayoutEditMode'] = LayoutService.LayoutEditMode.subscribe(x => {\n this.ShowCancel = x;\n });\n this.EditSubscriptions['KeyPress'] = LayoutService.KeyPress.subscribe((event) => {\n if (event.code === 'Delete') {\n this.Delete();\n }\n if (event.key === 's' && event.ctrlKey) {\n this.Save();\n }\n });\n } else {\n Object.keys(this.EditSubscriptions).forEach((key) => {\n this.EditSubscriptions[key].unsubscribe();\n })\n }\n });\n this.Subscriptions['LayoutEditClient'] = LayoutEditService.ActualLayoutEditClient.subscribe(x => {\n this.LayoutEditClient = x;\n this.cdRef.detectChanges();\n });\n this.Subscriptions['LayoutEditClientChange'] = LayoutEditService.LayoutEditClientChange.subscribe(() => {\n this.cdRef.detectChanges();\n });\n }\n\n ngOnDestroy(): void {\n const keys = Object.keys(this.Subscriptions);\n keys.forEach((key) => {\n this.Subscriptions[key].unsubscribe();\n });\n }\n\n Delete() {\n const elem = LayoutService.SelectedItem.getValue();\n if (elem) {\n if (elem instanceof MultiLayoutElement) {\n return;\n }\n let templatePath = '';\n const layout = LayoutService.SelectedLayout.getValue();\n if (layout && layout.Workflows) {\n const parents = MetaHelper.FindParentPath(layout, elem);\n if (parents) {\n parents.forEach(x => {\n if (x.ElementType === 'template') {\n templatePath += x.Name + '.';\n }\n });\n }\n }\n LayoutHelper.OnDeleteElement(elem, templatePath, layout, null);\n }\n }\n\n RefreshTree() {\n LayoutService.RefreshTree.next(true);\n }\n\n Save() {\n if (this.LayoutEditClient) {\n this.LayoutEditClient.onSave();\n this.RefreshTree();\n }\n }\n\n CancelEdit() {\n this.filteredControlService.setfilterdControls('');\n LayoutEditService.CloseActual();\n }\n}\n","import { moveItemInArray } from '@angular/cdk/drag-drop';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport {\n AnnotationChartSettings, AxisSettings, BubbleChartSettings, CalendarChartSettings, ChartSettings, ColorAxisValue,\n ColorRangeValue, ContinuousAxisSettings, GeoChartSettings, HeatMapChartSettings, LegendSettings, SeriesSettings\n} from '../../../models/controls/chart.model';\nimport { ChartGeoResolution, ChartStackType } from '../../../models/enums/chartcurvetype.enum';\nimport { ChartLegendPosition } from '../../../models/enums/chartlegendposition.enum';\nimport { ChartType } from '../../../models/enums/charttype.enum';\nimport { SeriesType } from '../../../models/enums/seriestype.enum';\nimport { Color } from '../../../models/style/color.model';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MetaService } from '../../../services/meta.service';\nimport { NavigationService } from '../../../services/navigation.service';\nimport { APropertyTab } from '../properties/properties.menu.tab';\n\n@Component({\n selector: 'charts-menu-tab',\n templateUrl: './charts.menu.tab.html',\n styleUrls: ['./charts.menu.tab.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ChartsMenuTab extends APropertyTab {\n get ShowLegend(): boolean {\n if (this.ChartSettingsValue && this.ChartSettingsValue.Legend) {\n return this.ChartSettingsValue.Legend.Position !== ChartLegendPosition.none;\n }\n return true;\n }\n set ShowLegend(val: boolean) {\n if (this.ChartSettingsValue) {\n if (val) {\n if (this.ChartSettingsValue.Legend && this.ChartSettingsValue.Legend.Position === ChartLegendPosition.none) {\n this.ChartSettingsValue.Legend.Position = ChartLegendPosition.right;\n }\n } else {\n if (!this.ChartSettingsValue.Legend) {\n this.ChartSettingsValue.Legend = new LegendSettings();\n }\n this.ChartSettingsValue.Legend.Position = ChartLegendPosition.none;\n }\n }\n }\n\n ChartSettingsValue: ChartSettings = ChartSettings.GetDefault();\n Layout;\n DefaultAxisColumns = [];\n NumericColumns = [];\n TextColumns = [];\n DateColumns = [];\n ListColumns = [];\n charttypes;\n resolutions;\n Initialized = false;\n AxisIsDateColumn = false;\n ChartPalettes = [];\n\n DefaultChartStackType;\n\n private static CheckPropList(col: SeriesSettings, list: { Prop: string, List: any[] }[]) {\n if (col && list) {\n list.forEach(x => {\n const colName = col[x.Prop];\n if (colName && !x.List.some(y => y.Name === colName)) {\n col[x.Prop] = null;\n }\n });\n }\n }\n\n constructor(cdRef: ChangeDetectorRef, private service: MetaService) {\n super(cdRef);\n this.charttypes = EnumHelper.GetDropdownValues(ChartType);\n this.resolutions = EnumHelper.GetDropdownValues(ChartGeoResolution);\n this.DefaultChartStackType = EnumHelper.GetDropdownValues(ChartStackType);\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n const page = NavigationService.SelectedPage.getValue();\n if (page === 'content' || page === 'widget' || page === 'template' || page === 'output' || page === 'layout') {\n this.Subscriptions.push(LayoutService.SelectedLayout.subscribe((layout) => {\n this.Layout = layout;\n this.checkLayout();\n }));\n }\n this.service.ReadPaletteInfos().subscribe(x => {\n if (x) {\n this.ChartPalettes = x;\n }\n });\n }\n\n checkLayout() {\n this.DefaultAxisColumns = [];\n this.NumericColumns = [];\n this.TextColumns = [];\n this.DateColumns = [];\n if (this.Layout) {\n MetaHelper.FindTableProperties(this.Layout, this.SelectedItem).then((result) => {\n this.Initialized = true;\n if (result && result.Fields) {\n const defCols = [];\n const numCols = [];\n const textCols = [];\n const dateCols = [];\n const listCols = [];\n result.Fields.forEach((column) => {\n if (column.DataTyp === 'System.Double' || column.DataTyp === 'System.Int32' || column.DataTyp === 'System.Int64') {\n numCols.push(column);\n defCols.push(column);\n } else if (column.DataTyp === 'System.String') {\n textCols.push(column);\n defCols.push(column);\n } else if (column.DataTyp === 'System.DateTime') {\n dateCols.push(column);\n defCols.push(column);\n }\n if (column.IsList) {\n listCols.push(column);\n }\n });\n this.DefaultAxisColumns = defCols;\n this.NumericColumns = numCols;\n this.TextColumns = textCols;\n this.DateColumns = dateCols;\n this.ListColumns = listCols;\n this.updateChartType();\n }\n });\n } else {\n this.updateChartType();\n }\n }\n\n onItemSet() {\n if (this.SelectedItem) {\n if (this.SelectedItem.ChartSettings) {\n this.SelectedItem.ChartSettings = plainToClass(ChartSettings, this.SelectedItem.ChartSettings);\n } else {\n this.SelectedItem.ChartSettings = ChartSettings.GetDefault();\n }\n this.ChartSettingsValue = this.SelectedItem.ChartSettings;\n } else {\n this.ChartSettingsValue = ChartSettings.GetDefault();\n }\n this.updateChartType();\n }\n\n updateChartType() {\n if (this.Initialized) {\n const axisColumn = this.ChartSettingsValue['AxisColumn'];\n switch (this.ChartSettingsValue.ChartType) {\n case ChartType.AnnotationChart:\n if (!this.ChartSettingsValue.AnnotationSettings) {\n this.ChartSettingsValue.AnnotationSettings = new AnnotationChartSettings();\n }\n if (axisColumn) {\n ChartsMenuTab.CheckPropList(axisColumn, [{ Prop: 'ColumnName', List: this.DateColumns }]);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n if (this.ChartSettingsValue.Series) {\n this.ChartSettingsValue.Series.forEach(col => {\n ChartsMenuTab.CheckPropList(col, [\n { Prop: 'ColumnName', List: this.NumericColumns },\n { Prop: 'AnnotationTitleColumn', List: this.TextColumns },\n { Prop: 'AnnotationTextColumn', List: this.TextColumns },\n ]);\n });\n }\n break;\n case ChartType.AreaChart:\n case ChartType.Bar:\n case ChartType.BarChart:\n case ChartType.ColumnChart:\n case ChartType.Line:\n case ChartType.LineChart:\n case ChartType.ScatterChart:\n if (axisColumn) {\n ChartsMenuTab.CheckPropList(axisColumn, [{ Prop: 'ColumnName', List: this.DefaultAxisColumns }]);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n this.checkAxisDateColumn();\n if (this.ChartSettingsValue.Series) {\n this.ChartSettingsValue.Series.forEach(col => {\n ChartsMenuTab.CheckPropList(col, [{ Prop: 'ColumnName', List: this.NumericColumns }]);\n });\n }\n break;\n case ChartType.Histogram:\n if (axisColumn) {\n ChartsMenuTab.CheckPropList(axisColumn, [{ Prop: 'ColumnName', List: this.TextColumns }]);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n if (this.ChartSettingsValue.Series) {\n this.ChartSettingsValue.Series.forEach(col => {\n ChartsMenuTab.CheckPropList(col, [{ Prop: 'ColumnName', List: this.NumericColumns }]);\n });\n }\n break;\n case ChartType.polarArea:\n case ChartType.radar:\n if (axisColumn) {\n ChartsMenuTab.CheckPropList(axisColumn, [{ Prop: 'ColumnName', List: this.DefaultAxisColumns }]);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n if (this.ChartSettingsValue.Series) {\n this.ChartSettingsValue.Series.forEach(col => {\n ChartsMenuTab.CheckPropList(col, [{ Prop: 'ColumnName', List: this.NumericColumns }]);\n });\n }\n break;\n case ChartType.heatmap:\n if (!this.ChartSettingsValue.HeatMapSettings) {\n this.ChartSettingsValue.HeatMapSettings = new HeatMapChartSettings();\n }\n if (axisColumn) {\n ChartsMenuTab.CheckPropList(axisColumn, [{ Prop: 'ColumnName', List: this.DefaultAxisColumns }]);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n if (this.ChartSettingsValue.Series) {\n this.ChartSettingsValue.Series.forEach(col => {\n ChartsMenuTab.CheckPropList(col, [{ Prop: 'ColumnName', List: this.NumericColumns }]);\n });\n }\n break;\n break;\n case ChartType.ComboChart:\n if (axisColumn) {\n ChartsMenuTab.CheckPropList(axisColumn, [{ Prop: 'ColumnName', List: this.DefaultAxisColumns }]);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n this.checkAxisDateColumn();\n if (this.ChartSettingsValue.Series) {\n this.ChartSettingsValue.Series.forEach(col => {\n if (col.Type === SeriesType.candlesticks) {\n ChartsMenuTab.CheckPropList(col, [\n { Prop: 'Minimum', List: this.NumericColumns },\n { Prop: 'Initial', List: this.NumericColumns },\n { Prop: 'Final', List: this.NumericColumns },\n { Prop: 'Maximum', List: this.NumericColumns }\n ]);\n } else {\n ChartsMenuTab.CheckPropList(col, [{ Prop: 'ColumnName', List: this.NumericColumns }]);\n }\n });\n }\n break;\n case ChartType.BubbleChart:\n if (!this.ChartSettingsValue.BubbleSettings) {\n this.ChartSettingsValue.BubbleSettings = new BubbleChartSettings();\n }\n if (axisColumn) {\n ChartsMenuTab.CheckPropList(axisColumn, []);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n if (this.ChartSettingsValue.Series && this.ChartSettingsValue.Series.length > 0) {\n ChartsMenuTab.CheckPropList(this.ChartSettingsValue.Series[0], [\n { Prop: 'IDColumn', List: this.TextColumns },\n { Prop: 'XValue', List: this.NumericColumns },\n { Prop: 'YValue', List: this.NumericColumns },\n { Prop: 'Radius', List: this.NumericColumns },\n { Prop: 'Grouping', List: this.NumericColumns.concat(this.TextColumns) }\n ]);\n } else {\n this.ChartSettingsValue.Series = [new SeriesSettings()];\n }\n break;\n case ChartType.PieChart:\n case ChartType.DonutChart:\n case ChartType.Gauge:\n case ChartType.radialBar:\n if (axisColumn) {\n ChartsMenuTab.CheckPropList(axisColumn, [{ Prop: 'ColumnName', List: this.TextColumns }]);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n if (this.ChartSettingsValue.Series && this.ChartSettingsValue.Series.length > 0) {\n ChartsMenuTab.CheckPropList(this.ChartSettingsValue.Series[0],\n [{ Prop: 'ColumnName', List: this.NumericColumns }]);\n } else {\n this.ChartSettingsValue.Series = [new SeriesSettings()];\n }\n break;\n case ChartType.GeoChart:\n if (!this.ChartSettingsValue.GeoSettings) {\n this.ChartSettingsValue.GeoSettings = new GeoChartSettings();\n }\n if (axisColumn) {\n ChartsMenuTab.CheckPropList(axisColumn, [{ Prop: 'ColumnName', List: this.TextColumns }]);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n if (this.ChartSettingsValue.Series && this.ChartSettingsValue.Series.length > 0) {\n ChartsMenuTab.CheckPropList(this.ChartSettingsValue.Series[0],\n [{ Prop: 'ColumnName', List: this.NumericColumns }]);\n } else {\n this.ChartSettingsValue.Series = [new SeriesSettings()];\n }\n break;\n case ChartType.Map:\n if (axisColumn) {\n ChartsMenuTab.CheckPropList(axisColumn, [{ Prop: 'ColumnName', List: this.TextColumns }]);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n if (this.ChartSettingsValue.Series && this.ChartSettingsValue.Series.length > 0) {\n ChartsMenuTab.CheckPropList(this.ChartSettingsValue.Series[0],\n [{ Prop: 'ColumnName', List: this.DefaultAxisColumns }]);\n } else {\n this.ChartSettingsValue.Series = [new SeriesSettings()];\n }\n break;\n case ChartType.SteppedAreaChart:\n if (axisColumn) {\n ChartsMenuTab.CheckPropList(axisColumn, [{ Prop: 'ColumnName', List: this.TextColumns }]);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n if (this.ChartSettingsValue.Series) {\n this.ChartSettingsValue.Series.forEach(col => {\n ChartsMenuTab.CheckPropList(col, [{ Prop: 'ColumnName', List: this.NumericColumns }]);\n });\n }\n break;\n case ChartType.WordTree:\n if (this.ChartSettingsValue.Series && this.ChartSettingsValue.Series.length > 0) {\n ChartsMenuTab.CheckPropList(this.ChartSettingsValue.Series[0], [\n { Prop: 'IDColumn', List: this.DefaultAxisColumns },\n { Prop: 'LabelColumn', List: this.TextColumns },\n { Prop: 'ParentID', List: this.DefaultAxisColumns },\n { Prop: 'ColumnName', List: this.NumericColumns }\n ]);\n } else {\n this.ChartSettingsValue.Series = [new SeriesSettings()];\n }\n break;\n case ChartType.OrgChart:\n if (this.ChartSettingsValue.Series && this.ChartSettingsValue.Series.length > 0) {\n ChartsMenuTab.CheckPropList(this.ChartSettingsValue.Series[0], [\n { Prop: 'IDColumn', List: this.DefaultAxisColumns },\n { Prop: 'ParentID', List: this.DefaultAxisColumns },\n { Prop: 'Description', List: this.DefaultAxisColumns }\n ]);\n } else {\n this.ChartSettingsValue.Series = [new SeriesSettings()];\n }\n break;\n case ChartType.TreeMap:\n if (this.ChartSettingsValue.Series && this.ChartSettingsValue.Series.length > 0) {\n ChartsMenuTab.CheckPropList(this.ChartSettingsValue.Series[0], [\n { Prop: 'IDColumn', List: this.DefaultAxisColumns },\n { Prop: 'ParentID', List: this.DefaultAxisColumns },\n { Prop: 'ColumnName', List: this.NumericColumns },\n { Prop: 'ColorValue', List: this.NumericColumns }\n ]);\n } else {\n this.ChartSettingsValue.Series = [new SeriesSettings()];\n }\n break;\n case ChartType.Calendar:\n if (!this.ChartSettingsValue.CalendarSettings) {\n this.ChartSettingsValue.CalendarSettings = new CalendarChartSettings();\n }\n if (axisColumn) {\n ChartsMenuTab.CheckPropList(axisColumn, [{ Prop: 'ColumnName', List: this.DateColumns }]);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n if (this.ChartSettingsValue.Series && this.ChartSettingsValue.Series.length > 0) {\n ChartsMenuTab.CheckPropList(this.ChartSettingsValue.Series[0], [\n { Prop: 'ColumnName', List: this.NumericColumns }\n ]);\n } else {\n this.ChartSettingsValue.Series = [new SeriesSettings()];\n }\n\n if (this.ChartSettingsValue.Series) {\n this.ChartSettingsValue.Series.forEach(col => {\n ChartsMenuTab.CheckPropList(col, [{ Prop: 'ColumnName', List: this.NumericColumns }]);\n });\n }\n break;\n case ChartType.Gantt:\n if (this.ChartSettingsValue.Series && this.ChartSettingsValue.Series.length > 0) {\n ChartsMenuTab.CheckPropList(this.ChartSettingsValue.Series[0], [\n { Prop: 'TaskID', List: this.TextColumns },\n { Prop: 'TaskName', List: this.TextColumns },\n { Prop: 'Grouping', List: this.TextColumns },\n { Prop: 'StartValue', List: this.DateColumns },\n { Prop: 'EndValue', List: this.DateColumns },\n { Prop: 'Duration', List: this.NumericColumns },\n { Prop: 'Completed', List: this.NumericColumns },\n { Prop: 'Dependency', List: this.TextColumns }\n ]);\n } else {\n this.ChartSettingsValue.Series = [new SeriesSettings()];\n }\n break;\n case ChartType.Timeline:\n if (this.ChartSettingsValue.Series && this.ChartSettingsValue.Series.length > 0) {\n const concatList = this.DateColumns.concat(this.NumericColumns);\n ChartsMenuTab.CheckPropList(this.ChartSettingsValue.Series[0], [\n { Prop: 'ColumnName', List: this.TextColumns },\n { Prop: 'StartValue', List: concatList },\n { Prop: 'EndValue', List: concatList },\n { Prop: 'LabelColumn', List: this.TextColumns }\n ]);\n } else {\n this.ChartSettingsValue.Series = [new SeriesSettings()];\n }\n break;\n case ChartType.CandlestickChart:\n if (axisColumn) {\n const colName = axisColumn.ColumnName;\n if (colName && !this.DefaultAxisColumns.some(x => x.Name === colName)) {\n axisColumn.ColumnName = null;\n }\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n this.checkAxisDateColumn();\n if (this.ChartSettingsValue.Series) {\n this.ChartSettingsValue.Series.forEach(col => {\n ChartsMenuTab.CheckPropList(col, [\n { Prop: 'Minimum', List: this.NumericColumns },\n { Prop: 'Initial', List: this.NumericColumns },\n { Prop: 'Final', List: this.NumericColumns },\n { Prop: 'Maximum', List: this.NumericColumns }\n ]);\n });\n }\n break;\n case ChartType.Sunburst:\n if (axisColumn) {\n const colName = axisColumn.ColumnName;\n if (colName && !this.DefaultAxisColumns.some(x => x.Name === colName)) {\n axisColumn.ColumnName = null;\n }\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n this.checkAxisDateColumn();\n if (!this.ChartSettingsValue['CenterRadius']) {\n this.ChartSettingsValue['CenterRadius'] = 0.1;\n }\n if (!this.ChartSettingsValue['RadiusScaleExponent']) {\n this.ChartSettingsValue['RadiusScaleExponent'] = 0.5;\n }\n break;\n }\n }\n }\n\n optionChanged(prop: string) {\n if (this.SelectedItemValue && this.SelectedItemValue.Element && typeof this.SelectedItemValue.Element.ChartPropChanged === 'function') {\n this.SelectedItemValue.Element.ChartPropChanged(prop);\n }\n this.onStyleChanged('ChartSettings');\n }\n\n UsePaletteForSingleSeriesChanged() {\n if (this.SelectedItemValue && this.SelectedItemValue.Element && typeof this.SelectedItemValue.Element.ChartPropChanged === 'function') {\n this.SelectedItemValue.Element.ChartPropChanged(null);\n }\n this.onStyleChanged('UsePaletteForSingleSeries');\n }\n\n onChartTypeChanged() {\n this.updateChartType();\n this.optionChanged('ChartType');\n }\n\n addSeriesColumn() {\n if (this.ChartSettingsValue.Series) {\n this.ChartSettingsValue.Series.push(new SeriesSettings());\n } else {\n this.ChartSettingsValue.Series = [new SeriesSettings()];\n }\n this.optionChanged('Series');\n }\n\n deleteSeriesColumn(i) {\n if (this.ChartSettingsValue.Series) {\n this.ChartSettingsValue.Series.splice(i, 1);\n this.optionChanged('Series');\n }\n }\n\n onDefaultAxisChanged() {\n if (this.ChartSettingsValue) {\n const axisCol = this.ChartSettingsValue['AxisColumn'];\n const colName = axisCol.ColumnName;\n const col = this.DefaultAxisColumns.find(x => x.Name === colName);\n if (col) {\n if (!this.ChartSettingsValue.LabelAxis) {\n this.ChartSettingsValue.LabelAxis = new AxisSettings();\n }\n this.ChartSettingsValue.LabelAxis.Title = col.TranslatedCaption;\n }\n this.checkAxisDateColumn();\n }\n this.optionChanged('AxisColumn');\n }\n\n addColor(list) {\n if (list) {\n list.push(new ColorAxisValue());\n this.optionChanged('ColorValues.Color');\n }\n }\n\n getColor(series) {\n if (series && typeof series.Color === 'string') {\n return Color.FromHex(series.Color);\n }\n return new Color();\n }\n\n setColor(col, ev) {\n if (col && ev) {\n col.Color = Color.HexFromColor(ev, true);\n this.optionChanged('ColorValues.Color');\n }\n }\n\n changeColor(series: SeriesSettings) {\n if (series) {\n const changedColor = series['ChangedColor'];\n if (changedColor) {\n series.Color = Color.HexFromColor(changedColor, true);\n this.optionChanged('Series.Color');\n delete series['ChangedColor'];\n }\n }\n }\n\n clearColor(series: SeriesSettings) {\n if (series) {\n series.Color = null;\n this.optionChanged('Series.Color');\n }\n }\n\n addColorRange() {\n if (this.ChartSettingsValue && this.ChartSettingsValue.HeatMapSettings) {\n if (this.ChartSettingsValue.HeatMapSettings.ColorValues) {\n this.ChartSettingsValue.HeatMapSettings.ColorValues.push(new ColorRangeValue());\n } else {\n this.ChartSettingsValue.HeatMapSettings.ColorValues = [new ColorRangeValue()];\n }\n this.optionChanged('HeatMapSettings.ColorValues');\n }\n }\n\n deleteColorRange(i) {\n if (this.ChartSettingsValue && this.ChartSettingsValue.HeatMapSettings && this.ChartSettingsValue.HeatMapSettings.ColorValues) {\n this.ChartSettingsValue.HeatMapSettings.ColorValues.splice(i, 1);\n this.optionChanged('HeatMapSettings.ColorValues');\n }\n }\n\n checkAxisDateColumn() {\n const axisColumn = this.ChartSettingsValue['AxisColumn'];\n this.AxisIsDateColumn = axisColumn && axisColumn.ColumnName &&\n this.DateColumns.concat(this.NumericColumns).some(x => x.Name === axisColumn.ColumnName);\n }\n\n addPaletteColor() {\n if (this.ChartSettingsValue) {\n if (this.ChartSettingsValue.SeriesColors) {\n this.ChartSettingsValue.SeriesColors.push('#000000');\n } else {\n this.ChartSettingsValue.SeriesColors = ['#000000'];\n }\n this.optionChanged('SeriesColors');\n }\n }\n clearPalette() {\n if (this.ChartSettingsValue) {\n this.ChartSettingsValue.SeriesColors = [];\n this.optionChanged('SeriesColors');\n }\n }\n DropPaletteEntry(event) {\n if (this.ChartSettingsValue && this.ChartSettingsValue.SeriesColors && event.previousIndex !== event.currentIndex) {\n moveItemInArray(this.ChartSettingsValue.SeriesColors, event.previousIndex, event.currentIndex);\n this.optionChanged('SeriesColors');\n }\n }\n paletteColorChanged(event, i) {\n if (this.ChartSettingsValue && this.ChartSettingsValue.SeriesColors && i < this.ChartSettingsValue.SeriesColors.length) {\n if (event == null) {\n this.ChartSettingsValue.SeriesColors.splice(i, 1);\n } else {\n this.ChartSettingsValue.SeriesColors.splice(i, 1, Color.HexFromColor(event, true));\n }\n this.optionChanged('SeriesColors');\n }\n }\n getPaletteColor(col) {\n return Color.FromHex(col);\n }\n\n LabelAxisActiveChanged(ev) {\n if (ev) {\n if (this.ChartSettingsValue.LabelAxis == null) {\n this.ChartSettingsValue.LabelAxis = new AxisSettings();\n }\n } else {\n this.ChartSettingsValue.LabelAxis = null;\n }\n }\n\n FirstValueAxisActiveChanged(ev) {\n if (ev) {\n if (this.ChartSettingsValue.ValueAxes == null || this.ChartSettingsValue.ValueAxes.length == 0) {\n this.ChartSettingsValue.ValueAxes = [new ContinuousAxisSettings()];\n } else if (this.ChartSettingsValue.ValueAxes[0] == null) {\n this.ChartSettingsValue.ValueAxes[0] = new ContinuousAxisSettings();\n }\n } else if (this.ChartSettingsValue.ValueAxes && this.ChartSettingsValue.ValueAxes.length > 0) {\n if (this.ChartSettingsValue.ValueAxes.length == 1 || (this.ChartSettingsValue.ValueAxes.length == 2 && this.ChartSettingsValue.ValueAxes[1] == null)) {\n this.ChartSettingsValue.ValueAxes = null;\n } else {\n this.ChartSettingsValue.ValueAxes[0] = null;\n }\n }\n }\n\n SecondValueAxisActiveChanged(ev) {\n if (ev) {\n if (this.ChartSettingsValue.ValueAxes) {\n if (this.ChartSettingsValue.ValueAxes.length == 0) {\n this.ChartSettingsValue.ValueAxes = [null, new ContinuousAxisSettings()];\n } else if (this.ChartSettingsValue.ValueAxes.length == 1) {\n this.ChartSettingsValue.ValueAxes.push(new ContinuousAxisSettings());\n }\n } else {\n this.ChartSettingsValue.ValueAxes = [null, new ContinuousAxisSettings()];\n }\n } else if (this.ChartSettingsValue.ValueAxes && this.ChartSettingsValue.ValueAxes.length > 1) {\n if (this.ChartSettingsValue.ValueAxes[0] == null) {\n this.ChartSettingsValue.ValueAxes = null;\n } else {\n this.ChartSettingsValue.ValueAxes[1] = null;\n }\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, ContentChild, Directive, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { SeriesSettings, TrendLineSettings } from '../../../models/controls/chart.model';\nimport { ChartTrendlineType } from '../../../models/enums/chartcurvetype.enum';\nimport { SeriesType } from '../../../models/enums/seriestype.enum';\nimport { Color } from '../../../models/style/color.model';\n\n@Directive({\n selector: '[seriesColumnsContent]'\n})\nexport class SeriesColumnsContentDirective { }\n\n@Component({\n selector: 'series-menu-control',\n templateUrl: './series.menu.control.html',\n styleUrls: ['./series.menu.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SeriesMenuControl {\n\n ColorValue: Color;\n ChangedColor: Color;\n SeriesTypes;\n TrendLineTypes;\n TrendLineType = -1;\n\n //#region Series\n SeriesValue: SeriesSettings;\n\n @Input()\n get Series() {\n return this.SeriesValue;\n }\n set Series(val) {\n this.SeriesValue = val;\n this.TrendLineType = -1;\n if (val) {\n this.ColorValue = Color.FromHex(val.Color);\n if (val.TrendLine && typeof val.TrendLine.Type === 'number') {\n this.TrendLineType = val.TrendLine.Type;\n }\n } else {\n this.ColorValue = new Color();\n }\n this.SeriesChange.emit(this.SeriesValue);\n }\n\n @Output() SeriesChange = new EventEmitter();\n //#endregion\n\n //#region PlaceHolder\n PlaceHolderValue;\n\n @Input()\n get PlaceHolder() {\n return this.PlaceHolderValue;\n }\n set PlaceHolder(val) {\n this.PlaceHolderValue = val;\n this.PlaceHolderChange.emit(this.PlaceHolderValue);\n }\n\n @Output() PlaceHolderChange = new EventEmitter();\n //#endregion\n\n //#region Columns\n ColumnsValue;\n\n @Input()\n get Columns() {\n return this.ColumnsValue;\n }\n set Columns(val) {\n this.ColumnsValue = val;\n this.ColumnsChange.emit(this.ColumnsValue);\n }\n\n @Output() ColumnsChange = new EventEmitter();\n //#endregion\n\n //#region Columns\n LabelColumnsValue;\n\n @Input()\n get LabelColumns() {\n return this.LabelColumnsValue;\n }\n set LabelColumns(val) {\n this.LabelColumnsValue = val;\n this.LabelColumnsChange.emit(this.LabelColumnsValue);\n }\n\n @Output() LabelColumnsChange = new EventEmitter();\n //#endregion\n\n //#region ShowColor\n ShowColorValue = false;\n\n @Input()\n get ShowColor() {\n return this.ShowColorValue;\n }\n set ShowColor(val) {\n this.ShowColorValue = val;\n this.ShowColorChange.emit(this.ShowColorValue);\n }\n\n @Output() ShowColorChange = new EventEmitter();\n //#endregion\n\n //#region ShowType\n ShowTypeValue = false;\n\n @Input()\n get ShowType() {\n return this.ShowTypeValue;\n }\n set ShowType(val) {\n this.ShowTypeValue = val;\n this.ShowTypeChange.emit(this.ShowTypeValue);\n }\n\n @Output() ShowTypeChange = new EventEmitter();\n //#endregion\n\n //#region ShowTrendline\n ShowTrendlineValue = false;\n\n @Input()\n get ShowTrendline() {\n return this.ShowTrendlineValue;\n }\n set ShowTrendline(val) {\n this.ShowTrendlineValue = val;\n this.ShowTrendlineChange.emit(this.ShowTrendlineValue);\n }\n\n @Output() ShowTrendlineChange = new EventEmitter();\n //#endregion\n\n //#region ShowDelete\n ShowDeleteValue = true;\n\n @Input()\n get ShowDelete() {\n return this.ShowDeleteValue;\n }\n set ShowDelete(val) {\n this.ShowDeleteValue = val;\n this.ShowDeleteChange.emit(this.ShowDeleteValue);\n }\n\n @Output() ShowDeleteChange = new EventEmitter();\n //#endregion\n\n //#region MultipleAxis\n MultipleAxisValue = false;\n\n @Input()\n get MultipleAxis() {\n return this.MultipleAxisValue;\n }\n set MultipleAxis(val) {\n this.MultipleAxisValue = val;\n this.MultipleAxisChange.emit(this.MultipleAxisValue);\n }\n\n @Output() MultipleAxisChange = new EventEmitter();\n\n get SeriesOnSecondAxis() {\n return this.SeriesValue && this.SeriesValue.TargetAxis == 1;\n }\n set SeriesOnSecondAxis(val) {\n if (this.SeriesValue) {\n this.SeriesValue.TargetAxis = val ? 1 : 0;\n }\n }\n //#endregion\n\n @Output() SeriesOptionChanged = new EventEmitter();\n @Output() SeriesDeleted = new EventEmitter();\n\n @ContentChild(SeriesColumnsContentDirective, { read: TemplateRef }) seriesColumnsContentTemplate;\n\n constructor() {\n this.SeriesTypes = EnumHelper.GetDropdownValues(SeriesType);\n this.TrendLineTypes = EnumHelper.GetDropdownValues(ChartTrendlineType);\n }\n\n optionChanged(val: string) {\n this.SeriesOptionChanged.emit(val);\n }\n\n delete() {\n this.SeriesDeleted.emit();\n }\n\n colorChanged(color) {\n if (color instanceof Color) {\n this.ChangedColor = color;\n }\n }\n\n changeColor() {\n if (this.ChangedColor instanceof Color) {\n this.ColorValue = this.ChangedColor;\n this.ChangedColor = null;\n if (this.SeriesValue) {\n this.SeriesValue.Color = Color.HexFromColor(this.ColorValue, true);\n this.optionChanged('Series.Color');\n }\n }\n }\n\n clearColor() {\n this.ColorValue = null;\n this.ChangedColor = null;\n if (this.SeriesValue) {\n this.SeriesValue.Color = null;\n this.optionChanged('Series.Color');\n }\n }\n\n setTrendLine(ev) {\n if (this.Series) {\n if (ev && typeof ev.value === 'number' && ev.value >= 0) {\n if (!this.Series.TrendLine) {\n this.Series.TrendLine = new TrendLineSettings();\n }\n this.Series.TrendLine.Type = ev.value;\n } else {\n this.Series.TrendLine = null;\n }\n this.optionChanged('Series.Trendline');\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { LayoutService } from '../../../services/layout.service';\nimport { APropertyTab } from '../properties/properties.menu.tab';\n\n@Component({\n selector: 'columnvisibility-menu-tab',\n templateUrl: './columnvisibility.menu.tab.html',\n styleUrls: ['./columnvisibility.menu.tab.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ColumnVisibilityMenuTab extends APropertyTab{\n\n //#region SelectedItem\n SelectedItemValue;\n\n @Input()\n get SelectedItem() {\n return this.SelectedItemValue;\n }\n set SelectedItem(val) {\n this.SelectedItemValue = val;\n this.SelectedItemChange.emit(this.SelectedItemValue);\n }\n\n @Output() SelectedItemChange = new EventEmitter();\n //#endregion\n\n Layout;\n Elements;\n constructor(cdRef: ChangeDetectorRef) { \n super(cdRef);\n this.Subscriptions.push(LayoutService.SelectedLayout.subscribe((layout) => {\n this.Layout = layout;\n this.Elements = [];\n this.Elements.push(...this.GetTables(this.Layout));\n }));\n }\n\n GetTables(layout) {\n let retVal = [];\n if (layout.Elements && layout.Elements.length > 0) {\n for (let i = 0; i < layout.Elements.length; i++) {\n let item = layout.Elements[i];\n if (item.Elements && item.Elements.length > 0) {\n retVal.push(...this.GetTables(item));\n }\n if (item.ElementType == \"datatable\") {\n retVal.push(item);\n }\n }\n }\n return retVal;\n }\n}\n\n@Component({\n selector: 'columnvisibility-property-menu-tab',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ColumnVisibilityPropertyMenuTab extends APropertyTab {\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport { EnumHelper } from \"../../../helpers/enum.helper\";\nimport { ContentType } from \"../../../models/enums/contenttype.enum\";\n\n@Component({\n selector: 'content-menu-tab',\n templateUrl: './content.menu.tab.html',\n styleUrls: ['./content.menu.tab.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ContentMenuTab implements OnInit {\n\n //#region SelectedItem\n SelectedItemValue;\n\n \n @Input()\n get SelectedItem() {\n return this.SelectedItemValue;\n }\n set SelectedItem(val) {\n this.SelectedItemValue = val;\n this.SelectedItemChange.emit(this.SelectedItemValue);\n }\n\n @Output() SelectedItemChange = new EventEmitter();\n //#endregion\n\n ContentTypes = [];\n\n constructor() {\n this.ContentTypes = EnumHelper.GetDropdownValues(ContentType);\n }\n ngOnInit(): void {\n \n }\n\n \n ContentTypeChanged() {\n switch (this.SelectedItemValue.ContentType) {\n case ContentType.Grid: this.SelectedItemValue.ElementType = 'grid'; break;\n case ContentType.Flex: this.SelectedItemValue.ElementType = 'flex'; break;\n case ContentType.Raster: this.SelectedItemValue.ElementType = 'raster'; break;\n case ContentType.Canvas: this.SelectedItemValue.ElementType = 'canvas'; break;\n }\n\n \n }\n}\n","import { OnInit, Component, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { TranslateService } from '@ngx-translate/core';\nimport { REGISTRY, CONTROLGROUPS, WIDGETREGISTRY, FilteredControlService } from '../../../services/dynamic.component.service';\nimport { NavigationService } from '../../../services/navigation.service';\nimport { Page } from '../../../models/enums/page.enum';\nimport { ALayoutMenuTab } from '../../../appbuilder/common/menutabcontrol/menu.tab.control';\nimport { LayoutService } from '../../../services/layout.service';\nimport { SettingsService } from '../../../services/settings.service';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { MetaService } from '../../../services/meta.service';\nimport { plainToClass } from 'class-transformer';\nimport { Layout } from '../../../models/layout.model';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'controls-menu-tab',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ControlsMenuTab implements OnInit {\n constructor(private filteredControlService: FilteredControlService, private cdRef: ChangeDetectorRef) {}\n Items = [];\n _activeIndexes = [];\n ngOnInit(): void {\n const items = [];\n CONTROLGROUPS.forEach((x) => {\n const item = {\n SID: x.SID,\n Caption: x.Caption,\n Content: new ComponentPortal(x.Content),\n Visible: true,\n Class: 'toolbox',\n };\n if (typeof x.CheckVisible === 'function') {\n item.Visible = x.CheckVisible();\n }\n items.push(item);\n });\n this.Items = items;\n\n this.filteredControlService.filteredControlItems$.subscribe((val) => {\n const _items = [...this.Items];\n this.openAccordionMenu(_items);\n });\n }\n\n openAccordionMenu(_items) {\n if (_items && _items.length > 0) {\n this._activeIndexes = this.Items.map((_, index) => index);\n this.cdRef.detectChanges();\n }\n }\n}\n\n@Component({\n selector: 'controls-a-menu-tab-content',\n templateUrl: './controls.menu.tab.content.html',\n styleUrls: ['./controls.menu.tab.content.css'],\n})\nexport abstract class AMenuTabContent extends ALayoutMenuTab {\n Items = [];\n dragging = false;\n dragType;\n dragItem;\n\n SearchValue: string;\n FilteredItems = [];\n\n constructor(\n protected settingsService: SettingsService,\n protected metaService: MetaService,\n cdRef: ChangeDetectorRef,\n private translate: TranslateService,\n protected filteredControlService: FilteredControlService\n ) {\n super(cdRef);\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.Subscriptions.push(\n LayoutService.DragType.subscribe((dt) => {\n this.dragType = dt;\n })\n );\n this.filteredControlService.filteredControlItems$.pipe().subscribe((searchValue) => {\n this.SearchValue = searchValue;\n this.UpdateFiltered();\n this.cdRef.detectChanges();\n });\n }\n\n //#region Drag&Drop\n dragStart(event, item, caption) {\n let defaultItem = defaultProperties[item.Type];\n if (defaultItem) {\n defaultItem = Object.keys(defaultItem);\n if (defaultItem && defaultItem[0]) {\n item = JSON.parse(JSON.stringify(defaultProperties[item.Type]));\n }\n }\n item.Name = LayoutHelper.GetNextElementName(this.Layout, item.Type, this.translate.instant(caption));\n this.settingsService.DragStart.next({ event, item });\n this.dragItem = item.Type;\n this.dragging = true;\n event.stopPropagation();\n }\n dragEnd(event) {\n this.settingsService.DragEnd.next(event);\n LayoutService.RefreshTree.next(true);\n this.dragging = false;\n this.dragItem = null;\n }\n checkDragItem(item) {\n if (item === this.dragItem) {\n return true;\n }\n return false;\n }\n //#endregion\n\n //#region Search\n resetSearch() {\n this.SearchValue = null;\n this.UpdateFiltered();\n }\n\n UpdateFiltered() {\n this.FilteredItems = [];\n if (this.Items) {\n if (this.SearchValue) {\n this.FilteredItems = this.getFilteredList(this.Items);\n } else {\n this.FilteredItems = this.Items;\n }\n }\n }\n\n getFilteredList(originalList: any[]): any[] {\n if (!this.SearchValue || !originalList) {\n return originalList;\n }\n\n const toLower = this.SearchValue.toLowerCase();\n\n const filtered = originalList.filter((item) => {\n const caption = item.Caption ? this.translate.instant(item.Caption) : '';\n return caption.toLowerCase().includes(toLower);\n });\n return filtered;\n }\n\n Sort(sort) {\n this.Items.sort((a, b) => {\n if (sort == 'name') {\n if (a.Caption > b.Caption) {\n return 1;\n }\n if (a.Caption < b.Caption) {\n return -1;\n }\n }\n if (sort == 'type') {\n if (a.Category > b.Category) {\n return 1;\n }\n if (a.Category < b.Category) {\n return -1;\n }\n }\n return 0;\n });\n }\n //#endregion\n}\n\n@Component({\n selector: 'controls-menu-tab-content',\n templateUrl: './controls.menu.tab.content.html',\n styleUrls: ['./controls.menu.tab.content.css'],\n})\nexport abstract class ControlsMenuTabContent extends AMenuTabContent {\n abstract GetID(): string;\n\n ngOnInit() {\n super.ngOnInit();\n const id = this.GetID();\n const page = NavigationService.SelectedPage.getValue();\n let activepage = Page.All;\n switch (page) {\n case 'settings':\n activepage = Page.None;\n break;\n case 'ribbon':\n activepage = Page.Ribbon;\n break;\n case 'output':\n activepage = Page.Print;\n break;\n case 'template':\n activepage = Page.App;\n break;\n case 'widget':\n activepage = Page.App;\n break;\n case 'layout':\n activepage = Page.Layout;\n break;\n case 'content':\n activepage = Page.App;\n break;\n }\n const items = [];\n const keys = Object.keys(REGISTRY);\n keys.forEach((key) => {\n const reg = REGISTRY[key];\n if (reg.type === id && (reg.page.indexOf(activepage) > -1 || reg.page.indexOf(Page.All) > -1)) {\n items.push({\n Key: key,\n Caption: reg.Label,\n Icon: reg.Icon,\n Default: reg.Control.Default,\n Category: reg.Category,\n itemTab: reg.type,\n order: reg.order,\n });\n }\n });\n\n this.Items = items;\n this.Sort('type');\n this.Items = this.Items.sort((a, b) => a.order - b.order);\n this.FilteredItems = this.getFilteredList(this.Items);\n }\n}\n\n@Component({\n selector: 'menu-tab-content-controls-accordion',\n templateUrl: './controls.menu.tab.content.html',\n styleUrls: ['./controls.menu.tab.content.css'],\n})\nexport class AdvancedAccordion extends ControlsMenuTabContent {\n GetID(): string {\n return 'Advanced';\n }\n}\n@Component({\n selector: 'menu-tab-content-controls-accordion',\n templateUrl: './controls.menu.tab.content.html',\n styleUrls: ['./controls.menu.tab.content.css'],\n})\nexport class FormAccordion extends ControlsMenuTabContent {\n GetID(): string {\n return 'Form';\n }\n}\n@Component({\n selector: 'menu-tab-content-controls-accordion',\n templateUrl: './controls.menu.tab.content.html',\n styleUrls: ['./controls.menu.tab.content.css'],\n})\nexport class DataAccordion extends ControlsMenuTabContent {\n GetID(): string {\n return 'Data';\n }\n}\n@Component({\n selector: 'menu-tab-content-controls-accordion',\n templateUrl: './controls.menu.tab.content.html',\n styleUrls: ['./controls.menu.tab.content.css'],\n})\nexport class BlockAccordion extends ControlsMenuTabContent {\n GetID(): string {\n return 'Block';\n }\n}\n@Component({\n selector: 'menu-tab-content-controls-accordion',\n templateUrl: './controls.menu.tab.content.html',\n styleUrls: ['./controls.menu.tab.content.css'],\n})\nexport class MediaAccordion extends ControlsMenuTabContent {\n GetID(): string {\n return 'Media';\n }\n}\n\n@Component({\n selector: 'menu-tab-content-static-accordion',\n templateUrl: './controls.menu.tab.content.html',\n styleUrls: ['./controls.menu.tab.content.css'],\n})\nexport class StaticAccordion extends ControlsMenuTabContent {\n GetID(): string {\n return 'StaticControl';\n }\n}\n\n@Component({\n selector: 'menu-tab-content-layout-accordion',\n templateUrl: './controls.menu.tab.content.html',\n styleUrls: ['./controls.menu.tab.content.css'],\n})\nexport class LayoutAccordion extends ControlsMenuTabContent {\n GetID(): string {\n return 'Layout';\n }\n}\n\n@Component({\n selector: 'menu-tab-content-template-accordion',\n templateUrl: './controls.menu.tab.content.html',\n styleUrls: ['./controls.menu.tab.content.css'],\n})\nexport class TemplateAccordion extends AMenuTabContent {\n static CheckVisible(): boolean {\n const page = NavigationService.SelectedPage.getValue();\n return page !== 'output';\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.metaService.ReadTemplates().subscribe((templates) => {\n const templateList: any = plainToClass(Layout, templates);\n const items = [];\n templateList.forEach((x) => {\n items.push({\n Key: x.ElementType,\n Caption: x.Name,\n Default: x,\n Icon: 'grid_guides',\n });\n });\n this.Items = items;\n this.FilteredItems = this.getFilteredList(this.Items);\n this.cdRef.detectChanges();\n });\n }\n}\n\n@Component({\n selector: 'menu-tab-content-widget-accordion',\n templateUrl: './controls.menu.tab.content.html',\n styleUrls: ['./controls.menu.tab.content.css'],\n})\nexport class WidgetAccordion extends AMenuTabContent {\n static CheckVisible(): boolean {\n const page = NavigationService.SelectedPage.getValue();\n return page !== 'output' && page !== 'widget';\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.metaService.ReadWidgets().subscribe((widgets) => {\n const widgetList: any = plainToClass(Layout, widgets);\n const items = [];\n widgetList.forEach((x) => {\n items.push({\n Key: x.ElementType,\n Caption: x.Name,\n Default: x,\n });\n });\n const keys = Object.keys(WIDGETREGISTRY);\n keys.forEach((key) => {\n const widget = WIDGETREGISTRY[key];\n if (widget) {\n if (typeof widget.HideInControlsMenu === 'boolean' && widget.HideInControlsMenu) {\n return;\n }\n const layout = new Layout();\n layout['ElementType'] = 'widget';\n layout['Type'] = 'widget';\n layout['NativeComponent'] = key;\n items.push({\n Key: 'widget',\n Caption: widget.Label,\n Default: layout,\n Icon: widget.Icon,\n });\n }\n });\n\n this.Items = items;\n this.FilteredItems = this.getFilteredList(this.Items);\n this.cdRef.detectChanges();\n });\n }\n}\n\n@Component({\n selector: 'report-controls-accordion',\n templateUrl: './controls.menu.tab.content.html',\n styleUrls: ['./controls.menu.tab.content.css'],\n})\nexport class ReportControlsAccordion extends ControlsMenuTabContent {\n GetID(): string {\n return 'Reportcontrol';\n }\n}\n\n@Component({\n selector: 'report-objects-accordion',\n templateUrl: './controls.menu.tab.content.html',\n styleUrls: ['./controls.menu.tab.content.css'],\n})\nexport class ReportObjectsAccordion extends ControlsMenuTabContent {\n GetID(): string {\n return 'Reportobject';\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from '@angular/core';\nimport { UUID } from 'angular2-uuid';\nimport { LayoutService } from '../../../services/layout.service';\nimport { APropertyTab } from '../properties/properties.menu.tab';\n\n@Component({\n selector: 'customevents-menu-tab',\n templateUrl: './customevents.menu.tab.html',\n styleUrls: ['./customevents.menu.tab.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CustomEventsMenuTab extends APropertyTab {\n Layout;\n SelectedEvent;\n\n static CheckOnChange(menuItem) {\n const selected = LayoutService.SelectedItem.getValue();\n const layout = LayoutService.SelectedLayout.getValue();\n if (selected && layout && (layout.ElementType === 'template' || layout.ElementType === 'widget')) {\n if (selected.ElementType === 'template' || selected.ElementType === 'widget') {\n menuItem.Visible = true;\n menuItem.Expanded = true;\n } else {\n menuItem.Visible = false;\n menuItem.Expanded = false;\n }\n } else {\n menuItem.Visible = false;\n menuItem.Expanded = false;\n }\n }\n\n constructor(cdRef: ChangeDetectorRef) {\n super(cdRef);\n this.Layout = LayoutService.SelectedLayout.getValue();\n }\n\n\n onItemSet() {\n this.SelectedEvent = null;\n if (this.SelectedItem) {\n if (this.SelectedItem.ElementType === 'template' || this.SelectedItem.ElementType === 'widget') {\n if (!this.SelectedItem.CustomEvents) {\n this.SelectedItem.CustomEvents = [];\n }\n this.Layout = this.SelectedItem;\n }\n }\n }\n\n add() {\n if (this.Layout) {\n const item = {\n ID: UUID.UUID(),\n Name: 'Var1',\n Value: null,\n Type: null,\n Formula: null\n };\n if (this.Layout.CustomEvents && this.Layout.CustomEvents.length > 0) {\n let index = this.Layout.CustomEvents.length + 1;\n let name = 'Var' + index++;\n while (this.Layout.CustomEvents.some(x => x.Name === name)) {\n name = 'Var' + index++;\n }\n item.Name = name;\n this.Layout.CustomEvents.push(item);\n } else {\n this.Layout.CustomEvents = [item];\n }\n this.SelectedEvent = item;\n this.onEventsEdited();\n }\n }\n\n delete() {\n if (this.Layout && this.Layout.CustomEvents && this.SelectedEvent) {\n const index = this.Layout.CustomEvents.indexOf(this.SelectedEvent);\n if (index > -1) {\n this.Layout.CustomEvents.splice(index, 1);\n if (index < this.Layout.CustomEvents.length) {\n this.SelectedEvent = this.Layout.CustomEvents[index];\n } else if (this.Layout.CustomEvents.length > 0) {\n this.SelectedEvent = this.Layout.CustomEvents[this.Layout.CustomEvents.length - 1];\n } else {\n this.SelectedEvent = null;\n }\n this.onEventsEdited();\n }\n }\n }\n\n onEventsEdited() {\n if (this.Layout) {\n LayoutService.OnLayoutPropertyChanged(this.Layout.ID, 'CustomEvents', this.Layout.CustomEvents);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { LayoutService } from '../../../services/layout.service';\nimport { APropertyTab } from '../properties/properties.menu.tab';\n\n@Component({\n selector: 'databinding-menu-tab',\n templateUrl: './databinding.menu.tab.html',\n styleUrls: ['./databinding.menu.tab.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DataBindingMenuTab extends APropertyTab {\n\n get DataSource() {\n if (this.TableProperties && this.TableProperties.Fields) {\n return this.TableProperties.Fields.find(x => x.ID === this.SelectedItemValue.DataSource);\n }\n return null;\n }\n _DataSource;\n set DataSource(val) {\n this._DataSource = val;\n \n }\n DataSourceChanged() {\n const changedProps = [];\n let val = this._DataSource;\n if (val) {\n if (this.SelectedItemValue.DataSource != val.ID) {\n this.SelectedItemValue.DataSource = val.ID;\n changedProps.push('DataSource');\n }\n const dsID = val.AdvancedType !== '00000000-0000-0000-0000-000000000000' ? val.AdvancedType : val.Type;\n if (this.SelectedItemValue.DataSourceID != dsID) {\n this.SelectedItemValue.DataSourceID = dsID;\n changedProps.push('DataSourceID');\n }\n if (this.SelectedItemValue.DataSourceType != val.Type) {\n this.SelectedItemValue.DataSourceType = val.Type;\n changedProps.push('DataSourceType');\n }\n if (val.Type === '876cf188-243b-49ed-91ab-b2cf27216a30') {\n if (this.SelectedItemValue.IsEnum != true) {\n this.SelectedItemValue.IsEnum = true;\n changedProps.push('IsEnum');\n }\n } else if (this.SelectedItemValue.IsEnum != null) {\n delete this.SelectedItemValue.IsEnum;\n changedProps.push('IsEnum');\n }\n if (val.IsList) {\n if (this.SelectedItemValue.Multiple != true) {\n this.SelectedItemValue.Multiple = true;\n changedProps.push('Multiple');\n }\n } else if (this.SelectedItemValue.Multiple != false) {\n this.SelectedItemValue.Multiple = false;\n changedProps.push('Multiple');\n }\n if (val.IsShared && !val.IsReverse) {\n if (!this.SelectedItemValue.ValueMemberPath) {\n if (val.KeyColumns && val.KeyColumns.length > 0) {\n if (val.KeyColumns.length === 1) {\n this.SelectedItemValue.ValueMemberPath = val.KeyColumns[0];\n changedProps.push('ValueMemberPath');\n } else {\n this.SelectedItemValue.ValueMemberPath = null;\n changedProps.push('ValueMemberPath');\n }\n } else {\n this.SelectedItemValue.ValueMemberPath = '_Id';\n changedProps.push('ValueMemberPath');\n }\n }\n } else if (this.SelectedItemValue.ValueMemberPath != null) {\n this.SelectedItemValue.ValueMemberPath = null;\n changedProps.push('ValueMemberPath');\n }\n if (val.IsMandatory || !val.IsNullable) {\n if (this.SelectedItemValue.IsRequired != true) {\n this.SelectedItemValue.IsRequired = true;\n changedProps.push('IsRequired');\n }\n } else if (this.SelectedItemValue.IsRequired != null) {\n delete this.SelectedItemValue.IsRequired;\n changedProps.push('IsRequired');\n }\n if (this.SelectedItemValue.IsReverse != val.IsReverse) {\n this.SelectedItemValue.IsReverse = val.IsReverse;\n changedProps.push('IsReverse');\n }\n if (this.SelectedItemValue.IsShared != val.IsShared) {\n this.SelectedItemValue.IsShared = val.IsShared;\n changedProps.push('IsShared');\n }\n } else {\n if (this.SelectedItemValue.DataSource != null) {\n this.SelectedItemValue.DataSource = null;\n changedProps.push('DataSource');\n }\n if (this.SelectedItemValue.DataSourceID != null) {\n this.SelectedItemValue.DataSourceID = null;\n changedProps.push('DataSourceID');\n }\n if (this.SelectedItemValue.DataSourceType != null) {\n this.SelectedItemValue.DataSourceType = null;\n changedProps.push('DataSourceType');\n }\n if (this.SelectedItemValue.IsEnum != null) {\n delete this.SelectedItemValue.IsEnum;\n changedProps.push('IsEnum');\n }\n if (this.SelectedItemValue.Multiple != false) {\n this.SelectedItemValue.Multiple = false;\n changedProps.push('Multiple');\n }\n if (this.SelectedItemValue.ValueMemberPath != null) {\n this.SelectedItemValue.ValueMemberPath = null;\n changedProps.push('ValueMemberPath');\n }\n if (this.SelectedItemValue.IsRequired != null) {\n delete this.SelectedItemValue.IsRequired;\n changedProps.push('IsRequired');\n }\n if (this.SelectedItemValue.IsReverse != false) {\n this.SelectedItemValue.IsReverse = false;\n changedProps.push('IsReverse');\n }\n if (this.SelectedItemValue.IsShared != false) {\n this.SelectedItemValue.IsShared = false;\n changedProps.push('IsShared');\n }\n }\n if (changedProps.length > 0) {\n this.onStyleChanged(changedProps);\n }\n if (this.SelectedItemValue.Element && typeof this.SelectedItemValue.Element.OnDataBindingChanged === 'function') {\n this.SelectedItemValue.Element.OnDataBindingChanged();\n }\n LayoutService.LayoutChanged.next(null);\n }\n TableProperties;\n Layout;\n\n static CheckOnChange(menuItem) {\n menuItem.Visible = false;\n const selected = LayoutService.SelectedItem.getValue();\n if (selected) {\n const layout = LayoutHelper.GetLayout();\n const resolution = LayoutHelper.GetActiveResolution(layout);\n DataBindingMenuTab.GetTableProperties(resolution, selected).then((x) => {\n if (x) {\n menuItem.Visible = true;\n LayoutHelper.RefreshMenuTabs.next(null);\n }\n });\n }\n }\n\n private static GetTableProperties(layout, selected) {\n const promise = new Promise((resolve, reject) => {\n if (layout && selected && layout !== selected) {\n MetaHelper.FilterTableProperties(layout, selected).then((result) => {\n if (result && result.Fields && result.Fields.length > 0) {\n if (selected['DataModelID'] && selected['DataModelID'] !== '00000000-0000-0000-0000-000000000000' &&\n selected['DataSource'] === result.SID) {\n resolve(null);\n } else {\n resolve(result);\n }\n } else {\n resolve(null);\n }\n });\n } else {\n resolve(null);\n }\n });\n return promise;\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.Subscriptions.push(LayoutService.SelectedLayout.subscribe((layout) => {\n this.Layout = layout;\n this.ReadTableProperties();\n }));\n }\n\n onItemSet() {\n this.ReadTableProperties();\n }\n\n ReadTableProperties() {\n this.TableProperties = null;\n const layout = this.Layout;\n const resolution = LayoutHelper.GetActiveResolution(layout);\n DataBindingMenuTab.GetTableProperties(resolution, this.SelectedItemValue).then((x) => {\n this.TableProperties = x;\n this.cdRef.detectChanges();\n });\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ALayoutMenuTab } from '../../../appbuilder/common/menutabcontrol/menu.tab.control';\nimport { CacheService } from '../../../cache/cache.service';\nimport { BaseDialog } from '../../../components/dialogs/basedialog/base.dialog';\nimport { TranslationDialog } from '../../../components/dialogs/translationdialog/translation.dialog';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { LayoutUnit } from '../../../models/basic/layoutunit.model';\nimport { DialogButton } from '../../../models/enums/dialogbutton.enum';\nimport { DialogResult } from '../../../models/enums/dialogresult.enum';\nimport { Order } from '../../../models/enums/order.enum';\nimport { PagingType } from '../../../models/enums/pagingtype.enum';\nimport { ResponsiveType } from '../../../models/enums/responsivetype.enum';\nimport { SelectMode } from '../../../models/enums/selectmode.enum';\nimport { TableStyle } from '../../../models/enums/tablestyle.enum';\nimport { Color } from '../../../models/style/color.model';\nimport { LanguageService } from '../../../services/language.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MediaService } from '../../../services/media.service';\nimport { WorkerService } from '../../../services/worker.service';\nimport { DataTableCommunicationService } from \"../../../services/datatable-communication.service\";\n@Component({\n selector: 'datatable-settings-menu-tab',\n templateUrl: './datatable.menu.tab.html',\n styleUrls: ['./datatable.menu.tab.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DataTableSettingsMenuTab extends ALayoutMenuTab {\n\n //#region SelectedItem\n SelectedItemValue;\n\n @Input()\n get SelectedItem() {\n return this.SelectedItemValue;\n }\n set SelectedItem(val) {\n this.SelectedItemValue = val;\n if (this.SelectedItemValue && this.SelectedItemValue.TableStyle == null) {\n this.SelectedItemValue.TableStyle = TableStyle.DataTable;\n }\n if (this.SelectedItemValue && this.SelectedItemValue.ResponsiveType == null) {\n this.SelectedItemValue.ResponsiveType = ResponsiveType.Scroll;\n }\n if (this.SelectedItemValue && this.SelectedItemValue.PagingType == null) {\n this.SelectedItemValue.PagingType = PagingType.Scroll;\n }\n if (this.SelectedItemValue && this.SelectedItemValue.ResizeMode == null) {\n this.SelectedItemValue.ResizeMode = 'fit';\n }\n if (this.SelectedItemValue && this.SelectedItemValue.EditMode == null) {\n this.SelectedItemValue.EditMode = 'row';\n }\n\n if (typeof this.SelectedItemValue.PageReport !== 'string') {\n this.SelectedItemValue.PageReport = '';\n }\n if (this.ValuesChangedSubscription != null) {\n this.ValuesChangedSubscription.unsubscribe();\n this.ValuesChangedSubscription = null;\n }\n this.ValuesChangedSubscription = this.SelectedItemValue.ValuesChanged.subscribe(prop => {\n if (typeof prop === 'string') {\n if (prop === 'Editable') {\n this.SelectedItemValue.EditMode = 'row';\n }\n } else if (Array.isArray(prop)) {\n if (prop.some(x => x === 'Editable')) {\n this.SelectedItemValue.EditMode = 'row';\n }\n }\n });\n }\n\n @Output() SelectedItemChange = new EventEmitter();\n\n public static CheckOnChange(menuItem) {\n const selected = LayoutService.SelectedItem.getValue();\n if (selected && selected.ElementType === 'datatable') {\n menuItem.Visible = true;\n menuItem.Expanded = true;\n } else {\n menuItem.Visible = false;\n menuItem.Expanded = false;\n }\n }\n\n ValuesChangedSubscription;\n PagingTypes = [];\n SelectModes = [];\n ResponsiveTypes = [];\n TableStyles = [];\n PagerPageSizes = [5, 10, 25, 100];\n constructor(cdRef: ChangeDetectorRef, private worker: WorkerService) {\n super(cdRef);\n this.ResponsiveTypes = EnumHelper.GetDropdownValues(ResponsiveType);\n this.PagingTypes = EnumHelper.GetDropdownValues(PagingType);\n this.SelectModes = EnumHelper.GetDropdownValues(SelectMode).filter(x => x.type != SelectMode['fire&forget']);\n this.SelectModes.unshift({ type: null, value: '@@None' });\n this.TableStyles = EnumHelper.GetDropdownValues(TableStyle);\n\n }\n\n pagingTypeChanged() {\n this.onStyleChanged('PagingType');\n if (this.SelectedItemValue && this.SelectedItemValue.PagingType == PagingType.Pager &&\n typeof this.SelectedItemValue.PageSize === 'number') {\n let firstPS = this.PagerPageSizes[0];\n if (this.SelectedItemValue.PageSize < firstPS) {\n this.SelectedItemValue.PageSize = firstPS;\n this.onStyleChanged('PageSize');\n } else if (this.SelectedItemValue.PageSize > firstPS) {\n for (let i = 1; i < this.PagerPageSizes.length; i++) {\n const actSize = this.PagerPageSizes[i];\n const middle = (actSize + firstPS) / 2;\n if (this.SelectedItemValue.PageSize < middle) {\n this.SelectedItemValue.PageSize = firstPS;\n this.onStyleChanged('PageSize');\n return;\n } else if (this.SelectedItemValue.PageSize < actSize) {\n this.SelectedItemValue.PageSize = actSize;\n this.onStyleChanged('PageSize');\n return;\n } else if (this.SelectedItemValue.PageSize == actSize) {\n return;\n }\n firstPS = actSize;\n }\n if (this.SelectedItemValue.PageSize > firstPS) {\n this.SelectedItemValue.PageSize = firstPS;\n }\n }\n }\n }\n}\n\n\n@Component({\n selector: 'datatable-columns-menu-tab',\n templateUrl: './datatable.columns.menu.tab.html',\n styleUrls: ['./datatable.menu.tab.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DataTableColumnsMenuTab extends ALayoutMenuTab implements OnDestroy {\n\n //#region SelectedItem\n SelectedItemValue;\n\n @Input()\n get SelectedItem() {\n return this.SelectedItemValue;\n }\n set SelectedItem(val) {\n this.SelectedItemValue = val;\n if (this.SelectedItemValue.Columns && this.SelectedItemValue.Columns.length > 0) {\n this.SelectedItemValue.Columns = this.SelectedItemValue.Columns.filter((col) => col.FetchData);\n }\n if (this.DataBindingChangedSubscription != null) {\n this.DataBindingChangedSubscription.unsubscribe();\n this.DataBindingChangedSubscription = null;\n }\n if (this.SelectedItemValue.DataBindingChanged) {\n this.DataBindingChangedSubscription = this.SelectedItemValue.DataBindingChanged.subscribe((Property) => {\n this.ReadTableProperties();\n });\n }\n this.ReadTableProperties();\n }\n\n @Output() SelectedItemChange = new EventEmitter();\n //#endregion\n DataSourceID;\n //#region FlatTableProperties\n TablePropertiesValue;\n @Input()\n get TableProperties() {\n return this.TablePropertiesValue;\n }\n set TableProperties(val) {\n this.TablePropertiesValue = val;\n this.worker.ConvertToTree({ TableProperties: this.TableProperties, SelectedItem: this.SelectedItemValue }).then((data: any) => {\n this.TreeData = data.TreeData;\n if (data.TreeData) {\n this.SortColumns = data.TreeData.map((tree) => {\n return {\n Caption: tree?.data?.Name,\n Value: tree?.data?.Name\n }\n })\n }\n this.SelectedTreeNodes = data.SelectedTreeNodes;\n this.SelectedColumns = this.SelectedItemValue.Columns;\n this.cdRef.detectChanges();\n });\n this.TablePropertiesChange.emit(this.TablePropertiesValue);\n }\n\n @Output() TablePropertiesChange = new EventEmitter();\n //#endregion\n\n public static CheckOnChange(menuItem) {\n\n const selected = LayoutService.SelectedItem.getValue();\n if (selected && selected.ElementType === 'datatable') {\n menuItem.Visible = true;\n menuItem.Expanded = true;\n } else {\n menuItem.Visible = false;\n menuItem.Expanded = false;\n }\n }\n\n DataBindingChangedSubscription;\n SelectedColumn;\n TreeData;\n SelectedTreeNodes;\n SelectedColumns;\n OrderTypes = [];\n Cultures = [];\n SortColumn:string;\n SortOrder:string;\n SortColumns;\n constructor(cdRef: ChangeDetectorRef, private worker: WorkerService,\n private languageService: LanguageService, translate: TranslateService, private datatableComService: DataTableCommunicationService) {\n super(cdRef);\n this.OrderTypes = EnumHelper.GetDropdownValues(Order);\n this.OrderTypes.unshift({ value: '@@None', type: null })\n this.Cultures.push({\n Caption: translate.instant('@@Keine Auswahl'),\n Name: null\n });\n }\n ngOnInit() {\n super.ngOnInit();\n this.languageService.getLanguages().subscribe(x => {\n if (x) {\n this.Cultures.push(...x);\n }\n });\n }\n onLayoutSet() {\n this.ReadTableProperties();\n }\n ColumnChanged() {\n if (this.SelectedColumn && !this.SelectedColumn.Width) {\n this.SelectedColumn.Width = new LayoutUnit();\n }\n }\n ReadTableProperties() {\n const sel = this.SelectedItemValue;\n this.TreeData = [];\n if (this.Layout && sel) {\n MetaHelper.FindDataBindingProperties(this.Layout, sel).then(result => {\n if (result) {\n CacheService.ReadFlatDataTable(result.Table.SID).then((props) => {\n if (props != this.TableProperties) {\n this.TableProperties = props;\n }\n });\n } else {\n this.cdRef.detectChanges();\n }\n });\n }\n }\n ngOnDestroy(): void {\n const keys = Object.keys(this.Subscriptions);\n keys.forEach((key) => {\n this.Subscriptions[key].unsubscribe();\n });\n }\n translateCaption(key) {\n TranslationDialog.ShowDialog(key);\n }\n SettingsChanged() {\n this.SelectedItemValue.ValuesChanged.next('Columns');\n }\n\n \n\n ResetWidth(SelectedColumn) {\n SelectedColumn.Width = new LayoutUnit();\n this.SettingsChanged();\n }\n nodeSelect(event) {\n let selectedNode = event.node;\n let selectedColumn = event.node.data;\n if (this.SelectedTreeNodes.indexOf(event.node) > -1) {\n let col = selectedColumn;\n col['Caption'] = col['Name'];\n col['IsVisible'] = true;\n col['FetchData'] = true;\n col['ParentIsList'] = this.CheckParentIsList(selectedNode);\n if (!this.SelectedItemValue.Columns) {\n this.SelectedItemValue.Columns = [];\n }\n this.SelectedItemValue.Columns.push(col)\n } else {\n const node = this.SelectedItemValue.Columns.find((col) => selectedColumn.Name == col.Name);\n this.SelectedItemValue.Columns.splice(this.SelectedItemValue.Columns.indexOf(node), 1);\n }\n this.SelectedColumns = this.SelectedItemValue.Columns.filter((value) => value.FetchData);\n // console.log(\"sort columnnn ---> \", this.SortColumn)\n this.datatableComService.setSortColumn(this.SortColumn);\n this.datatableComService.setSortOrder(this.SortOrder);\n this.SettingsChanged();\n }\n sortColumnChanged(event){\n const {value} = event;\n this.SortColumn = value;\n this.datatableComService.setSortColumn(value);\n }\n sortOrderChanged(event){\n const {value} = event;\n this.SortOrder = value;\n this.datatableComService.setSortOrder(value);\n }\n CheckParentIsList(node) {\n let retVal = false;\n if (node && node.parent) {\n retVal = node.parent.data.IsList;\n if (retVal) {\n return retVal;\n }\n if (node.parent.parent) {\n retVal = this.CheckParentIsList(node.parent.parent);\n }\n }\n return retVal;\n }\n showIconDialog() {\n if (this.SelectedColumn) {\n BaseDialog.ShowDialogAsync({\n ContentType: DataTableIconsMappingDialog,\n InitArgs: { Column: this.SelectedColumn },\n Title: '@@IconMapping',\n AutoFocus: false\n }).then((x) => {\n if (x == DialogResult.Ok) {\n this.SettingsChanged();\n }\n });\n }\n }\n}\n\n@Component({\n selector: 'datatable-icons-mapping-dialog',\n templateUrl: './datatable.icons.mapping.dialog.html',\n styleUrls: ['./datatable.icons.mapping.dialog.css'],\n})\nexport class DataTableIconsMappingDialog implements OnInit, OnDestroy {\n Column;\n ColumnType;\n Values = [];\n Icons = [];\n DefaultIcon;\n IsNumber = false;\n IsDate = false;\n IsFixed = false;\n IconSub;\n\n ngOnInit(): void {\n this.IconSub = MediaService.IconList.subscribe((result) => {\n const icons = [];\n if (result) {\n result.forEach((icon) => {\n icons.push({ Caption: icon, Icon: icon, Value: icon });\n });\n }\n this.Icons = icons;\n });\n if (this.Column) {\n this.DefaultIcon = this.Column.DefaultIcon;\n const values = [];\n const settings = this.Column.IconMapping ?? {};\n this.ColumnType = this.Column.Type2;\n switch (this.ColumnType) {\n case '876cf188-243b-49ed-91ab-b2cf27216a30':\n this.IsFixed = true;\n if (this.Column.Type3 !== '00000000-0000-0000-0000-000000000000') {\n EnumHelper.GetEnumValues(this.Column.Type3).then((data) => {\n data.forEach(x => {\n values.push({\n Key: x.Value,\n Caption: x.Caption,\n Value: settings[x.Value]\n });\n });\n });\n }\n break;\n case '02414483-3194-474d-a3d1-0a1a8a36a9e0':\n this.IsFixed = true;\n values.push({\n Key: 'true',\n Caption: 'true',\n Value: settings['true']\n });\n values.push({\n Key: 'false',\n Caption: 'false',\n Value: settings['false']\n });\n break;\n case 'a2eb35c4-56d5-4acc-a58e-ef855cb5086b':\n case 'c02230ee-05fb-46d2-ab58-5b9dde1f32d5':\n case 'a4299f61-eb3f-4b29-8c4e-144458d17048':\n this.IsNumber = true;\n Object.keys(settings).forEach(k => {\n const splits = k.split('|');\n values.push({\n From: splits[0],\n To: splits[1],\n Value: settings[k]\n });\n });\n break;\n case 'cfcb4295-9d1e-49b4-b466-3fe74d1b0c69':\n this.IsDate = true;\n Object.keys(settings).forEach(k => {\n const val = {\n From: null,\n To: null,\n Value: settings[k]\n };\n const splits = k.split('|');\n if (splits[0]) {\n val.From = new Date(splits[0]);\n }\n if (splits[1]) {\n val.To = new Date(splits[1]);\n }\n values.push(val);\n });\n break;\n default:\n Object.keys(settings).forEach(k => {\n values.push({\n Key: k,\n Value: settings[k]\n });\n });\n break;\n }\n this.Values = values;\n }\n }\n ngOnDestroy(): void {\n this.IconSub.unsubscribe();\n this.IconSub = null;\n }\n Initialize(args) {\n if (args) {\n this.Column = args.Column;\n }\n }\n OnDialogButtonClickAction(button: DialogButton) {\n if (button == DialogButton.Ok && this.Column) {\n this.Column.DefaultIcon = this.DefaultIcon;\n const settings = {};\n if (this.IsNumber) {\n this.Values.forEach(x => {\n if (x.Value) {\n settings[(x.From ?? '') + '|' + (x.To ?? '')] = x.Value;\n }\n });\n } else if (this.IsDate) {\n this.Values.forEach(x => {\n if (x.Value) {\n let from = '';\n if (x.From instanceof Date) {\n from = x.From.toISOString();\n }\n let to = '';\n if (x.To instanceof Date) {\n to = x.To.toISOString();\n }\n settings[from + '|' + to] = x.Value;\n }\n });\n } else {\n this.Values.forEach(x => {\n if (x.Value) {\n settings[x.Key] = x.Value;\n }\n });\n }\n this.Column.IconMapping = settings;\n }\n return true;\n }\n addValue() {\n this.Values.push({});\n }\n removeValue(i) {\n this.Values.splice(i, 1);\n }\n}\n\n@Component({\n selector: 'datatable-fixedcolumns-menu-tab',\n templateUrl: './datatable.fixedcolumns.menu.tab.html',\n styleUrls: ['./datatable.menu.tab.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DataTableFixedColumnsMenuTab extends ALayoutMenuTab implements OnDestroy {\n\n public static CheckOnChange(menuItem) {\n const selected = LayoutService.SelectedItem.getValue();\n if (selected && selected.ElementType === 'datatable') {\n menuItem.Visible = true;\n menuItem.Expanded = true;\n } else {\n menuItem.Visible = false;\n menuItem.Expanded = false;\n }\n }\n}\n\n@Component({\n selector: 'datatable-style-menu-tab',\n templateUrl: './datatable.style.menu.tab.html',\n styleUrls: ['./datatable.menu.tab.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DataTableStyleMenuTab extends ALayoutMenuTab implements OnDestroy {\n //#region SelectedItem\n SelectedItemValue;\n\n @Input()\n get SelectedItem() {\n return this.SelectedItemValue;\n }\n set SelectedItem(val) {\n this.SelectedItemValue = val;\n if (this.SelectedItemValue && this.SelectedItemValue.CustomBaseStyle == null) {\n this.SelectedItemValue.CustomBaseStyle = {};\n } else {\n const cbs = this.SelectedItemValue.CustomBaseStyle;\n if (cbs.HeaderBackground) {\n cbs.HeaderBackground = Color.FromObject(cbs.HeaderBackground);\n }\n if (cbs.HeaderForeground) {\n cbs.HeaderForeground = Color.FromObject(cbs.HeaderForeground);\n }\n if (cbs.Line) {\n cbs.Line = Color.FromObject(cbs.Line);\n }\n if (cbs.StickyBackground) {\n cbs.StickyBackground = Color.FromObject(cbs.StickyBackground);\n }\n }\n }\n\n @Output() SelectedItemChange = new EventEmitter();\n //#endregion\n\n public static CheckOnChange(menuItem) {\n const selected = LayoutService.SelectedItem.getValue();\n if (selected && selected.ElementType === 'datatable') {\n menuItem.Visible = true;\n menuItem.Expanded = true;\n } else {\n menuItem.Visible = false;\n menuItem.Expanded = false;\n }\n }\n constructor(cdRef: ChangeDetectorRef, private worker: WorkerService) {\n super(cdRef);\n }\n\n ngOnDestroy(): void {\n const keys = Object.keys(this.Subscriptions);\n keys.forEach((key) => {\n this.Subscriptions[key].unsubscribe();\n });\n }\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from '@angular/core';\nimport { SelectItem } from 'primeng/api';\nimport { ArrayHelpers } from '../../../helpers/array.helpers';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { FilterHelper } from '../../../helpers/filter.helper';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { DialogButton } from '../../../models/enums/dialogbutton.enum';\nimport { EventActionType } from '../../../models/enums/eventactiontype.enum';\nimport { EventAction } from '../../../models/layoutbase.model';\nimport { WorkflowData } from '../../../models/workflow/workflow.model';\nimport { LayoutService } from '../../../services/layout.service';\nimport { NavigationService } from '../../../services/navigation.service';\nimport { BaseDialog } from '../../../components/dialogs/basedialog/base.dialog';\nimport { TemplateLayout } from '../../../components/layouts/template/template.layout';\nimport { WorkflowEditDialog } from '../../../workflow/workflow.edit.dialog';\nimport { APropertyTab } from '../properties/properties.menu.tab';\nimport { BehaviorSubject } from 'rxjs';\nimport { MatDialog } from '@angular/material/dialog';\nimport { LayoutChangeType } from '../../../models/enums/layoutchangetype.enum';\n\n@Component({\n selector: 'events-menu-tab',\n templateUrl: './events.menu.tab.html',\n styleUrls: ['./events.menu.tab.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EventsMenuTab extends APropertyTab {\n static BadgeValue: BehaviorSubject = new BehaviorSubject(0);\n Events: SelectItem[] = [];\n SelectedEvent;\n EventHandlers = {};\n SelectedEventHandler = {};\n\n EventHandlerTypes = [];\n Workflows = null;\n Variables = null;\n Layout;\n ContentLayout;\n\n static CheckOnChange(menuItem) {\n const selected = LayoutService.SelectedItem.getValue();\n menuItem.Visible = selected && selected.Events && selected.Events.length > 0;\n if (selected && selected.Events) {\n let count = 0;\n selected.Events.forEach((event) => {\n if (event && event.Handlers) {\n count += event.Handlers.length;\n }\n })\n EventsMenuTab.BadgeValue.next(count);\n } else {\n EventsMenuTab.BadgeValue.next(0);\n }\n \n }\n\n constructor(cdRef: ChangeDetectorRef, public dialog: MatDialog) {\n super(cdRef);\n this.EventHandlerTypes = EnumHelper.GetDropdownValues(EventActionType);\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n const page = NavigationService.SelectedPage.getValue();\n if (page === 'content' || page === 'widget' || page === 'template' || page === 'output' || page === 'layout') {\n this.Subscriptions.push(LayoutService.SelectedLayout.subscribe((layout) => {\n this.ContentLayout = layout;\n this.Layout = LayoutHelper.GetActiveResolution(layout);\n \n this.updateWorkflowItems();\n this.updateVariables();\n }));\n }\n this.Subscriptions.push(LayoutService.LayoutChanged.subscribe((result) => {\n if (result && (\n result.LayoutChangeType == LayoutChangeType.WorkflowAdded ||\n result.LayoutChangeType == LayoutChangeType.WorkflowChange ||\n result.LayoutChangeType == LayoutChangeType.WorkflowRemoved\n )) {\n this.updateWorkflowItems();\n }\n }))\n }\n\n private getNode(v): any {\n let caption = '';\n if (v.Action) {\n switch (v.ActionType) {\n case EventActionType.Workflow:\n if (this.Workflows) {\n const wf = this.Workflows.find(w => w.ID === v.Action);\n if (wf) {\n caption = wf.Caption + ' ';\n }\n }\n break;\n case EventActionType.Variable:\n if (this.Variables) {\n const variable = this.Variables.find(w => w.ID === v.Action);\n if (variable) {\n caption = variable.Name + ' ';\n }\n }\n break;\n }\n }\n caption += '(' + EventActionType[v.ActionType] + ')';\n return {\n label: caption,\n data: v\n };\n }\n ActiveChanged(ev, event) {\n if (!ev && event) {\n if (this.SelectedItemValue && this.SelectedItemValue.Events) {\n let item = this.SelectedItemValue.Events.find((value) => value.EventID == event.label);\n if (item) {\n item.Handlers = [];\n if (this.EventHandlers[event.label]) {\n this.EventHandlers[event.label] = item.Handlers;\n }\n this.SelectedEventHandler[event.label] = null;\n this.updateEvents();\n this.onEventChanged();\n LayoutService.RefreshTree.next(true);\n }\n }\n this.cdRef.detectChanges();\n }\n }\n onItemSet() {\n this.updateWorkflowItems();\n this.updateVariables();\n this.SelectedEvent = null;\n this.SelectedEventHandler = {};\n }\n updateEvents() {\n if (this.Workflows && this.Variables) {\n const events = [];\n this.EventHandlers = {};\n if (this.SelectedItem && this.SelectedItem.Events) {\n let index = 1;\n this.SelectedItem.Events.forEach((v) => {\n if (v) {\n const handlers = [];\n v.Handlers.forEach((h) => {\n const node = this.getNode(h);\n handlers.push(node);\n });\n this.EventHandlers[v.EventID] = handlers;\n events.push({ label: v.EventID, value: { id: index++, data: v.Handlers }, active: (v.Handlers&&v.Handlers.length > 0) });\n }\n });\n }\n this.Events = events;\n }\n }\n updateVariables() {\n this.Variables = [];\n if (this.SelectedItem && this.Layout) {\n this.Variables = FilterHelper.GetVariables(this.SelectedItem);\n this.updateEvents();\n }\n this.cdRef.detectChanges();\n }\n updateWorkflowItems() {\n this.Workflows = [];\n const workflows = [];\n if (this.SelectedItem && this.Layout) {\n let parentPath;\n if (this.Layout === this.SelectedItem) {\n parentPath = [this.Layout];\n } else {\n parentPath = MetaHelper.FindParentPath(this.Layout, this.SelectedItem);\n }\n if (parentPath) {\n let pCaption = '';\n parentPath.forEach((p) => {\n if (p.ElementType === TemplateLayout.Type) {\n pCaption += p.Name + ' - ';\n }\n if (p.Workflows) {\n p.Workflows.forEach((wf) => {\n workflows.push({\n Caption: pCaption + wf.Caption,\n ID: wf.ID\n });\n });\n }\n });\n ArrayHelpers.sortAlphabetical(workflows, 'Caption');\n }\n this.Workflows = workflows;\n this.updateEvents();\n }\n this.cdRef.detectChanges();\n }\n\n onEventChange(event) {\n if (event && event !== this.SelectedEvent) {\n this.SelectedEvent = event;\n this.SelectedEventHandler = {};\n }\n this.cdRef.detectChanges();\n }\n\n addEventHandler(id) {\n if (this.EventHandlers[id]) {\n const ev = new EventAction();\n const node = this.getNode(ev);\n if (this.EventHandlers[id]) {\n this.EventHandlers[id].push(node);\n }\n let event = this.Events.find((value) => value.label == id);\n if (event && event.value) {\n event.value.data.push(node.data);\n }\n this.SelectedEventHandler[id] = node;\n this.onEventChanged();\n LayoutService.RefreshTree.next(true);\n }\n }\n\n removeEventHandler(id) {\n if (this.EventHandlers[id]) {\n let event = this.Events.find((value) => value.label == id);\n if (event && event.value) {\n let ev = event.value.data.find((value) => value == this.SelectedEventHandler[id].data);\n if (ev) {\n event.value.data.splice(event.value.data.indexOf(ev), 1);\n }\n }\n const index = this.EventHandlers[id].indexOf(this.SelectedEventHandler[id]);\n if (index > -1) {\n this.EventHandlers[id].splice(index, 1);\n if (index < this.EventHandlers[id].length) {\n this.SelectedEventHandler[id] = this.EventHandlers[id][index];\n } else if (this.EventHandlers[id].length > 0) {\n this.SelectedEventHandler[id] = this.EventHandlers[id][this.EventHandlers[id].length - 1];\n } else {\n this.SelectedEventHandler[id] = null;\n }\n this.onEventChanged();\n LayoutService.RefreshTree.next(true);\n }\n\n }\n }\n\n onHandlerChanged(id) {\n if (this.SelectedEventHandler[id]) {\n const node = this.getNode(this.SelectedEventHandler[id].data);\n this.SelectedEventHandler[id].label = node.label;\n this.onEventChanged();\n }\n }\n UpdateBadge() {\n if (this.SelectedItemValue && this.SelectedItemValue.Events) {\n let count = 0;\n this.SelectedItemValue.Events.forEach((event) => {\n if (event && event.Handlers) {\n count += event.Handlers.length;\n }\n })\n EventsMenuTab.BadgeValue.next(count);\n } else {\n EventsMenuTab.BadgeValue.next(0);\n }\n }\n onEventChanged() {\n if (this.SelectedItemValue) {\n LayoutService.OnLayoutPropertyChanged(this.SelectedItemValue.ID, 'Events', this.SelectedItemValue.Events);\n this.UpdateBadge();\n }\n this.cdRef.detectChanges();\n }\n\n EditWorkflow(item) {\n const wf = this.Layout.Workflows.find(w => w.ID === item.data.Action);\n if (wf) {\n this.showDialog(wf, () => {\n LayoutService.OnLayoutWorkflowsChanged({\n LayoutID: this.Layout.ID,\n Workflows: [JSON.stringify(wf)]\n });\n });\n }\n }\n showDialog(workflow, handler) {\n if (workflow) {\n const dialogRef = this.dialog.open(WorkflowEditDialog, {\n data: { Data: workflow.Data, Layout: this.Layout },\n panelClass: 'workflowedit-dialog-container',\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result instanceof WorkflowData) {\n workflow.Data = result;\n if (typeof handler === 'function') {\n handler();\n }\n }\n this.cdRef.detectChanges();\n return true;\n });\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { PROPERTIES } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { APropertyTab } from '../properties/properties.menu.tab';\n\n@Component({\n selector: 'generic-menu-tab',\n templateUrl: './generic.menu.tab.html',\n styleUrls: ['./generic.menu.tab.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GenericMenuTab extends APropertyTab {\n IsGrid = false;\n //#region PropertyGroup\n PropertyGroupValue;\n @Input()\n get PropertyGroup() {\n return this.PropertyGroupValue;\n }\n set PropertyGroup(val) {\n this.PropertyGroupValue = val;\n this.Sections = null;\n this.Properties = null;\n this.RawProperties = null;\n if (val) {\n const secObj = {}\n if (val.PropertyGroup) {\n this.IsGrid = (val.PropertyGroup.Display == PropertyGroupDisplay.Grid);\n if (val.PropertyGroup.Sections) {\n const sections = [];\n val.PropertyGroup.Sections.forEach((section) => {\n const sec = {\n ...section,\n Properties: []\n };\n sections.push(sec);\n secObj[sec.ID] = sec;\n });\n this.Sections = sections;\n }\n }\n const rawProperties = [];\n const properties = [];\n PROPERTIES.forEach(v => {\n if (v.Parent == val.ID) {\n const prop = {\n ...v\n };\n rawProperties.push(prop);\n if (v.Section == null) {\n properties.push(prop);\n } else {\n const sec = secObj[v.Section];\n if (sec) {\n sec.Properties.push(prop);\n }\n }\n }\n });\n this.RawProperties = rawProperties;\n this.Properties = properties;\n }\n this.PropertyGroupChange.emit(this.PropertyGroupValue);\n }\n @Output() PropertyGroupChange = new EventEmitter();\n //#endregion\n\n //#region SelectedItem\n SelectedItemValue;\n @Input()\n get SelectedItem() {\n return this.SelectedItemValue;\n }\n set SelectedItem(val) {\n this.SelectedItemValue = val;\n if (this.SelectedItemValue && this.Properties) {\n this.CheckVisibility();\n this.Properties.forEach((item) => {\n this.ComponentAttached(null, item);\n });\n if (this.Sections && this.Sections.length > 0) {\n this.Sections.forEach((section) => {\n if (section.Properties) {\n section.Properties.forEach((item) => {\n this.ComponentAttached(null, item);\n })\n }\n })\n }\n }\n this.SelectedItemChange.emit(this.SelectedItemValue);\n this.cdRef.detectChanges();\n }\n\n\n\n @Output() SelectedItemChange = new EventEmitter();\n //#endregion\n\n //#region Context\n ContextValue;\n @Input()\n get Context() {\n return this.ContextValue;\n }\n set Context(val) {\n this.ContextValue = val;\n this.ContextChange.emit(this.ContextValue);\n }\n\n @Output() ContextChange = new EventEmitter();\n //#endregion\n\n Properties = null;\n RawProperties = null;\n Sections = null;\n\n ngOnInit() {\n super.ngOnInit();\n this.Subscriptions.push(LayoutService.LayoutChanged.subscribe(() => {\n this.CheckVisibility();\n }))\n this.Subscriptions.push(LayoutService.SelectedObject.subscribe((val) => {\n this.CheckVisibility();\n }))\n }\n\n CheckVisibility() {\n if (this.SelectedItemValue && this.RawProperties) {\n const secObj = {}\n if (this.Sections) {\n this.Sections.forEach(sec => {\n sec.Properties = [];\n secObj[sec.ID] = sec;\n });\n }\n const properties = [];\n this.RawProperties.forEach(v => {\n if (!v.CheckVisibility || v.CheckVisibility(this.SelectedItemValue, null, this.ContextValue)) {\n if (v.Section == null) {\n properties.push(v);\n } else {\n const sec = secObj[v.Section];\n if (sec) {\n sec.Properties.push(v);\n }\n }\n }\n });\n this.Properties = properties;\n this.cdRef.detectChanges();\n }\n }\n static CheckOnChange(menuItem) {\n menuItem.Visible = false;\n }\n SetBinding(item, SelectedItem) {\n if (SelectedItem) {\n item.instance.SelectedItem = SelectedItem;\n if (item.ID) {\n if (SelectedItem[item.ID] == null && item.Type != null) {\n SelectedItem[item.ID] = new item.Type();\n }\n if (item.Type == null || typeof (item.Type) == 'string') {\n item.instance.PathBinding = item.ID;\n } else {\n item.instance.DataSource = SelectedItem[item.ID];\n }\n } else {\n item.instance.DataSource = SelectedItem;\n }\n }\n }\n ComponentAttached(event, item) {\n if (event && item) {\n item.instance = event.instance;\n }\n if (this.SelectedItem && item && item.instance) {\n let SelectedItem = this.SelectedItem;\n if (item.DataSourceSub) {\n item.DataSourceSub.unsubscribe();\n }\n if (item.DataSource) {\n item.DataSourceSub = item.DataSource.subscribe((value) => {\n SelectedItem = value;\n this.SetBinding(item, SelectedItem);\n })\n } else {\n this.SetBinding(item, SelectedItem);\n }\n if (item.InitArgs) {\n item.instance.SetProperties(item.InitArgs);\n }\n if (item.Properties) {\n item.instance.Properties = item.Properties;\n }\n if (!item.instance.ExternalSubscriptions) {\n item.instance.ExternalSubscriptions = {};\n }\n if (item.instance.StyleChanged) {\n if (item.instance.ExternalSubscriptions[\"StyleChanged\"]) {\n item.instance.ExternalSubscriptions[\"StyleChanged\"].unsubscribe();\n }\n item.instance.ExternalSubscriptions[\"StyleChanged\"] = item.instance.StyleChanged.subscribe((val) => {\n this.CheckVisibility();\n this.onStyleChanged(item.ID);\n });\n }\n this.cdRef.detectChanges();\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { LayoutElement, MultiLayoutElement } from '../../../models/layoutelement.model';\nimport { LayoutService } from '../../../services/layout.service';\nimport { NavigationService } from '../../../services/navigation.service';\nimport { ALayoutMenuTab } from '../../../appbuilder/common/menutabcontrol/menu.tab.control';\nimport { LayoutTree } from '../../../components/controls/layout.tree';\n\n@Component({\n selector: 'layout-menu-tab',\n templateUrl: './layout.menu.tab.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutMenuTab extends ALayoutMenuTab {\n private static LayoutTreeState: BehaviorSubject = new BehaviorSubject(null);\n\n ChangeRootType = false;\n Elements;\n @ViewChild('treeControl') tree;\n\n ngOnInit() {\n super.ngOnInit();\n this.Subscriptions.push(NavigationService.SelectedPage.subscribe((page) => {\n const newCRT = page === 'content';\n if (newCRT !== this.ChangeRootType) {\n this.ChangeRootType = newCRT;\n this.cdRef.detectChanges();\n }\n }));\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n let state = null;\n if (this.Elements) {\n if (this.Layout) {\n state = {\n LayoutKey: this.Layout._key,\n ExpandStates: {}\n };\n LayoutTree.FillState(this.Elements, state.ExpandStates);\n }\n this.Elements = null;\n }\n LayoutMenuTab.LayoutTreeState.next(state);\n }\n\n ItemSelected(item) {\n if (item) {\n LayoutService.SelectedItem.next(item.data);\n } else {\n LayoutService.SelectedItem.next(null);\n }\n }\n ItemsSelected(item) {\n if (item && item.length > 1) {\n const list: LayoutElement[] = [];\n const positions = [];\n item.forEach((val) => {\n list.push(val.data);\n let element = document.getElementById('LE_' + val.data.ID);\n if (element) {\n positions.push({ rect: element.getBoundingClientRect(), element: val.data });\n }\n });\n const element = new MultiLayoutElement();\n element.Name = 'MultiSelect';\n element.LayoutElements = list;\n LayoutService.SelectedItem.next(element);\n // todo create layoutElment with list\n LayoutService.SelectedItems.next(list);\n //if (positions.length > 0) {\n // LayoutService.SelectedItemsPositon.next(positions);\n //}\n } else {\n LayoutService.SelectedItems.next(null);\n }\n }\n\n onRefresh(nodes) {\n if (nodes) {\n if (this.Elements) {\n this.Elements = nodes;\n } else {\n this.Elements = nodes;\n if (this.Layout) {\n const state = LayoutMenuTab.LayoutTreeState.getValue();\n if (state && state.LayoutKey === this.Layout._key && state.ExpandStates) {\n LayoutTree.ApplyState(nodes, state.ExpandStates);\n }\n }\n }\n }\n }\n CollapseAll() {\n if (this.tree) {\n this.tree.changeExpandState(false);\n }\n }\n OpenAll() {\n if (this.tree) {\n this.tree.changeExpandState(true);\n }\n }\n\n ChangeExpanded(items, value) {\n if (items && items.length > 0) {\n items.forEach((item) => {\n if (item.Children && item.Children.length > 0) {\n item.IsExpanded = value;\n this.ChangeExpanded(item.Children, value);\n }\n });\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { AdvancedFormulaParser } from '../../../helpers/formula.parser';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { FormulaNodeInformation, VariablesNodeInformation } from '../../../models/basic/formulaEditor.model';\nimport { FormulaInputMode } from '../../../models/enums/formulainputmode.enum';\nimport { Order } from '../../../models/enums/order.enum';\nimport { VariableDisplay } from '../../../models/enums/variabledisplay.enum';\nimport { FormulaEditorDialog } from '../../../components/common/formulaEditor/formulaEditor.control';\nimport { ALayoutMenuTab } from '../../../appbuilder/common/menutabcontrol/menu.tab.control';\nimport { APropertyTab } from '../properties/properties.menu.tab';\n\n@Component({\n selector: 'simple-listbox-menu-tab',\n templateUrl: './listbox.menu.tab.html',\n styleUrls: ['./listbox.menu.tab.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SimpleListBoxMenuTab extends APropertyTab {\n\n DisplayFormula = '';\n Variables = [];\n TablePropertiesValue;\n Order;\n\n @Input()\n get TableProperties() {\n return this.TablePropertiesValue;\n }\n set TableProperties(val) {\n this.TablePropertiesValue = val;\n }\n\n constructor(cdRef: ChangeDetectorRef) {\n super(cdRef);\n this.Order = EnumHelper.GetDropdownValues(Order);\n }\n\n displayMemberChanged() {\n if (this.SelectedItemValue && this.SelectedItemValue.Element &&\n typeof this.SelectedItemValue.Element.UpdateCaptionGetter === 'function') {\n this.SelectedItemValue.Element.UpdateCaptionGetter();\n }\n }\n\n onLabelChanged() {\n if (this.SelectedItemValue) {\n const parser = new AdvancedFormulaParser();\n parser.SetVariables(this.Variables, FormulaInputMode.VariableName);\n try {\n this.SelectedItemValue.DisplayFormula = parser.Parse(this.DisplayFormula);\n } catch {\n if (this.SelectedItemValue.DisplayFormula) {\n const formula = FormulaNodeInformation.ToFormulaNodeInformation(this.SelectedItemValue.DisplayFormula);\n if (formula) {\n this.DisplayFormula = formula.ToString(null, VariableDisplay.NodeName);\n } else {\n this.DisplayFormula = '';\n this.SelectedItemValue.DisplayFormula = null;\n }\n }\n }\n this.displayMemberChanged();\n this.onStyleChanged('DisplayFormula');\n }\n }\n\n editFormula() {\n if (this.SelectedItemValue) {\n FormulaEditorDialog.ShowDialog({\n Variables: this.Variables,\n Formula: this.DisplayFormula,\n InputMode: FormulaInputMode.VariableName\n }, (r) => {\n if (r) {\n this.DisplayFormula = r.Formula;\n this.onLabelChanged();\n }\n return true;\n });\n }\n }\n}\n\n@Component({\n selector: 'listbox-menu-tab',\n templateUrl: './listbox.menu.tab.html',\n styleUrls: ['./listbox.menu.tab.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ListBoxMenuTab extends ALayoutMenuTab {\n\n DisplayFormula = '';\n Variables = [];\n TableProperties;\n Order;\n DataBindingChangedSubscription;\n\n constructor(cdRef: ChangeDetectorRef) {\n super(cdRef);\n this.Order = EnumHelper.GetDropdownValues(Order);\n }\n\n onItemSet() {\n if (this.DataBindingChangedSubscription != null) {\n this.DataBindingChangedSubscription.unsubscribe();\n this.DataBindingChangedSubscription = null;\n }\n if (this.SelectedItemValue.DataBindingChanged) {\n this.DataBindingChangedSubscription = this.SelectedItem.DataBindingChanged.subscribe((Property) => {\n this.LoadTableProperties();\n });\n }\n this.LoadTableProperties();\n }\n\n onLayoutSet() {\n this.LoadTableProperties();\n }\n\n LoadTableProperties() {\n this.DisplayFormula = '';\n this.Variables = [];\n this.TableProperties = null;\n const sel = this.SelectedItemValue;\n if (sel) {\n if (this.Layout) {\n MetaHelper.FindDataBindingProperties(this.Layout, sel).then(result => {\n if (result) {\n const fields = result.Table.Fields;\n if (fields) {\n const variables = [];\n fields.forEach(field => {\n const vni = new VariablesNodeInformation();\n vni.VariableID = field.ID;\n vni.Name = field.TranslatedCaption;\n variables.push(vni);\n });\n this.Variables = variables;\n }\n this.TableProperties = result.Table;\n this.cdRef.detectChanges();\n }\n });\n }\n if (sel.DisplayFormula) {\n const formula = FormulaNodeInformation.ToFormulaNodeInformation(sel.DisplayFormula);\n if (formula) {\n this.DisplayFormula = formula.ToString(null, VariableDisplay.NodeName);\n }\n }\n }\n }\n\n displayMemberChanged() {\n if (this.SelectedItemValue && this.SelectedItemValue.Element &&\n typeof this.SelectedItemValue.Element.UpdateCaptionGetter === 'function') {\n this.SelectedItemValue.Element.UpdateCaptionGetter();\n }\n }\n\n onLabelChanged() {\n if (this.SelectedItemValue) {\n const parser = new AdvancedFormulaParser();\n parser.SetVariables(this.Variables, FormulaInputMode.VariableName);\n try {\n this.SelectedItemValue.DisplayFormula = parser.Parse(this.DisplayFormula);\n } catch {\n if (this.SelectedItemValue.DisplayFormula) {\n const formula = FormulaNodeInformation.ToFormulaNodeInformation(this.SelectedItemValue.DisplayFormula);\n if (formula) {\n this.DisplayFormula = formula.ToString(null, VariableDisplay.NodeName);\n } else {\n this.DisplayFormula = '';\n this.SelectedItemValue.DisplayFormula = null;\n }\n }\n }\n this.displayMemberChanged();\n this.onStyleChanged('DisplayFormula');\n }\n }\n\n editFormula() {\n if (this.SelectedItemValue) {\n FormulaEditorDialog.ShowDialog({\n Variables: this.Variables,\n Formula: this.DisplayFormula,\n InputMode: FormulaInputMode.VariableName\n }, (r) => {\n if (r) {\n this.DisplayFormula = r.Formula;\n this.onLabelChanged();\n }\n return true;\n });\n }\n }\n}\n\n@Component({\n selector: 'listbox-property-menu-tab',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ListBoxPropertyMenuTab extends APropertyTab {\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from '@angular/core';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { TranslateHelper } from '../../../helpers/injector.helper';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { VariableHelper } from '../../../helpers/variable.helper';\nimport { EventActionType } from '../../../models/enums/eventactiontype.enum';\nimport { EventAction } from '../../../models/layoutbase.model';\nimport { GLOBALEVENTREGISTRY } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MetaService } from '../../../services/meta.service';\nimport { NavigationService } from '../../../services/navigation.service';\nimport { UserSettingsService } from '../../../services/usersettings.service';\nimport { ALayoutMenuTab } from '../../../appbuilder/common/menutabcontrol/menu.tab.control';\nimport { CapsuleHelper } from '../../../helpers/capsule.helper';\n\n@Component({\n selector: 'pagesettings-menu-tab',\n templateUrl: './pagesettings.menu.tab.html',\n styleUrls: ['./pagesettings.menu.tab.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PageSettingsMenuTab extends ALayoutMenuTab {\n //#region AutoSave\n SelectedAutoSaveVariable;\n //#endregion\n //#region ProfileVariable\n SelectedProfileVariable;\n //#endregion\n ShowVariables;\n Variables;\n Controls;\n Workflows = [];\n //#region GlobalEvents\n Events = [];\n SelectedEvent;\n SelectedEventHandler;\n EventHandlerTypes = [];\n //#endregion\n\n Types = [{ Caption: '@@Variable', Name: 'Variable' }, { Caption: '@@Control', Name: 'Control' }];\n\n SelectedLayoutEvent;\n LayoutEvents = [];\n ShowPageName = false;\n ShowCapsuleTags = false;\n\n constructor(private userSettingsService: UserSettingsService, cdRef: ChangeDetectorRef, private metaService: MetaService) {\n super(cdRef);\n this.EventHandlerTypes = EnumHelper.GetDropdownValues(EventActionType);\n }\n\n ngOnInit() {\n const page = NavigationService.SelectedPage.getValue();\n this.ShowPageName = page === 'content';\n if (page === 'content' || page === 'template') {\n CapsuleHelper.GetCapsuleTags().then(r => {\n if (r) {\n this.ShowCapsuleTags = true;\n }\n });\n }\n if (page === 'content' || page === 'widget' || page === 'template' || page === 'output' || page === 'layout') {\n this.Subscriptions.push(LayoutService.SelectedLayout.subscribe((layout) => {\n this.Layout = LayoutHelper.GetActiveResolution(layout);\n\n if (!this.Layout.LayoutEvents) {\n this.Layout.LayoutEvents = [];\n }\n this.SelectedLayoutEvent = null;\n\n if (!this.Layout.GlobalEvents) {\n this.Layout.GlobalEvents = [];\n }\n this.Events = this.Layout.GlobalEvents;\n\n GLOBALEVENTREGISTRY.forEach((event) => {\n const ev = this.Events.find((value) => event.ID == value.ID);\n if (!ev) {\n this.Events.push({\n ID: event.ID,\n Caption: event.Caption\n });\n }\n });\n\n this.FetchWorkflows(this.Layout);\n this.Variables = VariableHelper.AvailableVariables[this.Layout._Id];\n this.Controls = VariableHelper.AvailableControls[this.Layout._Id];\n }));\n }\n this.ShowVariables = (page !== 'widget' && page !== 'template');\n this.metaService.ReadEventInfos().subscribe(x => {\n if (x) {\n this.LayoutEvents = x;\n }\n });\n }\n\n AddAutoSaveItem() {\n if (this.Layout) {\n const item = {\n ID: null,\n Name: null,\n Type: 'Variable'\n };\n this.SelectedAutoSaveVariable = item;\n if (this.Layout.AutoSaveVariables) {\n this.Layout.AutoSaveVariables.push(item);\n } else {\n this.Layout.AutoSaveVariables = [item];\n }\n this.onAutoSaveVariablesChanged();\n }\n }\n DeleteAutoSaveItem() {\n if (this.Layout && this.Layout.AutoSaveVariables && this.SelectedAutoSaveVariable) {\n const index = this.Layout.AutoSaveVariables.indexOf(this.SelectedAutoSaveVariable);\n if (index > -1) {\n this.Layout.AutoSaveVariables.splice(index, 1);\n this.userSettingsService.RemoveByLayoutAndItemAuto(this.Layout._Id, this.SelectedAutoSaveVariable.ID).subscribe();\n this.onAutoSaveVariablesChanged();\n const length = this.Layout.AutoSaveVariables.length;\n if (length > 0) {\n if (index < length) {\n this.SelectedAutoSaveVariable = this.Layout.AutoSaveVariables[index];\n } else {\n this.SelectedAutoSaveVariable = this.Layout.AutoSaveVariables[length - 1];\n }\n } else {\n this.SelectedAutoSaveVariable = null;\n }\n }\n }\n }\n\n onAutoSaveVariablesChanged() {\n LayoutService.OnLayoutPropertyChanged(this.Layout.ID, 'AutoSaveVariables', this.Layout.AutoSaveVariables);\n }\n\n AddProfileItem() {\n if (this.Layout) {\n const item = {\n ID: null,\n Name: null,\n Type: 'Variable'\n };\n this.SelectedProfileVariable = item;\n if (this.Layout.ProfileVariables) {\n this.Layout.ProfileVariables.push(item);\n } else {\n this.Layout.ProfileVariables = [item];\n }\n this.onProfileVariablesChanged();\n }\n }\n DeleteProfileItem() {\n if (this.Layout && this.Layout.ProfileVariables && this.SelectedProfileVariable) {\n const index = this.Layout.ProfileVariables.indexOf(this.SelectedProfileVariable);\n if (index > -1) {\n this.Layout.ProfileVariables.splice(index, 1);\n this.userSettingsService.RemoveByLayoutAndItemProfile(this.Layout._Id, this.SelectedProfileVariable.ID).subscribe();\n this.onProfileVariablesChanged();\n const length = this.Layout.ProfileVariables.length;\n if (length > 0) {\n if (index < length) {\n this.SelectedProfileVariable = this.Layout.ProfileVariables[index];\n } else {\n this.SelectedProfileVariable = this.Layout.ProfileVariables[length - 1];\n }\n } else {\n this.SelectedProfileVariable = null;\n }\n }\n }\n }\n\n onProfileVariablesChanged() {\n LayoutService.OnLayoutPropertyChanged(this.Layout.ID, 'ProfileVariables', this.Layout.ProfileVariables);\n }\n\n onGlobalEventsChanged() {\n LayoutService.OnLayoutPropertyChanged(this.Layout.ID, 'GlobalEvents', this.Layout.GlobalEvents);\n }\n\n addEventHandler() {\n if (this.SelectedEvent) {\n const ev = new EventAction();\n this.SelectedEventHandler = ev;\n if (this.SelectedEvent.Handlers) {\n this.SelectedEvent.Handlers.push(ev);\n } else {\n this.SelectedEvent.Handlers = [ev];\n }\n this.onGlobalEventsChanged();\n }\n }\n removeEventHandler() {\n if (this.SelectedEvent && this.SelectedEvent.Handlers && this.SelectedEventHandler) {\n const index = this.SelectedEvent.Handlers.indexOf(this.SelectedEventHandler);\n if (index > -1) {\n this.SelectedEvent.Handlers.splice(index, 1);\n this.onGlobalEventsChanged();\n const length = this.SelectedEvent.Handlers.length;\n if (length > 0) {\n if (index < length) {\n this.SelectedEventHandler = this.SelectedEvent.Handlers[index];\n } else {\n this.SelectedEventHandler = this.SelectedEvent.Handlers[length - 1];\n }\n } else {\n this.SelectedEventHandler = null;\n }\n }\n }\n }\n SetEventLabel() {\n if (this.SelectedEventHandler) {\n this.SelectedEventHandler.Label = EventActionType[this.SelectedEventHandler.ActionType];\n if (this.SelectedEventHandler.Action) {\n if (this.SelectedEventHandler.ActionType == 0) {\n const item = this.Workflows.find((value) => value.ID == this.SelectedEventHandler.Action);\n if (item) {\n this.SelectedEventHandler.Label += ' - ' + item.Caption;\n }\n }\n if (this.SelectedEventHandler.ActionType == 1) {\n const item = this.Variables.find((value) => value.ID == this.SelectedEventHandler.Action);\n if (item) {\n this.SelectedEventHandler.Label += ' - ' + item.Name;\n }\n }\n }\n this.onGlobalEventsChanged();\n }\n }\n\n FetchWorkflows(Layout) {\n this.Workflows = [];\n if (Layout.Workflows) {\n this.Workflows = Layout.Workflows;\n }\n }\n\n ControlChanged(Selection) {\n const item = this.Controls.find((value) => value.ID == Selection.ID);\n if (item) {\n Selection.Name = item.Name;\n }\n }\n VariableChanged(Selection) {\n const item = this.Variables.find((value) => value.ID == Selection.ID);\n if (item) {\n Selection.Name = item.Name;\n }\n }\n\n addLayoutEvent() {\n if (this.Layout) {\n const ev = {\n Name: TranslateHelper.TranslatorInstance.instant('@@Neuer Eventhandler'),\n ActionType: EventActionType.Workflow\n };\n if (this.Layout.LayoutEvents) {\n this.Layout.LayoutEvents.push(ev);\n } else {\n this.Layout.LayoutEvents = [ev];\n }\n this.SelectedLayoutEvent = ev;\n this.onLayoutEventsChanged();\n }\n }\n\n removeLayoutEvent() {\n if (this.Layout && this.Layout.LayoutEvents && this.SelectedLayoutEvent) {\n const index = this.Layout.LayoutEvents.indexOf(this.SelectedLayoutEvent);\n if (index > -1) {\n this.Layout.LayoutEvents.splice(index, 1);\n this.onLayoutEventsChanged();\n if (index < this.Layout.LayoutEvents.length) {\n this.SelectedLayoutEvent = this.Layout.LayoutEvents[index];\n } else if (this.Layout.LayoutEvents.length > 0) {\n this.SelectedLayoutEvent = this.Layout.LayoutEvents[this.Layout.LayoutEvents.length - 1];\n } else {\n this.SelectedLayoutEvent = null;\n }\n }\n }\n }\n\n onLayoutEventsChanged() {\n LayoutService.OnLayoutPropertyChanged(this.Layout.ID, 'LayoutEvents', this.Layout.LayoutEvents);\n }\n\n SelectedTag;\n\n AddTag() {\n if (this.Layout) {\n const item = {\n Key: null,\n Value: null\n };\n this.SelectedTag = item;\n if (this.Layout.MetaTags) {\n this.Layout.MetaTags.push(item);\n } else {\n this.Layout.MetaTags = [item];\n }\n //this.onAutoSaveVariablesChanged();\n }\n }\n DeleteTag() {\n if (this.Layout && this.Layout.MetaTags && this.SelectedTag) {\n const index = this.Layout.MetaTags.indexOf(this.SelectedTag);\n if (index > -1) {\n this.Layout.MetaTags.splice(index, 1);\n }\n }\n }\n\n //onAutoSaveVariablesChanged() {\n // LayoutService.OnLayoutPropertyChanged(this.Layout.ID, 'AutoSaveVariables', this.Layout.AutoSaveVariables);\n //}\n}\n","import { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, EventEmitter, Input, OnDestroy, OnInit, Output\n} from '@angular/core';\nimport { UUID } from 'angular2-uuid';\nimport { ThemeHelper } from '../../../helpers/theme.helpers';\nimport { PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\n\n@Component({\n selector: 'properties-menu-tab',\n templateUrl: './properties.menu.tab.html',\n styles: ['.objectHeader { padding-left: 24px; }'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PropertiesMenuTab implements OnInit, OnDestroy {\n\n Items = [];\n DynamicItems = [];\n Subscriptions = [];\n SelectedItem;\n FirstTime = true;\n\n static CheckVisible(): boolean {\n const selected = LayoutService.SelectedItem.getValue();\n if (selected) {\n return true;\n }\n const sel = LayoutService.SelectedItems.getValue();\n if (sel) {\n return true;\n }\n return false;\n }\n constructor(public cdRef: ChangeDetectorRef) { }\n\n ngOnInit(): void {\n this.RefreshItems();\n this.Subscriptions.push(LayoutService.SelectedItem.subscribe(x => {\n this.SelectedItem = x;\n this.updateItems();\n this.cdRef.detectChanges();\n }));\n this.Subscriptions.push(LayoutService.PropertyPanelsChanged.subscribe(() => {\n this.RefreshItems();\n this.updateItems();\n this.cdRef.detectChanges();\n }));\n }\n RefreshItems() {\n const propItems = [];\n const dynItems = [];\n PROPERTYGROUPS.forEach(x => {\n const item: any = {\n SID: x.SID ? x.SID : UUID.UUID(),\n ID: x.ID,\n Caption: x.Caption,\n Visible: false,\n PropertyGroup: x,\n Index: x.Index,\n Badge: x.Badge,\n BadgeSub: x.BadgeSub,\n BadgeColor: x.BadgeColor\n };\n if (x.Content) {\n item.Content = new ComponentPortal(x.Content);\n item.Visible = true;\n }\n if (typeof x.CheckOnChange === 'function') {\n item.CheckOnChange = x.CheckOnChange;\n dynItems.push(item);\n }\n propItems.push(item);\n });\n this.DynamicItems = dynItems;\n this.Items = propItems;\n }\n\n ngOnDestroy(): void {\n if (this.Subscriptions) {\n this.Subscriptions.forEach((sub) => {\n sub.unsubscribe()\n });\n }\n }\n\n updateItems() {\n let expanded;\n this.DynamicItems.forEach(x => {\n x.CheckOnChange(x);\n if (x.Visible && x.Expanded && !this.FirstTime) {\n x.Expanded = false;\n expanded = x;\n }\n });\n this.Items = [...this.Items];\n if (expanded) {\n expanded.Expanded = !this.Items.some(x => x.Visible && x.Expanded);\n }\n this.FirstTime = false;\n }\n}\n@Directive()\nexport abstract class APropertyTab implements OnInit, OnDestroy {\n\n Subscriptions = [];\n //#region Internal\n InternalValue = true;\n @Input()\n get Internal() {\n return this.InternalValue;\n }\n set Internal(val) {\n\n this.InternalValue = val;\n this.InternalChange.emit(this.InternalValue);\n }\n @Output() InternalChange = new EventEmitter();\n //#endregion\n //#region SelectedItem\n SelectedItemValue;\n @Input()\n get SelectedItem() {\n return this.SelectedItemValue;\n }\n set SelectedItem(val) {\n this.SelectedItemValue = val;\n this.SelectedItemChange.emit(this.SelectedItemValue);\n this.cdRef.detectChanges();\n }\n\n @Output() SelectedItemChange = new EventEmitter();\n //#endregion\n //#region SelectedItems\n SelectedItemsValue;\n @Input()\n get SelectedItems() {\n return this.SelectedItemsValue;\n }\n set SelectedItems(val) {\n this.SelectedItemsValue = val;\n this.SelectedItemsChange.emit(this.SelectedItemsValue);\n this.cdRef.detectChanges();\n }\n\n @Output() SelectedItemsChange = new EventEmitter();\n //#endregion\n ActiveTheme = ThemeHelper.AcitveTheme;\n @Output() StyleChanged = new EventEmitter();\n\n SelectedItemSubscription;\n\n constructor(public cdRef: ChangeDetectorRef) {}\n\n ngOnInit() {\n if (this.Internal) {\n if (this.SelectedItemSubscription) {\n this.SelectedItemSubscription.unsubscribe();\n }\n this.SelectedItemSubscription = LayoutService.SelectedItem.subscribe((item) => {\n if (item) {\n this.SelectedItem = item;\n this.onItemSet();\n }\n });\n this.Subscriptions.push(this.SelectedItemSubscription);\n this.Subscriptions.push(LayoutService.SelectedItems.subscribe((items) => {\n this.SelectedItems = items;\n this.onItemSet();\n }));\n this.Subscriptions.push(LayoutService.SelectionChanged.subscribe((value) => {\n this.cdRef.detectChanges();\n }));\n this.Subscriptions.push(LayoutService.LayoutPropertyChangedEvent.subscribe((obj) => {\n if (this.SelectedItemValue) {\n const props = obj[this.SelectedItemValue.ID];\n if (Array.isArray(props) && props.length > 0) {\n this.onLayoutPropsChanged(props);\n }\n }\n this.cdRef.detectChanges();\n }));\n }\n }\n\n ngOnDestroy() {\n this.Subscriptions.forEach(x => { x.unsubscribe(); });\n }\n\n onItemSet() {\n }\n\n onLayoutPropsChanged(props) {\n }\n\n onStyleChanged(PropertyName) {\n if (this.SelectedItemValue && this.SelectedItemValue.ValuesChanged) {\n this.SelectedItemValue.ValuesChanged.next(PropertyName);\n }\n this.StyleChanged.emit();\n this.cdRef.detectChanges();\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { TranslateHelper } from '../../../helpers/injector.helper';\nimport { ContentType } from '../../../models/enums/contenttype.enum';\nimport { LayoutChangeType } from '../../../models/enums/layoutchangetype.enum';\nimport { Layout } from '../../../models/layout.model';\nimport { LayoutPropertyChangeValue } from '../../../models/layout/layout.change.model';\nimport { LayoutService } from '../../../services/layout.service';\nimport { ALayoutMenuTab } from '../../../appbuilder/common/menutabcontrol/menu.tab.control';\nimport { UUID } from 'angular2-uuid';\n\n@Component({\n selector: 'resolution-menu-tab',\n templateUrl: './resolution.menu.tab.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ResolutionMenuTab extends ALayoutMenuTab {\n SelectedResolution;\n OldContentLayout\n addResolution() {\n if (this.ContentLayout) {\n // this.OldContentLayout = this.ContentLayout;\n const item = new Layout();\n item['ElementType'] = 'grid';\n item.ContentType = ContentType.Grid;\n item['SubLayout'] = true;\n item.Name = TranslateHelper.TranslatorInstance.instant('@@New resolution');\n if (this.ContentLayout.Workflows) {\n item['Workflows'] = this.ContentLayout.Workflows\n }\n if (this.ContentLayout.Elements) {\n item[\"Elements\"] = this.ContentLayout.Elements;\n }\n if (this.ContentLayout.Resolutions) {\n this.ContentLayout.Resolutions.push(item);\n } else {\n this.ContentLayout.Resolutions = [item];\n }\n this.SelectedResolution = item;\n LayoutService.OnResolutionAdded({\n Resolution: JSON.stringify(item)\n });\n }\n }\n deleteResolution() {\n if (this.SelectedResolution && this.ContentLayout && this.ContentLayout.Resolutions) {\n const index = this.ContentLayout.Resolutions.indexOf(this.SelectedResolution);\n if (index > -1) {\n const resID = this.SelectedResolution.ID;\n let resName = resID;\n if (this.SelectedResolution.Name) {\n resName = this.SelectedResolution.Name;\n }\n this.ContentLayout.Resolutions.splice(index, 1);\n const length = this.ContentLayout.Resolutions.length;\n if (length > 0) {\n if (index < length) {\n this.SelectedResolution = this.ContentLayout.Resolutions[index];\n } else {\n this.SelectedResolution = this.ContentLayout.Resolutions[length - 1];\n }\n } else {\n this.SelectedResolution = null;\n }\n LayoutService.OnResolutionRemoved({\n ResolutionID: resID,\n ResolutionName: resName\n });\n }\n }\n }\n previewResolution() {\n const { FromWidth, ToWidth } = this.SelectedResolution;\n if (FromWidth > ToWidth) {\n LayoutService.ResolutionSelected.next(this.SelectedResolution.ToWidth);\n }\n else {\n LayoutService.ResolutionSelected.next(this.SelectedResolution.FromWidth);\n }\n\n }\n cancelPreview() {\n // if(this.OldContentLayout!==null){\n // this.ContentLayout = this.OldContentLayout;\n // }\n LayoutService.ResolutionSelected.next(null);\n }\n\n private static SetIDs(layout) {\n layout.ID = UUID.UUID();\n if (layout.Elements) {\n layout.Elements.forEach(x => ResolutionMenuTab.SetIDs(x));\n }\n }\n\n copyLayout() {\n if (this.ContentLayout) {\n const copy = plainToClass(Layout, JSON.parse(JSON.stringify(this.ContentLayout)));\n delete copy['Resolutions'];\n copy.Name = TranslateHelper.TranslatorInstance.instant('@@New resolution');\n ResolutionMenuTab.SetIDs(copy);\n if (this.ContentLayout.Resolutions) {\n this.ContentLayout.Resolutions.push(copy);\n } else {\n this.ContentLayout.Resolutions = [copy];\n }\n this.SelectedResolution = copy;\n LayoutService.OnResolutionAdded({\n Resolution: JSON.stringify(copy)\n });\n }\n }\n\n onResChanged(prop) {\n if (this.SelectedResolution) {\n const lpcv = new LayoutPropertyChangeValue();\n lpcv.ElementID = this.SelectedResolution.ID;\n lpcv.PropertyName = prop;\n lpcv.Value = this.SelectedResolution[prop];\n LayoutService.LayoutChanged.next({\n LayoutChangeType: LayoutChangeType.PropertyChange,\n ChangeValue: lpcv,\n ResolutionID: this.SelectedResolution.ID\n });\n }\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { APropertyTab } from '../../properties/properties.menu.tab';\n\n@Component({\n selector: 'workflow-menu-tab-static',\n templateUrl: './workflow.static.menu.tab.html',\n styleUrls: ['./workflow.static.menu.tab.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WorkflowMenuTabStatic extends APropertyTab {\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { ALayoutMenuTab } from '../../../appbuilder/common/menutabcontrol/menu.tab.control';\nimport { TemplateEditClient } from '../../../helpers/template.edit.client';\nimport { Layout } from '../../../models/layout.model';\nimport { LayoutEditService } from '../../../models/layout/layout.edit.client';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MetaService } from '../../../services/meta.service';\n\n@Component({\n selector: 'template-menu-tab',\n templateUrl: './template.menu.tab.html',\n styleUrls: ['./template.menu.tab.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TemplateMenuTab extends ALayoutMenuTab {\n Template;\n\n static CheckOnChange(menuItem) {\n const selected = LayoutService.SelectedItem.getValue();\n const layout = LayoutService.SelectedLayout.getValue();\n menuItem.Visible = selected && selected.ElementType == 'template' && selected != layout;\n }\n\n constructor(cdRef: ChangeDetectorRef, private metaService: MetaService) {\n super(cdRef);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.metaService.LoadTemplateInfo(this.SelectedItem._Id).subscribe(x => {\n this.Template = x;\n this.cdRef.detectChanges();\n });\n }\n\n edit() {\n if (this.Template && this.Template.CanEditInfo && this.Template.CanEditInfo.CanEdit) {\n this.metaService.LoadTemplate(this.Template.SID).subscribe(template => {\n if (template) {\n const layout = plainToClass(Layout, template);\n const editClient = new TemplateEditClient(layout, this.Template, this.metaService);\n editClient.TemplateInfoChanged.subscribe(pi => {\n this.Template = pi;\n this.cdRef.detectChanges();\n });\n LayoutEditService.SetNext(editClient, true);\n }\n });\n }\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CacheService } from '../../../cache/cache.service';\nimport { AdvancedFormulaParser } from '../../../helpers/formula.parser';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { FormulaNodeInformation, VariablesNodeInformation } from '../../../models/basic/formulaEditor.model';\nimport { FormulaInputMode } from '../../../models/enums/formulainputmode.enum';\nimport { VariableDisplay } from '../../../models/enums/variabledisplay.enum';\nimport { FormulaEditorDialog } from '../../../components/common/formulaEditor/formulaEditor.control';\nimport { ALayoutMenuTab } from '../../../appbuilder/common/menutabcontrol/menu.tab.control';\n\n@Component({\n selector: 'tree-menu-tab',\n templateUrl: './tree.menu.tab.html',\n styleUrls: ['./tree.menu.tab.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TreeMenuTab extends ALayoutMenuTab {\n TableProperties;\n DisplayFormula = '';\n Variables = [];\n Layout;\n\n onLayoutSet() {\n this.ReadTableProperties();\n }\n\n ReadTableProperties() {\n this.TableProperties = null;\n this.Variables = [];\n if (this.Layout && this.SelectedItemValue) {\n const dsID = MetaHelper.FindDataSourceID(this.Layout, this.SelectedItemValue);\n if (dsID) {\n CacheService.ReadTable(dsID).then((data) => {\n if (data) {\n const variables = [];\n this.TableProperties = data;\n this.TableProperties.Fields.forEach((column) => {\n const vni = new VariablesNodeInformation();\n vni.VariableID = column.ID;\n vni.Name = column.TranslatedCaption;\n variables.push(vni);\n });\n this.Variables = variables;\n }\n });\n }\n }\n }\n\n onLabelChanged() {\n if (this.SelectedItemValue) {\n const parser = new AdvancedFormulaParser();\n parser.SetVariables(this.Variables, FormulaInputMode.VariableName);\n try {\n this.SelectedItemValue.DisplayFormula = parser.Parse(this.DisplayFormula);\n } catch {\n if (this.SelectedItemValue.DisplayFormula) {\n const formula = FormulaNodeInformation.ToFormulaNodeInformation(this.SelectedItemValue.DisplayFormula);\n if (formula) {\n this.DisplayFormula = formula.ToString(null, VariableDisplay.NodeName);\n } else {\n this.DisplayFormula = '';\n this.SelectedItemValue.DisplayFormula = null;\n }\n }\n }\n this.onStyleChanged('DisplayFormula');\n }\n }\n\n editFormula() {\n if (this.SelectedItemValue) {\n FormulaEditorDialog.ShowDialog({\n Variables: this.Variables,\n Formula: this.DisplayFormula,\n InputMode: FormulaInputMode.VariableName\n }, (r) => {\n if (r) {\n this.DisplayFormula = r.Formula;\n this.onLabelChanged();\n }\n return true;\n });\n }\n }\n\n onItemSet() {\n this.DisplayFormula = '';\n this.ReadTableProperties();\n if (this.SelectedItemValue) {\n if (!this.SelectedItemValue.TreeSettings) {\n this.SelectedItemValue.TreeSettings = {};\n }\n if (this.SelectedItemValue.DisplayFormula) {\n const formula = FormulaNodeInformation.ToFormulaNodeInformation(this.SelectedItemValue.DisplayFormula);\n if (formula) {\n this.DisplayFormula = formula.ToString(null, VariableDisplay.NodeName);\n }\n }\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CacheService } from '../../../cache/cache.service';\nimport { AdvancedFormulaParser } from '../../../helpers/formula.parser';\nimport { FormulaNodeInformation, VariablesNodeInformation } from '../../../models/basic/formulaEditor.model';\nimport { FormulaInputMode } from '../../../models/enums/formulainputmode.enum';\nimport { VariableDisplay } from '../../../models/enums/variabledisplay.enum';\nimport { FormulaEditorDialog } from '../../../components/common/formulaEditor/formulaEditor.control';\n\n@Component({\n selector: 'tree-settings-control',\n templateUrl: './tree.settings.control.html',\n styleUrls: ['./tree.settings.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TreeSettingsControl implements OnInit {\n\n //#region Settings\n SettingsValue;\n\n @Input()\n get Settings() {\n return this.SettingsValue;\n }\n set Settings(val) {\n this.SettingsValue = val;\n this.checkParent();\n this.SettingsChange.emit(this.SettingsValue);\n }\n\n @Output() SettingsChange = new EventEmitter();\n //#endregion\n\n //#region DataSource\n DataSourceValue;\n\n @Input()\n get DataSource() {\n return this.DataSourceValue;\n }\n set DataSource(val) {\n this.DataSourceValue = val;\n const listFields = [];\n const listParents = [];\n const listIDColumns = [];\n const hasChildren = [];\n if (val) {\n const guidList = [];\n const intList = [];\n const longList = [];\n const stringList = [];\n val['Fields'].forEach((column) => {\n if (column.IsList) {\n listFields.push(column);\n } else {\n switch (column.Type) {\n case 'c4ef25dd-c176-418c-836e-f26c52d7f59c': // AttributeClass\n if (column.IsShared) {\n listParents.push(column);\n }\n break;\n case '983dad4c-fd88-4124-aed0-1dd1d177521a': // Guid\n listParents.push(column);\n guidList.push(column);\n break;\n case 'c02230ee-05fb-46d2-ab58-5b9dde1f32d5': // Int\n intList.push(column);\n break;\n case 'a4299f61-eb3f-4b29-8c4e-144458d17048': // Long\n longList.push(column);\n break;\n case '9b056ce1-ffb9-4168-9e00-977449f2f66d': // String\n stringList.push(column);\n break;\n case '02414483-3194-474d-a3d1-0a1a8a36a9e0':\n hasChildren.push(column);\n break;\n }\n }\n });\n if (guidList.length > 1) {\n listIDColumns.push(...guidList);\n }\n if (intList.length > 1) {\n listParents.push(...intList);\n listIDColumns.push(...intList);\n }\n if (longList.length > 1) {\n listParents.push(...longList);\n listIDColumns.push(...longList);\n }\n if (stringList.length > 1) {\n listParents.push(...stringList);\n listIDColumns.push(...stringList);\n }\n }\n this.ListFields = listFields;\n this.ListParents = listParents;\n this.ListIDColumns = listIDColumns;\n this.ListHasChildren = hasChildren;\n this.checkParent();\n this.DataSourceChange.emit(this.DataSourceValue);\n }\n\n @Output() DataSourceChange = new EventEmitter();\n //#endregion\n\n ListFields = [];\n ListParents = [];\n ListIDColumns = [];\n FilteredIDColumns = [];\n ListHasChildren = [];\n ChildTable;\n DisplayFormula = '';\n Variables = [];\n\n @Output() TreeSettingsChanged = new EventEmitter();\n\n ngOnInit(): void {\n this.nextLevelSelected();\n }\n\n checkParent() {\n let filtered = [];\n if (this.SettingsValue && this.SettingsValue.ParentID) {\n const parent = this.ListParents.find(x => x.ID === this.SettingsValue.ParentID);\n if (parent) {\n filtered = this.ListIDColumns.filter(x => x !== parent && x.Type === parent.Type);\n }\n }\n this.FilteredIDColumns = filtered;\n }\n\n onLabelChanged() {\n if (this.SettingsValue) {\n const parser = new AdvancedFormulaParser();\n parser.SetVariables(this.Variables, FormulaInputMode.VariableName);\n try {\n this.SettingsValue.DisplayFormula = parser.Parse(this.DisplayFormula);\n } catch {\n if (this.SettingsValue.DisplayFormula) {\n const formula = FormulaNodeInformation.ToFormulaNodeInformation(this.SettingsValue.DisplayFormula);\n if (formula) {\n this.DisplayFormula = formula.ToString(null, VariableDisplay.NodeName);\n } else {\n this.DisplayFormula = '';\n this.SettingsValue.DisplayFormula = null;\n }\n }\n }\n this.onSettingsChanged();\n }\n }\n\n editFormula() {\n if (this.SettingsValue) {\n FormulaEditorDialog.ShowDialog({\n Variables: this.Variables,\n Formula: this.DisplayFormula,\n InputMode: FormulaInputMode.VariableName\n }, (r) => {\n if (r) {\n this.DisplayFormula = r.Formula;\n this.onLabelChanged();\n }\n return true;\n });\n }\n }\n\n childListSelected() {\n if (this.SettingsValue) {\n this.SettingsValue.ParentID = null;\n this.SettingsValue.ParentCheckID = null;\n this.checkParent();\n this.onSettingsChanged();\n }\n }\n\n parentIDSelected() {\n if (this.SettingsValue) {\n this.SettingsValue.ChildList = null;\n this.SettingsValue.ParentCheckID = null;\n this.checkParent();\n this.onSettingsChanged();\n }\n }\n\n nextLevelSelected() {\n this.ChildTable = null;\n this.Variables = [];\n if (this.SettingsValue && this.SettingsValue.NextLevelID && this.DataSourceValue) {\n const field = this.DataSourceValue.Fields.find(x => x.ID === this.SettingsValue.NextLevelID);\n if (field && field.Type === 'c4ef25dd-c176-418c-836e-f26c52d7f59c') {\n CacheService.ReadTable(field.AdvancedType).then((data) => {\n if (data) {\n const variables = [];\n this.ChildTable = data;\n this.ChildTable.Fields.forEach((column) => {\n const vni = new VariablesNodeInformation();\n vni.VariableID = column.ID;\n vni.Name = column.TranslatedCaption;\n variables.push(vni);\n });\n this.Variables = variables;\n if (!this.SettingsValue.NextLevel) {\n this.SettingsValue.NextLevel = {};\n }\n }\n });\n }\n }\n this.onSettingsChanged();\n }\n\n onSettingsChanged() {\n this.TreeSettingsChanged.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { APropertyTab } from '../properties/properties.menu.tab';\nimport { VariableHelper } from '../../../helpers/variable.helper';\nimport { UUID } from 'angular2-uuid';\nimport { WorkflowNameChangeDialog } from '../../../components/dialogs/workflowdebug/workflow.name.change.dialog';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { MessageBoxResult } from '../../../models/enums/messageboxresult.enum';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'variables-menu-tab',\n templateUrl: './variables.menu.tab.html',\n styleUrls: ['./variables.menu.tab.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class VariablesMenuTab extends APropertyTab {\n static BadgeValue: BehaviorSubject = new BehaviorSubject(0)\n SelectedVariable;\n DataTypes = VariableHelper.DataTypes;\n EditOptions = {\n Edit: false,\n OldName: '',\n NewName: ''\n };\n Layout;\n TemplatePath = null;\n\n static CheckOnChange(menuItem) {\n const selectedItem = LayoutService.SelectedItem.getValue();\n if (selectedItem && selectedItem.Variables) {\n VariablesMenuTab.BadgeValue.next(selectedItem.Variables.length);\n } else {\n VariablesMenuTab.BadgeValue.next(0);\n }\n const selected = LayoutService.SelectedItems.getValue();\n if (selected && selected.length > 1) {\n menuItem.Visible = false;\n menuItem.Expanded = false;\n } else {\n menuItem.Visible = true;\n menuItem.Expanded = false;\n }\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.Subscriptions.push(LayoutService.SelectedLayout.subscribe((layout) => {\n this.Layout = layout;\n }));\n }\n\n onItemSet() {\n this.SelectedVariable = null;\n this.TemplatePath = null;\n if (this.SelectedItemValue) {\n if (!this.SelectedItemValue.Variables) {\n this.SelectedItemValue.Variables = [];\n }\n }\n this.cdRef.detectChanges();\n }\n\n add() {\n if (this.SelectedItemValue) {\n const item = {\n ID: UUID.UUID(),\n Name: 'Var1',\n Value: null,\n Type: null,\n Formula: null\n };\n if (this.SelectedItemValue.Variables && this.SelectedItemValue.Variables.length > 0) {\n let index = this.SelectedItemValue.Variables.length + 1;\n let name = 'Var' + index++;\n while (this.SelectedItemValue.Variables.some(x => x.Name === name)) {\n name = 'Var' + index++;\n }\n item.Name = name;\n this.SelectedItemValue.Variables.push(item);\n } else {\n this.SelectedItemValue.Variables = [item];\n }\n this.SelectedVariable = item;\n this.edit();\n this.onVariablesEdited();\n LayoutService.RefreshTree.next(true);\n }\n }\n\n delete() {\n this.checkDelete().then(index => {\n if (index > -1) {\n this.SelectedItemValue.Variables.splice(index, 1);\n if (index < this.SelectedItemValue.Variables.length) {\n this.SelectedVariable = this.SelectedItemValue.Variables[index];\n } else if (this.SelectedItemValue.Variables.length > 0) {\n this.SelectedVariable = this.SelectedItemValue.Variables[this.SelectedItemValue.Variables.length - 1];\n } else {\n this.SelectedVariable = null;\n }\n this.onVariablesEdited();\n LayoutService.RefreshTree.next(true);\n }\n });\n }\n\n checkDelete(): Promise {\n const retVal = new Promise((resolve, reject) => {\n let index = -1;\n if (this.SelectedItemValue && this.SelectedItemValue.Variables && this.SelectedVariable) {\n index = this.SelectedItemValue.Variables.indexOf(this.SelectedVariable);\n if (index > -1 && this.Layout && this.Layout.Workflows && this.Layout.Workflows.length > 0) {\n if (this.TemplatePath == null) {\n let templatePath = '';\n const parents = MetaHelper.FindParentPath(this.Layout, this.SelectedItemValue);\n if (parents) {\n parents.forEach(x => {\n if (x.ElementType === 'template') {\n templatePath += x.Name + '.';\n }\n });\n }\n this.TemplatePath = templatePath;\n }\n const name = this.TemplatePath + this.SelectedItemValue.Name;\n WorkflowNameChangeDialog.CheckVariableDelete(this.Layout, name, this.SelectedVariable.Name).then(x => {\n if (x === MessageBoxResult.Yes) {\n resolve(index);\n } else {\n resolve(-1);\n }\n });\n return;\n }\n }\n resolve(index);\n });\n return retVal;\n }\n\n edit() {\n if (this.SelectedVariable) {\n this.EditOptions.NewName = this.SelectedVariable.Name;\n this.EditOptions.OldName = this.SelectedVariable.Name;\n this.EditOptions.Edit = true;\n }\n }\n\n accept() {\n if (this.SelectedVariable) {\n if (this.SelectedItemValue && this.Layout && this.Layout.Workflows && this.Layout.Workflows.length > 0) {\n if (this.TemplatePath == null) {\n let templatePath = '';\n const parents = MetaHelper.FindParentPath(this.Layout, this.SelectedItemValue);\n if (parents) {\n parents.forEach(x => {\n if (x.ElementType === 'template') {\n templatePath += x.Name + '.';\n }\n });\n }\n this.TemplatePath = templatePath;\n }\n const name = this.TemplatePath + this.SelectedItemValue.Name;\n WorkflowNameChangeDialog.CheckWorkflowChangeVariable(this.Layout, name,\n this.EditOptions.OldName, this.EditOptions.NewName).then(x => {\n if (x !== MessageBoxResult.Abort) {\n this.SelectedVariable.Name = this.EditOptions.NewName;\n this.cancel();\n this.onVariablesEdited();\n }\n });\n } else {\n this.SelectedVariable.Name = this.EditOptions.NewName;\n this.cancel();\n this.onVariablesEdited();\n }\n }\n }\n\n cancel() {\n this.EditOptions = {\n Edit: false,\n OldName: '',\n NewName: ''\n };\n }\n\n onVariablesEdited() {\n if (this.SelectedItemValue.Variables) {\n VariablesMenuTab.BadgeValue.next(this.SelectedItemValue.Variables.length);\n } else {\n VariablesMenuTab.BadgeValue.next(0);\n }\n LayoutService.OnLayoutPropertyChanged(this.SelectedItemValue.ID, 'Variables', this.SelectedItem.Variables);\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { APropertyTab } from '../../properties/properties.menu.tab';\nimport { WIDGETREGISTRY } from '../../../../services/dynamic.component.service';\n\n@Component({\n selector: 'joblogs-widget-menu',\n templateUrl: './joblogs.widget.menu.html',\n styleUrls: ['./joblogs.widget.menu.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LogsWidgetMenu extends APropertyTab {\n onItemSet() {\n if (!this.SelectedItem['WidgetProperties']) {\n this.SelectedItem['WidgetProperties'] = {\n ErrorsOnly: true,\n AllUsers: true\n };\n this.ValuesChanged('WidgetProperties');\n }\n }\n ValuesChanged(prop) {\n this.onStyleChanged(prop);\n WIDGETREGISTRY['JobsLogs'].Changes.next(true);\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { APropertyTab } from '../../properties/properties.menu.tab';\nimport { WIDGETREGISTRY } from '../../../../services/dynamic.component.service';\n\n@Component({\n selector: 'jobs-widget-menu',\n templateUrl: './jobs.widget.menu.html',\n styleUrls: ['./jobs.widget.menu.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class JobsWidgetMenu extends APropertyTab {\n onItemSet() {\n if (!this.SelectedItem['WidgetProperties']) {\n this.SelectedItem['WidgetProperties'] = {\n ShowAllUsers: false,\n AllUsers: true\n };\n this.ValuesChanged('WidgetProperties');\n }\n }\n ValuesChanged(prop) {\n this.onStyleChanged(prop);\n WIDGETREGISTRY['Jobs'].Changes.next(true);\n }\n}\n","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { WIDGETREGISTRY } from '../../../services/dynamic.component.service';\nimport { APropertyTab } from '../properties/properties.menu.tab';\n\n@Component({\n selector: 'widget-menu-tab',\n templateUrl: './widget.menu.tab.html',\n styleUrls: ['./widget.menu.tab.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WidgetMenuTab extends APropertyTab {\n WidgetMenu;\n\n onItemSet() {\n if (this.SelectedItem.NativeComponent && WIDGETREGISTRY[this.SelectedItem.NativeComponent] && WIDGETREGISTRY[this.SelectedItem.NativeComponent].MenuTab) {\n this.WidgetMenu = new ComponentPortal(WIDGETREGISTRY[this.SelectedItem.NativeComponent].MenuTab);\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { UUID } from 'angular2-uuid';\nimport { deserialize, serialize } from 'class-transformer';\nimport { ALayoutMenuTab } from '../../../appbuilder/common/menutabcontrol/menu.tab.control';\nimport { ABaseTreeNode, IDKeeper } from '../../../components/common/basetreecontrol/base.tree.control';\nimport { MessageBoxHelper } from '../../../components/dialogs/messagebox/messagebox.dialog';\nimport { TemplateLayout } from '../../../components/layouts/template/template.layout';\nimport { ArrayHelpers, TranslateFormatText } from '../../../helpers/array.helpers';\nimport { ClipboardHelper } from '../../../helpers/clipboard.helper';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { NotificationHelper } from '../../../helpers/notification.helper';\nimport { LayoutChangeType } from '../../../models/enums/layoutchangetype.enum';\nimport { MessageBoxButtons } from '../../../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../../../models/enums/messageboxicon.enum';\nimport { MessageBoxResult } from '../../../models/enums/messageboxresult.enum';\nimport { WorkflowErrorType } from '../../../models/enums/workflowerrortype.enum';\nimport { TranslatedString } from '../../../models/translatedstring.model';\nimport { WorkflowData, WorkflowDescription, WorkflowSaveObject } from '../../../models/workflow/workflow.model';\nimport { LayoutService } from '../../../services/layout.service';\nimport { WorkflowService } from '../../../services/workflow.service';\nimport { WorkflowEditDialog } from '../../../workflow/workflow.edit.dialog';\nimport { DisabledWorkflowEditDialog } from \"../../../workflow/disabled-workflow.edit.dialog\";\nimport { WorkflowUsageDialog } from './workflow.usage.dialog';\nimport { TranslateHelper } from \"../../../helpers/injector.helper\";\nimport { WorkflowCommunicationService } from \"../../../services/workflow-communication.service\";\n@Component({\n selector: 'workflow-menu-tab',\n templateUrl: './workflow.menu.tab.html',\n styleUrls: ['./workflow.menu.tab.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WorkflowMenuTab extends ALayoutMenuTab {\n\n SelectedNode: WorkflowNode;\n RootNodes = [];\n IDKeeper = new IDKeeper();\n ErrorTypes = [];\n Tree;\n EditedWorkflow;\n previousLayout;\n\n private static buildTreeRecursive(layout, nodeList, editable, idKeeper: IDKeeper) {\n if (layout.Elements) {\n layout.Elements.forEach(elem => {\n if (elem.ElementType === TemplateLayout.Type) {\n const mainNode = new WorkflowNode(idKeeper.NextID);\n mainNode.Caption = elem.Name;\n mainNode.HasChildren = true;\n mainNode.Children = [];\n mainNode.editable = editable && elem.LoadByReference !== true;\n if (elem.Workflows) {\n elem.Workflows.forEach(wf => {\n const node = new WorkflowNode(idKeeper.NextID);\n node.Caption = wf.Caption;\n node.workflow = wf;\n node.editable = mainNode.editable;\n node.parentLayout = elem;\n node.parentNode = mainNode;\n mainNode.Children.push(node);\n });\n }\n nodeList.push(mainNode);\n WorkflowMenuTab.buildTreeRecursive(elem, mainNode.Children, mainNode.editable, idKeeper);\n } else {\n WorkflowMenuTab.buildTreeRecursive(elem, nodeList, editable, idKeeper);\n }\n });\n }\n }\n constructor(cdRef: ChangeDetectorRef, public dialog: MatDialog, private service: WorkflowService,\n private workflowCommunicationService: WorkflowCommunicationService) {\n super(cdRef);\n this.ErrorTypes = EnumHelper.GetDropdownValues(WorkflowErrorType);\n }\n ShowCopyButton = false;\n ShowDuplicateButton = true;\n ShowPasteButton = false;\n ngOnInit() {\n super.ngOnInit();\n this.buildTree();\n\n if (ClipboardHelper.Inititalized) {\n this.ShowCopyButton = true;\n this.ShowDuplicateButton = false;\n if (ClipboardHelper.ClipboardContent && ClipboardHelper.ClipboardContent.type && ClipboardHelper.ClipboardContent.type == \"ClientWorkflowCopy\") {\n this.ShowPasteButton = true;\n } else {\n this.ShowPasteButton = false;\n }\n ClipboardHelper.ClipboardChanged.subscribe((data: any) => {\n if (data && data.type && data.type == \"ClientWorkflowCopy\") {\n this.ShowPasteButton = true;\n } else {\n this.ShowPasteButton = false;\n }\n });\n } else {\n this.ShowCopyButton = false;\n this.ShowDuplicateButton = true;\n }\n\n this.Subscriptions.push(LayoutService.LayoutWorkflowsChanged.subscribe((x) => {\n this.buildTree();\n if (x && x.ChangeValue && this.EditedWorkflow != null) {\n switch (x.LayoutChangeType) {\n case LayoutChangeType.WorkflowChange:\n if (x.ChangeValue.Workflows && x.ChangeValue.Workflows.some(wf => JSON.parse(wf).ID === this.EditedWorkflow.ID)) {\n MessageBoxHelper.ShowDialog(new TranslateFormatText('@@ActualEditWorkflow changed'),\n new TranslateFormatText('@@Warnung'), MessageBoxButtons.Ok, MessageBoxIcon.Warning);\n\n }\n break;\n case LayoutChangeType.WorkflowRemoved:\n if (x.ChangeValue.WorkflowID === this.EditedWorkflow.ID) {\n MessageBoxHelper.ShowDialog(new TranslateFormatText('@@ActualEditWorkflow removed'),\n new TranslateFormatText('@@Warnung'), MessageBoxButtons.Ok, MessageBoxIcon.Warning);\n }\n break;\n }\n\n }\n }));\n this.workflowCommunicationService.getDialogStatus().subscribe(res => {\n if (res !== null) {\n let selectedWorkflow = this.workflowCommunicationService.getSelectedWorkflow()\n let stack = this.workflowCommunicationService.getWorkflowStack()\n if (selectedWorkflow !== null && res === \"inner\") {\n const serialized = serialize(selectedWorkflow)\n const itemData = deserialize(WorkflowData, serialized)\n const Data = itemData\n let workflowDescription = new WorkflowDescription()\n workflowDescription.Caption = selectedWorkflow?.Caption?.Value\n workflowDescription.ID = selectedWorkflow?.SID\n workflowDescription.Data = itemData;\n // this.dialog.closeAll()\n const dialogRef = this.dialog.open(DisabledWorkflowEditDialog, {\n data: { Data: Data, Layout: this.previousLayout, Workflow: workflowDescription },\n panelClass: 'workflowedit-dialog-container',\n });\n }\n else if (selectedWorkflow === null && res === \"outer\") {\n this.workflowCommunicationService.setWorkflowStack([])\n // this.workflowCommunicationService.setSelectedWorkflowItem(null)\n this.EditWorkflow()\n }\n }\n else if (res === null){\n this.dialog.closeAll()\n }\n })\n // this.workflowCommunicationService.getSelectedWorkflowItem().subscribe(res=>{\n // const stack = this.workflowCommunicationService.getWorkflowStack()\n // if(res===null && stack.length>0 && this.SelectedNode){\n // this.workflowCommunicationService.setWorkflowStack([])\n // this.workflowCommunicationService.setSelectedWorkflowItem(null)\n // this.EditWorkflow()\n // }\n // else if (res !== null && stack.length > 0 && this.SelectedNode) {\n // const serialized = serialize(res)\n // const itemData = deserialize(WorkflowData, serialized)\n // const Data = itemData\n // let workflowDescription = new WorkflowDescription()\n // workflowDescription.Caption = res?.Caption?.Value\n // workflowDescription.ID = res?.SID\n // workflowDescription.Data = itemData;\n // this.dialog.closeAll()\n // const dialogRef = this.dialog.open(DisabledWorkflowEditDialog, {\n // data: { Data: Data, Layout: this.previousLayout, Workflow: workflowDescription },\n // panelClass: 'workflowedit-dialog-container',\n // });\n // }\n // })\n }\n TreeInit(event) {\n this.Tree = event;\n }\n buildTree() {\n const data = [];\n const layout = this.Layout;\n this.IDKeeper.reset();\n if (layout) {\n if (layout.Workflows) {\n ArrayHelpers.sortAlphabetical(layout.Workflows, 'Caption');\n layout.Workflows.forEach(wf => {\n const node = new WorkflowNode(this.IDKeeper.NextID);\n node.Caption = wf.Caption;\n node.workflow = wf;\n node.editable = true;\n node.parentLayout = layout;\n data.push(node);\n });\n }\n WorkflowMenuTab.buildTreeRecursive(layout, data, true, this.IDKeeper);\n }\n this.RootNodes = data;\n }\n\n onCaptionChanged() {\n if (this.SelectedNode && this.SelectedNode.workflow) {\n this.SelectedNode.Caption = this.SelectedNode.workflow.Caption;\n if (this.Tree) {\n this.Tree.cdRef.detectChanges();\n }\n this.cdRef.detectChanges();\n this.onWFChanged();\n }\n }\n\n onWFChanged() {\n if (this.SelectedNode && this.SelectedNode.workflow) {\n LayoutService.OnLayoutWorkflowsChanged({\n LayoutID: this.SelectedNode.parentLayout.ID,\n Workflows: [JSON.stringify(this.SelectedNode.workflow)]\n });\n }\n }\n\n AddWorkflow() {\n const layout = this.Layout;\n if (layout) {\n const newWF = new WorkflowDescription();\n newWF.Caption = 'New Workflow';\n newWF.ID = UUID.UUID();\n const node = new WorkflowNode(this.IDKeeper.NextID);\n node.Caption = newWF.Caption;\n node.workflow = newWF;\n node.editable = true;\n node.parentLayout = layout;\n this.showDialog(node, () => {\n if (!layout.Workflows) {\n layout.Workflows = [];\n }\n layout.Workflows.push(newWF);\n const nodes = [...this.RootNodes];\n nodes.splice(layout.Workflows.length - 1, 0, node);\n this.RootNodes = nodes;\n this.SelectedNode = node;\n LayoutService.OnLayoutWorkflowAdded({\n LayoutID: layout.ID,\n Workflow: JSON.stringify(newWF)\n });\n });\n }\n }\n\n CopyWorkflow() {\n if (this.SelectedNode && this.SelectedNode.workflow && this.SelectedNode.editable && this.SelectedNode.parentLayout) {\n if (ClipboardHelper.Inititalized) {\n let entry = {\n type: \"ClientWorkflowCopy\",\n content: this.SelectedNode.workflow\n }\n ClipboardHelper.CopyToClipboard(entry);\n NotificationHelper.Info(\"@@CopyToClipboard\", \"@@ElementCopiedToClipboard\");\n } else {\n const json = serialize(this.SelectedNode.workflow);\n const copy = deserialize(WorkflowDescription, json);\n // copy.Caption += ' (Kopie)';\n const _translateText = TranslateHelper.TranslatorInstance.instant('@@Kopie')\n copy.Caption += ` (${_translateText})`;\n copy.ID = UUID.UUID();\n const node = new WorkflowNode(this.IDKeeper.NextID);\n node.Caption = copy.Caption;\n node.workflow = copy;\n node.editable = true;\n node.parentLayout = this.SelectedNode.parentLayout;\n node.parentLayout.Workflows.push(copy);\n if (this.SelectedNode.parentNode) {\n this.SelectedNode.parentNode.Children.push(node);\n } else {\n const nodes = [...this.RootNodes];\n nodes.splice(this.Layout.Workflows.length - 1, 0, node);\n this.RootNodes = nodes;\n }\n this.SelectedNode = node;\n LayoutService.OnLayoutWorkflowAdded({\n LayoutID: node.parentLayout.ID,\n Workflow: JSON.stringify(copy)\n });\n }\n }\n }\n\n CreateTemplate() {\n if (this.SelectedNode && this.SelectedNode.workflow && this.SelectedNode.editable) {\n let workflowtemplate = new WorkflowSaveObject();\n workflowtemplate.Caption = new TranslatedString();\n workflowtemplate.Caption.DefaultValue = this.SelectedNode.workflow.Caption;\n workflowtemplate.Modules = this.SelectedNode.workflow.Data.Modules;\n for (var m of workflowtemplate.Modules) {\n m.Settings = JSON.stringify(m.Settings);\n }\n workflowtemplate.ErrorType = this.SelectedNode.workflow.Data.ErrorType;\n workflowtemplate.Connectors = this.SelectedNode.workflow.Data.Connectors;\n workflowtemplate.GenerateLog = this.SelectedNode.workflow.Data.GenerateLog;\n this.service.SaveWorkflowTemplate(workflowtemplate).subscribe();\n }\n }\n\n DuplicateWorkflow() {\n if (this.SelectedNode && this.SelectedNode.workflow && this.SelectedNode.editable && this.SelectedNode.parentLayout) {\n const json = serialize(this.SelectedNode.workflow);\n const copy = deserialize(WorkflowDescription, json);\n // copy.Caption += ' (Kopie)';\n const _translateText = TranslateHelper.TranslatorInstance.instant('@@Kopie')\n copy.Caption += ` (${_translateText})`;\n copy.ID = UUID.UUID();\n const node = new WorkflowNode(this.IDKeeper.NextID);\n node.Caption = copy.Caption;\n node.workflow = copy;\n node.editable = true;\n node.parentLayout = this.SelectedNode.parentLayout;\n node.parentLayout.Workflows.push(copy);\n if (this.SelectedNode.parentNode) {\n this.SelectedNode.parentNode.Children.push(node);\n } else {\n const nodes = [...this.RootNodes];\n nodes.splice(this.Layout.Workflows.length - 1, 0, node);\n this.RootNodes = nodes;\n }\n this.SelectedNode = node;\n LayoutService.OnLayoutWorkflowAdded({\n LayoutID: node.parentLayout.ID,\n Workflow: JSON.stringify(copy)\n });\n }\n }\n PasteWorkflow() {\n let item = ClipboardHelper.ClipboardContent.content;\n if (item) {\n const json = serialize(item);\n const copy = deserialize(WorkflowDescription, json);\n // copy.Caption += ' (Kopie)';\n const _translateText = TranslateHelper.TranslatorInstance.instant('@@Kopie')\n copy.Caption += ` (${_translateText})`;\n copy.ID = UUID.UUID();\n const node = new WorkflowNode(this.IDKeeper.NextID);\n node.Caption = copy.Caption;\n node.workflow = copy;\n node.editable = true;\n node.parentLayout = this.Layout;\n node.parentLayout.Workflows.push(copy);\n if (this.SelectedNode && this.SelectedNode.parentNode) {\n this.SelectedNode.parentNode.Children.push(node);\n } else {\n const nodes = [...this.RootNodes];\n nodes.splice(this.Layout.Workflows.length - 1, 0, node);\n this.RootNodes = nodes;\n }\n this.SelectedNode = node;\n LayoutService.OnLayoutWorkflowAdded({\n LayoutID: node.parentLayout.ID,\n Workflow: JSON.stringify(copy)\n });\n }\n }\n EditWorkflow() {\n if (this.SelectedNode && this.SelectedNode.workflow && this.SelectedNode.editable) {\n this.showDialog(this.SelectedNode, () => {\n this.RootNodes = [...this.RootNodes];\n LayoutService.OnLayoutWorkflowsChanged({\n LayoutID: this.SelectedNode.parentLayout.ID,\n Workflows: [JSON.stringify(this.SelectedNode.workflow)]\n });\n });\n }\n }\n\n DeleteWorkflow() {\n const node = this.SelectedNode;\n if (node && node.workflow && node.editable) {\n const text = new TranslateFormatText('@@Sind Sie sicher, dass Sie den Workflow {0} loeschen moechten?');\n text.FormatParams.push(node.workflow.Caption);\n MessageBoxHelper.ShowDialog(text, new TranslateFormatText('@@Workflow loeschen'),\n MessageBoxButtons.YesNo, MessageBoxIcon.Question).then(retVal => {\n if (retVal === MessageBoxResult.Yes) {\n const index = node.parentLayout.Workflows.indexOf(node.workflow);\n if (index > -1) {\n node.parentLayout.Workflows.splice(index, 1);\n this.buildTree();\n this.SelectedNode = null;\n LayoutService.OnLayoutWorkflowRemoved({\n LayoutID: node.parentLayout.ID,\n WorkflowID: node.workflow.ID,\n WorkflowCaption: node.workflow.Caption\n });\n }\n this.cdRef.detectChanges();\n }\n });\n }\n }\n showDialog(node, handler) {\n // console.log('nodeeee ---> ',node)\n if (node.workflow) {\n this.previousLayout = node.parentLayout\n this.EditedWorkflow = node.workflow;\n const dialogRef = this.dialog.open(WorkflowEditDialog, {\n data: { Data: node.workflow.Data, Layout: node.parentLayout, Workflow: node.workflow },\n panelClass: 'workflowedit-dialog-container',\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result instanceof WorkflowData) {\n node.workflow.Data = result;\n node.Caption = node.workflow.Caption;\n if (typeof handler === 'function') {\n handler();\n }\n }\n this.EditedWorkflow = null;\n this.cdRef.detectChanges();\n });\n }\n }\n\n showUsage() {\n if (this.SelectedNode && this.SelectedNode.workflow && this.Layout) {\n WorkflowUsageDialog.ShowDialog(this.Layout, this.SelectedNode.workflow);\n }\n }\n}\n\nexport class WorkflowNode extends ABaseTreeNode {\n workflow;\n editable = false;\n parentLayout;\n parentNode;\n}\n","import { Component } from '@angular/core';\nimport { EventActionType } from '../../../models/enums/eventactiontype.enum';\nimport { BaseDialog } from '../../../components/dialogs/basedialog/base.dialog';\n\n@Component({\n selector: 'workflow-usage-dialog',\n templateUrl: './workflow.usage.dialog.html'\n})\nexport class WorkflowUsageDialog {\n WorkflowID;\n DirectUsage = [];\n LinkedUsage = [];\n\n private static FindEvents(layoutElem, wfID, directList, linkedList) {\n if (layoutElem) {\n if (layoutElem.Events) {\n layoutElem.Events.forEach(ev => {\n if (ev.Handlers) {\n ev.Handlers.forEach(handler => {\n if (handler.ActionType === EventActionType.Workflow) {\n if (handler.Action === wfID) {\n directList.push({\n Element: layoutElem.Name,\n Event: ev.EventID\n });\n } else {\n linkedList.forEach(linked => {\n if (linked.EntryID === handler.Action) {\n linked.Handlers.push({\n Element: layoutElem.Name,\n Event: ev.EventID\n });\n }\n });\n }\n }\n });\n }\n });\n }\n if (layoutElem.Elements) {\n layoutElem.Elements.forEach(elem => {\n WorkflowUsageDialog.FindEvents(elem, wfID, directList, linkedList);\n });\n }\n }\n }\n\n static ShowDialog(layout, workflow) {\n BaseDialog.ShowDialog({\n ContentType: WorkflowUsageDialog,\n InitArgs: {\n Layout: layout,\n Workflow: workflow\n },\n Title: workflow.Caption\n });\n }\n\n Initialize(args) {\n if (args && args.Layout && args.Workflow) {\n this.WorkflowID = args.Workflow.ID;\n if (args.Layout.Workflows) {\n const linkList = [];\n const captions = {};\n args.Layout.Workflows.forEach(wf => {\n if (wf.Data && wf.Data.Modules) {\n captions[wf.ID] = wf.Caption;\n wf.Data.Modules.forEach(mod => {\n if (mod.Module === 'execWFModule' && mod.Settings && mod.Settings.IsServiceWorkflow === false) {\n linkList.push([wf.ID, mod.Settings.WorkflowID]);\n }\n });\n }\n });\n for (let i = 0; i < linkList.length; i++) {\n const actLink = linkList[i];\n const lastLink = actLink[actLink.length - 1];\n for (let j = 0; j < linkList.length; j++) {\n if (i !== j) {\n const innerLink = linkList[j];\n if (innerLink[0] === lastLink) {\n const newEntry = [...actLink, innerLink.slice(1)];\n linkList.push(newEntry);\n }\n }\n }\n }\n linkList.forEach(x => {\n const entryID = x[0];\n let add = entryID === args.Workflow.ID;\n const entry = {\n EntryID: entryID,\n EntryCaption: captions[entryID],\n Chain: [],\n Handlers: []\n };\n for (let i = 1; i < x.length; i++) {\n const nextID = x[i];\n entry.Chain.push({\n ID: nextID,\n Caption: captions[nextID]\n });\n if (nextID === args.Workflow.ID) {\n add = true;\n }\n }\n if (add) {\n this.LinkedUsage.push(entry);\n }\n });\n }\n WorkflowUsageDialog.FindEvents(args.Layout, args.Workflow.ID, this.DirectUsage, this.LinkedUsage);\n }\n }\n}\n","import { ComponentPortal } from \"@angular/cdk/portal\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { CURSOR_TYPES } from \"../../models/basic/cursortypes\";\nimport { LayoutUnit } from \"../../models/basic/layoutunit.model\";\nimport { LayoutPosition } from \"../../models/enums/layoutposition.enum\";\nimport { Overflow } from \"../../models/enums/overflow.enum\";\nimport { PrimeFlexSizes } from \"../../models/enums/primeflexsizes.enum\";\nimport { PropertyGroupDisplay } from \"../../models/enums/propertygroupdisplay.enum\";\nimport { WhiteSpace } from \"../../models/enums/whitespace.enum\";\nimport { MultiPropertyChangeValue } from \"../../models/layout/layout.change.model\";\nimport { StyleBase } from \"../../models/layoutbase.model\";\nimport { MenuTabLabelPosition } from \"../../models/menutab/menutab.property.model\";\nimport { PROPERTIES, PROPERTYGROUPS } from \"../../services/dynamic.component.service\";\nimport { LayoutService } from \"../../services/layout.service\";\nimport { CheckBoxThemeControl } from \"../controls/checkbox/checkbox.control\";\nimport { ComboboxThemeControl } from \"../controls/combobox/combobox.theme.control\";\nimport { InputswitchThemeControl } from \"../controls/inputswitch/inputswitch.theme.control\";\nimport { TextboxThemeControl } from \"../controls/textbox/textbox.theme.control\";\nimport { UnitSelectionControl } from \"../controls/unittypeselection/unitselection.theme.control\";\nimport { GenericMenuTab } from \"../menutabs/generic/generic.menu.tab\";\nimport { BasePanel } from \"./base.panel\";\n\nexport class AdvancedPanel extends BasePanel {\n static override SIDS = ['1FE28779-54CC-4478-9A19-10BD93C59262']\n static InitPanel() {\n this.InitSelectedItem()\n this.InitSelectedObject()\n this.InitSelectedLayout()\n PROPERTYGROUPS.push({\n SID:'1FE28779-54CC-4478-9A19-10BD93C59262',\n ID: 'Advanced',\n Caption: '@@Advanced',\n Index: 3,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['1fr', '1fr'],\n Rows: ['auto'],\n });\n\n let row = 1;\n PROPERTIES.push({\n ID: \"Editable\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(InputswitchThemeControl),\n Label: \"@@Editable\",\n LabelPosition: MenuTabLabelPosition.Right,\n Row: row++,\n Column: 1,\n ColSpan: 2,\n CheckVisibility: (item,entry, context) => {\n return context != 'wf'\n }\n });\n PROPERTIES.push({\n ID: \"Visible\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(InputswitchThemeControl),\n Label: \"@@Visible\",\n LabelPosition: MenuTabLabelPosition.Right,\n Row: row++,\n Column: 1,\n ColSpan: 2,\n CheckVisibility: (item,entry, context) => {\n return context != 'wf'\n }\n });\n PROPERTIES.push({\n ID: \"HandleIntersection\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(InputswitchThemeControl),\n Label: \"@@HandleIntersection\",\n LabelPosition: MenuTabLabelPosition.Right,\n Row: row++,\n Column: 1,\n ColSpan: 2,\n CheckVisibility: (item, entry, context) => {\n return context != 'wf' && ['repeat', 'carousel'].indexOf(item.ElementType) > -1;\n }\n });\n PROPERTIES.push({\n ID: \"IsRequired\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(InputswitchThemeControl),\n Label: \"@@Required\",\n LabelPosition: MenuTabLabelPosition.Right,\n CheckVisibility: (item) => {\n return item.DataSource && !item.DataModelID && item.IsRequired;\n },\n InitArgs: {\n Disabled: true\n },\n Row: row++,\n Column: 1,\n ColSpan: 2\n });\n PROPERTIES.push({\n ID: \"Required\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(InputswitchThemeControl),\n Label: \"@@Required\",\n LabelPosition: MenuTabLabelPosition.Right,\n CheckVisibility: (item) => {\n return item.DataSource && !item.DataModelID && !item.IsRequired;\n },\n Row: row++,\n Column: 1,\n ColSpan: 2\n });\n PROPERTIES.push({\n ID: \"Overflow\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Overflow\",\n InitArgs: {\n Placeholder: \"\",\n Multiple: false,\n EnumSource: Overflow\n },\n Row: row++,\n Column: 1,\n ColSpan: 2\n });\n PROPERTIES.push({\n ID: \"LayoutPosition\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Position\",\n InitArgs: {\n Placeholder: \"\",\n Multiple: false,\n EnumSource: LayoutPosition\n },\n Row: row++,\n Column: 1,\n ColSpan: 2\n });\n PROPERTIES.push({\n ID: \"WhiteSpace\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@WhiteSpace\",\n InitArgs: {\n Placeholder: \"\",\n Multiple: false,\n EnumSource: WhiteSpace\n },\n Row: row++,\n Column: 1,\n ColSpan: 2\n });\n\n const cursors = [];\n CURSOR_TYPES.forEach(x => {\n cursors.push({\n Value: x,\n Style: { cursor: x }\n });\n });\n PROPERTIES.push({\n ID: \"Cursor\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Cursor\",\n InitArgs: {\n Placeholder: \"\",\n Multiple: false,\n ItemsSource: cursors,\n ValueMemberPath: \"Value\",\n DisplayMemberPath: \"Value\",\n OptionStyle: \"Style\"\n },\n Row: row++,\n Column: 1,\n ColSpan: 2\n });\n\n\n\n\n\n PROPERTIES.push({\n ID: \"SetRotate\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(InputswitchThemeControl),\n Label: \"@@SetRotate\",\n LabelPosition: MenuTabLabelPosition.Right,\n Column: 1,\n ColSpan: 2,\n Row: row++,\n InitArgs: {\n Action: (item) => {\n if (item && !item.Event) {\n AdvancedPanel.SelectedItem.RotateX = null;\n AdvancedPanel.SelectedItem.RotateY = null;\n AdvancedPanel.SelectedItem.RotateZ = null;\n const mlpcv = new MultiPropertyChangeValue();\n mlpcv.ElementIDs = [item.SelectedItem.ID],\n ['RotateX', 'RotateY', 'RotateZ'].forEach(x => {\n mlpcv.Properties.push({\n PropertyName: x,\n Value: null\n });\n });\n LayoutService.OnMultiLayoutPropertyChanged([mlpcv]);\n if (item.SelectedItem.ValuesChanged) {\n item.SelectedItem.ValuesChanged.next();\n }\n }\n LayoutService.LayoutChanged.next(null);\n }\n }\n });\n PROPERTIES.push({\n ID: \"RotateX\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"X\",\n LabelPosition: MenuTabLabelPosition.Left,\n Column: 1,\n ColSpan: 2,\n Row: row++,\n InitArgs: {\n InputType:\"number\"\n },\n CheckVisibility: (item) => {\n return item.RotateX != null || item.RotateY != null|| item.RotateZ != null || item.SetRotate\n }\n });\n PROPERTIES.push({\n ID: \"RotateY\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"Y\",\n LabelPosition: MenuTabLabelPosition.Left,\n Column: 1,\n ColSpan: 2,\n Row: row++,\n InitArgs: {\n InputType: \"number\"\n },\n CheckVisibility: (item) => {\n return item.RotateX != null || item.RotateY != null || item.RotateZ != null || item.SetRotate\n }\n });\n PROPERTIES.push({\n ID: \"RotateZ\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"Z\",\n LabelPosition: MenuTabLabelPosition.Left,\n Column: 1,\n ColSpan: 2,\n Row: row++,\n InitArgs: {\n InputType: \"number\"\n },\n CheckVisibility: (item) => {\n return item.RotateX != null || item.RotateY != null || item.RotateZ != null || item.SetRotate\n }\n });\n\n PROPERTIES.push({\n ID: \"SetTranslate\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(InputswitchThemeControl),\n Label: \"@@SetTranslate\",\n LabelPosition: MenuTabLabelPosition.Right,\n Column: 1,\n ColSpan: 2,\n Row: row++,\n InitArgs: {\n Action: (item) => {\n if (item && !item.Event) {\n AdvancedPanel.SelectedItem.TranslateX = null;\n AdvancedPanel.SelectedItem.TranslateY = null;\n AdvancedPanel.SelectedItem.TranslateZ = null;\n const mlpcv = new MultiPropertyChangeValue();\n mlpcv.ElementIDs = [item.SelectedItem.ID],\n ['TranslateX', 'TranslateY', 'TranslateZ'].forEach(x => {\n mlpcv.Properties.push({\n PropertyName: x,\n Value: null\n });\n });\n LayoutService.OnMultiLayoutPropertyChanged([mlpcv]);\n if (item.SelectedItem.ValuesChanged) {\n item.SelectedItem.ValuesChanged.next();\n }\n }\n LayoutService.LayoutChanged.next(null);\n }\n }\n });\n PROPERTIES.push({\n ID: \"TranslateX\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(UnitSelectionControl),\n Type: LayoutUnit,\n Label: \"X\",\n LabelPosition: MenuTabLabelPosition.Left,\n Column: 1,\n ColSpan: 2,\n Row: row++,\n InitArgs: {\n InputType: \"number\"\n },\n CheckVisibility: (item) => {\n return item.TranslateX != null || item.TranslateY != null || item.TranslateZ != null || item.SetTranslate\n }\n });\n PROPERTIES.push({\n ID: \"TranslateY\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(UnitSelectionControl),\n Type: LayoutUnit,\n Label: \"Y\",\n LabelPosition: MenuTabLabelPosition.Left,\n Column: 1,\n ColSpan: 2,\n Row: row++,\n InitArgs: {\n InputType: \"number\"\n },\n CheckVisibility: (item) => {\n return item.TranslateX != null || item.TranslateY != null || item.TranslateZ != null || item.SetTranslate\n }\n });\n PROPERTIES.push({\n ID: \"TranslateZ\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(UnitSelectionControl),\n Type: LayoutUnit,\n Label: \"Z\",\n LabelPosition: MenuTabLabelPosition.Left,\n Column: 1,\n ColSpan: 2,\n Row: row++,\n InitArgs: {\n InputType: \"number\"\n },\n CheckVisibility: (item) => {\n return item.TranslateX != null || item.TranslateY != null || item.TranslateZ != null || item.SetTranslate\n }\n });\n\n PROPERTIES.push({\n ID: \"SetScale\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(InputswitchThemeControl),\n Label: \"@@SetScale\",\n LabelPosition: MenuTabLabelPosition.Right,\n Column: 1,\n ColSpan: 2,\n Row: row++,\n InitArgs: {\n Action: (item) => {\n if (item && !item.Event) {\n AdvancedPanel.SelectedItem.ScaleX = null;\n AdvancedPanel.SelectedItem.ScaleY = null;\n AdvancedPanel.SelectedItem.ScaleZ = null;\n const mlpcv = new MultiPropertyChangeValue();\n mlpcv.ElementIDs = [item.SelectedItem.ID],\n ['ScaleX', 'ScaleY', 'ScaleZ'].forEach(x => {\n mlpcv.Properties.push({\n PropertyName: x,\n Value: null\n });\n });\n LayoutService.OnMultiLayoutPropertyChanged([mlpcv]);\n if (item.SelectedItem.ValuesChanged) {\n item.SelectedItem.ValuesChanged.next();\n }\n }\n LayoutService.LayoutChanged.next(null);\n }\n }\n });\n PROPERTIES.push({\n ID: \"ScaleX\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"X\",\n LabelPosition: MenuTabLabelPosition.Left,\n Column: 1,\n ColSpan: 2,\n Row: row++,\n InitArgs: {\n InputType: \"number\",\n Step:0.01\n },\n CheckVisibility: (item) => {\n return item.ScaleX != null || item.ScaleY != null || item.ScaleZ != null || item.SetScale\n }\n });\n PROPERTIES.push({\n ID: \"ScaleY\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"Y\",\n LabelPosition: MenuTabLabelPosition.Left,\n Column: 1,\n ColSpan: 2,\n Row: row++,\n InitArgs: {\n InputType: \"number\", Step: 0.01\n },\n CheckVisibility: (item) => {\n return item.ScaleX != null || item.ScaleY != null || item.ScaleZ != null || item.SetScale\n }\n });\n PROPERTIES.push({\n ID: \"ScaleZ\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"Z\",\n LabelPosition: MenuTabLabelPosition.Left,\n Column: 1,\n ColSpan: 2,\n Row: row++,\n InitArgs: {\n InputType: \"number\",Step: 0.01\n },\n CheckVisibility: (item) => {\n return item.ScaleX != null || item.ScaleY != null || item.ScaleZ != null || item.SetScale\n }\n });\n\n\n\n\n PROPERTIES.push({\n ID: \"ZIndex\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Z-Index\",\n Column: 1,\n Row: row,\n InitArgs: {\n InputType: \"number\"\n }\n });\n PROPERTIES.push({\n ID: \"TabIndex\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Tab-Index\",\n Column: 2,\n Row: row++,\n InitArgs: {\n InputType: \"number\"\n }\n });\n PROPERTIES.push({\n ID: \"UseBoxed\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(InputswitchThemeControl),\n Label: \"@@UseBoxed\",\n LabelPosition: MenuTabLabelPosition.Right,\n CheckVisibility: (item) => {\n return item.ElementType == 'repeat' || item.ElementType == 'flex' || item.ElementType == 'grid' || item.ElementType == 'raster' || item.ElementType == 'bootstrapgrid' || item.ElementType == 'bootstraprepeat' || item.ElementType == 'canvas';\n },\n Row: row++,\n Column: 1,\n ColSpan: 2\n });\n PROPERTIES.push({\n ID: \"BoxedSize\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@BoxedSize\",\n InitArgs: {\n Placeholder: \"\",\n Multiple: false,\n EnumSource: PrimeFlexSizes\n },\n CheckVisibility: (item) => {\n return item.UseBoxed;\n },\n Row: row++,\n Column: 1,\n ColSpan: 2\n });\n PROPERTIES.push({\n ID: \"FlexFill\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(InputswitchThemeControl),\n Label: \"@@FlexFill\",\n LabelPosition: MenuTabLabelPosition.Right,\n CheckVisibility: (item) => {\n return item.Parent ? (item.Parent.ElementType == 'repeat' || item.Parent.ElementType == 'flex') : false;\n },\n Row: row++,\n Column: 1,\n ColSpan: 2\n });\n PROPERTIES.push({\n ID: \"DisableNavigation\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(InputswitchThemeControl),\n Label: \"@@Disable Navigation\",\n LabelPosition: MenuTabLabelPosition.Right,\n CheckVisibility: (item) => {\n return this.SelectedItem == this.SelectedLayout;\n },\n Row: row++,\n Column: 1,\n ColSpan: 2\n });\n PROPERTIES.push({\n ID: \"DisableNavigationText\",\n Parent: \"Advanced\",\n Content: new ComponentPortal(TextboxThemeControl),\n InitArgs: {\n InputType: \"text\"\n },\n CheckVisibility: (item) => {\n return this.SelectedItem == this.SelectedLayout && item.DisableNavigation == true;\n },\n Row: row++,\n Column: 1,\n ColSpan: 2\n });\n }\n}","import { LayoutService } from \"../../services/layout.service\";\n\nexport class BasePanel {\n static SIDS: string[] = null;\n static ElementType:string = null;\n static SelectedItem;\n private static SelectedItemInternal;\n static InitSelectedItem() {\n LayoutService.SelectedItem.subscribe((item) => {\n if (this.ElementType) {\n if (item && item.ElementType == this.ElementType) {\n this.SelectedItem = item;\n this.SelectedItemInternal = item;\n this.SetSelectedItem(item);\n } else {\n this.SelectedItem = null;\n this.SelectedItemInternal = null;\n this.SetSelectedItem(null);\n }\n } else {\n this.SelectedItem = item;\n this.SelectedItemInternal = item;\n this.SetSelectedItem(item);\n }\n });\n }\n static InitSelectedObject() {\n LayoutService.SelectedObject.subscribe((item) => {\n if (item) {\n if (this.SelectedItem != item) {\n if (this.ElementType) {\n if (item && item.ElementType == this.ElementType) {\n this.SelectedItem = item;\n this.SetSelectedItem(item);\n } else {\n this.SelectedItem = null;\n this.SetSelectedItem(null);\n }\n } else {\n this.SelectedItem = item;\n this.SetSelectedItem(item);\n }\n }\n } else {\n this.SelectedItem = this.SelectedItemInternal;\n this.SetSelectedItem(this.SelectedItem);\n }\n \n });\n }\n static SetSelectedItem(item) {\n\n }\n\n static SelectedLayout;\n static InitSelectedLayout() {\n LayoutService.SelectedLayout.subscribe((layout) => {\n this.SelectedLayout = layout;\n this.SetSelectedLayout(layout);\n });\n }\n static SetSelectedLayout(item) {\n\n }\n static InitPanel() { }\n\n}","import { ComponentPortal } from '@angular/cdk/portal';\nimport { BehaviorSubject } from 'rxjs';\nimport { ThemeHelper } from '../../helpers/theme.helpers';\nimport { LayoutUnit } from '../../models/basic/layoutunit.model';\nimport { LayoutUnitThickness } from '../../models/basic/layoutunitthickness.model';\nimport { PropertyGroupDisplay } from '../../models/enums/propertygroupdisplay.enum';\nimport { TextOverflow } from '../../models/enums/textoverflow.enum';\nimport { MultiPropertyChangeValue } from '../../models/layout/layout.change.model';\nimport { MenuTabLabelPosition } from '../../models/menutab/menutab.property.model';\nimport { Font } from '../../models/style/font.model';\nimport { LayoutService } from '../../services/layout.service';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../services/dynamic.component.service';\nimport { MediaService } from '../../services/media.service';\nimport { ComboboxThemeControl } from '../controls/combobox/combobox.theme.control';\nimport { HeaderThemeControl } from '../controls/header/header.theme.control';\nimport { InputswitchThemeControl } from '../controls/inputswitch/inputswitch.theme.control';\nimport { LayoutUnitThicknessComponent } from '../controls/layoutunitthickness/layoutunitthickness.component';\nimport { TogglebuttongroupThemeControl } from '../controls/togglebuttongroup/togglebuttongroup.theme.control';\nimport { UnitSelectionControl } from '../controls/unittypeselection/unitselection.theme.control';\nimport { GenericMenuTab } from '../menutabs/generic/generic.menu.tab';\nimport { BasePanel } from './base.panel';\n\nexport class ContentPanel extends BasePanel {\n static override SIDS = ['dbefb974-2c57-44e2-a3b6-dcf4fe96c4a3']\n static Fonts: BehaviorSubject = new BehaviorSubject(null)\n private static Font: BehaviorSubject = new BehaviorSubject(null)\n private static DefaultFonts;\n private static CustomFonts;\n private static CSSFonts;\n static override SetSelectedItem(item) {\n if (item) {\n if (!item.Font) {\n item.Font = new Font();\n }\n ContentPanel.Font.next(item.Font);\n } else {\n ContentPanel.Font.next(null);\n }\n }\n private static CheckFonts() {\n const FontFamilies = [];\n let UseGrouping = false;\n if (ContentPanel.CustomFonts && ContentPanel.CustomFonts.length > 0) {\n UseGrouping = true;\n }\n if (ContentPanel.CSSFonts && ContentPanel.CSSFonts.length > 0) {\n UseGrouping = true;\n }\n if (UseGrouping) {\n if (ContentPanel.CustomFonts && ContentPanel.CustomFonts.length > 0) {\n FontFamilies.push({\n label: '@@Custom',\n items: ContentPanel.CustomFonts\n })\n }\n if (ContentPanel.CSSFonts && ContentPanel.CSSFonts.length > 0) {\n FontFamilies.push({\n label: '@@Variables',\n items: ContentPanel.CSSFonts\n })\n }\n FontFamilies.push({\n label: '@@Regular',\n items: ContentPanel.DefaultFonts\n })\n } else {\n FontFamilies.push(...ContentPanel.DefaultFonts);\n }\n ContentPanel.Fonts.next(FontFamilies)\n }\n static InitPanel() {\n this.InitSelectedItem()\n this.InitSelectedObject()\n PROPERTYGROUPS.push({\n SID:'dbefb974-2c57-44e2-a3b6-dcf4fe96c4a3',\n ID: 'content',\n Caption: '@@Content',\n Index: 0,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Sections: [{\n ID: 'text',\n Display: PropertyGroupDisplay.Grid,\n Columns: ['120px', 'calc(50% - 120px)', 'calc(50%)'],\n Rows: ['auto', 'auto', 'auto', 'auto', 'auto', 'auto']\n }, {\n ID: 'positions',\n Display: PropertyGroupDisplay.Grid,\n Columns: ['1fr', '`1fr', '1fr', '1fr', '1fr', '1fr', '1fr'],\n Rows: ['auto', 'auto', 'auto', 'auto']\n },{\n ID: 'dimensions',\n Display: PropertyGroupDisplay.Grid,\n Columns: ['50%', '50%'],\n Rows: ['auto', 'auto', 'auto', 'auto', 'auto', 'auto']\n }, {\n ID: 'mpp',\n Display: PropertyGroupDisplay.Grid,\n Columns: ['50%', '50%'],\n Rows: ['auto', 'auto', 'auto', 'auto', 'auto', 'auto']\n }]\n \n });\n //#region Text\n PROPERTIES.push({\n ID: null,\n Section: 'text',\n Parent: 'content',\n Content: new ComponentPortal(HeaderThemeControl),\n Column: 1,\n ColSpan: 2,\n Row: 1,\n InitArgs: {\n Text: '@@Text'\n }\n })\n //#region FetchFonts\n let DefaultFonts = [];\n MediaService.GetDefaultFonts().forEach(x => {\n DefaultFonts.push({\n Value: x,\n Style: {\n 'font-family': x\n }\n });\n });\n ContentPanel.DefaultFonts = DefaultFonts\n \n let UseGrouping = false;\n MediaService.CSSFontList.subscribe((result) => {\n let CustomFontList = [];\n if (result && result.length > 0) {\n UseGrouping = true;\n result.forEach(x => {\n CustomFontList.push({\n Value: x,\n Style: {\n 'font-family': ThemeHelper.CustomFontsMap[x].Value\n }\n });\n });\n }\n ContentPanel.CSSFonts = CustomFontList;\n ContentPanel.CheckFonts();\n })\n MediaService.CustomFontList.subscribe((result) => {\n let CustomFontList = [];\n if (result && result.length > 0) {\n UseGrouping = true;\n result.forEach(x => {\n CustomFontList.push({\n Value: x,\n Style: {\n 'font-family': x\n }\n });\n });\n }\n ContentPanel.CustomFonts = CustomFontList;\n ContentPanel.CheckFonts();\n });\n //#endregion\n PROPERTIES.push({\n ID: 'FontSize',\n Section: 'text',\n Parent: 'content',\n Content: new ComponentPortal(ComboboxThemeControl),\n DataSource: ContentPanel.Font,\n Column: 1,\n Row: 3,\n InitArgs: {\n Multiple: false,\n ItemsSource: [\n { Label: '8', Value: 8 },\n { Label: '9', Value: 9 },\n { Label: '10', Value: 10 },\n { Label: '11', Value: 11 },\n { Label: '12', Value: 12 },\n { Label: '14', Value: 14 },\n { Label: '16', Value: 16 },\n { Label: '18', Value: 18 },\n { Label: '20', Value: 20 },\n { Label: '22', Value: 22 },\n { Label: '24', Value: 24 },\n { Label: '26', Value: 26 },\n { Label: '28', Value: 28 },\n { Label: '36', Value: 36 },\n { Label: '48', Value: 48 },\n { Label: '72', Value: 72 }\n ],\n DisplayMemberPath: 'Label',\n ValueMemberPath: 'Value',\n Placeholder: '@@Size'\n }\n });\n PROPERTIES.push({\n ID: 'FontFamilyName',\n Section: 'text',\n Parent: 'content',\n Content: new ComponentPortal(ComboboxThemeControl),\n DataSource: ContentPanel.Font,\n Column: 2,\n ColSpan:2,\n Row: 3,\n InitArgs: {\n Multiple: false,\n UseGrouping: UseGrouping,\n DisplayMemberPath: 'Value',\n ValueMemberPath: 'Value',\n ItemsSourceSub: ContentPanel.Fonts,\n OptionStyle: 'Style',\n Placeholder: '@@Font'\n }\n });\n PROPERTIES.push({\n ID: 'TextOverflow',\n Section: 'text',\n Parent: 'content',\n Content: new ComponentPortal(ComboboxThemeControl),\n Column: 1,\n ColSpan: 3,\n Row: 4,\n InitArgs: {\n Multiple: false,\n EnumSource: TextOverflow,\n Placeholder: '@@TextOverflow'\n }\n });\n\n // !first positions //\n PROPERTIES.push({\n ID:null,\n Section: 'positions',\n Parent: 'content',\n Content: new ComponentPortal(HeaderThemeControl),\n Column: 1,\n ColSpan: 2,\n Row: 1,\n InitArgs: {\n Text:'@@PositionOfText'\n }\n })\n PROPERTIES.push({\n ID: 'HorizontalTextAlignment',\n Section: 'positions',\n Parent: 'content',\n Content: new ComponentPortal(TogglebuttongroupThemeControl),\n Column: 1,\n ColSpan: 5,\n Row: 2,\n InitArgs: {\n Multiple: false,\n Buttons: [{\n ButtonIcon: 'align_left_text',\n Value: 0,\n Tooltip: '@@LeftJustified'\n }, {\n ButtonIcon: 'align_center_text',\n Value: 1,\n Tooltip: '@@Centered'\n }, {\n ButtonIcon: 'align_right_text',\n Value: 2,\n Tooltip: '@@RightJustified'\n }]\n }\n });\n PROPERTIES.push({\n ID: 'VerticalTextAlignment',\n Section: 'positions',\n Parent: 'content',\n Content: new ComponentPortal(TogglebuttongroupThemeControl),\n Column: 5,\n ColSpan: 3,\n Row: 2,\n InitArgs: {\n Multiple: false,\n Buttons: [{\n ButtonIcon: 'vertical_align_top_text',\n Value: 0,\n Tooltip: '@@Top'\n }, {\n ButtonIcon: 'vertical_align_center_text',\n Value: 1,\n Tooltip: '@@Centered'\n }, {\n ButtonIcon: 'vertical_align_bottom_text',\n Value: 2,\n Tooltip: '@@Bottom'\n }]\n }\n });\n // !second row // positions\n PROPERTIES.push({\n ID: null,\n Section: 'positions',\n Parent: 'content',\n Content: new ComponentPortal(HeaderThemeControl),\n Column: 1,\n ColSpan: 2,\n Row: 3,\n InitArgs: {\n Text: '@@PositionOfControl'\n }\n })\n PROPERTIES.push({\n ID: 'HorizontalContentAlignment',\n Section: 'positions',\n Parent: 'content',\n Content: new ComponentPortal(TogglebuttongroupThemeControl),\n Column: 1,\n ColSpan: 5,\n Row: 4,\n InitArgs: {\n Multiple: false,\n Buttons: [{\n ButtonIcon: 'align_left_content',\n Value: 0,\n Tooltip: '@@LeftJustified'\n }, {\n ButtonIcon: 'align_center_content',\n Value: 1,\n Tooltip: '@@Centered'\n }, {\n ButtonIcon: 'align_right_content',\n Value: 2,\n Tooltip: '@@RightJustified'\n }],\n Placeholder: '@@Horizontal content align'\n }\n });\n PROPERTIES.push({\n ID: 'VerticalContentAlignment',\n Section: 'positions',\n Parent: 'content',\n Content: new ComponentPortal(TogglebuttongroupThemeControl),\n Column: 5,\n ColSpan: 3,\n Row: 4,\n InitArgs: {\n Multiple: false,\n Buttons: [{\n ButtonIcon: 'vertical_align_top_content',\n Value: 0,\n Tooltip: '@@Top'\n }, {\n ButtonIcon: 'vertical_align_center_content',\n Value: 1,\n Tooltip: '@@Centered'\n }, {\n ButtonIcon: 'vertical_align_bottom_content',\n Value: 2,\n Tooltip: '@@Bottom'\n }],\n Placeholder: '@@Vertical content align'\n }\n });\n // !end // positions\n //#endregion\n //#region Dim\n PROPERTIES.push({\n ID: null,\n Section: 'dimensions',\n Parent: 'content',\n Content: new ComponentPortal(HeaderThemeControl),\n Column: 1,\n ColSpan: 2,\n Row: 3,\n InitArgs: {\n Text: '@@Dimensions'\n }\n })\n PROPERTIES.push({\n ID: 'Height',\n Section: 'dimensions',\n Parent: 'content',\n Content: new ComponentPortal(UnitSelectionControl),\n Type: LayoutUnit,\n Label: 'H',\n LabelPosition: MenuTabLabelPosition.Left,\n LabelMinSize: '50px',\n Column: 1,\n Row: 4,\n InitArgs: {\n Minimum: 0\n }\n });\n PROPERTIES.push({\n ID: 'Width',\n Section: 'dimensions',\n Parent: 'content',\n Content: new ComponentPortal(UnitSelectionControl),\n Type: LayoutUnit,\n Label: 'W',\n LabelPosition: MenuTabLabelPosition.Left,\n LabelMinSize: '50px',\n Column: 2,\n Row: 4,\n InitArgs: {\n Minimum: 0\n }\n });\n\n PROPERTIES.push({\n ID: 'SetMinMaxSize',\n Section: 'dimensions',\n Parent: 'content',\n Content: new ComponentPortal(InputswitchThemeControl),\n Label: '@@SetMinMaxSize',\n LabelPosition: MenuTabLabelPosition.Right,\n Column: 1,\n ColSpan: 2,\n Row: 5,\n InitArgs: {\n Action: (item) => {\n if (item && !item.Event) {\n ContentPanel.SelectedItem.MinHeight = null;\n ContentPanel.SelectedItem.MinWidth = null;\n ContentPanel.SelectedItem.MaxHeight = null;\n ContentPanel.SelectedItem.MaxWidth = null;\n const mlpcv = new MultiPropertyChangeValue();\n mlpcv.ElementIDs = [item.SelectedItem.ID],\n ['MinHeight', 'MinWidth', 'MaxHeight', 'MaxWidth'].forEach(x => {\n mlpcv.Properties.push({\n PropertyName: x,\n Value: null\n });\n });\n LayoutService.OnMultiLayoutPropertyChanged([mlpcv]);\n if (item.SelectedItem.ValuesChanged) {\n item.SelectedItem.ValuesChanged.next();\n }\n }\n }\n }\n });\n\n PROPERTIES.push({\n ID: 'MinHeight',\n Section: 'dimensions',\n Parent: 'content',\n Content: new ComponentPortal(UnitSelectionControl),\n Type: LayoutUnit,\n Label: 'Min H',\n LabelPosition: MenuTabLabelPosition.Left,\n LabelMinSize: '60px',\n Column: 1,\n Row: 6,\n InitArgs: {\n Minimum: 0\n },\n CheckVisibility: (item) => {\n return (item.MinHeight && item.MinHeight.toStyle() != '') ||\n (item.MaxHeight && item.MaxHeight.toStyle() != '') ||\n (item.MinWidth && item.MinWidth.toStyle() != '') ||\n (item.MaxWidth && item.MaxWidth.toStyle() != '') ||\n item.SetMinMaxSize == true\n }\n });\n\n PROPERTIES.push({\n ID: 'MaxHeight',\n Section: 'dimensions',\n Parent: 'content',\n Content: new ComponentPortal(UnitSelectionControl),\n Type: LayoutUnit,\n Label: 'Max H',\n LabelPosition: MenuTabLabelPosition.Left,\n LabelMinSize: '60px',\n Column: 1,\n Row: 7,\n InitArgs: {\n Minimum: 0\n },\n CheckVisibility: (item) => {\n return (item.MinHeight && item.MinHeight.toStyle() != '') ||\n (item.MaxHeight && item.MaxHeight.toStyle() != '') ||\n (item.MinWidth && item.MinWidth.toStyle() != '') ||\n (item.MaxWidth && item.MaxWidth.toStyle() != '') ||\n item.SetMinMaxSize == true\n }\n });\n\n PROPERTIES.push({\n ID: 'MinWidth',\n Section: 'dimensions',\n Parent: 'content',\n Content: new ComponentPortal(UnitSelectionControl),\n Type: LayoutUnit,\n Label: 'Min W',\n LabelPosition: MenuTabLabelPosition.Left,\n LabelMinSize: '60px',\n Column: 2,\n Row: 6,\n InitArgs: {\n Minimum: 0\n },\n CheckVisibility: (item) => {\n return (item.MinHeight && item.MinHeight.toStyle() != '') ||\n (item.MaxHeight && item.MaxHeight.toStyle() != '') ||\n (item.MinWidth && item.MinWidth.toStyle() != '') ||\n (item.MaxWidth && item.MaxWidth.toStyle() != '') ||\n item.SetMinMaxSize == true\n }\n });\n\n PROPERTIES.push({\n ID: 'MaxWidth',\n Section: 'dimensions',\n Parent: 'content',\n Content: new ComponentPortal(UnitSelectionControl),\n Type: LayoutUnit,\n Label: 'Max W',\n LabelPosition: MenuTabLabelPosition.Left,\n LabelMinSize:'60px',\n Column: 2,\n Row: 7,\n InitArgs: {\n Minimum: 0\n },\n CheckVisibility: (item) => {\n return (item.MinHeight && item.MinHeight.toStyle() != '') ||\n (item.MaxHeight && item.MaxHeight.toStyle() != '') ||\n (item.MinWidth && item.MinWidth.toStyle() != '') ||\n (item.MaxWidth && item.MaxWidth.toStyle() != '') ||\n item.SetMinMaxSize == true\n }\n });\n //#endregion\n //#endregion\n \n PROPERTIES.push({\n ID: 'Margin',\n Section: 'mpp',\n Parent: 'content',\n Content: new ComponentPortal(LayoutUnitThicknessComponent),\n Type: LayoutUnitThickness,\n Column: 1,\n Row: 8,\n ColSpan: 2,\n InitArgs: {\n IsBorderRadius: false,\n Title:'@@Margin'\n }\n });\n PROPERTIES.push({\n ID: 'Padding',\n Section: 'mpp',\n Parent: 'content',\n Content: new ComponentPortal(LayoutUnitThicknessComponent),\n Type: LayoutUnitThickness,\n Column: 1,\n Row: 9,\n ColSpan: 2,\n InitArgs: {\n IsBorderRadius: false,\n Title: '@@Padding',\n }\n });\n PROPERTIES.push({\n ID: 'Location',\n Section: 'mpp',\n Parent: 'content',\n Content: new ComponentPortal(LayoutUnitThicknessComponent),\n Type: LayoutUnitThickness,\n Column: 1,\n Row: 10,\n ColSpan: 2,\n InitArgs: {\n IsBorderRadius: false,\n Title: '@@Location',\n\n }\n });\n //});\n }\n}","import { ComponentPortal } from \"@angular/cdk/portal\";\nimport { UUID } from \"angular2-uuid\";\nimport { PropertyGroupDisplay } from \"../../models/enums/propertygroupdisplay.enum\";\nimport { MenuTabLabelPosition } from \"../../models/menutab/menutab.property.model\";\nimport { PROPERTIES, PROPERTYGROUPS } from \"../../services/dynamic.component.service\";\nimport { LayoutService } from \"../../services/layout.service\";\nimport { ListBoxThemeControl } from \"../controls/listbox/listbox.theme.control\";\nimport { TextboxThemeControl } from \"../controls/textbox/textbox.theme.control\";\nimport { GenericMenuTab } from \"../menutabs/generic/generic.menu.tab\";\nimport { BasePanel } from \"./base.panel\";\n\nexport class CustomEventsPanel extends BasePanel {\n static override SIDS = ['d0367b90-4288-47aa-883c-6f9cd579d48a']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'d0367b90-4288-47aa-883c-6f9cd579d48a',\n ID: 'CustomEvents',\n Caption: '@@CustomEvents',\n Index: 201,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['1fr'],\n Rows: ['auto'],\n CheckVisibilityAsync: (item) => {\n return new Promise((resolve) => {\n const selected = LayoutService.SelectedItem.getValue();\n const layout = LayoutService.SelectedLayout.getValue();\n if (selected && layout && (layout.ElementType === 'template' || layout.ElementType === 'widget')) {\n if (selected.ElementType === 'template' || selected.ElementType === 'widget') {\n resolve(true);\n } else {\n resolve(false);\n }\n } else {\n resolve(false);\n }\n })\n }\n });\n PROPERTIES.push({\n ID: \"CustomEvents\",\n Parent: \"CustomEvents\",\n Content: new ComponentPortal(ListBoxThemeControl),\n Properties: [\n {\n ID: \"Name\",\n Parent: \"CustomEvents\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Name\",\n LabelPosition: MenuTabLabelPosition.Top\n }\n ],\n InitArgs: {\n ChangeType: 'Layout',\n GenerateNewItem: () => {\n const item = {\n ID: UUID.UUID(),\n Name: 'Var1',\n Value: null,\n Type: null,\n Formula: null\n };\n const layout = LayoutService.SelectedLayout.getValue();\n if (layout && layout.CustomEvents && layout.CustomEvents.length > 0) {\n let index = layout.CustomEvents.length + 1;\n let name = 'Var' + index++;\n while (layout.CustomEvents.some(x => x.Name === name)) {\n name = 'Var' + index++;\n }\n item.Name = name;\n }\n return item;\n }\n },\n LabelPosition: MenuTabLabelPosition.Top\n });\n }\n}","import { ComponentPortal } from \"@angular/cdk/portal\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { RequestOptionsColumn, RequestOptionsControl, RequestOptionsDialogArgs } from \"../../components/common/requestoptions/request.options.control\";\nimport { FilterHelper } from \"../../helpers/filter.helper\";\nimport { InjectorHelper } from \"../../helpers/injector.helper\";\nimport { LayoutHelper } from \"../../helpers/layout.helper\";\nimport { MetaHelper } from \"../../helpers/meta.helper\";\nimport { PropertyGroupDisplay } from \"../../models/enums/propertygroupdisplay.enum\";\nimport { ViewType } from \"../../models/enums/viewtype.enum\";\nimport { MultiPropertyChangeValue } from \"../../models/layout/layout.change.model\";\nimport { RequestFilter } from \"../../models/rest/requestfilter\";\nimport { RequestOptions } from \"../../models/rest/requestoptions\";\nimport { DataService } from \"../../services/data.service\";\nimport { DataModelService } from \"../../services/datamodel.service\";\nimport { PROPERTIES, PROPERTYGROUPS } from \"../../services/dynamic.component.service\";\nimport { LayoutService } from \"../../services/layout.service\";\nimport { ButtonThemeControl } from \"../controls/button/button.theme.control\";\nimport { ComboboxThemeControl } from \"../controls/combobox/combobox.theme.control\";\nimport { TextAreaThemeControl } from \"../controls/textarea/textarea.theme.control\";\nimport { GenericMenuTab } from \"../menutabs/generic/generic.menu.tab\";\nimport { BasePanel } from \"./base.panel\";\n\nexport class DataSourcePanel extends BasePanel {\n static override SIDS = ['977303bb-de02-40c0-936a-df5a5982572f']\n static override SetSelectedItem(item) {\n DataSourcePanel.CheckItem();\n DataSourcePanel.CheckFilterText();\n }\n private static ResetDataBinding(LayoutElement, idList) {\n if (LayoutElement) {\n LayoutElement.DataSource = null;\n LayoutElement.DataSourceID = null;\n LayoutElement.DataModelID = null;\n LayoutElement.DataFilter = null;\n idList.push(LayoutElement.ID);\n if (LayoutElement.Elements && LayoutElement.Elements.length > 0) {\n LayoutElement.Elements.forEach((item) => {\n DataSourcePanel.ResetDataBinding(item, idList);\n });\n }\n }\n }\n private static DataModels: BehaviorSubject = new BehaviorSubject(null);\n private static Tables: BehaviorSubject = new BehaviorSubject(null);\n private static CheckItem() {\n if (DataSourcePanel.SelectedItem) {\n if ((DataSourcePanel.SelectedItem.DataModelID == null && DataSourcePanel.SelectedItem.DataSource != null) || DataSourcePanel.SelectedItem.SourceType == 0) {\n DataSourcePanel.dataService.GetList('dynamic', 'GetAllStaticTables').subscribe((tables) => {\n DataSourcePanel.Tables.next(tables);\n });\n }\n if (DataSourcePanel.SelectedItem.DataModelID) {\n DataSourcePanel.dataModelService.GetModels().subscribe(models => {\n DataSourcePanel.DataModels.next(models);\n });\n if (DataSourcePanel.SelectedItem.DataSource) {\n if (DataSourcePanel.SelectedItem.SourceType != null) {\n switch (DataSourcePanel.SelectedItem.SourceType) {\n case DataSourcePanel.SelectedItem: break;\n case 0:\n break;\n case 1:\n DataSourcePanel.dataService.GetItem('dynamic', 'GetNonCCOContainersByDataModel', DataSourcePanel.SelectedItem.DataModelID).subscribe((data) => {\n const container = [];\n data.forEach((tab) => {\n container.push({\n Value: tab.SID,\n Caption: tab.Caption\n });\n });\n DataSourcePanel.Tables.next(container);\n });\n break;\n case 2:\n DataSourcePanel.dataService.GetItem('dynamic', 'GetTablesByDataModel', DataSourcePanel.SelectedItem.DataModelID).subscribe((tableList) => {\n const tables = [];\n tableList.forEach((tab) => {\n tables.push({\n Value: tab.SID,\n Caption: tab.Caption\n });\n });\n DataSourcePanel.Tables.next(tables);\n });\n break;\n }\n } else {\n DataSourcePanel.dataService.GetItem('dynamic', 'GetNonCCOContainersByDataModel', DataSourcePanel.SelectedItem.DataModelID).subscribe((data) => {\n let tables = [];\n if (data && data.length > 0) {\n let retVal = data.find((tab) => tab.SID == DataSourcePanel.SelectedItem.DataSource);\n if (retVal) {\n DataSourcePanel.SelectedItem.SourceType = 1;\n data.forEach((tab) => {\n tables.push({\n Value: tab.SID,\n Caption: tab.Caption\n });\n });\n DataSourcePanel.Tables.next(tables);\n }\n }\n });\n DataSourcePanel.dataService.GetItem('dynamic', 'GetTablesByDataModel', DataSourcePanel.SelectedItem.DataModelID).subscribe((data) => {\n let tables = [];\n if (data && data.length > 0) {\n let retVal = data.find((tab) => tab.SID == DataSourcePanel.SelectedItem.DataSource);\n if (retVal) {\n DataSourcePanel.SelectedItem.SourceType = 2;\n data.forEach((tab) => {\n tables.push({\n Value: tab.SID,\n Caption: tab.Caption\n });\n });\n DataSourcePanel.Tables.next(tables);\n }\n }\n });\n }\n \n }\n }\n }\n }\n private static ColumnText: BehaviorSubject = new BehaviorSubject(null);\n private static FilterText: BehaviorSubject = new BehaviorSubject(null);\n private static SortText: BehaviorSubject = new BehaviorSubject(null);\n private static CheckFilterText() {\n let columnText = null;\n let filterText = null;\n let sortText = null;\n if (DataSourcePanel.SelectedItem && DataSourcePanel.SelectedItem.DataFilter) {\n if (DataSourcePanel.SelectedItem.DataFilter.Columns && DataSourcePanel.SelectedItem.DataFilter.Columns.length > 0) {\n const list = [];\n DataSourcePanel.SelectedItem.DataFilter.Columns.forEach((col) => {\n list.push(col.Name);\n });\n columnText = list.join(', ');\n }\n if (DataSourcePanel.SelectedItem.DataFilter.Filters && DataSourcePanel.SelectedItem.DataFilter.Filters.length > 0) {\n filterText = RequestFilter.getRequestFilterText(DataSourcePanel.SelectedItem.DataFilter.Filters[0]);\n }\n if (DataSourcePanel.SelectedItem.DataFilter.Sort && DataSourcePanel.SelectedItem.DataFilter.Sort.length > 0) {\n const list = [];\n DataSourcePanel.SelectedItem.DataFilter.Sort.forEach(x => {\n list.push(x.Name + ' (' + (x.Order === 0 ? 'ASC' : 'DESC') + ')');\n });\n sortText = list.join(', ');\n }\n }\n DataSourcePanel.ColumnText.next(columnText);\n DataSourcePanel.FilterText.next(filterText);\n DataSourcePanel.SortText.next(sortText);\n }\n private static dataService;\n private static dataModelService;\n static InitPanel() {\n DataSourcePanel.dataModelService = InjectorHelper.InjectorInstance.get(DataModelService);\n DataSourcePanel.dataService = InjectorHelper.InjectorInstance.get(DataService);\n this.InitSelectedItem();\n PROPERTYGROUPS.push({\n SID:'977303bb-de02-40c0-936a-df5a5982572f',\n ID: 'DataSource',\n Caption: '@@DataSource',\n Index: 203,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['1fr'],\n Rows: ['auto', 'auto', 'auto', 'auto', 'auto', 'auto'],\n CheckVisibilityAsync: (item) => {\n return new Promise((resolve) => {\n const selected = LayoutService.SelectedItem.getValue();\n if (selected && selected.ElementType && ['flex', 'grid', 'raster', 'canvas', 'bootstrapgrid', 'bootstraprepeat'].indexOf(selected.ElementType) >= 0) {\n const layout = LayoutHelper.GetLayout();\n const resolution = LayoutHelper.GetActiveResolution(layout);\n MetaHelper.FindDataBindingProperties(resolution, selected).then(result => {\n resolve(!result || !result.IsDataBinding)\n });\n } else {\n resolve(false)\n }\n })\n }\n });\n LayoutService.ViewType.subscribe((vt) => {\n if (vt == ViewType.Edit && DataSourcePanel.SelectedItem) {\n DataSourcePanel.CheckItem();\n }\n })\n const dstype = [\n { Caption: '@@None', Value: null },\n { Caption: '@@Static', Value: 0 },\n { Caption: '@@Container', Value: 1 },\n { Caption: '@@Dynamic', Value: 2 },\n ]\n PROPERTIES.push({\n ID: \"SourceType\",\n Parent: \"DataSource\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@DataSourceType\",\n\n InitArgs: {\n Placeholder: \"\",\n Multiple: false,\n ItemsSource: dstype,\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'Value',\n Action: (value) => {\n if (value && value.Event) {\n delete DataSourcePanel.SelectedItem.DataSource;\n delete DataSourcePanel.SelectedItem.DataModelID;\n delete DataSourcePanel.SelectedItem.DataSourceID;\n delete DataSourcePanel.SelectedItem.DataFilter;\n const mlpcv = new MultiPropertyChangeValue();\n ['DataSource', 'DataSourceID', 'DataModelID', 'DataFilter'].forEach(x => {\n mlpcv.Properties.push({\n PropertyName: x,\n Value: null\n });\n });\n DataSourcePanel.ResetDataBinding(DataSourcePanel.SelectedItem, mlpcv.ElementIDs);\n LayoutService.OnMultiLayoutPropertyChanged([mlpcv]);\n switch (value.Event.value) {\n case null:\n \n break;\n case 0:\n DataSourcePanel.dataService.GetList('dynamic', 'GetAllStaticTables').subscribe((tables) => {\n DataSourcePanel.Tables.next(tables);\n });\n break;\n case 1:\n case 2:\n DataSourcePanel.dataModelService.GetModels().subscribe(models => {\n DataSourcePanel.DataModels.next(models);\n });\n break;\n }\n }\n }\n }\n });\n\n PROPERTIES.push({\n ID: \"DataModelID\",\n Parent: \"DataSource\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@DataModel\",\n CheckVisibility: (item) => {\n return item.SourceType == 1 || item.SourceType == 2;\n },\n InitArgs: {\n Placeholder: \"\",\n Multiple: false,\n ItemsSourceSub: DataSourcePanel.DataModels,\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'SID',\n Action: (value) => {\n if (value && value.Event && value.Event.value) {\n if (DataSourcePanel.SelectedItem) {\n if (DataSourcePanel.SelectedItem.DataSource != null) {\n DataSourcePanel.SelectedItem.DataSource = null;\n DataSourcePanel.SelectedItem.DataFilter = null;\n }\n if (DataSourcePanel.SelectedItem.SourceType == 1) {\n DataSourcePanel.dataService.GetItem('dynamic', 'GetNonCCOContainersByDataModel', DataSourcePanel.SelectedItem.DataModelID).subscribe((data) => {\n const container = [];\n data.forEach((tab) => {\n container.push({\n Value: tab.SID,\n Caption: tab.Caption\n });\n });\n DataSourcePanel.Tables.next(container);\n });\n }\n if (DataSourcePanel.SelectedItem.SourceType == 2) {\n DataSourcePanel.dataService.GetItem('dynamic', 'GetTablesByDataModel', DataSourcePanel.SelectedItem.DataModelID).subscribe((tableList) => {\n const tables = [];\n tableList.forEach((tab) => {\n tables.push({\n Value: tab.SID,\n Caption: tab.Caption\n });\n });\n DataSourcePanel.Tables.next(tables);\n });\n }\n }\n }\n }\n }\n });\n PROPERTIES.push({\n ID: \"DataSource\",\n Parent: \"DataSource\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@DataSource\",\n CheckVisibility: (item) => {\n return item.SourceType == 0 || item.DataModelID;\n },\n InitArgs: {\n Placeholder: \"\",\n Multiple: false,\n ItemsSourceSub: DataSourcePanel.Tables,\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'Value',\n Action: (ev) => {\n const selected = ev.SelectedItem;\n if (selected) {\n const changedProps = [];\n if (selected.SourceType == 0 && selected.DataModelID != null) {\n selected.DataModelID = null;\n changedProps.push('DataModelID');\n }\n changedProps.push('DataSource');\n selected.DataFilter = new RequestOptions();\n changedProps.push('DataFilter');\n DataSourcePanel.CheckFilterText();\n LayoutService.LayoutChanged.next(null);\n }\n }\n }\n });\n PROPERTIES.push({\n ID: \"DataFilter\",\n Parent: \"DataSource\",\n Content: new ComponentPortal(ButtonThemeControl),\n CheckVisibility: (item) => {\n return item.DataSource;\n },\n InitArgs: {\n Icon:'more_horiz',\n Action: (ev) => {\n const selected = ev.SelectedItem;\n if (selected && selected.DataSource) {\n this.dataModelService.GetFilterInfo(selected.DataSource).subscribe(filterInfo => {\n if (filterInfo) {\n const initArgs = new RequestOptionsDialogArgs();\n initArgs.SystemVariables = FilterHelper.GetVariables(selected);\n if (selected.DataFilter) {\n initArgs.RequestOptions = selected.DataFilter;\n }\n initArgs.ShowFilter = filterInfo.CanFilter;\n filterInfo.Columns.forEach(x => {\n const col = new RequestOptionsColumn();\n col.Name = x.Name;\n col.Type = x.DataType;\n col.CanFilter = filterInfo.CanFilter;\n col.CanSelect = filterInfo.CanSelectColumns;\n initArgs.Columns.push(col);\n });\n RequestOptionsControl.ShowDialog(initArgs, '@@Spalten, Filter und Sortierung', (r) => {\n selected.DataFilter = r;\n DataSourcePanel.CheckFilterText();\n LayoutService.OnLayoutPropertyChanged(selected.ID, 'DataFilter', r);\n });\n }\n });\n }\n }\n }\n });\n PROPERTIES.push({\n ID: null,\n Label: \"@@Spalten\",\n Parent: \"DataSource\",\n DataSource: DataSourcePanel.ColumnText,\n Content: new ComponentPortal(TextAreaThemeControl),\n CheckVisibility: (item) => {\n return item.DataFilter && item.DataFilter.Columns && item.DataFilter.Columns.length > 0;\n },\n InitArgs: {\n Disabled: true,\n\n }\n });\n PROPERTIES.push({\n ID: null,\n Label: \"@@Filter\",\n Parent: \"DataSource\",\n DataSource: DataSourcePanel.FilterText,\n Content: new ComponentPortal(TextAreaThemeControl),\n CheckVisibility: (item) => {\n return item.DataFilter && item.DataFilter.Filters && item.DataFilter.Filters.length > 0;\n },\n InitArgs: {\n Disabled: true,\n\n }\n });\n PROPERTIES.push({\n ID: null,\n Parent: \"DataSource\",\n DataSource: DataSourcePanel.SortText,\n Content: new ComponentPortal(TextAreaThemeControl),\n Label:\"@@Sortierung\",\n CheckVisibility: (item) => {\n return item.DataFilter && item.DataFilter.Sort && item.DataFilter.Sort.length > 0;\n },\n InitArgs: {\n Disabled: true,\n\n }\n });\n }\n}","import { ComponentPortal } from \"@angular/cdk/portal\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { InjectorHelper, TranslateHelper } from \"../../helpers/injector.helper\";\nimport { ThemeHelper } from \"../../helpers/theme.helpers\";\nimport { BackgroundPosition, BackgroundRepeat, BackgroundSize } from \"../../models/enums/background.enum\";\nimport { PropertyGroupDisplay } from \"../../models/enums/propertygroupdisplay.enum\";\nimport { MultiPropertyChangeValue } from \"../../models/layout/layout.change.model\";\nimport { StyleBase } from \"../../models/layoutbase.model\";\nimport { MenuTabLabelPosition } from \"../../models/menutab/menutab.property.model\";\nimport { Border } from \"../../models/style/border.model\";\nimport { Font } from \"../../models/style/font.model\";\nimport { Gradient } from \"../../models/style/gradient.model\";\nimport { PROPERTIES, PROPERTYGROUPS } from \"../../services/dynamic.component.service\";\nimport { LayoutService } from \"../../services/layout.service\";\nimport { MediaService } from \"../../services/media.service\";\nimport { MetaService } from \"../../services/meta.service\";\nimport { BorderThemeControl } from \"../controls/borderselection/borderselection.theme.control\";\nimport { BoxShadowThemeControl } from \"../controls/boxshadow/boxshadow.theme.control\";\nimport { ButtonThemeControl } from \"../controls/button/button.theme.control\";\nimport { ColorpickerThemeControl } from \"../controls/colorpicker/colorpicker.theme.control\";\nimport { ComboboxThemeControl } from \"../controls/combobox/combobox.theme.control\";\nimport { FileSelectionThemeControl } from \"../controls/fileselection/fileselection.theme.control\";\nimport { GradientpickerThemeControl } from \"../controls/gradientpicker/gradientpicker.theme.control\";\nimport { InputswitchThemeControl } from \"../controls/inputswitch/inputswitch.theme.control\";\nimport { TogglebuttonThemeControl } from \"../controls/togglebutton/togglebutton.theme.control\";\nimport { GenericMenuTab } from \"../menutabs/generic/generic.menu.tab\";\nimport { BasePanel } from \"./base.panel\";\n\nexport class DecorationsPanel extends BasePanel {\n private static Font: BehaviorSubject = new BehaviorSubject(null)\n private static Border: BehaviorSubject = new BehaviorSubject(null)\n private static LeftBorder: BehaviorSubject = new BehaviorSubject(null)\n private static BottomBorder: BehaviorSubject = new BehaviorSubject(null)\n private static RightBorder: BehaviorSubject = new BehaviorSubject(null)\n private static TopBorder: BehaviorSubject = new BehaviorSubject(null)\n private static SelectedItemSub: BehaviorSubject = new BehaviorSubject(null)\n static override SetSelectedItem(item) {\n DecorationsPanel.SelectedItemSub.next(item);\n if (item) {\n if (!item.Font) {\n item.Font = new Font();\n }\n if (!item.Border) {\n item.Border = new Border();\n }\n DecorationsPanel.Font.next(item.Font);\n DecorationsPanel.Border.next(item.Border);\n DecorationsPanel.RightBorder.next(item.Border.RightBorder);\n DecorationsPanel.LeftBorder.next(item.Border.LeftBorder);\n DecorationsPanel.BottomBorder.next(item.Border.BottomBorder);\n DecorationsPanel.TopBorder.next(item.Border.TopBorder);\n } else {\n DecorationsPanel.Font.next(null);\n DecorationsPanel.Border.next(null);\n }\n }\n static override SIDS = ['005cecb9-e72c-48ee-af12-6a2602a79dcf']\n static InitPanel() {\n this.InitSelectedItem()\n this.InitSelectedObject()\n PROPERTYGROUPS.push({\n SID:'005cecb9-e72c-48ee-af12-6a2602a79dcf',\n ID: 'decorations',\n Caption: '@@Decorations',\n Index: 1,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Sections: [\n {\n ID: 'style',\n Display: PropertyGroupDisplay.Grid,\n Columns: ['33%','33%','33%'],\n Rows: ['auto', 'auto', 'auto', 'auto', 'auto', 'auto']\n }, {\n ID: 'border',\n Display: PropertyGroupDisplay.Grid,\n Columns: ['120px', 'calc(50% - 60px)', 'calc(50% - 60px)'],\n Rows: ['auto', 'auto', 'auto', 'auto', 'auto', 'auto']\n }, {\n ID: 'shadow',\n Display: PropertyGroupDisplay.Grid,\n Columns: ['50%', '25%','25%'],\n Rows: ['auto', 'auto', 'auto', 'auto', 'auto', 'auto']\n }\n ]\n });\n PROPERTIES.push({\n ID: \"UseDecorationsOnLayout\",\n Parent: \"decorations\",\n Section: 'style',\n Content: new ComponentPortal(InputswitchThemeControl),\n DataSource: DecorationsPanel.SelectedItemSub,\n Label: \"@@UseDecorationsOnLayout\",\n LabelPosition: MenuTabLabelPosition.Right,\n Column: 1,\n ColSpan: 3,\n Row: 1,\n });\n let metaService = InjectorHelper.InjectorInstance.get(MetaService);\n metaService.GetControlStyles().subscribe(result => {\n const list = [{ Caption: TranslateHelper.TranslatorInstance.instant('@@None'), SID: null }];\n if (result) {\n list.push(...result);\n }\n let StyleList = list;\n PROPERTIES.push({\n ID: \"StyleRef\",\n Section:'style',\n Parent: \"decorations\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"Style Reference\",\n Column: 1,\n ColSpan: 3,\n Row: 3,\n InitArgs: {\n Placeholder: \"Style Referenz\",\n Multiple: false,\n ItemsSource: StyleList,\n ValueMemberPath: \"SID\",\n DisplayMemberPath: \"Caption\",\n Action: (ev) => {\n if (ev) {\n if (ev.SelectedItem && ev.SelectedItem.ComponentChanged) {\n ev.SelectedItem.ComponentChanged.next(true);\n }\n ev.Source.onStyleChanged('StyleRef');\n }\n }\n }\n });\n PROPERTIES.push({\n ID: \"StyleRefButton\",\n Parent: \"decorations\",\n Section: 'style',\n Content: new ComponentPortal(ButtonThemeControl),\n Column: 1,\n ColSpan:3,\n Row: 4,\n InitArgs: {\n Tooltip: \"@@Transferred to object\",\n Action: (ev) => {\n if (ev && ev.SelectedItem) {\n const selItem = ev.SelectedItem;\n if (selItem && selItem.StyleRef) {\n metaService.GetControlStyle(selItem.StyleRef).subscribe(result => {\n if (result && result.StyleJSON) {\n const styleList = StyleBase.applyToObject(selItem, result.StyleJSON);\n selItem.StyleRef = null;\n styleList.push('StyleRef');\n ev.Source.onStyleChanged(styleList);\n ev.Source.cdRef.detectChanges();\n }\n });\n }\n }\n },\n Caption: \"@@Transferred to object\"\n }\n });\n })\n PROPERTIES.push({\n ID: \"CSSClasses\",\n Section:\"style\",\n Parent: \"decorations\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@CSSClasses\",\n LabelPosition: MenuTabLabelPosition.Top,\n Column: 1,\n Row: 2,\n ColSpan: 3,\n InitArgs: {\n Placeholder: \"CSS Class\",\n Multiple:true,\n ItemsSourceSub: ThemeHelper.AvailableClassesSub,\n DisplayMemberPath: 'ClassName',\n Value:'ClassName'\n }\n });\n PROPERTIES.push({\n ID: \"Bold\",\n Parent: \"decorations\",\n Section: 'style',\n Content: new ComponentPortal(TogglebuttonThemeControl),\n DataSource: DecorationsPanel.Font,\n Label: \"@@Bold\",\n LabelPosition: MenuTabLabelPosition.Bottom,\n Column: 1,\n Row: 5,\n InitArgs: {\n Icon: 'bold'\n }\n });\n PROPERTIES.push({\n ID: \"Italic\",\n Parent: \"decorations\",\n Section: 'style',\n Content: new ComponentPortal(TogglebuttonThemeControl),\n DataSource: DecorationsPanel.Font,\n Label: \"@@Italic\",\n LabelPosition: MenuTabLabelPosition.Bottom,\n Column: 2,\n Row: 5,\n InitArgs: {\n Icon: 'italic'\n }\n });\n PROPERTIES.push({\n ID: \"Underline\",\n Parent: \"decorations\",\n Section: 'style',\n Content: new ComponentPortal(TogglebuttonThemeControl),\n DataSource: DecorationsPanel.Font,\n Label: \"@@Underline\",\n LabelPosition: MenuTabLabelPosition.Bottom,\n Column: 3,\n Row: 5,\n InitArgs: {\n Icon: 'underline'\n }\n }); \n PROPERTIES.push({\n ID: \"FontColor\",\n Parent: \"decorations\",\n Section: 'style',\n Content: new ComponentPortal(ColorpickerThemeControl),\n DataSource: DecorationsPanel.Font,\n Label: \"@@FontColor\",\n LabelPosition: MenuTabLabelPosition.Right,\n Column: 1,\n ColSpan: 3,\n Row: 6,\n InitArgs: {\n Icon: 'font_color'\n }\n });\n //#region Background\n PROPERTIES.push({\n ID: \"BackgroundColor\",\n Parent: \"decorations\",\n Section: 'style',\n Content: new ComponentPortal(GradientpickerThemeControl),\n Type: Gradient,\n Label: \"@@BackgroundColor\",\n LabelPosition: MenuTabLabelPosition.Right,\n Column: 1,\n ColSpan: 3,\n Row: 7,\n InitArgs: {\n Icon: 'background_color'\n },\n CheckVisibility: (item) => {\n return !item.BackgroundIsImage\n }\n });\n PROPERTIES.push({\n ID: \"BackgroundIsImage\",\n Parent: \"decorations\",\n Section: 'style',\n Content: new ComponentPortal(InputswitchThemeControl),\n DataSource: DecorationsPanel.SelectedItemSub,\n Label: \"@@BackgroundIsImage\",\n LabelPosition: MenuTabLabelPosition.Right,\n Icon: 'image',\n Column: 1,\n ColSpan:3,\n Row: 8,\n CheckVisibility: (item) => {\n let styleobj = Gradient.getStyleObject(item.BackgroundColor);\n if (Object.keys(styleobj).length > 0) {\n return false;\n } else {\n return true;\n }\n },\n InitArgs: {\n Action: (item) => {\n if (item && !item.Event) {\n delete item.SelectedItem.MediaSource;\n delete item.SelectedItem.BackgroundImage;\n delete item.SelectedItem.BackgroundSize;\n delete item.SelectedItem.BackgroundPosition;\n delete item.SelectedItem.BackgroundRepeat;\n const mlpcv = new MultiPropertyChangeValue();\n mlpcv.ElementIDs = [item.SelectedItem.ID],\n ['MediaSource', 'BackgroundImage', 'BackgroundSize', 'BackgroundPosition', 'BackgroundRepeat'].forEach(x => {\n mlpcv.Properties.push({\n PropertyName: x,\n Value: null\n });\n });\n LayoutService.OnMultiLayoutPropertyChanged([mlpcv]);\n if (item.SelectedItem.ValuesChanged) {\n item.SelectedItem.ValuesChanged.next();\n }\n }\n }\n }\n });\n let mediaService = InjectorHelper.InjectorInstance.get(MediaService);\n mediaService.GetUsable().subscribe((data) => {\n PROPERTIES.push({\n ID: \"MediaSource\",\n Parent: \"decorations\",\n Section: 'style',\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@SelectMediaSource\",\n Column: 1,\n ColSpan:3,\n Row: 9,\n CheckVisibility: (item) => {\n //if (item.MediaSource) {\n // item.BackgroundIsImage = true;\n // LayoutService.LayoutChanged.next();\n //}\n return item.BackgroundIsImage;\n },\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: data,\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'SID'\n }\n })\n });\n PROPERTIES.push({\n ID: \"BackgroundImage\",\n Parent: \"decorations\",\n Section: 'style',\n Content: new ComponentPortal(FileSelectionThemeControl),\n Row: 10,\n Column:1,\n ColSpan:3,\n CheckVisibility: (item) => {\n return item.BackgroundIsImage && item.MediaSource;\n }\n })\n PROPERTIES.push({\n ID: \"BackgroundSize\",\n Parent: \"decorations\",\n Section: 'style',\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Background size\",\n Row: 11,\n Column: 1,\n ColSpan:3,\n InitArgs: {\n Placeholder: \"@@SelectSize\",\n Multiple: false,\n EnumSource: BackgroundSize\n },\n CheckVisibility: (item) => {\n return item.BackgroundIsImage && item.MediaSource && item.BackgroundImage;\n }\n })\n PROPERTIES.push({\n ID: \"BackgroundPosition\",\n Parent: \"decorations\",\n Section: 'style',\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Background position\",\n Row: 12,\n Column: 1,\n ColSpan: 3,\n InitArgs: {\n Placeholder: \"@@SelectPosition\",\n Multiple: false,\n EnumSource: BackgroundPosition\n },\n CheckVisibility: (item) => {\n return item.BackgroundIsImage && item.MediaSource && item.BackgroundImage;\n }\n })\n PROPERTIES.push({\n ID: \"BackgroundRepeat\",\n Parent: \"decorations\",\n Section: 'style',\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Background repeat\",\n Row: 13,\n Column: 1,\n ColSpan: 3,\n InitArgs: {\n Placeholder: \"@@SelectRepeat\",\n Multiple: false,\n EnumSource: BackgroundRepeat\n },\n CheckVisibility: (item) => {\n return item.BackgroundIsImage && item.MediaSource && item.BackgroundImage;\n }\n })\n //#endregion\n //#region Border\n PROPERTIES.push({\n ID: \"UseBorder\",\n Parent: \"decorations\",\n Section: 'border',\n Content: new ComponentPortal(InputswitchThemeControl),\n DataSource: DecorationsPanel.SelectedItemSub,\n Label: \"@@UseBorder\",\n LabelPosition: MenuTabLabelPosition.Right,\n Icon: 'use_border',\n Column: 1,\n ColSpan: 3,\n Row: 1,\n InitArgs: {\n Action: (item) => {\n if (item && !item.Event) {\n delete item.SelectedItem.Border;\n LayoutService.OnLayoutPropertyChanged(item.SelectedItem.ID, 'Border', null);\n if (item.SelectedItem.ValuesChanged) {\n item.SelectedItem.ValuesChanged.next();\n }\n }\n LayoutService.LayoutChanged.next(null);\n }\n }\n });\n PROPERTIES.push({\n ID: \"Border\",\n Parent: \"decorations\",\n Section: 'border',\n Content: new ComponentPortal(BorderThemeControl),\n Type: Border,\n Column: 1,\n ColSpan: 3,\n Row: 5,\n CheckVisibility: (item) => {\n let borderSet = (item.Border && item.Border.toJSON && item.Border.toJSON() != null);\n if (item.UseBorder == null) {\n item.UseBorder = borderSet;\n this.SelectedItemSub.next(this.SelectedItem);\n }\n return item.UseBorder || borderSet;\n }\n });\n //#endregion\n //#region Shadow\n PROPERTIES.push({\n ID: \"DropShadow\",\n Parent: \"decorations\",\n Section: 'shadow',\n Content: new ComponentPortal(InputswitchThemeControl),\n Label: \"@@DropShadow\",\n LabelPosition: MenuTabLabelPosition.Right,\n Icon: 'drop_shadow',\n Column: 1,\n ColSpan: 3,\n Row: 1,\n InitArgs: {\n Action: (item) => {\n if (item && !item.Event) {\n delete item.SelectedItem.BoxShadow;\n LayoutService.OnLayoutPropertyChanged(item.SelectedItem.ID, 'BoxShadow', null);\n if (item.SelectedItem.ValuesChanged) {\n item.SelectedItem.ValuesChanged.next();\n }\n }\n LayoutService.LayoutChanged.next(null);\n }\n }\n });\n PROPERTIES.push({\n ID: \"BoxShadow\",\n Parent: \"decorations\",\n Section: 'shadow',\n Content: new ComponentPortal(BoxShadowThemeControl),\n Column: 1,\n ColSpan: 3,\n Row: 2,\n CheckVisibility: (item) => {\n let set = (item.BoxShadow && item.BoxShadow.length > 0);\n if (item.DropShadow == null) {\n item.DropShadow = set;\n this.SelectedItemSub.next(this.SelectedItem);\n }\n return item.DropShadow || set;\n }\n });\n //#endregion\n }\n}","import { ComponentPortal } from '@angular/cdk/portal';\nimport { BehaviorSubject } from 'rxjs';\nimport { InjectorHelper } from '../../helpers/injector.helper';\nimport { LayoutHelper } from '../../helpers/layout.helper';\nimport { MetaHelper } from '../../helpers/meta.helper';\nimport { PropertyGroupDisplay } from '../../models/enums/propertygroupdisplay.enum';\nimport { ViewType } from '../../models/enums/viewtype.enum';\nimport { MenuTabLabelPosition } from '../../models/menutab/menutab.property.model';\nimport { MetaService } from '../../services/meta.service';\nimport {\n\tPROPERTIES,\n\tPROPERTYGROUPS,\n} from '../../services/dynamic.component.service';\nimport { LayoutService } from '../../services/layout.service';\nimport { ComboboxThemeControl } from '../controls/combobox/combobox.theme.control';\nimport { TextAreaThemeControl } from '../controls/textarea/textarea.theme.control';\nimport { CheckBoxThemeControl } from '../controls/checkbox/checkbox.control';\nimport { TogglebuttonThemeControl } from '../controls/togglebutton/togglebutton.theme.control';\nimport { ColorpickerThemeControl } from '../controls/colorpicker/colorpicker.theme.control';\nimport { GenericMenuTab } from '../menutabs/generic/generic.menu.tab';\nimport { BasePanel } from './base.panel';\n\nexport class SimpleReportingStylePanel extends BasePanel {\n\tstatic override SIDS = ['c10149a8-82d6-4b21-8ae3-11cf20aefe6d'];\n\tstatic override SetSelectedItem(item) {\n\t\tSimpleReportingStylePanel.CheckItem();\n\t}\n\tprivate static ResetDataBinding(LayoutElement, idList) {\n\t\tif (LayoutElement) {\n\t\t\tLayoutElement.DataSource = null;\n\t\t\tLayoutElement.DataSourceID = null;\n\t\t\tLayoutElement.DataModelID = null;\n\t\t\tLayoutElement.DataFilter = null;\n\t\t\tidList.push(LayoutElement.ID);\n\t\t\tif (LayoutElement.Elements && LayoutElement.Elements.length > 0) {\n\t\t\t\tLayoutElement.Elements.forEach((item) => {\n\t\t\t\t\tSimpleReportingStylePanel.ResetDataBinding(item, idList);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\tprivate static Palettes: BehaviorSubject = new BehaviorSubject(null);\n\t// to get all the initial data from the services\n\tprivate static CheckItem() {\n\t\tif (SimpleReportingStylePanel.SelectedItem) {\n\t\t}\n\t}\n\n\tprivate static chartPaletteService;\n\tstatic InitPanel() {\n\t\tSimpleReportingStylePanel.chartPaletteService =\n\t\t\tInjectorHelper.InjectorInstance.get(MetaService);\n\n\t\tthis.InitSelectedItem();\n\t\tSimpleReportingStylePanel.chartPaletteService\n\t\t\t.ReadPaletteInfos()\n\t\t\t.subscribe((paletteInfos: any) => {\n\t\t\t\tif (paletteInfos) {\n\t\t\t\t\tSimpleReportingStylePanel.Palettes.next(paletteInfos);\n\t\t\t\t}\n\t\t\t});\n\t\tPROPERTYGROUPS.push({\n\t\t\tSID: 'c10149a8-82d6-4b21-8ae3-11cf20aefe6d',\n\t\t\tID: 'ChartSettings',\n\t\t\tCaption: '@@Chart Settings',\n\t\t\tIndex: 99,\n\t\t\tContent: GenericMenuTab,\n\t\t\tDisplay: PropertyGroupDisplay.Grid,\n\t\t\tColumns: ['1fr', '1fr', '1fr', '1fr'],\n\t\t\tRows: ['auto', 'auto', 'auto', 'auto', 'auto', 'auto'],\n\t\t\tCheckVisibilityAsync: (item) => {\n\t\t\t\treturn new Promise((resolve) => {\n\t\t\t\t\tconst selected = LayoutService.SelectedItem.getValue();\n\t\t\t\t\tif (\n\t\t\t\t\t\tselected &&\n\t\t\t\t\t\tselected.ElementType &&\n\t\t\t\t\t\tselected.ElementType === 'reporting'\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst layout = LayoutHelper.GetLayout();\n\t\t\t\t\t\tconst resolution = LayoutHelper.GetActiveResolution(layout);\n\t\t\t\t\t\tMetaHelper.FindDataBindingProperties(resolution, selected).then(\n\t\t\t\t\t\t\t(result) => {\n\t\t\t\t\t\t\t\tresolve(!result || !result.IsDataBinding);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve(false);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t});\n\t\tLayoutService.ViewType.subscribe((vt) => {\n\t\t\tif (vt == ViewType.Edit && SimpleReportingStylePanel.SelectedItem) {\n\t\t\t\tSimpleReportingStylePanel.CheckItem();\n\t\t\t}\n\t\t});\n\t\tconst chartTypes = [\n\t\t\t// { Caption: '@@Area Chart', Value: 'areachart' },\n\t\t\t{ Caption: '@@Bar Chart', Value: 'bar' },\n\t\t\t// { Caption: '@@Column Chart', Value: 'columnchart' },\n\t\t\t{ Caption: '@@Doughnut Chart', Value: 'doughnut' },\n\t\t\t{ Caption: '@@Line Chart', Value: 'line' },\n\t\t\t{ Caption: '@@Pie Chart', Value: 'pie' },\n\t\t\t// { Caption: '@@Bubble Chart', Value: 'bubblechart' },\n\t\t\t{ Caption: '@@Polar Chart', Value: 'polarArea' },\n\t\t\t{ Caption: '@@Radar', Value: 'radar' },\n\t\t];\n\n\t\tPROPERTIES.push({\n\t\t\tID: 'ChartType',\n\t\t\tParent: 'ChartSettings',\n\t\t\tContent: new ComponentPortal(ComboboxThemeControl),\n\t\t\tLabel: '@@Chart Type',\n\t\t\tColumn: 1,\n\t\t\tColSpan: 4,\n\t\t\tRow: 1,\n\t\t\tInitArgs: {\n\t\t\t\tPlaceholder: '@@Chart Type',\n\t\t\t\tMultiple: false,\n\t\t\t\tItemsSource: chartTypes,\n\t\t\t\tValueMemberPath: 'Value',\n\t\t\t\tDisplayMemberPath: 'Caption',\n\t\t\t},\n\t\t});\n\t\tPROPERTIES.push({\n\t\t\tID: 'DisableAutoLoad',\n\t\t\tParent: 'ChartSettings',\n\t\t\tLabel: '@@Disable Auto Load',\n\t\t\tContent: new ComponentPortal(CheckBoxThemeControl),\n\t\t\tColumn: 1,\n\t\t\tColSpan: 4,\n\t\t\tRow: 2,\n\t\t\tLabelPosition: MenuTabLabelPosition.Left,\n\t\t\tInitArgs: {\n\t\t\t\t// Caption: '@@Disable Auto Load',\n\t\t\t},\n\t\t});\n\t\tPROPERTIES.push({\n\t\t\tID: 'ChartPalette',\n\t\t\tParent: 'ChartSettings',\n\t\t\tContent: new ComponentPortal(ComboboxThemeControl),\n\t\t\tLabel: '@@Chart Palette',\n\t\t\t// LabelPosition:MenuTabLabelPosition.Left,\n\t\t\tColumn: 1,\n\t\t\tColSpan: 4,\n\t\t\tRow: 3,\n\t\t\tInitArgs: {\n\t\t\t\tPlaceholder: '@@Chart Palette',\n\t\t\t\tMultiple: false,\n\t\t\t\tItemsSourceSub: SimpleReportingStylePanel.Palettes,\n\t\t\t\tValueMemberPath: 'SID',\n\t\t\t\tDisplayMemberPath: 'Caption',\n\t\t\t},\n\t\t});\n\t\tconst legendPositions = [\n\t\t\t{\n\t\t\t\tCaption: '@@Top',\n\t\t\t\tValue: 'top',\n\t\t\t},\n\t\t\t{\n\t\t\t\tCaption: '@@Bottom',\n\t\t\t\tValue: 'bottom',\n\t\t\t},\n\t\t\t{\n\t\t\t\tCaption: '@@Left',\n\t\t\t\tValue: 'left',\n\t\t\t},\n\t\t\t{\n\t\t\t\tCaption: '@@Right',\n\t\t\t\tValue: 'right',\n\t\t\t},\n\t\t\t{\n\t\t\t\tCaption: '@@Hide',\n\t\t\t\tValue: 'hide',\n\t\t\t},\n\t\t];\n\n\t\tPROPERTIES.push({\n\t\t\tID: 'LegendPosition',\n\t\t\tParent: 'ChartSettings',\n\t\t\tContent: new ComponentPortal(ComboboxThemeControl),\n\t\t\tLabel: '@@Legend Position',\n\t\t\tColumn: 1,\n\t\t\tColSpan: 4,\n\t\t\tRow: 4,\n\t\t\tInitArgs: {\n\t\t\t\tMultiple: false,\n\t\t\t\tItemsSource: legendPositions,\n\t\t\t\tDisplayMemberPath: 'Caption',\n\t\t\t\tValueMemberPath: 'Value',\n\t\t\t},\n\t\t});\n\n\t\tPROPERTIES.push({\n\t\t\tID: 'XLabel',\n\t\t\tParent: 'ChartSettings',\n\t\t\tContent: new ComponentPortal(TextAreaThemeControl),\n\t\t\tLabel: '@@X Label',\n\t\t\tColumn: 1,\n\t\t\tColSpan: 4,\n\t\t\tRow: 5,\n\t\t});\n\n\t\t// create a new property group for the bold the x label\n\t\tPROPERTIES.push({\n\t\t\tID: 'BoldXLabel',\n\t\t\tParent: 'ChartSettings',\n\t\t\tLabel: '@@Bold',\n\t\t\tContent: new ComponentPortal(TogglebuttonThemeControl),\n\t\t\tColumn: 1,\n\t\t\tRow: 6,\n\t\t\tLabelPosition: MenuTabLabelPosition.Bottom,\n\t\t\tCheckVisibility: (item) => {\n\t\t\t\treturn item.XLabel && item.XLabel.length > 0;\n\t\t\t},\n\t\t\tInitArgs: {\n\t\t\t\tIcon: 'bold',\n\t\t\t\t// Caption: '@@Disable Auto Load',\n\t\t\t},\n\t\t});\n\n\t\t// create a new property group for the italic the x label\n\t\tPROPERTIES.push({\n\t\t\tID: 'ItalicXLabel',\n\t\t\tParent: 'ChartSettings',\n\t\t\tLabel: '@@Italic',\n\t\t\tContent: new ComponentPortal(TogglebuttonThemeControl),\n\t\t\tColumn: 2,\n\t\t\tRow: 6,\n\t\t\tLabelPosition: MenuTabLabelPosition.Bottom,\n\t\t\tCheckVisibility: (item) => {\n\t\t\t\treturn item.XLabel && item.XLabel.length > 0;\n\t\t\t},\n\t\t\tInitArgs: {\n\t\t\t\tIcon: 'italic',\n\t\t\t\t// Caption: '@@Disable Auto Load',\n\t\t\t},\n\t\t});\n\t\tPROPERTIES.push({\n\t\t\tID: 'ColorXLabel',\n\t\t\tParent: 'ChartSettings',\n\t\t\tContent: new ComponentPortal(ColorpickerThemeControl),\n\t\t\tLabel: '@@Color',\n\t\t\tColumn: 3,\n\t\t\tRow: 6,\n\t\t\tLabelPosition: MenuTabLabelPosition.Bottom,\n\t\t\tCheckVisibility: (item) => {\n\t\t\t\treturn item.XLabel && item.XLabel.length > 0;\n\t\t\t},\n\t\t\tInitArgs: {\n\t\t\t\tIcon: 'color_fill',\n\t\t\t},\n\t\t});\n\n\t\t// create a new property group for the y label font size\n\t\tconst fontSizes = [\n\t\t\t{ Caption: '8', Value: '8' },\n\t\t\t{ Caption: '9', Value: '9' },\n\t\t\t{ Caption: '10', Value: '10' },\n\t\t\t{ Caption: '11', Value: '11' },\n\t\t\t{ Caption: '12', Value: '12' },\n\t\t\t{ Caption: '14', Value: '14' },\n\t\t\t{ Caption: '16', Value: '16' },\n\t\t\t{ Caption: '18', Value: '18' },\n\t\t\t{ Caption: '20', Value: '20' },\n\t\t\t{ Caption: '22', Value: '22' },\n\t\t\t{ Caption: '24', Value: '24' },\n\t\t\t{ Caption: '26', Value: '26' },\n\t\t\t{ Caption: '28', Value: '28' },\n\t\t\t{ Caption: '36', Value: '36' },\n\t\t\t{ Caption: '48', Value: '48' },\n\t\t\t{ Caption: '72', Value: '72' },\n\t\t];\n\t\tPROPERTIES.push({\n\t\t\tID: 'FontSizeXLabel',\n\t\t\tParent: 'ChartSettings',\n\t\t\tContent: new ComponentPortal(ComboboxThemeControl),\n\t\t\tLabel: '@@Font Size',\n\t\t\tColumn: 4,\n\t\t\tRow: 6,\n\t\t\tLabelPosition: MenuTabLabelPosition.Bottom,\n\t\t\tCheckVisibility: (item) => {\n\t\t\t\treturn item.XLabel && item.XLabel.length > 0;\n\t\t\t},\n\t\t\tInitArgs: {\n\t\t\t\tPlaceholder: '@@Font Size',\n\t\t\t\tMultiple: false,\n\t\t\t\tItemsSource: fontSizes,\n\t\t\t\tValueMemberPath: 'Value',\n\t\t\t\tDisplayMemberPath: 'Caption',\n\t\t\t},\n\t\t});\n\t\t// create a new property group input y label\n\t\tPROPERTIES.push({\n\t\t\tID: 'YLabel',\n\t\t\tParent: 'ChartSettings',\n\t\t\tContent: new ComponentPortal(TextAreaThemeControl),\n\t\t\tLabel: '@@Y Label',\n\t\t\tColumn: 1,\n\t\t\tColSpan: 4,\n\t\t\tRow: 7,\n\t\t});\n\n\t\t// create a new property group for the bold the y label\n\t\tPROPERTIES.push({\n\t\t\tID: 'BoldYLabel',\n\t\t\tParent: 'ChartSettings',\n\t\t\tLabel: '@@Bold',\n\t\t\tContent: new ComponentPortal(TogglebuttonThemeControl),\n\t\t\tColumn: 1,\n\t\t\tRow: 8,\n\t\t\tLabelPosition: MenuTabLabelPosition.Bottom,\n\t\t\tCheckVisibility: (item) => {\n\t\t\t\treturn item.YLabel && item.YLabel.length > 0;\n\t\t\t},\n\t\t\tInitArgs: {\n\t\t\t\tIcon: 'bold',\n\t\t\t\t// Caption: '@@Disable Auto Load',\n\t\t\t},\n\t\t});\n\n\t\t// create a new property group for the italic the y label\n\n\t\tPROPERTIES.push({\n\t\t\tID: 'ItalicYLabel',\n\t\t\tParent: 'ChartSettings',\n\t\t\tLabel: '@@Italic',\n\t\t\tContent: new ComponentPortal(TogglebuttonThemeControl),\n\t\t\tColumn: 2,\n\t\t\tRow: 8,\n\t\t\tLabelPosition: MenuTabLabelPosition.Bottom,\n\t\t\tCheckVisibility: (item) => {\n\t\t\t\treturn item.YLabel && item.YLabel.length > 0;\n\t\t\t},\n\t\t\tInitArgs: {\n\t\t\t\tIcon: 'italic',\n\t\t\t\t// Caption: '@@Disable Auto Load',\n\t\t\t},\n\t\t});\n\n\t\tPROPERTIES.push({\n\t\t\tID: 'ColorYLabel',\n\t\t\tParent: 'ChartSettings',\n\t\t\tContent: new ComponentPortal(ColorpickerThemeControl),\n\t\t\tLabel: '@@Color',\n\t\t\tColumn: 3,\n\t\t\tRow: 8,\n\t\t\tLabelPosition: MenuTabLabelPosition.Bottom,\n\t\t\tCheckVisibility: (item) => {\n\t\t\t\treturn item.YLabel && item.YLabel.length > 0;\n\t\t\t},\n\t\t\tInitArgs: {\n\t\t\t\tIcon: 'color_fill',\n\t\t\t},\n\t\t});\n\n\t\tPROPERTIES.push({\n\t\t\tID: 'FontSizeYLabel',\n\t\t\tParent: 'ChartSettings',\n\t\t\tContent: new ComponentPortal(ComboboxThemeControl),\n\t\t\tLabel: '@@Font Size',\n\t\t\tLabelPosition: MenuTabLabelPosition.Bottom,\n\t\t\tColumn: 4,\n\t\t\tRow: 8,\n\t\t\tCheckVisibility: (item) => {\n\t\t\t\treturn item.YLabel && item.YLabel.length > 0;\n\t\t\t},\n\t\t\tInitArgs: {\n\t\t\t\tPlaceholder: '@@Font Size',\n\t\t\t\tMultiple: false,\n\t\t\t\tItemsSource: fontSizes,\n\t\t\t\tValueMemberPath: 'Value',\n\t\t\t\tDisplayMemberPath: 'Caption',\n\t\t\t},\n\t\t});\n\t\tPROPERTIES.push({\n\t\t\tID: 'GridColor',\n\t\t\tParent: 'ChartSettings',\n\t\t\tContent: new ComponentPortal(ColorpickerThemeControl),\n\t\t\tLabel: '@@Grid Color',\n\t\t\tColumn: 1,\n\t\t\tColSpan: 4,\n\t\t\tRow: 9,\n\t\t\tLabelPosition: MenuTabLabelPosition.Left,\n\t\t\tInitArgs: {\n\t\t\t\tIcon: 'color_fill',\n\t\t\t},\n\t\t});\n\t\tPROPERTIES.push({\n\t\t\tID: 'HideXAxisGrid',\n\t\t\tParent: 'ChartSettings',\n\t\t\tLabel: '@@Hide X Axis Grid',\n\t\t\tContent: new ComponentPortal(CheckBoxThemeControl),\n\t\t\tColumn: 1,\n\t\t\tColSpan: 4,\n\t\t\tRow: 10,\n\t\t\tLabelPosition: MenuTabLabelPosition.Left,\n\t\t\tCheckVisibility: (item) => { \n\t\t\t\tconst gridTypes = ['line', 'bar', 'radar'];\n\t\t\t\treturn gridTypes.includes(item.ChartType);\n\t\t\t}\n\t\t});\n\n\t\tPROPERTIES.push({\n\t\t\tID: 'HideYAxisGrid',\n\t\t\tParent: 'ChartSettings',\n\t\t\tLabel: '@@Hide Y Axis Grid',\n\t\t\tContent: new ComponentPortal(CheckBoxThemeControl),\n\t\t\tColumn: 1,\n\t\t\tColSpan: 4,\n\t\t\tRow: 11,\n\t\t\tLabelPosition: MenuTabLabelPosition.Left,\n\t\t\tCheckVisibility: (item) => {\n\t\t\t\tconst gridTypes = ['line', 'bar', 'radar'];\n\t\t\t\treturn gridTypes.includes(item.ChartType);\n\t\t\t},\n\t\t});\n\t}\n}\n","import { ComponentPortal } from \"@angular/cdk/portal\";\nimport { TransitionProperty } from \"../../models/enums/transitionproperty.enum\";\nimport { TransitionTimingFunction } from \"../../models/enums/transitiontimingfunction.enum\";\nimport { PROPERTIES, PROPERTYGROUPS } from \"../../services/dynamic.component.service\";\nimport { ComboboxThemeControl } from \"../controls/combobox/combobox.theme.control\";\nimport { ListBoxThemeControl } from \"../controls/listbox/listbox.theme.control\";\nimport { TextboxThemeControl } from \"../controls/textbox/textbox.theme.control\";\nimport { GenericMenuTab } from \"../menutabs/generic/generic.menu.tab\";\nimport { BasePanel } from \"./base.panel\";\n\nexport class TransitionsPanel extends BasePanel {\n static override SIDS = ['d33d298c-38f3-44bc-be99-55cac0c3b775']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'d33d298c-38f3-44bc-be99-55cac0c3b775',\n ID: 'transitions',\n Caption: '@@Transitions',\n Index: 4,\n Content: GenericMenuTab\n });\n PROPERTIES.push({\n ID: \"Transitions\",\n Parent: \"transitions\",\n Content: new ComponentPortal(ListBoxThemeControl),\n Properties: [\n {\n ID: \"Property\",\n Parent: \"transitions\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Property\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: TransitionProperty\n }\n },\n {\n ID: \"Duration\",\n Parent: \"transitions\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Duration\",\n InitArgs: {\n InputType: 'number',\n Minimum:0\n }\n },\n {\n ID: \"TimingFunction\",\n Parent: \"transitions\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@TimingFunction\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: TransitionTimingFunction\n }\n },\n {\n ID: \"Delay\",\n Parent: \"transitions\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Delay\",\n InitArgs: {\n InputType: 'number',\n Minimum: 0\n }\n }\n ],\n InitArgs: {\n GenerateNewItem: () => {\n return {};\n },\n GetCaption(data, i) {\n let retVal = (i + 1).toString() + '.';\n if (typeof data.Property === 'number') {\n retVal += ' ' + TransitionProperty[data.Property];\n }\n if (typeof data.Duration === 'number') {\n retVal += ' ' + data.Duration + 's';\n }\n if (typeof data.TimingFunction === 'number') {\n retVal += ' ' + TransitionTimingFunction[data.TimingFunction];\n }\n if (typeof data.Delay === 'number') {\n retVal += ' ' + data.Delay + 's';\n }\n return retVal;\n }\n }\n });\n }\n}","import { BehaviorSubject, of, Subject } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { Color } from '../models/style/color.model';\r\nimport { WorkflowSaveObject } from '../models/workflow/workflow.model';\r\nimport { DataService } from '../services/data.service';\r\nimport { ContainerEnumService } from '../services/datamodel.service';\r\nimport { GeneralSettingsService } from '../services/generalsettings.service';\r\nimport { GlobalVariableService } from '../services/globalvariable.service';\r\nimport { MediaService } from '../services/media.service';\r\nimport { MetaService } from '../services/meta.service';\r\nimport { PermissionsService } from '../services/permissions.service';\r\nimport { RolesService } from '../services/roles.service';\r\nimport { SideNavService } from '../services/sidenav.service';\r\nimport { UsersService } from '../services/users.service';\r\nimport { WorkflowService } from '../services/workflow.service';\r\nimport { InMemCache } from './drivers/inmem.driver';\r\nimport { NoCache } from './drivers/nocache.driver';\r\nimport { CacheItem } from './models/cacheitem.model';\r\nimport { CacheTable } from './models/cachetable.model';\r\n\r\n// @dynamic\r\nexport class CacheService {\r\n\r\n private static db;\r\n\r\n private static metaService: MetaService;\r\n private static dataService: DataService;\r\n private static enumService: ContainerEnumService;\r\n private static mediaService: MediaService;\r\n private static rolesService: RolesService;\r\n private static workflowService: WorkflowService;\r\n private static permissionService: PermissionsService;\r\n private static variableService: GlobalVariableService;\r\n private static gss: GeneralSettingsService;\r\n private static tables: CacheTable[] = [];\r\n\r\n public static ContentPermissionChanged: Subject = new Subject();\r\n public static NavigationPermissionChanged: Subject = new Subject();\r\n public static RolesChanged: Subject = new Subject();\r\n public static GlobalVariablesValues: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n public static Initialize(active, metaService: MetaService, dataService: DataService, enumService: ContainerEnumService,\r\n mediaService: MediaService, permissionService: PermissionsService, gss: GeneralSettingsService,\r\n rolesService: RolesService, variableService: GlobalVariableService, workflowService: WorkflowService) {\r\n this.workflowService = workflowService;\r\n this.metaService = metaService;\r\n this.dataService = dataService;\r\n this.enumService = enumService;\r\n this.mediaService = mediaService;\r\n this.permissionService = permissionService;\r\n this.rolesService = rolesService;\r\n this.variableService = variableService;\r\n this.gss = gss;\r\n\r\n this.BuildDefaultTables(['layouts', 'templates', 'widgets', 'navigation', 'navigationstructure', 'tables', 'flat_tables',\r\n 'flat_tables_recursive', 'enum_values', 'enums', 'mediasources', 'layoutpermissions', 'navigationpermissions', 'roles',\r\n 'workflow_cache', 'workflow_templates', 'ribbon', 'context_menu', 'globalvariable', 'styles', 'flat_data_tables', 'chartpalette']);\r\n\r\n const item = new CacheTable();\r\n item.name = 'changedates';\r\n CacheService.tables.push(item);\r\n\r\n UsersService.Logout.subscribe(() => {\r\n CacheService.db.Clear('workflow_cache');\r\n CacheService.db.Clear('globalvariable');\r\n });\r\n\r\n const promise = new Promise((resolve) => {\r\n if (active) {\r\n new InMemCache().Initialize('evidanza', 7).then((db) => {\r\n CacheService.db = db;\r\n CacheService.Create();\r\n resolve(true);\r\n });\r\n // if (!self.indexedDB) {\r\n // try {\r\n // new WebSQL().Initialize('evidanza', 7).then((db) => {\r\n // CacheService.db = db;\r\n // CacheService.Create();\r\n // resolve(true);\r\n // });\r\n // } catch {\r\n // new NoCache().Initialize('evidanza', 7).then((db) => {\r\n // CacheService.db = db;\r\n // CacheService.Create();\r\n // resolve(true);\r\n // });\r\n // }\r\n // } else {\r\n // new IndexedDB().Initialize('evidanza', 7).then((db) => {\r\n // CacheService.db = db;\r\n // CacheService.Create();\r\n // resolve(true);\r\n // });\r\n // }\r\n } else {\r\n new NoCache().Initialize('evidanza', 7).then((db) => {\r\n CacheService.db = db;\r\n CacheService.Create();\r\n resolve(true);\r\n });\r\n }\r\n });\r\n return promise;\r\n }\r\n private static BuildDefaultTables(names) {\r\n names.forEach((name) => {\r\n const item = new CacheTable();\r\n item.name = name;\r\n CacheService.tables.push(item);\r\n });\r\n }\r\n\r\n private static Create() {\r\n CacheService.db.CreateTables(this.tables);\r\n CacheService.Refresh();\r\n }\r\n public static Refresh() {\r\n CacheService.db.ReadAll('changedates').subscribe((local) => {\r\n if (local) {\r\n this.metaService.ReadChangeDates().subscribe((result) => {\r\n if (result && local) {\r\n result.forEach((remote) => {\r\n CacheService.CheckToDelete(remote, local);\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n public static RefreshSpecific(classname, id) {\r\n if (id) {\r\n const tables = CacheService.MapClassname(classname);\r\n tables.forEach((table) => {\r\n CacheService.db.Delete(table, id);\r\n });\r\n if (classname == 'evidanza.App.Shared.Layouts.NavigationNode') {\r\n SideNavService.Reload.next(id);\r\n } else if (classname == 'evidanza.App.Shared.Permissions.Layout') {\r\n CacheService.ContentPermissionChanged.next(id);\r\n }\r\n }\r\n if (classname == 'evidanza.App.Shared.Permissions.Navigation') {\r\n CacheService.NavigationPermissionChanged.next(null);\r\n } else if (classname === 'evidanza.App.Shared.Variable') {\r\n CacheService.UpsertGlobalVariables();\r\n }\r\n }\r\n private static CheckToDelete(remote, local) {\r\n const toDelete = local.filter((element) => {\r\n return element.key.indexOf(remote.Class) > -1 && new Date(element.value) < new Date(remote.ChangeDate);\r\n });\r\n\r\n if (toDelete && toDelete.length > 0) {\r\n const tables = CacheService.MapClassname(remote.Class);\r\n tables.forEach((table) => {\r\n toDelete.forEach((item) => {\r\n const id = CacheService.ResolveID(remote.Class, item.key);\r\n if (id) {\r\n CacheService.db.Delete(table, id);\r\n CacheService.db.Delete('changedates', item.key);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n private static Drop(tablename) {\r\n CacheService.db.transaction((tx) => {\r\n tx.executeSql('Drop table ' + tablename);\r\n });\r\n }\r\n private static MapClassname(classname) {\r\n const result = [];\r\n switch (classname) {\r\n case 'evidanza.App.Shared.Layouts.Layout': result.push('layouts'); break;\r\n case 'evidanza.App.Shared.Permissions.Layout': result.push('layoutpermissions'); break;\r\n case 'evidanza.App.Shared.Permissions.Navigation': result.push('navigationpermissions'); break;\r\n case 'evidanza.App.Shared.Layouts.Template': result.push('templates'); break;\r\n case 'evidanza.App.Shared.Layouts.Widget': result.push('widgets'); break;\r\n case 'evidanza.App.Shared.Layouts.NavigationNode': result.push('navigation'); break;\r\n case 'evidanza.App.Shared.Layouts.NavigationStructure': result.push('navigationstructure'); break;\r\n case 'evidanza.App.Shared.Dynamic.ContainerClassObject':\r\n result.push('tables');\r\n result.push('flat_tables');\r\n result.push('flat_tables_recursive');\r\n result.push('flat_data_tables');\r\n break;\r\n case 'evidanza.Core.Service.Media.MediaSource': result.push('mediasources'); break;\r\n case 'evidanza.Core.ServiceBase.Security.Role': result.push('roles'); break;\r\n case 'evidanza.App.Shared.Dynamic.ContainerEnum': result.push('enums'); result.push('enum_values'); break;\r\n case 'evidanza.App.Shared.Layouts.Ribbon': result.push('ribbon'); break;\r\n case 'evidanza.App.Shared.Layouts.ContextMenu': result.push('context_menu'); break;\r\n case 'evidanza.App.Shared.Variable': result.push('globalvariable'); break;\r\n case 'evidanza.App.Shared.Data.StyleObject': result.push('styles'); break;\r\n case 'evidanza.App.Shared.Data.ChartPalette': result.push('chartpalette'); break;\r\n }\r\n return result;\r\n }\r\n private static UpsertChangeDate(tablename) {\r\n const entry = new CacheItem(tablename, new Date().toJSON());\r\n CacheService.db.ReadKey('changedates', entry.key).subscribe((result) => {\r\n if (result) {\r\n CacheService.db.Update('changedates', entry);\r\n } else {\r\n CacheService.db.Insert('changedates', entry);\r\n }\r\n });\r\n }\r\n private static ResolveID(remoteclass, localclass) {\r\n if (localclass.length > remoteclass.length) {\r\n const result = localclass.substr(remoteclass.length + 1);\r\n return result;\r\n } else {\r\n return null;\r\n }\r\n }\r\n //#region Layout\r\n //public static ReadLayout(key) {\r\n // const promise = new Promise((resolve) => {\r\n // CacheService.db.ReadKey('layouts', key, CacheService.metaService.ReadLayoutByKey(key)).subscribe((result) => {\r\n // if (!result) {\r\n // resolve(null);\r\n // } else {\r\n // resolve((result.value));\r\n // }\r\n // });\r\n // });\r\n // return promise;\r\n //}\r\n //public static ContainsLayout(key) {\r\n // return new Promise((resolve) => {\r\n // CacheService.db.ReadKey('layouts', key).subscribe((result) => {\r\n // resolve(result != null);\r\n // });\r\n // });\r\n //}\r\n //#endregion\r\n //#region Template\r\n //public static ReadTemplate(key) {\r\n // const promise = new Promise((resolve) => {\r\n // CacheService.db.ReadKey('templates', key, CacheService.metaService.ReadTemplateById(key)).subscribe((result) => {\r\n // if (!result) {\r\n // resolve(null);\r\n // } else {\r\n // resolve((result.value));\r\n // }\r\n // });\r\n // });\r\n // return promise;\r\n //}\r\n //public static ReadTemplateSub(key) {\r\n // return CacheService.db.ReadKey('templates', key, CacheService.metaService.ReadTemplateById(key)).pipe(map((val: any) => { return val.value }))\r\n //}\r\n //public static RemoveTemplate(key) {\r\n // return CacheService.db.Delete('templates', key)\r\n //}\r\n //#endregion\r\n //#region Widget\r\n public static ReadWidget(key) {\r\n const promise = new Promise((resolve) => {\r\n CacheService.db.ReadKey('widgets', key, CacheService.metaService.ReadWidgetById(key)).subscribe((result) => {\r\n if (!result) {\r\n resolve(null);\r\n } else {\r\n resolve((result.value));\r\n }\r\n });\r\n });\r\n return promise;\r\n }\r\n //#endregion\r\n //#region Navigation\r\n public static ReadNavigation(key) {\r\n const promise = new Promise((resolve) => {\r\n CacheService.db.ReadKey('navigation', key, CacheService.metaService.GetNavigationNodesForStructure(key)).subscribe((result) => {\r\n if (!result) {\r\n resolve([]);\r\n } else {\r\n resolve((result.value));\r\n }\r\n });\r\n });\r\n return promise;\r\n }\r\n public static ReadNavigationStructure(key) {\r\n const promise = new Promise((resolve) => {\r\n CacheService.db.ReadKey('navigationstructure', key, CacheService.metaService.GetNavigationStructureByKey(key)).subscribe((r) => {\r\n if (!r) {\r\n resolve(null);\r\n } else {\r\n resolve((r.value));\r\n }\r\n });\r\n });\r\n return promise;\r\n }\r\n //#endregion\r\n //#region Ribbon\r\n public static ReadRibbon(key) {\r\n const promise = new Promise((resolve) => {\r\n CacheService.db.ReadKey('ribbon', key, CacheService.metaService.ReadRibbonByKey(key)).subscribe((result) => {\r\n if (!result) {\r\n resolve(null);\r\n } else {\r\n resolve((result.value));\r\n }\r\n });\r\n });\r\n return promise;\r\n }\r\n //#endregion\r //#region Style\r\n public static ReadStyle(key) {\r\n const promise = new Promise((resolve) => {\r\n CacheService.db.ReadKey('styles', key, CacheService.metaService.GetControlStyle(key)).subscribe((result) => {\r\n if (!result) {\r\n resolve(null);\r\n } else {\r\n resolve((result.value));\r\n }\r\n });\r\n });\r\n return promise;\r\n }\r\n public static ReadStyleSub(key) {\r\n return CacheService.db.ReadKey('styles', key, CacheService.metaService.GetControlStyle(key)).pipe(map((val: any) => { return val.value }))\r\n }\r\n //#endregion\r //#region ContextMenu\r\n public static ReadContextMenu(key) {\r\n const promise = new Promise((resolve) => {\r\n CacheService.db.ReadKey('context_menu', key, CacheService.metaService.ReadContextMenuByKey(key)).subscribe((result) => {\r\n if (!result) {\r\n resolve(null);\r\n } else {\r\n resolve((result.value));\r\n }\r\n });\r\n });\r\n return promise;\r\n }\r\n //#endregion\r\n\r\n\r\n //#region Table\r\n public static ReadTable(key) {\r\n const promise = new Promise((resolve) => {\r\n if (key != null) {\r\n CacheService.db.ReadKey('tables', key, CacheService.dataService.GetListWithID('dynamic', 'GetTable', key)).subscribe((r) => {\r\n if (!r) {\r\n resolve(null);\r\n } else {\r\n resolve((r.value));\r\n }\r\n });\r\n }\r\n });\r\n return promise;\r\n }\r\n public static ReadTableSub(key) {\r\n //const promise = new Promise((resolve) => {\r\n if (key != null) {\r\n return CacheService.db.ReadKey('tables', key, CacheService.dataService.GetListWithID('dynamic', 'GetTable', key)).pipe(map((val:any) => { return val.value }))\r\n // .subscribe((r) => {\r\n // if (!r) {\r\n // resolve(null);\r\n // } else {\r\n // resolve((r.value));\r\n // }\r\n //});\r\n }\r\n //});\r\n //return promise;\r\n return of(null);\r\n }\r\n //#endregion\r\n\r\n //#region FlatTable\r\n public static ReadFlatTable(key: string, recursive: boolean) {\r\n const table = recursive ? 'flat_tables_recursive' : 'flat_tables';\r\n const promise = new Promise((resolve) => {\r\n CacheService.db.ReadKey(table, key, CacheService.dataService.GetFlatTable(key, recursive)).subscribe((result) => {\r\n if (!result) {\r\n resolve(null);\r\n } else {\r\n resolve((result.value));\r\n }\r\n });\r\n });\r\n return promise;\r\n }\r\n\r\n public static ReadFlatDataTable(key) {\r\n const promise = new Promise((resolve) => {\r\n CacheService.db.ReadKey('flat_data_tables', key, CacheService.dataService.GetFlatDataTable(key)).subscribe((result) => {\r\n if (!result) {\r\n resolve(null);\r\n } else {\r\n resolve((result.value));\r\n }\r\n });\r\n });\r\n return promise;\r\n }\r\n //#endregion\r\n\r\n //#region WorkflowTemplate\r\n //public static ReadWorkflowTemplate(key): Promise {\r\n // const promise = new Promise((resolve) => {\r\n // CacheService.db.ReadKey('workflow_templates', key, CacheService.workflowService.GetWorkflow(key)).subscribe((result) => {\r\n // if (!result) {\r\n // resolve(null);\r\n // } else {\r\n // resolve((result.value));\r\n // }\r\n // });\r\n // });\r\n // return promise;\r\n //}\r\n //#endregion\r\n\r\n //#region MediaSource\r\n public static ReadMediaSource(key): any {\r\n const promise = new Promise((resolve, reject) => {\r\n CacheService.db.ReadKey('mediasources', key, CacheService.mediaService.GetMediaSource(key)).subscribe((result) => {\r\n if (!result) {\r\n resolve(null);\r\n } else {\r\n resolve((result.value));\r\n }\r\n });\r\n });\r\n return promise;\r\n }\r\n public static ReadMediaSourceSub(key) {\r\n return CacheService.db.ReadKey('mediasources', key, CacheService.mediaService.GetMediaSource(key)).pipe(map((val: any) => { return val.value }))\r\n }\r\n //#endregion\r\n\r\n //#region LayoutPermissions\r\n public static ReadLayoutPermission(key): any {\r\n const promise = new Promise((resolve) => {\r\n CacheService.db.ReadKey('layoutpermissions', key, CacheService.permissionService.ReadByKey(key)).subscribe((result) => {\r\n if (!result) {\r\n resolve(null);\r\n } else {\r\n resolve((result.value));\r\n }\r\n });\r\n });\r\n return promise;\r\n }\r\n //#endregion\r\n //#region NavigationPermissions\r\n public static ReadNavigationPermission(key): any {\r\n const promise = new Promise((resolve) => {\r\n CacheService.db.ReadKey('navigationpermissions', key, CacheService.permissionService.ReadNavigationByKey(key)).subscribe((result) => {\r\n if (!result) {\r\n resolve(null);\r\n } else {\r\n resolve((result.value));\r\n }\r\n });\r\n });\r\n return promise;\r\n }\r\n //#endregion\r\n //#region Roles\r\n private static InsertRoles(key, value) {\r\n CacheService.db.Insert('roles', new CacheItem(key, value))\r\n CacheService.UpsertChangeDate('evidanza.Core.ServiceBase.Security.Role_' + key);\r\n }\r\n public static ReadRole(key): any {\r\n const promise = new Promise((resolve) => {\r\n CacheService.db.ReadKey('roles', key, CacheService.rolesService.FindRole(key)).subscribe((result) => {\r\n if (!result) {\r\n resolve(null);\r\n } else {\r\n resolve((result.value));\r\n }\r\n });\r\n });\r\n return promise;\r\n }\r\n public static ReadRoles(): any {\r\n const promise = new Promise((resolve) => {\r\n CacheService.db.ReadAll('roles').subscribe((result) => {\r\n if (!result || (result && result.length === 0)) {\r\n CacheService.rolesService.ReadRoles().subscribe((data) => {\r\n if (data) {\r\n data.forEach((role) => {\r\n CacheService.InsertRoles(role.SID, (role));\r\n });\r\n resolve(data);\r\n } else {\r\n resolve(null);\r\n }\r\n });\r\n } else {\r\n const retVal = [];\r\n result.forEach((role) => {\r\n retVal.push((role.content));\r\n });\r\n resolve(retVal);\r\n }\r\n });\r\n });\r\n return promise;\r\n }\r\n //#endregion\r\n //#region Enums\r\n public static ReadEnum(key): any {\r\n const promise = new Promise((resolve) => {\r\n CacheService.db.ReadKey('enums', key, CacheService.enumService.GetEnum(key)).subscribe((result) => {\r\n if (!result) {\r\n resolve(null);\r\n } else {\r\n resolve((result.value));\r\n }\r\n });\r\n });\r\n return promise;\r\n }\r\n //#endregion\r\n //#region EnumValues\r\n public static ReadEnumValues(key): any {\r\n const promise = new Promise((resolve) => {\r\n CacheService.db.ReadKey('enum_values', key, CacheService.enumService.GetEnumValues(key)).subscribe((result) => {\r\n if (!result) {\r\n resolve(null);\r\n } else {\r\n resolve((result.value));\r\n }\r\n });\r\n });\r\n return promise;\r\n }\r\n //#endregion\r\n\r\n //#region WorkflowCache\r\n public static WriteToWorkflowCache(key, value) {\r\n CacheService.db.ReadKey('workflow_cache', key).subscribe((result) => {\r\n if (result) {\r\n CacheService.db.Update('workflow_cache', new CacheItem(key, (value)));\r\n } else {\r\n CacheService.db.Insert('workflow_cache', new CacheItem(key, (value)));\r\n }\r\n });\r\n }\r\n\r\n public static GetFromWorkflowCache(key) {\r\n return new Promise((resolve) => {\r\n CacheService.db.ReadKey('workflow_cache', key).subscribe((result) => {\r\n if (result) {\r\n resolve((result.value));\r\n } else {\r\n resolve(null);\r\n }\r\n });\r\n });\r\n }\r\n\r\n public static RemoveFromWorkflowCache(key) {\r\n CacheService.db.Delete('workflow_cache', key);\r\n }\r\n //#endregion\r\n\r\n //#region GlobalVariable\r\n public static ReadGlobalVariables(): any {\r\n const promise = new Promise((resolve) => {\r\n CacheService.db.ReadAll('globalvariable').subscribe((result) => {\r\n if (!result || (result && result.length === 0)) {\r\n CacheService.variableService.LoadVariables().subscribe((data) => {\r\n if (data) {\r\n data.forEach((variable) => {\r\n CacheService.AddGlobalVariable(variable._Id, (variable));\r\n });\r\n resolve(data);\r\n } else {\r\n resolve(null);\r\n }\r\n });\r\n } else {\r\n const retVal = [];\r\n result.forEach((variable) => {\r\n retVal.push((variable.value));\r\n });\r\n resolve(retVal);\r\n }\r\n });\r\n });\r\n return promise;\r\n }\r\n\r\n public static AddGlobalVariable(key, value) {\r\n CacheService.db.Insert('globalvariable', new CacheItem(key, value))\r\n CacheService.UpsertChangeDate('evidanza.App.Shared.Variable_' + key);\r\n }\r\n\r\n public static UpsertGlobalVariables() {\r\n CacheService.variableService.LoadVariables().subscribe((data) => {\r\n if (data) {\r\n data.forEach((variable) => {\r\n const key = variable._Id;\r\n const value = (variable);\r\n CacheService.db.ReadKey('globalvariable', key).subscribe((result) => {\r\n if (result) {\r\n CacheService.db.Update('globalvariable', new CacheItem(key, value));\r\n } else {\r\n CacheService.db.Insert('globalvariable', new CacheItem(key, value));\r\n }\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n public static ReadGlobalVariable(key): any {\r\n return new Promise((resolve) => {\r\n CacheService.db.ReadKey('globalvariable', key, CacheService.variableService.LoadVariable(key)).subscribe((result) => {\r\n if (result) {\r\n resolve((result.value));\r\n } else {\r\n resolve(null);\r\n }\r\n });\r\n });\r\n }\r\n\r\n public static DeleteGlobalVariable(key) {\r\n CacheService.db.Delete('globalvariable', key);\r\n }\r\n\r\n public static RefreshGlobalVariableValues() {\r\n return new Promise((resolve) => {\r\n CacheService.ReadGlobalVariables().then((gvars) => {\r\n if (gvars && gvars.length > 0) {\r\n const gvalues = CacheService.GlobalVariablesValues.getValue();\r\n const gvaluekeys = {};\r\n if (gvalues && gvalues.length > 0) {\r\n for (let i = 0; i < gvalues.length; i++) {\r\n gvaluekeys[gvalues[i].Name] = i;\r\n }\r\n }\r\n const result = [];\r\n\r\n gvars.forEach((value) => {\r\n const item = Object.assign({}, value);\r\n if (gvaluekeys[value.Name] !== null && gvalues !== null) {\r\n item.Value = gvalues[gvaluekeys[value.Name]].Value;\r\n }\r\n result.push(item);\r\n });\r\n CacheService.GlobalVariablesValues.next(result);\r\n resolve(result);\r\n } else {\r\n CacheService.GlobalVariablesValues.next([]);\r\n resolve([]);\r\n }\r\n });\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region ChartPalette\r\n public static ReadChartPalette(key) {\r\n return new Promise(resolve => {\r\n CacheService.db.ReadKey('chartpalette', key, CacheService.metaService.ReadPalette(key)).subscribe((result) => {\r\n if (!result) {\r\n resolve(null);\r\n } else {\r\n resolve((result.value));\r\n }\r\n });\r\n });\r\n }\r\n\r\n public static ReadChartPaletteValues(key) {\r\n return new Promise(resolve => {\r\n CacheService.ReadChartPalette(key).then(x => {\r\n let list;\r\n if (x && x.Palette && x.Palette.length > 0) {\r\n list = [];\r\n x.Palette.forEach(c => list.push(Color.HexFromColor(c, true)));\r\n }\r\n resolve(list);\r\n });\r\n });\r\n }\r\n //#endregion\r\n}\r\n","import moment from 'moment';\nimport { Observable, of, Subject } from 'rxjs';\nimport { CacheItem } from \"../models/cacheitem.model\";\nimport { CacheTable } from \"../models/cachetable.model\";\nimport { IDriver } from \"../models/idriver\";\n\nexport class InMemCache implements IDriver{\n db: any;\n dbVersion;\n Cache: any;\n Requests: any;\n public Initialize(db, version:number) {\n return new Promise((resolve) => {\n this.Cache = {};\n this.db = db;\n this.dbVersion = version;\n //console.info('Using in memory cache!');\n resolve(this);\n });\n }\n //#region Table\n public CreateTable(name): boolean {\n if (!this.Cache[name]) {\n this.Cache[name] = {};\n }\n return true;\n }\n public CreateTables(tables: CacheTable[]): boolean {\n tables.forEach((table) => {\n if (!this.Cache[table.name]) {\n this.Cache[table.name] = {};\n }\n });\n return true;\n }\n //#endregion\n //#region Create\n public Insert(table, entry: CacheItem): boolean {\n if (!this.Cache[table]) {\n this.Cache[table] = {};\n }\n this.Cache[table][entry.key] = entry.value ? entry.value : \"<={empty}=>\";\n return true;\n }\n //#endregion\n //#region Read\n public ReadKey(table, key: string, request?): Observable {\n if (!this.Cache[table]) {\n return of(null);\n }\n if (this.Cache[table][key]) {\n if (this.Cache[table][key] == \"<={empty}=>\") {\n return of(null);\n }\n return of(new CacheItem(key, this.Cache[table][key]));\n } else {\n if (request) {\n if (!this.Requests) {\n this.Requests = {};\n }\n if (!this.Requests[table]) {\n this.Requests[table] = {};\n }\n if (!this.Requests[table][key]) {\n return new Observable((subscriber) => {\n\n this.Requests[table][key] = new Subject();\n request.subscribe((result) => {\n //console.log(moment().format(\"hh.mm.ss:SSS\") + \" FetchData \" + table + \"||\" + key + ' || ' + end.diff(start));\n let item = new CacheItem(key, result);\n this.Insert(table, item);\n this.Requests[table][key].next(item);\n subscriber.next(item);\n delete this.Requests[table][key];\n });\n });\n } else {\n return this.Requests[table][key];\n }\n } else {\n return of(null);\n }\n }\n }\n public ReadAll(table: string): Observable {\n if (!this.Cache[table]) {\n return of(null);\n }\n const result = [];\n Object.keys(this.Cache[table]).forEach((key) => {\n if (this.Cache[table][key]) {\n result.push(new CacheItem(key, this.Cache[table][key]));\n }\n });\n return of(result);\n }\n //#endregion\n //#region Update\n public Update(table: string, entry: CacheItem): boolean {\n if (!this.Cache[table]) {\n return false;\n }\n this.Cache[table][entry.key] = entry.value ? entry.value : \"<={empty}=>\"\n \n return true;\n }\n //#endregion\n //#region Delete\n public Clear(table): boolean {\n this.Cache[table] = {};\n return true;\n }\n \n public Delete(table: string, key: string): boolean {\n if (this.Cache[table]) {\n delete this.Cache[table][key];\n return true;\n } else {\n return false;\n }\n }\n //#endregion\n}","import { Observable, of, Subject } from \"rxjs\";\nimport { CacheItem } from \"../models/cacheitem.model\";\nimport { CacheTable } from \"../models/cachetable.model\";\nimport { IDriver } from \"../models/idriver\";\n\nexport class NoCache implements IDriver{\n db: any;\n Requests: any;\n\n public Initialize(db, version:number) {\n let promise = new Promise((resolve) => {\n console.info('Using no cache!');\n resolve(this);\n });\n return promise;\n }\n //#region Table\n public CreateTable(name:string): boolean {\n return true;\n }\n public CreateTables(tables: CacheTable[]): boolean {\n return true;\n }\n //#endregion\n //#region Create\n public Insert(table, entry: CacheItem): boolean {\n return true;\n }\n //#endregion\n //#region Read\n public ReadKey(table, key: string, request?): Observable {\n if (request) {\n if (!this.Requests) {\n this.Requests = {};\n }\n if (!this.Requests[table]) {\n this.Requests[table] = {};\n }\n if (!this.Requests[table][key]) {\n return new Observable((subscriber) => {\n this.Requests[table][key] = new Subject();\n request.subscribe((result) => {\n let item = new CacheItem(key, result);\n this.Requests[table][key].next(item);\n subscriber.next(item);\n delete this.Requests[table][key];\n });\n });\n } else {\n return this.Requests[table][key];\n }\n } else {\n return of(null);\n }\n }\n public ReadAll(table: any): Observable {\n return of(null);\n }\n //#endregion\n //#region Update\n public Update(table: any, entry: CacheItem): boolean {\n throw new Error(\"Method not implemented.\");\n }\n //#endregion\n //#region Delete\n public Clear(table): boolean {\n return true;\n }\n \n public Delete(table: any, key: any): boolean {\n return true;\n }\n //#endregion\n}","export class CacheItem {\n public key: string;\n public value: any;\n\n constructor(key, value) {\n this.key = key;\n this.value = value;\n }\n}","export class CacheTable {\n public name: string;\n}","import { UUID } from 'angular2-uuid';\nimport { plainToClass } from 'class-transformer';\nimport { BehaviorSubject } from 'rxjs';\nimport { InjectorHelper } from '../../helpers/injector.helper';\nimport { MultiReportingService } from '../../services/reporting.service';\nimport { Cube, Database, Dimension, Hierarchy, Level, Measure } from './models/database.model';\n\nexport class MultiCacheService {\n\n private static cubes: Map> = new Map>();\n private static dimensions: Map> = new Map>();\n private static hierarchies: Map> = new Map>();\n private static level: Map> = new Map>();\n private static measures: Map> = new Map>();\n private static databases: Map = new Map();\n private static InitializingObjects: Map> = new Map>();\n\n private static FillCacheAndSetParents(dmID: any, database: Database) {\n database.Cubes.forEach(c => {\n c.Measures.forEach(m => {\n m.Cube = c;\n MultiCacheService.measures.get(dmID).set(m.ID, m);\n });\n const dimlist: Dimension[] = [];\n c.Dimensions.forEach(d => {\n const dim = database.Dimensions.find(x => x.ID === d);\n if (dim) {\n dimlist.push(dim);\n }\n });\n c.Dimensions = dimlist;\n MultiCacheService.cubes.get(dmID).set(c.ID, c);\n });\n database.Dimensions.forEach(d => {\n d.Hierarchies.forEach(h => {\n h.Levels.forEach(l => {\n l.Parent = h;\n MultiCacheService.level.get(dmID).set(l.ID, l);\n });\n h.Parent = d;\n MultiCacheService.hierarchies.get(dmID).set(h.ID, h);\n });\n MultiCacheService.dimensions.get(dmID).set(d.ID, d);\n });\n }\n\n /**\n * Wartet bis die Datenbank initialisiert wurde und gibt zur�ck, ob sie gerade frisch initialisiert wurde\n */\n public static async AwaitIsInitialized(dmID: any): Promise {\n const promise = new Promise((resolve, reject) => {\n const sub = MultiCacheService.InitializingObjects.get(dmID);\n if (sub) {\n let fresh = false;\n sub.subscribe(x => {\n if (x) {\n resolve(fresh);\n } else {\n fresh = true;\n }\n });\n } else {\n MultiCacheService.RefreshMultiCache(dmID).then(() => {\n resolve(true);\n }, () => {\n reject();\n });\n }\n });\n return promise;\n }\n\n public static async GetDatabase(dmID: any): Promise {\n const fresh = await MultiCacheService.AwaitIsInitialized(dmID);\n\n let database = MultiCacheService.databases.get(dmID);\n if (!database && !fresh) {\n await MultiCacheService.RefreshMultiCache(dmID);\n database = MultiCacheService.databases.get(dmID);\n }\n return database;\n }\n\n public static async GetCubes(dmID: any): Promise {\n const fresh = await MultiCacheService.AwaitIsInitialized(dmID);\n\n let cubes = MultiCacheService.cubes.get(dmID);\n if (cubes && cubes.size > 0) {\n return [...cubes.values()];\n }\n if (!fresh) {\n await MultiCacheService.RefreshMultiCache(dmID);\n cubes = MultiCacheService.cubes.get(dmID);\n if (cubes) {\n return [...cubes.values()];\n }\n }\n return null;\n }\n\n public static async GetCube(cubeid: UUID, dmID: any): Promise {\n if (cubeid) {\n const fresh = await MultiCacheService.AwaitIsInitialized(dmID);\n let cubes = MultiCacheService.cubes.get(dmID);\n if (cubes) {\n const cube = cubes.get(cubeid);\n if (cube) {\n return cube;\n }\n }\n if (!fresh) {\n await MultiCacheService.RefreshMultiCache(dmID);\n cubes = MultiCacheService.cubes.get(dmID);\n if (cubes) {\n return cubes.get(cubeid);\n }\n }\n }\n return null;\n }\n\n public static async GetDimensionsByCube(cubeid: UUID, dmID: any): Promise {\n if (cubeid) {\n const cube = await MultiCacheService.GetCube(cubeid, dmID);\n if (cube) {\n return [...cube.Dimensions];\n }\n }\n return null;\n }\n\n public static async GetDimensions(dmID: any): Promise {\n const fresh = await MultiCacheService.AwaitIsInitialized(dmID);\n\n let dimDict = MultiCacheService.dimensions.get(dmID);\n if (dimDict) {\n return [...dimDict.values()];\n }\n if (!fresh) {\n await MultiCacheService.RefreshMultiCache(dmID);\n dimDict = MultiCacheService.dimensions.get(dmID);\n if (dimDict) {\n return [...dimDict.values()];\n }\n }\n return null;\n }\n\n public static async GetDimension(dimensionid: UUID, dmID: any): Promise {\n if (dimensionid) {\n const fresh = await MultiCacheService.AwaitIsInitialized(dmID);\n\n let dimensions = MultiCacheService.dimensions.get(dmID);\n if (dimensions) {\n const dim = dimensions.get(dimensionid);\n if (dim) {\n return dim;\n }\n }\n if (!fresh) {\n await MultiCacheService.RefreshMultiCache(dmID);\n dimensions = MultiCacheService.dimensions.get(dmID);\n if (dimensions) {\n return dimensions.get(dimensionid);\n }\n }\n }\n return null;\n }\n\n public static async GetHierarchy(hierarchyid: UUID, dmID: any): Promise {\n if (hierarchyid) {\n const fresh = await MultiCacheService.AwaitIsInitialized(dmID);\n\n let hierarchies = MultiCacheService.hierarchies.get(dmID);\n if (hierarchies) {\n const hier = hierarchies.get(hierarchyid);\n if (hier) {\n return hier;\n }\n }\n if (!fresh) {\n await MultiCacheService.RefreshMultiCache(dmID);\n hierarchies = MultiCacheService.hierarchies.get(dmID);\n if (hierarchies) {\n return hierarchies.get(hierarchyid);\n }\n }\n }\n return null;\n }\n\n\n\n public static async GetLevel(levelid: UUID, dmID: any): Promise {\n if (levelid) {\n const fresh = await MultiCacheService.AwaitIsInitialized(dmID);\n\n let level = MultiCacheService.level.get(dmID);\n if (level) {\n const l = level.get(levelid);\n if (l) {\n return l;\n }\n }\n if (!fresh) {\n await MultiCacheService.RefreshMultiCache(dmID);\n level = MultiCacheService.level.get(dmID);\n if (level) {\n return level.get(levelid);\n }\n }\n }\n return null;\n }\n\n public static async GetMeasure(measureid: UUID, dmID: any): Promise {\n if (measureid) {\n const fresh = await MultiCacheService.AwaitIsInitialized(dmID);\n\n let measures = MultiCacheService.measures.get(dmID);\n if (measures) {\n const m = measures.get(measureid);\n if (m) {\n return m;\n }\n }\n if (!fresh) {\n await MultiCacheService.RefreshMultiCache(dmID);\n measures = MultiCacheService.measures.get(dmID);\n if (measures) {\n return measures.get(measureid);\n }\n }\n }\n return null;\n }\n\n private static DropMultiCache(dmID) {\n MultiCacheService.cubes.set(dmID, new Map());\n MultiCacheService.dimensions.set(dmID, new Map());\n MultiCacheService.hierarchies.set(dmID, new Map());\n MultiCacheService.level.set(dmID, new Map());\n MultiCacheService.measures.set(dmID, new Map());\n MultiCacheService.databases.delete(dmID);\n MultiCacheService.InitializingObjects.delete(dmID);\n }\n\n private static async RefreshMultiCache(dmID) {\n const promise = new Promise((resolve, reject) => {\n MultiCacheService.DropMultiCache(dmID);\n const sub = new BehaviorSubject(false);\n MultiCacheService.InitializingObjects.set(dmID, sub);\n const service = InjectorHelper.InjectorInstance.get(MultiReportingService);\n service.GetDatabase(dmID).subscribe((result) => {\n if (result) {\n const database = plainToClass(Database, result);\n MultiCacheService.databases.set(dmID, database);\n MultiCacheService.FillCacheAndSetParents(dmID, database);\n }\n sub.next(true);\n resolve(null);\n }, () => {\n reject();\n });\n });\n return promise;\n }\n}\n","import { UUID } from 'angular2-uuid';\nimport { Aggregation, DimensionType, LevelType } from '../../../models/enums';\nimport { AttributeUsage, MeasureDataType } from '../../../models/enums/query.enum';\n\nexport class Element {\n Caption: string;\n Name: string;\n ID: UUID;\n}\n\nexport class Member extends Element {\n Key: string;\n Parent: UUID;\n IsAll: boolean;\n}\n\nexport class Attribute extends Element {\n RelatedAttributeIDs: UUID[] = [];\n Type: LevelType;\n Usage: AttributeUsage;\n}\n\nexport class Measure extends Element {\n Aggregator: Aggregation;\n DataType: MeasureDataType;\n Expression: string;\n Folder: string;\n Cube: Cube;\n}\n\nexport class Level extends Element {\n LevelNumber: number;\n LevelType: LevelType;\n MemberCount: number;\n SourceAttributeID: UUID;\n Parent: Hierarchy;\n}\n\nexport class Hierarchy extends Element {\n HasRollUp: boolean = false;\n IsAttributeHierarchy: boolean = false;\n Levels: Level[] = [];\n Parent: Dimension;\n}\n\nexport class Dimension extends Element {\n DimensionType: DimensionType = DimensionType.Unknown;\n HasUnknownMember: boolean = false;\n LastProcess: Date;\n LastSchemaUpdate: Date;\n Hierarchies: Hierarchy[] = [];\n Attributes: Attribute[] = [];\n DatasourceID: UUID;\n}\n\nexport class Cube extends Element {\n CanDrillThrough: boolean;\n Measures: Measure[] = [];\n Dimensions: Dimension[] = [];\n LastProcess: Date;\n LastSchemaUpdate: Date;\n\n static HasLevel(cube: Cube, level: Level) : boolean {\n let hasLevel = false;\n for (var i = 0; i < cube.Dimensions.length; i++) {\n if (cube.Dimensions[i].ID == level.Parent.Parent.ID) {\n hasLevel = true;\n break;\n }\n }\n return hasLevel;\n }\n}\n\nexport class Database extends Element {\n Cubes: Cube[] = [];\n Dimensions: Dimension[] = [];\n LastProcess: Date;\n LastSchemaUpdate: Date;\n AdministratorSids: string[];\n}\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { of } from 'rxjs';\nimport { switchMap, tap, catchError, finalize } from 'rxjs/operators';\n\nimport { WorkflowService } from 'src/app/services/workflow.service';\nimport { StandardRequestBase } from 'src/app/services/request-base';\nimport { MetaService } from 'src/app/services/meta.service';\nimport { JiraService } from 'src/app/services/jira.service';\nimport { LayoutService } from 'src/app/services/layout.service';\nimport { Layout } from 'src/app/models/layout.model';\nimport { NavigationHelper } from 'src/app/helpers/navigation.helper';\nimport { NavigationService } from 'src/app/services/navigation.service';\nimport { UsersService } from 'src/app/services/users.service';\nimport { NotificationHelper } from 'src/app/helpers/notification.helper';\nimport { PageEditClient } from 'src/app/helpers/page.edit.client';\nimport { LayoutEditService } from 'src/app/models/layout/layout.edit.client';\nimport { CreateDialogFlagService } from '../create.flag.service';\n\n@Component({\n selector: 'lib-create-app',\n templateUrl: './create-app.component.html',\n styleUrls: ['./create-app.component.css'],\n})\nexport class CreateAppComponent implements OnInit {\n // SelectedItem\n Workflows: any[];\n LocalUserManagement: any;\n Pages: any[];\n Themes: any[];\n CSSFiles: any[];\n Jiras: any[];\n FAVIcon: any;\n PWAIcon: any;\n TempLayout: any;\n Subscription: any;\n UserSub: any;\n ActiveUser: any;\n\n constructor(\n private wfService: WorkflowService,\n private standardService: StandardRequestBase,\n private service: MetaService,\n private jira: JiraService,\n private cdref: ChangeDetectorRef,\n private createDialogFlagService: CreateDialogFlagService\n ) {}\n @Input() SelectedItem: any = { LoginRequired: true };\n @Input() isEditing: boolean = false;\n @Input() isApplicationProcess: boolean = false;\n @Output() isApplicationProcessChange = new EventEmitter();\n @Input() action: 'application' | 'workflow' | 'both' = 'both';\n @Output() closeDialog = new EventEmitter();\n\n onToggleProcess(newValue: boolean) {\n this.isApplicationProcess = newValue;\n this.isApplicationProcessChange.emit(this.isApplicationProcess);\n }\n\n handleCloseDialog() {\n this.onToggleProcess(false);\n this.isEditing = false;\n this.SelectedItem = {};\n this.createDialogFlagService.setShowCreateDialog({ isShow: false, action: 'both' });\n this.closeDialog.emit();\n }\n\n ngOnInit(): void {\n if (this.SelectedItem.FAVIcon) {\n this.FAVIcon = this.SelectedItem.FAVIcon;\n }\n if (this.SelectedItem.PWAIcon) {\n this.PWAIcon = this.SelectedItem.PWAIcon;\n }\n NavigationService.SelectedPage.next('layout');\n this.UserSub = UsersService.ActiveUser.subscribe((x) => {\n this.ActiveUser = x;\n });\n this.LoadLocalUser();\n this.LoadWorkflows();\n this.LoadAllPages();\n this.LoadAllThemes();\n this.LoadCSSFiles();\n this.Subscription = LayoutService.LayoutEditMode.subscribe((x) => {\n if (!x && this.TempLayout) {\n LayoutService.BaseLayoutEditMode.next(false);\n const sel = this.SelectedItem;\n if (sel) {\n const layout = sel[this.TempLayout.Key];\n if (layout) {\n const actLayout = JSON.stringify(layout);\n if (actLayout !== this.TempLayout.Value) {\n this.OnItemChanged();\n }\n }\n }\n this.TempLayout = null;\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['SelectedItem']) {\n this.FAVIcon = changes['SelectedItem'].currentValue.FAVIcon;\n this.PWAIcon = changes['SelectedItem'].currentValue.PWAIcon;\n }\n }\n\n handleStartCreate() {\n this.onToggleProcess(true);\n }\n\n OnItemChanged() {\n this.cdref.detectChanges();\n }\n\n LoadWorkflows() {\n this.wfService.GetAllServiceWorkflows().subscribe((data) => {\n this.Workflows = data;\n });\n }\n\n LoadLocalUser() {\n this.standardService.executeGet('config/api/config', 'GetManagementStatus').subscribe((result) => {\n this.LocalUserManagement = result;\n });\n }\n\n LoadAllPages() {\n this.service.GetAllPages().subscribe((pages) => {\n if (pages) {\n this.Pages = pages;\n }\n });\n }\n\n LoadAllThemes() {\n this.service.GetThemes(null).subscribe((themes) => {\n this.Themes = themes;\n });\n }\n\n LoadCSSFiles() {\n this.service.GetCustomCSS(null).subscribe((files) => {\n this.CSSFiles = files;\n });\n }\n\n LoadJiras() {\n this.jira.GetAll().subscribe((jiras) => {\n this.Jiras = jiras;\n });\n }\n\n OnKeyInput(event) {\n return String.fromCharCode(event.charCode).match(/[^a-zA-Z0-9]/g) === null;\n }\n\n validateInput(event: KeyboardEvent) {\n const char = String.fromCharCode(event.charCode);\n if (!/^[a-zA-Z0-9]*$/.test(char)) {\n event.preventDefault();\n }\n }\n\n onPaste(event: ClipboardEvent) {\n // Prevent the default paste behavior\n event.preventDefault();\n\n const clipboardData = event.clipboardData;\n const pastedData = clipboardData.getData('text');\n\n // Filter to keep only alphanumeric characters\n const filteredData = pastedData.replace(/[^a-zA-Z0-9]/g, '');\n\n // Initialize _key if it's undefined\n if (!this.SelectedItem._key) {\n this.SelectedItem._key = '';\n }\n\n // Update the model with the filtered pasted data\n this.SelectedItem._key += filteredData; // Adjust as needed\n }\n\n resetBaseLayout() {\n if (this.SelectedItem) {\n this.SelectedItem.BaseLayout = null;\n this.OnItemChanged();\n }\n }\n\n resetLoginLayout() {\n if (this.SelectedItem) {\n this.SelectedItem.LoginLayout = null;\n this.OnItemChanged();\n }\n }\n\n UploadFAV(ev) {\n if (ev && ev.target) {\n const selectedFile = ev.target.files[0];\n if (selectedFile) {\n const fr = new FileReader();\n let item = this.SelectedItem;\n let that = this;\n fr.addEventListener(\n 'load',\n function () {\n item.FAVIcon = fr.result;\n that.FAVIcon = fr.result;\n that.OnItemChanged();\n },\n false\n );\n fr.readAsDataURL(selectedFile);\n }\n }\n }\n\n UploadPWA(ev) {\n if (ev && ev.target) {\n const selectedFile = ev.target.files[0];\n if (selectedFile) {\n const fr = new FileReader();\n let item = this.SelectedItem;\n let that = this;\n fr.addEventListener(\n 'load',\n function () {\n item.PWAIcon = fr.result;\n that.PWAIcon = fr.result;\n that.OnItemChanged();\n },\n false\n );\n fr.readAsDataURL(selectedFile);\n }\n }\n }\n\n editLayout() {\n const sel = this.SelectedItem;\n if (sel) {\n if (sel.BaseLayout) {\n if (!(sel.BaseLayout instanceof Layout)) {\n sel.BaseLayout = plainToClass(Layout, sel.BaseLayout);\n }\n } else {\n sel.BaseLayout = NavigationHelper.GetDefaultBaseLayout();\n }\n LayoutService.SelectedLayout.next(sel.BaseLayout);\n // LayoutService.BaseLayoutEditMode.next(true);\n LayoutService.LayoutEditMode.next(true);\n this.TempLayout = {\n Key: 'BaseLayout',\n Value: JSON.stringify(sel.BaseLayout),\n };\n }\n }\n\n editLogin() {\n const sel = this.SelectedItem;\n if (sel) {\n if (sel.LoginLayout) {\n if (!(sel.LoginLayout instanceof Layout)) {\n sel.LoginLayout = plainToClass(Layout, sel.LoginLayout);\n }\n } else {\n sel.LoginLayout = NavigationHelper.GetDefaultLoginLayout();\n }\n LayoutService.SelectedLayout.next(sel.LoginLayout);\n LayoutService.LayoutEditMode.next(true);\n this.TempLayout = {\n Key: 'LoginLayout',\n Value: JSON.stringify(sel.LoginLayout),\n };\n }\n }\n\n onSave() {\n if (!this.SelectedItem._key) {\n NotificationHelper.Error('@@Error', 'Please enter application name.');\n return;\n }\n\n const layout = new Layout();\n layout['ElementType'] = 'grid';\n layout['Name'] = 'Base';\n layout['PageName'] = `${this.SelectedItem._key}Home`;\n let NewPageUrl: string;\n let CreatedPageResponse = { SID: '' };\n LayoutService.Loading.next(true);\n this.service\n .AddPage(JSON.stringify(layout), `/${this.SelectedItem._key}-page`)\n .pipe(\n switchMap((response) => {\n if (response) {\n CreatedPageResponse = response;\n this.SelectedItem.LandingPage = response.URL;\n NewPageUrl = response.URL;\n return this.service.SaveNavigationStructureToChangeLog(this.SelectedItem);\n } else {\n return of(null);\n }\n }),\n switchMap((response) => {\n if (response) {\n return this.service.GetAllPages();\n } else {\n return of(null);\n }\n }),\n switchMap((response) => {\n if (response) {\n this.Pages = response;\n return this.service.LoadPage(NewPageUrl);\n } else {\n return of(null);\n }\n }),\n tap((response) => {\n if (response) {\n NotificationHelper.Success('@@Success', '@@App created successfully!');\n }\n this.handleCloseDialog();\n this.editLandingPage(CreatedPageResponse);\n }),\n catchError((error) => {\n NotificationHelper.Error('@@Error', 'Failed to create application.');\n return of(null);\n }),\n finalize(() => {\n LayoutService.Loading.next(false);\n this.OnItemChanged();\n })\n )\n .subscribe();\n }\n\n editLandingPage(page) {\n this.service.LoadPage(page.URL).subscribe((l) => {\n if (l) {\n const layout = plainToClass(Layout, l);\n const editClient = new PageEditClient(layout, page, this.service);\n editClient.PageInfoChanged.subscribe((pi) => {\n let index = -1;\n if (\n this.Pages.some((p, i) => {\n if (p.SID == pi.SID) {\n index = i;\n return true;\n }\n })\n ) {\n this.Pages.splice(index, 1, pi);\n this.checkItemStyle(pi);\n }\n });\n LayoutEditService.SetNext(editClient, true);\n }\n });\n }\n\n checkItemStyle(data) {\n data.previewURL = data.URL.includes('workspace') ? '/' + data.URL.split('/')[2] : data.URL;\n if (data) {\n const style = {};\n if (data.IsCapsule) {\n style['font-style'] = 'italic';\n }\n if (data.IsOverridden) {\n style['font-weight'] = 'bold';\n }\n if (data.CanEditInfo) {\n if (data.CanEditInfo.CanEdit) {\n if (this.ActiveUser && data.CanEditInfo.EditUserID == this.ActiveUser.SID) {\n style['text-decoration'] = 'underline';\n }\n } else {\n style['text-decoration'] = 'line-through';\n }\n }\n data.Style = style;\n }\n }\n\n onUpdate() {\n LayoutService.Loading.next(true);\n this.SelectedItem._key = this.SelectedItem.NonModified;\n delete this.SelectedItem.NonModified;\n this.service.RequestNavigationStructureLock(this.SelectedItem).subscribe((response) => {\n if (response) {\n this.FAVIcon = null;\n this.PWAIcon = null;\n NotificationHelper.Success('@@Success', '@@App updated successfully!');\n }\n LayoutService.Loading.next(false);\n this.handleCloseDialog();\n });\n }\n\n ngOnDestroy(): void {\n NavigationService.SelectedPage.next('settings');\n if (this.UserSub) {\n this.UserSub.unsubscribe();\n this.UserSub = null;\n }\n if (this.Subscription) {\n this.Subscription.unsubscribe();\n this.Subscription = null;\n }\n this.onToggleProcess(false);\n this.isEditing = false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\ninterface DialogSubject {\n isShow: boolean;\n action: 'application' | 'workflow' | 'both';\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CreateDialogFlagService {\n private dialogSubject = new BehaviorSubject({ isShow: false, action: 'both' });\n showCreateDialog$ = this.dialogSubject.asObservable();\n\n setShowCreateDialog(value: DialogSubject) {\n this.dialogSubject.next(value);\n }\n}\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { LayoutService } from 'src/app/services/layout.service';\n\n@Component({\n\tselector: 'lib-dashboard',\n\ttemplateUrl: './dashboard.component.html',\n\tstyleUrls: ['./dashboard.component.css'],\n})\nexport class DashboardComponent implements OnInit {\n\tLayoutEditMode = false;\n\tconstructor(private cdRef: ChangeDetectorRef) {\n\t}\n\tngOnInit(): void {\n\t\tLayoutService.LayoutEditMode.subscribe((x) => {\n\t\t\tthis.LayoutEditMode = x;\n\t\t\tthis.cdRef.detectChanges();\n\t});\n\t}\n}\n","import {Component, OnInit, ChangeDetectorRef} from '@angular/core';\nimport {NavigationEnd, Router} from '@angular/router';\nimport {map} from 'rxjs/operators';\nimport {Subscription} from 'rxjs';\n\nimport {MetaService} from 'src/app/services/meta.service';\nimport {LayoutService} from 'src/app/services/layout.service';\nimport {NotificationHelper} from 'src/app/helpers/notification.helper';\nimport {MessageBoxHelper} from 'src/app/components/dialogs/messagebox/messagebox.dialog';\nimport {MessageBoxButtons} from 'src/app/models/enums/messageboxbuttons.enum';\nimport {MessageBoxResult} from 'src/app/models/enums/messageboxresult.enum';\nimport {TranslateFormatText} from 'src/app/helpers/array.helpers';\nimport {MessageBoxIcon} from 'src/app/models/enums/messageboxicon.enum';\nimport {CreateDialogFlagService} from '../../create.flag.service';\n\n@Component({\n selector: 'lib-my-apps',\n templateUrl: './my-apps.component.html',\n styleUrls: ['./my-apps.component.css'],\n})\nexport class MyAppsComponent implements OnInit {\n isShowCreateDialog = false;\n SearchValue: string;\n FilteredList: NavigationInterface[];\n List: NavigationInterface[];\n NavigationSubscription: any;\n EditItem: any = {};\n RenderList: NavigationInterface[];\n isEditing: boolean = false;\n isApplicationProcess: boolean = false;\n importApp: boolean = false;\n isLoading = false;\n createDialogAction: 'application' | 'workflow' | 'both';\n cards: number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\n title = {\n DisplayName: '',\n };\n ModifiedKey: string = '';\n\n selectedFile: File | null = null;\n Icons = ['coffee', 'anchor', 'move_down', 'keyboard_command', 'event_list', 'terminal', 'flight', 'cycle'];\n\n Colors = [\n '#F4FFDE',\n '#FBF4ED',\n '#F3F1C7',\n '#F5D1D1',\n '#C7F3E3',\n '#FBF4ED',\n '#C7F3F0',\n '#E4D8CC',\n '#FFEBFB',\n '#F3F1C7',\n '#EBEDFB',\n '#FFEFDB',\n '#D5D0F1',\n '#CCCCCC',\n '#FFFAED',\n '#F2FFD6',\n '#FDFCEC',\n '#E7F4F7',\n '#FFF8E6',\n '#F9E2D2',\n '#FAF3E0',\n '#E5F2E8',\n '#FFE8F7',\n '#EAE7FF',\n '#FAF8ED',\n '#FCF2F2',\n '#E6F9F5',\n '#FCF8ED',\n '#E6FAF8',\n '#F7EEE3',\n '#FFFBF5',\n '#E9E8FF',\n '#F7F7F7',\n '#FFF5E6',\n '#F0E6FF',\n '#E6F7FF',\n '#F8F8F8',\n '#FFFFE6',\n '#F2F2F2',\n '#FFF2E6',\n '#FAF6FF',\n '#F9FAF6',\n ];\n redirectionFromTourGuide;\n zIndex: number;\n private zIndexSubscription: Subscription;\n\n constructor(\n private router: Router,\n private metaService: MetaService,\n private createDialogFlagService: CreateDialogFlagService,\n private cdr: ChangeDetectorRef\n ) {\n }\n\n ngOnInit(): void {\n this.title = JSON.parse(localStorage.getItem('user'));\n this.getApps();\n this.createDialogFlagService.showCreateDialog$.subscribe((flag) => {\n if (flag.isShow) {\n this.showCreateDialog(flag.action);\n }\n });\n }\n\n getApps() {\n this.isLoading = true;\n this.NavigationSubscription = this.metaService\n .GetNavigationStructures()\n .pipe(map((data) => data.filter((item) => item.Caption != 'default'))) // hide default navigation\n .subscribe((navs) => {\n this.List = navs.map((navItem, index) => ({\n ...navItem,\n Caption2: navItem?.Caption?.includes('workspace-') ? navItem?.Caption?.split('workspace-')[1] : navItem?.Caption,\n icon: this.Icons[index % this.Icons.length],\n color: this.Colors[index % this.Colors.length],\n }));\n this.FilteredList = this.List;\n this.isLoading = false;\n this.cdr.detectChanges();\n });\n }\n\n deleteNavigation(app) {\n MessageBoxHelper.ShowDialog(\n new TranslateFormatText(\n '@@Are you sure you want to delete the navigation? Deleting the navigation will delete it’s associated data.'\n ),\n new TranslateFormatText('@@Delete Application'),\n MessageBoxButtons.YesNo,\n MessageBoxIcon.Question\n ).then((x) => {\n if (x === MessageBoxResult.Yes) {\n if (app !== null) {\n let {Caption} = app;\n this.metaService.TryDeleteMyApp(Caption).subscribe((response) => {\n if (response) {\n // NotificationHelper.Success('@@success', 'Navigataion deleted');\n localStorage.removeItem('selectedApp');\n this.getApps();\n }\n });\n this.FilteredList = this.FilteredList.filter((list) => list.Caption !== Caption);\n this.cdr.detectChanges();\n NotificationHelper.Success('@@Your app is being deleted in the background and may take a while.', 'App deleted');\n }\n }\n });\n }\n\n editNavigation(app) {\n LayoutService.Loading.next(true);\n this.metaService.LoadNavigationStructure(app.SID).subscribe((response) => {\n if (response) {\n this.EditItem = response;\n this.EditItem.NonModified = this.EditItem._key;\n this.EditItem._key = this.EditItem._key ? this.EditItem._key.split('-')[2] : '';\n this.EditItem.LoginRequired = this.EditItem.LoginRequired!==undefined?this.EditItem.LoginRequired:true;\n this.isEditing = true;\n this.isApplicationProcess = true;\n LayoutService.Loading.next(false);\n this.cdr.detectChanges();\n this.showCreateDialog();\n this.cdr.detectChanges();\n }\n });\n }\n\n createNew() {\n this.EditItem = {\n LoginRequired:true\n };\n this.isEditing = false;\n this.showCreateDialog('both');\n }\n\n showCreateDialog(action?: 'application' | 'workflow' | 'both') {\n this.isShowCreateDialog = true;\n this.createDialogAction = action;\n this.cdr.detectChanges();\n }\n\n closeCreateDialog(shouldReload?: boolean) {\n this.isShowCreateDialog = false;\n if (shouldReload) {\n this.getApps();\n }\n this.isApplicationProcess = false;\n this.isEditing = false;\n this.createDialogFlagService.setShowCreateDialog({isShow: false, action: 'both'});\n }\n\n closeImportAppDialog() {\n this.importApp = false;\n this.selectedFile = null;\n this.cdr.detectChanges();\n }\n\n handleEdit(app): void {\n localStorage.setItem('selectedApp', JSON.stringify(app));\n this.router.navigate(['/default/settings/layout/navigation']);\n }\n\n updateFiltered() {\n const lowercaseInput = this.SearchValue.toLowerCase();\n this.FilteredList = this.List.filter((navItem) => navItem.Caption.toLowerCase().includes(lowercaseInput));\n }\n\n onChooseFile(event: Event, fileUpload) {\n const input = event as any;\n if (input.files?.length) {\n this.selectedFile = input.files[0];\n }\n fileUpload.clear();\n }\n\n onImport() {\n if(!this.selectedFile) return;\n const formData = new FormData();\n formData.append('file', this.selectedFile);\n LayoutService.Loading.next(true);\n this.metaService.Import(formData).subscribe({\n next: (res) => {\n NotificationHelper.Success('The Application has imported successfully.', '@@Success');\n this.getApps();\n this.closeImportAppDialog();\n LayoutService.Loading.next(false);\n },\n error: (err) => {\n LayoutService.Loading.next(false);\n // NotificationHelper.Error('Error occur while importing data', '@@Error');\n }\n })\n }\n\n ngOnDestroy() {\n if (this.NavigationSubscription) {\n this.NavigationSubscription.unsubscribe();\n }\n if (this.zIndexSubscription) {\n this.zIndexSubscription.unsubscribe();\n }\n this.isApplicationProcess = false;\n }\n}\n\ninterface NavigationInterface {\n Caption: string;\n IsCapsule: boolean;\n IsOverridden: boolean;\n SID: string;\n Version: string;\n _isExternal: boolean;\n CanEditInfo: any;\n color: string;\n icon: any;\n}\n","import { Component, OnInit } from '@angular/core';\nimport { CreateDialogFlagService } from '../../create.flag.service';\n@Component({\n selector: 'lib-without-dashboard',\n templateUrl: './without-dashboard.component.html',\n styleUrls: ['./without-dashboard.component.css'],\n})\nexport class WithoutDashboardComponent implements OnInit {\n title = {\n DisplayName: '',\n };\n isShowCreateDialog: boolean;\n isApplicationProcess: boolean;\n constructor(private createDialogFlagService: CreateDialogFlagService) {}\n\n ngOnInit(): void {\n this.title = JSON.parse(localStorage.getItem('user'));\n }\n\n openCreateDialog() {\n this.createDialogFlagService.setShowCreateDialog({ isShow: true, action: 'both' });\n // this.isApplicationProcess = true;\n // this.isShowCreateDialog = true;\n }\n\n // closeCreateDialog(flag: boolean) {\n // this.isShowCreateDialog = flag;\n // this.isApplicationProcess = flag;\n // this.createDialogFlagService.setShowCreateDialog({ isShow: false, action: 'both' });\n // }\n}\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n isDevMode,\n OnInit,\n QueryList,\n ViewChildren\n} from '@angular/core';\nimport {\n AbstractControl,\n FormArray,\n FormBuilder,\n FormControl,\n FormGroup,\n ValidationErrors,\n Validators\n} from '@angular/forms';\nimport {MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\nimport {NotificationHelper} from \"../../../helpers/notification.helper\";\nimport {UsersService} from \"../../../services/users.service\";\nimport {LayoutService} from \"../../../services/layout.service\";\n\n@Component({\n selector: 'app-otp-dialog',\n templateUrl: './OTP-dialog.html',\n styleUrls: ['./OTP-dialog.css']\n})\nexport class OTPDialogComponent implements OnInit{\n\n form:any;\n showErrorAnimation = false;\n isCorrect = false;\n invalidOtp = false;\n\n remainingTime = 120; // Initial remaining time in seconds\n timerOn = true; // Flag to control the timer\n timerId: any; // Variable to hold the timer identifier\n displayTime: string;\n constructor(\n private cdRef: ChangeDetectorRef,\n public dialogRef: MatDialogRef, private usersService: UsersService,\n @Inject(MAT_DIALOG_DATA) public data: any\n ) {\n this.form = data.form;\n }\n\n ngOnInit() {\n this.startTimer();\n this.inputs.valueChanges.subscribe(() => {\n this.invalidOtp = false;\n this.isCorrect = false;\n this.onVerifyOTP();\n });\n }\n\n onClose(event): void {\n this.dialogRef.close(event);\n }\n\n // otp\n getFormArray(size: number): FormArray {\n const arr = [];\n\n for (let i = 0; i < size; i++) {\n arr.push(new FormControl(''));\n }\n\n return new FormArray(arr);\n }\n\n @Input()\n set size(size: number) {\n this.inputs = this.getFormArray(size);\n this.#size = size;\n }\n\n @ViewChildren('inputEl') inputEls!: QueryList>;\n\n #size = 6;\n #scheduledFocus: number = null;\n\n inputs = this.getFormArray(this.#size);\n\n onChange?: (value: string) => void;\n onTouched?: () => void;\n\n writeValue(value: string): void {\n if (isDevMode() && value?.length) {\n throw new Error('Otp input is not supposed to be prefilled with data');\n }\n\n // Reset all input values\n this.inputs.setValue(new Array(this.#size).fill(''));\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled) {\n this.inputs.disable();\n } else {\n this.inputs.enable();\n }\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n if (!control.value || control.value.length < this.#size) {\n return {\n otpInput: 'Value is incorrect',\n };\n }\n\n return null;\n }\n\n handleKeyDown(e: KeyboardEvent, idx: number) {\n if (e.key === 'Backspace' || e.key === 'Delete') {\n if (idx > 0) {\n this.#scheduledFocus = idx - 1;\n }\n }\n }\n\n handleInput() {\n this.#updateWiredValue();\n\n if (this.#scheduledFocus != null) {\n this.#focusInput(this.#scheduledFocus);\n this.#scheduledFocus = null;\n }\n }\n\n handleKeyPress(e: KeyboardEvent, idx: number) {\n const isDigit = /\\d/.test(e.key);\n\n if (e.key === 'v' && e.metaKey) {\n return true;\n }\n\n if (isDigit && idx + 1 < this.#size) {\n this.#scheduledFocus = idx + 1;\n }\n\n if (isDigit && this.inputs.controls[idx].value) {\n this.inputs.controls[idx].setValue('');\n }\n\n return isDigit;\n }\n\n handlePaste(e: ClipboardEvent, idx: number) {\n e.preventDefault();\n\n if (idx !== 0) {\n return;\n }\n\n const pasteData = e.clipboardData?.getData('text');\n const regex = new RegExp(`\\\\d{${this.#size}}`);\n\n if (!pasteData || !regex.test(pasteData)) {\n return;\n }\n\n for (let i = 0; i < pasteData.length; i++) {\n this.inputs.controls[i].setValue(pasteData[i]);\n }\n\n this.#focusInput(this.inputEls.length - 1);\n this.#updateWiredValue();\n this.onTouched();\n }\n\n handleFocus(e: FocusEvent) {\n (e.target as HTMLInputElement).select();\n }\n\n #focusInput(idx: number) {\n setTimeout(() => this.inputEls.get(idx)?.nativeElement.focus());\n }\n\n #updateWiredValue() {\n setTimeout(() => this.onChange?.(this.inputs.value.join('')));\n }\n\n onVerifyOTP() {\n const arr = this.inputs.getRawValue();\n const OTP = arr.splice(0).join('');\n const _form = this.form;\n if (OTP && OTP.length == 6) {\n const payload = {Email: _form.email, OTP};\n this.usersService.verifyOTP(payload).subscribe({\n next: (res) => {\n if (res['StatusCode'] == 200) {\n this.isCorrect = true;\n this.invalidOtp = false;\n }\n },\n error: (err) => {\n this.showErrorAnimation = true;\n this.invalidOtp = true;\n this.isCorrect = false;\n setTimeout(() => {\n this.showErrorAnimation = false;\n }, 1000);\n // const message = err.error.Message || '';\n // NotificationHelper.Error(`@@${message}`, '@@Error');\n }\n })\n }\n }\n\n startTimer() {\n const timerFn = () => {\n let m:any = Math.floor(this.remainingTime / 60);\n let s:any = this.remainingTime % 60;\n\n // m = m < 10 ? '0' + m : m.toString();\n m = m < 10 ? + m : m.toString();\n s = s < 10 ? '0' + s : s.toString();\n this.displayTime = `${m}:${s}`;\n this.remainingTime--;\n\n if (this.remainingTime >= 0 && this.timerOn) {\n this.timerId = setTimeout(timerFn, 1000); // Call timer function recursively every second\n } else {\n this.isCorrect = false;\n this.invalidOtp = true;\n }\n };\n\n timerFn(); // Start the timer\n }\n\n onResendOTP() {\n const _form = this.form;\n if (_form && _form.email) {\n const payload = {Email: _form.email};\n this.loading(true);\n this.usersService.resendOTP(payload).subscribe({\n next: (res) => {\n this.loading(false);\n if (res['StatusCode'] == 200) {\n const message = res['Message'] || '';\n NotificationHelper.Success(`@@${message}`, '@@Success');\n this.remainingTime = 120;\n this.startTimer();\n }\n },\n error: (err) => {\n this.loading(false);\n // const message = err.error.Message || '';\n // NotificationHelper.Error(`@@${message}`, '@@Error');\n }\n })\n } else {\n NotificationHelper.Error(`@@Please enter your email address`, '@@Error');\n }\n }\n\n loading(value) {\n LayoutService.Loading.next(value);\n this.cdRef.detectChanges();\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n isDevMode,\n OnInit,\n Output,\n QueryList, ViewChild,\n ViewChildren\n} from '@angular/core';\nimport {\n AbstractControl, AsyncValidatorFn,\n FormArray,\n FormBuilder,\n FormControl,\n FormGroup,\n ValidationErrors,\n Validators\n} from '@angular/forms';\nimport {UsersService} from 'src/app/services/users.service';\nimport {NotificationHelper} from \"../../helpers/notification.helper\";\nimport {Router} from \"@angular/router\";\nimport {OTPDialogComponent} from \"./OTPDialog/OTP-dialog\";\nimport {MatDialog} from \"@angular/material/dialog\";\nimport {LayoutService} from \"../../services/layout.service\";\nimport {MediaService} from \"../../services/media.service\";\nimport {ThemeHelper} from \"../../helpers/theme.helpers\";\n\n@Component({\n selector: 'lib-forgot-password',\n templateUrl: './forgot-password.component.html',\n styleUrls: ['./forgot-password.component.scss'],\n})\nexport class ForgotPasswordComponent implements OnInit {\n\n @ViewChild('forgotForm') forgotForm;\n verifyEmail = true;\n verifyOTP = false;\n newPassword = false;\n newPassHide = true;\n confirmPassHide = true;\n errorMessage: string = '';\n showTooltip = false;\n hasCharacterLength = false;\n hasCapitalLetter = false;\n hasNumber = false;\n hasSpecialChar = false;\n hasAlphabit = false;\n\n iconURL: string = ''\n imageURL: string = '';\n userEmail;\n\n\n @Output() goBackLogin = new EventEmitter();\n\n\n form: FormGroup;\n\n constructor(private fb: FormBuilder, private usersService: UsersService, private router: Router, public dialog: MatDialog, private cdRef: ChangeDetectorRef) {\n }\n\n ngOnInit() {\n this.buildForm();\n this.form.valueChanges.subscribe(() => {\n const _form = this.form.getRawValue();\n this.validatePassword(_form.password)\n });\n\n this.iconURL = '../../../assets/icons/ga_univers.svg';\n if (ThemeHelper.AcitveTheme.IsDarkTheme) {\n this.imageURL = '../../../assets/img/dark_login_illustration.png';\n }\n else {\n this.imageURL = '../../../assets/img/login_illustration.gif';\n }\n\n // MediaService.IconURL.subscribe(url => {\n // if (url) {\n // this.iconURL = url + 'ga_univers.svg';\n // }\n // })\n // MediaService.ImageURL.subscribe(url => {\n // if (url) {\n // if (ThemeHelper.AcitveTheme.IsDarkTheme) {\n // this.imageURL = url + 'dark_login_illustration.png';\n // return;\n // }\n // this.imageURL = url + 'login_illustration.gif';\n // }\n // })\n }\n\n// /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%^*?&])[A-Za-z\\d@$!%^*?&]{8,}$/\n buildForm() {\n this.form = this.fb.group({\n email: ['', [Validators.required, Validators.email]],\n password: ['', [Validators.required, Validators.minLength(8),\n Validators.pattern(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[\\s\\S])[a-zA-Z\\d\\s\\S]{8,}$/)]\n ],\n confirmPassword: ['', Validators.required],\n });\n }\n\n toggleWindow(_window) {\n this.verifyEmail = false;\n this.verifyOTP = false;\n this.newPassword = false;\n if (_window == 'forgot-password') {\n this.verifyEmail = true;\n }\n if (_window == 'verify-otp') {\n this.verifyOTP = true;\n }\n if (_window == 'new-password') {\n this.newPassword = true;\n }\n\n }\n\n onVerifyEmail() {\n const _form = this.form.getRawValue();\n const isEmailValid = this.form.get('email').valid;\n if (_form && _form.email && isEmailValid) {\n const payload = {Email: _form.email};\n this.loading(true);\n this.usersService.verifyEmail(payload).subscribe({\n next: (res) => {\n this.loading(false);\n if (res['StatusCode'] == 200) {\n const message = res['Message'] || '';\n NotificationHelper.Success(`@@${message}`, '@@Success');\n this.openOtpDialog();\n }\n },\n error: (err) => {\n this.loading(false);\n // const message = err.error.Message || '';\n // NotificationHelper.Error(`@@${message}`, '@@Error');\n }\n })\n } else {\n NotificationHelper.Error(`@@Please enter a valid email address`, '@@Error');\n }\n }\n\n onResetPassword() {\n const _form = this.form.getRawValue();\n\n if (_form && !_form.password) {\n NotificationHelper.Error(`Please enter your new password`, '@@Error');\n return;\n }\n\n if (this.errorMessage) {\n NotificationHelper.Error(`@@${this.errorMessage}`, '@@Error');\n return;\n }\n\n if (_form && _form.password != _form.confirmPassword) {\n NotificationHelper.Error(`@@Passwords do not match`, '@@Error');\n return;\n }\n\n if (_form && _form.password == _form.confirmPassword) {\n const payload = {Email: this.userEmail, NewPassword: _form.password};\n this.loading(true);\n this.usersService.resetPassword(payload).subscribe({\n next: (res) => {\n this.loading(false);\n if (res['StatusCode'] == 200) {\n const message = res['Message'] || '';\n NotificationHelper.Success(`@@${message}`, '@@Success');\n this.goBack();\n }\n },\n error: (err) => {\n this.loading(false);\n // const message = err.error.Message || '';\n // NotificationHelper.Error(`@@${message}`, '@@Error');\n }\n })\n }\n }\n\n goBack() {\n this.goBackLogin.emit(true);\n }\n\n openOtpDialog(): void {\n const dialogRef = this.dialog.open(OTPDialogComponent, {\n width: '400px',\n disableClose: true,\n data: {form: this.form.getRawValue()}\n });\n\n dialogRef.afterClosed().subscribe(isSuccess => {\n if (isSuccess) {\n this.userEmail = this.form.get('email').value;\n this.resetForm();\n this.toggleWindow('new-password');\n }\n });\n }\n\n resetForm() {\n this.form.reset();\n if (this.forgotForm) {\n this.forgotForm.resetForm();\n }\n }\n\n validatePassword(password) {\n this.hasCharacterLength = /^.{8,}$/.test(password);\n this.hasCapitalLetter = /[A-Z]/.test(password);\n this.hasNumber = /[0-9]/.test(password);\n this.hasSpecialChar = /(?=.*[^a-zA-Z\\d\\s])/.test(password);\n // !@#$%^&*(),.?\n this.hasAlphabit = /[a-z]/.test(password);\n\n if (password && password.length < 8) {\n this.errorMessage = 'Password must be at least 8 characters long.';\n } else if (!this.hasCapitalLetter) {\n this.errorMessage = 'Password must contain at least one capital letter.';\n } else if (!this.hasNumber) {\n this.errorMessage = 'Password must contain at least one number.';\n } else if (!this.hasSpecialChar) {\n this.errorMessage = 'Password must contain at least one special character.';\n } else if (!this.hasAlphabit) {\n this.errorMessage = 'Password must contain at least one alphabet character.';\n } else {\n this.errorMessage = '';\n }\n // return this.hasCapitalLetter && this.hasCapitalLetter && this.hasNumber && this.hasSpecialChar && this.hasAlphabit;\n }\n\n loading(value) {\n LayoutService.Loading.next(value);\n this.cdRef.detectChanges();\n }\n\n}\n\n``\n\n","// google-signin.component.ts\nimport { Component, OnInit } from '@angular/core';\nimport { LoginComponent } from \"../login/login.component\";\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { InterceptorSkipHeader } from '../../services/interceptor.skip.header';\n@Component({\n selector: 'app-google-signin',\n template: '
',\n styleUrls: [\"../login/login.component.scss\"],\n})\nexport class GoogleSigninComponent implements OnInit {\n constructor(private loginComponent: LoginComponent, private http: HttpClient) { }\n\n ngOnInit(): void {\n const headers = new HttpHeaders().set(InterceptorSkipHeader, '');\n this.http.get('assets/config.json', { headers }).subscribe(result => {\n if (result) {\n window.google[\"accounts\"].id.initialize({\n client_id: result[\"Google_Client_Id\"],\n callback: this.handleCredentialResponse.bind(this),\n });\n\n window.google[\"accounts\"].id.renderButton(\n document.getElementById('googleSignInButton'),\n { theme: 'outline', size: 'large' }\n );\n\n window.google[\"accounts\"].id.prompt(); // Optional \n }\n })\n }\n\n handleCredentialResponse(response: any) {\n this.loginComponent.handleGoogleSignin(response.credential);\n }\n}\n","import {\n\tComponent,\n\tOnInit,\n\tViewChild,\n\tElementRef,\n\tInject,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MediaService } from 'src/app/services/media.service';\n\nimport { GlobalSearchService } from 'src/app/services/global-search.service';\nimport { LayoutService } from 'src/app/services/layout.service';\nimport { NotificationHelper } from 'src/app/helpers/notification.helper';\nimport { MessageType } from 'src/app/models/enums/messagetype.enum';\nimport { MessageCenterDialog } from './messagecenter.dialogue';\nimport { RefreshTokenService } from 'src/app/services/refresh-token.service';\n\n@Component({\n\tselector: 'lib-header',\n\ttemplateUrl: './header.component.html',\n\tstyleUrls: ['./header.component.scss'],\n})\nexport class HeaderComponent implements OnInit {\n\tSubscriptions: any = {};\n\tSearchBox = false;\n\t// Global Search: variables\n\tfilteredOptions: Observable;\n\tstatic Type: any = 'messagecenter';\n\tstatic Default = {\n\t\tType: 'messagecenter',\n\t\tLayout: {\n\t\t\t_Editable: true,\n\t\t},\n\t};\n\t@ViewChild('button', { read: ElementRef })\n\tbutton: ElementRef;\n\n\tCount = 0;\n\tColorStyle = {};\n\tconstructor(\n\t\tprivate globalSearchService: GlobalSearchService,\n\t\tprivate dialog: MatDialog, private router: Router,\n\t\t@Inject(LayoutService.CONTAINER_DATA) public data\n\t) {}\n\ticonURL = '';\n\tHomeNav = {};\n\tngOnInit() {\n\t\tthis.HomeNav = this.globalSearchService.flattenList[0]?.navItem;\n\t\tthis.iconURL = '../../../assets/icons/ga_universe.png';\n\t\t// this.Subscriptions['Icon'] = MediaService.IconURL.subscribe((url) => {\n\t\t// \tif (url) {\n\t\t// \t\tthis.iconURL = url + 'ga_univers.svg';\n\t\t// \t}\n\t\t// });\n\t\tthis.Subscriptions['ReceivedMessages'] =\n\t\t\tNotificationHelper.ReceivedMessages.subscribe((x) => {\n\t\t\t\tlet count = 0;\n\t\t\t\tlet style = {};\n\t\t\t\tif (x) {\n\t\t\t\t\tx.forEach((rm) => {\n\t\t\t\t\t\tif (!rm.Read) {\n\t\t\t\t\t\t\tif (count === 0) {\n\t\t\t\t\t\t\t\tswitch (rm.MessageType) {\n\t\t\t\t\t\t\t\t\tcase MessageType.Error:\n\t\t\t\t\t\t\t\t\t\tstyle['background'] = 'rgb(244,67,54)';\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase MessageType.Information:\n\t\t\t\t\t\t\t\t\t\tstyle['background'] = 'rgb(31,135,229)';\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase MessageType.Success:\n\t\t\t\t\t\t\t\t\t\tstyle['background'] = 'rgb(77,174,81)';\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase MessageType.Warning:\n\t\t\t\t\t\t\t\t\t\tstyle['background'] = 'rgb(254,152,2)';\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcount++;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tthis.Count = count;\n\t\t\t\tthis.ColorStyle = style;\n\t\t\t});\n\t}\n\n\ttoggleSearch() {\n\t\tthis.SearchBox = !this.SearchBox;\n\t}\n\n\tngOnDestroy() {\n\t\tObject.keys(this.Subscriptions).forEach((key) => {\n\t\t\tthis.Subscriptions[key].unsubscribe();\n\t\t});\n\t}\n\n\tglobalSearch(value) {\n\t\tthis.filteredOptions = this.globalSearchService.search(value);\n\t}\n\n\t// Global Search: navigate to selected route\n\tnavigateRoute(nav) {\n\t\tthis.globalSearchService.CallNavMenu(nav);\n\t}\n\n\topen() {\n\t\tthis.dialog.open(MessageCenterDialog, {\n\t\t\tpanelClass: 'MessageCenterDialog',\n\t\t\tdata: {},\n\t\t});\n\t}\n\n\tsetFocus() {\n\t\tif (this.button && this.button.nativeElement) {\n\t\t\tthis.button.nativeElement.focus();\n\t\t}\n\t}\n\n\tGoHome() {\n\t\t// this.globalSearchService.CallNavMenu(this.HomeNav);\n\t\tthis.router.navigate(['/default/settings/dashboard'])\n\t}\n}\n","import { Component, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { Dialog } from 'primeng/dialog';\n\nimport config from '../../../../assets/config.json';\n\ndeclare var LiveAgent: any;\n\n@Component({\n selector: 'lib-help-menu',\n templateUrl: './help.menu.html',\n styleUrls: ['./help.menu.scss'],\n})\nexport class HelpMenuControl {\n static Type: any = 'usermenu';\n\n static Default = {\n Editable: true,\n Type: 'usermenu',\n Variant: 'named',\n };\n liveChatDialog = false;\n isHaveAccess = true;\n\n @ViewChild(MatMenuTrigger) trigger: MatMenuTrigger;\n constructor(private router: Router) {}\n\n @ViewChild('chatDialog') chatDialog!: Dialog;\n\n ngOnInit(): void {\n const userRole = JSON.parse(localStorage.getItem('user'))?.Roles;\n this.isHaveAccess = !(userRole && userRole.length > 0 && userRole[0] === config.FREE_USER_ID);\n }\n\n ngAfterViewInit(): void {\n this.chatDialog.onShow.subscribe(() => {\n if (this.liveChatDialog) {\n this.loadLiveAgentScript()\n .then(() => {\n this.initializeLiveAgentButton();\n })\n .catch((error) => {\n console.error('Failed to load LiveAgent script:', error);\n });\n }\n });\n }\n\n OnHelpCenter() {\n this.router.navigate(['default/settings/help-center']);\n this.trigger.closeMenu();\n }\n\n openLiveChatDialog() {\n this.liveChatDialog = true;\n this.trigger.closeMenu();\n }\n\n claseLiveChatDialog() {\n this.liveChatDialog = false;\n }\n\n private loadLiveAgentScript(): Promise {\n return new Promise((resolve, reject) => {\n const existingScript = document.getElementById('la_x2s6df8d');\n if (!existingScript) {\n const scriptUrl = 'https://ga-universe.ladesk.com/scripts/track.js';\n const node = document.createElement('script');\n node.src = scriptUrl;\n node.id = 'la_x2s6df8d';\n node.type = 'text/javascript';\n node.async = true;\n node.charset = 'utf-8';\n node.onload = () => {\n resolve();\n };\n node.onerror = () => {\n reject(new Error('Failed to load script'));\n };\n document.head.appendChild(node);\n } else {\n resolve();\n }\n });\n }\n\n private initializeLiveAgentButton(): void {\n try {\n const chatButtonContainer = document.getElementById('live-chatButton');\n console.log('chat button', chatButtonContainer);\n if (chatButtonContainer) {\n LiveAgent.createButton('avx216f2', chatButtonContainer);\n }\n } catch (error) {\n console.error('LiveAgent is not defined:', error);\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport moment from 'moment';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { TranslateService } from '@ngx-translate/core';\nimport { TranslateHelper } from 'src/app/helpers/injector.helper';\nimport { NetworkConnection } from 'src/app/helpers/network.helpers';\nimport { NotificationHelper } from 'src/app/helpers/notification.helper';\nimport { OfflineHelper } from 'src/app/helpers/offline.helper';\nimport { MessageType } from 'src/app/models/enums/messagetype.enum';\nimport { SyncStatus } from 'src/app/models/enums/syncstatus.enum';\nimport { ReceivedMessage } from 'src/app/models/notification/receivedmessage.model';\nimport { MonacoPreviewDialog } from 'src/app/components/dialogs/monacopreview/monaco.preview.dialog';\nimport config from '../../../assets/config.json'\n@Component({\n selector: 'evi-messagecenterdialog',\n templateUrl: './messagecenter.dialogue.html',\n styleUrls: ['./header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MessageCenterDialog implements OnInit, OnDestroy {\n\n MessageTypes = [];\n SelectedMessageType = -1;\n SelectedMessage: MessageCenterMessage;\n\n OfflinePossible;\n Online = false;\n\n Subscriptions = [];\n SyncDate;\n Changes;\n AllMessages = [];\n Messages = [];\n\n constructor(private dialogRef: MatDialogRef, private translate: TranslateService,\n @Inject(MAT_DIALOG_DATA) public data: any) {\n this.MessageTypes.push({ Caption: '@@Alle', Value: -1 });\n this.MessageTypes.push({ Caption: '@@Information', Value: MessageType.Information });\n this.MessageTypes.push({ Caption: '@@Exception', Value: MessageType.Error });\n this.MessageTypes.push({ Caption: '@@Warning', Value: MessageType.Warning });\n this.MessageTypes.push({ Caption: '@@Success', Value: MessageType.Success });\n this.SelectedMessageType = this.MessageTypes[0].Value;\n\n this.OfflinePossible = false;\n let settings: any = localStorage.getItem(\"GeneralSettings\");\n if (settings) {\n settings = JSON.parse(settings);\n }\n if (settings != null) {\n if (settings.Offline && settings.Offline.Active) {\n this.OfflinePossible = true;\n }\n }\n }\n isHaveJobAccess = true;\n ngOnInit(): void {\n const userRole = JSON.parse(localStorage.getItem('user'))?.Roles;\n if (userRole && userRole.length > 0 && userRole[0] === config.FREE_USER_ID) {\n this.isHaveJobAccess = false;\n\t\t}\n OfflineHelper.LoadChanges();\n this.Changes = OfflineHelper.Changes;\n this.Subscriptions.push(NetworkConnection.Online.subscribe((online) => {\n this.Online = online;\n }));\n this.Subscriptions.push(NotificationHelper.ReceivedMessages.subscribe(x => {\n if (x) {\n this.AllMessages = [...x];\n } else {\n this.AllMessages = [];\n }\n this.filterMessages();\n }));\n }\n\n ngOnDestroy(): void {\n this.Subscriptions.forEach(x => {\n x.unsubscribe();\n });\n }\n\n filterMessages() {\n const messages = [];\n if (this.SelectedMessageType < 0) {\n // console.log('this',this.SelectedMessageType)\n this.AllMessages.forEach(x => {\n messages.push(new MessageCenterMessage(x));\n });\n } else {\n this.AllMessages.forEach(x => {\n if (x.MessageType === this.SelectedMessageType) {\n console.log('x', x,this.SelectedMessageType)\n messages.push(new MessageCenterMessage(x));\n }\n });\n }\n this.Messages = messages;\n }\n\n okClicked() {\n this.dialogRef.close();\n }\n\n clearClicked() {\n this.SelectedMessage = null;\n NotificationHelper.ClearMessages();\n }\n\n messageTypeClicked() {\n this.SelectedMessage = null;\n this.filterMessages();\n }\n\n onItemClick(item) {\n if (this.SelectedMessage !== item) {\n this.SelectedMessage = item;\n this.SelectedMessage.setRead();\n }\n }\n\n copy() {\n if (this.SelectedMessage) {\n const selBox = document.createElement('textarea');\n selBox.style.position = 'fixed';\n selBox.style.left = '0';\n selBox.style.top = '0';\n selBox.style.opacity = '0';\n selBox.value = this.SelectedMessage.getMessageCopyText();\n document.body.appendChild(selBox);\n selBox.focus();\n selBox.select();\n document.execCommand('copy');\n document.body.removeChild(selBox);\n }\n }\n\n ResetDB() {\n OfflineHelper.DeleteDB().then((result) => {\n OfflineHelper.GenerateDB();\n OfflineHelper.StartClientSync(null);\n });\n }\n StartClientSync() {\n OfflineHelper.StartClientSync(new Date(this.SyncDate));\n }\n StartServerSync() {\n OfflineHelper.StartServerSync();\n }\n OpenDocument(item) {\n let args = {\n Document: JSON.stringify(item.Item, null, '\\t')\n }\n if (item.Status == SyncStatus.Error) {\n args['Original'] = JSON.stringify(item.Original, null, '\\t');\n }\n MonacoPreviewDialog.ShowDialog(args, '@@DocumentPreview');\n }\n\n GetIcon(item) {\n let retVal = \"\";\n switch (item.Status) {\n case SyncStatus.Success: retVal = \"sync_success\"; break;\n case SyncStatus.Waiting: retVal = \"sync_waiting\"; break;\n case SyncStatus.Processing: retVal = \"sync_processing\"; break;\n case SyncStatus.Error: retVal = \"sync_error\"; break;\n }\n return retVal;\n }\n ItemAction(item) {\n if (item.Status == SyncStatus.Waiting) {\n item.Status = SyncStatus.Processing;\n OfflineHelper.SyncSingleDocument(item.ContainerID, item.Item).then((result) => {\n if (result && result['Success']) {\n item.Status = SyncStatus.Success;\n } else {\n item.Status = SyncStatus.Error;\n if (result.Document) {\n item.Original = JSON.parse(result.Document);\n }\n }\n })\n }\n }\n TakeOffline(item) {\n if (item && item.Item) {\n OfflineHelper.ForceSyncDocument(item, 'Item').then((result) => {\n if (result && result['Success']) {\n item.Status = SyncStatus.Success;\n } else {\n item.Status = SyncStatus.Error;\n if (result.Document) {\n item.Original = JSON.parse(result.Document);\n }\n }\n });\n }\n }\n TakeOnline(item) {\n if (item && item.Original) {\n OfflineHelper.ForceSyncDocument(item, 'Original').then((result) => {\n if (result && result['Success']) {\n item.Status = SyncStatus.Success;\n } else {\n item.Status = SyncStatus.Error;\n if (result.Document) {\n item.Original = JSON.parse(result.Document);\n }\n }\n });\n }\n }\n}\n\nexport class MessageCenterMessage {\n private static Styles = {\n 0: { background: 'rgb(77,174,81)' },\n 1: { background: 'rgb(254,152,2)' },\n 2: { background: 'rgb(244,67,54)' },\n 3: { background: 'rgb(31,135,229)' }\n };\n\n Title;\n ShortTitle;\n MediumTitle;\n CreateDateTextShort;\n Content;\n ContentShort;\n Style;\n get Read() {\n return this.message.Read;\n }\n\n constructor(private message: ReceivedMessage) {\n this.Title = message.Title;\n if (this.Title && this.Title.length > 25) {\n this.ShortTitle = this.Title.substring(0, 22) + '...';\n if (this.Title.length > 60) {\n this.MediumTitle = this.Title.substring(0, 57) + '...';\n } else {\n this.MediumTitle = this.Title;\n }\n } else {\n this.ShortTitle = this.Title;\n this.MediumTitle = this.Title;\n }\n this.CreateDateTextShort = moment(message.CreateDate).format('LLLL');\n if (this.CreateDateTextShort && this.CreateDateTextShort.length > 150) {\n this.CreateDateTextShort = this.CreateDateTextShort.substring(0, 147) + '...';\n }\n this.Content = message.Content;\n if (this.Content && this.Content.length > 150) {\n this.ContentShort = this.Content.substring(0, 147) + '...';\n } else {\n this.ContentShort = this.Content;\n }\n this.Style = MessageCenterMessage.Styles[message.MessageType];\n }\n\n setRead() {\n this.message.Read = true;\n }\n\n getMessageCopyText() {\n const translate = TranslateHelper.TranslatorInstance;\n let text = translate.instant('@@Title:') + ' ' + this.message.Title + '\\n\\n';\n text += translate.instant('@@Zeit:') + ' ' + this.message.CreateDate.toString() + '\\n\\n';\n text += translate.instant('@@Nachricht:') + ' ' + this.message.Content;\n return text;\n }\n}\n","import { Component, Inject, ViewChild } from '@angular/core';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { GitHelper } from 'src/app/helpers/git.helper';\nimport { PermissionHelper } from 'src/app/helpers/permissions.helper';\nimport { LayoutService } from 'src/app/services/layout.service';\nimport { MediaService } from 'src/app/services/media.service';\nimport { UsersService } from 'src/app/services/users.service';\nimport { AboutControl } from 'src/app/components/common/aboutcontrol/about.control';\nimport { Theme } from 'src/app/models/style/theme.model';\nimport { ThemeHelper } from 'src/app/helpers/theme.helpers';\n4;\nimport { MetaService } from 'src/app/services/meta.service';\nimport { Router } from '@angular/router';\n// import { IBaseComponent } from '../base.component';\n// import { PROPERTIES, PROPERTYGROUPS } from 'src/app/services/dynamic.component.service';\n\n@Component({\n\tselector: 'lib-user-menu',\n\ttemplateUrl: './usermenu.component.html',\n\tstyleUrls: ['./header.component.scss'],\n})\nexport class UserMenuControl {\n\tstatic Type: any = 'usermenu';\n\tSubscriptions = {};\n\tstatic Default = {\n\t\tEditable: true,\n\t\tType: 'usermenu',\n\t\tVariant: 'named',\n\t};\n\tCurrentTheme: Theme;\n\tIsChecked: boolean;\n\tuser;\n\tAllowImpersonate = false;\n\tURL: string;\n\tGitActive = false;\n\tBranches = [];\n\tSelectedBranch;\n\t@ViewChild(MatMenuTrigger) trigger: MatMenuTrigger;\n\tconstructor(\n\t\tprivate metaService: MetaService,\n\t\tprivate usersService: UsersService,\n\t\t@Inject(LayoutService.CONTAINER_DATA) public data,\n\t\tprivate router: Router\n\t) {}\n\n\t// @Output() VariantChange = new EventEmitter();\n\n\tngOnInit() {\n\t\tthis.Subscriptions['Theme'] = this.metaService\n\t\t\t.GetDefaultTheme()\n\t\t\t.subscribe((theme: Theme) => {\n\t\t\t\tthis.CurrentTheme = theme;\n\t\t\t\tif (theme.IsDarkTheme) {\n\t\t\t\t\tthis.IsChecked = true;\n\t\t\t\t}\n\t\t\t});\n\t\tthis.GitActive = GitHelper.IsActive;\n\t\tif (this.GitActive) {\n\t\t\tthis.Branches = GitHelper.LocalBranches;\n\t\t\tthis.Subscriptions['BranchesChanged'] =\n\t\t\t\tGitHelper.BranchesChanged.subscribe((branches) => {\n\t\t\t\t\tthis.Branches = GitHelper.LocalBranches;\n\t\t\t\t});\n\t\t\tthis.SelectedBranch = GitHelper.SelectedBranch;\n\t\t}\n\t\tthis.user = localStorage.getItem('user');\n\t\tif (this.user) {\n\t\t\tthis.user = JSON.parse(this.user);\n\t\t\tthis.updateImage();\n\t\t}\n\t\tthis.AllowImpersonate = PermissionHelper.GetImpersonatePermission();\n\t}\n\n\tSelectedBranchChanged() {\n\t\tGitHelper.SelectedBranch.next(this.SelectedBranch);\n\t}\n\n\tlogout() {\n\t\tthis.usersService.logout();\n\t\tthis.trigger.closeMenu();\n\t}\n\n\tgetInitials() {\n\t\tif (!this.user) return '';\n\t\tconst { FirstName, LastName } = this.user;\n\t\tlet initials = '';\n\t\t// Handle case when FirstName exists\n\t\tif (FirstName && FirstName.length > 0) {\n\t\t\tinitials += FirstName[0]; // Always add the first character of FirstName\n\t\t\tif (!LastName || (LastName.length === 1 && LastName[0] === ' ')) {\n\t\t\t\tconst firstNameParts = FirstName.split(' ');\n\t\t\t\tif (firstNameParts.length > 1 && firstNameParts[1].length > 0) {\n\t\t\t\t\tinitials += firstNameParts[1][0];\n\t\t\t\t} else if (FirstName.length > 1) {\n\t\t\t\t\tinitials += FirstName[1];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (initials.length < 2 && LastName && LastName.length > 0) {\n\t\t\tinitials += LastName[0];\n\t\t}\n\t\treturn initials.padEnd(2, 'X');\n\t}\n\tupdateImage() {\n\t\tif (this.user && this.user.Image) {\n\t\t\tconst url = MediaService.ProfilePicURL.getValue();\n\t\t\tif (url) {\n\t\t\t\tthis.URL = url + this.user.SID + '/' + this.user.Image;\n\t\t\t}\n\t\t}\n\t}\n\n\tlanguageSelected() {\n\t\t// const text = '@@Bitte denken Sie daran auch die Spracheneinstellung Ihres Browsers anzupassen. Einige Controls (z.B.DatetimePicker) und Formatierungen verhalten sich sonst moeglicherweise nicht wie erwartet.';\n\t\t// MessageBoxHelper.ShowDialog(new TranslateFormatText(text), null, MessageBoxButtons.Ok, MessageBoxIcon.Information);\n\t}\n\n\tOpenInfoDialog() {\n\t\tAboutControl.ShowDialog();\n\t\tthis.trigger.closeMenu();\n\t}\n\n\tsetDarkTheme(isDark: boolean) {\n\t\tconst darkTheme: Theme = this.CurrentTheme;\n\t\tdarkTheme.IsDarkTheme = isDark;\n\t\tthis.metaService.SaveTheme(darkTheme).subscribe((result) => {\n\t\t\tThemeHelper.SetTheme(darkTheme);\n\t\t});\n\t}\n\tchangeThemeMode() {\n\t\tif (this.IsChecked) {\n\t\t\tthis.setDarkTheme(true);\n\t\t} else {\n\t\t\tthis.setDarkTheme(false);\n\t\t}\n\t}\n\n\tonProfileSetting() {\n\t\tthis.router.navigate(['default/settings/personal-settings']);\n\t\tthis.trigger.closeMenu();\n\t}\n}\n","import { Component, OnInit, Renderer2 } from '@angular/core';\nimport config from '../../../assets/config.json'\n@Component({\n\tselector: 'lib-help-center',\n\ttemplateUrl: './help-center.component.html',\n\tstyleUrls: ['./help-center.component.css'],\n})\nexport class HelpCenterComponent implements OnInit {\n\tconstructor(private renderer: Renderer2) {}\n\n\tisHaveChatAccess = true;\n\tngOnInit(): void {\n\t\tconst userRole = JSON.parse(localStorage.getItem('user'))?.Roles;\n\t\tthis.isHaveChatAccess = userRole && userRole.length > 0 && userRole[0] !== config.FREE_USER_ID \n\t}\n}\n","import { Component, OnInit, Renderer2 } from '@angular/core';\ndeclare var LiveAgent: any;\n@Component({\n selector: 'lib-live-agent-chat-button',\n templateUrl: './live-agent-chat-button.component.html',\n styleUrls: ['./live-agent-chat-button.component.css']\n})\nexport class LiveAgentChatButtonComponent implements OnInit {\n\n\tconstructor(private renderer: Renderer2) {}\n\n ngOnInit(): void {\n const scriptUrl = 'https://ga-universe.ladesk.com/scripts/track.js';\n const node = this.renderer.createElement('script');\n node.src = scriptUrl;\n node.id = 'la_x2s6df8d';\n node.type = 'text/javascript';\n node.async = true;\n node.charset = 'utf-8';\n node.onload = (e) => {\n const chatButtonContainer = document.getElementById('chatButton');\n if (chatButtonContainer) {\n LiveAgent.createButton('avx216f2', chatButtonContainer);\n }\n };\n this.renderer.appendChild(document.head, node);\n }\n} \n","import { Component, Input } from '@angular/core';\n\n@Component({\n\tselector: 'list-view',\n\ttemplateUrl: './listview.component.html',\n\tstyleUrls: ['./listview.component.css'],\n})\nexport class ListView {\n\tconstructor() {}\n\n\t@Input() Columns: any[];\n\n\t@Input() Rows: any[];\n}\n","import { Component, OnInit } from \"@angular/core\"\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\"\nimport { TranslateService } from \"@ngx-translate/core\"\nimport { MediaService } from \"src/app/services/media.service\"\nimport { SecurityService } from \"src/app/services/security.service\"\nimport { UsersService } from \"src/app/services/users.service\"\nimport { ThemeHelper } from \"src/app/helpers/theme.helpers\"\nimport { NotificationHelper } from \"../../helpers/notification.helper\"\nimport { Router } from \"@angular/router\"\nimport { SideNavService } from \"src/app/services/sidenav.service\"\nimport { NavigationService } from \"../../services/navigation.service\"\nimport { SettingsRegistryHelper } from \"../../registries/settings/settings.registry\";\nimport { LayoutService } from \"../../services/layout.service\";\n\n@Component({\n selector: \"lib-login\",\n templateUrl: \"./login.component.html\",\n styleUrls: [\"./login.component.scss\"],\n})\nexport class LoginComponent implements OnInit {\n imagePath = \"/assets/login_illustration.gif\"\n loginForm: FormGroup\n error = {\n status: false,\n message: \"\",\n }\n hide = true\n showCredentials = true\n selectedProvider\n SecurityProviderTypes\n credentials = {\n UserName: \"\",\n Password: \"\",\n ProviderId: null,\n UID:\"\"\n }\n loading = {\n status: false,\n text: \"Loading ...\",\n }\n isScanner = false\n iconURL: string = \"\"\n imageURL: string = \"\"\n googleIconURL: string = \"\"\n\n loginScreen = true\n\n ngOnInit(): void {\n this.loginForm = new FormGroup({\n email: new FormControl(\"\", [Validators.required]),\n password: new FormControl(\"\", Validators.required),\n })\n this.iconURL = \"../../../assets/icons/ga_universe.png\"\n this.googleIconURL = \"../../../assets/icons/google_icon.svg\"\n if (ThemeHelper.AcitveTheme.IsDarkTheme) {\n this.imageURL = \"../../../assets/img/login_banner.jpg\"\n } else {\n this.imageURL = \"../../../assets/img/login_banner.jpg\"\n }\n // MediaService.IconURL.subscribe(url => {\n // if (url) {\n // this.iconURL = url + 'ga_univers.svg';\n // }\n // })\n\n // MediaService.ImageURL.subscribe(url => {\n // if (url) {\n // if (ThemeHelper.AcitveTheme.IsDarkTheme) {\n // this.imageURL = url + 'dark_login_illustration.png';\n // return;\n // }\n // this.imageURL = url + 'login_illustration.gif';\n // }\n // })\n }\n\n loginUser() {\n console.log(\"loginUser\", this.loginForm)\n }\n\n constructor(\n private usersService: UsersService,\n private securityService: SecurityService,\n private translate: TranslateService,\n private router: Router\n ) {\n this.securityService.GetSecurityProviders().subscribe((types) => {\n if (types) {\n this.SecurityProviderTypes = types\n let found = false\n this.SecurityProviderTypes.forEach((provider) => {\n if (provider.IsDefault) {\n this.credentials.ProviderId = provider.Id\n if (provider.Url) {\n found = true\n }\n if (provider.Type === \"31e75470-8458-48e5-af70-d8a6e8840b37\") {\n this.isScanner = true\n found = true\n }\n this.selectedProvider = provider\n }\n })\n this.showCredentials = !found\n }\n })\n }\n\n // selectionChanged() {\n // if (this.SecurityProviderTypes) {\n // this.isScanner = false\n // let found = false\n // this.SecurityProviderTypes.forEach((provider) => {\n // if (provider.Id == this.credentials.ProviderId) {\n // if (provider.Url) {\n // found = true\n // }\n // if (provider.Type === \"31e75470-8458-48e5-af70-d8a6e8840b37\") {\n // this.isScanner = true\n // found = true\n // }\n // this.selectedProvider = provider\n // }\n // })\n // this.showCredentials = !found\n // }\n // }\n\n // LoginUser() {\n // if (\n // this.loginForm.value.email === \"\" ||\n // this.loginForm.value.password === \"\"\n // ) {\n // NotificationHelper.Error(\n // \"@@Please enter your email and password.\",\n // \"@@Error\"\n // )\n // return\n // }\n // this.credentials.UserName = this.loginForm.value.email\n // this.credentials.Password = this.loginForm.value.password\n // this.loading.status = true\n // this.usersService.executeLogin(this.credentials).then((x) => {\n // // console.log('login user: ',x)\n // if (x === 0) {\n // this.router.navigate([\"default/settings/dashboard\"]).then(() => {\n // // this.usersService.GetCurrentUser().subscribe(user => {\n // // if (user?.Roles[0] === config?.FREE_USER_ID) {\n // // window.location.reload()\n // // }\n // // })\n // SettingsRegistryHelper.Build()\n // NavigationService.Refresh.next(null)\n // })\n // }\n // this.error = {\n // status: Boolean(x),\n // message: this.translate.instant(\n // \"@@Benutzername oder Passwort falsch! Bitte kontrollieren Sie die Eingabe.\"\n // ),\n // }\n // if (x == 1) {\n // NotificationHelper.Error(\n // \"@@Invalid username or password. Please check your input.\",\n // \"@@Error\"\n // )\n // }\n // if (x == 3) {\n // NotificationHelper.Error(\n // \"@@Your account is not activated, Please contact the administrator.\",\n // \"@@Error\"\n // )\n // }\n // this.loading.status = false\n // })\n // }\n\n \n selectionChanged() {\n if (this.SecurityProviderTypes) {\n this.isScanner = false;\n let found = false;\n this.SecurityProviderTypes.forEach((provider) => {\n if (provider.Id == this.credentials.ProviderId) {\n if (provider.Url) {\n found = true;\n }\n if (provider.Type === '31e75470-8458-48e5-af70-d8a6e8840b37') {\n this.isScanner = true;\n found = true;\n }\n this.selectedProvider = provider;\n }\n });\n this.showCredentials = !found;\n }\n }\n handleGoogleSignin(credentials:string){\n if(credentials){\n let ssoTokenRequest = {\n Token:credentials\n }\n this.loading.status=true;\n this.usersService.executeSSOLogin(ssoTokenRequest).then(x=>{\n if (x === 0) {\n this.router.navigate(['default/settings/dashboard']).then(() => {\n SettingsRegistryHelper.Build();\n NavigationService.Refresh.next(null);\n LayoutService.Loading.next(false);\n });\n }\n this.error = {\n status: Boolean(x),\n message: this.translate.instant('@@Benutzername oder Passwort falsch! Bitte kontrollieren Sie die Eingabe.')\n };\n if (x == 1) {\n NotificationHelper.Error('@@Invalid Google Account. Please try again.', '@@Error')\n }\n if (x == 3) {\n NotificationHelper.Error('@@Your account is not activated, Please contact the administrator.', '@@Error')\n }\n this.loading.status = false;\n })\n }\n }\n LoginUser() {\n if (this.loginForm.value.email === \"\" || this.loginForm.value.password === \"\") {\n NotificationHelper.Error('@@Please enter your email and password.', '@@Error');\n return;\n }\n this.credentials.UserName = this.loginForm.value.email;\n this.credentials.Password = this.loginForm.value.password;\n this.loading.status = true;\n this.usersService.executeLogin(this.credentials).then(x => {\n // console.log('login user: ',x)\n if (x === 0) {\n this.router.navigate(['default/settings/dashboard']).then(() => {\n // this.usersService.GetCurrentUser().subscribe(user => {\n // if (user?.Roles[0] === config?.FREE_USER_ID) {\n // window.location.reload()\n // }\n // })\n SettingsRegistryHelper.Build();\n NavigationService.Refresh.next(null);\n });\n }\n this.error = {\n status: Boolean(x),\n message: this.translate.instant('@@Benutzername oder Passwort falsch! Bitte kontrollieren Sie die Eingabe.')\n };\n if (x == 1) {\n NotificationHelper.Error('@@Invalid username or password. Please check your input.', '@@Error')\n }\n if (x == 3) {\n NotificationHelper.Error('@@Your account is not activated, Please contact the administrator.', '@@Error')\n }\n if (x == 5) {\n NotificationHelper.Error('@@Organization main account is disabled, Please contact the administrator.', '@@Error')\n }\n this.loading.status = false;\n });\n }\n\n goBackLogin(event) {\n this.loginScreen = true;\n }\n}\n","import { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\nimport { UsersService } from \"../../services/users.service\";\nimport { Router } from \"@angular/router\";\nimport { NotificationHelper } from \"../../helpers/notification.helper\";\nimport { LayoutService } from \"../../services/layout.service\";\n\n@Component({\n selector: 'lib-personal-settings',\n templateUrl: './personal-settings.component.html',\n styleUrls: ['./personal-settings.component.scss']\n})\nexport class PersonalSettingsComponent implements OnInit {\n\n @ViewChild('settingForm') settingForm;\n form: FormGroup;\n newPassHide = true;\n oldPassHide = true;\n confirmPassHide = true;\n toggleWindow = true;\n selectedItem;\n\n errorMessage: string = '';\n showTooltip = false;\n hasCharacterLength = false;\n hasCapitalLetter = false;\n hasNumber = false;\n hasSpecialChar = false;\n hasAlphabit = false;\n\n userInfo;\n displayIcon = '';\n\n nav_list = [\n { id: 'change_password', label: 'Change Password', icon: 'lock_reset' },\n { id: 'notification_preferences', label: 'Notification Preferences', icon: 'notifications_active' },\n { id: 'display_themes', label: 'Display Themes', icon: 'contrast' },\n { id: 'personalized_settings', label: 'Personalized Settings', icon: 'settings_account_box' },\n ]\n\n constructor(private fb: FormBuilder, private usersService: UsersService, private router: Router, private cdRef: ChangeDetectorRef) {\n }\n hidePasswordChange:boolean=false;\n ngOnInit(): void {\n this.buildForm();\n UsersService.ActiveUser.subscribe((user) => {\n this.userInfo = user;\n if (this.userInfo.FirstName) {\n const firstName = this.userInfo?.FirstName ? this.userInfo?.FirstName[0] : '';\n const lastName = this.userInfo?.LastName ? this.userInfo?.LastName[0] : '';\n this.displayIcon = firstName + lastName;\n if (this.userInfo?.SignupMethod && this.userInfo?.SignupMethod !== \"email\") {\n this.nav_list = this.nav_list.filter((nav) => nav.id != \"change_password\")\n this.hidePasswordChange = true;\n this.toggleWindow=false;\n }\n } else {\n this.displayIcon = this.userInfo.DisplayName[0];\n }\n });\n this.form.valueChanges.subscribe(() => {\n const _form = this.form.getRawValue();\n this.validatePassword(_form.newPassword);\n });\n this.selectedItem = 'change_password';\n }\n\n buildForm() {\n this.form = this.fb.group({\n email: ['', Validators.required, Validators.email],\n newPassword: ['', [Validators.required, Validators.minLength(8),\n Validators.pattern(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[\\s\\S])[a-zA-Z\\d\\s\\S]{8,}$/)]\n ],\n oldPassword: ['', Validators.required],\n confirmPassword: ['', Validators.required],\n });\n }\n\n onChangePassword() {\n const _form = this.form.getRawValue();\n\n // if (_form && !_form.email) {\n // NotificationHelper.Error(`Please enter your email`, '@@Error');\n // return;\n // }\n\n if (_form && !_form.newPassword) {\n NotificationHelper.Error(`Please enter your new password`, '@@Error');\n return;\n }\n\n if (_form && !_form.oldPassword) {\n NotificationHelper.Error(`Please enter your old password`, '@@Error');\n return;\n }\n\n if (_form && _form.newPassword != _form.confirmPassword) {\n NotificationHelper.Error(`@@Passwords do not match`, '@@Error');\n return;\n }\n\n if (this.errorMessage) {\n NotificationHelper.Error(`@@${this.errorMessage}`, '@@Error');\n return;\n }\n\n const payload = { Email: this.userInfo.Email, NewPassword: _form.newPassword, OldPassword: _form.oldPassword };\n this.loading(true);\n this.usersService.changePassword(payload).subscribe({\n next: (res) => {\n this.loading(false);\n if (res['StatusCode'] == 200) {\n const message = res['Message'] || '';\n NotificationHelper.Success(`@@${message}`, '@@Success');\n this.resetForm();\n }\n },\n error: (err) => {\n this.loading(false);\n // const message = err.error.Message || '';\n // NotificationHelper.Error(`@@${message}`, '@@Error');\n }\n })\n }\n\n validatePassword(password) {\n this.hasCharacterLength = /^.{8,}$/.test(password);\n this.hasCapitalLetter = /[A-Z]/.test(password);\n this.hasNumber = /[0-9]/.test(password);\n this.hasSpecialChar = /(?=.*[^a-zA-Z\\d\\s])/.test(password);\n // !@#$%^&*(),.?\n this.hasAlphabit = /[a-z]/.test(password);\n\n if (password && password.length < 8) {\n this.errorMessage = 'Password must be at least 8 characters long.';\n } else if (!this.hasCapitalLetter) {\n this.errorMessage = 'Password must contain at least one capital letter.';\n } else if (!this.hasNumber) {\n this.errorMessage = 'Password must contain at least one number.';\n } else if (!this.hasSpecialChar) {\n this.errorMessage = 'Password must contain at least one special character.';\n } else if (!this.hasAlphabit) {\n this.errorMessage = 'Password must contain at least one alphabet character.';\n } else {\n this.errorMessage = '';\n }\n // return this.hasCapitalLetter && this.hasCapitalLetter && this.hasNumber && this.hasSpecialChar && this.hasAlphabit;\n }\n\n onToggleWindow(id) {\n this.selectedItem = id;\n this.toggleWindow = id == 'change_password';\n this.resetForm();\n }\n\n goHomePage() {\n this.router.navigate(['default/settings/dashboard']);\n }\n\n loading(value) {\n LayoutService.Loading.next(value);\n this.cdRef.detectChanges();\n }\n\n resetForm() {\n this.form.reset();\n if (this.settingForm) {\n this.settingForm.resetForm();\n }\n }\n\n}\n","import { Component, OnInit, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { ExternalRestEndPoint } from 'src/app/services/external-rest-endpoints.service';\nimport { UsersService } from 'src/app/services/users.service';\nimport { LayoutService } from 'src/app/services/layout.service';\nimport config from '../../../assets/config.json';\n@Component({\n selector: 'lib-sidebar',\n templateUrl: './sidebar.component.html',\n styleUrls: ['./sidebar.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush, // Use OnPush strategy\n})\nexport class SidebarComponent implements OnInit {\n addonList = []; // Initialize as an empty array\n sidebarList = [\n {\n path: '/default/settings/dashboard',\n caption: 'Dashboard',\n icon: 'dashboard',\n },\n {\n path: '/default/settings/front-pages/integration',\n caption: 'Integrations',\n icon: 'terminal',\n },\n {\n path: '/default/settings/data/workflow/wf-service',\n caption: 'Workflows',\n icon: 'device_hub',\n },\n\n {\n path: '/default/settings/front-pages/marketplace-apps',\n caption: 'Pre-built Apps',\n icon: 'apps',\n },\n ];\n\n constructor(\n private addonService: ExternalRestEndPoint,\n private matIconRegistry: MatIconRegistry,\n private domSanitizer: DomSanitizer,\n private userService: UsersService,\n private router: Router,\n private cdref: ChangeDetectorRef\n ) {}\n isHaveRoutesAccess = true;\n\n ngOnInit(): void {\n const userRole = JSON.parse(localStorage.getItem('user'))?.Roles;\n if (userRole && userRole.length > 0 && userRole[0] === config.FREE_USER_ID) {\n this.isHaveRoutesAccess = false;\n }\n if (this.isHaveRoutesAccess) {\n const themesRoute = {\n path: '/default/settings/front-pages/themes',\n caption: 'Themes',\n icon: 'palette',\n };\n this.sidebarList.splice(3, 0, themesRoute);\n }\n\n this.getAddonList();\n this.addonService.getAddonsData$.subscribe((data) => {\n if (data) {\n this.addonList = this.getActiveAddons(data);\n this.cdref.detectChanges();\n }\n });\n }\n\n updateSidebarLinks() {}\n getActiveAddons(arr) {\n arr.forEach((addon) => {\n this.matIconRegistry.addSvgIcon(addon.IconName, this.domSanitizer.bypassSecurityTrustResourceUrl(addon.IconLink));\n });\n this.cdref.detectChanges();\n return arr.filter((x) => x.IsActive);\n }\n\n getAddonList() {\n this.loading(true);\n this.addonService.GetAddons({}).subscribe((res) => {\n if (res) {\n const link = this.getAddonIconLink(res);\n if (this.userService.minioIconLink) {\n this.userService.minioIconLink.next(link);\n }\n this.addonList = this.getActiveAddons(res);\n }\n this.cdref.detectChanges();\n this.loading(false);\n });\n }\n\n getAddonIconLink(res) {\n let _link = '';\n const _obj = res[0];\n if (_obj && _obj?.IconLink) {\n const value = _obj.IconLink.split(_obj.IconName);\n _link = value[0];\n }\n return _link;\n }\n\n loading(value) {\n LayoutService.Loading.next(value);\n }\n handleRedirection(link: string) {\n // if (caption === 'Workflows') {\n // this.router.navigate(['/default/settings/data/workflow/wf-service']);\n this.router.navigate([link]);\n // }\n }\n}\n","import { Component, HostListener, ChangeDetectorRef } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Router } from '@angular/router';\nimport { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { TourguideDialog } from 'src/app/components/dialogs/tourguide/tourguide.dialog/tourguide.dialog.component';\nimport { CreateDialogFlagService } from '../../create.flag.service';\n\n@Component({\n selector: 'app-tour-guide',\n templateUrl: './tour-guide.component.html',\n styleUrls: ['./tour-guide.component.scss'],\n providers: [DialogService],\n})\nexport class TourGuideComponent {\n items = [\n {\n title: 'General Admin Introduction',\n subtitle: 'An introductory video about General Admin',\n icon: 'layers',\n type: 'youtube',\n url: 'https://www.youtube.com/embed/R3NSysNc600',\n },\n {\n title: 'Set Up Your First Integration',\n subtitle: 'Enable reading and writing to different Data Sources.',\n icon: 'terminal',\n type: 'link',\n url: '/default/settings/front-pages/integration',\n },\n {\n title: 'Construct and Launch an Application',\n subtitle: 'Create and launch applications using drag-and-drop interface elements.',\n icon: 'rocket_launch',\n type: 'dialog',\n url: 'application',\n },\n {\n title: 'Initiate a Workflow',\n subtitle: 'Create a service side workflow.',\n icon: 'device_hub',\n type: 'dialog',\n url: 'workflow',\n },\n ];\n display: boolean = false;\n ref!: DynamicDialogRef;\n isShowDialog = false;\n dialogUrl: string | null = null;\n\n constructor(\n public dialogService: DialogService,\n private sanitizer: DomSanitizer,\n private router: Router,\n private createDialogFlagService: CreateDialogFlagService,\n private cdref: ChangeDetectorRef\n ) {}\n\n toggleOverlay() {\n this.display = !this.display;\n this.cdref.detectChanges();\n }\n\n openDialog(item: any): void {\n if (item.type === 'dialog') {\n if (item.title === this.items[2].title) {\n this.createDialogFlagService.setShowCreateDialog({ isShow: true, action: 'application' });\n this.router.navigate(['default/settings/dashboard']);\n return;\n }\n this.createDialogFlagService.setShowCreateDialog({ isShow: true, action: 'workflow' });\n this.router.navigate(['default/settings/dashboard']);\n return;\n }\n\n this.toggleOverlay();\n const sanitizedItem = { ...item };\n if (item.type === 'youtube' || item.type === 'link') {\n sanitizedItem.url = this.sanitizer.bypassSecurityTrustResourceUrl(item.url);\n }\n if (item.type === 'youtube') {\n this.ref = this.dialogService.open(TourguideDialog, {\n header: item.title,\n width: '50%',\n data: sanitizedItem,\n });\n\n this.ref.onClose.subscribe(() => {\n this.closeDialog(); // Reset z-index when dialog is closed\n });\n } else if (item.type === 'dialog') {\n this.isShowDialog = true;\n this.dialogUrl = item.url;\n } else if (item.type === 'link') {\n this.router.navigate([item.url]).then((success) => {\n if (success) {\n this.closeDialog();\n }\n });\n }\n }\n\n closeDialog() {\n // this.dialogStateService.setZIndex(0);\n this.isShowDialog = false;\n this.dialogUrl = null;\n }\n\n ngOnDestroy() {\n // if (this.ref) {\n // this.ref.close();\n // }\n }\n\n @HostListener('document:click', ['$event'])\n handleClickOutside(event: Event) {\n const targetElement = event.target as HTMLElement;\n if (!targetElement.closest('.tour-guide-container')) {\n this.display = false;\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ComponentFactoryResolver, EventEmitter, Inject, Input, Output, ViewChild, ViewContainerRef } from '@angular/core';\nimport { ViewType } from '../../models/enums/viewtype.enum';\nimport { LayoutService } from '../../services/layout.service';\nimport { NavigationService } from '../../services/navigation.service';\nimport { IBaseComponent } from '../controls/base.component';\n\n@Component({\n selector: 'base-action',\n templateUrl: './base.action.html',\n styleUrls: ['./base.action.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport abstract class BaseAction extends IBaseComponent {\n\n static Name = '';\n static Type: any = 'action';\n static Default = { Type: 'action' };\n\n @Input()\n public get MarginVisible(): any {\n return this.Visibility();\n }\n\n //#region SelectedItem\n SelectedItemValue: any;\n\n @Input()\n public get SelectedItem(): any {\n return this.SelectedItemValue;\n }\n public set SelectedItem(val: any) {\n this.SelectedItemValue = val;\n this.OnItemSet();\n this.SelectedItemChange.emit(this.SelectedItemValue);\n }\n @Output()\n public SelectedItemChange = new EventEmitter();\n //#endregion\n\n //#region Action\n ActionValue: any;\n\n @Input()\n public get Action(): any {\n return this.ActionValue;\n }\n public set Action(val: any) {\n this.ActionValue = val;\n if (this.ActionChange) {\n this.ActionChange.emit(this.ActionValue);\n }\n }\n @Output()\n public ActionChange = new EventEmitter();\n //#endregion\n //#region ViewType\n ViewTypeValue;\n @Input()\n get ViewType() {\n if (this.Action) {\n return this.Action.ViewType;\n } else {\n return this.ViewTypeValue;\n }\n }\n set ViewType(val) {\n if (this.Action) {\n this.Action.ViewType = val;\n this.ViewTypeChange.emit(this.Action.ViewType);\n } else {\n this.ViewTypeValue = val;\n this.ViewTypeChange.emit(this.ViewTypeValue);\n }\n }\n\n @Output() ViewTypeChange = new EventEmitter();\n //#endregion\n\n Component;\n @Output() EditAction = new EventEmitter();\n\n @ViewChild('dynamic', { read: ViewContainerRef }) viewContainerRef: ViewContainerRef;\n\n constructor(protected factoryResolver: ComponentFactoryResolver, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n }\n\n ngOnInit(): void {\n this.Subscriptions['Selection'] = LayoutService.SelectedItem.subscribe((item) => {\n this.SelectedItem = item;\n });\n this.Subscriptions['SelectedPage'] = NavigationService.SelectedPage.subscribe((page) => {\n if (page === 'ribbon') {\n this.ViewType = ViewType.Edit;\n } else {\n this.ViewType = ViewType.View;\n }\n });\n if (this.Action && this.Action.ComponentChanged) {\n this.Action.ComponentChanged.subscribe(() => {\n this.DrawComponent();\n });\n }\n super.ngOnInit();\n }\n\n onLayoutElementSet() {\n this.Action = this.LayoutElementValue;\n }\n\n ControlInitialized() {\n this.DrawComponent();\n }\n\n DrawComponent() {\n if (this.viewContainerRef) {\n this.viewContainerRef.clear();\n if (this.Action && this.Action.Component) {\n const factory = this.factoryResolver.resolveComponentFactory(this.Action.Component);\n const comp = this.viewContainerRef.createComponent(factory);\n comp.location.nativeElement.classList.add('full');\n comp.location.nativeElement.classList.add('flex-center');\n this.Component = comp.instance;\n (this.Component).Action = this.Action;\n }\n }\n }\n\n GetSize() {\n switch (this.Action.Size) {\n case 0: return 'small';\n case 1: return 'medium';\n case 2: return 'large';\n }\n }\n\n edit() {\n this.EditAction.emit(true);\n }\n\n abstract ExecuteAction();\n abstract Visibility();\n\n CheckClose() {\n if (!this.Action.KeepOpen) {\n LayoutService.CloseContextMenu.next(null);\n }\n }\n GetPadding() {\n const result = {};\n if (this.Action.IsContextMenu) {\n result['padding'] = '0.5em 2em 0.5em 0.75em';\n }\n return result;\n }\n OnItemSet() {\n }\n}\n","import { Component, OnDestroy, OnInit, Input, Output, EventEmitter, ComponentFactoryResolver, ChangeDetectorRef } from '@angular/core';\nimport { Gradient } from '../../../../models/style/gradient.model';\nimport { BaseAction } from '../../base.action';\n\n@Component({\n selector: 'backgroundcolor-action',\n templateUrl: './backgroundcolor.action.html',\n styleUrls: ['./backgroundcolor.action.css'],\n})\nexport class BackgroundColorAction extends BaseAction implements OnInit, OnDestroy {\n\n public static Name = 'backgroundcolor';\n\n FillStyle = {}\n\n //#region SelectedBackgroundColor\n @Input()\n get SelectedBackgroundColor() {\n if (this.SelectedItemValue) {\n return this.SelectedItemValue.BackgroundColor;\n }\n return null;\n }\n set SelectedBackgroundColor(val) {\n if (this.SelectedItemValue) {\n this.SelectedItemValue.BackgroundColor = val;\n }\n this.updateFillStyle();\n this.SelectedBackgroundColorChange.emit(val);\n }\n\n @Output() SelectedBackgroundColorChange = new EventEmitter();\n //#endregion\n\n ControlInitialized() {\n }\n\n ExecuteAction() {\n }\n\n Visibility() {\n return true;\n }\n\n updateFillStyle() {\n const fillStyle = {};\n if (this.SelectedItemValue) {\n const gradient = Gradient.getStyleObject(this.SelectedItemValue.BackgroundColor);\n if (gradient) {\n const bgc = gradient['background-color'];\n if (bgc) {\n fillStyle['fill'] = bgc;\n } else {\n const bg = gradient['background'];\n if (bg) {\n fillStyle['fill'] = bg;\n }\n }\n }\n }\n this.FillStyle = fillStyle;\n }\n\n OnItemSet() {\n this.updateFillStyle();\n }\n}\n","import { Component, OnDestroy, OnInit, Input, Output, EventEmitter, ComponentFactoryResolver, ChangeDetectorRef } from '@angular/core';\nimport { BaseAction } from '../../base.action';\nimport { Font } from '../../../../models/style/font.model';\n\n\n@Component({\n selector: 'bold-action',\n templateUrl: './bold.action.html',\n styleUrls: ['./bold.action.css'],\n})\nexport class BoldAction extends BaseAction implements OnInit, OnDestroy {\n\n public static Name = 'bold';\n \n //#region Bold\n @Input()\n get Bold() {\n if (this.SelectedItemValue && this.SelectedItemValue.Font) {\n return this.SelectedItemValue.Font.Bold;\n }\n return false;\n }\n set Bold(val) {\n if (this.SelectedItemValue) {\n if (!this.SelectedItemValue.Font) {\n this.SelectedItemValue.Font = new Font();\n }\n this.SelectedItemValue.Font.Bold = val;\n }\n this.BoldChange.emit(val);\n }\n\n @Output() BoldChange = new EventEmitter();\n //#endregion\n\n ControlInitialized() {\n\n }\n ExecuteAction() {\n this.Bold = !this.Bold;\n }\n\n Visibility() {\n return true;\n }\n\n GetStyle() {\n let result = {};\n if (this.Bold) {\n result['color'] = 'var(--primary-color)';\n }\n return result;\n }\n}\n","import { Component, OnDestroy, OnInit, Input, Output, EventEmitter, ComponentFactoryResolver, ChangeDetectorRef } from '@angular/core';\nimport { BaseAction } from '../../base.action';\nimport { Border } from '../../../../models/style/border.model';\nimport { BorderStyle } from '../../../../models/enums/borderstyle.enum';\nimport { GradientType } from '../../../../models/enums/gradienttype.enum';\nimport { Gradient } from '../../../../models/style/gradient.model';\nimport { UnitType } from '../../../../models/enums/unittype.enum';\n\n\n@Component({\n selector: 'border-action',\n templateUrl: './border.action.html',\n styleUrls: ['./border.action.css'],\n})\nexport class BorderAction extends BaseAction implements OnInit, OnDestroy {\n\n public static Name = 'border';\n \n borderStyles = BorderStyle;\n \n clearBorder() {\n if (this.SelectedItemValue) {\n this.SelectedItemValue.Border = new Border();\n }\n }\n\n setFullBorder(width, color, style) {\n if (this.SelectedItemValue) {\n if (!this.SelectedItemValue.Border) {\n this.SelectedItemValue.Border = new Border();\n }\n this.setBorder(this.SelectedItemValue.Border.TopBorder, width, color, style, false);\n this.setBorder(this.SelectedItemValue.Border.RightBorder, width, color, style, false);\n this.setBorder(this.SelectedItemValue.Border.BottomBorder, width, color, style, false);\n this.setBorder(this.SelectedItemValue.Border.LeftBorder, width, color, style, false);\n }\n }\n\n setTopBorder(width, color, style) {\n if (this.SelectedItemValue) {\n if (!this.SelectedItemValue.Border) {\n this.SelectedItemValue.Border = new Border();\n }\n this.setBorder(this.SelectedItemValue.Border.TopBorder, width, color, style, true);\n }\n }\n\n hasTopBorder() {\n if (this.SelectedItemValue && this.SelectedItemValue.Border) {\n return this.hasBorderSet(this.SelectedItemValue.Border.TopBorder);\n }\n return false;\n }\n\n setBottomBorder(width, color, style) {\n if (this.SelectedItemValue) {\n if (!this.SelectedItemValue.Border) {\n this.SelectedItemValue.Border = new Border();\n }\n this.setBorder(this.SelectedItemValue.Border.BottomBorder, width, color, style, true);\n }\n }\n\n hasBottomBorder() {\n if (this.SelectedItemValue && this.SelectedItemValue.Border) {\n return this.hasBorderSet(this.SelectedItemValue.Border.BottomBorder);\n }\n return false;\n }\n\n setLeftBorder(width, color, style) {\n if (this.SelectedItemValue) {\n if (!this.SelectedItemValue.Border) {\n this.SelectedItemValue.Border = new Border();\n }\n this.setBorder(this.SelectedItemValue.Border.LeftBorder, width, color, style, true);\n }\n }\n\n hasLeftBorder() {\n if (this.SelectedItemValue && this.SelectedItemValue.Border) {\n return this.hasBorderSet(this.SelectedItemValue.Border.LeftBorder);\n }\n return false;\n }\n\n setRightBorder(width, color, style) {\n if (this.SelectedItemValue) {\n if (!this.SelectedItemValue.Border) {\n this.SelectedItemValue.Border = new Border();\n }\n this.setBorder(this.SelectedItemValue.Border.RightBorder, width, color, style, true);\n }\n }\n\n hasRightBorder() {\n if (this.SelectedItemValue && this.SelectedItemValue.Border) {\n return this.hasBorderSet(this.SelectedItemValue.Border.RightBorder);\n }\n return false;\n }\n\n hasBorderSet(side) {\n if (side && side.Thickness && side.Thickness.Value > 0 && side.Color && side.Color.Colors.length > 0) {\n return side.Type == GradientType.Solid || side.Type == GradientType.Gradient;\n }\n return false;\n }\n\n setBorder(side, width, color, style, check) {\n if (side) {\n width = this.getRealNumber(width);\n style = this.getRealNumber(style);\n if (check) {\n if (side.Thickness.Value == width && side.Style == style && Gradient.IsSameGradient(side.Color, color)) {\n width = 0;\n style = 0;\n color = null;\n }\n }\n side.Thickness.Value = width;\n side.Thickness.Type = UnitType.Pixel;\n side.Color = color;\n side.Style = style;\n }\n }\n getRealNumber(value) {\n var retVal = parseInt(value);\n if (isNaN(retVal)) {\n retVal = 0;\n }\n return retVal;\n }\n\n getBorderPreview() {\n let result = {};\n if (this.SelectedItemValue && this.SelectedItemValue.Border) {\n if (this.SelectedItemValue.Border.LeftBorder) {\n result['border-left'] = this.SelectedItemValue.Border.LeftBorder.toStyle();\n }\n if (this.SelectedItemValue.Border.TopBorder) {\n result['border-top'] = this.SelectedItemValue.Border.TopBorder.toStyle();\n }\n if (this.SelectedItemValue.Border.RightBorder) {\n result['border-right'] = this.SelectedItemValue.Border.RightBorder.toStyle();\n }\n if (this.SelectedItemValue.Border.BottomBorder) {\n result['border-bottom'] = this.SelectedItemValue.Border.BottomBorder.toStyle();\n }\n }\n return result;\n }\n\n ControlInitialized() {\n\n }\n ExecuteAction() {\n \n }\n\n Visibility() {\n return true;\n }\n}\n","import { Component, OnDestroy, OnInit, Input, Output, EventEmitter, ComponentFactoryResolver, ChangeDetectorRef } from '@angular/core';\nimport { BaseAction } from '../../base.action';\n\n\n@Component({\n selector: 'empty-action',\n templateUrl: './empty.action.html',\n styleUrls: ['./empty.action.css'],\n})\nexport class EmptyAction extends BaseAction implements OnInit, OnDestroy {\n\n public static Name = 'empty';\n\n ControlInitialized() {\n\n }\n ExecuteAction() {\n \n }\n\n Visibility() {\n return true;\n }\n}\n","import { Component, ComponentFactoryResolver, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Color } from '../../../../models/style/color.model';\nimport { Font } from '../../../../models/style/font.model';\nimport { BaseAction } from '../../base.action';\n\n@Component({\n selector: 'fontcolor-action',\n templateUrl: './fontcolor.action.html',\n styleUrls: ['./fontcolor.action.css'],\n})\nexport class FontColorAction extends BaseAction implements OnInit, OnDestroy {\n\n public static Name = 'fontcolor';\n \n //#region SelectedFontColor\n @Input()\n get SelectedFontColor() {\n if (this.SelectedItemValue && this.SelectedItemValue.Font) {\n return Color.HexFromColor(this.SelectedItemValue.Font.FontColor);\n }\n return '';\n }\n set SelectedFontColor(val) {\n if (this.SelectedItemValue) {\n if (!this.SelectedItemValue.Font) {\n this.SelectedItemValue.Font = new Font();\n }\n this.SelectedItemValue.Font.FontColor = Color.FromHex(val);\n }\n this.SelectedFontColorChange.emit(val);\n }\n\n @Output() SelectedFontColorChange = new EventEmitter();\n //#endregion\n\n ControlInitialized() {\n }\n\n ExecuteAction() {\n }\n\n Visibility() {\n return true;\n }\n}\n","import { ChangeDetectorRef, Component, ComponentFactoryResolver, EventEmitter, Inject, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Font } from '../../../../models/style/font.model';\nimport { LayoutService } from '../../../../services/layout.service';\nimport { MediaService } from '../../../../services/media.service';\nimport { BaseAction } from '../../base.action';\n\n@Component({\n selector: 'fontfamily-action',\n templateUrl: './fontfamily.action.html',\n styleUrls: ['./fontfamily.action.css'],\n})\nexport class FontFamilyAction extends BaseAction implements OnInit, OnDestroy {\n \n public static Name = 'fontfamily';\n\n fontFamilies = [];\n\n //#region SelectedFontFamily\n @Input()\n get SelectedFontFamily() {\n if (this.SelectedItemValue && this.SelectedItemValue.Font) {\n return this.SelectedItemValue.Font.FontFamilyName;\n }\n return '';\n }\n set SelectedFontFamily(val) {\n if (this.SelectedItemValue) {\n if (!this.SelectedItemValue.Font) {\n this.SelectedItemValue.Font = new Font();\n }\n this.SelectedItemValue.Font.FontFamilyName = val;\n }\n this.SelectedFontFamilyChange.emit(val);\n }\n\n @Output() SelectedFontFamilyChange = new EventEmitter();\n //#endregion\n\n constructor(protected factoryResolver: ComponentFactoryResolver, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(factoryResolver, cdRef, data);\n this.fontFamilies = MediaService.GetFontList();\n }\n ControlInitialized() {\n\n }\n ExecuteAction() {\n }\n\n Visibility() {\n return true;\n }\n GetFontFamily(ff) {\n const result = {};\n result['font-family'] = ff;\n return result;\n }\n}\n","import { Component, OnDestroy, OnInit, Input, Output, EventEmitter, ComponentFactoryResolver, ChangeDetectorRef } from '@angular/core';\nimport { BaseAction } from '../../base.action';\nimport { Font } from '../../../../models/style/font.model';\n\n\n@Component({\n selector: 'fontsize-action',\n templateUrl: './fontsize.action.html',\n styleUrls: ['./fontsize.action.css'],\n})\nexport class FontSizeAction extends BaseAction implements OnInit, OnDestroy {\n\n public static Name = 'fontsize';\n \n fontSizes = [8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72];\n\n //#region SelectedFontSize\n @Input()\n get SelectedFontSize() {\n if (this.SelectedItemValue && this.SelectedItemValue.Font) {\n return this.SelectedItemValue.Font.FontSize;\n }\n return 0;\n }\n set SelectedFontSize(val) {\n if (this.SelectedItemValue) {\n if (!this.SelectedItemValue.Font) {\n this.SelectedItemValue.Font = new Font();\n }\n this.SelectedItemValue.Font.FontSize = val;\n }\n this.SelectedFontSizeChange.emit(val);\n }\n\n @Output() SelectedFontSizeChange = new EventEmitter();\n //#endregion\n\n ControlInitialized() {\n\n }\n ExecuteAction() {\n \n }\n\n Visibility() {\n return true;\n }\n}\n","import { Component, OnDestroy, OnInit, Input, Output, EventEmitter, ComponentFactoryResolver, ChangeDetectorRef } from '@angular/core';\nimport { BaseAction } from '../../base.action';\nimport { Alignment } from '../../../../models/enums/alignment.enum';\n\n\n@Component({\n selector: 'horizontalalignment-action',\n templateUrl: './horizontalalignment.action.html',\n styleUrls: ['./horizontalalignment.action.css'],\n})\nexport class HorizontalAlignmentAction extends BaseAction implements OnInit, OnDestroy {\n\n public static Name = 'horizontalalignment';\n\n //#region HorizontalAlignment\n @Input()\n get HorizontalAlignment() {\n if (this.SelectedItemValue) {\n return this.SelectedItemValue.HorizontalContentAlignment;\n }\n return Alignment.Start;\n }\n set HorizontalAlignment(val) {\n if (this.SelectedItemValue) {\n this.SelectedItemValue.HorizontalContentAlignment = val;\n }\n this.HorizontalAlignmentChange.emit(val);\n }\n\n @Output() HorizontalAlignmentChange = new EventEmitter();\n //#endregion\n\n ControlInitialized() {\n\n }\n setLeft() {\n this.HorizontalAlignment = Alignment.Start;\n }\n\n setCenterHor() {\n this.HorizontalAlignment = Alignment.Center;\n }\n\n setRight() {\n this.HorizontalAlignment = Alignment.End;\n }\n\n\n ExecuteAction() {\n \n }\n\n Visibility() {\n return true;\n }\n}\n","import { Component, OnDestroy, OnInit, Input, Output, EventEmitter, ComponentFactoryResolver, ChangeDetectorRef } from '@angular/core';\nimport { BaseAction } from '../../base.action';\nimport { Font } from '../../../../models/style/font.model';\n\n\n@Component({\n selector: 'italic-action',\n templateUrl: './italic.action.html',\n styleUrls: ['./italic.action.css'],\n})\nexport class ItalicAction extends BaseAction implements OnInit, OnDestroy {\n\n public static Name = 'italic';\n \n //#region Italic\n @Input()\n get Italic() {\n if (this.SelectedItemValue && this.SelectedItemValue.Font) {\n \n return this.SelectedItemValue.Font.Italic;\n }\n return false;\n }\n set Italic(val) {\n if (this.SelectedItemValue) {\n if (!this.SelectedItemValue.Font) {\n this.SelectedItemValue.Font = new Font();\n }\n this.SelectedItemValue.Font.Italic = val;\n }\n this.ItalicChange.emit(val);\n }\n \n @Output() ItalicChange = new EventEmitter();\n //#endregion\n\n ControlInitialized() {\n\n }\n ExecuteAction() {\n this.Italic = !this.Italic;\n }\n\n Visibility() {\n return true;\n }\n}\n","import { Component, OnDestroy, OnInit, Input, Output, EventEmitter, ComponentFactoryResolver, ChangeDetectorRef } from '@angular/core';\nimport { BaseAction } from '../../base.action';\nimport { Font } from '../../../../models/style/font.model';\n\n\n@Component({\n selector: 'underline-action',\n templateUrl: './underline.action.html',\n styleUrls: ['./underline.action.css'],\n})\nexport class UnderlineAction extends BaseAction implements OnInit, OnDestroy {\n\n public static Name = 'underline';\n\n //#region Underline\n @Input()\n get Underline() {\n if (this.SelectedItemValue && this.SelectedItemValue.Font) {\n return this.SelectedItemValue.Font.Underline;\n }\n return false;\n }\n set Underline(val) {\n if (this.SelectedItemValue) {\n if (!this.SelectedItemValue.Font) {\n this.SelectedItemValue.Font = new Font();\n }\n this.SelectedItemValue.Font.Underline = val;\n }\n this.UnderlineChange.emit(val);\n }\n\n @Output() UnderlineChange = new EventEmitter();\n //#endregion\n\n ControlInitialized() {\n\n }\n ExecuteAction() {\n this.Underline = !this.Underline;\n }\n\n Visibility() {\n return true;\n }\n}\n","import { Component, OnDestroy, OnInit, Input, Output, EventEmitter, ComponentFactoryResolver, ChangeDetectorRef } from '@angular/core';\nimport { BaseAction } from '../../base.action';\nimport { Alignment } from '../../../../models/enums/alignment.enum';\n\n\n@Component({\n selector: 'verticalalignment-action',\n templateUrl: './verticalalignment.action.html',\n styleUrls: ['./verticalalignment.action.css'],\n})\nexport class VerticalAlignmentAction extends BaseAction implements OnInit, OnDestroy {\n\n public static Name = 'verticalalignment';\n \n //#region VerticalAlignment\n @Input()\n get VerticalAlignment() {\n if (this.SelectedItemValue) {\n return this.SelectedItemValue.VerticalContentAlignment;\n }\n return Alignment.Start;\n }\n set VerticalAlignment(val) {\n if (this.SelectedItemValue) {\n this.SelectedItemValue.VerticalContentAlignment = val;\n }\n this.VerticalAlignmentChange.emit(val);\n }\n\n @Output() VerticalAlignmentChange = new EventEmitter();\n //#endregion\n\n ControlInitialized() {\n\n }\n ExecuteAction() {\n\n }\n setTop() {\n this.VerticalAlignment = Alignment.Start;\n }\n\n setCenterVert() {\n this.VerticalAlignment = Alignment.Center;\n }\n\n setBottom() {\n this.VerticalAlignment = Alignment.End;\n }\n Visibility() {\n return true;\n }\n}\n","import { AfterViewInit, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\ndeclare var ApexCharts: any;\n\n@Component({\n selector: 'apex-chart',\n template: '
'\n})\nexport class ApexChartsControl implements AfterViewInit {\n apexChart;\n\n //#region\n OptionsValue = null;\n @Input()\n get Options() {\n return this.OptionsValue;\n }\n set Options(val) {\n this.OptionsValue = val;\n if (this.apexChart) {\n this.apexChart.updateOptions(val);\n } else {\n this.RenderChart();\n }\n this.OptionsChange.emit(val);\n }\n @Output() OptionsChange = new EventEmitter();\n //#endregion\n\n @ViewChild('chart') chart;\n\n ngAfterViewInit(): void {\n this.RenderChart();\n }\n RenderChart() {\n if (this.OptionsValue && this.chart) {\n setTimeout(() => {\n this.apexChart = new ApexCharts(this.chart.nativeElement, this.OptionsValue);\n this.apexChart.render();\n }, 100);\n }\n }\n}\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { get } from 'scriptjs';\nimport { CacheService } from '../../cache/cache.service';\nimport { ChartData } from '../../helpers/chart.data';\nimport { ThemeHelper } from '../../helpers/theme.helpers';\nimport * as chartModel from '../../models/controls/chart.model';\nimport { AxisTextPosition } from '../../models/enums/axistextposition.enum';\nimport { ChartAnimationEasing } from '../../models/enums/chartanimationeasing.enum';\nimport { ChartComponent } from '../../models/enums/chartcomponent.enum';\nimport { ChartGeoResolution, ChartPieSliceText, ChartStackType, ChartTrendlineType } from '../../models/enums/chartcurvetype.enum';\nimport { ChartLegendAlignment } from '../../models/enums/chartlegendalignment.enum';\nimport { ChartLegendPosition } from '../../models/enums/chartlegendposition.enum';\nimport { ChartToolTipTrigger } from '../../models/enums/charttooltiptrigger.enum';\nimport { ChartType } from '../../models/enums/charttype.enum';\nimport { PointShape } from '../../models/enums/pointShape.enum';\nimport { SeriesType } from '../../models/enums/seriestype.enum';\nimport { WordTreeType } from '../../models/enums/wordtreetype.enum';\ndeclare var google: any;\n\n@Component({\n selector: 'evi-lib-chart',\n templateUrl: './chart.component.html',\n styleUrls: ['./chart.component.css']\n})\nexport class ChartControl {\n\n //#region Properties\n CompType: ChartComponent = ChartComponent.Google;\n ChartPalette: string[];\n\n //#region Options\n ApexOptions: any = {};\n SunburstOptions: any = {};\n PrimeOptions: any = {};\n //#endregion\n\n Initialized = false;\n\n @ViewChild('googleChart') googleChart;\n GoogleWrapper;\n\n //#region ChartSettings\n ChartSettingsValue: chartModel.ChartSettings = chartModel.ChartSettings.GetDefault();\n\n @Input()\n get ChartSettings(): chartModel.ChartSettings {\n return this.ChartSettingsValue;\n }\n set ChartSettings(val) {\n if (typeof val === 'object' && val !== this.ChartSettingsValue && val !== null) {\n this.ChartSettingsValue = val;\n this.createOptions();\n this.ChartSettingsChange.emit(this.ChartSettingsValue);\n }\n }\n\n @Output() ChartSettingsChange = new EventEmitter();\n //#endregion\n //#region Data\n Source;\n DataSourceValue;\n\n @Input()\n get DataSource() {\n return this.DataSourceValue;\n }\n set DataSource(val) {\n this.DataSourceValue = val;\n this.updateData();\n this.DataSourceChange.emit(this.DataSourceValue);\n }\n\n @Output() DataSourceChange = new EventEmitter();\n //#endregion\n //#region GoogleMapsAPIKey\n GoogleMapsAPIKeyValue = null;\n\n @Input()\n get GoogleMapsAPIKey() {\n return this.GoogleMapsAPIKeyValue;\n }\n set GoogleMapsAPIKey(val) {\n this.GoogleMapsAPIKeyValue = val;\n this.GoogleMapsAPIKeyChange.emit(this.GoogleMapsAPIKeyValue);\n }\n\n @Output() GoogleMapsAPIKeyChange = new EventEmitter();\n //#endregion\n //#region DrawOnlyByDataSource\n DrawOnlyByDataSourceValue = false;\n\n @Input()\n get DrawOnlyByDataSource(): boolean {\n return this.DrawOnlyByDataSourceValue;\n }\n set DrawOnlyByDataSource(val) {\n this.DrawOnlyByDataSourceValue = val;\n this.DrawOnlyByDataSourceChartChange.emit(this.DrawOnlyByDataSourceValue);\n }\n\n @Output() DrawOnlyByDataSourceChartChange = new EventEmitter();\n //#endregion\n\n get HasData(): boolean {\n if (this.DataSourceValue != null) {\n if (Array.isArray(this.DataSourceValue)) {\n return this.DataSourceValue.length > 0;\n } else if (typeof this.DataSourceValue === 'object' && Array.isArray(this.DataSourceValue.Data)) {\n return this.DataSourceValue.Data.length > 0;\n }\n }\n return false;\n }\n\n //#endregion\n //#region Lifecycle\n LoadGoogleCharts() {\n // Load the Visualization API and the corechart package.\n google.charts.load('current', { 'packages': ['corechart', 'map'], mapsApiKey: this.GoogleMapsAPIKeyValue });\n // Set a callback to run when the Google Visualization API is loaded.\n google.charts.setOnLoadCallback(() => {\n ChartControl.GoogleLoading.next(false);\n this.InitGoogleChartWrapper()\n });\n }\n InitGoogleChartWrapper() {\n if (google && google.visualization) {\n this.GoogleWrapper = new google.visualization.ChartWrapper();\n google.visualization.events.addListener(this.GoogleWrapper, 'error', (error: any) => {\n this.onGCError(error);\n });\n google.visualization.events.addListener(this.GoogleWrapper, 'select', (ev) => {\n if (ev && typeof ev.getSelection === 'function') {\n const selection = ev.getSelection();\n this.Selection(selection);\n } else if (this.GoogleWrapper) {\n const chart = this.GoogleWrapper.getChart();\n if (chart) {\n const selection = chart.getSelection();\n this.Selection(selection);\n }\n }\n });\n if (this.GetCompType() === ChartComponent.Google) {\n this.CreateOptionsInternal();\n }\n this.Initialized = true;\n }\n }\n //#endregion\n //#region Checks\n GetCompType() {\n let ct;\n if (this.ChartSettingsValue && typeof this.ChartSettingsValue.ChartType === 'number') {\n ct = this.ChartSettingsValue.ChartType;\n }\n if (!ct) {\n this.CompType = ChartComponent.None;\n return;\n }\n if (ct === ChartType.radialBar || ct === ChartType.heatmap) { // Apex-Chart\n this.CompType = ChartComponent.Apex;\n } else if (ct === ChartType.radar || ct === ChartType.polarArea) { // NG Chart\n this.CompType = ChartComponent.PrimeNG;\n } else if (ct === ChartType.Sunburst) {\n this.CompType = ChartComponent.Sunburst;\n } else {\n this.CompType = ChartComponent.Google;\n }\n return this.CompType;\n }\n private static CheckPropValue(propValue, propType, defaultValue) {\n if (typeof propValue !== propType) {\n return defaultValue;\n }\n return propValue;\n }\n\n private static CheckStringValue(propValue, defaultValue: string, checkEmpty: boolean) {\n if (typeof propValue === 'string') {\n if (checkEmpty) {\n if (propValue === '') {\n return defaultValue;\n }\n }\n return propValue;\n }\n return defaultValue;\n }\n\n private static CheckNumericPropValue(propValue, defaultValue: number, min: number, max: number) {\n let retVal = ChartControl.CheckPropValue(propValue, 'number', defaultValue);\n if (retVal < min) {\n retVal = min;\n } else if (retVal > max) {\n retVal = max;\n }\n return retVal;\n }\n\n private static CheckNumericPropValueMin(propValue, defaultValue: number, min: number) {\n let retVal = ChartControl.CheckPropValue(propValue, 'number', defaultValue);\n if (retVal < min) {\n retVal = min;\n }\n return retVal;\n }\n //#endregion\n\n private static GetTextValue(propValue, enumType, defaultValue) {\n let retVal = enumType[propValue];\n if (typeof retVal !== 'string') {\n retVal = enumType[defaultValue];\n }\n return retVal;\n }\n\n private static setAnimation(options, animationSettings: chartModel.AnimationSettings) {\n if (animationSettings) {\n options.animation = {\n duration: ChartControl.CheckPropValue(animationSettings.Duration, 'number', 1000),\n easing: ChartControl.GetTextValue(animationSettings.Easing, ChartAnimationEasing, ChartAnimationEasing.out),\n startup: ChartControl.CheckPropValue(animationSettings.StartUp, 'boolean', true)\n };\n }\n }\n\n private static setAxes(options, settings: chartModel.ChartSettings, isBar: boolean) {\n if (isBar) {\n if (settings.LabelAxis) {\n options.vAxis = {};\n ChartControl.setAxisSettings(options.vAxis, settings.LabelAxis);\n }\n if (settings.ValueAxes && settings.ValueAxes.length > 0) {\n const hAxes = [];\n settings.ValueAxes.forEach(va => {\n const hAxis = {};\n ChartControl.setContAxisSettings(hAxis, va);\n hAxes.push(hAxis);\n });\n options.hAxes = hAxes;\n }\n } else {\n if (settings.LabelAxis) {\n options.hAxis = {};\n ChartControl.setAxisSettings(options.hAxis, settings.LabelAxis);\n }\n if (settings.ValueAxes && settings.ValueAxes.length > 0) {\n const vAxes = [];\n settings.ValueAxes.forEach(va => {\n const vAxis = {};\n ChartControl.setContAxisSettings(vAxis, va);\n vAxes.push(vAxis);\n });\n options.vAxes = vAxes;\n }\n }\n }\n\n private static setAxisSettings(axis, settings: chartModel.AxisSettings) {\n if (axis && settings) {\n axis.title = ChartControl.CheckPropValue(settings.Title, 'string', null);\n axis.titleTextStyle = ChartControl.getTextStyle(settings.TitleTextStyle);\n axis.textPosition = ChartControl.GetTextValue(settings.TextPosition, AxisTextPosition, AxisTextPosition.out);\n axis.textStyle = ChartControl.getTextStyle(settings.TextStyle);\n if (settings.GridLines) {\n axis.gridlines = {\n color: ChartControl.CheckPropValue(settings.GridLines.Color, 'string', '#CCC'),\n count: ChartControl.CheckNumericPropValueMin(settings.GridLines.Count, -1, -1)\n };\n }\n if (settings.MinorGridLines) {\n axis.minorGridlines = {\n count: ChartControl.CheckNumericPropValueMin(settings.MinorGridLines.Count, -1, -1)\n };\n if (typeof settings.MinorGridLines.Color === 'string') {\n axis.minorGridlines.color = settings.MinorGridLines.Color;\n }\n }\n if (settings.ReverseDirection === true) {\n axis.direction = -1;\n }\n if (typeof settings.Format === 'string' && settings.Format) {\n axis.format = settings.Format;\n }\n }\n }\n\n private static setContAxisSettings(axis, settings: chartModel.ContinuousAxisSettings) {\n if (axis && settings) {\n ChartControl.setAxisSettings(axis, settings);\n axis.logScale = settings.LogarithmicScaling === true;\n if (settings.Ticks && settings.Ticks.length > 0) {\n const ticks = [];\n settings.Ticks.forEach(t => {\n if (typeof t.Caption === 'string') {\n ticks.push({\n v: t.Value,\n f: t.Caption\n });\n } else {\n ticks.push(t.Value);\n }\n });\n axis.ticks = ticks;\n } else {\n axis.viewWindow = {};\n if (settings.MinValue) {\n if (typeof settings.MinValue.Caption === 'string') {\n axis.viewWindow.min = {\n v: settings.MinValue.Value,\n f: settings.MinValue.Caption\n };\n } else {\n axis.viewWindow.min = settings.MinValue.Value;\n }\n }\n if (settings.MaxValue) {\n if (typeof settings.MaxValue.Caption === 'string') {\n axis.viewWindow.max = {\n v: settings.MaxValue.Value,\n f: settings.MaxValue.Caption\n };\n } else {\n axis.viewWindow.max = settings.MaxValue.Value;\n }\n }\n }\n }\n }\n\n private static getTextStyle(textStyle: chartModel.ChartTextStyle) {\n const retVal: any = {};\n if (textStyle) {\n if (typeof textStyle.Color === 'string') {\n retVal.color = textStyle.Color;\n }\n if (typeof textStyle.FontName === 'string') {\n retVal.fontName = textStyle.FontName;\n }\n if (typeof textStyle.FontSize === 'number' && textStyle.FontSize > 0) {\n retVal.fontSize = textStyle.FontSize;\n }\n retVal.bold = textStyle.Bold === true;\n retVal.italic = textStyle.Italic === true;\n }\n return retVal;\n }\n\n private static setColorAxis(options, colorList: chartModel.ColorAxisValue[]) {\n if (colorList && colorList.length > 1) {\n const validColors = [];\n let allValuesSet = true;\n colorList.forEach(cv => {\n if (cv.Color) {\n validColors.push(cv);\n if (typeof cv.Value !== 'number') {\n allValuesSet = false;\n }\n }\n });\n if (validColors.length > 1) {\n options.colorAxis = {};\n if (allValuesSet) {\n options.colorAxis.values = [validColors[0].Value];\n options.colorAxis.colors = [validColors[0].Color];\n for (let i = 1; i < validColors.length; i++) {\n const cv = validColors[i];\n for (let j = 0; j <= i; j++) {\n if (j < options.colorAxis.values.length) {\n if (cv.Value < options.colorAxis.values[j]) {\n options.colorAxis.values.splice(j, 0, cv.Value);\n options.colorAxis.colors.splice(j, 0, cv.Color);\n break;\n }\n } else {\n options.colorAxis.values.push(cv.Value);\n options.colorAxis.colors.push(cv.Color);\n }\n }\n }\n } else {\n options.colorAxis.colors = [];\n validColors.forEach(cv => {\n options.colorAxis.colors.push(cv.Color);\n });\n }\n }\n }\n }\n\n private static setSize(options, settings: chartModel.ChartSettings) {\n if (typeof settings.Height === 'number' && settings.Height > 0) {\n options.height = settings.Height;\n } else {\n options.height = '100%';\n }\n if (typeof settings.Width === 'number' && settings.Width > 0) {\n options.width = settings.Width;\n } else {\n options.width = '100%';\n }\n }\n\n private static setLegend(options, settings: chartModel.LegendSettings) {\n if (settings) {\n options.legend = {\n position: ChartControl.GetTextValue(settings.Position, ChartLegendPosition, ChartLegendPosition.right)\n };\n const alignment = ChartLegendAlignment[settings.Alignment];\n if (typeof alignment === 'string') {\n options.legend.alignment = alignment;\n }\n options.textStyle = ChartControl.getTextStyle(settings.TextStyle);\n }\n }\n\n private static setSeries(options, props, series: chartModel.SeriesSettings[]) {\n if (series) {\n options.series = [];\n options.trendlines = [];\n series.forEach((item) => {\n const result: any = {};\n props.forEach(p => {\n switch (p) {\n case 'areaOpacity':\n result.areaOpacity = ChartControl.CheckNumericPropValue(item.AreaOpacity, 0.3, 0, 1);\n break;\n case 'candleStick':\n if (item.FallingColor) {\n result.fallingColor = {};\n if (typeof item.FallingColor.Fill === 'string') {\n result.fallingColor.fill = item.FallingColor.Fill;\n }\n if (typeof item.FallingColor.Stroke === 'string') {\n result.fallingColor.stroke = item.FallingColor.Stroke;\n }\n if (typeof item.FallingColor.StrokeWidth === 'number' && item.FallingColor.StrokeWidth >= 0) {\n result.fallingColor.strokeWidth = item.FallingColor.StrokeWidth;\n }\n }\n if (item.RisingColor) {\n result.risingColor = {};\n if (typeof item.RisingColor.Fill === 'string') {\n result.risingColor.fill = item.RisingColor.Fill;\n }\n if (typeof item.RisingColor.Stroke === 'string') {\n result.risingColor.stroke = item.RisingColor.Stroke;\n }\n if (typeof item.RisingColor.StrokeWidth === 'number' && item.RisingColor.StrokeWidth >= 0) {\n result.risingColor.strokeWidth = item.RisingColor.StrokeWidth;\n }\n }\n break;\n case 'color':\n if (typeof item.Color === 'string') {\n result.color = item.Color;\n }\n break;\n case 'curveType':\n if (item.CurvedLine === true) {\n result.curveType = 'function';\n }\n break;\n case 'labelInLegend':\n if (typeof item.LegendLabel === 'string') {\n result.labelInLegend = item.LegendLabel;\n }\n break;\n case 'lineDashStyle':\n if (item.LineDashStyle && item.LineDashStyle.length > 1) {\n result.lineDashStyle = item.LineDashStyle;\n }\n break;\n case 'lineWidth':\n if (typeof item.LineWidth === 'number' && item.LineWidth >= 0) {\n result.lineWidth = item.LineWidth;\n }\n break;\n case 'pointShape':\n result.pointShape = ChartControl.GetTextValue(item.PointShape, PointShape, PointShape.circle);\n break;\n case 'pointSize':\n if (typeof item.PointSize === 'number' && item.PointSize >= 0) {\n result.pointSize = item.PointSize;\n }\n break;\n case 'pointsVisible':\n if (item.PointsVisible === false) {\n result.pointsVisible = false;\n }\n break;\n case 'targetAxisIndex':\n if (typeof item.TargetAxis === 'number' && item.TargetAxis > 0) {\n result.targetAxisIndex = item.TargetAxis;\n }\n break;\n case 'trendlines':\n options.trendlines.push(ChartControl.getTrendlineSetting(item.TrendLine));\n break;\n case 'type':\n result.type = ChartControl.GetTextValue(item.Type, SeriesType, SeriesType.bars);\n break;\n case 'visibleInLegend':\n if (item.VisibleInLegend === false) {\n result.visibleInLegend = false;\n }\n break;\n }\n });\n options.series.push(result);\n });\n }\n }\n\n private static setSeriesColors(options, settings: chartModel.ChartSettings, palette: string[]) {\n if (palette && palette.length > 0) {\n options.colors = palette.slice();\n return true;\n } else if (Array.isArray(settings.SeriesColors) && settings.SeriesColors.length > 0) {\n options.colors = settings.SeriesColors.slice();\n return true;\n } else if (ThemeHelper.ActiveThemeChartPalette && ThemeHelper.ActiveThemeChartPalette.length > 0) {\n options.colors = ThemeHelper.ActiveThemeChartPalette.slice();\n return true;\n }\n return false;\n }\n\n private static getTrendlineSetting(trendline: chartModel.TrendLineSettings) {\n if (trendline) {\n const retVal: any = {};\n if (typeof trendline.LineWidth === 'number') {\n if (trendline.LineWidth <= 0) {\n return null;\n }\n retVal.lineWidth = trendline.LineWidth;\n }\n if (typeof trendline.Color === 'string') {\n retVal.color = trendline.Color;\n }\n if (trendline.VisibleInLegend === true && typeof trendline.LabelInLegend === 'string') {\n retVal.visibleInLegend = true;\n retVal.labelInLegend = trendline.LabelInLegend;\n }\n retVal.opacity = ChartControl.CheckNumericPropValue(trendline.Opacity, 1, 0, 1);\n retVal.pointSize = ChartControl.CheckNumericPropValueMin(trendline.PointSize, 1, 0);\n if (trendline.PointsVisible === false) {\n retVal.pointsVisible = false;\n }\n retVal.showR2 = trendline.ShowR2 === true;\n retVal.type = ChartControl.GetTextValue(trendline.Type, ChartTrendlineType, ChartTrendlineType.linear);\n retVal.degree = ChartControl.CheckNumericPropValueMin(trendline.Degree, 3, 1);\n return retVal;\n }\n return null;\n }\n\n private static setTooltip(options, settings: chartModel.TooltipSettings) {\n if (settings) {\n options.tooltip = {\n // text: ChartControl.CheckPropValue(this.ChartToolTipText, 'string', null),\n trigger: ChartControl.GetTextValue(settings.Trigger, ChartToolTipTrigger, ChartToolTipTrigger.focus),\n textStyle: ChartControl.getTextStyle(settings.TextStyle)\n };\n }\n }\n\n //#region ChartOptions\n private static ApexLoading: BehaviorSubject = new BehaviorSubject(false);\n private static GoogleLoading: BehaviorSubject = new BehaviorSubject(false);\n createOptions() {\n if (this.DrawOnlyByDataSourceValue) {\n return;\n }\n this.Initialized = false;\n this.GetCompType();\n let apexsub;\n let googlesub;\n switch (this.CompType) {\n case ChartComponent.Apex:\n if (window['ApexCharts'] == null && !ChartControl.ApexLoading.getValue()) {\n ChartControl.ApexLoading.next(true);\n get(\"https://cdn.jsdelivr.net/npm/apexcharts\", () => {\n ChartControl.ApexLoading.next(false);\n this.CreateOptionsInternal();\n });\n } else if (ChartControl.ApexLoading.getValue()) {\n if (!apexsub) {\n const apexsub = ChartControl.ApexLoading.subscribe((res) => {\n if (!res) {\n apexsub.unsubscribe();\n this.CreateOptionsInternal();\n }\n });\n }\n } else {\n this.CreateOptionsInternal();\n }\n break;\n case ChartComponent.Google:\n if (window['google'] == null && !ChartControl.GoogleLoading.getValue()) {\n ChartControl.GoogleLoading.next(true);\n get(\"https://www.gstatic.com/charts/loader.js\", () => {\n this.LoadGoogleCharts();\n })\n } else if (ChartControl.GoogleLoading.getValue()) {\n if (!googlesub) {\n const googlesub = ChartControl.GoogleLoading.subscribe((res) => {\n if (!res) {\n googlesub.unsubscribe();\n this.InitGoogleChartWrapper();\n }\n });\n }\n } else {\n this.InitGoogleChartWrapper()\n }\n break;\n case ChartComponent.PrimeNG:\n this.CreateOptionsInternal();\n break;\n case ChartComponent.Sunburst:\n this.CreateOptionsInternal();\n break;\n }\n }\n\n loadChartPalette() {\n return new Promise(resolve => {\n if (this.ChartSettingsValue && this.ChartSettingsValue.ChartPalette) {\n CacheService.ReadChartPaletteValues(this.ChartSettingsValue.ChartPalette).then(x => {\n this.ChartPalette = x;\n resolve(x);\n });\n } else {\n resolve(null);\n }\n });\n }\n\n CreateOptionsInternal() {\n this.loadChartPalette().then(palette => {\n //#region GetChartType\n let ct;\n if (this.ChartSettingsValue && typeof this.ChartSettingsValue.ChartType === 'number') {\n ct = this.ChartSettingsValue.ChartType;\n }\n let chartType = ChartType[ct];\n //#endregion\n if (this.CompType === ChartComponent.Apex) { // Apex-Chart\n const options = ChartControl.GetApexChartOptions(this.ChartSettingsValue, palette);\n if (this.ApexOptions.series) {\n options.series = this.ApexOptions.series;\n }\n if (this.ApexOptions.labels) {\n options.labels = this.ApexOptions.labels;\n }\n this.ApexOptions = options;\n if (this.HasData) {\n this.updateData();\n }\n } else if (this.CompType === ChartComponent.PrimeNG) { // NG Chart\n this.PrimeOptions = {\n type: chartType,\n options: ChartControl.GetPrimeChartsOptions(this.ChartSettingsValue, ct === ChartType.radar)\n };\n if (this.HasData) {\n this.updateData();\n }\n } else if (this.CompType === ChartComponent.Sunburst) {\n const options = ChartControl.GetSunburstChartOptions(this.ChartSettingsValue);\n if (this.SunburstOptions.series) {\n options.series = this.SunburstOptions.series;\n }\n if (this.SunburstOptions.labels) {\n options.labels = this.SunburstOptions.labels;\n }\n\n this.SunburstOptions = options;\n if (this.HasData) {\n this.updateData();\n }\n } else if (this.CompType === ChartComponent.Google) {\n if (this.GoogleWrapper) {\n if (ct === ChartType.DonutChart) {\n chartType = ChartType[ChartType.PieChart];\n }\n if (this.GoogleWrapper.getChartType() !== chartType) {\n this.GoogleWrapper.setChartType(chartType);\n }\n let options = ChartControl.GetGoogleChartOptions(this.ChartSettingsValue, ct, palette);\n try {\n options = google.charts[chartType].convertOptions(options);\n } catch { }\n this.GoogleWrapper.setOptions(options);\n if (this.HasData) {\n this.updateData();\n } else {\n this.GoogleWrapper.setDataTable(null);\n const chart = this.GoogleWrapper.getChart();\n if (chart) {\n chart.clearChart();\n }\n }\n }\n }\n this.Initialized = true;\n });\n }\n\n private static GetPrimeChartsOptions(settings: chartModel.ChartSettings, isRadar: boolean): any {\n const options: any = {};\n if (settings) {\n if (settings.Animation) {\n options.animation = {\n duration: ChartControl.CheckNumericPropValueMin(settings.Animation.Duration, 1000, 0)\n };\n if (typeof settings.Animation.Easing === 'number') {\n switch (settings.Animation.Easing) {\n case ChartAnimationEasing.in:\n options.animation.easing = 'easeInSine';\n break;\n case ChartAnimationEasing.inAndOut:\n options.animation.easing = 'easeInOutSine';\n break;\n case ChartAnimationEasing.linear:\n options.animation.easing = 'linear';\n break;\n case ChartAnimationEasing.out:\n options.animation.easing = 'easeOutSine';\n break;\n }\n }\n }\n options.legend = { position: 'right' };\n if (settings.Legend) {\n if (typeof settings.Legend.Position === 'number') {\n switch (settings.Legend.Position) {\n case ChartLegendPosition.bottom:\n options.legend.position = 'bottom';\n break;\n case ChartLegendPosition.left:\n options.legend.position = 'left';\n break;\n case ChartLegendPosition.top:\n options.legend.position = 'top';\n break;\n case ChartLegendPosition.none:\n options.legend.display = false;\n break;\n default:\n options.legend.position = 'right';\n break;\n }\n } else {\n options.legend.position = 'right';\n }\n if (settings.Legend.TextStyle) {\n options.legend.labels = {\n fontSize: ChartControl.CheckNumericPropValueMin(settings.Legend.TextStyle.FontSize, 12, 1),\n fontColor: ChartControl.CheckPropValue(settings.Legend.TextStyle.Color, 'string', '#666'),\n fontFamily: ChartControl.CheckPropValue(settings.Legend.TextStyle.FontName, 'string', 'Arial')\n };\n if (settings.Legend.TextStyle.Bold === true) {\n if (settings.Legend.TextStyle.Italic === true) {\n options.legend.labels.fontStyle = 'bold italic';\n } else {\n options.legend.labels.fontStyle = 'bold';\n }\n } else if (settings.Legend.TextStyle.Italic === true) {\n options.legend.labels.fontStyle = 'italic';\n }\n }\n }\n if (typeof settings.Title === 'string' && settings.Title !== '' && settings.TitlePosition !== AxisTextPosition.none) {\n options.title = {\n display: true,\n text: settings.Title,\n };\n }\n\n if (isRadar) {\n const defSettings = settings.DefaultSeriesSetting;\n if (defSettings) {\n options.elements = {};\n const color = ChartControl.CheckPropValue(defSettings.Color, 'string', 'rgba(0, 0, 0, 0.1)');\n if (defSettings.PointsVisible === false) {\n options.elements.point = { radius: 0 };\n } else {\n options.elements.point = {\n radius: ChartControl.CheckNumericPropValueMin(defSettings.PointSize, 3, 0),\n backgroundColor: color,\n };\n if (typeof defSettings.PointShape === 'number') {\n switch (defSettings.PointShape) {\n case PointShape.circle:\n options.elements.point.pointStyle = 'circle';\n break;\n case PointShape.diamond:\n options.elements.point.pointStyle = 'rectRot';\n break;\n case PointShape.square:\n options.elements.point.pointStyle = 'rect';\n break;\n case PointShape.star:\n options.elements.point.pointStyle = 'star';\n break;\n case PointShape.triangle:\n options.elements.point.pointStyle = 'triangle';\n break;\n }\n }\n }\n options.elements.line = {\n borderColor: color,\n borderWidth: ChartControl.CheckNumericPropValueMin(defSettings.LineWidth, 3, 0)\n };\n if (Array.isArray(defSettings.LineDashStyle) && defSettings.LineDashStyle.length > 1) {\n options.elements.line.borderDash = defSettings.LineDashStyle.slice();\n }\n }\n } else {\n options.elements = {\n arc: {}\n };\n if (settings.DefaultSeriesSetting && typeof settings.DefaultSeriesSetting.Color === 'string') {\n options.elements.arc.backgroundColor = settings.DefaultSeriesSetting.Color;\n }\n if (settings.PieSettings) {\n options.elements.arc.borderColor =\n ChartControl.CheckPropValue(settings.PieSettings.SliceBorderColor, 'string', '#fff');\n }\n }\n }\n return options;\n }\n\n private static GetGoogleChartOptions(settings: chartModel.ChartSettings, ct: ChartType, palette: string[]): any {\n const options: any = {};\n if (settings) {\n switch (ct) {\n case ChartType.AnnotationChart:\n const colorsSet = ChartControl.setSeriesColors(options, settings, palette);\n if (colorsSet) {\n if (settings.Series && settings.Series.length > 0) {\n settings.Series.some((x, i) => {\n if (i < options.colors.length) {\n if (x.Color) {\n options.colors.splice(i, 0, x.Color);\n }\n return false;\n }\n return true;\n });\n }\n } else if (settings.Series && settings.Series.length > 0) {\n let colors = [];\n settings.Series.some(x => {\n if (x.Color) {\n colors.push(x.Color);\n return false;\n } else {\n colors = null;\n return true;\n }\n });\n if (colors) {\n options.colors = colors;\n }\n }\n const as = settings.AnnotationSettings;\n if (as) {\n options.displayAnnotations = ChartControl.CheckPropValue(as.DisplayAnnotations, 'boolean', true);\n options.displayAnnotationsFilter = ChartControl.CheckPropValue(as.DisplayAnnotationsFilter, 'boolean', false);\n options.displayRangeSelector = ChartControl.CheckPropValue(as.DisplayRangeSelector, 'boolean', false);\n options.displayZoomButtons = ChartControl.CheckPropValue(as.DisplayZoomButtons, 'boolean', false);\n options.fill = ChartControl.CheckNumericPropValue(as.FillOpacity, 0, 0, 100);\n options.table = {\n sortAscending: ChartControl.CheckPropValue(as.SortAscending, 'boolean', false),\n sortColumn: ChartControl.CheckPropValue(as.SortColumn, 'number', 0)\n };\n options.thickness = ChartControl.CheckNumericPropValue(as.Thickness, 0, 0, 10);\n }\n break;\n case ChartType.AreaChart:\n ChartControl.setAnimation(options, settings.Animation);\n options.backgroundColor = ChartControl.CheckPropValue(settings.BackgroundColor, 'string', 'white');\n ChartControl.setSeriesColors(options, settings, palette);\n if (typeof settings.FontSize === 'number' && settings.FontSize > 0) { options.fontSize = settings.FontSize; }\n options.fontName = ChartControl.CheckPropValue(settings.FontName, 'string', 'Arial');\n ChartControl.setAxes(options, settings, false);\n ChartControl.setSize(options, settings);\n options.isStacked = ChartControl.GetTextValue(settings.IsStacked, ChartStackType, ChartStackType.false);\n ChartControl.setLegend(options, settings.Legend);\n if (settings.SwitchOrientation === true) { options.orientation = 'vertical'; }\n ChartControl.setSeries(options, ['areaOpacity', 'color', 'labelInLegend', 'lineDashStyle', 'lineWidth',\n 'pointShape', 'pointSize', 'pointsVisible', 'targetAxisIndex', 'trendlines', 'visibleInLegend'], settings.Series);\n options.title = ChartControl.CheckPropValue(settings.Title, 'string', null);\n options.titlePosition = ChartControl.GetTextValue(settings.TitlePosition, AxisTextPosition, AxisTextPosition.out);\n ChartControl.setTooltip(options, settings.Tooltip);\n break;\n case ChartType.Bar:\n case ChartType.BarChart:\n case ChartType.ColumnChart:\n ChartControl.setAnimation(options, settings.Animation);\n options.backgroundColor = ChartControl.CheckPropValue(settings.BackgroundColor, 'string', 'white');\n if (typeof settings.BarGroupWidth === 'string') { options.bar = { groupWidth: settings.BarGroupWidth }; }\n ChartControl.setSeriesColors(options, settings, palette);\n if (typeof settings.FontSize === 'number' && settings.FontSize > 0) { options.fontSize = settings.FontSize; }\n options.fontName = ChartControl.CheckPropValue(settings.FontName, 'string', 'Arial');\n ChartControl.setAxes(options, settings, ct !== ChartType.ColumnChart);\n ChartControl.setSize(options, settings);\n options.isStacked = ChartControl.GetTextValue(settings.IsStacked, ChartStackType, ChartStackType.false);\n ChartControl.setLegend(options, settings.Legend);\n if (settings.SwitchOrientation === true) { options.orientation = 'vertical'; }\n ChartControl.setSeries(options, ['color', 'labelInLegend', 'targetAxisIndex', 'trendlines', 'visibleInLegend'],\n settings.Series);\n options.title = ChartControl.CheckPropValue(settings.Title, 'string', null);\n options.titlePosition = ChartControl.GetTextValue(settings.TitlePosition, AxisTextPosition, AxisTextPosition.out);\n ChartControl.setTooltip(options, settings.Tooltip);\n break;\n case ChartType.BubbleChart:\n ChartControl.setAnimation(options, settings.Animation);\n options.backgroundColor = ChartControl.CheckPropValue(settings.BackgroundColor, 'string', 'white');\n if (settings.BubbleSettings) {\n options.bubble = {\n opacity: ChartControl.CheckNumericPropValue(settings.BubbleSettings.Opacity, 0.8, 0, 1),\n stroke: ChartControl.CheckPropValue(settings.BubbleSettings.Stroke, 'string', null),\n textStyle: ChartControl.getTextStyle(settings.BubbleSettings.TextStyle)\n };\n options.bubble.textStyle.auraColor = 'none';\n options.sizeAxis = {\n maxSize: ChartControl.CheckNumericPropValueMin(settings.BubbleSettings.MaxBubbleSize, 30, 1),\n minSize: ChartControl.CheckNumericPropValueMin(settings.BubbleSettings.MinBubbleSize, 5, 1)\n };\n if (typeof settings.BubbleSettings.MaxBubbleValue === 'number') {\n options.sizeAxis.maxValue = settings.BubbleSettings.MaxBubbleValue;\n }\n if (typeof settings.BubbleSettings.MinBubbleValue === 'number') {\n options.sizeAxis.minValue = settings.BubbleSettings.MinBubbleValue;\n }\n options.colorAxis = {};\n ChartControl.setColorAxis(options, settings.BubbleSettings.ColorValues);\n if (settings.BubbleSettings.ShowLegend === true) {\n options.colorAxis.legend = {\n textStyle: ChartControl.getTextStyle(settings.BubbleSettings.LegendTextStyle)\n };\n if (typeof settings.BubbleSettings.LegendPosition === 'number') {\n switch (settings.BubbleSettings.LegendPosition) {\n case ChartLegendAlignment.center:\n options.colorAxis.legend.position = 'in';\n break;\n case ChartLegendAlignment.end:\n options.colorAxis.legend.position = 'bottom';\n break;\n case ChartLegendAlignment.start:\n options.colorAxis.legend.position = 'top';\n break;\n }\n }\n if (typeof settings.BubbleSettings.LegendNumberFormat === 'string') {\n options.colorAxis.legend.numberFormat = settings.BubbleSettings.LegendNumberFormat;\n }\n }\n }\n ChartControl.setSeriesColors(options, settings, palette);\n if (typeof settings.FontSize === 'number' && settings.FontSize > 0) { options.fontSize = settings.FontSize; }\n options.fontName = ChartControl.CheckPropValue(settings.FontName, 'string', 'Arial');\n ChartControl.setAxes(options, settings, false);\n ChartControl.setSize(options, settings);\n ChartControl.setLegend(options, settings.Legend);\n if (settings.Series && settings.Series.length > 1) {\n const bubbleFormatSeries = {};\n for (let i = 1; i < settings.Series.length; i++) {\n const actSeries = settings.Series[i];\n if (typeof actSeries.Color === 'string' && typeof actSeries.LegendLabel === 'string') {\n bubbleFormatSeries[actSeries.LegendLabel] = {\n color: actSeries.Color,\n visibleInLegend: false\n };\n }\n }\n options.series = bubbleFormatSeries;\n }\n options.title = ChartControl.CheckPropValue(settings.Title, 'string', null);\n options.titlePosition = ChartControl.GetTextValue(settings.TitlePosition, AxisTextPosition, AxisTextPosition.out);\n ChartControl.setTooltip(options, settings.Tooltip);\n break;\n case ChartType.Calendar:\n const cal = settings.CalendarSettings;\n if (cal) {\n options.calendar = {\n cellColor: {\n stroke: ChartControl.CheckPropValue(cal.CellBorderStroke, 'string', '#fff'),\n strokeOpacity: ChartControl.CheckNumericPropValue(cal.CellBorderOpacity, 1, 0, 1),\n strokeWidth: ChartControl.CheckNumericPropValueMin(cal.CellBorderStrokeWidth, 1, 0)\n },\n cellSize: ChartControl.CheckNumericPropValueMin(cal.CellSize, 16, 1),\n dayOfWeekLabel: ChartControl.getTextStyle(cal.DayOfWeekLabel),\n focusedCellColor: {\n stroke: ChartControl.CheckPropValue(cal.FocusedCellBorderStroke, 'string', '#000'),\n strokeOpacity: ChartControl.CheckNumericPropValue(cal.FocusedCellBorderOpacity, 1, 0, 1),\n strokeWidth: ChartControl.CheckNumericPropValueMin(cal.FocusedCellBorderStrokeWidth, 2, 0)\n },\n monthLabel: ChartControl.getTextStyle(cal.MonthLabel),\n monthOutlineColor: {\n stroke: ChartControl.CheckPropValue(cal.MonthBorderStroke, 'string', '#000'),\n strokeOpacity: ChartControl.CheckNumericPropValue(cal.MonthBorderOpacity, 1, 0, 1),\n strokeWidth: ChartControl.CheckNumericPropValueMin(cal.MonthBorderStrokeWidth, 1, 0)\n },\n unusedMonthOutlineColor: {\n stroke: ChartControl.CheckPropValue(cal.UnUsedMonthBorderStroke, 'string', '#c9c9c9'),\n strokeOpacity: ChartControl.CheckNumericPropValue(cal.UnUsedMonthBorderOpacity, 1, 0, 1),\n strokeWidth: ChartControl.CheckNumericPropValueMin(cal.UnUsedMonthBorderStrokeWidth, 1, 0)\n }\n };\n ChartControl.setColorAxis(options, cal.ColorValues);\n }\n ChartControl.setSize(options, settings);\n break;\n case ChartType.CandlestickChart:\n ChartControl.setAnimation(options, settings.Animation);\n options.backgroundColor = ChartControl.CheckPropValue(settings.BackgroundColor, 'string', 'white');\n if (typeof settings.BarGroupWidth === 'string') { options.bar = { groupWidth: settings.BarGroupWidth }; }\n ChartControl.setSeriesColors(options, settings, palette);\n if (typeof settings.FontSize === 'number' && settings.FontSize > 0) { options.fontSize = settings.FontSize; }\n options.fontName = ChartControl.CheckPropValue(settings.FontName, 'string', 'Arial');\n ChartControl.setAxes(options, settings, false);\n ChartControl.setSize(options, settings);\n ChartControl.setLegend(options, settings.Legend);\n if (settings.SwitchOrientation === true) { options.orientation = 'vertical'; }\n ChartControl.setSeries(options, ['candleStick', 'color', 'labelInLegend',\n 'targetAxisIndex', 'trendlines', 'visibleInLegend'], settings.Series);\n options.title = ChartControl.CheckPropValue(settings.Title, 'string', null);\n options.titlePosition = ChartControl.GetTextValue(settings.TitlePosition, AxisTextPosition, AxisTextPosition.out);\n ChartControl.setTooltip(options, settings.Tooltip);\n break;\n case ChartType.ComboChart:\n ChartControl.setAnimation(options, settings.Animation);\n options.backgroundColor = ChartControl.CheckPropValue(settings.BackgroundColor, 'string', 'white');\n if (typeof settings.BarGroupWidth === 'string') { options.bar = { groupWidth: settings.BarGroupWidth }; }\n ChartControl.setSeriesColors(options, settings, palette);\n if (typeof settings.FontSize === 'number' && settings.FontSize > 0) { options.fontSize = settings.FontSize; }\n options.fontName = ChartControl.CheckPropValue(settings.FontName, 'string', 'Arial');\n ChartControl.setAxes(options, settings, false);\n ChartControl.setSize(options, settings);\n options.isStacked = ChartControl.GetTextValue(settings.IsStacked, ChartStackType, ChartStackType.false);\n ChartControl.setLegend(options, settings.Legend);\n if (settings.SwitchOrientation === true) { options.orientation = 'vertical'; }\n this.setSeries(options, ['areaOpacity', 'candleStick', 'color', 'curveType', 'labelInLegend',\n 'lineDashStyle', 'lineWidth', 'pointShape', 'pointSize', 'pointsVisible',\n 'targetAxisIndex', 'trendlines', 'type', 'visibleInLegend'],\n settings.Series);\n options.title = ChartControl.CheckPropValue(settings.Title, 'string', null);\n options.titlePosition = ChartControl.GetTextValue(settings.TitlePosition, AxisTextPosition, AxisTextPosition.out);\n ChartControl.setTooltip(options, settings.Tooltip);\n break;\n case ChartType.DonutChart:\n case ChartType.PieChart:\n options.backgroundColor = ChartControl.CheckPropValue(settings.BackgroundColor, 'string', 'white');\n ChartControl.setSeriesColors(options, settings, palette);\n if (typeof settings.FontSize === 'number' && settings.FontSize > 0) { options.fontSize = settings.FontSize; }\n options.fontName = ChartControl.CheckPropValue(settings.FontName, 'string', 'Arial');\n ChartControl.setSize(options, settings);\n ChartControl.setLegend(options, settings.Legend);\n options.title = ChartControl.CheckPropValue(settings.Title, 'string', null);\n ChartControl.setTooltip(options, settings.Tooltip);\n const pie = settings.PieSettings;\n if (pie) {\n options.is3D = ChartControl.CheckPropValue(pie.Is3D, 'boolean', false);\n if (ct === ChartType.DonutChart) {\n options.pieHole = ChartControl.CheckNumericPropValue(pie.PieHole, 0.5, 0, 1);\n }\n options.pieSliceBorderColor = ChartControl.CheckPropValue(pie.SliceBorderColor, 'string', 'white');\n options.pieSliceText = ChartControl.GetTextValue(pie.SliceText, ChartPieSliceText, ChartPieSliceText.percentage);\n options.pieSliceTextStyle = ChartControl.getTextStyle(pie.SliceTextStyle);\n options.pieStartAngle = ChartControl.CheckPropValue(pie.StartAngle, 'number', 0);\n options.pieResidueSliceColor = ChartControl.CheckPropValue(pie.ResidueSliceColor, 'string', '#ccc');\n if (typeof pie.ResidueSliceLabel === 'string') {\n options.pieResidueSliceLabel = pie.ResidueSliceLabel;\n }\n options.sliceVisibilityThreshold = ChartControl.CheckNumericPropValue(pie.ResidueThreshold, 0.0014, 0, 1);\n if (pie.Slices && pie.Slices.length > 0) {\n options.slices = [];\n pie.Slices.forEach((item) => {\n const result = {\n offset: ChartControl.CheckNumericPropValue(item.Offset, 0, 0, 1),\n textStyle: ChartControl.getTextStyle(item.TextStyle)\n };\n if (typeof item.Color === 'string') {\n result['color'] = item.Color;\n }\n options.slices.push(result);\n });\n }\n } else {\n if (ct === ChartType.DonutChart) {\n options.pieHole = 0.5;\n }\n }\n break;\n case ChartType.Gantt:\n options.backgroundColor = ChartControl.CheckPropValue(settings.BackgroundColor, 'string', 'white');\n const gantt = settings.GanttSettings;\n if (gantt) {\n options.gantt = {\n arrow: {\n angle: ChartControl.CheckPropValue(gantt.ArrowAngle, 'number', 45),\n color: ChartControl.CheckPropValue(gantt.ArrowColor, 'string', '#000'),\n length: ChartControl.CheckNumericPropValueMin(gantt.ArrowLength, 8, 1),\n radius: ChartControl.CheckNumericPropValueMin(gantt.ArrowRadius, 15, 1),\n width: ChartControl.CheckNumericPropValueMin(gantt.ArrowWidth, 1.4, 1)\n },\n barCornerRadius: ChartControl.CheckNumericPropValueMin(gantt.CornerRadius, 2, 0),\n criticalPathEnabled: ChartControl.CheckPropValue(gantt.CriticalPathEnabled, 'boolean', true),\n criticalPathStyle: {\n stroke: ChartControl.CheckPropValue(gantt.CriticalPathStroke, 'string', null),\n strokeWidth: ChartControl.CheckNumericPropValueMin(gantt.CriticalPathStrokeWidth, 1.4, 0)\n },\n innerGridDarkTrack: { fill: ChartControl.CheckPropValue(gantt.GridDarkTrack, 'string', null) },\n innerGridHorizLine: {\n stroke: ChartControl.CheckPropValue(gantt.GridLineStroke, 'string', null),\n strokeWidth: ChartControl.CheckNumericPropValueMin(gantt.GridLineStrokeWidth, 1, 0)\n },\n innerGridTrack: { fill: ChartControl.CheckPropValue(gantt.GridTrack, 'string', null) },\n labelStyle: ChartControl.getTextStyle(gantt.LabelStyle),\n percentEnabled: ChartControl.CheckPropValue(gantt.PercentEnabled, 'boolean', true),\n shadowEnabled: ChartControl.CheckPropValue(gantt.ShadowEnabled, 'boolean', true),\n shadowColor: ChartControl.CheckPropValue(gantt.ShadowColor, 'string', null),\n shadowOffset: ChartControl.CheckNumericPropValueMin(gantt.ShadowOffset, 1, 0)\n };\n if (typeof gantt.BarHeight === 'number' && gantt.BarHeight > 0) {\n options.gantt.barHeight = gantt.BarHeight;\n }\n if (typeof gantt.PercentFill === 'string') {\n options.gantt.percentStyle = {\n fill: gantt.PercentFill\n };\n }\n if (typeof gantt.TrackHeight === 'number' && gantt.TrackHeight > 0) {\n options.gantt.trackHeight = gantt.TrackHeight;\n }\n }\n ChartControl.setSize(options, settings);\n break;\n case ChartType.Gauge:\n ChartControl.setAnimation(options, settings.Animation);\n const gauge = settings.GaugeSettings;\n if (gauge) {\n if (gauge.GreenArea) {\n options.greenColor = ChartControl.CheckPropValue(gauge.GreenArea.Color, 'string', '#109618');\n if (typeof gauge.GreenArea.From === 'number') {\n options.greenFrom = gauge.GreenArea.From;\n }\n if (typeof gauge.GreenArea.To === 'number') {\n options.greenTo = gauge.GreenArea.To;\n }\n }\n if (gauge.YellowArea) {\n options.yellowColor = ChartControl.CheckPropValue(gauge.YellowArea.Color, 'string', '#FF9900');\n if (typeof gauge.YellowArea.From === 'number') {\n options.yellowFrom = gauge.YellowArea.From;\n }\n if (typeof gauge.YellowArea.To === 'number') {\n options.yellowTo = gauge.YellowArea.To;\n }\n }\n if (gauge.RedArea) {\n options.redColor = ChartControl.CheckPropValue(gauge.RedArea.Color, 'string', '#DC3912');\n if (typeof gauge.RedArea.From === 'number') {\n options.redFrom = gauge.RedArea.From;\n }\n if (typeof gauge.RedArea.To === 'number') {\n options.redTo = gauge.RedArea.To;\n }\n }\n if (gauge.MajorTicks && gauge.MajorTicks.length > 1) { options.majorTicks = gauge.MajorTicks.slice(); }\n options.minorTicks = ChartControl.CheckNumericPropValueMin(gauge.MinorTicks, 2, 0);\n options.min = ChartControl.CheckPropValue(gauge.MinValue, 'number', 0);\n options.max = ChartControl.CheckPropValue(gauge.MaxValue, 'number', 100);\n }\n ChartControl.setSize(options, settings);\n break;\n case ChartType.GeoChart:\n options.backgroundColor = ChartControl.CheckPropValue(settings.BackgroundColor, 'string', 'white');\n if (settings.GeoSettings) {\n ChartControl.setColorAxis(options, settings.GeoSettings.ColorValues);\n options.region = ChartControl.CheckStringValue(settings.GeoSettings.Region, 'world', true);\n options.resolution = ChartControl.GetTextValue(settings.GeoSettings.Resolution,\n ChartGeoResolution, ChartGeoResolution.countries);\n }\n options.displayMode = 'regions';\n ChartControl.setSize(options, settings);\n ChartControl.setTooltip(options, settings.Tooltip);\n break;\n case ChartType.Histogram:\n ChartControl.setAnimation(options, settings.Animation);\n options.backgroundColor = ChartControl.CheckPropValue(settings.BackgroundColor, 'string', 'white');\n if (typeof settings.BarGroupWidth === 'string') { options.bar = { groupWidth: settings.BarGroupWidth }; }\n ChartControl.setSeriesColors(options, settings, palette);\n if (typeof settings.FontSize === 'number' && settings.FontSize > 0) { options.fontSize = settings.FontSize; }\n options.fontName = ChartControl.CheckPropValue(settings.FontName, 'string', 'Arial');\n ChartControl.setAxes(options, settings, false);\n ChartControl.setSize(options, settings);\n options.isStacked = ChartControl.GetTextValue(settings.IsStacked, ChartStackType, ChartStackType.false);\n ChartControl.setLegend(options, settings.Legend);\n if (settings.SwitchOrientation === true) { options.orientation = 'vertical'; }\n ChartControl.setSeries(options, ['color', 'labelInLegend', 'targetAxisIndex', 'visibleInLegend'], settings.Series);\n options.title = ChartControl.CheckPropValue(settings.Title, 'string', null);\n options.titlePosition = ChartControl.GetTextValue(settings.TitlePosition, AxisTextPosition, AxisTextPosition.out);\n ChartControl.setTooltip(options, settings.Tooltip);\n break;\n case ChartType.Interval:\n // ???\n break;\n case ChartType.Line:\n case ChartType.LineChart:\n ChartControl.setAnimation(options, settings.Animation);\n options.backgroundColor = ChartControl.CheckPropValue(settings.BackgroundColor, 'string', 'white');\n ChartControl.setSeriesColors(options, settings, palette);\n if (typeof settings.FontSize === 'number' && settings.FontSize > 0) { options.fontSize = settings.FontSize; }\n options.fontName = ChartControl.CheckPropValue(settings.FontName, 'string', 'Arial');\n ChartControl.setAxes(options, settings, false);\n ChartControl.setSize(options, settings);\n ChartControl.setLegend(options, settings.Legend);\n if (settings.SwitchOrientation === true) { options.orientation = 'vertical'; }\n ChartControl.setSeries(options, ['color', 'curveType', 'labelInLegend', 'lineDashStyle', 'lineWidth', 'pointShape',\n 'pointSize', 'pointsVisible', 'targetAxisIndex ', 'trendlines', 'visibleInLegend'], settings.Series);\n options.title = ChartControl.CheckPropValue(settings.Title, 'string', null);\n options.titlePosition = ChartControl.GetTextValue(settings.TitlePosition, AxisTextPosition, AxisTextPosition.out);\n ChartControl.setTooltip(options, settings.Tooltip);\n break;\n case ChartType.Map:\n // TODO\n // options.mapType = ChartControl.GetTextValue(this.MapType, MapType, MapType.normal);\n // options.showTooltip = ChartControl.CheckPropValue(this.ShowTooltip, 'boolean', false);\n // options.useMapTypeControl = ChartControl.CheckPropValue(this.UseMapTypeControl, 'boolean', false);\n break;\n case ChartType.OrgChart:\n // ???\n break;\n case ChartType.ScatterChart:\n ChartControl.setAnimation(options, settings.Animation);\n options.backgroundColor = ChartControl.CheckPropValue(settings.BackgroundColor, 'string', 'white');\n ChartControl.setSeriesColors(options, settings, palette);\n if (typeof settings.FontSize === 'number' && settings.FontSize > 0) { options.fontSize = settings.FontSize; }\n options.fontName = ChartControl.CheckPropValue(settings.FontName, 'string', 'Arial');\n ChartControl.setAxes(options, settings, false);\n ChartControl.setSize(options, settings);\n ChartControl.setLegend(options, settings.Legend);\n if (settings.SwitchOrientation === true) { options.orientation = 'vertical'; }\n ChartControl.setSeries(options, ['color', 'labelInLegend', 'pointShape', 'pointSize', 'pointsVisible',\n 'trendlines', 'visibleInLegend'], settings.Series);\n options.title = ChartControl.CheckPropValue(settings.Title, 'string', null);\n options.titlePosition = ChartControl.GetTextValue(settings.TitlePosition, AxisTextPosition, AxisTextPosition.out);\n ChartControl.setTooltip(options, settings.Tooltip);\n break;\n case ChartType.SteppedAreaChart:\n ChartControl.setAnimation(options, settings.Animation);\n options.backgroundColor = ChartControl.CheckPropValue(settings.BackgroundColor, 'string', 'white');\n ChartControl.setSeriesColors(options, settings, palette);\n if (typeof settings.FontSize === 'number' && settings.FontSize > 0) { options.fontSize = settings.FontSize; }\n options.fontName = ChartControl.CheckPropValue(settings.FontName, 'string', 'Arial');\n ChartControl.setAxes(options, settings, false);\n ChartControl.setSize(options, settings);\n options.isStacked = ChartControl.GetTextValue(settings.IsStacked, ChartStackType, ChartStackType.false);\n ChartControl.setLegend(options, settings.Legend);\n ChartControl.setSeries(options, ['areaOpacity', 'color', 'labelInLegend', 'lineDashStyle',\n 'targetAxisIndex', 'visibleInLegend'], settings.Series);\n options.title = ChartControl.CheckPropValue(settings.Title, 'string', null);\n options.titlePosition = ChartControl.GetTextValue(settings.TitlePosition, AxisTextPosition, AxisTextPosition.out);\n ChartControl.setTooltip(options, settings.Tooltip);\n break;\n case ChartType.Timeline:\n options.backgroundColor = ChartControl.CheckPropValue(settings.BackgroundColor, 'string', 'white');\n ChartControl.setSeriesColors(options, settings, palette);\n if (typeof settings.FontSize === 'number' && settings.FontSize > 0) { options.fontSize = settings.FontSize; }\n options.fontName = ChartControl.CheckPropValue(settings.FontName, 'string', 'Arial');\n ChartControl.setSize(options, settings);\n ChartControl.setTooltip(options, settings.Tooltip);\n const tl = settings.TimelineSettings;\n if (tl) {\n options.avoidOverlappingGridLines = ChartControl.CheckPropValue(tl.AvoidOverlap, 'boolean', true);\n options.timeline = {\n barLabelStyle: ChartControl.getTextStyle(tl.BarLabelStyle),\n colorByRowLabel: ChartControl.CheckPropValue(tl.ColorByRowLabel, 'boolean', false),\n groupByRowLabel: ChartControl.CheckPropValue(tl.GroupByRowLabel, 'boolean', true),\n rowLabelStyle: ChartControl.getTextStyle(tl.RowLabelStyle),\n showBarLabels: ChartControl.CheckPropValue(tl.ShowBarLabels, 'boolean', true),\n showRowLabels: ChartControl.CheckPropValue(tl.ShowRowLabels, 'boolean', true),\n singleColor: ChartControl.CheckPropValue(tl.SingleColor, 'string', null)\n };\n }\n break;\n case ChartType.TreeMap:\n if (typeof settings.FontName === 'string') { options.fontFamily = settings.FontName; }\n if (typeof settings.FontSize === 'number' && settings.FontSize > 0) { options.fontSize = settings.FontSize; }\n const tm = settings.TreeMapSettings;\n if (tm) {\n options.fontColor = ChartControl.CheckPropValue(tm.FontColor, 'string', '#ffffff');\n options.headerColor = ChartControl.CheckPropValue(tm.HeaderColor, 'string', '#988f86');\n options.headerHeight = ChartControl.CheckNumericPropValueMin(tm.HeaderHeight, 0, 0);\n options.headerHighlightColor = ChartControl.CheckPropValue(tm.HeaderHighlightColor, 'string', null);\n options.highlightOnMouseOver = ChartControl.CheckPropValue(tm.HighlightOnHover, 'boolean', false);\n options.hintOpacity = ChartControl.CheckNumericPropValue(tm.HintOpacity, 0, 0, 1);\n options.maxColor = ChartControl.CheckPropValue(tm.MaxColor, 'string', '#00dd00');\n options.maxDepth = ChartControl.CheckNumericPropValueMin(tm.MaxDepth, 1, 0);\n options.maxHighlightColor = ChartControl.CheckPropValue(tm.MaxHighlightColor, 'string', null);\n options.maxPostDepth = ChartControl.CheckNumericPropValueMin(tm.MaxPostDepth, 0, 0);\n options.maxColorValue = ChartControl.CheckPropValue(tm.MaxColorValue, 'number', null);\n options.midColor = ChartControl.CheckPropValue(tm.MidColor, 'string', '#000000');\n options.midHighlightColor = ChartControl.CheckPropValue(tm.MidHighlightColor, 'string', null);\n options.minColor = ChartControl.CheckPropValue(tm.MinColor, 'string', '#dd0000');\n options.minHighlightColor = ChartControl.CheckPropValue(tm.MinHighlightColor, 'string', null);\n options.minColorValue = ChartControl.CheckPropValue(tm.MinColorValue, 'number', null);\n options.noColor = ChartControl.CheckPropValue(tm.NoColor, 'string', '#000000');\n options.noHighlightColor = ChartControl.CheckPropValue(tm.NoHighlightColor, 'string', null);\n options.showScale = ChartControl.CheckPropValue(tm.ShowScale, 'boolean', false);\n options.showTooltips = ChartControl.CheckPropValue(tm.ShowTooltips, 'boolean', true);\n options.textStyle = ChartControl.getTextStyle(tm.TextStyle);\n options.useWeightedAverageForAggregation =\n ChartControl.CheckPropValue(tm.UseWeightedAverageForAggregation, 'boolean', false);\n }\n options.title = ChartControl.CheckPropValue(settings.Title, 'string', null);\n break;\n case ChartType.WordTree:\n ChartControl.setSeriesColors(options, settings, palette);\n if (typeof settings.FontName === 'string') {\n options.fontName = settings.FontName;\n }\n ChartControl.setSize(options, settings);\n if (settings.WordTreeSettings) {\n options.wordtree = {\n type: ChartControl.GetTextValue(settings.WordTreeSettings.Type, WordTreeType, WordTreeType.suffix)\n };\n }\n break;\n }\n }\n return options;\n }\n\n private static GetApexChartOptions(settings: chartModel.ChartSettings, palette: string[]): any {\n const options: any = { series: [] };\n if (settings) {\n options.chart = {};\n if (settings.Animation) {\n options.chart.animations = {\n enabled: true,\n speed: ChartControl.CheckNumericPropValueMin(settings.Animation.Duration, 800, 1)\n };\n if (typeof settings.Animation.Easing === 'number') {\n switch (settings.Animation.Easing) {\n case ChartAnimationEasing.in:\n options.chart.animations.easing = 'easein';\n break;\n case ChartAnimationEasing.inAndOut:\n options.chart.animations.easing = 'easeout';\n break;\n case ChartAnimationEasing.linear:\n options.chart.animations.easing = 'linear';\n break;\n case ChartAnimationEasing.out:\n options.chart.animations.easing = 'easeinout';\n break;\n }\n }\n }\n options.chart.background = ChartControl.CheckPropValue(settings.BackgroundColor, 'string', '#fff');\n options.chart.fontName = ChartControl.CheckPropValue(settings.FontName, 'string', 'Helvetica, Arial, sans-serif');\n ChartControl.setSize(options.chart, settings);\n options.chart.toolbar = { show: false };\n ChartControl.setSeriesColors(options, settings, palette);\n options.legend = {\n show: true,\n position: 'right'\n };\n if (settings.Legend) {\n if (settings.Legend.Position === ChartLegendPosition.none) {\n options.legend.show = false;\n } else {\n options.legend.position =\n ChartControl.GetTextValue(settings.Legend.Position, ChartLegendPosition, ChartLegendPosition.right);\n if (typeof settings.Legend.Alignment === 'number') {\n switch (settings.Legend.Alignment) {\n case ChartLegendAlignment.center:\n options.legend.horizontalAlign = 'center';\n break;\n case ChartLegendAlignment.end:\n options.legend.horizontalAlign = 'right';\n break;\n case ChartLegendAlignment.start:\n options.legend.horizontalAlign = 'left';\n break;\n }\n }\n if (settings.Legend.TextStyle) {\n if (typeof settings.Legend.TextStyle.FontName === 'string') {\n options.legend.fontFamily = settings.Legend.TextStyle.FontName;\n }\n if (typeof settings.Legend.TextStyle.FontSize === 'number' && settings.Legend.TextStyle.FontSize > 0) {\n options.legend.fontSize = settings.Legend.TextStyle.FontSize + 'px';\n }\n }\n }\n }\n if (typeof settings.Title === 'string') {\n options.title = {\n text: settings.Title\n };\n }\n if (settings.Tooltip && settings.Tooltip.TextStyle) {\n options.tooltip = {\n style: {}\n };\n if (typeof settings.Tooltip.TextStyle.FontName === 'string') {\n options.tooltip.style.fontFamily = settings.Tooltip.TextStyle.FontName;\n }\n if (typeof settings.Tooltip.TextStyle.FontSize === 'number' && settings.Tooltip.TextStyle.FontSize > 0) {\n options.tooltip.style.fontSize = settings.Tooltip.TextStyle.FontSize + 'px';\n }\n }\n if (settings.ChartType === ChartType.radialBar) {\n options.chart.type = 'radialBar';\n } else if (settings.ChartType === ChartType.heatmap) {\n options.chart.type = 'heatmap';\n if (settings.Series && settings.Series.length > 0) {\n if (options.colors) {\n settings.Series.some((x, i) => {\n if (i < options.colors.length) {\n if (x.Color) {\n options.colors.splice(i, 0, x.Color);\n }\n return false;\n }\n return true;\n });\n } else {\n let colors = [];\n settings.Series.some(x => {\n if (x.Color) {\n colors.push(x.Color);\n return false;\n } else {\n colors = null;\n return true;\n }\n });\n if (colors) {\n options.colors = colors;\n }\n }\n }\n if (settings.HeatMapSettings) {\n options.plotOptions = {\n heatmap: {\n colorScale: {\n ranges: []\n }\n }\n };\n if (settings.HeatMapSettings.ColorValues && settings.HeatMapSettings.ColorValues.length > 0) {\n settings.HeatMapSettings.ColorValues.forEach(x => {\n if (typeof x.From === 'number' && typeof x.To === 'number' && typeof x.Color === 'string') {\n const colVal = {\n from: x.From,\n to: x.To,\n color: x.Color,\n name: ''\n };\n if (x.Caption) {\n colVal.name = x.Caption;\n }\n if (x.From > x.To) {\n colVal.from = x.To;\n colVal.to = x.From;\n }\n options.plotOptions.heatmap.colorScale.ranges.push(colVal);\n }\n });\n }\n }\n }\n }\n return options;\n }\n private static GetSunburstChartOptions(settings: chartModel.ChartSettings): any {\n const options: any = {};\n if (settings) {\n if (settings.Series) {\n options.Label = settings.Series[0]['Label'];\n options.Children = settings.Series[0]['Children'];\n options.Value = settings.Series[0]['Value'];\n options.TooltipValue = settings.Series[0]['TooltipValue'];\n options.Color = settings.Series[0]['ColorField'];\n options.CenterRadius = settings['CenterRadius'];\n options.RadiusScaleExponent = settings['RadiusScaleExponent'];\n options.ShowLabels = settings['ShowLabels'];\n options.ShowTooltip = settings['ShowTooltip'];\n options.TooltipTitle = settings['TooltipTitle'];\n options.TooltipContent = settings['TooltipContent'];\n options.ExcludeRoot = settings['ExcludeRoot'];\n\n }\n }\n return options;\n }\n //#endregion\n //#region Data\n updateData() {\n let data, styles;\n if (this.DataSourceValue != null) {\n if (Array.isArray(this.DataSourceValue)) {\n data = this.DataSourceValue;\n } else if (typeof this.DataSourceValue === 'object' && Array.isArray(this.DataSourceValue.Data)) {\n data = this.DataSourceValue.Data;\n styles = this.DataSourceValue.Styles;\n }\n }\n this.Source = ChartData.GenerateData(this.ChartSettings, data, styles);\n switch (this.CompType) {\n case ChartComponent.Apex:\n const series = [];\n const labels = [];\n if (Array.isArray(this.Source) && this.Source.length > 1) {\n if (this.ChartSettingsValue && typeof this.ChartSettingsValue.ChartType === 'number') {\n if (this.ChartSettingsValue.ChartType === ChartType.radialBar) {\n for (let i = 1; i < this.Source.length; i++) {\n const row = this.Source[i];\n if (Array.isArray(row) && row.length > 1) {\n labels.push(row[0]);\n series.push(row[1]);\n }\n }\n } else if (this.ChartSettingsValue.ChartType === ChartType.heatmap) {\n const firstRow = this.Source[0];\n if (firstRow.length > 1) {\n for (let i = 1; i < firstRow.length; i++) {\n series.push({\n name: firstRow[i],\n data: []\n });\n }\n for (let i = 1; i < this.Source.length; i++) {\n const row = this.Source[i];\n if (Array.isArray(row) && row.length > 1) {\n const xVal = row[0];\n for (let j = 1; j < row.length && j <= series.length; j++) {\n series[j - 1].data.push({\n x: xVal,\n y: row[j]\n });\n }\n }\n }\n }\n }\n }\n }\n const options = Object.assign({}, this.ApexOptions);\n options.series = series;\n options.labels = labels;\n this.ApexOptions = options;\n break;\n case ChartComponent.Google:\n if (this.GoogleWrapper) {\n if (Array.isArray(this.Source) && this.Source.length > 0) {\n this.GoogleWrapper.setDataTable(google.visualization.arrayToDataTable(this.Source));\n this.drawGoogleChart();\n } else {\n this.GoogleWrapper.setDataTable(null);\n const chart = this.GoogleWrapper.getChart();\n if (chart) {\n chart.clearChart();\n }\n }\n }\n break;\n case ChartComponent.PrimeNG:\n const data = {\n labels: [],\n datasets: []\n };\n if (Array.isArray(this.Source) && this.Source.length > 0) {\n if (this.ChartSettingsValue && typeof this.ChartSettingsValue.ChartType === 'number') {\n const seriesRow = this.Source[0];\n if (Array.isArray(seriesRow) && seriesRow.length > 1) {\n if (this.ChartSettingsValue.ChartType === ChartType.radar) {\n let ser: chartModel.SeriesSettings[] = [];\n let colors = [];\n if (this.ChartSettingsValue.Series) {\n ser = this.ChartSettingsValue.Series;\n }\n if (this.ChartPalette) {\n colors = this.ChartPalette;\n } else if (this.ChartSettingsValue.SeriesColors) {\n colors = this.ChartSettingsValue.SeriesColors;\n } else if (ThemeHelper.ActiveThemeChartPalette) {\n colors = ThemeHelper.ActiveThemeChartPalette;\n }\n for (let i = 1; i < seriesRow.length; i++) {\n const ds: any = {\n label: seriesRow[i],\n data: []\n };\n if (colors.length >= i) {\n const serColor = colors[i - 1];\n ds.pointBackgroundColor = serColor;\n ds.borderColor = serColor;\n }\n if (ser.length >= i) {\n const actSeries = ser[i - 1];\n if (typeof actSeries.Color === 'string') {\n ds.pointBackgroundColor = actSeries.Color;\n ds.borderColor = actSeries.Color;\n }\n if (actSeries.PointsVisible === false) {\n ds.pointRadius = 0;\n } else {\n if (typeof actSeries.PointSize === 'number' && actSeries.PointSize > 0) {\n ds.pointRadius = actSeries.PointSize;\n }\n if (typeof actSeries.PointShape === 'number') {\n switch (actSeries.PointShape) {\n case PointShape.circle:\n ds.pointStyle = 'circle';\n break;\n case PointShape.diamond:\n ds.pointStyle = 'rectRot';\n break;\n case PointShape.square:\n ds.pointStyle = 'rect';\n break;\n case PointShape.star:\n ds.pointStyle = 'star';\n break;\n case PointShape.triangle:\n ds.pointStyle = 'triangle';\n break;\n }\n }\n }\n if (Array.isArray(actSeries.LineDashStyle) && actSeries.LineDashStyle.length > 1) {\n ds.borderDash = actSeries.LineDashStyle.slice();\n }\n if (typeof actSeries.LineWidth === 'number' && actSeries.LineWidth > 0) {\n ds.borderWidth = actSeries.LineWidth;\n }\n }\n data.datasets.push(ds);\n }\n } else if (this.ChartSettingsValue.ChartType === ChartType.polarArea) {\n let ser: chartModel.SliceSettings[] = [];\n let colors = [];\n if (this.ChartSettingsValue) {\n if (this.ChartSettingsValue.PieSettings && this.ChartSettingsValue.PieSettings.Slices) {\n ser = this.ChartSettingsValue.PieSettings.Slices;\n }\n if (this.ChartPalette) {\n colors = this.ChartPalette;\n } else if (this.ChartSettingsValue.SeriesColors) {\n colors = this.ChartSettingsValue.SeriesColors;\n } else if (ThemeHelper.ActiveThemeChartPalette) {\n colors = ThemeHelper.ActiveThemeChartPalette;\n }\n }\n for (let i = 1; i < seriesRow.length; i++) {\n const ds: any = {\n label: seriesRow[i],\n data: []\n };\n if (colors.length >= i) {\n ds.backgroundColor = colors[i - 1];\n }\n if (ser.length >= i) {\n const actSeries = ser[i - 1];\n if (typeof actSeries.Color === 'string') {\n ds.backgroundColor = actSeries.Color;\n }\n }\n data.datasets.push(ds);\n }\n }\n for (let i = 1; i < this.Source.length; i++) {\n const dataRow = this.Source[i];\n if (Array.isArray(dataRow) && dataRow.length > 0) {\n data.labels.push(dataRow[0]);\n for (let j = 1; j < dataRow.length && j <= data.datasets.length; j++) {\n data.datasets[j - 1].data.push(dataRow[j]);\n }\n }\n }\n }\n }\n this.PrimeOptions.data = data;\n }\n break;\n case ChartComponent.Sunburst:\n if (Array.isArray(this.Source) && this.Source.length > 0) {\n if (this.ChartSettingsValue && typeof this.ChartSettingsValue.ChartType === 'number') {\n if (this.ChartSettingsValue.ChartType === ChartType.Sunburst) {\n const options = Object.assign({}, this.SunburstOptions);\n if (Array.isArray(this.Source) && this.Source.length > 1) {\n let data = {};\n data[options.Children ? options.Children : 'children'] = this.Source;\n data[options.Label ? options.Label : 'name'] = '';\n data[options.Value ? options.Value : 'value'] = '';\n options.data = data;\n } else {\n options.data = this.Source\n }\n\n this.SunburstOptions = options;\n }\n //const seriesRow = this.Source[0];\n //if (Array.isArray(seriesRow) && seriesRow.length > 1) {\n\n // //for (let i = 1; i < this.Source.length; i++) {\n // const dataRow = this.Source[i];\n // if (Array.isArray(dataRow) && dataRow.length > 0) {\n // data.labels.push(dataRow[0]);\n // for (let j = 1; j < dataRow.length && j <= data.datasets.length; j++) {\n // data.datasets[j - 1].data.push(dataRow[j]);\n // }\n // }\n //}\n //}\n }\n }\n break;\n }\n }\n //#endregion\n drawGoogleChart() {\n setTimeout(() => {\n if (this.googleChart && this.GoogleWrapper && this.GoogleWrapper.getDataTable()) {\n this.GoogleWrapper.draw(this.googleChart.nativeElement);\n }\n }, 50);\n }\n\n onGCError(ev) {\n\n }\n\n onChartResize(event) {\n if (this.CompType === ChartComponent.Google) {\n this.drawGoogleChart();\n }\n }\n @Output() SelectionChanged = new EventEmitter();\n Selection(event) {\n this.SelectionChanged.emit(event);\n }\n}\n","import { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ChartControl } from './chart.component';\nimport { ApexChartsControl } from './apexcharts.component';\nimport { ChartModule } from 'primeng/chart';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { SunburstControl } from './sunburst.component';\n\n@NgModule({\n declarations: [\n ChartControl,\n ApexChartsControl,\n SunburstControl\n ],\n imports: [\n CommonModule,\n FormsModule,\n ScrollingModule,\n ChartModule,\n AngularResizeEventModule\n ],\n exports: [\n ChartControl\n ]\n})\nexport class ChartsModule { }\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport Sunburst from 'sunburst-chart';\nimport * as d3 from 'd3';\nimport { ResizedEvent } from 'angular-resize-event';\n\n@Component({\n selector: 'sunburst-chart',\n template: '
',\n styleUrls: ['sunburst.component.css']\n})\nexport class SunburstControl implements AfterViewInit {\n Chart;\n\n //#region\n OptionsValue = null;\n @Input()\n get Options() {\n return this.OptionsValue;\n }\n set Options(val) {\n this.Refreshing = true;\n this.OptionsValue = val;\n this.OptionsChange.emit(val);\n this.cdRef.detectChanges();\n if (val) {\n setTimeout(() => {\n this.Refreshing = false;\n this.cdRef.detectChanges();\n this.RenderChart();\n },50)\n }\n }\n @Output() OptionsChange = new EventEmitter();\n Refreshing = false;\n //#endregion\n Color;\n\n private static clearNode(node, childPath: string) {\n const retVal = Object.assign({}, node);\n delete retVal.__dataNode;\n const children = retVal[childPath];\n if (Array.isArray(children) && children.length > 0) {\n const newChildren = [];\n children.forEach(child => {\n const clearedChild = SunburstControl.clearNode(child, childPath);\n newChildren.push(clearedChild);\n });\n retVal[childPath] = newChildren;\n }\n return retVal;\n }\n\n constructor(public cdRef: ChangeDetectorRef) {\n this.Color = d3.scaleOrdinal(d3.schemePaired);\n }\n ngAfterViewInit(): void {\n this.RenderChart();\n }\n\n RenderChart() {\n if (this.OptionsValue && this.OptionsValue.data && this.SizeSet) {\n const element = document.getElementById('chart');\n if (element) {\n this.Chart = Sunburst()\n .data(this.OptionsValue.data)\n .label(this.OptionsValue.Label ? this.OptionsValue.Label : 'name')\n .children(this.OptionsValue.Children ? this.OptionsValue.Children : 'children')\n .size(this.OptionsValue.Value ? this.OptionsValue.Value : 'value')\n .color((node) => this.GetColor(node))\n .showLabels(this.OptionsValue.ShowLabels ? true : false)\n .showTooltip((node) => this.OptionsValue.ShowTooltip ? true : false)\n .onClick((node) => {\n this.Chart.focusOnNode(node);\n const clearedNode = SunburstControl.clearNode(node, this.OptionsValue.Children ? this.OptionsValue.Children : 'children');\n this.SelectionChanged.emit(clearedNode);\n })\n .tooltipContent((d, node) => this.GetTooltip(node, this.OptionsValue.TooltipContent, this.OptionsValue.TooltipValue ? this.OptionsValue.TooltipValue : 'value'))\n .tooltipTitle((node) => this.GetTooltip(node, this.OptionsValue.TooltipTitle, this.OptionsValue.Label ? this.OptionsValue.Label : 'name'))\n .excludeRoot(this.OptionsValue.ExcludeRoot ? true : false)\n .centerRadius(this.OptionsValue.CenterRadius)\n .radiusScaleExponent(this.OptionsValue.RadiusScaleExponent)\n (element);\n this.SetChartSize();\n }\n }\n }\n @Output() SelectionChanged = new EventEmitter();\n GetColor(node) {\n let retVal = null;\n if (this.OptionsValue.Color) {\n retVal = node[this.OptionsValue.Color];\n } else if (node && node.__dataNode) {\n let parent = node.__dataNode.parent;\n retVal = this.Color(parent ? parent.data[this.OptionsValue.Label ? this.OptionsValue.Label : 'name'] : null);\n }\n return retVal;\n }\n GetTooltip(node, text, property) {\n let data = null;\n if (node.data) {\n data = node.data;\n } else {\n data = node;\n }\n let retVal = data[property];\n if (text) {\n if (text.indexOf('$value') > -1) {\n retVal = text.substring(0, text.indexOf('$value'));\n retVal += data[property];\n retVal += text.substring(text.indexOf('$value') + 6);\n } else {\n retVal = text;\n }\n }\n return retVal;\n }\n\n ContainerSizeValue: any;\n get ContainerSize() {\n return this.ContainerSizeValue;\n }\n set ContainerSize(value) {\n this.ContainerSizeValue = value;\n this.SetChartSize();\n }\n SizeSet = false;\n private container;\n @ViewChild('container') set _container(content: ElementRef) {\n this.container = content;\n if (content && content.nativeElement) {\n this.ContainerSize = {\n height: this.container.nativeElement.clientHeight + 'px',\n Height: this.container.nativeElement.clientHeight,\n width: this.container.nativeElement.clientWidth + 'px',\n Width: this.container.nativeElement.clientWidth\n };\n this.SizeSet = true;\n this.RenderChart();\n }\n }\n\n resized(event: ResizedEvent) {\n this.ContainerSize = {\n height: event.newRect.height + 'px',\n Height: event.newRect.height,\n width: event.newRect.width + 'px',\n Width: event.newRect.width\n }\n this.SizeSet = true;\n }\n SetChartSize() {\n if (this.Chart && this.ContainerSize) {\n this.Chart.width(this.ContainerSize.Width);\n this.Chart.height(this.ContainerSize.Height);\n }\n this.cdRef.detectChanges();\n }\n}\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport { ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { AboutInfo } from '../../../helpers/about.info';\nimport { DialogButton } from '../../../models/enums/dialogbutton.enum';\nimport { BaseDialog } from '../../dialogs/basedialog/base.dialog';\n\n@Component({\n selector: 'about',\n templateUrl: './about.control.html',\n styleUrls: ['./about.control.css']\n})\nexport class AboutControl implements OnInit {\n\n AboutInfo;\n BaseDialog;\n CustomButtons;\n\n static ShowDialog() {\n BaseDialog.ShowDialog({\n AutoFocus: false,\n ContentType: AboutControl,\n Buttons: DialogButton.Ok,\n Title: '@@About'\n });\n }\n\n constructor(private cdRef: ChangeDetectorRef, private cb: Clipboard) {\n }\n\n ngOnInit(): void {\n AboutInfo.GetAboutInfo().then(x => {\n if (x) {\n this.AboutInfo = x;\n if (this.BaseDialog) {\n this.CustomButtons = [{\n ID: 0,\n Caption: '@@Copy informations'\n }];\n }\n this.cdRef.detectChanges();\n }\n });\n }\n\n OnCustomButtonClicked(but) {\n if (but && but.ID === 0) {\n this.copy();\n }\n }\n\n copy() {\n if (this.AboutInfo) {\n const text = this.AboutInfo.getInfoText();\n this.cb.copy(text);\n }\n }\n}\n","import { CollectionViewer, SelectionChange, SelectionModel } from '@angular/cdk/collections';\nimport { FlatTreeControl } from '@angular/cdk/tree';\nimport {\n ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild,\n Directive, EventEmitter, Injectable, Input, OnDestroy, OnInit, Output, TemplateRef\n} from '@angular/core';\nimport { BehaviorSubject, merge, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TranslateFormatText } from '../../../helpers/array.helpers';\nimport { RTLHelper } from '../../../helpers/rtl.helper';\nimport { DropState } from '../../../models/enums/dropstate.enum';\nimport { MessageBoxButtons } from '../../../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../../../models/enums/messageboxicon.enum';\nimport { MessageBoxHelper} from '../../dialogs/messagebox/messagebox.dialog';\n\nexport interface IBaseTreeNode {\n ID: number;\n Checkable: boolean;\n Draggable: boolean;\n Selectable: boolean;\n Icon: string;\n Caption: string;\n TranslateCaption: string;\n ToolTip: string;\n IsExpanded: boolean;\n HasChildren: boolean;\n Children: IBaseTreeNode[];\n}\n\nexport class ABaseTreeNode implements IBaseTreeNode {\n ID: number;\n Checkable = false;\n Draggable = false;\n Selectable = true;\n Icon: string;\n Caption: string;\n TranslateCaption: string;\n ToolTip: string;\n IsExpanded = false;\n HasChildren = false;\n Children: IBaseTreeNode[];\n\n constructor(id: number) {\n this.ID = id;\n }\n}\n\nexport class IDKeeper {\n private ID = 0;\n get NextID() { return this.ID++; }\n private resetID = 0;\n\n constructor(startID?: number) {\n if (typeof startID === 'number') {\n this.resetID = startID;\n this.reset();\n }\n }\n\n reset() {\n this.ID = this.resetID;\n }\n}\n\nexport class TreeNode {\n private IsSelectedValue = false;\n IsLoading = false;\n Children: TreeNode[];\n private InternalParent: TreeNode;\n private level = 0;\n private InternalDropState: DropState = DropState.None;\n private DropStyle = {};\n\n constructor(private node: IBaseTreeNode, parentNode: TreeNode) {\n this.Parent = parentNode;\n }\n\n get OriginalNode(): IBaseTreeNode { return this.node; }\n get Level(): number { return this.level; }\n get ID(): number { return this.node.ID; }\n get Checkable(): boolean { return this.node.Checkable; }\n get Draggable(): boolean { return this.node.Draggable; }\n get Selectable(): boolean { return this.node.Selectable; }\n get Icon(): string { return this.node.Icon; }\n get Caption(): string { return this.node.Caption; }\n get TranslateCaption(): string { return this.node.TranslateCaption; }\n get ToolTip(): string { return this.node.ToolTip; }\n get Expandable(): boolean { return this.node.HasChildren; }\n\n get IsExpanded(): boolean { return this.node.HasChildren && this.node.IsExpanded; }\n set IsExpanded(val: boolean) { this.node.IsExpanded = val; }\n\n get IsSelected(): boolean { return this.IsSelectedValue; }\n set IsSelected(val: boolean) {\n if (this.Selectable) {\n this.IsSelectedValue = val;\n }\n }\n\n get DropState(): DropState { return this.InternalDropState; }\n set DropState(val: DropState) {\n this.InternalDropState = val;\n const style = {};\n switch (val) {\n case DropState.After:\n style['border-bottom'] = '3px solid var(--primary-color)';\n break;\n case DropState.Before:\n style['border-top'] = '3px solid var(--primary-color)';\n break;\n case DropState.Inner:\n style['background-color'] = 'var(--primary-color)';\n break;\n }\n this.DropStyle = style;\n }\n\n get Parent(): TreeNode {\n return this.InternalParent;\n }\n set Parent(val: TreeNode) {\n this.InternalParent = val;\n if (val) {\n this.level = val.Level + 1;\n } else {\n this.level = 0;\n }\n }\n}\n\n\nexport interface ITreeLogic {\n loadChildren(node: IBaseTreeNode): Promise;\n}\n\nexport interface IDropChecker {\n checkCanDrop(dropArgs);\n}\n\n@Injectable()\nexport class TreeNodeDataSource {\n\n dataChange = new BehaviorSubject([]);\n handlingModelChange = false;\n\n get data(): TreeNode[] { return this.dataChange.value; }\n\n LogicValue: ITreeLogic;\n @Input()\n get Logic(): ITreeLogic {\n return this.LogicValue;\n }\n set Logic(val) {\n this.LogicValue = val;\n }\n\n private OrigRootNodesValue: IBaseTreeNode[] = [];\n private RootNodesValue: TreeNode[] = [];\n get RootNodes(): TreeNode[] {\n return this.RootNodesValue;\n }\n\n private static generateChildTreeNodes(tn: TreeNode, level: number, expandedNodes: TreeNode[]): TreeNode[] {\n if (tn) {\n const orig = tn.OriginalNode;\n if (orig && orig.HasChildren && orig.IsExpanded) {\n expandedNodes.push(tn);\n const retVal = [];\n tn.Children = [];\n orig.Children.forEach(n => {\n const child = new TreeNode(n, tn);\n tn.Children.push(child);\n retVal.push(child);\n const childChilds = TreeNodeDataSource.generateChildTreeNodes(child, level + 1, expandedNodes);\n if (childChilds) {\n retVal.push(...childChilds);\n }\n });\n return retVal;\n }\n }\n return null;\n }\n\n private static getAllExpandedNodes(tnList: TreeNode[], expandedNodes: TreeNode[]): TreeNode[] {\n const retVal = [];\n tnList.forEach(tn => {\n retVal.push(tn);\n if (tn.IsExpanded) {\n expandedNodes.push(tn);\n const childList = TreeNodeDataSource.getAllExpandedNodes(tn.Children, expandedNodes);\n retVal.push(...childList);\n }\n });\n return retVal;\n }\n\n constructor(private treeControl: FlatTreeControl, private cdRef: ChangeDetectorRef) { }\n\n init(rootNodes: IBaseTreeNode[]) {\n const value = [];\n const rootNodesValue = [];\n const expanded = [];\n rootNodes.forEach(n => {\n const tn = new TreeNode(n, null);\n value.push(tn);\n rootNodesValue.push(tn);\n const childs = TreeNodeDataSource.generateChildTreeNodes(tn, 1, expanded);\n if (childs) {\n value.push(...childs);\n }\n });\n this.treeControl.dataNodes = value;\n this.handlingModelChange = true;\n this.treeControl.expansionModel.clear();\n this.treeControl.expansionModel.select(...expanded);\n this.handlingModelChange = false;\n this.dataChange.next(value);\n this.RootNodesValue = rootNodesValue;\n this.OrigRootNodesValue = rootNodes;\n }\n\n connect(collectionViewer: CollectionViewer): Observable {\n this.treeControl.expansionModel.changed.subscribe(change => {\n if (!this.handlingModelChange) {\n this.handlingModelChange = true;\n this.handleExpansionChange(change as SelectionChange);\n this.handlingModelChange = false;\n }\n });\n return merge(collectionViewer.viewChange, this.dataChange).pipe(map(() => this.data));\n }\n\n async handleExpansionChange(change: SelectionChange) {\n if (change.added) {\n const newList = change.added.slice();\n for (let i = 0; i < newList.length; i++) {\n await this.toggleNode(newList[i], true);\n }\n }\n if (change.removed) {\n const newList = change.removed.slice();\n for (let i = newList.length - 1; i >= 0; i--) {\n await this.toggleNode(newList[i], false);\n }\n }\n this.cdRef.detectChanges();\n }\n\n /**\n * Toggle the node, remove from display list\n */\n async toggleNode(node: TreeNode, expand: boolean) {\n const index = this.data.indexOf(node);\n if (!node.Expandable || index < 0) { // If no children, or cannot find the node, no op\n return;\n }\n\n node.IsLoading = true;\n\n if (expand) {\n const allNodes = [];\n if (node.Children) {\n const expanded = [];\n allNodes.push(...TreeNodeDataSource.getAllExpandedNodes(node.Children, expanded));\n this.treeControl.expansionModel.select(...expanded);\n } else {\n const children = [];\n if (node.OriginalNode.Children) {\n const expanded = [];\n node.OriginalNode.Children.forEach(cn => {\n const tn = new TreeNode(cn, node);\n children.push(tn);\n allNodes.push(tn);\n const childs = TreeNodeDataSource.generateChildTreeNodes(tn, tn.Level + 1, expanded);\n if (childs) {\n allNodes.push(...childs);\n }\n });\n this.treeControl.expansionModel.select(...expanded);\n } else if (this.LogicValue) {\n const childNodes = await this.LogicValue.loadChildren(node.OriginalNode);\n if (childNodes) {\n childNodes.forEach(cn => {\n children.push(new TreeNode(cn, node));\n });\n allNodes.push(...children);\n }\n }\n node.Children = children;\n }\n this.data.splice(index + 1, 0, ...allNodes);\n } else {\n let count = 0;\n for (let i = index + 1; i < this.data.length\n && this.data[i].Level > node.Level; i++ , count++) { }\n this.data.splice(index + 1, count);\n }\n node.IsExpanded = expand;\n // notify the change\n this.dataChange.next(this.data);\n node.IsLoading = false;\n }\n}\n\n@Directive({\n selector: '[nodeContent]'\n})\nexport class NodeContentDirective { }\n\n@Component({\n selector: 'base-tree-control',\n templateUrl: './base.tree.control.html',\n styleUrls: ['./base.tree.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BaseTreeControl implements OnInit, OnDestroy {\n treeControlValue: FlatTreeControl;\n @Input()\n get treeControl(): FlatTreeControl {\n return this.treeControlValue;\n }\n set treeControl(val) {\n this.treeControlValue = val;\n this.treeControlChange.emit(val);\n }\n @Output() treeControlChange = new EventEmitter();\n\n dataSource: TreeNodeDataSource;\n checklistSelection = new SelectionModel(true);\n dragState;\n\n @Output() treeControlSet = new EventEmitter();\n\n RootNodesValue: IBaseTreeNode[];\n @Input()\n get RootNodes(): IBaseTreeNode[] {\n return this.RootNodesValue;\n }\n set RootNodes(val) {\n if (val !== this.RootNodesValue) {\n this.RootNodesValue = val;\n this.SelectedNodeValue = null;\n this.dataSource.init(val);\n this.RootNodesChange.emit(val);\n }\n }\n @Output() RootNodesChange = new EventEmitter();\n\n DragTypeValue: string;\n @Input()\n get DragType(): string {\n return this.DragTypeValue;\n }\n set DragType(val) {\n this.DragTypeValue = val;\n this.DragTypeChange.emit(val);\n }\n @Output() DragTypeChange = new EventEmitter();\n\n InternalDragValue: boolean;\n @Input()\n get InternalDrag(): boolean {\n return this.InternalDragValue;\n }\n set InternalDrag(val) {\n this.InternalDragValue = val;\n this.InternalDragChange.emit(val);\n }\n @Output() InternalDragChange = new EventEmitter();\n\n DragOnIconValue: boolean;\n @Input()\n get DragOnIcon(): boolean {\n return this.DragOnIconValue;\n }\n set DragOnIcon(val) {\n this.DragOnIconValue = val;\n this.DragOnIconChange.emit(val);\n }\n @Output() DragOnIconChange = new EventEmitter();\n\n InternalDropCheckerValue: IDropChecker;\n @Input()\n get InternalDropChecker(): IDropChecker {\n return this.InternalDropCheckerValue;\n }\n set InternalDropChecker(val) {\n this.InternalDropCheckerValue = val;\n }\n\n @Input()\n get Logic(): ITreeLogic {\n return this.dataSource.Logic;\n }\n set Logic(val) {\n this.dataSource.Logic = val;\n }\n\n MultipleSelectionValue = false;\n @Input()\n get MultipleSelection(): boolean {\n return this.MultipleSelectionValue;\n }\n set MultipleSelection(val) {\n this.MultipleSelectionValue = val;\n }\n\n SelectedNodeValue: IBaseTreeNode;\n @Input()\n get SelectedNode(): IBaseTreeNode {\n return this.SelectedNodeValue;\n }\n set SelectedNode(val) {\n if (val !== this.SelectedNodeValue) {\n this.SelectedNodeValue = val;\n BaseTreeControl.executeOnAllNodes(this.dataSource.RootNodes, (tn) => {\n tn.IsSelected = tn.OriginalNode == val;\n });\n this.SelectedNodeChange.emit(val);\n }\n }\n @Output() SelectedNodeChange = new EventEmitter();\n\n SelectedNodesValue: IBaseTreeNode[];\n @Input()\n get SelectedNodes(): IBaseTreeNode[] {\n return this.SelectedNodesValue;\n }\n set SelectedNodes(val) {\n if (val !== this.SelectedNodesValue) {\n this.SelectedNodesValue = val;\n BaseTreeControl.executeOnAllNodes(this.dataSource.RootNodes, (tn) => {\n tn.IsSelected = val.some((value) => tn.OriginalNode == value);\n });\n this.SelectedNodesChange.emit(val);\n }\n }\n @Output() SelectedNodesChange = new EventEmitter();\n\n @ContentChild(NodeContentDirective, { read: TemplateRef }) nodeContentTemplate;\n\n @Output() SelectionChanged = new EventEmitter();\n @Output() CheckedChanged = new EventEmitter();\n @Output() DragStart = new EventEmitter();\n @Output() DragEnd = new EventEmitter();\n @Output() InternalDrop = new EventEmitter();\n @Output() DoubleClick = new EventEmitter();\n\n IsRtl = false;\n Subscriptions = [];\n\n private static executeOnAllNodes(nodes: TreeNode[], func: (n: TreeNode) => void) {\n if (nodes && func) {\n nodes.forEach(n => {\n func(n);\n BaseTreeControl.executeOnAllNodes(n.Children, func);\n });\n }\n }\n\n constructor(public cdRef: ChangeDetectorRef) {\n this.treeControl = new FlatTreeControl((n) => n.Level, (n) => n.Expandable);\n this.dataSource = new TreeNodeDataSource(this.treeControl, this.cdRef);\n }\n ngOnInit(): void {\n this.treeControlSet.emit(this);\n this.IsRtl = RTLHelper.Direction == 'rtl';\n this.Subscriptions.push(RTLHelper.DirectionChanged.subscribe((dir) => {\n this.IsRtl = dir == 'rtl';\n this.cdRef.detectChanges();\n }));\n }\n ngOnDestroy(): void {\n this.Subscriptions.forEach(x => x.unsubscribe());\n }\n\n hasChild = (_: number, nodeData: TreeNode) => nodeData.Expandable;\n nodeClicked(ev: MouseEvent, node: TreeNode) {\n if (node.Selectable) {\n const selNodes = [];\n if (ev && ev.ctrlKey && this.MultipleSelectionValue) {\n node.IsSelected = !node.IsSelected;\n BaseTreeControl.executeOnAllNodes(this.dataSource.RootNodes, (tn) => {\n if (tn.IsSelected) {\n selNodes.push(tn.OriginalNode);\n }\n });\n if (this.SelectedNodeValue) {\n this.SelectedNodeValue = null;\n this.SelectedNodeChange.emit(null);\n }\n } else {\n BaseTreeControl.executeOnAllNodes(this.dataSource.RootNodes, (tn) => { tn.IsSelected = false; });\n node.IsSelected = true;\n selNodes.push(node.OriginalNode);\n this.SelectedNode = node.OriginalNode;\n }\n this.SelectedNodes = selNodes;\n this.SelectionChanged.emit(selNodes);\n }\n }\n\n dragStart(ev) {\n const dragContext = {\n Caption: '',\n DraggedTreeNodes: [],\n DragData: [],\n CanDrop: true,\n DropInfoText: null,\n Event: ev,\n DropNode: null\n };\n const captions = [];\n this.treeControl.dataNodes.forEach(dn => {\n if (dn.IsSelected && dn.Draggable) {\n captions.push(dn.Caption);\n dragContext.DraggedTreeNodes.push(dn);\n dragContext.DragData.push(dn.OriginalNode);\n }\n });\n dragContext.Caption = captions.join(', ');\n this.dragState = dragContext;\n ev.dataTransfer.setData(\"context\", dragContext);\n this.DragStart.emit(dragContext);\n }\n\n dragEnd(ev) {\n this.dragState = null;\n this.DragEnd.emit(ev);\n }\n\n async dragOver(ev, node) {\n node.DropState = DropState.None;\n const ds = this.dragState;\n if (ds) {\n const oldDropNode = ds.DropNode;\n ds.DropNode = node;\n const nodeChanged = oldDropNode !== node;\n if (oldDropNode && nodeChanged) {\n oldDropNode.DropState = DropState.None;\n }\n if (ev.currentTarget) {\n if (!ev.currentTarget.DropHeight) {\n ev.currentTarget.DropHeight = ev.currentTarget.offsetHeight;\n }\n const pos = ev.offsetY / ev.currentTarget.DropHeight;\n let target = null;\n if (ds.DropNode.Parent) {\n target = ds.DropNode.Parent.OriginalNode;\n }\n if (pos <= 0.25) {\n node.DropState = DropState.Before;\n } else if (pos >= 0.75) {\n node.DropState = DropState.After;\n } else {\n node.DropState = DropState.Inner;\n target = ds.DropNode.OriginalNode;\n }\n if (ds.DraggedTreeNodes.some(x => x === node)) {\n return;\n }\n if (node.Expandable && !node.OriginalNode.Children && this.Logic) {\n return;\n }\n if (this.InternalDropCheckerValue) {\n const dropState = {\n DragState: ds,\n Target: target,\n Cancel: false\n };\n await this.InternalDropCheckerValue.checkCanDrop(dropState);\n if (dropState.Cancel) {\n return;\n }\n }\n }\n }\n }\n\n onInternalDrop(ev) {\n if (this.dragState) {\n if (this.dragState.CanDrop === false) {\n if (this.dragState.DropInfoText !== null) {\n MessageBoxHelper.ShowDialog(this.dragState.DropInfoText, new TranslateFormatText('@@Drop'),\n MessageBoxButtons.Ok, MessageBoxIcon.Warning);\n }\n } else {\n const dropNode = this.dragState.DropNode;\n if (dropNode) {\n if (ev && dropNode.DropState !== DropState.None) {\n const dropInfo = {\n DropTarget: null,\n DropIndex: 0,\n DroppedNodes: []\n };\n let dropList;\n let dropIndex;\n if (dropNode.DropState === DropState.Inner) {\n dropNode.OriginalNode.IsExpanded = true;\n dropNode.OriginalNode.HasChildren = true;\n if (!dropNode.OriginalNode.Children) {\n dropNode.OriginalNode.Children = [];\n }\n dropInfo.DropTarget = dropNode.OriginalNode;\n dropList = dropNode.OriginalNode.Children;\n dropIndex = dropNode.OriginalNode.Children.length;\n } else {\n dropList = this.RootNodesValue;\n if (dropNode.Parent) {\n dropInfo.DropTarget = dropNode.Parent.OriginalNode;\n dropList = dropNode.Parent.OriginalNode.Children;\n }\n dropIndex = dropList.indexOf(dropNode.OriginalNode);\n if (dropNode.DropState === DropState.After) {\n dropIndex++;\n }\n }\n dropInfo.DropIndex = dropIndex;\n const droppedNodes = [];\n const spliceIndices = [];\n this.dragState.DraggedTreeNodes.forEach(dragNode => {\n const dropNodeInfo = {\n Node: dragNode.OriginalNode,\n RemovedFrom: null\n };\n let dragList = this.RootNodesValue;\n if (dragNode.Parent) {\n dropNodeInfo.RemovedFrom = dragNode.Parent.OriginalNode;\n dragList = dragNode.Parent.OriginalNode.Children;\n }\n const origIndex = dragList.indexOf(dragNode.OriginalNode);\n if (origIndex >= 0) {\n if (dragList === dropList) {\n spliceIndices.push(origIndex);\n if (origIndex < dropIndex) {\n dropInfo.DropIndex--;\n }\n } else {\n dragList.splice(origIndex, 1);\n if (dragNode.Parent) {\n dragNode.Parent.OriginalNode.HasChildren = dragList.length > 0;\n }\n }\n }\n droppedNodes.push(dragNode.OriginalNode);\n dropInfo.DroppedNodes.push(dropNodeInfo);\n });\n spliceIndices.sort((a, b) => b - a);\n spliceIndices.forEach(x => {\n dropList.splice(x, 1);\n });\n dropList.splice(dropInfo.DropIndex, 0, ...droppedNodes);\n const selNode = this.SelectedNodeValue;\n this.RootNodes = this.RootNodesValue.slice();\n if (!this.MultipleSelectionValue && selNode) {\n BaseTreeControl.executeOnAllNodes(this.dataSource.RootNodes, (tn) => {\n tn.IsSelected = tn.OriginalNode === selNode;\n });\n }\n this.InternalDrop.emit(dropInfo);\n }\n dropNode.DropState = DropState.None;\n }\n }\n this.dragState = null;\n }\n }\n\n\n\n onDoubleClick() {\n if (!this.MultipleSelection) {\n this.DoubleClick.emit(this.SelectedNodeValue);\n }\n }\n\n //#region Selection\n todoItemSelectionToggle(node: TreeNode): void {\n this.checklistSelection.toggle(node);\n const descendants = this.treeControl.getDescendants(node);\n this.checklistSelection.isSelected(node)\n ? this.checklistSelection.select(...descendants)\n : this.checklistSelection.deselect(...descendants);\n\n // Force update for the parent\n descendants.every(child =>\n this.checklistSelection.isSelected(child)\n );\n this.checkAllParentsSelection(node);\n this.onCheckedChanged();\n }\n\n todoLeafItemSelectionToggle(node: TreeNode): void {\n this.checklistSelection.toggle(node);\n this.checkAllParentsSelection(node);\n this.onCheckedChanged();\n }\n\n onCheckedChanged() {\n const selection = [];\n this.checklistSelection.selected.forEach(x => {\n selection.push(x.OriginalNode);\n });\n this.CheckedChanged.emit(selection);\n }\n\n checkAllParentsSelection(node: TreeNode): void {\n let parent: TreeNode | null = this.getParentNode(node);\n while (parent) {\n this.checkRootNodeSelection(parent);\n parent = this.getParentNode(parent);\n }\n }\n\n checkRootNodeSelection(node: TreeNode): void {\n const nodeSelected = this.checklistSelection.isSelected(node);\n const descendants = this.treeControl.getDescendants(node);\n const descAllSelected = descendants.every(child =>\n this.checklistSelection.isSelected(child)\n );\n if (nodeSelected && !descAllSelected) {\n this.checklistSelection.deselect(node);\n } else if (!nodeSelected && descAllSelected) {\n this.checklistSelection.select(node);\n }\n }\n\n /* Get the parent node of a node */\n getParentNode(node: TreeNode): TreeNode | null {\n const currentLevel = node.Level;\n\n if (currentLevel < 1) {\n return null;\n }\n\n const startIndex = this.treeControl.dataNodes.indexOf(node) - 1;\n\n for (let i = startIndex; i >= 0; i--) {\n const currentNode = this.treeControl.dataNodes[i];\n\n if (currentNode.Level < currentLevel) {\n return currentNode;\n }\n }\n return null;\n }\n\n descendantsAllSelected(node: TreeNode): boolean {\n const descendants = this.treeControl.getDescendants(node);\n if (descendants.length === 0) {\n return false;\n }\n const descAllSelected = descendants.every(child =>\n this.checklistSelection.isSelected(child)\n );\n return descAllSelected;\n }\n\n descendantsPartiallySelected(node: TreeNode): boolean {\n const descendants = this.treeControl.getDescendants(node);\n if (descendants.length === 0) {\n return false;\n }\n let selected = false;\n let deselected = false;\n descendants.some(child => {\n if (this.checklistSelection.isSelected(child)) {\n selected = true;\n } else {\n deselected = true;\n }\n return selected && deselected;\n });\n return selected && deselected;\n }\n //#endregion\n}\n","import { OnInit, Input, Output, EventEmitter, Component, ChangeDetectorRef } from '@angular/core';\nimport { CapsuleHelper } from '../../../helpers/capsule.helper';\n\n@Component({\n selector: 'capsule-tag-control',\n templateUrl: './capsule.tag.control.html',\n styleUrls:['./capsule.tag.control.css']\n})\nexport class CapsuleTagControl implements OnInit {\n CapsuleTags;\n SelectDisabled = false;\n\n //#region CapsuleTag\n CapsuleTagValue: string;\n @Input()\n get CapsuleTag(): string {\n return this.CapsuleTagValue;\n }\n set CapsuleTag(val) {\n if (val !== this.CapsuleTagValue) {\n this.CapsuleTagValue = val;\n this.checkDisabled();\n this.CapsuleTagChange.emit(val);\n }\n }\n @Output() CapsuleTagChange = new EventEmitter();\n //#endregion\n\n //#region PlaceHolder\n PlaceHolderValue = '@@Kapsel-Tag';\n\n @Input()\n get PlaceHolder() {\n return this.PlaceHolderValue;\n }\n set PlaceHolder(val) {\n this.PlaceHolderValue = val;\n this.PlaceHolderChange.emit(this.PlaceHolderValue);\n }\n\n @Output() PlaceHolderChange = new EventEmitter();\n //#endregion\n\n //#region Multiple\n MultipleValue = false;\n\n @Input()\n get Multiple() {\n return this.MultipleValue;\n }\n set Multiple(val) {\n this.MultipleValue = val;\n this.MultipleChange.emit(this.MultipleValue);\n }\n\n @Output() MultipleChange = new EventEmitter();\n //#endregion\n\n //#region Disabled\n DisabledValue = false;\n\n @Input()\n get Disabled() {\n return this.DisabledValue;\n }\n set Disabled(val) {\n this.DisabledValue = val;\n this.DisabledChange.emit(this.DisabledValue);\n }\n\n @Output() DisabledChange = new EventEmitter();\n //#endregion\n\n @Output() SelectionChanged = new EventEmitter();\n\n constructor(private cdRef: ChangeDetectorRef) {\n }\n\n ngOnInit(): void {\n CapsuleHelper.GetCapsuleTags().then(r => {\n this.CapsuleTags = r;\n this.checkDisabled();\n });\n }\n\n onSelectionChanged() {\n this.SelectionChanged.emit();\n }\n\n private checkDisabled() {\n if (this.MultipleValue) {\n this.SelectDisabled = this.CapsuleTags && Array.isArray(this.CapsuleTagValue) &&\n this.CapsuleTagValue.some(x => !this.CapsuleTags.some(y => x === y));\n } else {\n this.SelectDisabled = this.CapsuleTagValue && this.CapsuleTags && !this.CapsuleTags.some(x => x === this.CapsuleTagValue);\n }\n this.cdRef.detectChanges();\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { EnumHelper } from '../../helpers/enum.helper';\nimport { SeriesSettings } from '../../models/controls/chart.model';\nimport { ChartType } from '../../models/enums/charttype.enum';\nimport { SeriesType } from '../../models/enums/seriestype.enum';\nimport { Color } from '../../models/style/color.model';\n\n@Component({\n selector: 'chart-series-settings-control',\n templateUrl: './chart.series.settings.control.html',\n styleUrls: ['./chart.series.settings.control.css']\n})\nexport class ChartSeriesSettingsControl implements OnInit {\n SeriesColorStyle = {};\n SeriesType = SeriesType.bars;\n SeriesTypes;\n SeriesColor = new Color();\n\n //#region SeriesSettings\n SeriesSettingsValue: SeriesSettings;\n @Input()\n get SeriesSettings() {\n return this.SeriesSettingsValue;\n }\n set SeriesSettings(val) {\n if (val !== this.SeriesSettingsValue) {\n this.SeriesSettingsValue = val;\n if (val && val.Color) {\n this.SeriesColor = Color.FromHex(this.SeriesSettingsValue.Color);\n this.SeriesColorStyle['fill'] = val.Color;\n } else {\n this.SeriesColor = new Color();\n delete this.SeriesColorStyle['fill'];\n }\n this.SeriesSettingsChange.emit(this.SeriesSettingsValue);\n }\n }\n @Output() SeriesSettingsChange = new EventEmitter();\n //#endregion\n\n //#region SeriesType\n ChartTypeValue: ChartType = ChartType.ColumnChart;\n @Input()\n get ChartType() {\n return this.ChartTypeValue;\n }\n set ChartType(val) {\n if (val !== this.ChartTypeValue) {\n this.ChartTypeValue = val;\n this.ChartTypeChange.emit(this.ChartTypeValue);\n }\n }\n @Output() ChartTypeChange = new EventEmitter();\n //#endregion\n\n constructor() {\n this.SeriesTypes = EnumHelper.GetDropdownValues(SeriesType);\n }\n\n ngOnInit(): void {\n switch (this.ChartTypeValue) {\n case ChartType.AreaChart:\n this.SeriesType = SeriesType.area;\n break;\n case ChartType.Line:\n this.SeriesType = SeriesType.line;\n break;\n case ChartType.CandlestickChart:\n this.SeriesType = SeriesType.candlesticks;\n break;\n case ChartType.SteppedAreaChart:\n this.SeriesType = SeriesType.steppedArea;\n break;\n case ChartType.ComboChart:\n if (this.SeriesSettingsValue && typeof this.SeriesSettingsValue.Type === 'number') {\n this.SeriesType = this.SeriesSettingsValue.Type;\n } else {\n this.SeriesType = SeriesType.bars;\n }\n break;\n default:\n this.SeriesType = SeriesType.bars;\n }\n }\n\n lineWidthChanged(ev) {\n if (ev && ev.value && this.SeriesSettingsValue) {\n this.SeriesSettingsValue.LineWidth = ev.value;\n }\n }\n\n colorChanged(val) {\n if (this.SeriesSettingsValue && val) {\n this.SeriesSettingsValue.Color = Color.HexFromColor(val);\n this.SeriesColorStyle['fill'] = this.SeriesSettingsValue.Color;\n }\n }\n}\n","import { ChangeDetectorRef, Component, ElementRef, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CacheService } from '../../../cache/cache.service';\nimport { CollaborationHelper } from '../../../helpers/collaboration.helper';\nimport { LayoutChangeStatusHandler } from '../../../helpers/layout.change.status.handler';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { GitDiffType } from '../../../models/git/gitcomparison.model';\nimport { WorkflowData } from '../../../models/workflow/workflow.model';\nimport { JiraService } from '../../../services/jira.service';\nimport { MediaService } from '../../../services/media.service';\nimport { SideNavService } from '../../../services/sidenav.service';\nimport { UsersService } from '../../../services/users.service';\n\n@Component({\n selector: 'user-overview-control',\n templateUrl: './user.overview.control.html',\n styleUrls: ['./user.overview.control.css']\n})\nexport class UserOverviewControl implements OnInit, OnDestroy {\n ChatMessages = [];\n SystemMessages = [];\n ActualMessage;\n URL;\n ActualUsers = [];\n Subscriptions = [];\n ShowNotifications = true;\n ShowSaveMessage = true;\n ChatStyle = {};\n ActivityStyle = {};\n SelectedIndexValue = 0;\n SelectedJiraTicket;\n NavStruct;\n JiraConfig;\n JiraLabelKey;\n JiraTickets;\n JiraIssueTypes;\n SaveEnabled = false;\n JiraPriorities;\n JiraStatuses;\n JiraUsers;\n\n SelectedNewTicketType;\n\n SearchStatuses = [];\n SearchUsers = [];\n SearchPriorities = [];\n SortPriorities;\n SortSummary;\n\n @Input()\n get SelectedIndex() {\n return this.SelectedIndexValue;\n }\n set SelectedIndex(val) {\n this.SelectedIndexValue = val;\n if (val === 0) {\n this.ChatStyle = {};\n } else if (val === 1) {\n this.ActivityStyle = {};\n }\n }\n\n @ViewChild('messageDIV') messageDIV: ElementRef;\n @ViewChild('activityDIV') activityDIV: ElementRef;\n @ViewChild('jiraDetailsDIV') jiraDetailsDIV: ElementRef;\n\n constructor(private cdRef: ChangeDetectorRef, private jira: JiraService, private translate: TranslateService) {\n }\n\n ngOnInit() {\n const settings = CollaborationHelper.Settings.getValue();\n if (settings) {\n this.ShowNotifications = settings.ShowNotifications;\n this.ShowSaveMessage = settings.ShowSaveMessage;\n }\n this.Subscriptions.push(CollaborationHelper.ActualChatMessages.subscribe(x => {\n if (x) {\n this.ChatMessages = x;\n } else {\n this.ChatMessages = [];\n }\n this.cdRef.detectChanges();\n if (this.messageDIV && this.messageDIV.nativeElement) {\n this.messageDIV.nativeElement.scrollTop = this.messageDIV.nativeElement.scrollHeight;\n }\n if (this.SelectedIndexValue === 0) {\n this.ChatStyle = {};\n } else if (this.ChatMessages.length > 0) {\n this.ChatStyle = {\n 'font-weight': 'bold'\n };\n }\n }));\n this.Subscriptions.push(LayoutChangeStatusHandler.LayoutChangeHandlerMessages.subscribe(x => {\n if (x) {\n this.SystemMessages = x;\n } else {\n this.SystemMessages = [];\n }\n this.cdRef.detectChanges();\n if (this.activityDIV && this.activityDIV.nativeElement) {\n this.activityDIV.nativeElement.scrollTop = this.activityDIV.nativeElement.scrollHeight;\n }\n if (this.SelectedIndexValue === 1) {\n this.ActivityStyle = {};\n } else if (this.SystemMessages.length > 0) {\n this.ActivityStyle = {\n 'font-weight': 'bold'\n };\n }\n }));\n this.Subscriptions.push(CollaborationHelper.ActualActiveUsers.subscribe(x => {\n if (x) {\n this.ActualUsers = x;\n } else {\n this.ActualUsers = [];\n }\n this.cdRef.detectChanges();\n }));\n this.URL = MediaService.ProfilePicURL.getValue();\n\n const navStruct = SideNavService.SelectedNavigationStructure.getValue();\n CacheService.ReadNavigationStructure(navStruct).then(x => {\n if (x.Jira) {\n this.JiraLabelKey = CollaborationHelper.ActiveChannel.getValue().substring(1);\n this.NavStruct = x;\n this.jira.GetByID(x.Jira).subscribe(y => {\n this.JiraConfig = y;\n this.JiraConfig.Project = x.Project;\n this.jira.GetIssueTypes(this.JiraConfig).subscribe(types => {\n this.JiraIssueTypes = types;\n this.JiraIssueTypes.forEach(x => x.ID = '' + x.ID);\n });\n this.jira.GetPriorities(this.JiraConfig).subscribe(prios => { this.JiraPriorities = prios; });\n this.jira.GetStatuses(this.JiraConfig, true).subscribe(stats => { this.JiraStatuses = stats; });\n this.jira.GetUsers(this.JiraConfig).subscribe(users => { this.JiraUsers = users; });\n });\n }\n });\n }\n\n ngOnDestroy(): void {\n this.Subscriptions.forEach(x => x.unsubscribe());\n }\n\n onKeyDown(ev) {\n if (ev && ev.key === 'Enter') {\n this.sendMessage();\n }\n }\n\n sendMessage() {\n if (this.ActualMessage) {\n CollaborationHelper.SendMessage(this.ActualMessage);\n this.ActualMessage = null;\n }\n }\n\n newJiraTicket(ev) {\n if (ev.value) {\n this.SelectedNewTicketType = null;\n let user = UsersService.ActiveUser.getValue();\n if (user) {\n let ticket = {\n Fields: {\n summary: this.translate.instant('@@Neues Ticket'),\n labels: [this.JiraLabelKey, user.DisplayName],\n issuetype: { id: ev.value.ID },\n project: { key: this.JiraConfig.Project }\n }\n };\n this.jira.SaveIssue({ Config: this.JiraConfig, Issue: ticket }).subscribe(ret => {\n \n this.jira.GetIssueByKey({ Config: this.JiraConfig, Key: ret.Key }).subscribe(ret2 => {\n this.JiraTickets.push(ret2);\n this.cdRef.detectChanges();\n this.SelectedJiraTicket = ret2;\n this.editJiraTicket(ret2);\n });\n });\n }\n }\n }\n\n saveJiraTicket() {\n if (this.SelectedJiraTicket && this.SelectedJiraTicket.Key) {\n this.jira.SaveIssue(this.SelectedJiraTicket);\n } else {\n this.jira.UpdateIssue(this.SelectedJiraTicket);\n }\n }\n\n editJiraTicket(ticket) {\n //if (this.SaveEnabled) {\n // const retVal = MessageBoxHelper.ShowDialog(new TranslateFormatText('Sie haben nicht gespeicherte Änderungen, wollen Sie diese jetzt speichern?'), new TranslateFormatText('Nicht gespeichert.'), MessageBoxButtons.YesNo, MessageBoxIcon.Question).then(x => {\n // if (x === MessageBoxResult.Yes) {\n // this.saveJiraTicket();\n // }\n // });\n //}\n this.SaveEnabled = false;\n this.SelectedJiraTicket = ticket;\n }\n\n refreshJiraTicket() {\n let jirasearch = {\n Config: this.JiraConfig,\n Fields: null,\n Search: ['labels in (' + this.JiraLabelKey + ')'],\n OrderBy: []\n };\n\n if (this.SearchPriorities.length > 0) {\n let tmp = [];\n this.SearchPriorities.forEach(x => tmp.push(x.ID));\n let search = 'priority in (' + tmp.join(',') + ')';\n jirasearch.Search.push(search);\n }\n if (this.SearchStatuses.length > 0) {\n let search = 'status in (' + this.SearchStatuses.join(',') + ')';\n jirasearch.Search.push(search);\n }\n if (this.SearchUsers.length > 0) {\n let tmp = [];\n this.SearchUsers.forEach(x => tmp.push(x.AccountId));\n let search = 'assignee in (' + tmp.join(',') + ')';\n jirasearch.Search.push(search);\n }\n if (this.SortPriorities && this.SortPriorities != \"null\") {\n let orderby = 'priority ' + this.SortPriorities;\n jirasearch.OrderBy.push(orderby);\n }\n if (this.SortSummary && this.SortSummary != \"null\") {\n let orderby = 'summary ' + this.SortSummary;\n jirasearch.OrderBy.push(orderby);\n }\n\n\n this.SelectedJiraTicket = null;\n this.jira.SearchIssues(jirasearch).subscribe(result => {\n this.JiraTickets = result;\n this.cdRef.detectChanges();\n });\n }\n\n closeJiraTicket() {\n this.SelectedJiraTicket = null;\n this.cdRef.detectChanges();\n }\n\n onNotificationChange() {\n CollaborationHelper.UpdateSettings('ShowNotifications', this.ShowNotifications);\n }\n\n onSaveChange() {\n CollaborationHelper.UpdateSettings('ShowSaveMessage', this.ShowSaveMessage);\n }\n\n ObjectsTree;\n\n onTabChanged(event) {\n if (this.SelectedIndexValue == 0) {\n if (this.messageDIV && this.messageDIV.nativeElement) {\n this.messageDIV.nativeElement.scrollTop = this.messageDIV.nativeElement.scrollHeight;\n }\n } else if (this.SelectedIndexValue == 1) {\n if (this.activityDIV && this.activityDIV.nativeElement) {\n this.activityDIV.nativeElement.scrollTop = this.activityDIV.nativeElement.scrollHeight;\n }\n } else if (this.SelectedIndexValue == 2) {\n //let changes = LayoutHelper.GetActiveChanges();\n //this.ActiveChangeset = changes;\n //if (changes && changes.ChangesTree) {\n // this.ObjectsTree = changes.ChangesTree;\n //}\n } else if (this.JiraConfig && this.SelectedIndexValue == 3) {\n if (!this.JiraTickets) {\n this.refreshJiraTicket();\n }\n }\n }\n ActiveChangeset;\n ComparisonSource;\n ComparisonModified;\n ComparisonType;\n ShowComparison = false;\n OpenComparison(node) {\n let key = node.key;\n let sourcecontent = '';\n let modifiedcontent = '';\n let change = null;\n if (this.ActiveChangeset && this.ActiveChangeset.Changes && this.ActiveChangeset.Changes[key]) {\n change = this.ActiveChangeset.Changes[key];\n if (change.Type == GitDiffType.WORKFLOW) {\n this.ComparisonType = 'SideBySideWorkflow';\n sourcecontent = change.Source;\n modifiedcontent = change.Modified;\n if (sourcecontent) {\n let sourcemodules = sourcecontent['Data'].Modules;\n if (sourcemodules.length > 0) {\n sourcemodules.forEach((module) => {\n\n });\n }\n this.ComparisonSource = sourcecontent['Data'];\n } else {\n this.ComparisonSource = new WorkflowData();\n }\n if (modifiedcontent) {\n let modifiedmodules = modifiedcontent['Data'].Modules;\n if (modifiedmodules.length > 0) {\n modifiedmodules.forEach((module) => {\n\n });\n }\n this.ComparisonModified = modifiedcontent['Data'];\n } else {\n this.ComparisonModified = new WorkflowData();\n }\n //this.wfService.GetAllWorkflowTemplates().subscribe(result => {\n // if (result && result.length > 0) {\n // //if (this.Data && this.Data.Modules) {\n // // this.Data.Modules.forEach(function (mod) {\n // // if (mod.Module == TemplateSettingsData.ModuleID && mod.Settings) {\n // // result.some(function (r) {\n // // if (r.Id == mod.Settings.TemplateID) {\n // // mod.Settings.TemplateName = r.Name;\n // // return true;\n // // }\n // // return false;\n // // });\n // // }\n // // });\n // //}\n // this.EditOptions.TemplateList = result;\n // }\n //this.TemplatesLoaded = true;\n // this.cdRef.detectChanges();\n //});\n } else {\n this.ComparisonType = 'Text';\n sourcecontent = change.Source ? JSON.stringify(change.Source, null, 2) : '';\n if (typeof (change.Source) == 'string') {\n sourcecontent = change.Source;\n }\n\n modifiedcontent = change.Modified ? JSON.stringify(change.Modified, null, 2) : '';\n if (typeof (change.Modified) == 'string') {\n modifiedcontent = change.Modified;\n }\n this.ComparisonSource = {\n code: sourcecontent,\n language: 'json'\n }\n this.ComparisonModified = {\n code: modifiedcontent,\n language: 'json'\n }\n }\n this.ShowComparison = true;\n }\n this.cdRef.detectChanges();\n }\n}\n","import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CacheService } from '../../../cache/cache.service';\nimport { FilterHelper } from '../../../helpers/filter.helper';\nimport { AttributeProperty } from '../../../models/ContainerClassObject';\nimport { RequestFilter } from '../../../models/rest/requestfilter';\nimport { RequestOptions } from '../../../models/rest/requestoptions';\nimport { AdvancedFilterDialog } from '../../dialogs/advancedfilter/advancedfilter.dialog';\nimport { BaseDialog } from '../../dialogs/basedialog/base.dialog';\n\n@Component({\n selector: 'component-filter',\n templateUrl: './componentfilter.control.html'\n})\nexport class ComponentFilterControl {\n //#region SelectedItem\n SelectedItemValue;\n\n @Input()\n get SelectedItem() {\n return this.SelectedItemValue;\n }\n set SelectedItem(val) {\n this.SelectedItemValue = val;\n this.TableProperties = null;\n if (this.SelectedItemValue && this.SelectedItemValue.DataSourceID) {\n if (!this.SelectedItemValue.IsEnum) {\n CacheService.ReadFlatTable(this.SelectedItemValue.DataSourceID, true).then((data) => {\n if (data) {\n this.TableProperties = data;\n this.cdRef.detectChanges();\n }\n });\n }\n }\n this.checkFilterText();\n this.SelectedItemChange.emit(this.SelectedItemValue);\n }\n\n @Output() SelectedItemChange = new EventEmitter();\n //#endregion\n //#region TableProperties\n TableProperties;\n //#endregion\n FilterText;\n\n @Output() FilterChanged = new EventEmitter();\n @Output() StyleChanged = new EventEmitter();\n\n constructor(private cdRef: ChangeDetectorRef) {\n }\n\n private checkFilterText() {\n if (this.SelectedItem && this.SelectedItem.Filter && this.SelectedItem.Filter.Filters &&\n this.SelectedItem.Filter.Filters.length > 0) {\n this.FilterText = RequestFilter.getRequestFilterText(this.SelectedItem.Filter.Filters[0]);\n } else {\n this.FilterText = null;\n }\n }\n\n editFilter() {\n if (this.SelectedItem) {\n const initArgs = {\n Filter: null,\n Columns: [],\n SystemVariables: FilterHelper.GetVariables(this.SelectedItem)\n };\n if (this.TableProperties && this.TableProperties.Columns) {\n const list = [];\n this.TableProperties.Columns.forEach((field) => {\n list.push({\n IsFilterable: true,\n PropertyName: field.Name,\n Caption: field.Name,\n Type: AttributeProperty.GetFilterType(field)\n });\n });\n initArgs.Columns = list;\n }\n if (this.SelectedItem.Filter && this.SelectedItem.Filter.Filters && this.SelectedItem.Filter.Filters.length > 0) {\n initArgs.Filter = this.SelectedItem.Filter.Filters[0];\n }\n const layout = this.SelectedItem;\n BaseDialog.ShowDialog({\n ContentType: AdvancedFilterDialog,\n InitArgs: initArgs,\n Handler: (result) => {\n if (result) {\n const filter = result.Filter;\n if (filter && (filter.Name || filter.Filters || filter.Value)) {\n if (!layout.Filter) {\n layout.Filter = new RequestOptions();\n }\n layout.Filter.Filters = [filter];\n } else if (layout.Filter) {\n layout.Filter.Filters = [];\n }\n this.checkFilterText();\n this.FilterChanged.emit();\n this.StyleChanged.emit();\n }\n return true;\n }\n });\n }\n }\n}\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Component, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { Subscription } from 'rxjs';\nimport { CacheService } from '../../../cache/cache.service';\nimport { ContextEvent, ContextEventHelper } from '../../../models/contextevent.model';\nimport { Action } from '../../../models/ribbon/action.model';\nimport { LayoutService } from '../../../services/layout.service';\n\n@Component({\n selector: 'context-menu',\n templateUrl: './contextmenu.component.html',\n styleUrls: ['./contextmenu.component.css']\n})\nexport class ContextMenuComponent {\n overlayRef: OverlayRef | null;\n sub: Subscription;\n @ViewChild('contextMenu') contextMenu: TemplateRef;\n\n Items;\n Component;\n\n constructor(public overlay: Overlay, public viewContainerRef: ViewContainerRef) {\n ContextEventHelper.Open.subscribe((event) => {\n this.open(event);\n });\n ContextEventHelper.Close.subscribe((event) => {\n this.close();\n });\n LayoutService.CloseContextMenu.subscribe((event) => {\n this.close();\n });\n }\n\n open(event: ContextEvent) {\n event.Event.preventDefault();\n this.Component = event.Element;\n this.Items = this.Component.Elements\n const x = event.Event.x;\n const y = event.Event.y;\n const positionStrategy = this.overlay.position()\n .flexibleConnectedTo({ x, y })\n .withPositions([\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n }\n ]);\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.close()\n });\n if (this.Component.ElementType && (!this.Items || this.Items.length == 0)) {\n CacheService.ReadContextMenu(this.Component.ElementType).then((result) => {\n if (result) {\n let res = plainToClass(Action, result);\n this.Items = res['Elements'];\n }\n });\n }\n this.overlayRef.attach(new TemplatePortal(this.contextMenu, this.viewContainerRef, {\n $implicit: null\n }));\n\n this.sub = LayoutService.HostClick.subscribe((event: ContextEvent) => {\n const clickTarget = event.Event.target as HTMLElement;\n if (!!this.overlayRef && !this.overlayRef.overlayElement.contains(clickTarget)) {\n this.close();\n }\n });\n }\n\n close(): void {\n this.sub && this.sub.unsubscribe();\n this.Component = null;\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n}","import { Component, OnInit } from \"@angular/core\";\nimport { TranslateFormatText } from \"../../../helpers/array.helpers\";\nimport { CronHelper, CronObject } from \"../../../helpers/cron.helper\";\nimport { DialogButton } from \"../../../models/enums/dialogbutton.enum\";\nimport { MessageBoxButtons } from \"../../../models/enums/messageboxbuttons.enum\";\nimport { MessageBoxIcon } from \"../../../models/enums/messageboxicon.enum\";\nimport { BaseDialog } from \"../../dialogs/basedialog/base.dialog\";\nimport { MessageBoxHelper } from \"../../dialogs/messagebox/messagebox.dialog\";\n\n@Component({\n selector: 'cron-builder-dialog',\n templateUrl: './cron.builder.dialog.html',\n styleUrls: ['./cron.builder.dialog.css']\n})\nexport class CronBuilderDialog implements OnInit {\n Expression = '* * * * * ? *';\n Description;\n CronObject: CronObject;\n\n ngOnInit(): void {\n }\n\n Initialize(args) {\n if (args && args.Expression) {\n this.Expression = args.Expression;\n }\n this.CronObject = CronHelper.GetCronObject(this.Expression);\n }\n\n GetDialogResult() {\n var retVal = {\n Expression: null\n };\n if (this.CronObject && this.CronObject.IsValid()) {\n retVal.Expression = this.CronObject.GetExpression();\n }\n return retVal;\n }\n\n OnDialogButtonClickAction(button) {\n var retVal = true;\n if (button == DialogButton.Ok) {\n if (this.CronObject) {\n if (!this.CronObject.IsValid()) {\n retVal = false;\n MessageBoxHelper.ShowDialog(new TranslateFormatText('@@Bitte korrigieren Sie den Ausdruck.'), new TranslateFormatText('@@Ungueltiger Ausdruck'), MessageBoxButtons.Ok, MessageBoxIcon.Information);\n }\n }\n }\n return retVal;\n }\n\n objChanged(cron: CronObject) {\n this.CronObject = cron;\n this.Description = null;\n }\n\n showDesc() {\n if (this.CronObject) {\n this.Description = this.CronObject.GetDescription();\n }\n }\n\n static ShowDialog(exp, handler) {\n let args;\n if (exp) {\n args = {\n Expression: exp\n };\n }\n BaseDialog.ShowDialog({\n ContentType: CronBuilderDialog,\n InitArgs: args,\n Title: '@@CronBuilder',\n Handler: function (r) {\n if (r && handler) {\n handler(r.Expression);\n }\n return true;\n }\n });\n }\n}","import { OnInit, Input, Output, EventEmitter, Component, Directive, ViewChild, AfterViewInit } from \"@angular/core\";\nimport { CronHelper, CronObject } from \"../../../helpers/cron.helper\";\nimport { ValidationErrors, AbstractControl, Validator, NG_VALIDATORS } from \"@angular/forms\";\n\n@Component({\n selector: 'cron-builder',\n templateUrl: './cron.builder.html',\n styleUrls: ['./cron.builder.css']\n})\nexport class CronBuilder implements OnInit, AfterViewInit {\n CronObject: CronObject;\n\n //#region CronString\n CronStringValue;\n\n @Input()\n get CronString() {\n return this.CronStringValue;\n }\n set CronString(val) {\n this.CronStringValue = val;\n this.generateCronObject();\n this.CronStringChange.emit(this.CronStringValue);\n }\n\n @Output() CronStringChange = new EventEmitter();\n //#endregion\n\n @ViewChild('seconds') seconds;\n @ViewChild('minutes') minutes;\n @ViewChild('hours') hours;\n @ViewChild('dom') dom;\n @ViewChild('month') month;\n @ViewChild('dow') dow;\n @ViewChild('year') year;\n\n ngOnInit(): void {\n this.generateCronObject();\n }\n\n ngAfterViewInit(): void {\n [this.seconds, this.minutes, this.hours, this.dom, this.month, this.dow, this.year].forEach(function (c) {\n if (c && c.control) {\n c.control.markAsTouched();\n }\n });\n }\n\n generateCronObject(): any {\n this.CronObject = CronHelper.GetCronObject(this.CronStringValue);\n }\n\n onSecondsChanged() {\n if (this.CronObject) {\n this.CronObject.SecondsCorrect = CronHelper.IsValidMinOrSecValue(this.CronObject.Seconds);\n this.OnCronObjectChanged();\n }\n }\n\n onMinutesChanged() {\n if (this.CronObject) {\n this.CronObject.MinutesCorrect = CronHelper.IsValidMinOrSecValue(this.CronObject.Minutes);\n this.OnCronObjectChanged();\n }\n }\n\n onHoursChanged() {\n if (this.CronObject) {\n this.CronObject.HoursCorrect = CronHelper.IsValidHourValue(this.CronObject.Hours);\n this.OnCronObjectChanged();\n }\n }\n\n onDayOfMonthChanged() {\n if (this.CronObject) {\n this.CronObject.DayOfMonthCorrect = CronHelper.IsValidDOMValue(this.CronObject.DayOfMonth);\n this.OnCronObjectChanged();\n }\n }\n\n onMonthChanged() {\n if (this.CronObject) {\n this.CronObject.MonthCorrect = CronHelper.IsValidMonthValue(this.CronObject.Month);\n this.OnCronObjectChanged();\n }\n }\n\n onDayOfWeekChanged() {\n if (this.CronObject) {\n this.CronObject.DayOfWeekCorrect = CronHelper.IsValidDOWValue(this.CronObject.DayOfWeek);\n this.OnCronObjectChanged();\n }\n }\n\n onYearChanged() {\n if (this.CronObject) {\n this.CronObject.YearCorrect = CronHelper.IsValidYearValue(this.CronObject.Year);\n this.OnCronObjectChanged();\n }\n }\n\n @Output() CronObjectChanged = new EventEmitter();\n OnCronObjectChanged() {\n this.CronObjectChanged.emit(this.CronObject);\n }\n}\n\n@Directive({\n selector: '[cronSeconds]',\n providers: [{ provide: NG_VALIDATORS, useClass: SecondsValidatorDirective, multi: true }]\n})\nexport class SecondsValidatorDirective implements Validator {\n validate(control: AbstractControl): ValidationErrors {\n if (control.value && !CronHelper.IsValidMinOrSecValue(control.value)) {\n return { value: control.value };\n }\n return null;\n }\n}\n\n@Directive({\n selector: '[cronHours]',\n providers: [{ provide: NG_VALIDATORS, useClass: HoursValidatorDirective, multi: true }]\n})\nexport class HoursValidatorDirective implements Validator {\n validate(control: AbstractControl): ValidationErrors {\n if (control.value && !CronHelper.IsValidHourValue(control.value)) {\n return { value: control.value };\n }\n return null;\n }\n}\n\n@Directive({\n selector: '[cronDOM]',\n providers: [{ provide: NG_VALIDATORS, useClass: DOMValidatorDirective, multi: true }]\n})\nexport class DOMValidatorDirective implements Validator {\n validate(control: AbstractControl): ValidationErrors {\n if (control.value && !CronHelper.IsValidDOMValue(control.value)) {\n return { value: control.value };\n }\n return null;\n }\n}\n\n@Directive({\n selector: '[cronMonth]',\n providers: [{ provide: NG_VALIDATORS, useClass: MonthValidatorDirective, multi: true }]\n})\nexport class MonthValidatorDirective implements Validator {\n validate(control: AbstractControl): ValidationErrors {\n if (control.value && !CronHelper.IsValidMonthValue(control.value)) {\n return { value: control.value };\n }\n return null;\n }\n}\n\n@Directive({\n selector: '[cronDOW]',\n providers: [{ provide: NG_VALIDATORS, useClass: DOWValidatorDirective, multi: true }]\n})\nexport class DOWValidatorDirective implements Validator {\n validate(control: AbstractControl): ValidationErrors {\n if (control.value && !CronHelper.IsValidDOWValue(control.value)) {\n return { value: control.value };\n }\n return null;\n }\n}\n\n@Directive({\n selector: '[cronYear]',\n providers: [{ provide: NG_VALIDATORS, useClass: YearValidatorDirective, multi: true }]\n})\nexport class YearValidatorDirective implements Validator {\n validate(control: AbstractControl): ValidationErrors {\n if (control.value && !CronHelper.IsValidYearValue(control.value)) {\n return { value: control.value };\n }\n return null;\n }\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { DataModelService, DataSourceInfo, DataSourceQuery } from '../../../services/datamodel.service';\n\n@Component({\n selector: 'datasource-selection-control',\n templateUrl: './datasource.selection.control.html',\n styleUrls: ['./datasource.selection.control.css']\n})\nexport class DataSourceSelectionControl implements OnInit {\n //#region Query\n QueryValue: DataSourceQuery;\n\n @Input()\n get Query(): DataSourceQuery {\n return this.QueryValue;\n }\n set Query(val: DataSourceQuery) {\n this.QueryValue = val;\n this.loadDataSources();\n this.QueryChange.emit(this.QueryValue);\n }\n\n @Output() QueryChange = new EventEmitter();\n //#endregion\n\n //#region DataSource\n DataSourceValue: DataSourceSelectionInfo = new DataSourceSelectionInfo();\n\n @Input()\n get DataSource(): DataSourceSelectionInfo {\n return this.DataSourceValue;\n }\n set DataSource(val: DataSourceSelectionInfo) {\n if (!val) {\n val = new DataSourceSelectionInfo();\n }\n this.DataSourceValue = val;\n this.DataSourceChange.emit(this.DataSourceValue);\n }\n\n @Output() DataSourceChange = new EventEmitter();\n //#endregion\n\n //#region Variables\n VariablesValue = [];\n\n @Input()\n get Variables() {\n return this.VariablesValue;\n }\n set Variables(val) {\n if (val) {\n this.VariablesValue = val;\n this.VariablesChange.emit(this.VariablesValue);\n }\n }\n\n @Output() VariablesChange = new EventEmitter();\n //#endregion\n\n private DataSources: DataSourceInfo[] = [];\n\n @Output() SourceChanged = new EventEmitter();\n @Output() InteractivePropertyChanged = new EventEmitter();\n Initialized = false;\n\n constructor(private service: DataModelService) {\n }\n\n ngOnInit(): void {\n this.Initialized = true;\n this.loadDataSources();\n }\n\n loadDataSources() {\n if (this.Initialized) {\n this.DataSources = [];\n if (this.QueryValue && this.QueryValue.DataModelID) {\n this.service.GetDataSourcesByQuery(this.QueryValue).subscribe(x => {\n if (x) {\n this.DataSources = x;\n }\n this.checkProps();\n });\n }\n }\n }\n\n dataSourceChanged() {\n this.checkProps();\n this.SourceChanged.emit();\n }\n\n checkProps() {\n if (this.DataSourceValue) {\n const props = [];\n if (this.DataSources) {\n const source = this.DataSources.find(x => x.SID === this.DataSourceValue.DataSource);\n if (source && source.InteractiveProperties) {\n source.InteractiveProperties.forEach(prop => {\n const ipi = new InteractivePropertyInfo();\n ipi.Name = prop;\n if (this.DataSourceValue.InteractiveProperties) {\n const existing = this.DataSourceValue.InteractiveProperties.find(x => x.Name === prop);\n if (existing) {\n ipi.Value = existing.Value;\n }\n }\n props.push(ipi);\n });\n }\n }\n this.DataSourceValue.InteractiveProperties = props;\n }\n }\n\n onPropChanged(name) {\n this.InteractivePropertyChanged.emit(name);\n }\n}\n\nexport class InteractivePropertyInfo {\n Name: string;\n Value: string;\n}\n\nexport class DataSourceSelectionInfo {\n DataSource: string;\n InteractiveProperties: InteractivePropertyInfo[] = [];\n}\n","import { Output, Input, EventEmitter, Component } from '@angular/core';\n\n@Component({\n selector: 'default-group-header',\n templateUrl: './default.group.header.html',\n styleUrls: ['./default.group.header.css']\n})\nexport class DefaultGroupHeader {\n HeaderValue;\n @Input()\n get Header() {\n return this.HeaderValue;\n }\n set Header(val) {\n this.HeaderValue = val;\n this.HeaderValueChange.emit(val);\n }\n\n @Output() HeaderValueChange = new EventEmitter();\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject } from '@angular/core';\nimport { GitHelper } from '../../../../helpers/git.helper';\nimport { LayoutService } from '../../../../services/layout.service';\nimport { IBaseComponent } from '../../../controls/base.component';\n\n@Component({\n selector: 'evi-branch-select',\n templateUrl: 'branchselect.control.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BranchSelectControl extends IBaseComponent {\n \n\n static Type: any = 'branchselect';\n static Default = {\n Editable: true,\n Type: 'branchselect'\n };\n\n GitActive = false;\n Branches = [];\n SelectedBranch;\n\n constructor(cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n }\n\n ngOnInit() {\n super.onInit();\n this.GitActive = GitHelper.IsActive;\n if (this.GitActive) {\n this.SelectedBranch = GitHelper.SelectedBranch.getValue();\n this.Branches = GitHelper.Branches;\n this.cdRef.detectChanges();\n this.Subscriptions['BranchesChanged'] = GitHelper.BranchesChanged.subscribe((branches) => {\n this.Branches = GitHelper.LocalBranches;\n this.cdRef.detectChanges();\n });\n \n }\n }\n\n ControlInitialized() {\n \n }\n\n SelectedBranchChanged() {\n GitHelper.SelectedBranch.next(this.SelectedBranch);\n window.location.reload();\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject } from '@angular/core';\nimport { GitHelper } from '../../../../helpers/git.helper';\nimport { DialogButton } from '../../../../models/enums/dialogbutton.enum';\nimport { TranslatedString } from '../../../../models/translatedstring.model';\nimport { GitService } from '../../../../services/git.service';\nimport { LayoutService } from '../../../../services/layout.service';\nimport { IBaseComponent } from '../../../controls/base.component';\nimport { BaseDialog } from '../../../dialogs/basedialog/base.dialog';\nimport { RequestNameDialog } from '../../../dialogs/reqeustname/reqeustname.dialog';\n\n@Component({\n selector: 'evi-repository-select',\n templateUrl: 'repositoryselect.control.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RepositorySelectControl extends IBaseComponent {\n \n\n static Type: any = 'repositoryselect';\n static Default = {\n Editable: true,\n Type: 'repositoryselect'\n };\n\n GitActive = false;\n Repositories = [];\n SelectedRepository;\n\n constructor(cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data, private service: GitService) {\n super(cdRef, data);\n }\n\n ngOnInit() {\n super.onInit();\n this.GitActive = GitHelper.IsActive;\n this.Refresh();\n }\n \n ControlInitialized() {\n \n }\n Refresh() {\n if (this.GitActive) {\n this.SelectedRepository = GitHelper.SelectedRepository.getValue();\n this.Repositories = [{ Name: \"Create new repository\" }, ...GitHelper.Repositories];\n this.cdRef.detectChanges();\n this.Subscriptions['BranchesChanged'] = GitHelper.BranchesChanged.subscribe((branches) => {\n this.Repositories = GitHelper.LocalBranches;\n this.cdRef.detectChanges();\n });\n\n }\n }\n SelectedItemChanged() {\n if (this.SelectedRepository == \"Create new repository\") {\n BaseDialog.ShowDialog({\n ContentType: RequestNameDialog,\n InitArgs: { Text: '', Placeholder: 'Name' },\n Title: '@@Name waehlen',\n Buttons: DialogButton.None,\n Handler: (result) => {\n if (result) {\n let item = {\n Caption: new TranslatedString(result),\n Name: result\n }\n this.service.CreateRepository(item).subscribe((result) => {\n this.Refresh();\n return true;\n });\n } else {\n return true;\n }\n }\n });\n } else {\n GitHelper.SelectedRepository.next(this.SelectedRepository);\n window.location.reload();\n }\n }\n DeleteRepository(name) {\n this.service.RemoveRepository(name).subscribe(() => {\n this.Refresh();\n });\n }\n}\n","import { Directive, Component, TemplateRef, ContentChild, Input, ViewChild, Output, EventEmitter } from '@angular/core';\nimport { MatMenuTrigger } from '@angular/material/menu';\n\n\n@Directive({\n selector: '[buttonContent]'\n})\nexport class DropDownButtonContentDirective { }\n\n@Directive({\n selector: '[dropDownContent]'\n})\nexport class DropDownContentDirective { }\n\n@Component({\n selector: 'dropdown-control',\n templateUrl: './dropdown.control.html',\n styleUrls: ['./dropdown.control.css']\n})\nexport class DropDownControl {\n @ContentChild(DropDownButtonContentDirective, { read: TemplateRef }) buttonContentTemplate;\n @ContentChild(DropDownContentDirective, { read: TemplateRef }) dropDownContentTemplate;\n @ViewChild('menuTrigger') menuTrigger: MatMenuTrigger;\n\n DropDownTextValue = '';\n @Input()\n get DropDownText(): string {\n return this.DropDownTextValue;\n }\n set DropDownText(val: string) {\n this.DropDownTextValue = val;\n }\n\n EmptyTextValue = '';\n @Input()\n get EmptyText(): string {\n return this.EmptyTextValue;\n }\n set EmptyText(val: string) {\n this.EmptyTextValue = val;\n }\n\n MenuClassValue;\n @Input()\n get MenuClass(): string {\n return this.MenuClassValue;\n }\n set MenuClass(val: string) {\n this.MenuClassValue = val;\n }\n\n MenuPanelClassValue;\n @Input()\n get MenuPanelClass(): string {\n return this.MenuPanelClassValue;\n }\n set MenuPanelClass(val: string) {\n this.MenuPanelClassValue = val;\n }\n\n @Output() DropDownOpened = new EventEmitter();\n @Output() DropDownClosed = new EventEmitter();\n\n onOpened() {\n this.DropDownOpened.emit();\n }\n\n onClosed() {\n this.DropDownClosed.emit();\n }\n\n close() {\n if (this.menuTrigger) {\n this.menuTrigger.closeMenu();\n }\n }\n\n open() {\n if (this.menuTrigger) {\n this.menuTrigger.openMenu();\n }\n }\n\n setFocus() {\n if (this.menuTrigger) {\n this.menuTrigger.focus();\n }\n }\n}\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { CacheService } from '../../../cache/cache.service';\nimport { TranslateFormatText } from '../../../helpers/array.helpers';\nimport { AdvancedFormulaParser } from '../../../helpers/formula.parser';\nimport { FormulaInfo, NonClickableVariablesNodeInformation, VariablesNodeInformation } from '../../../models/basic/formulaEditor.model';\nimport { FormulaGroupEnum } from '../../../models/enums/formulagroupenum.enum';\nimport { FormulaInputMode } from '../../../models/enums/formulainputmode.enum';\nimport { MessageBoxButtons } from '../../../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../../../models/enums/messageboxicon.enum';\nimport { FormulaService } from '../../../services/formula.service';\nimport { BaseDialog } from '../../dialogs/basedialog/base.dialog';\nimport { MessageBoxHelper } from '../../dialogs/messagebox/messagebox.dialog';\nimport { ABaseTreeNode } from '../basetreecontrol/base.tree.control';\n\n@Component({\n selector: 'formula-editor',\n templateUrl: './formulaEditor.control.html',\n styleUrls: ['./formulaEditor.control.css']\n})\nexport class FormulaEditor {\n VariableNode: VariableNode;\n SystemVariableNode: VariableNode;\n VariableNodeIndex = 0;\n VariableNodeList;\n OperationList = [];\n FunctionNodeList;\n FormulaOK: boolean;\n FormulaParser = new AdvancedFormulaParser();\n formulaTimerID = -1;\n Mentions;\n GlobalMentions = [];\n\n //#region Variables\n VariablesValue: VariablesNodeInformation[] = [];\n\n @Input()\n get Variables() {\n return this.VariablesValue;\n }\n set Variables(val) {\n if (val) {\n this.VariablesValue = val;\n this.updateNodes();\n this.VariablesChange.emit(this.VariablesValue);\n }\n }\n\n @Output() VariablesChange = new EventEmitter();\n //#endregion\n\n //#region SystemVariables\n SystemVariablesValue = [];\n\n @Input()\n get SystemVariables() {\n return this.SystemVariablesValue;\n }\n set SystemVariables(val) {\n if (val) {\n this.SystemVariablesValue = val;\n const list = [];\n const mentions = [];\n if (Array.isArray(val)) {\n val.forEach(sv => {\n const node = new VariableNode(this.VariableNodeIndex++);\n node.Caption = sv.Name;\n node.data = {\n AliasKey: '@' + sv.Name,\n Name: '@' + sv.Name,\n };\n list.push(node);\n mentions.push(sv.Name);\n });\n this.updateMentions(mentions);\n }\n this.SystemVariableNode.Children = list;\n this.SystemVariablesChange.emit(this.SystemVariablesValue);\n }\n }\n\n @Output() SystemVariablesChange = new EventEmitter();\n //#endregion\n\n //#region Operations\n OperationsValue: FormulaInfo[] = [];\n\n @Input()\n get Operations() {\n return this.OperationsValue;\n }\n set Operations(val) {\n if (val) {\n this.OperationsValue = val;\n this.updateOperations();\n this.OperationsChange.emit(this.OperationsValue);\n }\n }\n\n @Output() OperationsChange = new EventEmitter();\n //#endregion\n\n //#region Formula\n FormulaValue: string;\n\n @Input()\n get Formula() {\n return this.FormulaValue;\n }\n set Formula(val) {\n if (this.FormulaValue !== val) {\n this.FormulaValue = val;\n this.onFormulaChanged();\n this.FormulaChange.emit(this.FormulaValue);\n }\n }\n\n @Output() FormulaChange = new EventEmitter();\n //#endregion\n\n //#region InputMode\n InputModeValue: FormulaInputMode = FormulaInputMode.AliasKey;\n\n @Input()\n get InputMode() {\n return this.InputModeValue;\n }\n set InputMode(val) {\n if (val) {\n this.InputModeValue = val;\n this.updateNodes();\n this.InputModeChange.emit(this.InputModeValue);\n }\n }\n\n @Output() InputModeChange = new EventEmitter();\n //#endregion\n\n private getNodeList(vL: VariablesNodeInformation[], cL: VariablesNodeInformation[], mode: FormulaInputMode): VariableNode[] {\n const retVal = [];\n if (vL) {\n vL.forEach(vni => {\n let value;\n let toolTip;\n switch (mode) {\n case FormulaInputMode.AliasKey:\n cL.push(vni);\n value = vni.AliasKey + ' [ ' + vni.Name + ' ]';\n toolTip = value;\n if (vni.ToolTip) {\n toolTip = vni.AliasKey + ' [ ' + vni.ToolTip + ' ]';\n }\n break;\n case FormulaInputMode.VariableName:\n cL.push(vni);\n value = vni.Name;\n toolTip = value;\n if (vni.ToolTip) {\n toolTip = vni.Name + ' [ ' + vni.ToolTip + ' ]';\n }\n break;\n }\n const node = new VariableNode(this.VariableNodeIndex++);\n node.Caption = value;\n node.ToolTip = toolTip;\n node.data = vni;\n node.Children = this.getNodeList(vni.Children, cL, mode);\n node.HasChildren = node.Children.length > 0;\n if (vni instanceof NonClickableVariablesNodeInformation) {\n node.Caption = vni.Name;\n node.IsExpanded = vni.Expand;\n }\n retVal.push(node);\n });\n }\n return retVal;\n }\n\n constructor(private cdRef: ChangeDetectorRef) {\n this.VariableNode = new VariableNode(this.VariableNodeIndex++);\n this.VariableNode.TranslateCaption = '@@Variablen';\n this.VariableNode.HasChildren = true;\n this.VariableNode.Children = [];\n this.VariableNode.IsExpanded = true;\n\n this.SystemVariableNode = new VariableNode(this.VariableNodeIndex++);\n this.SystemVariableNode.TranslateCaption = '@@Systemvariablen';\n this.SystemVariableNode.HasChildren = true;\n this.SystemVariableNode.Children = [];\n this.SystemVariableNode.IsExpanded = true;\n\n this.VariableNodeList = [this.VariableNode, this.SystemVariableNode];\n\n const globalVariables = CacheService.GlobalVariablesValues.getValue();\n if (globalVariables && globalVariables.length > 0) {\n const globalVariableNode = new VariableNode(this.VariableNodeIndex++);\n globalVariableNode.TranslateCaption = '@@Globale Variablen';\n globalVariableNode.HasChildren = true;\n globalVariableNode.Children = [];\n globalVariableNode.IsExpanded = true;\n\n globalVariables.forEach(sv => {\n const node = new VariableNode(this.VariableNodeIndex++);\n node.Caption = sv.Name;\n node.data = {\n AliasKey: '@' + sv.Name,\n Name: '@' + sv.Name,\n };\n globalVariableNode.Children.push(node);\n this.GlobalMentions.push(sv.Name);\n });\n this.VariableNodeList.push(globalVariableNode);\n this.updateMentions([]);\n }\n }\n\n updateMentions(systemVariables) {\n const mentions = [];\n mentions.push(...systemVariables);\n mentions.push(...this.GlobalMentions);\n this.Mentions = mentions;\n }\n\n updateNodes() {\n const checkList = [];\n this.VariableNode.Children = this.getNodeList(this.VariablesValue, checkList, this.InputModeValue);\n this.FormulaParser.SetVariables(checkList, this.InputModeValue);\n }\n\n updateOperations(): any {\n const functionList = [];\n const basicList = [];\n const compList = [];\n const binaryList = [];\n const otherList = [];\n let funcIndex = 1;\n if (this.OperationsValue) {\n this.OperationsValue.forEach((op) => {\n switch (op.Group) {\n case FormulaGroupEnum.BasicOperations:\n basicList.push(op);\n break;\n case FormulaGroupEnum.Binary:\n binaryList.push(op);\n break;\n case FormulaGroupEnum.Comparisons:\n compList.push(op);\n break;\n case FormulaGroupEnum.Functions:\n const funcNode = new VariableNode(funcIndex++);\n funcNode.Caption = op.Name;\n funcNode.ToolTip = op.Description || op.Name;\n funcNode.data = op;\n functionList.push(funcNode);\n break;\n default:\n otherList.push(op);\n break;\n }\n });\n }\n if (functionList.length > 0) {\n const node = new VariableNode(0);\n node.TranslateCaption = '@@Funktionen';\n node.HasChildren = true;\n node.Children = functionList;\n this.FunctionNodeList = [node];\n } else {\n this.FunctionNodeList = null;\n }\n this.OperationList = basicList.concat(compList).concat(binaryList).concat(otherList);\n }\n\n checkFormula() {\n let isOk = true;\n if (typeof this.FormulaValue === 'string' && this.FormulaValue !== '') {\n try {\n this.FormulaParser.Parse(this.FormulaValue);\n } catch {\n isOk = false;\n }\n } else {\n isOk = null;\n }\n \n if (this.FormulaOK !== isOk) {\n this.FormulaOK = isOk;\n this.cdRef.detectChanges();\n }\n }\n\n onFormulaChanged() {\n clearTimeout(this.formulaTimerID);\n const that = this;\n this.formulaTimerID = window.setTimeout(() => {\n that.checkFormula();\n }, 500);\n }\n\n onVariableNodeClicked(ev) {\n if (ev && ev.length > 0) {\n const firstNode = ev[0];\n if (firstNode && firstNode.data && !(firstNode.data instanceof NonClickableVariablesNodeInformation)) {\n switch (this.InputModeValue) {\n case FormulaInputMode.AliasKey:\n this.appendText(firstNode.data.AliasKey);\n break;\n case FormulaInputMode.VariableName:\n this.appendText(firstNode.data.Name);\n break;\n }\n }\n }\n }\n\n onFunctionNodeClicked(ev) {\n if (ev && ev.length > 0) {\n const firstNode = ev[0];\n if (firstNode && firstNode.data) {\n this.appendText(firstNode.data.Operation);\n }\n }\n }\n\n appendText(text) {\n let input:any = document.getElementById(\"EditorText\");\n if (input) {\n let pos = input.selectionStart || 0;\n const endPos = input.selectionEnd || 0;\n const actText = input.value;\n const front = actText.substring(0, pos);\n let back;\n if (endPos > pos) {\n back = actText.substring(endPos, actText.length);\n } else {\n back = actText.substring(pos, actText.length);\n }\n this.Formula = front + text + back;\n pos = pos + text.length;\n input.selectionStart = pos;\n input.selectionEnd = pos;\n input.focus();\n }\n }\n}\n\n@Component({\n selector: 'formula-editor-dialog',\n template: ''\n})\nexport class FormulaEditorDialog implements OnInit {\n Variables = [];\n SystemVariables = [];\n Operations = [];\n FormulaGroup: FormulaGroupEnum = FormulaGroupEnum.All;\n InputMode: FormulaInputMode = FormulaInputMode.AliasKey;\n Formula = '';\n\n public static ShowDialog(args, handler) {\n BaseDialog.ShowDialog({\n ContentType: FormulaEditorDialog,\n InitArgs: args,\n Title: '@@Formeleditor',\n Handler: handler\n });\n }\n\n private static CheckVariables(variables, functions, resultList, inputMode) {\n variables.forEach(v => {\n if (v.Children && v.Children.length > 0) {\n FormulaEditorDialog.CheckVariables(v.Children, functions, resultList, inputMode);\n } else {\n const key = (inputMode == FormulaInputMode.AliasKey ? v.AliasKey : v.Name).toLowerCase();\n if (functions[key]) {\n resultList.push(key);\n }\n }\n })\n }\n\n constructor(private service: FormulaService, private cdRef: ChangeDetectorRef) {\n }\n\n ngOnInit(): void {\n const query = {\n Group: this.FormulaGroup\n };\n this.service.GetFormulaInfos(query).subscribe(result => {\n this.Operations = result;\n this.cdRef.detectChanges();\n if (result) {\n const functions = {};\n let check = false;\n result.forEach(x => {\n if (x.Group == FormulaGroupEnum.Functions) {\n check = true;\n functions[x.Name.toLowerCase()] = true;\n }\n });\n if (this.Variables && check) {\n const resultList = [];\n FormulaEditorDialog.CheckVariables(this.Variables, functions, resultList, this.InputMode);\n if (resultList.length > 0) {\n const text = new TranslateFormatText('@@VariablesLikeFormulas{0}');\n text.FormatParams.push(resultList.join(', '));\n MessageBoxHelper.ShowDialog(text, new TranslateFormatText('@@Warning'),\n MessageBoxButtons.Ok, MessageBoxIcon.Warning);\n }\n }\n }\n });\n }\n\n Initialize(args) {\n if (args) {\n if (args.Variables) {\n this.Variables = args.Variables;\n }\n if (args.SystemVariables) {\n this.SystemVariables = args.SystemVariables;\n }\n if (args.FormulaGroup) {\n this.FormulaGroup = args.FormulaGroup;\n }\n if (args.InputMode) {\n this.InputMode = args.InputMode;\n }\n if (args.Formula) {\n this.Formula = args.Formula;\n }\n }\n }\n\n GetDialogResult() {\n return { Formula: this.Formula };\n }\n}\n\nexport class VariableNode extends ABaseTreeNode {\n data: any;\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CacheService } from '../../../cache/cache.service';\nimport { FormulaGroupEnum } from '../../../models/enums/formulagroupenum.enum';\nimport { FormulaInputMode } from '../../../models/enums/formulainputmode.enum';\nimport { FormulaEditorDialog } from './formulaEditor.control';\n\n@Component({\n selector: 'formula-textbox',\n templateUrl: './formulatextbox.control.html',\n styleUrls: ['./formulaEditor.control.css']\n})\nexport class FormulaTextBox {\n\n Mentions = [];\n GlobalMentions = [];\n\n //#region Formula\n FormulaValue;\n\n @Input()\n get Formula() {\n return this.FormulaValue;\n }\n set Formula(val) {\n this.FormulaValue = val;\n this.FormulaChange.emit(this.FormulaValue);\n }\n\n @Output() FormulaChange = new EventEmitter();\n //#endregion\n //#region Variables\n VariablesValue = [];\n\n @Input()\n get Variables() {\n return this.VariablesValue;\n }\n set Variables(val) {\n if (val) {\n this.VariablesValue = val;\n this.VariablesChange.emit(this.VariablesValue);\n }\n }\n\n @Output() VariablesChange = new EventEmitter();\n //#endregion\n //#region ControlStyle\n ControlStyleValue = 1;\n\n @Input()\n get ControlStyle() {\n return this.ControlStyleValue;\n }\n set ControlStyle(val) {\n this.ControlStyleValue = val;\n this.ControlStyleChange.emit(this.ControlStyleValue);\n }\n\n @Output() ControlStyleChange = new EventEmitter();\n //#endregion\n //#region SystemVariables\n SystemVariablesValue = [];\n\n @Input()\n get SystemVariables() {\n return this.SystemVariablesValue;\n }\n set SystemVariables(val) {\n if (val) {\n this.SystemVariablesValue = val;\n const list = [];\n if (Array.isArray(val)) {\n val.forEach(sv => {\n list.push(sv.Name);\n });\n }\n this.updateMentions(list);\n this.SystemVariablesChange.emit(this.SystemVariablesValue);\n }\n }\n\n @Output() SystemVariablesChange = new EventEmitter();\n //#endregion\n //#region PlaceHolder\n PlaceHolderValue = '@@Formel';\n\n @Input()\n get PlaceHolder() {\n return this.PlaceHolderValue;\n }\n set PlaceHolder(val) {\n this.PlaceHolderValue = val;\n this.PlaceHolderChange.emit(this.PlaceHolderValue);\n }\n\n @Output() PlaceHolderChange = new EventEmitter();\n //#endregion\n\n //#region InputMode\n InputModeValue = FormulaInputMode.VariableName;\n\n @Input()\n get InputMode() {\n return this.InputModeValue;\n }\n set InputMode(val) {\n this.InputModeValue = val;\n this.InputModeChange.emit(this.InputModeValue);\n }\n\n @Output() InputModeChange = new EventEmitter();\n //#endregion\n\n //#region InputMode\n FormulaGroupValue = FormulaGroupEnum.All;\n\n @Input()\n get FormulaGroup() {\n return this.FormulaGroupValue;\n }\n set FormulaGroup(val) {\n this.FormulaGroupValue = val;\n this.FormulaGroupChange.emit(this.FormulaGroupValue);\n }\n\n @Output() FormulaGroupChange = new EventEmitter();\n //#endregion\n\n @Output() FormulaChanged = new EventEmitter();\n\n constructor() {\n const globalVariables = CacheService.GlobalVariablesValues.getValue();\n if (globalVariables && globalVariables.length > 0) {\n globalVariables.forEach(sv => {\n this.GlobalMentions.push(sv.Name);\n });\n this.updateMentions([]);\n }\n }\n\n updateMentions(systemVariables) {\n const mentions = [];\n mentions.push(...systemVariables);\n mentions.push(...this.GlobalMentions);\n this.Mentions = mentions;\n }\n\n showFormulaDialog() {\n const args = {\n Variables: this.Variables,\n SystemVariables: this.SystemVariables,\n InputMode: this.InputModeValue,\n FormulaGroup: this.FormulaGroupValue,\n Formula: this.Formula\n };\n FormulaEditorDialog.ShowDialog(args, result => {\n if (result && result.Formula) {\n this.Formula = result.Formula;\n this.OnFormulaChanged();\n }\n return true;\n });\n }\n\n OnFormulaChanged() {\n this.FormulaChanged.emit(this.Formula);\n }\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'indeterminate-checkbox',\n templateUrl: './indeterminate.checkbox.html'\n})\nexport class IndeterminateCheckbox {\n //#region Checked\n CheckedValue: boolean;\n @Input()\n get Checked(): boolean {\n return this.CheckedValue;\n }\n set Checked(val: boolean) {\n this.CheckedValue = val;\n this.CheckedChange.emit(this.CheckedValue);\n }\n\n @Output() CheckedChange = new EventEmitter();\n //#endregion\n\n //#region Caption\n CaptionValue: string;\n @Input()\n get Caption(): string {\n return this.CaptionValue;\n }\n set Caption(val: string) {\n this.CaptionValue = val;\n this.CaptionChange.emit(this.CaptionValue);\n }\n\n @Output() CaptionChange = new EventEmitter();\n //#endregion\n\n onChange() {\n if (this.CheckedValue === true) {\n this.Checked = false;\n } else if (this.CheckedValue === false) {\n this.Checked = null;\n } else {\n this.Checked = true;\n }\n }\n}\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { CacheService } from '../../../cache/cache.service';\nimport { AdvancedFormulaParser } from '../../../helpers/formula.parser';\nimport { FormulaInfo, NonClickableVariablesNodeInformation, VariablesNodeInformation } from '../../../models/basic/formulaEditor.model';\nimport { FormulaGroupEnum } from '../../../models/enums/formulagroupenum.enum';\nimport { FormulaInputMode } from '../../../models/enums/formulainputmode.enum';\nimport { FormulaService } from '../../../services/formula.service';\nimport { JiraService } from '../../../services/jira.service';\nimport { BaseDialog } from '../../dialogs/basedialog/base.dialog';\nimport { ABaseTreeNode } from '../basetreecontrol/base.tree.control';\n\n@Component({\n selector: 'jira-control',\n templateUrl: './jira.control.html',\n styleUrls: ['./jira.control.css']\n})\nexport class JiraControl {\n JiraConfigValue: [];\n IssueValue;\n SaveEnabledValue;\n TextInnerHtml;\n Transitions;\n JiraUsersValue;\n JiraAssignee;\n\n @Input()\n get JiraUsers() {\n return this.JiraUsersValue;\n }\n set JiraUsers(val) {\n if (val) {\n this.JiraUsersValue = val;\n this.cdRef.detectChanges();\n }\n }\n\n @Input()\n get JiraConfig() {\n return this.JiraConfigValue;\n }\n set JiraConfig(val) {\n if (val) {\n this.JiraConfigValue = val;\n this.fillTransitions();\n this.cdRef.detectChanges();\n }\n }\n\n @Input()\n get Issue() {\n return this.IssueValue;\n }\n set Issue(val) {\n if (val) {\n this.IssueValue = val;\n if (this.IssueValue.RenderedFields && this.IssueValue.RenderedFields.description) {\n this.TextInnerHtml = this.sanitizer.bypassSecurityTrustHtml(this.IssueValue.RenderedFields.description);\n } else {\n this.TextInnerHtml = '';\n }\n if (this.IssueValue.Fields.assignee && this.IssueValue.Fields.assignee.accountId) {\n this.JiraAssignee = this.IssueValue.Fields.assignee.accountId;\n } else {\n this.JiraAssignee = 'null';\n }\n this.fillTransitions();\n this.cdRef.detectChanges();\n this.IssueChange.emit(this.IssueValue);\n }\n }\n\n @Output() IssueChange = new EventEmitter();\n\n fillTransitions() {\n if (this.IssueValue && this.IssueValue.ID && this.JiraConfigValue) {\n this.jira.GetTransitions(this.JiraConfigValue, this.IssueValue.ID).subscribe(ret => {\n this.Transitions = ret;\n this.cdRef.detectChanges();\n });\n }\n }\n\n onStatusChanged(evt) {\n let trans = this.Transitions.find(x => x.StatusID == evt.value);\n this.jira.TransitionIssue(this.JiraConfigValue, this.IssueValue.ID, trans.ID).subscribe();\n }\n\n onAssigneeChanged() {\n if (this.JiraAssignee && this.JiraAssignee != \"null\") {\n this.jira.AssigneeIssue(this.JiraConfigValue, this.IssueValue.ID, this.JiraAssignee).subscribe(() => {\n this.IssueValue.Fields.assignee = { accountId: this.JiraAssignee };\n this.cdRef.detectChanges();\n });\n } else {\n this.jira.AssigneeIssue(this.JiraConfigValue, this.IssueValue.ID, null).subscribe(() => {\n this.IssueValue.Fields.assignee = null;\n this.cdRef.detectChanges();\n });\n }\n }\n\n close() {\n this.Close.emit({});\n }\n\n @Output() Close = new EventEmitter();\n\n //@Input()\n //get SaveEnabled() {\n // return this.SaveEnabledValue;\n //}\n //set SaveEnabled(val) {\n // if (val) {\n // this.SaveEnabledValue = val;\n // this.SaveEnabledChange.emit(this.SaveEnabledValue);\n // }\n //}\n\n //@Output() SaveEnabledChange = new EventEmitter();\n\n OnItemChanged() {\n //this.SaveEnabled = true;\n }\n\n constructor(private sanitizer: DomSanitizer, private cdRef: ChangeDetectorRef, private jira: JiraService) {\n }\n\n}\n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, ComponentFactoryResolver, ContentChild, Directive, EventEmitter,\n Input, OnDestroy, OnInit, Output, SimpleChanges, TemplateRef, ViewChild, ViewContainerRef, ViewEncapsulation\n} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {Subject, filter, map, mergeMap, of} from 'rxjs';\nimport {NavigationService} from '../../../services/navigation.service';\nimport {PermissionDeniedPage} from '../../pages/not-permitted.page';\nimport {MatTabChangeEvent, MatTabGroup} from \"@angular/material/tabs\";\nimport {GlobalSearchService} from \"../../../services/global-search.service\";\n@Directive({\n selector: '[navigationContent]'\n})\nexport class NavigationContentDirective {\n}\n\n@Component({\n\tselector: 'evi-nav',\n\ttemplateUrl: './navigation.control.html',\n\tstyleUrls: ['./navigation.control.css'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class NavigationControl implements OnInit, OnDestroy {\n\tInstance;\n\tcomponentRef;\n\tSelectedNavigation;\n\tPath = [];\n\tActiveURL;\n\tBaseURL;\n\n\tTabInstance;\n\tisNavOpen: boolean = false;\n\n\t@ContentChild(NavigationContentDirective, { read: TemplateRef })\n\tnavigationContentTemplate;\n\t@ViewChild('dynamic', { read: ViewContainerRef })\n\tviewContainerRef: ViewContainerRef;\n\n\t//#region NavigationItems\n\tNavigationItemsValue = [];\n\n\t@Input()\n\tget NavigationItems() {\n\t\treturn this.NavigationItemsValue;\n\t}\n\n\tset NavigationItems(val) {\n\t\tthis.NavigationItemsValue = val;\n\t\tthis.SearchComponent(undefined, 'Navigations');\n\t\tthis.NavigationItemsChange.emit(this.NavigationItemsValue);\n\t\tthis.cdRef.detectChanges();\n\t}\n\n\tNavOpenChange(value: boolean) {\n\t\tthis.isNavOpen = value;\n\t}\n\t@Output() NavigationItemsChange = new EventEmitter();\n\t//#endregion\n\n\t//#region SelectionHandler\n\tSelectionHandlerValue;\n\n\t@Input()\n\tget SelectionHandler() {\n\t\treturn this.SelectionHandlerValue;\n\t}\n\n\tset SelectionHandler(val) {\n\t\tthis.SelectionHandlerValue = val;\n\t\tthis.SelectionHandlerChange.emit(this.SelectionHandlerValue);\n\t}\n\n\t@Output() SelectionHandlerChange = new EventEmitter();\n\t//#endregion\n\n\t//#region ShowPath\n\tShowPathValue = false;\n\n\t@Input()\n\tget ShowPath() {\n\t\treturn this.ShowPathValue;\n\t}\n\n\tset ShowPath(val) {\n\t\tthis.ShowPathValue = val;\n\t\tthis.ShowPathChange.emit(this.ShowPathValue);\n\t}\n\n\t@Output() ShowPathChange = new EventEmitter();\n\t//#endregion\n\t//#region DeepLinking\n\tDeepLinkingValue = true;\n\n\t@Input()\n\tget DeepLinking() {\n\t\treturn this.DeepLinkingValue;\n\t}\n\n\tset DeepLinking(val) {\n\t\tthis.DeepLinkingValue = val;\n\t\tthis.DeepLinkingChange.emit(this.DeepLinkingValue);\n\t}\n\n\t@Output() DeepLinkingChange = new EventEmitter();\n\t//#endregion\n\t//#region SelectionHandler\n\tContentStyleValue = {};\n\n\t@Input()\n\tget ContentStyle() {\n\t\treturn this.ContentStyleValue;\n\t}\n\n\tset ContentStyle(val) {\n\t\tthis.ContentStyleValue = val;\n\t\tthis.ContentStyleChange.emit(this.ContentStyleValue);\n\t}\n\n\t@Output() ContentStyleChange = new EventEmitter();\n\t//#endregion\n\tSelectionSet: Subject = new Subject();\n\n\tNavOpen = false;\n\tNavs = {};\n\tprivate NavSubject = new Subject();\n\t_Nav$ = this.NavSubject.asObservable();\n\n\t@ViewChild(MatTabGroup) tabGroup!: MatTabGroup;\n\n\tDropdownOpen: boolean = false;\n\n\ttoggleDropdown(): void {\n\t\tthis.DropdownOpen = !this.DropdownOpen;\n\t}\n\n\tconstructor(\n\t\tprivate factoryResolver: ComponentFactoryResolver,\n\t\tprivate router: Router,\n\t\tpublic cdRef: ChangeDetectorRef,\n\t\tpublic globalSearchService: GlobalSearchService\n\t) {\n\t\tthis.Instance = this;\n\t\tNavigationService.ActiveURL.subscribe((url) => {\n\t\t\tthis.ActiveURL = url;\n\t\t\tthis.SearchComponent(undefined, 'constructor');\n\t\t});\n\t\tNavigationService.Refresh.subscribe((url) => {\n\t\t\tthis.SearchComponent(undefined, 'constructor');\n\t\t\tthis.cdRef.detectChanges();\n\t\t});\n\t}\n\n\tngOnInit(): void {\n\t\tNavigationService.NavOpenChanged.subscribe((value) => {\n\t\t\tif (value.Value == false) {\n\t\t\t\tdelete this.Navs[value.Instance];\n\t\t\t} else {\n\t\t\t\tthis.Navs[value.Instance] = value.Value;\n\t\t\t}\n\t\t\tif (Object.keys(this.Navs).length > 0) {\n\t\t\t\tthis.NavOpen = true;\n\t\t\t} else {\n\t\t\t\tthis.NavOpen = false;\n\t\t\t}\n\t\t\tthis.cdRef.detectChanges();\n\t\t});\n\t\tthis._Nav$.subscribe((nav) => {\n\t\t\t// this.findTabInstance(nav);\n\t\t});\n\t}\n\n\tngOnDestroy(): void {\n\t\tif (this.componentRef) {\n\t\t\tthis.componentRef.destroy();\n\t\t\tthis.componentRef = null;\n\t\t}\n\t}\n\n\tNavigateToHome(homeNav:any) {\n\t\tthis.router.navigate(['/default/settings/dashboard'])\n\t}\n\n\tSearchComponent(notSetTab?: boolean, testStr?: string) {\n\t\tif (\n\t\t\tthis.DeepLinking &&\n\t\t\tthis.ActiveURL &&\n\t\t\tthis.NavigationItemsValue &&\n\t\t\tthis.NavigationItemsValue.length > 0\n\t\t) {\n\t\t\tthis.ResetSelected();\n\n\t\t\tlet url = this.ActiveURL.substring(\n\t\t\t\tthis.ActiveURL.indexOf('settings') + 9\n\t\t\t);\n\t\t\tthis.BaseURL = this.ActiveURL.substring(\n\t\t\t\t0,\n\t\t\t\tthis.ActiveURL.indexOf('settings') + 9\n\t\t\t);\n\t\t\tlet split = url.split('/');\n\t\t\tlet toSearch = this.NavigationItemsValue;\n\t\t\tif (split && split.length > 0) {\n\t\t\t\tfor (let i = 0; i < split.length; i++) {\n\t\t\t\t\tlet path = split[i];\n\t\t\t\t\tlet found = null;\n\t\t\t\t\ttoSearch.forEach((item) => {\n\t\t\t\t\t\titem.Selected = false;\n\t\t\t\t\t\tif (item.ID.toLowerCase() == path.toLowerCase()) {\n\t\t\t\t\t\t\titem.Selected = true;\n\t\t\t\t\t\t\tfound = item.Children;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif (found) {\n\t\t\t\t\t\ttoSearch = found;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// if (toSearch[0] && !notSetTab) {\n\t\t\t// \tconst instance = this.findArrayWithMatchedId(this.NavigationItems, toSearch[0]?.ID)\n\t\t\t// \tthis.TabInstance = instance[instance.length - 1]\n\n\t\t\t// }\n\t\t\tthis.SelectionSet.next(true);\n\t\t}\n\t}\n\n\tResetSelected(items?) {\n\t\tif (!items) {\n\t\t\titems = this.NavigationItemsValue;\n\t\t}\n\t\titems.forEach((item) => {\n\t\t\titem.Selected = false;\n\t\t\tif (item.Children && item.Children.length > 0) {\n\t\t\t\tthis.ResetSelected(item.Children);\n\t\t\t}\n\t\t});\n\t}\n\n\tasync CheckComponent() {\n\t\tif (\n\t\t\tthis.SelectionHandlerValue &&\n\t\t\ttypeof this.SelectionHandlerValue.CheckComponent === 'function'\n\t\t) {\n\t\t\treturn await this.SelectionHandlerValue.CheckComponent();\n\t\t}\n\t\treturn true;\n\t}\n\n\t// findChildrenById(arr, targetId) {\n\t// \tarr.map((obj) => {\n\t// \t\tif (obj.ID === targetId) {\n\t// \t\t\treturn obj.Children || [];\n\t// \t\t}\n\t// \t\tif (obj.Children) {\n\t// \t\t\tconst foundChildren = this.findChildrenById(obj.Children, targetId);\n\t// \t\t\tif (foundChildren.length > 0) {\n\t// \t\t\t\treturn foundChildren;\n\t// \t\t\t}\n\t// \t\t}\n\t// \t});\n\t// \treturn [];\n\t// }\n\n\tfindArrayWithMatchedId(arr, targetId, parentArray = []) {\n\t\tlet foundArray = null;\n\n\t\tarr.some((obj) => {\n\t\t\tif (obj.ID === targetId) {\n\t\t\t\tfoundArray = parentArray;\n\t\t\t\treturn true; // Exit the loop if a match is found\n\t\t\t}\n\t\t\tif (obj.Children) {\n\t\t\t\tconst childrenArray = parentArray.concat(obj); // Concatenate the current object to the parent array\n\t\t\t\tfoundArray = this.findArrayWithMatchedId(\n\t\t\t\t\tobj.Children,\n\t\t\t\t\ttargetId,\n\t\t\t\t\tchildrenArray\n\t\t\t\t);\n\t\t\t\treturn foundArray !== null; // Exit the loop if a match is found in the recursion\n\t\t\t}\n\t\t\treturn false;\n\t\t});\n\n\t\treturn foundArray;\n\t}\n\n\tasync SetComponent(nav) {\n\t\tthis.SelectedNavigation = nav;\n\t\tconst path = [];\n\t\tlet children = this.NavigationItemsValue;\n\t\twhile (children) {\n\t\t\tconst selected = children.find((x) => x.Selected);\n\t\t\tif (selected && selected !== nav) {\n\t\t\t\tpath.push(selected);\n\t\t\t\tchildren = selected.Children;\n\t\t\t} else {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tthis.Path = path;\n\t\tlet component;\n\t\tif (this.viewContainerRef) {\n\t\t\tthis.viewContainerRef.clear();\n\t\t\tif (nav && nav.Content) {\n\t\t\t\tif (nav.SecurityValue) {\n\t\t\t\t\tconst factory = this.factoryResolver.resolveComponentFactory(\n\t\t\t\t\t\tnav.Content\n\t\t\t\t\t);\n\t\t\t\t\tthis.componentRef = this.viewContainerRef.createComponent(factory);\n\t\t\t\t\tcomponent = this.componentRef.instance;\n\t\t\t\t\tif (nav.InitArgs) {\n\t\t\t\t\t\tcomponent.InitArgs = nav.InitArgs;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst factory =\n\t\t\t\t\t\tthis.factoryResolver.resolveComponentFactory(PermissionDeniedPage);\n\t\t\t\t\tthis.componentRef = this.viewContainerRef.createComponent(factory);\n\t\t\t\t\tcomponent = this.componentRef.instance;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (\n\t\t\tthis.SelectionHandlerValue &&\n\t\t\ttypeof this.SelectionHandlerValue.SetComponent === 'function'\n\t\t) {\n\t\t\tthis.SelectionHandlerValue.SetComponent(nav, component);\n\t\t}\n\t\tthis.cdRef.detectChanges();\n\t}\n\n\tOnNavClicked(nav) {\n\t\t// if (!nav.Children) {\n\t\t// \tconst instance = this.findArrayWithMatchedId(this.NavigationItemsValue, nav.ID)\n\t\t// \tif (instance) {\n\t\t// \t\tthis.TabInstance = instance[instance.length-1]\n\t\t// \t}\n\t\t// } else {\n\t\t// \tthis.TabInstance = nav\n\t\t// }\n\t\tif (\n\t\t\tthis.SelectionHandlerValue &&\n\t\t\ttypeof this.SelectionHandlerValue.OnNavClicked === 'function'\n\t\t) {\n\t\t\tthis.SelectionHandlerValue.OnNavClicked(nav);\n\t\t}\n\t}\n\n\tasync parentClicked(parent) {\n\t\tif (this.DeepLinking) {\n\t\t\tif (this.NavigationItems) {\n\t\t\t\tlet path = this.findItem(parent, this.NavigationItems);\n\t\t\t\tlet url = '';\n\t\t\t\tlet count = 0;\n\t\t\t\tpath.forEach((p) => {\n\t\t\t\t\tif (count > 0) {\n\t\t\t\t\t\turl += '/';\n\t\t\t\t\t}\n\t\t\t\t\turl += p;\n\t\t\t\t\tcount += 1;\n\t\t\t\t});\n\n\t\t\t\tif (this.BaseURL[this.BaseURL.length - 1] != '/') {\n\t\t\t\t\tthis.BaseURL += '/';\n\t\t\t\t}\n\t\t\t\tthis.router.navigate([this.BaseURL + url]);\n\t\t\t\tparent.NaviTabInstance.childnav.NavOpenValue = true;\n\t\t\t\tthis.SetComponent(parent);\n\t\t\t}\n\t\t} else {\n\t\t\tif (parent && parent.NaviTabInstance) {\n\t\t\t\tawait parent.NaviTabInstance.selectItem(null);\n\t\t\t}\n\t\t}\n\t}\n\n\tfindItem(nav, items) {\n\t\tlet retVal = [];\n\t\tif (nav != null && items && items.length > 0) {\n\t\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\t\tlet item = items[i];\n\t\t\t\tif (nav == item) {\n\t\t\t\t\tretVal.push(item.ID);\n\t\t\t\t}\n\t\t\t\tif (item.Children && item.Children.length > 0) {\n\t\t\t\t\tlet result = this.findItem(nav, item.Children);\n\t\t\t\t\tif (result && result.length > 0) {\n\t\t\t\t\t\tretVal.push(item.ID);\n\t\t\t\t\t\tretVal.push(...result);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn retVal;\n\t}\n\n\tdropdownSelection: any;\n\ttabChanged(nav: any) {\n\t\tif (nav) {\n\t\t\tthis.dropdownSelection = nav;\n\t\t}\n\t}\n}\n\n","import {\n AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, SimpleChanges, ViewChild\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { UUID } from 'angular2-uuid';\nimport { PermissionHelper } from '../../../helpers/permissions.helper';\nimport { RTLHelper } from '../../../helpers/rtl.helper';\nimport { ContextEventHelper } from '../../../models/contextevent.model';\nimport { NavigationService } from '../../../services/navigation.service';\nimport { UsersService } from '../../../services/users.service';\nimport {GlobalSearchService} from \"../../../services/global-search.service\";\nimport {TourService} from \"ngx-ui-tour-md-menu\";\n\n@Component({\n selector: 'evi-nav-tabs',\n templateUrl: './navigation.tabs.html',\n styleUrls: ['./navigation.tabs.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NavigationTabsControl implements OnInit, AfterViewInit {\n NavMode = 'side';\n NavOpenValue = true;\n get NavOpen() {\n return this.NavOpenValue;\n }\n set NavOpen(value) {\n this.NavOpenValue = value;\n NavigationService.NavOpenChanged.next({ Value: value, Instance: this.ID });\n }\n openTimeOut = -1;\n \n ViewInitialized = false;\n Style = {};\n NavStyle = {};\n SelectedNavigation;\n ID = UUID.UUID();\n @ViewChild('iconnav') iconnav;\n @ViewChild('childnav') childnav;\n\n //#region NavigationItems\n NavigationItemsValue = [];\n\n @Input()\n get NavigationItems() {\n return this.NavigationItemsValue;\n }\n set NavigationItems(val) {\n if (val != this.NavigationItemsValue) {\n this.NavigationItemsValue = val;\n if (val) {\n val.forEach(x => {\n x.NaviTabInstance = this;\n let user = UsersService.ActiveUser.getValue();\n if (user) {\n if (user.IsAdministrator) {\n x.SecurityValue = true;\n } else {\n if (x.Security) {\n x.SecurityValue = PermissionHelper.GetRight(x.Security.Name, x.Security.Value);\n } else {\n x.SecurityValue = true;\n }\n }\n }\n });\n }\n if (this.ViewInitialized) {\n this.checkNavi();\n }\n this.NavigationItemsChange.emit(this.NavigationItemsValue);\n }\n this.cdRef.detectChanges();\n }\n\n @Output() NavigationItemsChange = new EventEmitter();\n\n\n //#endregion\n //#region DeepLinking\n DeepLinkingValue;\n\n @Input()\n get DeepLinking() {\n return this.DeepLinkingValue;\n }\n set DeepLinking(val) {\n this.DeepLinkingValue = val;\n this.DeepLinkingChange.emit(this.DeepLinkingValue);\n }\n\n @Output() DeepLinkingChange = new EventEmitter();\n //#endregion\n //#region Level\n LevelValue = 0;\n\n @Input()\n get Level() {\n return this.LevelValue;\n }\n set Level(val) {\n this.LevelValue = val;\n this.generateStyle();\n this.LevelChange.emit(this.LevelValue);\n }\n\n @Output() LevelChange = new EventEmitter();\n //#endregion\n \n //#region SelectionHandler\n SelectionSetSubscription;\n SelectionHandlerValue;\n\n @Input()\n get SelectionHandler() {\n return this.SelectionHandlerValue;\n }\n set SelectionHandler(val) {\n this.SelectionHandlerValue = val;\n if (this.SelectionSetSubscription) {\n this.SelectionSetSubscription.unsubscribe();\n }\n if (val && val.SelectionSet) {\n this.SelectionSetSubscription = val.SelectionSet.subscribe(() => {\n let nav = this.NavigationItemsValue.find((value) => {\n return value.Selected;\n });\n this.SelectedNavigation = nav;\n this.cdRef.detectChanges();\n });\n }\n this.SelectionHandlerChange.emit(this.SelectionHandlerValue);\n }\n\n @Output() SelectionHandlerChange = new EventEmitter();\n //#endregion\n\n constructor(private cdRef: ChangeDetectorRef, private router: Router, private globalSearchService: GlobalSearchService, public tourService: TourService) {\n }\n\n @Input() dropdownSelection: any;\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.dropdownSelection) {\n this.itemClicked(this.dropdownSelection)\n }\n }\n ngOnInit(): void {\n this.generateStyle();\n // Global Search: on select search item\n this.globalSearchService.CallNavMenu$.subscribe((nav) => {\n this.itemClicked(nav);\n })\n }\n listHoverIndex: number = -1;\n onHover(index: number): void { \n this.listHoverIndex = index;\n }\n\n onLeave(): void {\n this.listHoverIndex = -1;\n }\n ngAfterViewInit(): void {\n this.onMouseEnter()\n this.checkNavi();\n this.ViewInitialized = true;\n }\n\n generateStyle() {\n const mod = (this.LevelValue % 5);\n const rgb = 94 + 40 * mod;\n this.Style['background-color'] = 'rgb(' + rgb + ',' + rgb + ',' + rgb + ')';\n if (mod < 4) {\n this.Style['color'] = 'rgb(245,245,245)';\n this.NavStyle['background-color'] = 'rgb(' + (rgb + 40) + ',' + (rgb + 40) + ',' + (rgb + 40) + ')';\n if (mod < 3) {\n this.NavStyle['color'] = 'rgb(245,245,245)';\n } else {\n this.NavStyle['color'] = 'rgb(94, 94, 94)';\n }\n } else {\n this.NavStyle['background-color'] = 'rgb(94, 94, 94)';\n this.NavStyle['color'] = 'rgb(245,245,245)';\n }\n }\n openDashboard() {\n this.router.navigate(['default/settings/dashboard']);\n }\n async itemClicked(nav) {\n await this.selectItem(nav);\n if (this.SelectionHandlerValue && typeof this.SelectionHandlerValue.OnNavClicked === 'function') {\n this.SelectionHandlerValue.OnNavClicked(nav);\n }\n }\n\n async selectItem(nav) {\n if (nav !== this.SelectedNavigation) {\n if (this.SelectionHandlerValue && typeof this.SelectionHandlerValue.CheckComponent === 'function') {\n const retVal = await this.SelectionHandlerValue.CheckComponent();\n if (!retVal) {\n return;\n }\n }\n if (this.DeepLinking) {\n if (nav != null) {\n if (this.SelectionHandlerValue && this.SelectionHandlerValue.NavigationItems) {\n let path = this.findItem(nav, this.SelectionHandlerValue.NavigationItems);\n let url = \"\";\n let count = 0;\n path.forEach((p) => {\n if (count > 0) {\n url += \"/\";\n }\n url += p;\n count += 1;\n });\n\n this.NavigationItemsValue.forEach(function (n) {\n n.Selected = false;\n });\n if (nav) {\n nav.Selected = true;\n window.clearTimeout(this.openTimeOut);\n this.NavOpen = false;\n this.NavMode = 'over';\n } else {\n this.NavOpen = true;\n this.NavMode = 'side';\n }\n if (this.SelectionHandlerValue.BaseURL[this.SelectionHandlerValue.BaseURL.length - 1] != '/') {\n this.SelectionHandlerValue.BaseURL += '/';\n }\n if (this.SelectionHandlerValue.ActiveURL.indexOf(this.SelectionHandlerValue.BaseURL + url) == -1) {\n this.router.navigate([this.SelectionHandlerValue.BaseURL + url]);\n }\n this.SelectedNavigation = nav;\n }\n }\n } else {\n this.NavigationItemsValue.forEach(function (n) {\n n.Selected = false;\n });\n if (nav) {\n nav.Selected = true;\n window.clearTimeout(this.openTimeOut);\n this.NavOpen = false;\n this.NavMode = 'over';\n } else {\n this.NavOpen = true;\n this.NavMode = 'side';\n }\n this.SelectedNavigation = nav;\n this.cdRef.detectChanges();\n }\n if (this.SelectionHandlerValue && typeof this.SelectionHandlerValue.SetComponent === 'function') {\n this.SelectionHandlerValue.SetComponent(nav);\n }\n }\n this.cdRef.detectChanges();\n }\n\n\n findChildrenById(arr, targetId) {\n for (let obj of arr) {\n if (obj.ID === targetId) {\n return obj;\n }\n if (obj.Children) {\n const foundChild = this.findChildrenById(obj.Children, targetId);\n if (foundChild) {\n return foundChild;\n }\n }\n }\n return null; // If the targetId is not found in the entire array\n }\n\n findItem(nav, items) {\n let retVal = [];\n if (nav != null && items && items.length > 0) {\n for (let i = 0; i < items.length; i++) {\n let item = items[i];\n if (nav == item) {\n retVal.push(item.ID);\n }\n if (item.Children && item.Children.length > 0) {\n let result = this.findItem(nav, item.Children)\n if (result && result.length > 0) {\n retVal.push(item.ID);\n retVal.push(...result);\n }\n }\n } \n }\n return retVal;\n }\n\n checkNavi() {\n let selected;\n if (this.NavigationItemsValue) {\n selected = this.NavigationItemsValue.find(x => x.Selected);\n }\n this.selectItem(selected);\n }\n\n onMouseEnter() {\n if (this.NavMode === 'over') {\n this.NavOpen = true;\n ContextEventHelper.Close.next(null);\n if (this.childnav) {\n this.childnav.closeNav();\n }\n this.cdRef.detectChanges();\n this.openTimeOut = window.setTimeout(() => {\n }, 500);\n }\n }\n\n onMouseLeave() {\n if (this.NavMode === 'over') {\n window.clearTimeout(this.openTimeOut);\n }\n }\n\n closeNav() {\n this.NavOpen = false;\n if (this.childnav) {\n this.childnav.closeNav();\n }\n this.cdRef.detectChanges();\n if (this.NavMode === 'over') {\n }\n }\n\n onScroll(ev) {\n if (ev && ev.target && this.iconnav && this.iconnav.nativeElement) {\n this.iconnav.nativeElement.scrollTop = ev.target.scrollTop;\n }\n }\n\n GetLevelStyle() {\n if (RTLHelper.Direction == 'rtl') {\n return { 'right': ((this.LevelValue * 40) + 20) + 'px' }\n } else {\n return { 'left': ((this.LevelValue * 40) + 20) + 'px' }\n }\n }\n GetLevelStyleWithCheck() {\n if (RTLHelper.Direction == 'rtl') {\n return { 'right': this.NavMode == 'over' ? ((this.LevelValue + 1) * 40) + 'px' : '0px', 'left': 0 }\n } else {\n return { 'left': this.NavMode == 'over' ? ((this.LevelValue + 1) * 40) + 'px' : '0px', 'right': 0 }\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter, HostListener,\n Input,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {UUID} from 'angular2-uuid';\nimport {PermissionHelper} from '../../../helpers/permissions.helper';\nimport {RTLHelper} from '../../../helpers/rtl.helper';\nimport {ContextEventHelper} from '../../../models/contextevent.model';\nimport {NavigationService} from '../../../services/navigation.service';\nimport {UsersService} from '../../../services/users.service';\nimport {SETTINGS_LIST} from \"../../pages/settings.page\";\nimport {animate, keyframes, state, style, transition, trigger} from \"@angular/animations\";\nimport {Subject} from \"rxjs\";\n\n@Component({\n selector: 'evi-nav-menu',\n templateUrl: './navigation.menu.html',\n styleUrls: ['./navigation.menu.css'],\n animations: [\n trigger('slideInOut', [\n state('in', style({transform: 'translateX(0)'})),\n transition('void => *', [\n style({transform: 'translateX(-100%)'}),\n animate('0.3s ease-in-out')\n ]),\n transition('* => void', [\n animate('0.3s ease-in-out', style({transform: 'translateX(-100%)'}))\n ])\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NavigationMenu implements OnInit, AfterViewInit {\n NavMode = 'side';\n NavOpenValue = true;\n LastLevelDropdownValue = false;\n listOnHover = -1;\n\n get NavOpen() {\n return this.NavOpenValue;\n }\n\n set NavOpen(value) {\n this.NavOpenValue = value;\n NavigationService.NavOpenChanged.next({ Value: value, Instance: this.ID })\n }\n\n get LastLevelDropdown() {\n return this.LastLevelDropdownValue\n };\n \n set LastLevelDropdown(value) { \n this.LastLevelDropdownValue = value;\n }\n\n\n @Input() isNavOpen: boolean;\n \n\n ngOnChanges(changes: SimpleChanges) { \n console.log('Changes', this.isNavOpen);\n if(this.isNavOpen) this.onClickItem(this.SelectedNavigation)\n }\n\n openTimeOut = -1;\n\n ViewInitialized = false;\n Style = {};\n NavStyle = {};\n SelectedNavigation;\n ID = UUID.UUID();\n @ViewChild('iconnav') iconnav;\n @ViewChild('childnav') childnav;\n\n @HostListener('document:click', ['$event'])\n onClickOutside(event: Event) {\n if (!this.SubNavValue) return; // Navigation is already closed\n // Check if the clicked element is outside of the sub navigation div\n const navElement = document.querySelector('.side-navigation');\n if (!navElement || !navElement.contains(event.target as Node)) {\n this.SubNavValue = false;\n }\n }\n\n SubNavValue: boolean;\n\n @Input()\n get SubNavOpen() {\n return this.SubNavValue;\n }\n\n set SubNavOpen(val) {\n this.SubNavValue = val;\n }\n\n TabIndexValue = 6;\n\n @Input()\n get TabIndex() {\n return this.TabIndexValue;\n }\n\n set TabIndex(val) {\n this.TabIndexValue = val;\n }\n\n NavLevelIndex(nav) {\n const _defaultIndex = 10;\n if (nav) {\n if (nav?.NaviTabInstance?.LevelValue == 1 && nav?.Children && nav?.Children?.length > 0) {\n const child = nav?.Children?.find(x => x?.Children != null);\n if (!child) {\n this.TabIndexValue = 2;\n } else {\n this.TabIndexValue = _defaultIndex;\n }\n } else {\n if (nav?.NaviTabInstance?.LevelValue == 0) {\n const _selected = nav?.Children?.find(x => x.Selected);\n if (_selected) {\n this.NavLevelIndex(_selected);\n }\n }\n }\n }\n\n }\n\n //#region NavigationItems\n NavigationItemsValue = [];\n\n @Input()\n get NavigationItems() {\n return this.NavigationItemsValue;\n }\n\n set NavigationItems(val) {\n if (val != this.NavigationItemsValue) {\n this.NavigationItemsValue = val;\n if (val) {\n val.forEach(x => {\n x.NaviTabInstance = this;\n let user = UsersService.ActiveUser.getValue();\n if (user) {\n if (user.IsAdministrator) {\n x.SecurityValue = true;\n } else {\n if (x.Security) {\n x.SecurityValue = PermissionHelper.GetRight(x.Security.Name, x.Security.Value);\n } else {\n x.SecurityValue = true;\n }\n }\n }\n });\n }\n if (this.ViewInitialized) {\n this.checkNavi();\n }\n this.NavigationItemsChange.emit(this.NavigationItemsValue);\n }\n this.cdRef.detectChanges();\n }\n\n @Output() NavigationItemsChange = new EventEmitter();\n\n\n //#endregion\n //#region DeepLinking\n DeepLinkingValue;\n\n @Input()\n get DeepLinking() {\n return this.DeepLinkingValue;\n }\n\n set DeepLinking(val) {\n this.DeepLinkingValue = val;\n this.DeepLinkingChange.emit(this.DeepLinkingValue);\n }\n\n @Output() DeepLinkingChange = new EventEmitter();\n //#endregion\n //#region Level\n LevelValue = 0;\n\n @Input()\n get Level() {\n return this.LevelValue;\n }\n\n set Level(val) {\n this.LevelValue = val;\n this.generateStyle();\n this.LevelChange.emit(this.LevelValue);\n }\n\n @Output() LevelChange = new EventEmitter();\n //#endregion\n\n //#region SelectionHandler\n SelectionSetSubscription;\n SelectionHandlerValue;\n\n @Input()\n get SelectionHandler() {\n return this.SelectionHandlerValue;\n }\n\n set SelectionHandler(val) {\n this.SelectionHandlerValue = val;\n if (this.SelectionSetSubscription) {\n this.SelectionSetSubscription.unsubscribe();\n }\n if (val && val.SelectionSet) {\n this.SelectionSetSubscription = val.SelectionSet.subscribe(() => {\n let nav = this.NavigationItemsValue.find((value) => {\n return value.Selected;\n });\n this.SelectedNavigation = nav;\n this.cdRef.detectChanges();\n });\n }\n this.SelectionHandlerChange.emit(this.SelectionHandlerValue);\n }\n\n @Output() SelectionHandlerChange = new EventEmitter();\n\n //#endregion\n\n constructor(private cdRef: ChangeDetectorRef, private router: Router) {\n }\n\n ngOnInit(): void {\n this.generateStyle();\n }\n\n ngAfterViewInit(): void {\n this.checkNavi();\n this.ViewInitialized = true;\n }\n onClickItem(nav) {\n event.stopPropagation();\n this.SubNavValue = true;\n this.cdRef.detectChanges();\n this.itemClicked(nav);\n }\n \n \n async itemClicked(nav) {\n await this.selectItem(nav);\n if (this.SelectionHandlerValue && typeof this.SelectionHandlerValue.OnNavClicked === 'function') {\n this.SelectionHandlerValue.OnNavClicked(nav);\n }\n }\n\n generateStyle() {\n const mod = (this.LevelValue % 5);\n const rgb = 94 + 40 * mod;\n this.Style['background-color'] = 'rgb(' + rgb + ',' + rgb + ',' + rgb + ')';\n if (mod < 4) {\n this.Style['color'] = 'rgb(245,245,245)';\n this.NavStyle['background-color'] = 'rgb(' + (rgb + 40) + ',' + (rgb + 40) + ',' + (rgb + 40) + ')';\n if (mod < 3) {\n this.NavStyle['color'] = 'rgb(245,245,245)';\n } else {\n this.NavStyle['color'] = 'rgb(94, 94, 94)';\n }\n } else {\n this.NavStyle['background-color'] = 'rgb(94, 94, 94)';\n this.NavStyle['color'] = 'rgb(245,245,245)';\n }\n }\n\n async selectItem(nav) {\n this.NavLevelIndex(nav);\n if (nav !== this.SelectedNavigation) {\n if (this.SelectionHandlerValue && typeof this.SelectionHandlerValue.CheckComponent === 'function') {\n const retVal = await this.SelectionHandlerValue.CheckComponent();\n if (!retVal) {\n return;\n }\n }\n if (this.DeepLinking) {\n if (nav != null) {\n if (this.SelectionHandlerValue && this.SelectionHandlerValue.NavigationItems) {\n let path = this.findItem(nav, this.SelectionHandlerValue.NavigationItems);\n let url = \"\";\n let count = 0;\n path.forEach((p) => {\n if (count > 0) {\n url += \"/\";\n }\n url += p;\n count += 1;\n });\n\n this.NavigationItemsValue.forEach(function (n) {\n n.Selected = false;\n })\n if (nav) {\n nav.Selected = true;\n window.clearTimeout(this.openTimeOut);\n // this.NavOpen = false;\n // this.NavMode = 'over';\n } else {\n // this.NavOpen = true;\n // this.NavMode = 'side';\n }\n if (this.SelectionHandlerValue.BaseURL[this.SelectionHandlerValue.BaseURL.length - 1] != '/') {\n this.SelectionHandlerValue.BaseURL += '/';\n }\n if (this.SelectionHandlerValue.ActiveURL.indexOf(this.SelectionHandlerValue.BaseURL + url) == -1) {\n this.router.navigate([this.SelectionHandlerValue.BaseURL + url]);\n }\n this.SelectedNavigation = nav;\n }\n }\n } else {\n this.NavigationItemsValue.forEach(function (n) {\n n.Selected = false;\n });\n if (nav) {\n nav.Selected = true;\n window.clearTimeout(this.openTimeOut);\n this.NavOpen = false;\n this.NavMode = 'over';\n } else {\n this.NavOpen = true;\n this.NavMode = 'side';\n }\n this.SelectedNavigation = nav;\n this.cdRef.detectChanges();\n }\n if (this.SelectionHandlerValue && typeof this.SelectionHandlerValue.SetComponent === 'function') {\n this.SelectionHandlerValue.SetComponent(nav);\n }\n }\n this.cdRef.detectChanges();\n }\n\n findItem(nav, items) {\n let retVal = [];\n if (nav != null && items && items.length > 0) {\n for (let i = 0; i < items.length; i++) {\n let item = items[i];\n if (nav == item) {\n retVal.push(item.ID);\n }\n if (item.Children && item.Children.length > 0) {\n let result = this.findItem(nav, item.Children)\n if (result && result.length > 0) {\n retVal.push(item.ID);\n retVal.push(...result);\n }\n }\n }\n }\n return retVal;\n }\n\n checkNavi() {\n let selected;\n if (this.NavigationItemsValue) {\n selected = this.NavigationItemsValue.find(x => x.Selected);\n }\n this.selectItem(selected);\n\n }\n\n onMouseEnter(i) {\n this.listOnHover = i;\n // if (this.NavMode === 'over') {\n // this.openTimeOut = window.setTimeout(() => {\n // this.NavOpen = true;\n // ContextEventHelper.Close.next(null);\n // if (this.childnav) {\n // this.childnav.closeNav();\n // }\n // this.cdRef.detectChanges();\n // }, 500);\n // }\n }\n\n onMouseLeave(i) {\n this.listOnHover = -1;\n // if (this.NavMode === 'over') {\n // window.clearTimeout(this.openTimeOut);\n // }\n }\n @Output() NavOpenChange = new EventEmitter();\n closeNav() {\n if (this.NavMode === 'over') {\n this.NavOpen = false;\n this.NavOpenChange.emit(false);\n if (this.childnav) {\n this.childnav.closeNav();\n }\n this.cdRef.detectChanges();\n }\n }\n\n onScroll(ev) {\n if (ev && ev.target && this.iconnav && this.iconnav.nativeElement) {\n this.iconnav.nativeElement.scrollTop = ev.target.scrollTop;\n }\n }\n\n GetLevelStyle() {\n if (RTLHelper.Direction == 'rtl') {\n return {'right': ((this.LevelValue * 40) + 20) + 'px'}\n } else {\n return {'left': ((this.LevelValue * 40) + 20) + 'px'}\n }\n }\n\n GetLevelStyleWithCheck() {\n if (RTLHelper.Direction == 'rtl') {\n return {'right': this.NavMode == 'over' ? ((this.LevelValue + 1) * 40) + 'px' : '0px', 'left': 0}\n } else {\n return {'left': this.NavMode == 'over' ? ((this.LevelValue + 1) * 40) + 'px' : '0px', 'right': 0}\n }\n }\n}\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter, TemplateRef, ContentChild } from \"@angular/core\";\nimport { MatMenu } from \"@angular/material/menu\";\n\n@Component({\n selector: \"nested-menu\",\n templateUrl: \"./nested.menu.html\",\n styleUrls: [\"./nested.menu.css\"]\n})\nexport class NestedMenuComponent implements OnInit {\n @ViewChild(\"menu\", { static: true }) menu: MatMenu;\n @Input() items: { name: string, children: any[], data: any }[];\n @Input() DisplayMemberPath: string;\n @Input() ShowNewEntry: boolean = false;\n @Input() CaptionNewEntry: string;\n @Input() ValueMemberPath: string;\n @Input() Multiple: string;\n @Output() ItemSelected = new EventEmitter();\n @Output() ItemsSelected = new EventEmitter();\n @Output() NewEntrySelected = new EventEmitter();\n\n @ContentChild(TemplateRef)\n layoutTemplate: TemplateRef;\n constructor() { }\n\n ngOnInit() { }\n click(item) {\n this.ItemSelected.emit(item);\n }\n NewEntry() {\n this.NewEntrySelected.emit();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { deserialize, serialize } from 'class-transformer';\nimport { EnumHelper } from '../../helpers/enum.helper';\nimport { DivisorTypes, NumberFormat } from '../../models/styling/number.format.model';\n\n@Component({\n selector: 'number-format-panel',\n templateUrl: './number.format.panel.html',\n styles: [\n '.buttonSpan { line-height: normal; font-size: 10px; }',\n '.buttonStack > * { width: 64px; text-align: center!important; }'\n ]\n})\nexport class NumberFormatPanel {\n SuffixValues;\n PraefixList;\n SuffixList;\n InternalNumberFormat = new NumberFormat();\n\n //#region NumberFormat\n NumberFormatValue: NumberFormat;\n @Input()\n get NumberFormat() {\n return this.NumberFormatValue;\n }\n set NumberFormat(val) {\n if (val !== this.NumberFormatValue) {\n this.NumberFormatValue = val;\n if (val) {\n this.InternalNumberFormat = deserialize(NumberFormat, serialize(val));\n } else {\n this.InternalNumberFormat = new NumberFormat();\n }\n this.NumberFormatChange.emit(this.NumberFormatValue);\n }\n }\n @Output() NumberFormatChange = new EventEmitter();\n //#endregion\n\n @Output() NumberFormatChanged = new EventEmitter();\n\n constructor() {\n this.SuffixValues = EnumHelper.GetDropdownValues(DivisorTypes);\n this.PraefixList = ['(', '↑', '↓', '→', '←'];\n this.SuffixList = ['€','$',')', '↑', '↓', '→', '←'];\n }\n\n percentChanged(ev) {\n if (ev && ev.source) {\n this.InternalNumberFormat.Suffix = ev.source.checked ? DivisorTypes.Percent : DivisorTypes.None;\n this.onSuffixEnumChange();\n }\n }\n\n separatorChanged(ev) {\n if (ev && ev.source) {\n this.checkNumberFormat(() => {\n this.InternalNumberFormat.ShowNumberGroupSeperator = ev.source.checked;\n this.NumberFormatValue.ShowNumberGroupSeperator = ev.source.checked;\n });\n }\n }\n\n addDigit() {\n this.checkNumberFormat(() => {\n this.InternalNumberFormat.DecimalDigits++;\n this.NumberFormatValue.DecimalDigits++;\n });\n }\n\n removeDigit() {\n if (this.InternalNumberFormat.DecimalDigits > 0) {\n this.checkNumberFormat(() => {\n this.InternalNumberFormat.DecimalDigits--;\n this.NumberFormatValue.DecimalDigits--;\n });\n }\n }\n\n onSuffixEnumChange() {\n this.checkNumberFormat(() => {\n this.NumberFormatValue.Suffix = this.InternalNumberFormat.Suffix;\n switch (this.NumberFormatValue.Suffix) {\n case DivisorTypes.Percent:\n this.InternalNumberFormat.Divisor = 0.01;\n this.NumberFormatValue.Divisor = 0.01;\n break;\n case DivisorTypes.Thousand:\n this.InternalNumberFormat.Divisor = 1000;\n this.NumberFormatValue.Divisor = 1000;\n break;\n case DivisorTypes.HundredThousand:\n this.InternalNumberFormat.Divisor = 100000;\n this.NumberFormatValue.Divisor = 100000;\n break;\n case DivisorTypes.Million:\n this.InternalNumberFormat.Divisor = 1000000;\n this.NumberFormatValue.Divisor = 1000000;\n break;\n }\n });\n }\n\n onDivisorChange() {\n this.checkNumberFormat(() => {\n this.NumberFormatValue.Divisor = this.InternalNumberFormat.Divisor;\n });\n }\n\n onSignChange() {\n this.checkNumberFormat(() => {\n this.NumberFormatValue.ChangeSign = this.InternalNumberFormat.ChangeSign;\n });\n }\n\n onPraefixChange() {\n this.checkNumberFormat(() => {\n this.NumberFormatValue.CustomPraefix = this.InternalNumberFormat.CustomPraefix;\n });\n }\n\n setPraefix(p) {\n this.InternalNumberFormat.CustomPraefix = p;\n this.onPraefixChange();\n }\n\n onSuffixChange() {\n this.checkNumberFormat(() => {\n this.NumberFormatValue.CustomSuffix = this.InternalNumberFormat.CustomSuffix;\n });\n }\n\n setSuffix(p) {\n this.InternalNumberFormat.CustomSuffix = p;\n this.onSuffixChange();\n }\n\n onSpacesChange() {\n this.checkNumberFormat(() => {\n this.NumberFormatValue.ChangeSign = this.InternalNumberFormat.ChangeSign;\n });\n }\n\n checkNumberFormat(action: () => void) {\n if (!this.NumberFormatValue) {\n this.NumberFormatValue = new NumberFormat();\n }\n action();\n this.NumberFormatChanged.emit(this.NumberFormatValue);\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Comparer } from '../../models/enums/comparer.enum';\n\n@Component({\n selector: 'evi-operator',\n templateUrl: './operator.component.html',\n styleUrls: ['./operator.component.css']\n})\nexport class OperatorComponent {\n //#region Column\n ColumnValue;\n\n @Input()\n get Column() {\n return this.ColumnValue;\n }\n set Column(val) {\n this.ColumnValue = val;\n this.SetValues();\n this.ColumnChange.emit(this.ColumnValue);\n }\n @Output() ColumnChange = new EventEmitter();\n //#endregion\n\n //#region Operator\n OperatorValue;\n\n @Input()\n get Operator() {\n return this.OperatorValue;\n }\n set Operator(val) {\n this.OperatorValue = val;\n this.SetValues();\n this.OperatorChange.emit(this.OperatorValue);\n }\n @Output() OperatorChange = new EventEmitter();\n //#endregion\n\n SetValues() {\n if (this.ColumnValue && this.ColumnValue.Type) {\n switch (this.ColumnValue.Type) {\n case 'System.String':\n this.OperatorValues = [\n { Name: '=', Type: Comparer.Equal },\n { Name: '!=', Type: Comparer.NotEqual },\n { Name: Comparer[Comparer.Like], Type: Comparer.Like }\n ]\n break;\n case 'System.Int32':\n case 'System.Int64':\n case 'System.Double':\n this.OperatorValues = [\n { Name: '=', Type: Comparer.Equal },\n { Name: '!=', Type: Comparer.NotEqual },\n { Name: '>', Type: Comparer.Greater },\n { Name: '>=', Type: Comparer.GreaterEqual },\n { Name: '<', Type: Comparer.Smaller },\n { Name: '<=', Type: Comparer.SmallerEqual }\n ]\n break;\n case 'System.Boolean':\n this.OperatorValues = [\n { Name: '=', Type: Comparer.Equal },\n { Name: '!=', Type: Comparer.NotEqual }\n ]\n break;\n case 'System.DateTime':\n this.OperatorValues = [\n { Name: '=', Type: Comparer.Equal },\n { Name: '!=', Type: Comparer.NotEqual },\n { Name: '>', Type: Comparer.Greater },\n { Name: '>=', Type: Comparer.GreaterEqual },\n { Name: '<', Type: Comparer.Smaller },\n { Name: '<=', Type: Comparer.SmallerEqual }\n ]\n break;\n default:\n this.OperatorValues = [\n { Name: '=', Type: Comparer.Equal },\n { Name: '!=', Type: Comparer.NotEqual }\n ]\n break;\n }\n if (this.Operator == null) {\n this.OperatorValue = Comparer.Equal;\n }\n }\n }\n\n OperatorValues=[];\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\nimport { WorkflowEditOptions } from \"../../../../workflow/workflow.control\";\n\n@Component({\n selector: 'comparison-overlay',\n templateUrl: './comparison.overlay.html',\n styleUrls: ['./comparison.overlay.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ComparsionOverlay implements OnInit, OnDestroy {\n\n _Source;\n @Input()\n get Source() {\n return this._Source;\n }\n set Source(val) {\n this._Source = val;\n this.SourceChange.emit(val);\n }\n @Output() SourceChange = new EventEmitter();\n\n _Modified;\n @Input()\n get Modified() {\n return this._Modified;\n }\n set Modified(val) {\n this._Modified = val;\n this.ModifiedChange.emit(val);\n }\n @Output() ModifiedChange = new EventEmitter();\n\n _Type;\n @Input()\n get Type() {\n return this._Type;\n }\n set Type(val) {\n this._Type = val;\n this.TypeChange.emit(val);\n }\n @Output() TypeChange = new EventEmitter();\n\n _ShowComparison;\n @Input()\n get ShowComparison() {\n return this._ShowComparison;\n }\n set ShowComparison(val) {\n this._ShowComparison = val;\n this.ShowComparisonChange.emit(val);\n }\n @Output() ShowComparisonChange = new EventEmitter();\n\n editorOptions = {\n theme: 'vs-dark',\n readOnly: true\n };\n\n EditOptions = new WorkflowEditOptions();\n\n ngOnDestroy(): void {\n \n }\n ngOnInit(): void {\n\n }\n\n CloseComparison() {\n this.ShowComparison = false;\n }\n}","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'property-control',\n templateUrl: './property.control.html',\n styleUrls: ['./property.control.css']\n})\nexport class PropertyControl {\n\n //#region OnlySetProperty\n OnlySetPropertyValue = false;\n\n @Input()\n get OnlySetProperty() {\n return this.OnlySetPropertyValue;\n }\n set OnlySetProperty(val) {\n if (val) {\n this.OnlySetPropertyValue = val;\n this.OnlySetPropertyChange.emit(this.OnlySetPropertyValue);\n }\n }\n\n @Output() OnlySetPropertyChange = new EventEmitter();\n //#endregion\n\n //#region Horizontal\n HorizontalValue = true;\n\n @Input()\n get Horizontal() {\n return this.HorizontalValue;\n }\n set Horizontal(val) {\n if (val) {\n this.HorizontalValue = val;\n this.HorizontalChange.emit(this.HorizontalValue);\n }\n }\n\n @Output() HorizontalChange = new EventEmitter();\n //#endregion\n\n //#region PropertyData\n PropertyDataValue: IPropertyData;\n\n @Input()\n get PropertyData() {\n return this.PropertyDataValue;\n }\n set PropertyData(val) {\n if (val) {\n this.PropertyDataValue = val;\n this.PropertyDataChange.emit(this.PropertyDataValue);\n }\n }\n\n @Output() PropertyDataChange = new EventEmitter();\n //#endregion\n\n //#region TypeValues\n TypeValuesValue;\n\n @Input()\n get TypeValues() {\n return this.TypeValuesValue;\n }\n set TypeValues(val) {\n if (val) {\n this.TypeValuesValue = val;\n this.TypeValuesChange.emit(this.TypeValuesValue);\n }\n }\n\n @Output() TypeValuesChange = new EventEmitter();\n //#endregion\n //#region ValuesValues\n ValuesValue;\n\n @Input()\n get Values() {\n return this.ValuesValue;\n }\n set Values(val) {\n if (val) {\n this.ValuesValue = val;\n this.ValuesChange.emit(this.ValuesValue);\n }\n }\n\n @Output() ValuesChange = new EventEmitter();\n //#endregion\n @Output() ValueChanged = new EventEmitter();\n\n static GetTypeList() {\n return [{ Caption: '@@Text', Value: 'System.String' }, { Caption: '@@Bool', Value: 'System.Boolean' },\n { Caption: '@@Ganzzahl', Value: 'System.Int32' }, { Caption: '@@Gleitzahl', Value: 'System.Double' },\n { Caption: '@@Datum', Value: 'System.DateTime' }];\n }\n\n constructor() {\n this.TypeValuesValue = PropertyControl.GetTypeList();\n }\n\n compareFn(item1, item2) {\n return item1 && item2 && item1.Name === item2.Name;\n }\n\n onValueChanged() {\n this.ValueChanged.emit(this.PropertyDataValue.Value);\n }\n}\n\nexport interface IPropertyData {\n Name: string;\n Type: string;\n Value: any;\n Options?: any[];\n}\n","import { Component, Input, Output, EventEmitter, ViewChild } from '@angular/core';\nimport { RequestOptions } from '../../../models/rest/requestoptions';\nimport { AdvancedFilterComponent } from '../../controls/advancedfilter/advancedfilter.component';\nimport { AttributeProperty } from '../../../models/ContainerClassObject';\nimport { RequestColumn } from '../../../models/rest/requestcolumn';\nimport { RequestSort } from '../../../models/rest/requestsort';\nimport { BaseDialog } from '../../dialogs/basedialog/base.dialog';\n\n@Component({\n selector: 'request-options-control',\n templateUrl: './request.options.control.html',\n styleUrls: ['./request.options.control.css']\n})\nexport class RequestOptionsControl {\n\n SelectColumns = [];\n FilterColumns = [];\n SortColumns = [];\n FilterInitialized = false;\n IsDialog = false;\n\n //#region ShowSelectColumns\n ShowSelectColumnsValue = true;\n @Input()\n get ShowSelectColumns() {\n return this.ShowSelectColumnsValue;\n }\n set ShowSelectColumns(val) {\n this.ShowSelectColumnsValue = val;\n this.ShowSelectColumnsChange.emit(val);\n }\n @Output() ShowSelectColumnsChange = new EventEmitter();\n //#endregion\n\n //#region ShowFilter\n ShowFilterValue = true;\n @Input()\n get ShowFilter() {\n return this.ShowFilterValue;\n }\n set ShowFilter(val) {\n this.ShowFilterValue = val;\n this.ShowFilterChange.emit(val);\n }\n @Output() ShowFilterChange = new EventEmitter();\n //#endregion\n\n //#region ShowSortColumns\n ShowSortColumnsValue = true;\n @Input()\n get ShowSortColumns() {\n return this.ShowSortColumnsValue;\n }\n set ShowSortColumns(val) {\n this.ShowSortColumnsValue = val;\n this.ShowSortColumnsChange.emit(val);\n }\n @Output() ShowSortColumnsChange = new EventEmitter();\n //#endregion\n\n //#region Columns\n ColumnsValue = [];\n @Input()\n get Columns() {\n return this.ColumnsValue;\n }\n set Columns(val) {\n if (val !== this.ColumnsValue) {\n this.ColumnsValue = val;\n this.checkColumns();\n this.checkData();\n this.ColumnsChange.emit(this.ColumnsValue);\n }\n }\n @Output() ColumnsChange = new EventEmitter();\n //#endregion\n\n //#region RequestOptions\n RequestOptionsValue = RequestOptions.CleanRequestOptions();\n @Input()\n get RequestOptions() {\n return this.RequestOptionsValue;\n }\n set RequestOptions(val) {\n if (val !== this.RequestOptionsValue) {\n this.RequestOptionsValue = val;\n this.checkData();\n this.RequestOptionsChange.emit(this.RequestOptionsValue);\n }\n }\n @Output() RequestOptionsChange = new EventEmitter();\n //#endregion\n\n //#region Variables\n VariablesValue = [];\n @Input()\n get Variables() {\n return this.VariablesValue;\n }\n set Variables(val) {\n this.VariablesValue = val;\n this.VariablesChange.emit(val);\n }\n @Output() VariablesChange = new EventEmitter();\n //#endregion\n\n //#region SystemVariables\n SystemVariablesValue = [];\n\n @Input()\n get SystemVariables() {\n return this.SystemVariablesValue;\n }\n set SystemVariables(val) {\n this.SystemVariablesValue = val;\n this.SystemVariablesChange.emit(this.SystemVariablesValue);\n }\n @Output() SystemVariablesChange = new EventEmitter();\n //#endregion\n\n @ViewChild('advanced') filterComponent: AdvancedFilterComponent;\n\n static ShowDialog(args: RequestOptionsDialogArgs, title: string, handler) {\n BaseDialog.ShowDialog({\n ContentType: RequestOptionsControl,\n Handler: (r) => {\n if (r && typeof handler === 'function') {\n handler(r);\n }\n return true;\n },\n InitArgs: args,\n Title: title\n });\n }\n\n checkColumns() {\n const selectColumns = [];\n const filterColumns = [];\n const sortColumns = [];\n if (Array.isArray(this.ColumnsValue)) {\n this.ColumnsValue.forEach(x => {\n if (x.CanSelect === true) {\n selectColumns.push({\n Name: x.Name,\n Selected: false\n });\n }\n if (x.CanFilter === true) {\n filterColumns.push({\n IsFilterable: true,\n PropertyName: x.Name,\n Caption: x.Name,\n Type: AttributeProperty.GetFilterTypeFromType(x.Type)\n });\n }\n if (x.CanSort === true) {\n sortColumns.push({\n Name: x.Name\n });\n }\n });\n } else {\n this.ColumnsValue = [];\n }\n this.SelectColumns = selectColumns;\n this.FilterColumns = filterColumns;\n this.SortColumns = sortColumns;\n }\n\n checkData() {\n if (this.RequestOptionsValue) {\n if (this.RequestOptionsValue.Columns) {\n this.SelectColumns.forEach(x => {\n x.Selected = this.RequestOptionsValue.Columns.some(y => y.Name === x.Name);\n });\n }\n if (this.RequestOptionsValue.Filters && this.RequestOptionsValue.Filters.length > 0 && this.filterComponent) {\n this.filterComponent.SetFilter(this.RequestOptionsValue.Filters[0]);\n }\n }\n }\n\n afterExpand() {\n if (!this.FilterInitialized) {\n const sel = this.RequestOptionsValue;\n if (sel && sel.Filters && sel.Filters.length > 0 && this.filterComponent) {\n this.filterComponent.SetFilter(sel.Filters[0]);\n this.FilterInitialized = true;\n }\n }\n }\n\n applyFilter() {\n if (this.filterComponent && this.RequestOptionsValue) {\n const filterList = [];\n const filter = this.filterComponent.GetActualFilter();\n if (filter) {\n filterList.push(filter);\n }\n this.RequestOptionsValue.Filters = filterList;\n }\n }\n\n selectAll(event) {\n if (event) {\n const selected = [];\n if (event.checked) {\n this.SelectColumns.forEach(x => {\n x.Selected = true;\n const col = new RequestColumn();\n col.Name = x.Name;\n selected.push(col);\n });\n } else {\n this.SelectColumns.forEach(x => {\n x.Selected = false;\n });\n }\n if (this.RequestOptionsValue) {\n this.RequestOptionsValue.Columns = selected;\n }\n }\n }\n\n onSelectChange(event, name) {\n if (event && this.RequestOptionsValue) {\n if (event.checked) {\n if (this.RequestOptionsValue.Columns) {\n if (!this.RequestOptionsValue.Columns.some(x => x.Name === name)) {\n const col = new RequestColumn();\n col.Name = name;\n this.RequestOptionsValue.Columns.push(col);\n }\n } else {\n const col = new RequestColumn();\n col.Name = name;\n this.RequestOptionsValue.Columns = [col];\n }\n } else if (this.RequestOptionsValue.Columns) {\n for (let i = this.RequestOptionsValue.Columns.length - 1; i >= 0; i--) {\n if (this.RequestOptionsValue.Columns[i].Name === name) {\n this.RequestOptionsValue.Columns.splice(i, 1);\n }\n }\n }\n }\n }\n\n addSort() {\n if (this.RequestOptionsValue) {\n if (this.RequestOptionsValue.Sort) {\n this.RequestOptionsValue.Sort.push(new RequestSort());\n } else {\n this.RequestOptionsValue.Sort = [new RequestSort()];\n }\n }\n }\n\n removeSort(i) {\n if (this.RequestOptionsValue && this.RequestOptionsValue.Sort) {\n this.RequestOptionsValue.Sort.splice(i, 1);\n }\n }\n //#region Dialog\n Initialize(args) {\n this.IsDialog = true;\n if (args) {\n if (args.ShowSelectColumns === false) {\n this.ShowSelectColumns = false;\n }\n if (args.ShowFilter === false) {\n this.ShowFilter = false;\n }\n if (args.ShowSortColumns === false) {\n this.ShowSortColumns = false;\n }\n if (args.Columns) {\n this.Columns = args.Columns;\n }\n if (args.RequestOptions) {\n this.RequestOptions = JSON.parse(JSON.stringify(args.RequestOptions));\n }\n if (Array.isArray(args.Variables)) {\n this.VariablesValue = args.Variables;\n }\n if (Array.isArray(args.SystemVariables)) {\n this.SystemVariablesValue = args.SystemVariables;\n }\n }\n }\n\n GetDialogResult() {\n this.applyFilter();\n return this.RequestOptions;\n }\n //#endregion\n}\n\nexport class RequestOptionsDialogArgs {\n ShowSelectColumns = true;\n ShowFilter = true;\n ShowSortColumns = true;\n Columns: RequestOptionsColumn[] = [];\n RequestOptions = new RequestOptions();\n Variables;\n SystemVariables;\n}\n\nexport class RequestOptionsColumn {\n Name: string;\n Type: string;\n CanSelect = true;\n CanFilter = true;\n CanSort = true;\n}\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ScriptLibraryService } from '../../../services/scriptlibrary.service';\nimport { Registry } from '../../../script/modules/registry.script';\nimport { Class } from '../../../script/script.model';\ndeclare var monaco: any;\n\n@Component({\n selector: 'evi-scripteditor',\n templateUrl: './scripteditor.control.html',\n styleUrls: ['./scripteditor.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ScriptEditor implements AfterViewInit {\n editorOptions = {\n automaticLayout: true,\n language: 'typescript'\n };\n editor;\n Service: ScriptLibraryService;\n Initialized=false;\n //#region Script\n ScriptValue\n ConnectorIdValue;\n\n @Input()\n get ConnectorId() {\n return this.ConnectorIdValue;\n }\n set ConnectorId(val) {\n this.ConnectorIdValue = val;\n }\n\n @Input()\n get Script() {\n return this.ScriptValue;\n }\n set Script(val) {\n if (!val) {\n this.ScriptValue = 'import { WorkflowStatus, Global } from \"System\";\\r\\nexport class Main {\\r\\n constructor() {\\r\\n }\\r\\n run(): void {\\r\\n }\\r\\n stop(): void {\\r\\n }\\r\\n}';\n } else {\n this.ScriptValue = val;\n }\n this.ScriptChange.emit(this.ScriptValue);\n this.cdRef.detectChanges();\n }\n\n @Output() ScriptChange = new EventEmitter();\n //#endregion\n\n //#region IsClientScript\n IsClientScriptValue: boolean = false;\n @Input()\n get IsClientScript() {\n return this.IsClientScriptValue;\n }\n set IsClientScript(val) {\n this.IsClientScriptValue = val;\n this.IsClientScriptChange.emit(this.IsClientScriptValue);\n }\n\n @Output() IsClientScriptChange = new EventEmitter();\n //#endregion\n @Output() EditorInitialized = new EventEmitter();\n constructor(private service: ScriptLibraryService, private cdRef: ChangeDetectorRef) {\n this.Service = service;\n }\n ngAfterViewInit(): void {\n this.SizeChanged();\n }\n\n async init(editor) {\n this.editor = editor;\n\n monaco.languages.typescript.typescriptDefaults.setExtraLibs(\"\");\n\n //#region compiler options\n monaco.languages.typescript.typescriptDefaults.setCompilerOptions({\n target: monaco.languages.typescript.ScriptTarget.ES2016,\n allowNonTsExtensions: true,\n moduleResolution: monaco.languages.typescript.ModuleResolutionKind.NodeJs,\n module: monaco.languages.typescript.ModuleKind.CommonJS,\n noEmit: true,\n typeRoots: [\"node_modules/@types\"]\n });\n monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions({\n noSemanticValidation: false,\n noSyntaxValidation: false\n });\n //#endregion\n //#region Load Script Registry\n if (this.IsClientScript) {\n Registry.Modules.forEach((module, key) => {\n var mod = \"\";\n mod += \"declare module '\" + key + \"' {\";\n module.Classes.forEach((cls, key) => {\n mod += this.CreateLibrarySchema(cls, key);\n });\n mod += \"}\";\n\n let libUri = 'node_modules/@types/' + key + '/index.d.ts';\n monaco.languages.typescript.typescriptDefaults.addExtraLib(mod, libUri);\n });\n } \n this.Service.GetScriptImports(this.ConnectorIdValue, this.IsClientScript).subscribe((result) => {\n if (result) {\n let files = Object.keys(result);\n for (let i = 0; i < files.length; i++) {\n let file = files[i];\n let libSource = result[file];\n let libUri = 'node_modules/@types/' + file + '/index.d.ts';\n monaco.languages.typescript.typescriptDefaults.addExtraLib(libSource, libUri);\n }\n }\n });\n \n //#endregion\n //#region Highlighting\n //const allLangs = await monaco.languages.getLanguages();\n //let lang: any = allLangs.find(({ id }) => id === 'typescript');\n //let ts = await lang.loader();\n //console.log(ts);\n \n //lang = allLangs.find(({ id }) => id === 'csharp');\n //let csharp = await lang.loader();\n //console.log(csharp);\n //ts.language = csharp.language;\n //for (let key in customTokenizer) {\n // const value = customTokenizer[key];\n // if (key === 'tokenizer') {\n // for (let category in value) {\n // const tokenDefs = value[category];\n // if (!jsLang.tokenizer.hasOwnProperty(category)) {\n // jsLang.tokenizer[category] = [];\n // }\n // if (Array.isArray(tokenDefs)) {\n // jsLang.tokenizer[category].unshift.apply(jsLang.tokenizer[category], tokenDefs)\n // }\n // }\n // } else if (Array.isArray(value)) {\n // if (!jsLang.hasOwnProperty(key)) {\n // jsLang[key] = [];\n // }\n // jsLang[key].unshift.apply(jsLang[key], value)\n // }\n //}\n //#endregion\n this.SizeChanged();\n this.Initialized = true;\n let that = this;\n this.editor.onDidChangeModelContent(function (e) {\n that.TextChanged.emit(e);\n });\n this.EditorInitialized.emit(this.editor);\n this.cdRef.detectChanges();\n }\n\n SizeChanged() {\n setTimeout(() => {\n if (this.editor) {\n this.editor.layout();\n }\n }, 100);\n }\n onResized(event) {\n this.SizeChanged();\n }\n\n GetEditorStyle() {\n return {\n 'min-height': '200px',\n 'min-width': '400px',\n 'height': this.Initialized?'100%':'200px'\n }\n }\n @Output() TextChanged = new EventEmitter();\n OnItemChanged(event) {\n this.TextChanged.emit(event);\n }\n\n private CreateLibrarySchema(cls: Class, name:string) {\n var retVal = \"\";\n\n retVal += \"export declare class \" + name + \"{\";\n\n cls.Properties.forEach((item, key) => {\n var line = \"\";\n var value = item;\n if (value.IsPublic) {\n line += \"public \";\n }\n else {\n line += \"private \";\n }\n if (value.IsStatic) {\n line += \"static \";\n }\n if (value.IsReadOnly) {\n line += \"readonly \";\n }\n line += value.Name;\n if (value.Class) {\n line += \":\";\n line += value.Class;\n }\n line += \";\";\n retVal += line;\n });\n cls.Functions.forEach((item, key) => {\n var line = \"\"\n var value = item;\n if (!value.IsInlineFunction) {\n if (value.IsPublic) {\n line += \"public \";\n }\n else {\n line += \"private \";\n }\n if (value.IsStatic) {\n line += \"static \";\n }\n line += value.Name;\n line += \"(\";\n for (var i = 0; i < value.Parameters.length; i++) {\n var parameter = value.Parameters[i];\n line += parameter.Name;\n if (parameter.IsOptional) {\n line += \"?\";\n }\n line += \":\";\n line += parameter.Class;\n if (i + 1 < value.Parameters.length) {\n line += \", \";\n }\n }\n line += \")\";\n if (value.ReturnClass) {\n line += \":\";\n line += value.ReturnClass;\n }\n line += \";\";\n retVal+=line;\n }\n });\n\n retVal += \"}\";\n return retVal;\n }\n}\n","import { ComponentPortal } from '@angular/cdk/portal';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { BehaviorSubject } from 'rxjs';\nimport { BorderThemeControl } from '../../appbuilder/controls/borderselection/borderselection.theme.control';\nimport { ColorpickerThemeControl } from '../../appbuilder/controls/colorpicker/colorpicker.theme.control';\nimport { ComboboxThemeControl } from '../../appbuilder/controls/combobox/combobox.theme.control';\nimport { GradientpickerThemeControl } from '../../appbuilder/controls/gradientpicker/gradientpicker.theme.control';\nimport { HeaderThemeControl } from '../../appbuilder/controls/header/header.theme.control';\nimport { InputswitchThemeControl } from '../../appbuilder/controls/inputswitch/inputswitch.theme.control';\nimport { TogglebuttonThemeControl } from '../../appbuilder/controls/togglebutton/togglebutton.theme.control';\nimport { TogglebuttongroupThemeControl } from '../../appbuilder/controls/togglebuttongroup/togglebuttongroup.theme.control';\nimport { GenericMenuTab } from '../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { ContentPanel } from '../../appbuilder/panels/content.panel';\nimport { MultiNode } from '../../models/datadescription/multi/multiresult.model';\nimport { PropertyGroupDisplay } from '../../models/enums/propertygroupdisplay.enum';\nimport { MenuTabLabelPosition } from '../../models/menutab/menutab.property.model';\nimport { Border } from '../../models/style/border.model';\nimport { Font } from '../../models/style/font.model';\nimport { Gradient } from '../../models/style/gradient.model';\nimport { CellStyle } from '../../models/styling/cell.style';\nimport { NumberFormat } from '../../models/styling/number.format.model';\nimport { StyleMerger } from '../../models/styling/styleMerger';\nimport { TaskHelper } from '../../models/tasks/task.helper';\nimport { PROPERTIES } from '../../services/dynamic.component.service';\nimport { MediaService } from '../../services/media.service';\n\n@Component({\n selector: 'style-control',\n templateUrl: './style.control.html'\n})\nexport class StyleControl implements OnInit {\n StylePreview = {};\n StyleText = TaskHelper.GetFormatedCellValue(new MultiNode({ InternalValue: 1234.56 }), new NumberFormat());\n Gadgets;\n Content;\n\n ShowGadgetValue;\n @Input()\n get ShowGadget() {\n return this.ShowGadgetValue;\n }\n set ShowGadget(val) {\n this.ShowGadgetValue = val;\n this.ShowGadgetChange.emit(this.ShowGadgetValue);\n }\n @Output() ShowGadgetChange = new EventEmitter();\n\n StyleValue;\n @Input()\n get Style() {\n return this.StyleValue;\n }\n set Style(val) {\n this.StyleValue = val;\n this.StyleChange.emit(this.StyleValue);\n this.updatePreview();\n if (val && val.NumberFormat) {\n this.StyleText = TaskHelper.GetFormatedCellValue(new MultiNode({ InternalValue: 1234.56 }), val.NumberFormat);\n } else {\n this.StyleText = TaskHelper.GetFormatedCellValue(new MultiNode({ InternalValue: 1234.56 }), new NumberFormat());\n }\n StylePanel.SetSelectedItem(val);\n }\n @Output() StyleChange = new EventEmitter();\n\n constructor() {\n const gadgets = MediaService.GadgetList.getValue();\n if (gadgets) {\n this.Gadgets = gadgets;\n } else {\n this.Gadgets = [];\n }\n }\n ngOnInit(): void {\n const propGroup = {\n SID: 'cbb52f91-f4ac-4e16-bdb6-9d78cb492543',\n ID: 'taskStylePanel',\n Caption: '@@TaskStylePanel',\n Index: 0,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Sections: [{\n ID: 'text',\n Display: PropertyGroupDisplay.Grid,\n Columns: ['120px', 'calc(50% - 120px)', 'calc(50%)'],\n Rows: ['auto', 'auto', 'auto', 'auto', 'auto', 'auto']\n }, {\n ID: 'style',\n Display: PropertyGroupDisplay.Grid,\n Columns: ['33%', '33%', '33%'],\n Rows: ['auto', 'auto', 'auto', 'auto', 'auto', 'auto']\n }]\n };\n this.Content = {\n SID: propGroup.SID,\n ID: propGroup.ID,\n Caption: propGroup.Caption,\n Visible: true,\n PropertyGroup: propGroup,\n Index: propGroup.Index,\n Content: new ComponentPortal(propGroup.Content)\n };\n }\n\n updatePreview() {\n if (this.StyleValue) {\n const style = plainToClass(CellStyle, this.StyleValue);\n this.StylePreview = StyleMerger.GetStyleObject(style);\n } else {\n this.StylePreview = {};\n }\n this.StylePreview['height'] = '40px';\n }\n\n onNFChange(nf) {\n if (this.StyleValue) {\n if (this.StyleValue.NumberFormat !== nf) {\n this.StyleValue.NumberFormat = nf;\n }\n this.StyleText = TaskHelper.GetFormatedCellValue(new MultiNode({ InternalValue: 1234.56 }), this.StyleValue.NumberFormat);\n }\n }\n}\n\nexport class StylePanel {\n private static Font: BehaviorSubject = new BehaviorSubject(null);\n\n static SetSelectedItem(item) {\n if (item) {\n if (!item.Font) {\n item.Font = new Font();\n }\n StylePanel.Font.next(item.Font);\n } else {\n StylePanel.Font.next(null);\n }\n }\n\n static InitPanel() {\n let row = 1;\n //#region Text\n PROPERTIES.push({\n ID: null,\n Section: \"text\",\n Parent: \"taskStylePanel\",\n Content: new ComponentPortal(HeaderThemeControl),\n Column: 1,\n ColSpan: 2,\n Row: row++,\n InitArgs: {\n Text: '@@Text'\n }\n });\n //#region FetchFonts\n let UseGrouping = false;\n const cssfontList = MediaService.CSSFontList.getValue();\n if (cssfontList && cssfontList.length > 0) {\n UseGrouping = true;\n } else {\n const customFontList = MediaService.CustomFontList.getValue();\n UseGrouping = customFontList && customFontList.length > 0;\n }\n\n //#endregion\n PROPERTIES.push({\n ID: \"FontSize\",\n Section: \"text\",\n Parent: \"taskStylePanel\",\n Content: new ComponentPortal(ComboboxThemeControl),\n DataSource: StylePanel.Font,\n Column: 1,\n Row: row,\n InitArgs: {\n Multiple: false,\n ItemsSource: [8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72],\n Placeholder: \"@@Font size\"\n }\n });\n PROPERTIES.push({\n ID: \"FontFamilyName\",\n Section: \"text\",\n Parent: \"taskStylePanel\",\n Content: new ComponentPortal(ComboboxThemeControl),\n DataSource: StylePanel.Font,\n Column: 2,\n ColSpan: 2,\n Row: row++,\n InitArgs: {\n Multiple: false,\n UseGrouping: UseGrouping,\n DisplayMemberPath: 'Value',\n ValueMemberPath: 'Value',\n ItemsSourceSub: ContentPanel.Fonts,\n OptionStyle: 'Style',\n Placeholder: \"@@Font\"\n }\n });\n //#region Alignment\n PROPERTIES.push({\n ID: null,\n Section: \"text\",\n Parent: \"taskStylePanel\",\n Content: new ComponentPortal(HeaderThemeControl),\n Column: 1,\n ColSpan: 2,\n Row: row++,\n InitArgs: {\n Text: '@@PositionOfText'\n }\n })\n PROPERTIES.push({\n ID: \"HorizontalTextAlignment\",\n Section: \"text\",\n Parent: \"taskStylePanel\",\n Content: new ComponentPortal(TogglebuttongroupThemeControl),\n Column: 1,\n ColSpan: 2,\n Row: row,\n InitArgs: {\n Multiple: false,\n Buttons: [{\n ButtonIcon: \"align_left_text\",\n Value: 0,\n Tooltip: \"@@LeftJustified\"\n }, {\n ButtonIcon: \"align_center_text\",\n Value: 1,\n Tooltip: \"@@Centered\"\n }, {\n ButtonIcon: \"align_right_text\",\n Value: 2,\n Tooltip: \"@@RightJustified\"\n }]\n }\n });\n PROPERTIES.push({\n ID: \"VerticalTextAlignment\",\n Section: \"text\",\n Parent: \"taskStylePanel\",\n Content: new ComponentPortal(TogglebuttongroupThemeControl),\n Column: 3,\n Row: row++,\n InitArgs: {\n Multiple: false,\n Buttons: [{\n ButtonIcon: \"vertical_align_top_text\",\n Value: 0,\n Tooltip: \"@@Top\"\n }, {\n ButtonIcon: \"vertical_align_center_text\",\n Value: 1,\n Tooltip: \"@@Centered\"\n }, {\n ButtonIcon: \"vertical_align_bottom_text\",\n Value: 2,\n Tooltip: \"@@Bottom\"\n }]\n }\n });\n PROPERTIES.push({\n ID: null,\n Section: \"text\",\n Parent: \"taskStylePanel\",\n Content: new ComponentPortal(HeaderThemeControl),\n Column: 1,\n ColSpan: 3,\n Row: row++,\n InitArgs: {\n Text: '@@PositionOfControl'\n }\n })\n PROPERTIES.push({\n ID: \"HorizontalContentAlignment\",\n Section: \"text\",\n Parent: \"taskStylePanel\",\n Content: new ComponentPortal(TogglebuttongroupThemeControl),\n Column: 1,\n ColSpan: 2,\n Row: row,\n InitArgs: {\n Multiple: false,\n Buttons: [{\n ButtonIcon: \"align_left_content\",\n Value: 0,\n Tooltip: \"@@LeftJustified\"\n }, {\n ButtonIcon: \"align_center_content\",\n Value: 1,\n Tooltip: \"@@Centered\"\n }, {\n ButtonIcon: \"align_right_content\",\n Value: 2,\n Tooltip: \"@@RightJustified\"\n }],\n Placeholder: \"@@Horizontal content align\"\n }\n });\n PROPERTIES.push({\n ID: \"VerticalContentAlignment\",\n Section: \"text\",\n Parent: \"taskStylePanel\",\n Content: new ComponentPortal(TogglebuttongroupThemeControl),\n Column: 3,\n Row: row++,\n InitArgs: {\n Multiple: false,\n Buttons: [{\n ButtonIcon: \"vertical_align_top_content\",\n Value: 0,\n Tooltip: \"@@Top\"\n }, {\n ButtonIcon: \"vertical_align_center_content\",\n Value: 1,\n Tooltip: \"@@Centered\"\n }, {\n ButtonIcon: \"vertical_align_bottom_content\",\n Value: 2,\n Tooltip: \"@@Bottom\"\n }],\n Placeholder: \"@@Vertical content align\"\n }\n });\n //#endregion\n //#endregion\n\n //#region Style\n row = 1;\n PROPERTIES.push({\n ID: \"Bold\",\n Parent: \"taskStylePanel\",\n Section: 'style',\n Content: new ComponentPortal(TogglebuttonThemeControl),\n DataSource: StylePanel.Font,\n Label: \"@@Bold\",\n LabelPosition: MenuTabLabelPosition.Bottom,\n Column: 1,\n Row: row,\n InitArgs: {\n Icon: 'bold'\n }\n });\n PROPERTIES.push({\n ID: \"Italic\",\n Parent: \"taskStylePanel\",\n Section: 'style',\n Content: new ComponentPortal(TogglebuttonThemeControl),\n DataSource: StylePanel.Font,\n Label: \"@@Italic\",\n LabelPosition: MenuTabLabelPosition.Bottom,\n Column: 2,\n Row: row,\n InitArgs: {\n Icon: 'italic'\n }\n });\n PROPERTIES.push({\n ID: \"Underline\",\n Parent: \"taskStylePanel\",\n Section: 'style',\n Content: new ComponentPortal(TogglebuttonThemeControl),\n DataSource: StylePanel.Font,\n Label: \"@@Underline\",\n LabelPosition: MenuTabLabelPosition.Bottom,\n Column: 3,\n Row: row++,\n InitArgs: {\n Icon: 'underline'\n }\n });\n PROPERTIES.push({\n ID: \"FontColor\",\n Parent: \"taskStylePanel\",\n Section: 'style',\n Content: new ComponentPortal(ColorpickerThemeControl),\n DataSource: StylePanel.Font,\n Label: \"@@FontColor\",\n LabelPosition: MenuTabLabelPosition.Right,\n Column: 1,\n ColSpan: 3,\n Row: row++,\n InitArgs: {\n Icon: 'font_color'\n }\n });\n PROPERTIES.push({\n ID: \"BackgroundColor\",\n Parent: \"taskStylePanel\",\n Section: 'style',\n Content: new ComponentPortal(GradientpickerThemeControl),\n Type: Gradient,\n Label: \"@@BackgroundColor\",\n LabelPosition: MenuTabLabelPosition.Right,\n Column: 1,\n ColSpan: 3,\n Row: row++,\n InitArgs: {\n Icon: 'background_color'\n }\n });\n //#region Border\n PROPERTIES.push({\n ID: \"UseBorder\",\n Parent: \"taskStylePanel\",\n Section: 'border',\n Content: new ComponentPortal(InputswitchThemeControl),\n Label: \"@@UseBorder\",\n LabelPosition: MenuTabLabelPosition.Right,\n Icon: 'use_border',\n Column: 1,\n ColSpan: 3,\n Row: row++,\n InitArgs: {\n Action: (item) => {\n if (item && !item.Event) {\n delete item.SelectedItem.Border;\n }\n }\n }\n });\n PROPERTIES.push({\n ID: \"Border\",\n Parent: \"taskStylePanel\",\n Section: 'border',\n Content: new ComponentPortal(BorderThemeControl),\n Type: Border,\n Column: 1,\n ColSpan: 3,\n Row: row++,\n CheckVisibility: (item) => {\n let borderSet = (item.Border && item.Border.toJSON && item.Border.toJSON() != null);\n if (item.UseBorder == null) {\n item.UseBorder = borderSet;\n }\n return item.UseBorder || borderSet;\n }\n });\n //#endregion\n //#endregion\n }\n}\n","import { Output, Input, EventEmitter, Component } from '@angular/core';\n\n@Component({\n selector: 'textblock-document-header',\n templateUrl: './textblock.document.header.html',\n styleUrls: ['./textblock.document.header.css']\n})\nexport class TextBlockDocumentHeader {\n HeaderValue;\n @Input()\n get Header() {\n return this.HeaderValue;\n }\n set Header(val) {\n this.HeaderValue = val;\n this.HeaderValueChange.emit(val);\n }\n\n @Output() HeaderValueChange = new EventEmitter();\n\n SubTextValue;\n @Input()\n get SubText() {\n return this.SubTextValue;\n }\n set SubText(val) {\n this.SubTextValue = val;\n this.SubTextValueChange.emit(val);\n }\n\n @Output() SubTextValueChange = new EventEmitter();\n}\n","import { OnInit, Component, Input, Output, EventEmitter } from \"@angular/core\";\n\n@Component({\n selector: 'timespan-control',\n templateUrl: './timespan.control.html',\n styleUrls: ['./timespan.control.css']\n})\nexport class TimeSpanControl implements OnInit {\n\n MilliSeconds = 0;\n Seconds = 0;\n Minutes = 0;\n Hours = 0;\n Days = 0;\n Internal = false;\n\n private static MilliDivisor = 1000;\n private static SecDivisor = TimeSpanControl.MilliDivisor * 60;\n private static MinDivisor = TimeSpanControl.SecDivisor * 60;\n private static HourDivisor = TimeSpanControl.MinDivisor * 24;\n\n //#region TimeSpan\n TimeSpanValue;\n\n @Input()\n get TimeSpan() {\n return this.TimeSpanValue;\n }\n set TimeSpan(val) {\n if (val != this.TimeSpanValue) {\n this.TimeSpanValue = val;\n this.updateValues();\n this.TimeSpanChange.emit(this.TimeSpanValue);\n }\n }\n\n @Output() TimeSpanChange = new EventEmitter();\n //#endregion\n\n //#region ShowMilliseconds\n ShowMillisecondsValue = false;\n\n @Input()\n get ShowMilliseconds() {\n return this.ShowMillisecondsValue;\n }\n set ShowMilliseconds(val) {\n this.ShowMillisecondsValue = val;\n }\n //#endregion\n\n //#region Caption\n CaptionValue;\n\n @Input()\n get Caption() {\n return this.CaptionValue;\n }\n set Caption(val) {\n this.CaptionValue = val;\n }\n //#endregion\n\n //#region Horizontal\n HorizontalValue = true;\n\n @Input()\n get Horizontal() {\n return this.HorizontalValue;\n }\n set Horizontal(val) {\n this.HorizontalValue = val;\n }\n //#endregion\n\n //#region Editable\n EditableValue;\n @Input()\n get _Editable() {\n return this.EditableValue;\n }\n set _Editable(val) {\n this.EditableValue = val;\n }\n //#endregion\n\n ngOnInit(): void {\n this.updateValues();\n }\n\n updateValues() {\n if (!this.Internal && typeof this.TimeSpanValue === 'number') {\n this.Days = Math.floor(this.TimeSpanValue / TimeSpanControl.HourDivisor);\n let remaining = this.TimeSpanValue % TimeSpanControl.HourDivisor;\n this.Hours = Math.floor(remaining / TimeSpanControl.MinDivisor);\n remaining = remaining % TimeSpanControl.MinDivisor;\n this.Minutes = Math.floor(remaining / TimeSpanControl.SecDivisor);\n remaining = remaining % TimeSpanControl.SecDivisor;\n this.Seconds = Math.floor(remaining / TimeSpanControl.MilliDivisor);\n this.MilliSeconds = remaining % TimeSpanControl.MilliDivisor;\n }\n if (!this.TimeSpanValue || typeof this.TimeSpanValue !== 'number') {\n this.Days = 0;\n this.Hours = 0;\n this.Minutes = 0;\n this.Seconds = 0;\n this.MilliSeconds = 0;\n }\n }\n\n @Output() TimeSpanHasChanged = new EventEmitter();\n onChange() {\n this.Internal = true;\n this.TimeSpan = this.Days * TimeSpanControl.HourDivisor + this.Hours * TimeSpanControl.MinDivisor +\n this.Minutes * TimeSpanControl.SecDivisor + this.Seconds * TimeSpanControl.MilliDivisor + this.MilliSeconds;\n this.TimeSpanHasChanged.emit();\n this.Internal = false;\n }\n}","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CacheService } from '../../cache/cache.service';\nimport { TranslateHelper } from '../../helpers/injector.helper';\nimport { VariableHelper } from '../../helpers/variable.helper';\n\nexport class VariableInfo {\n IsGlobal = false;\n ElemName: string;\n VariableName: string;\n}\n\n@Component({\n selector: 'variable-chooser-component',\n templateUrl: './variable.chooser.html'\n})\nexport class VariableChooser implements OnInit {\n GlobalList = [];\n LocalList = [];\n\n //#region Layout\n LayoutValue;\n @Input()\n get Layout() {\n return this.LayoutValue;\n }\n set Layout(val) {\n this.LayoutValue = val;\n this.LayoutChange.emit(this.LayoutValue);\n }\n @Output() LayoutChange = new EventEmitter();\n //#endregion\n\n //#region SelectedVariable\n SelectedVariablesValue: VariableInfo[] = [];\n @Input()\n get SelectedVariables(): VariableInfo[] {\n return this.SelectedVariablesValue;\n }\n set SelectedVariables(val: VariableInfo[]) {\n this.SelectedVariablesValue = val;\n this.SelectedVariablesChange.emit(this.SelectedVariablesValue);\n }\n @Output() SelectedVariablesChange = new EventEmitter();\n //#endregion\n\n //#region Placeholder\n PlaceholderValue = '@@Variablen';\n @Input()\n get Placeholder() {\n return this.PlaceholderValue;\n }\n set Placeholder(val) {\n this.PlaceholderValue = val;\n this.PlaceholderChange.emit(this.PlaceholderValue);\n }\n @Output() PlaceholderChange = new EventEmitter();\n //#endregion\n\n //#region VariableType\n VariableTypeValue;\n @Input()\n get VariableType() {\n return this.VariableTypeValue;\n }\n set VariableType(val) {\n this.VariableTypeValue = val;\n this.VariableTypeChange.emit(this.VariableTypeValue);\n }\n @Output() VariableTypeChange = new EventEmitter();\n //#endregion\n\n @Output() VariablesChanged = new EventEmitter();\n\n private static GetVariables(element, varType, selected) {\n const retVal = [];\n if (element.Name && element.Variables) {\n let variables = element.Variables;\n if (varType) {\n variables = variables.filter(x => x.Type === varType);\n }\n variables.forEach(v => {\n const info = {\n Caption: v.Name,\n Data: new VariableInfo(),\n IsSelected: false\n };\n info.Data.ElemName = element.Name;\n info.Data.VariableName = v.Name;\n const dt = VariableHelper.GetTypeCaption(v.Type);\n if (dt) {\n info.Caption = v.Name + ' (' + TranslateHelper.TranslatorInstance.instant(dt) + ', ' + element.Name + ')';\n } else {\n info.Caption = v.Name + ' (' + element.Name + ')';\n }\n selected.some((x, i) => {\n if (!x.Value.IsGlobal && x.Value.ElemName === element.Name && x.Value.VariableName === v.Name) {\n info.IsSelected = true;\n selected.splice(i, 1);\n return true;\n }\n return false;\n });\n retVal.push(info);\n });\n }\n if (element.Elements) {\n element.Elements.forEach(x => {\n retVal.push(...VariableChooser.GetVariables(x, varType, selected));\n });\n }\n return retVal;\n }\n\n constructor(private cdRef: ChangeDetectorRef) {\n }\n\n ngOnInit(): void {\n CacheService.ReadGlobalVariables().then((vars) => {\n const selected = [];\n if (this.SelectedVariablesValue) {\n this.SelectedVariablesValue.forEach((x, i) => {\n selected.push({\n Value: x,\n Index: i\n });\n });\n }\n if (vars) {\n const globalList = [];\n if (this.VariableTypeValue) {\n vars = vars.filter(x => x.Type === this.VariableTypeValue);\n }\n vars.forEach(v => {\n const info = {\n Caption: v.Name,\n Data: new VariableInfo(),\n IsSelected: false\n };\n info.Data.IsGlobal = true;\n info.Data.VariableName = v.Name;\n const dt = VariableHelper.GetTypeCaption(v.Type);\n if (dt) {\n info.Caption += ' (' + TranslateHelper.TranslatorInstance.instant(dt) + ')';\n }\n selected.some((x, i) => {\n if (x.Value.IsGlobal && x.Value.VariableName === v.Name) {\n info.IsSelected = true;\n selected.splice(i, 1);\n return true;\n }\n return false;\n });\n globalList.push(info);\n });\n this.GlobalList = globalList;\n }\n if (this.LayoutValue) {\n this.LocalList = VariableChooser.GetVariables(this.LayoutValue, this.VariableTypeValue, selected);\n }\n if (selected.length > 0) {\n for (let i = selected.length - 1; i >= 0; i--) {\n this.SelectedVariablesValue.splice(selected[i].Index, 1);\n }\n this.VariablesChanged.emit();\n }\n this.cdRef.detectChanges();\n });\n }\n\n checkItem(item) {\n if (item) {\n if (item.IsSelected) {\n if (this.SelectedVariablesValue) {\n this.SelectedVariablesValue.push(item.Data);\n } else {\n this.SelectedVariables = [item.Data];\n }\n this.VariablesChanged.emit();\n } else if (this.SelectedVariablesValue) {\n if (item.Data.IsGlobal) {\n if (this.SelectedVariablesValue.some((x, i) => {\n if (x.IsGlobal && x.VariableName === item.Data.VariableName) {\n this.SelectedVariablesValue.splice(i, 1);\n return true;\n }\n return false;\n })) {\n this.VariablesChanged.emit();\n }\n } else {\n if (this.SelectedVariablesValue.some((x, i) => {\n if (!x.IsGlobal && x.ElemName == item.Data.ElemName && x.VariableName === item.Data.VariableName) {\n this.SelectedVariablesValue.splice(i, 1);\n return true;\n }\n return false;\n })) {\n this.VariablesChanged.emit();\n }\n }\n }\n }\n }\n}\n","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Output } from '@angular/core';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { ListBoxThemeControl } from '../../../appbuilder/controls/listbox/listbox.theme.control';\nimport { TranslationTextBoxThemeControl } from '../../../appbuilder/controls/translation/translation.textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { ContentType } from '../../../models/enums/contenttype.enum';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ElementProperty } from '../../../models/layoutbase.model';\nimport { LayoutElement } from '../../../models/layoutelement.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-accordion',\n templateUrl: './accordion.control.html',\n styleUrls: ['./accordion.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AccordionControl extends IBaseComponent {\n static Type: any = 'accordion';\n static Default = JSON.parse(JSON.stringify(defaultProperties));\n\n //#region ExpandedTab\n ExpandedTabValue;\n get ExpandedTab() {\n return this.ExpandedTabValue;\n }\n set ExpandedTab(val) {\n if (typeof val === 'number') {\n if (this.LayoutElement.Multiple) {\n if (this.ExpandedTabValue) {\n if (this.ExpandedTabValue.indexOf(val) > -1) {\n this.ExpandedTabValue.splice(this.ExpandedTabValue.indexOf(val), 1);\n } else {\n this.ExpandedTabValue.push(val);\n }\n }\n } else {\n this.ExpandedTabValue = [val];\n }\n }\n }\n //#endregion\n\n @Output() Click = new EventEmitter();\n\n constructor(cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.ExpandedTabValue = [];\n }\n ControlInitialized() {\n this.PropertyList.push(new ElementProperty('ExpandedTab', 'int', '@@ExpandedTab'));\n if (this.LayoutElement && this.LayoutElement.Elements) {\n for (let i = 0; i < this.LayoutElement.Elements.length; i++) {\n const panel = this.LayoutElement.Elements[i];\n if (panel.Open) {\n this.ExpandedTab = i;\n }\n if (!panel.Caption) {\n panel.Caption = panel.Name;\n }\n }\n }\n }\n\n onClick(ev) {\n this.triggerEvent('click');\n this.Click.emit(ev);\n }\n}\nexport class AccordionPanel extends BasePanel {\n static override SIDS = ['5db13c50-d111-4ef0-af78-8a342d490c50']\n static override ElementType = 'accordion';\n static InitPanel() {\n this.InitSelectedItem();\n this.InitSelectedLayout();\n PROPERTYGROUPS.push({\n SID:'5db13c50-d111-4ef0-af78-8a342d490c50',\n ID: 'accordion',\n Caption: '@@Accordion',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'accordion';\n }\n })\n PROPERTIES.push({\n ID: \"Multiple\",\n Parent: \"accordion\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Multiple\"\n }\n });\n PROPERTIES.push({\n ID: \"Elements\",\n Parent: \"accordion\",\n Content: new ComponentPortal(ListBoxThemeControl),\n Properties: [\n {\n ID: \"Caption\",\n Parent: \"accordion\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Caption\",\n InitArgs: {\n DataType: 'string'\n }\n },\n {\n ID: \"ContentType\",\n Parent: \"accordion\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@ContentType\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: ContentType,\n Action: (ev) => {\n ev.SelectedItem.ElementType = ContentType[ev.SelectedItem.ContentType].toLowerCase();\n }\n }\n },\n {\n ID: \"Open\",\n Parent: \"accordion\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Open\"\n }\n }\n ],\n InitArgs: {\n DisplayMemberPath:'Caption',\n GenerateNewItem: () => {\n const elem = new LayoutElement();\n elem.ContentType = ContentType.Grid;\n elem.ElementType = 'grid';\n elem.Name = LayoutHelper.GetNextElementNameByPrefix(AccordionPanel.SelectedLayout, AccordionPanel.SelectedItem.Name + '_tab');\n return elem;\n }\n }\n });\n }\n}","import { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatChipInputEvent } from '@angular/material/chips';\nimport { QueryBuilderConfig } from 'angular2-query-builder';\nimport { Comparer } from '../../../models/enums/comparer.enum';\nimport { Concat } from '../../../models/enums/contact.enum';\nimport { RequestFilter } from '../../../models/rest/requestfilter';\n\n@Component({\n selector: 'advancedfilter',\n templateUrl: './advancedfilter.component.html',\n styleUrls: ['advancedfilter.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AdvancedFilterComponent {\n\n AdditionalInfos: Array<{ key: string, value: any }> = new Array<{ key: string, value: any }>();\n\n //#region Columns\n ColumnsValue;\n\n @Input()\n get Columns() {\n return this.ColumnsValue;\n }\n set Columns(val) {\n this.ColumnsValue = val;\n const actConfig: QueryBuilderConfig = {\n fields: { }\n };\n if (val) {\n actConfig.getOperators = this.getOperatorsForField.bind(this);\n actConfig.getInputType = this.getInputType.bind(this);\n val.forEach((column) => {\n if (column.IsFilterable) {\n actConfig.fields[column.PropertyName] = {\n name: column.Caption,\n type: column.Type.toLowerCase()\n };\n this.AdditionalInfos.push({ key: column.PropertyName, value: column.AdditionalInfos });\n }\n });\n } else {\n actConfig.addRule = (p) => {\n p.rules = p.rules.concat([{\n field: '',\n value: '',\n operator: '='\n }]);\n };\n actConfig.getInputType = (f, o) => {\n if (o === 'in' || o === 'notin') {\n return 'multistring';\n }\n return 'string';\n };\n actConfig.getOperators = (f, fo) => {\n return ['=', '!=', '<', '<=', '>', '>=', 'like', 'notlike', 'in', 'notin'];\n };\n actConfig.getOptions = (f) => {\n return [];\n };\n }\n this.config = actConfig;\n this.ColumnsChange.emit(this.ColumnsValue);\n }\n\n @Output() ColumnsChange = new EventEmitter();\n //#endregion\n //#region Variables\n VariablesValue = [];\n\n @Input()\n get Variables() {\n return this.VariablesValue;\n }\n set Variables(val) {\n if (val) {\n this.VariablesValue = val;\n this.VariablesChange.emit(this.VariablesValue);\n }\n }\n\n @Output() VariablesChange = new EventEmitter();\n //#endregion\n //#region SystemVariables\n SystemVariablesValue = [];\n\n @Input()\n get SystemVariables() {\n return this.SystemVariablesValue;\n }\n set SystemVariables(val) {\n this.SystemVariablesValue = val;\n this.SystemVariablesChange.emit(this.SystemVariablesValue);\n }\n @Output() SystemVariablesChange = new EventEmitter();\n //#endregion\n\n AllTypes = ['string', 'date', 'number', 'boolean', 'float'];\n Operators: Map;\n UseTextInput = true;\n readonly separatorKeysCodes: number[] = [ENTER, COMMA];\n\n public query = {\n condition: 'and',\n rules: [\n ]\n };\n\n public config: QueryBuilderConfig = {\n fields: {}\n };\n\n private static BuildFilter(rules, filters, additionalInfos: Array<{ key: string, value: any[] }>) {\n rules.forEach((rule) => {\n if (rule.condition) {\n const filter = new RequestFilter();\n filter.ConcatOperator = rule.condition === 'and' ? Concat.And : Concat.Or;\n filter.Filters = [];\n filter.IsOptional = rule.IsOptional;\n AdvancedFilterComponent.BuildFilter(rule.rules, filter.Filters, additionalInfos);\n filters.push(filter);\n } else {\n const filter = new RequestFilter();\n filter.Name = rule.field;\n filter.Value = rule.value;\n filter.IsOptional = rule.IsOptional;\n filter.Operator = RequestFilter.GetComparerFromText(rule.operator);\n if (filter.Operator === Comparer.Between || filter.Operator === Comparer.NotBetween) {\n filter.Value2 = rule.value2;\n }\n if (additionalInfos) {\n const addInfo = additionalInfos.find(x => x.key === rule.field);\n filter.AdditionalInfos = addInfo ? addInfo.value : null;\n }\n filters.push(filter);\n }\n });\n }\n\n private static BuildRule(filters, rules) {\n filters.forEach((filter) => {\n if (filter.Filters && filter.Filters.length > 0) {\n const rule = {\n condition: filter.ConcatOperator === Concat.And ? 'and' : 'or',\n rules: []\n };\n AdvancedFilterComponent.BuildRule(filter.Filters, rule.rules);\n rules.push(rule);\n } else {\n const rule = {\n field: filter.Name,\n value: filter.Value,\n value2: (filter.Operator === Comparer.Between || filter.Operator === Comparer.NotBetween) ? filter.Value2 : null,\n operator: RequestFilter.GetTextForComparer(filter.Operator),\n IsOptional: filter.IsOptional\n };\n rules.push(rule);\n }\n });\n }\n\n constructor(public cdRef: ChangeDetectorRef) {\n const map = new Map();\n this.AllTypes.forEach((type) => {\n map.set(type, RequestFilter.GetComparerForType(type));\n });\n this.Operators = map;\n }\n\n getOperatorsForField(field, fieldObject) {\n let retVal;\n if (fieldObject && fieldObject.type) {\n retVal = this.Operators.get(fieldObject.type);\n }\n if (retVal) {\n return retVal;\n }\n return [];\n }\n\n getInputType(field, op) {\n if (this.config) {\n const configField = this.config.fields[field];\n if (configField) {\n if (op === 'in' || op === 'notin') {\n return 'multistring';\n }\n return configField.type;\n }\n }\n return '';\n }\n\n SetFilter(filter) {\n if (filter) {\n if (filter.ConcatOperator) {\n switch (filter.ConcatOperator) {\n case Concat.And:\n this.query.condition = 'and';\n break;\n case Concat.Or:\n this.query.condition = 'or';\n break;\n }\n }\n const rules = [];\n if (filter.Filters && filter.Filters.length > 0) {\n AdvancedFilterComponent.BuildRule(filter.Filters, rules);\n }\n this.query.rules = rules;\n this.cdRef.detectChanges();\n }\n }\n\n GetActualFilter() {\n let filter = new RequestFilter();\n filter.ConcatOperator = this.query.condition === 'and' ? Concat.And : Concat.Or;\n if (this.query.rules && this.query.rules.length > 0) {\n filter.Filters = [];\n AdvancedFilterComponent.BuildFilter(this.query.rules, filter.Filters, this.AdditionalInfos);\n } else {\n filter = null;\n }\n return filter;\n }\n\n add(event: MatChipInputEvent, rule): void {\n const input = event.input;\n const value = event.value;\n\n if ((value || '').trim()) {\n if (!Array.isArray(rule.value)) {\n rule.value = [value.trim()];\n } else {\n rule.value.push(value.trim());\n }\n }\n\n // Reset the input value\n if (input) {\n input.value = '';\n }\n }\n\n remove(entry, rule): void {\n if (Array.isArray(rule.value)) {\n const index = rule.value.indexOf(entry);\n if (index >= 0) {\n rule.value.splice(index, 1);\n }\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { CacheService } from '../../../cache/cache.service';\nimport { PermissionHelper } from '../../../helpers/permissions.helper';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MetaService } from '../../../services/meta.service';\nimport { SideNavService } from '../../../services/sidenav.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'appswitch',\n templateUrl: 'appswitch.component.html',\n styleUrls: ['appswitch.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ApplicationSwitcherComponent extends IBaseComponent {\n\n static Type: any = 'appswitch';\n static Default = JSON.parse(JSON.stringify(defaultProperties.appswitch));\n\n Applications = [];\n SelectedApplication;\n\n constructor(private service: MetaService, private router: Router, cdRef: ChangeDetectorRef,\n @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n }\n\n ControlInitialized() {\n PermissionHelper.ActiveNavigationPermissions.subscribe((permissions) => {\n if (!permissions) {\n permissions = {};\n }\n this.service.GetNavigationStructures().subscribe(result => {\n const list = [];\n if (result) {\n result.forEach((entry) => {\n if (permissions[entry.SID] !== true) {\n list.push({\n Caption: entry.Caption,\n ID: entry.SID\n });\n }\n });\n }\n this.Applications = list;\n this.cdRef.detectChanges();\n });\n\n });\n SideNavService.SelectedNavigationStructure.subscribe((navStruct) => {\n this.SelectedApplication = navStruct;\n });\n }\n navigate(item) {\n this.service.LoadNavigationStructurePropertyByKey(item.Caption, 'LandingPage').subscribe(lp => {\n let page = '';\n if (typeof lp === 'string') {\n page = lp;\n }\n this.router.navigate([item.Caption + page]);\n });\n }\n}\n","import { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Inject, Input, Output, ViewChild\n} from '@angular/core';\nimport { BehaviorSubject, of } from 'rxjs';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { TranslationTextBoxThemeControl } from '../../../appbuilder/controls/translation/translation.textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { CacheService } from '../../../cache/cache.service';\nimport { ACaptionGetter, DefaultCaptionGetter } from '../../../helpers/acaptiongetter';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { FilterHelper } from '../../../helpers/filter.helper';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { VariablesNodeInformation } from '../../../models/basic/formulaEditor.model';\nimport { Comparer } from '../../../models/enums/comparer.enum';\nimport { Order } from '../../../models/enums/order.enum';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { RequestFilter } from '../../../models/rest/requestfilter';\nimport { RequestOptions } from '../../../models/rest/requestoptions';\nimport { RequestSort } from '../../../models/rest/requestsort';\nimport { DataService } from '../../../services/data.service';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { ComponentFilterControl } from '../../common/componentfilter/componentfilter.control';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-autocomplete',\n templateUrl: './autocomplete.control.html',\n styleUrls: ['./autocomplete.control.css'],\n host: {\n '(document:click)': 'handleClick($event)',\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AutocompleteControl extends IBaseComponent {\n static Type: any = 'autocomplete';\n static Default = JSON.parse(JSON.stringify(defaultProperties.autocomplete));\n //#region DisplayMemberPath\n @Input()\n get DisplayMemberPath() {\n return this.LayoutElement.DisplayMemberPath;\n }\n set DisplayMemberPath(val) {\n this.LayoutElement.DisplayMemberPath = val;\n this.DisplayMemberPathChange.emit(this.LayoutElement.DisplayMemberPath);\n }\n\n @Output() DisplayMemberPathChange = new EventEmitter();\n //#endregion\n //#region ValueMemberPath\n @Input()\n get ValueMemberPath() {\n return this.LayoutElement.ValueMemberPath;\n }\n set ValueMemberPath(val) {\n this.LayoutElement.ValueMemberPath = val;\n this.ValueMemberPathChange.emit(this.LayoutElement.ValueMemberPath);\n }\n\n @Output() ValueMemberPathChange = new EventEmitter();\n //#endregion\n _Selection;\n get Selection() {\n return this._Selection;\n }\n set Selection(value) {\n\n this._Selection = value;\n\n if (this.Multiple) {\n this.SearchValue = null;\n if (!this.Values) {\n this.Values = [];\n }\n if (!this.DataSource || !Array.isArray(this.DataSource)) {\n this.internal = true;\n this.DataSource = [];\n }\n let list = [];\n this._Selection.forEach((val) => {\n if (!this.ValueMemberPath || this.LayoutElement.IsReverse) {\n list.push(val);\n } else {\n list.push(val[this.ValueMemberPath]);\n }\n });\n this.DataSource = list;\n } else {\n if (this.DisplayMemberPath) {\n this.SearchValue = value[this.DisplayMemberPath];\n } else {\n this.SearchValue = value;\n }\n this.internal = true;\n if (!this.ValueMemberPath || this.LayoutElement.IsReverse) {\n this.DataSource = value;\n } else {\n this.DataSource = value[this.ValueMemberPath];\n }\n }\n }\n\n //#region DataSource\n DataSourceValue;\n\n @Input()\n get DataSource() {\n return this.DataSourceValue;\n }\n set DataSource(val) {\n if (val !== this.DataSourceValue) {\n this.DataSourceValue = val;\n if (!this.internal) {\n if (!this.LayoutElementValue.IsEnum) {\n if (val) {\n if (this.ValueMemberPath && !this.LayoutElementValue.IsReverse && this.LayoutElementValue) {\n //#region Create RequestOptions\n const options = new RequestOptions();\n options.StartRow = 0;\n options.EndRow = 10;\n options.Filters = [];\n const filter = new RequestFilter();\n filter.Name = this.ValueMemberPath;\n filter.Operator = Comparer.Equal;\n filter.Value = this.DataSource;\n let sendRequest = true;\n if (this.Multiple && val && val.length > 0) {\n options.EndRow = val.length;\n filter.Operator = Comparer.In;\n }\n if (this.Multiple && ((val && val.length == 0) || !val)) {\n sendRequest = false;\n }\n options.Filters.push(filter);\n //#endregion\n //#region FetchData\n if (sendRequest) {\n this.Subscriptions['data'] = this.dataService.SearchObjects('dynamicdata',\n this.DataSourceID, options).subscribe((data) => {\n if (this.Multiple) {\n this.Values = data;\n this._Selection = data;\n } else {\n if (this.DisplayMemberPath) {\n this.SearchValue = data[0][this.DisplayMemberPath];\n } else {\n this.SearchValue = data[0];\n }\n }\n this.cdRef.detectChanges();\n });\n }\n //#endregion\n } else {\n if (this.Multiple) {\n this.Values = [];\n if (!Array.isArray(val)) {\n this.Values.push(val);\n } else {\n this.Values.push(...val);\n }\n } else {\n if (this.DisplayMemberPath) {\n this.SearchValue = val[this.DisplayMemberPath];\n } else {\n this.SearchValue = val;\n }\n }\n this.cdRef.detectChanges();\n }\n }\n } else {\n this.DisplayMemberPath = 'Caption';\n this.ValueMemberPath = 'Value';\n EnumHelper.GetEnumValues(this.DataSourceID).then((data) => {\n if (data) {\n data.forEach((x) => {\n if (this.Multiple) {\n this.Values = [];\n if (!Array.isArray(val)) {\n data.forEach((item) => {\n if (item.Value === val) {\n this.Values.push(item);\n }\n });\n } else {\n data.forEach((item) => {\n val.forEach((it) => {\n if (item.Value === it) {\n this.Values.push(item);\n }\n });\n });\n }\n } else {\n data.forEach((item) => {\n if (item.Value === val) {\n this.SearchValue = item.Caption;\n }\n });\n }\n });\n this.cdRef.detectChanges();\n }\n });\n }\n } else {\n this.internal = false;\n }\n this.triggerEvent('DataSourceChanged', this.DataSourceValue);\n this.DataSourceChange.emit(this.DataSourceValue);\n }\n if (!val) {\n this.SearchValue = null;\n this.Values = null;\n }\n }\n\n @Output() DataSourceChange = new EventEmitter();\n //#endregion\n //#region Source\n SourceValue = [];\n Source$;\n @Input()\n get Source() {\n return this.SourceValue;\n }\n set Source(val) {\n if (!val) {\n this.Change.emit(null);\n }\n let array = [{}];\n //array = [...array, ...val];\n //this.Source$ = of(array);\n if (val.length == 0) {\n this.Source$ = of([...array, ...val]);\n } else {\n this.Source$ = of([...val]);\n }\n \n this.SourceValue = val;\n this.SourceChange.emit(this.SourceValue);\n }\n\n @Output() SourceChange = new EventEmitter();\n //#endregion\n //#region Multiple\n @Input()\n get Multiple() {\n return this.LayoutElement.Multiple;\n }\n set Multiple(val) {\n this.LayoutElement.Multiple = val;\n this.MultipleChange.emit(this.LayoutElement.Multiple);\n }\n\n @Output() MultipleChange = new EventEmitter();\n //#endregion\n //#region Placeholder\n @Input()\n get Placeholder() {\n return this.LayoutElement.Placeholder;\n }\n set Placeholder(val) {\n this.LayoutElement.Placeholder = val;\n this.PlaceholderChange.emit(this.LayoutElement.Placeholder);\n }\n\n @Output() PlaceholderChange = new EventEmitter();\n //#endregion\n //#region Loading\n LoadingValue;\n\n @Input()\n get Loading() {\n return this.LoadingValue;\n }\n set Loading(val) {\n this.LoadingValue = val;\n this.LoadingChange.emit(this.LoadingValue);\n this.cdRef.detectChanges();\n }\n\n @Output() LoadingChange = new EventEmitter();\n //#endregion\n EnumSource;\n SearchValue;\n Values;\n internal;\n LimitReached = false;\n Filter: RequestOptions;\n PageSize = 30;\n Pages = [];\n\n @Output() Change = new EventEmitter();\n @Output() ScrollUp = new EventEmitter();\n @Output() ScrollDown = new EventEmitter();\n @Output() SelectionChange = new EventEmitter();\n @ViewChild('textBox', { read: ElementRef }) textBox: ElementRef;\n\n elementRef;\n DataSourceID;\n popupOpen = false;\n //#region Lifecycle\n constructor(cdRef: ChangeDetectorRef, myElement: ElementRef, private dataService: DataService, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.elementRef = myElement;\n this.EventList.push('SelectionChanged');\n this.EventList.push('OnFocus');\n }\n ControlInitialized() {\n this.Refresh();\n }\n onLayoutElementChanged() {\n this.Refresh();\n }\n Refresh() {\n this.Filter = new RequestOptions();\n this.Filter.StartRow = 0;\n this.Filter.EndRow = this.PageSize;\n if (this.LayoutElementValue.IsEnum) {\n EnumHelper.GetEnumValues(this.LayoutElementValue.DataSourceID).then((data) => {\n this.Source = data;\n this.EnumSource = [...data];\n this.DisplayMemberPath = 'Caption';\n this.ValueMemberPath = 'Value';\n });\n }\n this.DataSourceID = MetaHelper.FindDataSourceID(this.Layout, this.LayoutElement);\n if (this.LayoutElementValue.DataSourceID && this.LayoutElementValue.DataSourceID !== '00000000-0000-0000-0000-000000000000') {\n CacheService.ReadTable(this.LayoutElementValue.DataSourceID).then((result) => {\n this.DataSourceID = this.LayoutElementValue.DataSourceID;\n this.FieldList = result['Fields'];\n this.UpdateCaptionGetter();\n });\n } else {\n MetaHelper.FindTableProperties(this.LayoutValue, this.LayoutElementValue).then(result => {\n if (result && result.IsEnum) {\n EnumHelper.GetEnumValues(result.SID).then((data) => {\n this.DisplayMemberPath = 'Caption';\n this.ValueMemberPath = 'Value';\n this.cdRef.detectChanges();\n });\n } else if (result && result.Fields) {\n const field = result.Fields.find(x => x.ID === this.LayoutElementValue.DataSource);\n if (field && MetaHelper.FieldFitsForElementType(field, this.LayoutElementValue.ElementType)) {\n this.DataSourceID = this.LayoutElementValue.DataSourceID;\n this.FieldList = result.Fields;\n this.UpdateCaptionGetter();\n }\n }\n });\n }\n }\n //#endregion\n\n //#region Popup\n change() {\n this.popupOpen = true;\n this.searchAutoComplete(this.SearchValue);\n this.Change.emit(this.SearchValue);\n }\n\n changePopup() {\n this.popupOpen = !this.popupOpen;\n this.searchAutoComplete(null);\n this.Change.emit();\n }\n openPopUp() {\n this.popupOpen = !this.popupOpen;\n }\n handleClick(event) {\n let clickedComponent = event.target;\n let inside = false;\n do {\n if (clickedComponent === this.elementRef.nativeElement) {\n inside = true;\n }\n clickedComponent = clickedComponent.parentNode;\n } while (clickedComponent);\n if (!inside) {\n this.popupOpen = false;\n }\n }\n //#endregion\n clicked() {\n this.triggerEvent('OnFocus', this.DataSource);\n }\n\n valueSelected(value) {\n this.popupOpen = false;\n if (!value) {\n this.SearchValue = null;\n this.internal = true;\n this.DataSource = null;\n } else {\n if (this.Multiple) {\n this.SearchValue = null;\n if (!this.Values) {\n this.Values = [];\n }\n if (!this.DataSource || !Array.isArray(this.DataSource)) {\n this.internal = true;\n this.DataSource = [];\n }\n this.Values.push(value);\n if (!this.ValueMemberPath || this.LayoutElement.IsReverse) {\n this.DataSource.push(value);\n } else {\n this.DataSource.push(value[this.ValueMemberPath]);\n }\n } else {\n if (this.DisplayMemberPath) {\n this.SearchValue = value[this.DisplayMemberPath];\n } else {\n this.SearchValue = value;\n }\n this.internal = true;\n if (!this.ValueMemberPath || this.LayoutElement.IsReverse) {\n this.DataSource = value;\n } else {\n this.DataSource = value[this.ValueMemberPath];\n }\n }\n }\n this.triggerEvent('SelectionChanged', this.DataSource);\n this.SelectionChange.emit(this.DataSource);\n }\n remove(value: any): void {\n if (typeof (value) == 'object') {\n const list = [];\n if (!this.ValueMemberPath || this.LayoutElement.IsReverse) {\n list.push(...this.Values);\n } else {\n this.Values.forEach((v) => {\n list.push(v[this.ValueMemberPath]);\n });\n }\n this.internal = true;\n this.DataSource = list;\n } else {\n const index = this.Values.indexOf(value);\n if (index >= 0) {\n this.Values.splice(index, 1);\n const list = [];\n if (!this.ValueMemberPath || this.LayoutElement.IsReverse) {\n list.push(...this.Values);\n } else {\n this.Values.forEach((v) => {\n list.push(v[this.ValueMemberPath]);\n });\n }\n this.internal = true;\n this.DataSource = list;\n }\n }\n }\n //#region Scroll\n onScroll() {\n this.ScrollDown.emit(this.SearchValue);\n if (this.Filter) {\n this.Filter.StartRow = this.Filter.StartRow + this.PageSize;\n this.Filter.EndRow = this.Filter.StartRow + this.PageSize;\n }\n this.searchAutoComplete(this.SearchValue);\n }\n\n onScrollUp() {\n this.ScrollUp.emit(this.SearchValue);\n if (this.Filter) {\n this.Filter.StartRow = this.Filter.StartRow - this.PageSize;\n if (this.Filter.StartRow < 0) {\n this.Filter.StartRow = 0;\n }\n this.Filter.EndRow = this.Filter.StartRow + this.PageSize;\n }\n this.searchAutoComplete(this.SearchValue);\n }\n //#endregion\n private resetSource() {\n this.Filter.StartRow = 0;\n this.Filter.EndRow = 0;\n this.Source = [];\n this.Pages = [];\n this.LimitReached = false;\n }\n search(event) {\n this.searchAutoComplete(event.query);\n }\n private searchAutoComplete(value: any) {\n if (this.LayoutElement.ControlStyling) {\n console.log(\"AutoComplete\", this.Source)\n this.Source = this.LayoutElement.Source\n return;\n }\n if (!this.Source) {\n this.Source = [];\n }\n if (!this.LayoutElementValue.IsEnum) {\n let page = 0;\n if (this.Filter.StartRow > 0) {\n page = this.Filter.EndRow / this.Filter.StartRow;\n }\n\n if (this.Filter) {\n if (value) {\n if (this.Filter && this.Filter.Filters) {\n const filter = new RequestFilter();\n filter.Name = this.DisplayMemberPath;\n filter.Operator = Comparer.Like;\n filter.Value = value;\n if (FilterHelper.CheckFilterValueChanges(this.Filter, filter)) {\n FilterHelper.AddSearchFilter(this.Filter, filter);\n this.resetSource();\n }\n }\n } else {\n if (this.Filter.Filters.length === 1) {\n this.resetSource();\n }\n this.Filter.Filters = [];\n }\n if (this.Variables && this.LayoutElement.Filter) {\n this.LayoutElement.Filter.forEach((fil) => {\n if (this.Variables[fil.Filter]) {\n const item = new RequestFilter();\n item.Name = fil.Name;\n item.Operator = fil.Comparer;\n item.Value = this.Variables[fil.Filter];\n FilterHelper.AddSearchFilter(this.Filter, item);\n }\n });\n }\n if (this.LayoutElement.Order) {\n this.Filter.Sort = [];\n const sort = new RequestSort();\n sort.Name = this.DisplayMemberPath;\n sort.Order = this.LayoutElement.Order;\n this.Filter.Sort.push(sort);\n }\n }\n this.Loading = true;\n if (this.LayoutElementValue) {\n this.Subscriptions['data'] = this.dataService.SearchObjects('dynamicdata',\n this.DataSourceID, this.Filter).subscribe((data) => {\n if (data && data.length) {\n this.Source = data;\n } else {\n this.LimitReached = true;\n }\n this.Loading = false;\n }, (error) => {\n this.Loading = false;\n });\n }\n } else {\n if (value) {\n this.Source = this.EnumSource.filter((element, index, array) => {\n const val = element[this.DisplayMemberPath];\n return val && val.toLowerCase().indexOf(value.toLowerCase()) > -1;\n });\n } else {\n this.Source = [...this.EnumSource];\n }\n }\n }\n\n setFocus() {\n\n if (this.textBox && this.textBox.nativeElement) {\n this.textBox.nativeElement.focus();\n }\n }\n private CaptionGetter: ACaptionGetter = new DefaultCaptionGetter();\n FieldList = [];\n UpdateCaptionGetter() {\n this.CaptionGetter = ACaptionGetter.GetCaptionGetter(this.LayoutElementValue, this.FieldList);\n }\n}\nexport class AutocompletePanel extends BasePanel {\n static override SIDS = ['8e8eaf91-8499-4262-a4b4-43cb595990dc']\n private static DisplayMemberPathSub: BehaviorSubject = new BehaviorSubject(null);\n private static ValueMemberPathSub: BehaviorSubject = new BehaviorSubject(null);\n private static VariablesSub: BehaviorSubject = new BehaviorSubject(null);\n private static TableProperties;\n static override SetSelectedItem(item) {\n AutocompletePanel.ReadTableProperties();\n }\n static InitPanel() {\n this.InitSelectedItem();\n PROPERTYGROUPS.push({\n SID:'8e8eaf91-8499-4262-a4b4-43cb595990dc',\n ID: 'autocomplete',\n Caption: '@@Autocomplete',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'autocomplete';\n }\n })\n PROPERTIES.push({\n ID: \"Placeholder\",\n Parent: \"autocomplete\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Placeholder\",\n InitArgs: {\n DataType: 'string'\n }\n });\n PROPERTIES.push({\n ID: \"DisplayMemberPath\",\n Parent: \"autocomplete\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@DisplayMemberPath\",\n CheckVisibility: (item) => {\n return AutocompletePanel.TableProperties && AutocompletePanel.TableProperties.Fields;\n },\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSourceSub: AutocompletePanel.DisplayMemberPathSub,\n ValueMemberPath: \"Name\",\n DisplayMemberPath: \"TranslatedCaption\"\n }\n });\n PROPERTIES.push({\n ID: \"ValueMemberPath\",\n Parent: \"autocomplete\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@ValueMemberPath\",\n CheckVisibility: (item) => {\n return AutocompletePanel.TableProperties && AutocompletePanel.TableProperties.Fields;\n },\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSourceSub: AutocompletePanel.ValueMemberPathSub,\n ValueMemberPath: \"Name\",\n DisplayMemberPath: \"TranslatedCaption\"\n }\n });\n PROPERTIES.push({\n ID: \"Order\",\n Parent: \"autocomplete\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Order\",\n InitArgs: {\n Placeholder: \"\",\n Multiple: false,\n EnumSource: Order\n }\n });\n PROPERTIES.push({\n ID: \"UseFloatingLabel\",\n Parent: \"autocomplete\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@UseFloatingLabel\"\n }\n });\n PROPERTIES.push({\n ID: \"Filter\",\n Parent: \"autocomplete\",\n Content: new ComponentPortal(ComponentFilterControl)\n });\n }\n static ReadTableProperties() {\n if (AutocompletePanel.SelectedItem) {\n const variables = [];\n AutocompletePanel.TableProperties = null;\n if (!AutocompletePanel.SelectedItem.IsEnum) {\n if (AutocompletePanel.SelectedItem.DataSourceID) {\n CacheService.ReadTable(AutocompletePanel.SelectedItem.DataSourceID).then((data) => {\n if (data) {\n AutocompletePanel.TableProperties = data;\n\n AutocompletePanel.TableProperties.Fields.forEach((column) => {\n const vni = new VariablesNodeInformation();\n vni.VariableID = column.ID;\n vni.Name = column.TranslatedCaption;\n variables.push(vni);\n });\n AutocompletePanel.VariablesSub.next(variables);\n let fields = JSON.stringify(AutocompletePanel.TableProperties.Fields)\n let DisplayMemberFields = JSON.parse(fields);\n DisplayMemberFields.unshift({ Name: \"\", TranslatedCaption: \"\" });\n AutocompletePanel.DisplayMemberPathSub.next(DisplayMemberFields);\n\n let ValueMemberFields = JSON.parse(fields);\n\n ValueMemberFields.unshift({ Name: '_Id', TranslatedCaption: \"System.ID\" });\n ValueMemberFields.unshift({ Name: null, TranslatedCaption: \"@@None\" });\n AutocompletePanel.ValueMemberPathSub.next(ValueMemberFields);\n //this.Variables = variables;\n }\n });\n }\n }\n }\n }\n}","import { AfterViewInit, ChangeDetectorRef, Directive, EventEmitter, Inject, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { UUID } from 'angular2-uuid';\nimport { BehaviorSubject, Observable, of, Subject } from 'rxjs';\nimport { CacheService } from '../../cache/cache.service';\nimport { LayoutHelper } from '../../helpers/layout.helper';\nimport { MetaHelper } from '../../helpers/meta.helper';\nimport { ThemeHelper } from '../../helpers/theme.helpers';\nimport { VariableHelper } from '../../helpers/variable.helper';\nimport { EventActionType } from '../../models/enums/eventactiontype.enum';\nimport { ViewType } from '../../models/enums/viewtype.enum';\nimport { ElementProperty, EventData } from '../../models/layoutbase.model';\nimport { LayoutElement } from '../../models/layoutelement.model';\nimport { WorkflowStatus } from '../../models/workflow/workflow.model';\nimport { LanguageService } from '../../services/language.service';\nimport { LayoutService } from '../../services/layout.service';\nimport { WorkflowService } from '../../services/workflow.service';\nimport { WorkflowEngine } from '../../workflow/workflow.engine';\n\n// @dynamic\n@Directive()\nexport abstract class IBaseComponent implements OnInit, AfterViewInit, OnDestroy {\n\n static Default;\n\n Type;\n // Source;\n MediaSourceValue;\n StyleRef: any;\n WorkflowStyles = [];\n EditableByWorkflow;\n RefreshCount = 0;\n Parent;\n //#region Initialized\n _Initialized = false;\n @Input()\n get Initialized(): boolean {\n return this._Initialized;\n }\n set Initialized(val: boolean) {\n if (val === true && !this._Initialized) {\n this.onInit();\n }\n this._Initialized = val;\n this.InitializedChange.emit(this._Initialized);\n }\n @Output() InitializedChange = new EventEmitter();\n //#endregion\n //#region FromBaseLayout\n FromBaseLayoutValue = false;\n\n @Input()\n get FromBaseLayout() {\n return this.FromBaseLayoutValue;\n }\n set FromBaseLayout(val) {\n this.FromBaseLayoutValue = val;\n this.FromBaseLayoutChange.emit(this.FromBaseLayoutValue);\n this.cdRef.detectChanges();\n }\n\n @Output() FromBaseLayoutChange = new EventEmitter();\n //#endregion\n //#region Editable\n @Input()\n get Editable(): boolean {\n if (typeof this.EditableByWorkflow === 'boolean') {\n return this.EditableByWorkflow;\n }\n return this.LayoutElement.Editable;\n }\n set Editable(val: boolean) {\n this.LayoutElement.Editable = val;\n this.EditableChange.emit(this.LayoutElement.Editable);\n }\n @Output() EditableChange = new EventEmitter();\n //#endregion\n //#region Disabled\n _Disabled;\n @Input()\n get Disabled(): boolean {\n return this._Disabled;\n }\n set Disabled(val: boolean) {\n this._Disabled = val;\n this.DisabledChange.emit(this._Disabled);\n }\n @Output() DisabledChange = new EventEmitter();\n //#endregion\n //#region Required\n get Required(): boolean {\n if (this.LayoutElement) {\n if (this.LayoutElement.IsRequired != null) {\n return this.LayoutElement.IsRequired;\n } else if (this.LayoutElement.Required != null) {\n return this.LayoutElement.Required;\n } else {\n return false;\n }\n } else {\n return false;\n }\n }\n //#endregion\n //#region Error\n _Error: string;\n get Error(): string {\n return this._Error;\n }\n set Error(value) {\n this._Error = value;\n }\n //#endregion\n //#region Layout\n @Input()\n get Layout() {\n return this.LayoutValue;\n }\n set Layout(val) {\n this.LayoutValue = val;\n this.LayoutChange.emit(this.LayoutValue);\n }\n LayoutValue;\n\n @Output() LayoutChange = new EventEmitter();\n //#endregion\n //#region LayoutElement\n LayoutElementValue: any = new LayoutElement();\n ExternalLayoutElement = false;\n LayoutElementBinding;\n @Output()\n public LayoutElementChange = new EventEmitter();\n @Input()\n public get LayoutElement(): any {\n return this.LayoutElementValue;\n }\n public set LayoutElement(val: any) {\n this.ExternalLayoutElement = true;\n this.LayoutElementValue = val;\n this.LayoutElementValue['Element'] = this;\n if (this.LayoutElementValue.ElementSet) {\n this.LayoutElementValue.ElementSet.next();\n }\n if (this.LayoutElementValue.StyleRef) {\n this.StyleRef = {};\n this.StyleChanged();\n }\n if (this.LayoutElementValue.ComponentChanged) {\n const sub = this.Subscriptions['ComponentChanged'];\n if (sub) {\n sub.unsubscribe();\n }\n this.Subscriptions['ComponentChanged'] = this.LayoutElementValue.ComponentChanged.subscribe((x) => {\n this.StyleChanged();\n });\n }\n if (this.LayoutElementValue.ValuesChanged) {\n this.Subscriptions['ValuesChanged'] = this.LayoutElementValue.ValuesChanged.subscribe((x) => {\n if (this.LayoutElementValue && this.LayoutElementValue.MediaSource) {\n CacheService.ReadMediaSourceSub(this.LayoutElementValue.MediaSource).subscribe((source) => {\n this.MediaSourceValue = source;\n this.StyleChanged();\n this.onLayoutElementChangedInternal();\n this.firePropertyChange(x);\n });\n } else {\n this.StyleChanged();\n this.onLayoutElementChangedInternal();\n this.firePropertyChange(x);\n }\n });\n }\n if (this.LayoutElementValue && this.LayoutElementValue.MediaSource) {\n CacheService.ReadMediaSourceSub(this.LayoutElementValue.MediaSource).subscribe((source) => {\n this.MediaSourceValue = source;\n this.RefreshCount = 1;\n this.LayoutElementValue.ValuesChanged.next();\n this.cdRef.detectChanges();\n });\n }\n if (!this.LayoutElementValue.ID) {\n this.LayoutElementValue.ID = UUID.UUID();\n }\n if (this.LayoutElementValue.Variables && VariableHelper.ActiveVariablesMap) {\n this.LayoutElementValue.Variables.forEach((item) => {\n if (VariableHelper.ActiveVariablesMap[this.LayoutElementValue._Id + '||' + item.ID]) {\n item.Value = VariableHelper.ActiveVariablesMap[this.LayoutElementValue._Id + '||' + item.ID].Value;\n }\n });\n }\n this.fillEvents();\n\n this.StyleChanged();\n this.onLayoutElementSetInternal();\n this.LayoutElementChange.emit(this.LayoutElementValue);\n this.LayoutElementBinding = of(this.LayoutElementValue);\n }\n //#endregion\n //#region DataSource\n DataSource$;\n DataSourceValue;\n @Input()\n get DataSource() {\n return this.DataSourceValue;\n }\n set DataSource(val) {\n if (val != this.DataSourceValue) {\n this.DataSourceValue = val;\n this.DataSource$ = of(val);\n this.DataSourceChange.emit(this.DataSourceValue);\n this.cdRef.detectChanges();\n }\n this.triggerEvent('DataSourceChanged', this.DataSourceValue);\n }\n @Output() DataSourceChange = new EventEmitter();\n //#endregion\n\n //#region Events\n EventList: string[] = [];\n //#endregion\n //#region ElementProperties\n PropertyList: ElementProperty[] = [];\n //#endregion\n //#region Variables\n Variables = {};\n //#endregion\n\n AppBuilderPanel = null;\n\n @Output() OnControlInitialized = new EventEmitter();\n @Output() StyleChange = new EventEmitter();\n\n Subscriptions = {};\n AppBuilder;\n\n ActiveTheme = ThemeHelper.AcitveTheme;\n public AfterViewInit: BehaviorSubject = new BehaviorSubject(false);\n public OnInit: BehaviorSubject = new BehaviorSubject(false);\n public OnDestroy: BehaviorSubject = new BehaviorSubject(false);\n constructor(public cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n this.EventList.push('OnInit');\n this.EventList.push('OnDestroy');\n this.EventList.push('MouseEnter');\n this.EventList.push('MouseLeave');\n this.EventList.push('MouseClick');\n this.EventList.push('DataSourceChanged');\n }\n onInit() { \n this.Subscriptions['Overlay'] = LayoutService.OverlayStatus.subscribe((overlay) => {\n this.AppBuilder = overlay;\n });\n this.Subscriptions['ActiveThemeChanged'] = ThemeHelper.ActiveThemeChanged.subscribe((overlay) => {\n this.ActiveTheme = ThemeHelper.AcitveTheme;\n this.cdRef.detectChanges();\n });\n LanguageService.SelectedLanguage.subscribe(() => {\n this.cdRef.detectChanges();\n });\n \n this.ControlInitialized();\n if (this.LayoutElementValue.Elements) {\n let count = this.LayoutElementValue.Elements.length;\n if (count > 0) {\n this.LayoutElementValue.Elements.forEach(x => {\n const init = x.Initialized.getValue();\n if (init === true) {\n count--;\n if (count === 0) {\n this.setInitialized();\n }\n } else {\n const sub = x.Initialized.subscribe(y => {\n if (y === true) {\n sub.unsubscribe();\n count--;\n if (count === 0) {\n this.setInitialized();\n }\n }\n });\n }\n });\n return;\n }\n }\n this.setInitialized();\n }\n\n setInitialized() {\n this.OnControlInitialized.emit();\n this.triggerEvent('OnInit');\n if (this.LayoutElement && this.LayoutElement.Initialized) {\n this.LayoutElementValue.Initialized.next(true);\n }\n }\n\n abstract ControlInitialized();\n onLayoutElementSetInternal() {\n this.onLayoutElementSet();\n if (this.LayoutElement.Elements && this.LayoutElement.Elements.length > 1) {\n this.LayoutElementValue.Elements.forEach((element) => {\n element.Parent = this.LayoutElementValue;\n })\n }\n this.cdRef.detectChanges();\n this.RefreshCount += 1;\n }\n onLayoutElementSet() {\n }\n onLayoutElementChangedInternal() {\n this.onLayoutElementChanged();\n if (this.LayoutElement && this.LayoutElement.Parent && this.LayoutElement.Parent.Element && this.LayoutElement.Parent.Element.RefreshView) {\n this.LayoutElement.Parent.Element.RefreshView();\n }\n this.cdRef.detectChanges();\n this.RefreshCount += 1;\n }\n onLayoutElementChanged() {\n }\n RefreshView() {\n this.cdRef.detectChanges();\n this.RefreshCount += 1;\n }\n //#region Events\n fillEvents() {\n const that = this;\n const le = this.LayoutElement;\n if (le && le.Events) {\n this.EventList.forEach((ev) => {\n let found = le.Events.find((value) => value?.EventID === ev);\n if (!found) {\n if (le.CustomEvents && le.ElementType === 'template') {\n found = le.CustomEvents.find((lev) => lev.Name === ev);\n if (found) {\n const evData = new EventData();\n evData.EventID = ev;\n le.Events.push(evData);\n }\n } else {\n const evData = new EventData();\n evData.EventID = ev;\n le.Events.push(evData);\n }\n } else if (found.Handlers && found.Handlers.length > 0) {\n found.Handlers.forEach((item) => {\n if (item.ActionType == EventActionType.Variable) {\n if (!VariableHelper.VariableSubscriptions) {\n VariableHelper.VariableSubscriptions = {};\n }\n if (VariableHelper.VariableSubscriptions[that.Layout._Id + '||' + item.Action]) {\n VariableHelper.VariableSubscriptions[that.Layout._Id + '||' + item.Action].unsubscribe();\n }\n VariableHelper.VariableSubscriptions[that.Layout._Id + '||' + item.Action] = new Subject();\n VariableHelper.VariableSubscriptions[that.Layout._Id + '||' + item.Action].subscribe((value) => {\n that.DataSource = value;\n });\n }\n });\n }\n });\n }\n }\n\n triggerEvent(event: string, eventData?: any) {\n if (event) {\n const isInEditMode = LayoutService.ViewType.getValue() === ViewType.Edit;\n if (isInEditMode) {\n const doTrigger = LayoutService.TriggerEventsInEditMode.getValue();\n if (!doTrigger) {\n return;\n }\n }\n const le = this.LayoutElement;\n if (le && le.Events) {\n let actionList;\n le.Events.some((lev) => {\n if (lev?.EventID === event) {\n actionList = lev.Handlers;\n return true;\n }\n return false;\n });\n if (actionList) {\n actionList.forEach((action) => {\n switch (action.ActionType) {\n case EventActionType.Workflow:\n const layout = this.LayoutValue;\n\n let parentPath;\n if (layout === le) {\n parentPath = [layout];\n } else {\n parentPath = MetaHelper.FindParentPath(layout, le);\n }\n if (!parentPath && this.LayoutValue.ElementType == 'template') {\n parentPath = [LayoutHelper.GetActiveResolution(LayoutService.SelectedLayout.getValue())];\n }\n if (parentPath) {\n for (let i = parentPath.length - 1; i >= 0; i--) {\n const parent = parentPath[i];\n if (parent.Workflows) {\n const wf = parent.Workflows.find(item => item.ID === action.Action && item.Data);\n if (wf) {\n const status = new WorkflowStatus(wf.ID, wf.Caption);\n WorkflowStatus.CopyContext(WorkflowService.DialogStatusCopy.getValue(), status.Context);\n status.WorkflowLayoutService.init(parent, le);\n status.ActualParameter = eventData;\n const engine = new WorkflowEngine(wf.Data, status);\n engine.startExecution();\n break;\n }\n }\n }\n }\n break;\n case EventActionType.Variable:\n const av = VariableHelper.AvailableVariables[this.Layout._Id];\n if (av) {\n const variable = av.find((value) => value.ID == action.Action);\n if (variable) {\n if (action.Write) {\n variable.Value = this.DataSource;\n VariableHelper.ValueChanged(this.Layout, variable);\n } else {\n this.DataSource = variable.Value;\n }\n }\n }\n break;\n }\n });\n }\n }\n }\n }\n //#endregion\n //#region Style\n onWorkflowStylesChanged() {\n let editable;\n let containsVisibility = false;\n [...this.WorkflowStyles].reverse().some(x => {\n if (typeof x.Visible === 'boolean') {\n if (x.Visible) {\n containsVisibility = true;\n }\n }\n if (typeof x.Editable === 'boolean') {\n editable = x.Editable;\n return true;\n }\n return false;\n });\n\n if (containsVisibility) {\n const elements = [];\n this.findTable(this.LayoutElement.Elements, elements);\n if (elements.length > 0) {\n elements.forEach((element) => {\n if (element.Element) {\n element.Element.Rerender();\n }\n });\n }\n }\n\n this.EditableByWorkflow = editable;\n this.RefreshCount += 1;\n this.cdRef.detectChanges();\n this.LayoutElement.WorkflowStyleChanged.next();\n }\n findTable(elements, result) {\n elements.forEach(element => {\n if (element.ElementType == 'datatable') {\n result.push(element);\n }\n if (element.Elements) {\n this.findTable(element.Elements, result);\n }\n });\n }\n\n StyleChanged() {\n if (this.LayoutElementValue.StyleRef && typeof (this.LayoutElementValue.StyleRef) == 'string') {\n this.StyleRef = {};\n CacheService.ReadStyleSub(this.LayoutElementValue.StyleRef).subscribe(result => {\n if (result && result['StyleJSON']) {\n const style = JSON.parse(result['StyleJSON']);\n Object.keys(style).forEach(s => {\n this.StyleRef[s] = style[s];\n });\n this.Initialized = true;\n this.RefreshCount += 1;\n this.cdRef.detectChanges();\n this.StyleChange.emit(this.LayoutElement);\n }\n });\n } else {\n this.StyleRef = null;\n this.Initialized = true;\n this.RefreshCount += 1;\n this.cdRef.detectChanges();\n this.StyleChange.emit(this.LayoutElement);\n }\n }\n //#endregion\n\n HandleResize(itemComponent) {\n if (this.LayoutElement) {\n if (itemComponent.left) {\n this.LayoutElement.X = itemComponent.left;\n }\n if (itemComponent.top) {\n this.LayoutElement.Y = itemComponent.top;\n }\n if (itemComponent.height) {\n this.LayoutElement.Height = itemComponent.height;\n }\n if (itemComponent.width) {\n this.LayoutElement.Width = itemComponent.width;\n }\n }\n }\n //#region Lifecycle\n ngAfterViewInit(): void {\n this.AfterViewInit.next(true);\n }\n\n ngOnInit(): void {\n this.OnInit.next(true);\n }\n\n SetProperties() {\n return new Observable((subscriber) => {\n if (this.data) {\n this.Layout = this.data.Layout;\n this.Disabled = this.data.Disabled;\n this.DataSource = this.data.DataSource;\n this.LayoutElement = this.data.LayoutElement;\n this.Parent = this.data.Parent;\n this.FromBaseLayout = this.data.FromBaseLayout;\n }\n subscriber.next(true);\n });\n }\n\n ngOnDestroy(): void {\n const keys = Object.keys(this.Subscriptions);\n keys.forEach((key) => {\n if (this.Subscriptions[key].unsubscribe) {\n this.Subscriptions[key].unsubscribe();\n }\n });\n this.OnDestroy.next(true);\n this.triggerEvent('OnDestroy');\n }\n //#endregion\n\n OnDataBindingChanged() {\n this.LayoutElement.DataBindingChanged.next(null);\n }\n GetUserSpecificValue() {\n return this.DataSourceValue;\n }\n SetUserSpecificValue(val) {\n this.DataSourceValue = val;\n }\n\n firePropertyChange(prop) {\n if (typeof prop === 'string') {\n LayoutService.OnLayoutPropertyChanged(this.LayoutElementValue.ID, prop, this.LayoutElementValue[prop]);\n } else if (Array.isArray(prop) && prop.length > 0) {\n const multiChange = [];\n prop.forEach(y => {\n multiChange.push({\n PropertyName: y,\n Value: this.LayoutElementValue[y]\n });\n });\n LayoutService.OnMultiLayoutPropertyChanged([{\n ElementIDs: [this.LayoutElementValue.ID],\n Properties: multiChange\n }]);\n }\n }\n\n handleIntersection(visible: boolean) {\n }\n}\n","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { of } from 'rxjs';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { LayoutUnitThicknessComponent } from '../../../appbuilder/controls/layoutunitthickness/layoutunitthickness.component';\nimport { TranslationTextBoxThemeControl } from '../../../appbuilder/controls/translation/translation.textbox.theme.control';\nimport { UnitSelectionControl } from '../../../appbuilder/controls/unittypeselection/unitselection.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { LayoutUnit } from '../../../models/basic/layoutunit.model';\nimport { LayoutUnitThickness } from '../../../models/basic/layoutunitthickness.model';\nimport { Alignment } from '../../../models/enums/alignment.enum';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ElementProperty } from '../../../models/layoutbase.model';\nimport { MenuTabLabelPosition } from '../../../models/menutab/menutab.property.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MediaService } from '../../../services/media.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-button',\n templateUrl: './button.control.html',\n styleUrls: ['./button.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ButtonControl extends IBaseComponent {\n static Type: any = 'button';\n static Default = JSON.parse(JSON.stringify(defaultProperties.button));\n\n //#region Caption\n CaptionValue;\n @Input()\n get Caption() {\n if (this.CaptionValue != null) {\n return this.CaptionValue;\n }\n return this.LayoutElement.Caption;\n }\n set Caption(val) {\n this.CaptionValue = val;\n this.cdRef.detectChanges();\n }\n //#endregion\n\n //#region CaptionPosition\n\n @Input()\n get CaptionPosition() {\n return this.LayoutElement.CaptionPosition;\n }\n set CaptionPosition(val) {\n this.LayoutElement.CaptionPosition = val;\n this.CaptionPositionChange.emit(this.LayoutElement.CaptionPosition);\n this.cdRef.detectChanges();\n }\n\n @Output() CaptionPositionChange = new EventEmitter();\n //#endregion\n\n //#region ButtonType\n @Input()\n get ButtonType() {\n return this.LayoutElement.ButtonType;\n }\n set ButtonType(val) {\n this.LayoutElement.ButtonType = val;\n this.ButtonTypeChange.emit(this.LayoutElement.ButtonType);\n this.cdRef.detectChanges();\n }\n\n @Output() ButtonTypeChange = new EventEmitter();\n //#endregion\n\n //#region Icon\n IconValue;\n @Input()\n get Icon() {\n if (this.IconValue != null) {\n return this.IconValue;\n }\n return this.LayoutElement.Icon;\n }\n set Icon(val) {\n this.IconValue = val;\n this.cdRef.detectChanges();\n }\n //#endregion\n\n //#region IconWidth\n @Input()\n get IconWidth() {\n return this.LayoutElement.IconWidth;\n }\n set IconWidth(val) {\n this.LayoutElement.IconWidth = val;\n this.IconWidthChange.emit(this.LayoutElement.IconWidth);\n this.cdRef.detectChanges();\n }\n\n @Output() IconWidthChange = new EventEmitter();\n //#endregion\n\n //#region IconHeight\n @Input()\n get IconHeight() {\n return this.LayoutElement.IconHeight;\n }\n set IconHeight(val) {\n this.LayoutElement.IconHeight = val;\n this.IconHeightChange.emit(this.LayoutElement.IconHeight);\n this.cdRef.detectChanges();\n }\n\n @Output() IconHeightChange = new EventEmitter();\n //#endregion\n\n\n //#region IconPadding\n @Input()\n get IconPadding() {\n return this.LayoutElement.IconPadding;\n }\n set IconPadding(val) {\n this.LayoutElement.IconPadding = val;\n this.IconPaddingChange.emit(this.LayoutElement.IconPadding);\n this.cdRef.detectChanges();\n }\n\n @Output() IconPaddingChange = new EventEmitter();\n //#endregion\n\n //#region IconMargin\n @Input()\n get IconMargin() {\n return this.LayoutElement.IconMargin;\n }\n set IconMargin(val) {\n this.LayoutElement.IconMargin = val;\n this.IconMarginChange.emit(this.LayoutElement.IconMargin);\n this.cdRef.detectChanges();\n }\n\n @Output() IconMarginChange = new EventEmitter();\n //#endregion\n //#region Tooltip\n TooltipValue;\n @Input()\n get Tooltip() {\n if (this.TooltipValue != null) {\n return this.TooltipValue;\n }\n return this.LayoutElement.Tooltip;\n }\n set Tooltip(val) {\n this.TooltipValue = val;\n this.cdRef.detectChanges();\n }\n //#endregion\n @Output() Click = new EventEmitter();\n\n HorStyle = {\n 'justify-content': 'center'\n };\n VertStyle = {\n 'justify-content': 'center'\n };\n IconStyle = of({\n width: '24px',\n height: '24px'\n });\n\n constructor(cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.EventList.push('click');\n this.PropertyList.push(new ElementProperty('Caption', 'string', '@@Text'));\n this.PropertyList.push(new ElementProperty('Icon', 'string', '@@Icon'));\n this.PropertyList.push(new ElementProperty('Tooltip', 'string', '@@Tooltip'));\n }\n\n ControlInitialized() { \n }\n\n onClick(ev) {\n this.triggerEvent('click', this.DataSourceValue);\n this.Click.emit(ev);\n }\n\n setFocus() {\n let control = document.getElementsByName(this.LayoutElement.ID);\n if (control && control.length == 1) {\n control[0].focus();\n }\n }\n}\nexport class ButtonPanel extends BasePanel {\n static override SIDS = ['5a4ec382-fd55-4164-8edb-2c6c266914f1']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'5a4ec382-fd55-4164-8edb-2c6c266914f1',\n ID: 'Button',\n Caption: '@@Button',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'button' || item.ElementType == 'upload' || item.ElementType == 'download' || item.ElementType == 'tablecolumnvisibility';\n }\n });\n //#region ButtonTypes\n let buttonTypes = [\n {\n Caption: '@@Basic',\n Value: 'mat-button'\n },{\n Caption: '@@Raised',\n Value: 'mat-raised-button'\n },{\n Caption: '@@Stroked',\n Value: 'mat-stroked-button'\n },{\n Caption: '@@Flat',\n Value: 'mat-flat-button'\n },{\n Caption: '@@Icon',\n Value: 'mat-icon-button'\n },{\n Caption: '@@Fab',\n Value: 'mat-fab'\n },{\n Caption: '@@MiniFab',\n Value: 'mat-mini-fab'\n }]\n //#endregion ButtonTypes\n\n //#region CaptionPositions\n let captionPositions = [{\n Caption: '@@Oben',\n Value: 'top'\n },{\n Caption: '@@Rechts',\n Value: 'right'\n },{\n Caption: '@@Unten',\n Value: 'bottom'\n },{\n Caption: '@@Links',\n Value: 'left'\n }]\n //#endregion CaptionPositions\n PROPERTIES.push({\n ID: \"Caption\",\n Parent: \"Button\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Caption\",\n Column: 1,\n Row:1,\n InitArgs: {\n DataType:'string'\n }\n });\n PROPERTIES.push({\n ID: \"Tooltip\",\n Parent: \"Button\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Tooltip\",\n Column: 1,\n Row: 2,\n InitArgs: {\n DataType: 'string'\n }\n });\n PROPERTIES.push({\n ID: \"ButtonType\",\n Parent: \"Button\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Type\",\n Column: 1,\n Row: 3,\n InitArgs: {\n Placeholder: \"@@Type\",\n Multiple: false,\n ItemsSource: buttonTypes,\n ValueMemberPath: \"Value\",\n DisplayMemberPath: \"Caption\"\n }\n });\n \n\n MediaService.IconList.subscribe((result) => {\n if (result) {\n let icons = [];\n result.forEach((icon) => {\n icons.push({ Caption: icon, Icon: icon, Value: icon })\n });\n PROPERTIES.push({\n ID: \"Icon\",\n Parent: \"Button\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Icon\",\n Column: 1,\n Row: 4,\n InitArgs: {\n Placeholder: \"@@Icon\",\n Multiple: false,\n ItemsSource: icons,\n ValueMemberPath: \"Value\",\n DisplayMemberPath: \"Caption\",\n IconMemberPath: \"Icon\"\n }\n });\n }\n });\n \n \n PROPERTIES.push({\n ID: \"CaptionPosition\",\n Parent: \"Button\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@CaptionIconPosition\",\n Column: 1,\n Row: 5,\n CheckVisibility: (item) => {\n return item.Icon;\n },\n InitArgs: {\n Placeholder: \"@@CaptionIconPosition\",\n Multiple: false,\n ItemsSource: captionPositions,\n ValueMemberPath: \"Value\",\n DisplayMemberPath: \"Caption\"\n }\n });\n PROPERTIES.push({\n ID: \"IconWidth\",\n Parent: \"Button\",\n Content: new ComponentPortal(UnitSelectionControl),\n Type: LayoutUnit,\n Label: \"@@IconWidth\",\n LabelPosition: MenuTabLabelPosition.Top,\n Column: 1,\n Row: 6,\n CheckVisibility: (item) => {\n return item.Icon;\n },\n InitArgs: {\n Minimum: 0\n }\n });\n PROPERTIES.push({\n ID: \"IconHeight\",\n Parent: \"Button\",\n Content: new ComponentPortal(UnitSelectionControl),\n Type: LayoutUnit,\n Label: \"@@IconHeight\",\n LabelPosition: MenuTabLabelPosition.Top,\n Column: 1,\n Row: 7,\n CheckVisibility: (item) => {\n return item.Icon;\n },\n InitArgs: {\n Minimum: 0\n }\n });\n PROPERTIES.push({\n ID: \"IconAlignment\",\n Parent: \"Button\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Icon align\",\n Column: 1,\n Row: 8,\n CheckVisibility: (item) => {\n return item.Icon;\n },\n InitArgs: {\n Placeholder: \"\",\n Multiple: false,\n EnumSource: Alignment\n }\n });\n PROPERTIES.push({\n ID: \"IconMargin\",\n Parent: \"Button\",\n Content: new ComponentPortal(LayoutUnitThicknessComponent),\n Type: LayoutUnitThickness,\n Label: \"@@IconMargin\",\n LabelPosition: MenuTabLabelPosition.Top,\n Column: 1,\n Row: 9,\n CheckVisibility: (item) => {\n return item.Icon;\n },\n InitArgs: {\n IsBorderRadius: false\n }\n });\n PROPERTIES.push({\n ID: \"IconPadding\",\n Parent: \"Button\",\n Content: new ComponentPortal(LayoutUnitThicknessComponent),\n Type: LayoutUnitThickness,\n Label: \"@@IconPadding\",\n LabelPosition: MenuTabLabelPosition.Top,\n Column: 1,\n Row: 10,\n CheckVisibility: (item) => {\n return item.Icon;\n },\n InitArgs: {\n IsBorderRadius: false\n }\n });\n }\n}","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output, ViewChild } from '@angular/core';\nimport { UUID } from 'angular2-uuid';\nimport { plainToClass } from 'class-transformer';\nimport { SlickCarouselComponent } from 'ngx-slick-carousel';\nimport { of, Subject } from 'rxjs';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { FileSelectionThemeControl } from '../../../appbuilder/controls/fileselection/fileselection.theme.control';\nimport {\n CarouselMenuTabOptionsChanged, LayoutUnitThicknessComponent\n} from '../../../appbuilder/controls/layoutunitthickness/layoutunitthickness.component';\nimport { ListBoxThemeControl } from '../../../appbuilder/controls/listbox/listbox.theme.control';\nimport { TextAreaThemeControl } from '../../../appbuilder/controls/textarea/textarea.theme.control';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { TranslationTextBoxThemeControl } from '../../../appbuilder/controls/translation/translation.textbox.theme.control';\nimport { UnitSelectionControl } from '../../../appbuilder/controls/unittypeselection/unitselection.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { InjectorHelper } from '../../../helpers/injector.helper';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { RTLHelper } from '../../../helpers/rtl.helper';\nimport { LayoutUnit } from '../../../models/basic/layoutunit.model';\nimport { LayoutUnitThickness } from '../../../models/basic/layoutunitthickness.model';\nimport { MediaSource } from '../../../models/datamodel/mediasource.model';\nimport { AnimationMode } from '../../../models/enums/animationmode.enum';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ElementProperty } from '../../../models/layoutbase.model';\nimport { LayoutElement } from '../../../models/layoutelement.model';\nimport { MenuTabLabelPosition } from '../../../models/menutab/menutab.property.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MediaService } from '../../../services/media.service';\nimport { MetaService } from '../../../services/meta.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-carousel',\n templateUrl: './carousel.control.html',\n styleUrls: ['./carousel.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CarouselControl extends IBaseComponent {\n\n static Type: any = 'carousel';\n static Default = JSON.parse(JSON.stringify(defaultProperties.carousel));\n Template;\n TemplateOriginal;\n URL;\n titleText;\n selectedSlide;\n slickconfig;\n slickconfig2;\n EditMode = false;\n\n //#region AnimationMode\n @Input()\n get AnimationMode() {\n if (!this.LayoutElement.AnimationMode) {\n return AnimationMode[0];\n } else {\n return AnimationMode[this.LayoutElement.AnimationMode];\n }\n\n }\n set AnimationMode(val) {\n this.LayoutElement.AnimationMode = val;\n }\n //#endregion\n\n //#region Images\n ImagesValue;\n\n @Input()\n get Images() {\n if (this.LayoutElement && this.LayoutElement.Images && this.MediaSources && !this.ImagesValue) {\n const result = [];\n this.LayoutElement.Images.forEach((imageSource) => {\n if (imageSource.FileName) {\n const ms = this.MediaSources[imageSource.MediaSource];\n if (ms) {\n const item = {\n src: MediaSource.GetURL(ms, imageSource.FileName),\n desc: imageSource.description,\n title: imageSource.title\n };\n result.push(item);\n }\n }\n });\n this.ImagesValue = result;\n }\n return of(this.ImagesValue);\n }\n set Images(val) {\n this.ImagesValue = val;\n this.ImagesChange.emit(this.ImagesValue);\n this.cdRef.detectChanges();\n }\n\n @Output() ImagesChange = new EventEmitter();\n //#endregion\n\n CheckLayoutElement;\n createOptions;\n //#region AutoPlay\n @Input()\n get AutoPlay() {\n return this.LayoutElement.AutoPlay;\n }\n set AutoPlay(val) {\n this.CheckLayoutElement();\n this.LayoutElement.AutoPlay = val;\n this.createOptions();\n this.AutoPlayChange.emit(this.LayoutElement.AutoPlay);\n }\n\n @Output() AutoPlayChange = new EventEmitter();\n //#endregion\n\n //#region AutoPlaySpeed\n @Input()\n get AutoPlaySpeed() {\n return this.LayoutElement.AutoPlaySpeed;\n }\n set AutoPlaySpeed(val) {\n this.CheckLayoutElement();\n this.LayoutElement.AutoPlaySpeed = val;\n this.createOptions();\n this.AutoPlaySpeedChange.emit(this.LayoutElement.AutoPlaySpeed);\n }\n\n @Output() AutoPlaySpeedChange = new EventEmitter();\n //#endregion\n\n //#region Arrows\n @Input()\n get Arrows() {\n return this.LayoutElement.Arrows;\n }\n set Arrows(val) {\n this.CheckLayoutElement();\n this.LayoutElement.Arrows = val;\n this.createOptions();\n this.ArrowsChange.emit(this.LayoutElement.Arrows);\n }\n\n @Output() ArrowsChange = new EventEmitter();\n //#endregion\n\n //#region ArrowsNav\n @Input()\n get ArrowsNav() {\n return this.LayoutElement.ArrowsNav;\n }\n set ArrowsNav(val) {\n this.CheckLayoutElement();\n this.LayoutElement.Arrows = val;\n this.createOptions();\n this.ArrowsNavChange.emit(this.LayoutElement.ArrowsNav);\n }\n\n @Output() ArrowsNavChange = new EventEmitter();\n //#endregion\n\n //#region Dots\n @Input()\n get Dots() {\n return this.LayoutElement.Dots;\n }\n set Dots(val) {\n this.CheckLayoutElement();\n this.LayoutElement.Dots = val;\n this.createOptions();\n this.DotsChange.emit(this.LayoutElement.Dots);\n }\n\n @Output() DotsChange = new EventEmitter();\n //#endregion\n\n //#region DotsNav\n @Input()\n get DotsNav() {\n return this.LayoutElement.DotsNav;\n }\n set DotsNav(val) {\n this.CheckLayoutElement();\n this.LayoutElement.DotsNav = val;\n this.createOptions();\n this.DotsNavChange.emit(this.LayoutElement.DotsNav);\n }\n\n @Output() DotsNavChange = new EventEmitter();\n //#endregion\n //#region FocusOnSelectNav\n @Input()\n get FocusOnSelectNav() {\n return this.LayoutElement.FocusOnSelectNav;\n }\n set FocusOnSelectNav(val) {\n this.CheckLayoutElement();\n this.LayoutElement.FocusOnSelectNav = val;\n this.createOptions();\n this.FocusOnSelectNavChange.emit(this.LayoutElement.FocusOnSelectNav);\n }\n\n @Output() FocusOnSelectNavChange = new EventEmitter();\n //#endregion\n //#region CenterModeNav\n @Input()\n get CenterModeNav() {\n return this.LayoutElement.CenterModeNav;\n }\n set CenterModeNav(val) {\n this.CheckLayoutElement();\n this.LayoutElement.CenterModeNav = val;\n this.createOptions();\n this.CenterModeNavChange.emit(this.LayoutElement.CenterModeNav);\n }\n\n @Output() CenterModeNavChange = new EventEmitter();\n //#endregion\n\n //#region Fade\n @Input()\n get Fade() {\n return this.LayoutElement.Fade;\n }\n set Fade(val) {\n this.CheckLayoutElement();\n this.LayoutElement.Fade = val;\n this.createOptions();\n this.FadeChange.emit(this.LayoutElement.Fade);\n }\n\n @Output() FadeChange = new EventEmitter();\n //#endregion\n\n //#region Infinite\n @Input()\n get Infinite() {\n return this.LayoutElement.Infinite;\n }\n set Infinite(val) {\n this.CheckLayoutElement();\n this.LayoutElement.Infinite = val;\n this.createOptions();\n this.InfiniteChange.emit(this.LayoutElement.Infinite);\n }\n\n @Output() InfiniteChange = new EventEmitter();\n //#endregion\n\n //#region touchMove\n @Input()\n get TouchMove() {\n return this.LayoutElement.TouchMove;\n }\n set TouchMove(val) {\n this.CheckLayoutElement();\n this.LayoutElement.TouchMove = val;\n this.createOptions();\n this.TouchMoveChange.emit(this.LayoutElement.TouchMove);\n }\n\n @Output() TouchMoveChange = new EventEmitter();\n //#endregion\n\n //#region SlidesToShow\n @Input()\n get SlidesToShow() {\n return this.LayoutElement.SlidesToShow;\n }\n set SlidesToShow(val) {\n this.CheckLayoutElement();\n this.LayoutElement.SlidesToShow = val;\n this.createOptions();\n this.SlidesToShowChange.emit(this.LayoutElement.SlidesToShow);\n }\n\n @Output() SlidesToShowChange = new EventEmitter();\n //#endregion\n\n //#region SlidesToScroll\n @Input()\n get SlidesToScroll() {\n return this.LayoutElement.SlidesToScroll;\n }\n set SlidesToScroll(val) {\n this.CheckLayoutElement();\n this.LayoutElement.SlidesToScroll = val;\n this.createOptions();\n this.SlidesToScrollChange.emit(this.LayoutElement.SlidesToScroll);\n }\n\n @Output() SlidesToScrollChange = new EventEmitter();\n //#endregion\n\n //#region SlidesToShowNav\n @Input()\n get SlidesToShowNav() {\n return this.LayoutElement.SlidesToShowNav;\n }\n set SlidesToShowNav(val) {\n this.CheckLayoutElement();\n this.LayoutElement.SlidesToShowNav = val;\n this.createOptions();\n this.SlidesToShowNavChange.emit(this.LayoutElement.SlidesToShowNav);\n }\n\n @Output() SlidesToShowNavChange = new EventEmitter();\n //#endregion\n\n //#region SlidesToScrollNav\n @Input()\n get SlidesToScrollNav() {\n return this.LayoutElement.SlidesToScrollNav;\n }\n set SlidesToScrollNav(val) {\n this.CheckLayoutElement();\n this.LayoutElement.SlidesToScrollNav = val;\n this.createOptions();\n this.SlidesToScrollNavChange.emit(this.LayoutElement.SlidesToScrollNav);\n }\n\n @Output() SlidesToScrollNavChange = new EventEmitter();\n //#endregion\n\n //#region ShowFilmStrip\n @Input()\n get ShowFilmStrip() {\n return this.LayoutElement.ShowFilmStrip;\n }\n set ShowFilmStrip(val) {\n this.CheckLayoutElement();\n this.LayoutElement.ShowFilmStrip = val;\n this.createOptions();\n this.ShowFilmStripChange.emit(this.LayoutElement.ShowFilmStrip);\n }\n\n @Output() ShowFilmStripChange = new EventEmitter();\n //#endregion\n MediaSources = {};\n UniqueClass = {};\n Templates = [];\n\n slickModal;\n @ViewChild('slickModal') set modal(modal: SlickCarouselComponent) {\n if (modal) {\n this.slickModal = modal;\n }\n };\n slickModalNav;\n @ViewChild('slickModalNav') set modalnav(modalnav: SlickCarouselComponent) {\n if (modalnav) {\n this.slickModalNav = modalnav;\n }\n };\n\n GenerateTemplates() {\n this.Templates = [];\n this.DataSource$ = of([]);\n if (this.Template && this.DataSourceValue && Array.isArray(this.DataSourceValue)) {\n for (var i = 0; i < this.DataSourceValue.length; i++) {\n //#TODO: possible performance issue if to many DataSource Entries are bound ... \n let item = plainToClass(LayoutElement, this.TemplateOriginal);\n item['LoadByReference'] = false;\n item['Parent'] = this.LayoutElement.Parent;\n item.ID = UUID.UUID();\n this.Templates[i] = item\n }\n this.cdRef.detectChanges();\n this.DataSource$ = of(this.DataSourceValue);\n }\n }\n\n constructor(cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data, private service: MetaService) {\n super(cdRef, data);\n this.PropertyList.push(new ElementProperty('Images', 'list', '@@Images'));\n this.Subscriptions['OptionsChanged'] = CarouselPanel.OptionsChanged.subscribe((oc) => {\n try {\n if (oc.Name === this.LayoutElement.Name) {\n this.ImagesValue = null;\n }\n } catch (ex) {\n console.error(ex);\n }\n });\n this.Subscriptions['Overlay'] = LayoutService.OverlayStatus.subscribe((overlay) => {\n this.EditMode = overlay;\n //if (!this.EditMode) {\n // this.updateRepeatElements();\n //}\n });\n this.DataSourceChange.subscribe(() => {\n this.GenerateTemplates();\n });\n }\n ControlInitialized() {\n this.InitConfig();\n this.Subscriptions['Values'] = this.LayoutElementValue.ValuesChanged.subscribe((Property) => {\n this.InitConfig();\n });\n }\n ngOnInit(): void {\n this.Subscriptions['MediaSources'] = MediaService.MediaSources.subscribe((sources) => {\n if (sources) {\n sources.forEach((source) => {\n this.MediaSources[source.SID] = source;\n });\n }\n });\n super.ngOnInit();\n }\n changeSlide(text, slide) {\n this.titleText = text;\n this.selectedSlide = slide;\n }\n IsRtl = false;\n FilmStripVertical = false;\n onLayoutElementSet() {\n const unique = {};\n unique[this.LayoutElementValue.ID] = true;\n this.UniqueClass = unique;\n\n if (this.LayoutElementValue && this.LayoutElementValue.TemplateID && this.LayoutElementValue.UseDataSource) {\n this.service.LoadTemplate(this.LayoutElementValue.TemplateID).subscribe((value) => {\n this.Template = plainToClass(LayoutElement, value);\n this.TemplateOriginal = value;\n this.GenerateTemplates();\n this.cdRef.detectChanges();\n });\n }\n this.IsRtl = RTLHelper.Direction == 'rtl';\n this.Subscriptions['RTL']=RTLHelper.DirectionChanged.subscribe((dir) => {\n this.IsRtl = dir == 'rtl';\n this.InitConfig();\n });\n }\n GetMainStyle() {\n const result = {};\n if (this.LayoutElementValue.NavPosition) {\n switch (this.LayoutElementValue.NavPosition) {\n case 'top':\n case 'bottom':\n result['height'] = '1px';\n break;\n case 'left':\n result['height'] = '100%';\n result['width'] = 'calc(100% - ' + LayoutUnit.ToStyle(this.LayoutElementValue.NavSize) + ')';\n result['float'] = 'right';\n break;\n case 'right':\n result['height'] = '100%';\n result['width'] = 'calc(100% - ' + LayoutUnit.ToStyle(this.LayoutElementValue.NavSize) + ')';\n result['float'] = 'left';\n break;\n }\n }\n return result;\n }\n GetFilmStripStyle() {\n const result = {}; \n if (this.LayoutElementValue.NavPosition) {\n switch (this.LayoutElementValue.NavPosition) {\n case 'top':\n case 'bottom':\n result['height'] = LayoutUnit.ToStyle(this.LayoutElementValue.NavSize);\n break;\n case 'left': \n case 'right':\n result['width'] = LayoutUnit.ToStyle(this.LayoutElementValue.NavSize);\n result['height'] = '100%';\n result['float']=this.LayoutElementValue.NavPosition;\n break;\n }\n } else {\n result['height'] = '200px';\n } \n return result;\n }\n GetFilmStripClass() {\n let result = \"\";\n if (this.LayoutElementValue.NavPosition) {\n switch (this.LayoutElementValue.NavPosition) {\n case 'top':\n result = \"flex-column-reverse\";\n break;\n case 'bottom':\n result = \"flex-column\";\n break;\n case 'left':\n //result = \"flex-row-reverse\";\n break;\n case 'right':\n //result = \"flex-row\";\n break;\n }\n } else {\n result = \"flex-column\";\n }\n return result;\n }\n InitConfig() {\n this.slickconfig = null;\n this.slickconfig2 = null;\n this.cdRef.detectChanges();\n setTimeout(() => {\n this.slickconfig = {\n accessibility: this.Editable && !this.Disabled,\n draggable: this.Editable && !this.Disabled,\n slidesToShow: this.SlidesToShow,\n slidesToScroll: this.SlidesToScroll,\n arrows: false,\n fade: this.Fade,\n autoplay: this.AutoPlay,\n autoplaySpeed: this.AutoPlaySpeed,\n dots: this.Editable && !this.Disabled && this.Dots,\n infinite: this.Infinite,\n touchMove: this.TouchMove,\n dotsClass: 'custom-dots',\n rtl: this.IsRtl,\n customPaging: function (slider, i) {\n return '';\n },\n };\n if (this.ShowFilmStrip) {\n this.slickconfig['asNavFor'] = '.slider-nav.' + this.LayoutElementValue.ID;\n }\n\n this.FilmStripVertical = this.LayoutElementValue.NavPosition && (this.LayoutElementValue.NavPosition == 'left' || this.LayoutElementValue.NavPosition == 'right');\n \n this.slickconfig2 = {\n accessibility: this.Editable && !this.Disabled,\n draggable: this.Editable && !this.Disabled,\n slidesToShow: this.SlidesToShowNav,\n slidesToScroll: this.SlidesToScrollNav,\n asNavFor: '.slider-for.' + this.LayoutElementValue.ID,\n dots: this.Editable && !this.Disabled && this.DotsNav,\n infinite: true,\n vertical: this.FilmStripVertical,\n focusOnSelect: true,\n centerMode: this.CenterModeNav,\n dotsClass: 'custom-dots',\n rtl: this.IsRtl,\n customPaging: function (slider, i) {\n return '';\n },\n };\n this.cdRef.detectChanges();\n }, 50);\n }\n next() {\n if (this.slickModal) {\n this.slickModal.slickNext();\n }\n }\n prev() {\n if (this.slickModal) {\n this.slickModal.slickPrev();\n }\n }\n nextNav() {\n if (this.slickModalNav) {\n this.slickModalNav.slickNext();\n }\n }\n prevNav() {\n if (this.slickModalNav) {\n this.slickModalNav.slickPrev();\n }\n }\n onResized(event) {\n //this.ContainerSize = event.newHeight + 'px';\n }\n\n FirstTimeVisible = false;\n handleIntersection(visible: boolean) {\n if (visible && !this.FirstTimeVisible) {\n this.FirstTimeVisible = true;\n this.cdRef.detectChanges();\n }\n }\n}\nexport class CarouselPanel extends BasePanel {\n static OptionsChanged: Subject = new Subject()\n static override SIDS = ['044c19e9-b174-44ca-870e-88e1e3336e6f', 'f97099b1-1597-480d-ae5b-eb5c24a51e75', '72250507-bda9-4815-92c3-aef077df2437']\n static optionChanged(prop: string, item) {\n const oc = new CarouselMenuTabOptionsChanged();\n oc.Name = item.Name;\n oc.Property = prop;\n CarouselPanel.OptionsChanged.next(oc);\n }\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'044c19e9-b174-44ca-870e-88e1e3336e6f',\n ID: 'carouselds',\n Caption: '@@Carousel Data',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'carousel';\n }\n })\n PROPERTYGROUPS.push({\n SID:'f97099b1-1597-480d-ae5b-eb5c24a51e75',\n ID: 'carouselset',\n Caption: '@@Carousel Settings',\n Index: 101,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'carousel';\n }\n })\n PROPERTYGROUPS.push({\n SID:'72250507-bda9-4815-92c3-aef077df2437',\n ID: 'carouselnav',\n Caption: '@@Carousel Navigation',\n Index: 102,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'carousel' && item.ShowFilmStrip;\n }\n })\n PROPERTIES.push({\n ID: \"UseDataSource\",\n Parent: \"carouselds\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@UseDataSource\"\n },\n Row: 1\n })\n let mediaService = InjectorHelper.InjectorInstance.get(MediaService);\n mediaService.GetUsable().subscribe((data) => {\n PROPERTIES.push({\n ID: \"Images\",\n Parent: \"carouselds\",\n Content: new ComponentPortal(ListBoxThemeControl),\n Row: 2,\n Properties: [\n {\n ID: \"MediaSource\",\n Parent: \"carousel\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@SelectMediaSource\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: data,\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'SID'\n }\n }, {\n ID: \"FileName\",\n Parent: \"carousel\",\n Content: new ComponentPortal(FileSelectionThemeControl),\n CheckVisibility: (item, entry) => {\n return entry.MediaSource;\n }\n }, {\n ID: \"Title\",\n Parent: \"carousel\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Title\",\n InitArgs: {\n DataType: 'string'\n }\n }, {\n ID: \"Description\",\n Parent: \"carousel\",\n Content: new ComponentPortal(TextAreaThemeControl),\n Label: \"@@Description\"\n }\n ],\n CheckVisibility: (item) => {\n return !item.UseDataSource;\n },\n InitArgs: {\n DisplayMemberPath: 'FileName',\n GenerateNewItem: () => {\n return {};\n }\n }\n });\n });\n let metaService = InjectorHelper.InjectorInstance.get(MetaService)\n metaService.ReadTemplateInfos().subscribe((templates) => {\n if (templates) {\n const list = [];\n templates.forEach(wf => {\n list.push({\n Caption: wf.Caption,\n ID: wf.SID,\n IsCapsule: wf.IsCapsule,\n IsOverridden: wf.IsOverridden\n });\n });\n PROPERTIES.push({\n ID: \"TemplateID\",\n Parent: \"carouselds\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@SelectTemplate\",\n Row:2,\n CheckVisibility: (item) => {\n return item.UseDataSource;\n },\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: list,\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'ID'\n }\n })\n }\n });\n PROPERTIES.push({\n ID: \"ShowTitle\",\n Parent: \"carouselset\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@ShowTitle\"\n },\n Row:3\n });\n PROPERTIES.push({\n ID: \"AutoPlay\",\n Parent: \"carouselset\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@AutoPlay\"\n },\n Row:4\n });\n PROPERTIES.push({\n ID: \"Arrows\",\n Parent: \"carouselset\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Arrows\"\n },\n Row:5\n });\n MediaService.IconList.subscribe((icons) => {\n if (icons) {\n let Icons = [];\n icons.forEach((icon) => {\n Icons.push({ Value: icon })\n })\n PROPERTIES.push({\n ID: \"IconPrev\",\n Parent: \"carouselset\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@PreviousIcon\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: Icons,\n DisplayMemberPath: 'Value',\n ValueMemberPath: 'Value',\n IconMemberPath: 'Value'\n },\n CheckVisibility: (item) => {\n return item.Arrows;\n },\n Row:6\n })\n PROPERTIES.push({\n ID: \"IconNext\",\n Parent: \"carouselset\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@NextIcon\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: Icons,\n DisplayMemberPath: 'Value',\n ValueMemberPath: 'Value',\n IconMemberPath: 'Value'\n },\n CheckVisibility: (item) => {\n return item.Arrows;\n },\n Row:7\n })\n PROPERTIES.push({\n ID: \"IconHeight\",\n Parent: \"carouselset\",\n Content: new ComponentPortal(UnitSelectionControl),\n Type: LayoutUnit,\n Label: \"@@IconHeight\",\n CheckVisibility: (item) => {\n return item.Arrows;\n },\n InitArgs: {\n Minimum: 0\n },\n Row:8\n });\n PROPERTIES.push({\n ID: \"IconWidth\",\n Parent: \"carouselset\",\n Content: new ComponentPortal(UnitSelectionControl),\n Type: LayoutUnit,\n Label: \"@@IconWidth\",\n CheckVisibility: (item) => {\n return item.Arrows;\n },\n InitArgs: {\n Minimum: 0\n },\n Row:9\n });\n\n\n PROPERTIES.push({\n ID: \"IconPrevNav\",\n Parent: \"carouselnav\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@PreviousIcon\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: Icons,\n DisplayMemberPath: 'Value',\n ValueMemberPath: 'Value',\n IconMemberPath: 'Value'\n },\n CheckVisibility: (item) => {\n return item.ArrowsNav && item.ShowFilmStrip;\n },\n Row: 19\n })\n PROPERTIES.push({\n ID: \"IconNextNav\",\n Parent: \"carouselnav\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@NextIcon\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: Icons,\n DisplayMemberPath: 'Value',\n ValueMemberPath: 'Value',\n IconMemberPath: 'Value'\n },\n CheckVisibility: (item) => {\n return item.ArrowsNav && item.ShowFilmStrip;\n },\n Row: 20\n })\n PROPERTIES.push({\n ID: \"IconHeightNav\",\n Parent: \"carouselnav\",\n Content: new ComponentPortal(UnitSelectionControl),\n Type: LayoutUnit,\n Label: \"@@IconHeight\",\n CheckVisibility: (item) => {\n return item.ArrowsNav && item.ShowFilmStrip;\n },\n InitArgs: {\n Minimum: 0\n },\n Row: 21\n });\n PROPERTIES.push({\n ID: \"IconWidthNav\",\n Parent: \"carouselnav\",\n Content: new ComponentPortal(UnitSelectionControl),\n Type: LayoutUnit,\n Label: \"@@IconWidth\",\n CheckVisibility: (item) => {\n return item.ArrowsNav && item.ShowFilmStrip;\n },\n InitArgs: {\n Minimum: 0\n },\n Row: 22\n });\n }\n });\n PROPERTIES.push({\n ID: \"Dots\",\n Parent: \"carouselset\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@dots\"\n },\n Row:10\n });\n PROPERTIES.push({\n ID: \"Fade\",\n Parent: \"carouselset\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@fade\"\n },\n Row:11\n });\n PROPERTIES.push({\n ID: \"Infinite\",\n Parent: \"carouselset\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@infinite\"\n },\n Row:12\n });\n PROPERTIES.push({\n ID: \"TouchMove\",\n Parent: \"carouselset\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@touchMove\"\n },\n Row:13\n });\n PROPERTIES.push({\n ID: \"SlidesToShow\",\n Parent: \"carouselset\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@slidesToShow\",\n Row: 14,\n InitArgs: {\n InputType: \"number\",\n Minimum:1\n }\n });\n PROPERTIES.push({\n ID: \"SlidesToScroll\",\n Parent: \"carouselset\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@slidesToScroll\",\n Row: 15,\n InitArgs: {\n InputType: \"number\",\n Minimum: 1\n }\n });\n PROPERTIES.push({\n ID: \"ShowFilmStrip\",\n Parent: \"carouselset\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n Row: 16,\n InitArgs: {\n Caption: \"@@ShowFilmStrip\",\n Action: (ev) => {\n LayoutHelper.RefreshMenuTabs.next(null);\n }\n },\n CheckVisibility: (item) => {\n return !item.UseDataSource;\n }\n });\n PROPERTIES.push({\n ID: \"InnerMargin\",\n Parent: \"carouselset\",\n Content: new ComponentPortal(LayoutUnitThicknessComponent),\n Label: \"@@Margin\",\n Row: 17,\n Type: LayoutUnitThickness,\n InitArgs: {\n Minimum: 0\n }\n });\n\n PROPERTIES.push({\n ID: \"ArrowsNav\",\n Parent: \"carouselnav\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Arrows\"\n },\n Row: 18,\n CheckVisibility: (item) => {\n return item.ShowFilmStrip;\n }\n });\n PROPERTIES.push({\n ID: \"DotsNav\",\n Parent: \"carouselnav\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@dots\"\n },\n Row: 23,\n CheckVisibility: (item) => {\n return item.ShowFilmStrip;\n }\n });\n PROPERTIES.push({\n ID: \"SlidesToShowNav\",\n Parent: \"carouselnav\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@NavSlidesToShow\",\n Row: 24,\n InitArgs: {\n InputType: \"number\",\n Minimum: 1\n },\n CheckVisibility: (item) => {\n return item.ShowFilmStrip;\n }\n });\n PROPERTIES.push({\n ID: \"SlidesToScrollNav\",\n Parent: \"carouselnav\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@NavSlidesToScroll\",\n Row: 25,\n InitArgs: {\n InputType: \"number\",\n Minimum: 1\n },\n CheckVisibility: (item) => {\n return item.ShowFilmStrip;\n }\n });\n PROPERTIES.push({\n ID: \"FocusOnSelectNav\",\n Parent: \"carouselnav\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@focusOnSelect\"\n },\n Row: 26,\n CheckVisibility: (item) => {\n return item.ShowFilmStrip;\n }\n });\n PROPERTIES.push({\n ID: \"CenterModeNav\",\n Parent: \"carouselnav\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@centerMode\"\n },\n Row: 27,\n CheckVisibility: (item) => {\n return item.ShowFilmStrip;\n }\n });\n PROPERTIES.push({\n ID: \"NavSize\",\n Parent: \"carouselnav\",\n Content: new ComponentPortal(UnitSelectionControl),\n Label: \"@@NavSize\",\n LabelPosition: MenuTabLabelPosition.Top,\n Row: 28,\n Type: LayoutUnit,\n InitArgs: {\n Minimum: 0\n },\n CheckVisibility: (item) => {\n return item.ShowFilmStrip;\n }\n });\n PROPERTIES.push({\n ID: \"NavPosition\",\n Parent: \"carouselnav\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Position\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: [{\n Caption: '@@Oben',\n Value: 'top'\n }, {\n Caption: '@@Rechts',\n Value: 'right'\n }, {\n Caption: '@@Unten',\n Value: 'bottom'\n }, {\n Caption: '@@Links',\n Value: 'left'\n }],\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'Value'\n },\n CheckVisibility: (item) => {\n return item.ShowFilmStrip;\n },\n Row: 29\n })\n }\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { deserialize, serialize } from 'class-transformer';\nimport { ChartData } from '../../../helpers/chart.data';\nimport { FilterHelper } from '../../../helpers/filter.helper';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { ChartSettings } from '../../../models/controls/chart.model';\nimport { AxisTextPosition } from '../../../models/enums/axistextposition.enum';\nimport { ElementProperty } from '../../../models/layoutbase.model';\nimport { RequestFilter } from '../../../models/rest/requestfilter';\nimport { Color } from '../../../models/style/color.model';\nimport { DataService } from '../../../services/data.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { SettingsService } from '../../../services/settings.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-charts',\n templateUrl: './charts.control.html',\n styleUrls: ['./charts.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ChartsControl extends IBaseComponent {\n static Type: any = 'charts';\n static Default = JSON.parse(JSON.stringify(defaultProperties.charts));\n\n private SourceValue: any[];\n get Source() {\n return this.SourceValue;\n }\n set Source(val) {\n this.FillSource(val);\n }\n\n ChartData;\n\n //#region DataSource\n DataSourceValue;\n @Input()\n get DataSource() {\n return this.DataSourceValue;\n }\n set DataSource(val) {\n this.FillSource(val);\n this.DataSourceChange.emit(val);\n this.triggerEvent('DataSourceChanged', this.DataSourceValue);\n }\n @Output() DataSourceChange = new EventEmitter();\n //#endregion\n //#region ChartSettings\n ChartSettingsValue;\n @Input()\n get ChartSettings() {\n if (this.ChartSettingsValue != null) {\n return this.ChartSettingsValue;\n }\n return this.LayoutElement.ChartSettings;\n }\n set ChartSettings(val) {\n this.ChartSettingsValue = val;\n this.SetChartData();\n }\n //#endregion\n\n DateFields = [];\n CSSStyles;\n GeneralSettings = null; \n\n constructor(private dataService: DataService, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.EventList.push('SelectionChanged');\n let settings = localStorage.getItem(\"GeneralSettings\");\n if (settings) {\n this.GeneralSettings = JSON.parse(settings);\n }\n SettingsService.GeneralSettings.subscribe((settings) => {\n this.GeneralSettings = settings;\n });\n this.PropertyList.push(new ElementProperty('Source', 'list', '@@Source'));\n this.PropertyList.push(new ElementProperty('ChartSettings', 'object', '@@ChartSettings'));\n }\n\n ChartPropChanged(prop) {\n this.SetCSSClass();\n this.SetChartData();\n }\n\n ControlInitialized() {\n this.ExecuteRefresh();\n }\n SetCSSClass() {\n const head = document.getElementsByTagName('head')[0];\n\n if (this.CSSStyles) {\n this.CSSStyles.forEach((style) => {\n try {\n head.removeChild(style);\n } catch {}\n })\n }\n this.CSSStyles = []; \n if (this.LayoutElementValue && this.LayoutElementValue.Font && this.LayoutElementValue.Font.FontColor) {\n const colorText = Color.GetStyleText(this.LayoutElementValue.Font.FontColor);\n if (colorText) {\n let radialstyle = document.createElement('style');\n radialstyle.type = 'text/css';\n radialstyle.appendChild(document.createTextNode('.LE_' + this.LayoutElementValue.ID + ' > *, .text-stroke { fill: ' + colorText+'!important; }'));\n this.CSSStyles.push(radialstyle);\n head.appendChild(radialstyle);\n\n let angularstyle = document.createElement('style');\n angularstyle.type = 'text/css';\n angularstyle.appendChild(document.createTextNode('.LE_' + this.LayoutElementValue.ID + ' > *, .text-stroke { fill: ' + colorText+'!important; }'));\n this.CSSStyles.push(angularstyle);\n head.appendChild(angularstyle);\n } \n }\n\n this.cdRef.markForCheck();\n }\n ExecuteRefresh() {\n this.FillSource(null);\n this.SetCSSClass();\n MetaHelper.FindTableProperties(this.Layout, this.LayoutElementValue).then((result) => {\n if (result) {\n const dse = MetaHelper.FindValidParent(this.Layout, this.LayoutElementValue);\n const filter = FilterHelper.PrepareFilter(dse);\n if (this.Variables && this.Layout.Filter) {\n this.Layout.Filter.forEach((fil) => {\n if (this.Variables[fil.Filter]) {\n const item = new RequestFilter();\n item.Name = fil.Name;\n item.Operator = fil.Comparer;\n item.Value = this.Variables[fil.Filter];\n FilterHelper.AddSearchFilter(filter, item);\n }\n });\n }\n this.DateFields = [];\n if (result.Fields) {\n result.Fields.forEach(x => {\n if (x.DataTyp === 'System.DateTime') {\n this.DateFields.push(x.Name);\n }\n });\n }\n this.dataService.SearchObjects('dynamicdata', result.SID, filter).subscribe((data) => {\n if (data) {\n this.FillSource(data);\n this.cdRef.detectChanges();\n }\n });\n } else if (this.DataSourceValue) {\n this.FillSource(this.DataSourceValue);\n }\n });\n }\n SelectionChanged(event) {\n this.triggerEvent('SelectionChanged', event);\n }\n\n FillSource(source) {\n let data;\n if (source && source.length > 0) {\n data = [];\n source.forEach(x => {\n const dataVal = Object.assign({}, x);\n this.DateFields.forEach(y => {\n const val = dataVal[y];\n if (typeof val !== 'undefined' && val !== null && !(val instanceof Date)) {\n dataVal[y] = new Date(val);\n }\n });\n data.push(dataVal);\n });\n }\n this.SourceValue = data;\n this.SetChartData();\n }\n\n SetChartData() {\n let chartData;\n const source = this.SourceValue;\n if (source && source.length > 0) {\n const settings = this.ChartSettings;\n if (settings) {\n const json = serialize(settings);\n const copy = deserialize(ChartSettings, json);\n if (this.LayoutElementValue && this.LayoutElementValue.UsePaletteForSingleSeries &&\n copy.Series && copy.Series.length == 1) {\n ChartData.GetPalette(copy).then(x => {\n if (x && x.length > 0) {\n const styleKey = '_PalleteStyle_';\n copy.Series[0]['StyleKey'] = styleKey;\n source.forEach((row, i) => {\n row[styleKey] = '' + (i % x.length);\n });\n const styles = {};\n x.forEach((y, i) => {\n styles['' + i] = y;\n });\n this.ChartData = {\n Data: {\n Data: source,\n Styles: styles\n },\n Settings: copy\n };\n this.cdRef.detectChanges();\n } else {\n this.ChartData = {\n Data: source,\n Settings: copy\n };\n this.cdRef.detectChanges();\n }\n });\n return;\n }\n chartData = {\n Data: source,\n Settings: copy\n };\n }\n }\n this.ChartData = chartData;\n this.cdRef.detectChanges();\n }\n}\n","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { TranslationTextBoxThemeControl } from '../../../appbuilder/controls/translation/translation.textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ElementProperty } from '../../../models/layoutbase.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-checkbox',\n templateUrl: './checkbox.control.html',\n styleUrls: ['./checkbox.control.css']\n})\nexport class CheckBoxControl extends IBaseComponent {\n static Type: any = 'checkbox';\n static Default = JSON.parse(JSON.stringify(defaultProperties.checkbox));\n\n //#region IsChecked\n @Input()\n get IsChecked() {\n if (typeof this.DataSourceValue === 'boolean') {\n return this.DataSourceValue;\n }\n return false;\n }\n set IsChecked(val) {\n this.DataSource = val;\n this.IsCheckedChange.emit(val);\n }\n\n @Output() IsCheckedChange = new EventEmitter();\n //#endregion\n //#region LabelPosition\n @Input()\n get LabelPosition() {\n return this.LayoutElement.LabelPosition;\n }\n set LabelPosition(val) {\n this.LayoutElement.LabelPosition = val;\n this.LabelPositionChange.emit(this.LayoutElement.LabelPosition);\n }\n\n @Output() LabelPositionChange = new EventEmitter();\n //#endregion\n //#region Caption\n CaptionValue;\n @Input()\n get Caption() {\n if (this.CaptionValue != null) {\n return this.CaptionValue;\n }\n return this.LayoutElement.Caption;\n }\n set Caption(val) {\n this.CaptionValue = val;\n this.cdRef.detectChanges();\n }\n //#endregion\n\n @Output() OnCheckedChanged = new EventEmitter();\n\n constructor(cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.EventList.push('checked');\n this.EventList.push('unchecked');\n this.PropertyList.push(new ElementProperty('Caption', 'string', '@@Caption'));\n }\n\n ControlInitialized() {\n }\n\n onChange(ev) {\n if (ev.checked) {\n this.triggerEvent('checked');\n } else {\n this.triggerEvent('unchecked');\n }\n this.OnCheckedChanged.emit(ev.checked);\n }\n\n setFocus() {\n let control = document.getElementById(this.LayoutElement.ID);\n if (control) {\n control.focus();\n }\n }\n}\nexport class CheckBoxPanel extends BasePanel {\n static override SIDS = ['50d1ec13-23ef-4c72-ac9c-01eef226836e']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'50d1ec13-23ef-4c72-ac9c-01eef226836e',\n ID: 'checkbox',\n Caption: '@@CheckBox',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'checkbox';\n }\n })\n\n PROPERTIES.push({\n ID: \"Caption\",\n Parent: \"checkbox\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Caption\",\n InitArgs: {\n DataType: 'string'\n }\n });\n PROPERTIES.push({\n ID: \"LabelPosition\",\n Parent: \"checkbox\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@LabelPosition\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: [{\n Caption: '@@After',\n Value: 'after'\n }, {\n Caption: '@@Before',\n Value: 'before'\n }],\n ValueMemberPath: \"Value\",\n DisplayMemberPath: \"Caption\"\n }\n })\n\n }\n}","import { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { of } from 'rxjs';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Inject, Input, Output, ViewChild } from '@angular/core';\nimport { MatChipInputEvent } from '@angular/material/chips';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { TranslationTextBoxThemeControl } from '../../../appbuilder/controls/translation/translation.textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { MenuTabLabelPosition } from '../../../models/menutab/menutab.property.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { IBaseComponent } from '../base.component';\nimport { NotificationHelper } from \"../../../helpers/notification.helper\";\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n@Component({\n selector: 'evi-chiplist',\n templateUrl: 'chiplist.control.html',\n styleUrls: ['chiplist.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ChipListControl extends IBaseComponent {\n\n static Type: any = 'chiplist';\n static Default = JSON.parse(JSON.stringify(defaultProperties.chiplist));\n ControlStyling = false;\n SeparatorKeysCodes: number[] = [ENTER, COMMA];\n list: any = []\n //#region Selectable\n @Input()\n get Selectable(): string {\n return this.LayoutElement.Selectable;\n }\n set Selectable(val: string) {\n this.LayoutElement.Selectable = val;\n this.SelectableChange.emit(this.LayoutElement.Selectable);\n }\n\n @Output() SelectableChange = new EventEmitter();\n //#endregion\n //#region Removable\n @Input()\n get Removable(): string {\n return this.LayoutElement.Removable;\n }\n set Removable(val: string) {\n this.LayoutElement.Removable = val;\n this.RemovableChange.emit(this.LayoutElement.Removable);\n }\n\n @Output() RemovableChange = new EventEmitter();\n //#endregion\n //#region AddOnBlur\n @Input()\n get AddOnBlur(): string {\n return this.LayoutElement.AddOnBlur;\n }\n set AddOnBlur(val: string) {\n this.LayoutElement.AddOnBlur = val;\n this.AddOnBlurChange.emit(this.LayoutElement.AddOnBlur);\n }\n\n @Output() AddOnBlurChange = new EventEmitter();\n //#endregion\n //#region Placeholder\n @Input()\n get Placeholder() {\n return this.LayoutElement.Placeholder;\n }\n set Placeholder(val) {\n this.LayoutElement.Placeholder = val;\n this.PlaceholderChange.emit(this.LayoutElement.Placeholder);\n }\n\n @Output() PlaceholderChange = new EventEmitter();\n //#endregion\n //#region InputType\n @Input()\n get InputType(): string {\n return this.LayoutElement.InputType;\n }\n set InputType(val: string) {\n this.LayoutElement.InputType = val;\n this.InputTypeChange.emit(this.LayoutElement.InputType);\n }\n\n @Output() InputTypeChange = new EventEmitter();\n //#endregion\n //#region Minimum\n @Input()\n get Minimum(): string {\n return this.LayoutElement.Minimum;\n }\n set Minimum(val: string) {\n this.LayoutElement.Minimum = val;\n this.MinimumChange.emit(this.LayoutElement.Minimum);\n }\n\n @Output() MinimumChange = new EventEmitter();\n //#endregion\n //#region Maximum\n @Input()\n get Maximum(): string {\n return this.LayoutElement.Maximum;\n }\n set Maximum(val: string) {\n this.LayoutElement.Maximum = val;\n this.MaximumChange.emit(this.LayoutElement.Maximum);\n }\n\n @Output() MaximumChange = new EventEmitter();\n //#endregion\n\n constructor(cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.EventList.push('ValueChanged');\n }\n ControlInitialized() {\n if (this.LayoutElement.ControlStyling) {\n this.list = this.DataSource.split(',');\n } else {\n this.list = this.DataSource;\n }\n }\n add(event: MatChipInputEvent): void {\n const input = event.input;\n const value = event.value;\n if (input.type == \"number\") {\n if (this.Maximum!==null) {\n if (parseInt(value) > parseInt(this.Maximum)) {\n NotificationHelper.Error(\"Value should be less than \"+this.Maximum,\"Failed to add number\")\n return;\n }\n }\n if (this.Minimum!==null) {\n if (parseInt(value) < parseInt(this.Minimum)) {\n NotificationHelper.Error(\"Value should be greater than \"+this.Minimum,\"Failed to add number\")\n return;\n }\n }\n }\n if (!this.DataSource) {\n this.DataSource = [];\n this.list = [];\n\n }\n // Add our fruit\n if ((value || '').trim()) {\n if (!this.LayoutElement.ControlStyling) {\n this.DataSource.push(value.trim());\n }\n this.list.push(value.trim())\n\n }\n\n // Reset the input value\n if (input) {\n input.value = '';\n }\n this.triggerEvent('ValueChanged', this.DataSourceValue);\n }\n List;\n ngOnInit(): void {\n // this.List = \n }\n remove(item): void {\n const index = this.list.indexOf(item);\n ;\n\n if (index >= 0) {\n this.list.splice(index, 1);\n if (!this.LayoutElement.ControlStyling) {\n this.DataSource.splice(index, 1);\n }\n this.triggerEvent('ValueChanged', this.DataSourceValue);\n }\n }\n\n setFocus() {\n let control = document.getElementById(this.LayoutElement.ID);\n if (control) {\n control.focus();\n }\n }\n}\nexport class ChipListPanel extends BasePanel {\n static override SIDS = ['d178a9e2-bd88-4afc-aef6-37742c4bca36']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID: 'd178a9e2-bd88-4afc-aef6-37742c4bca36',\n ID: 'chiplist',\n Caption: '@@ChipList',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'chiplist';\n }\n });\n //#region InputTypes\n let inputTypes = [{\n Caption: '@@Number',\n Value: 'number'\n }, {\n Caption: '@@Text',\n Value: 'text'\n }];\n //#endregion\n PROPERTIES.push({\n ID: \"Placeholder\",\n Parent: \"chiplist\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Placeholder\",\n InitArgs: {\n DataType: 'string'\n }\n });\n PROPERTIES.push({\n ID: \"InputType\",\n Parent: \"chiplist\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Input type\",\n InitArgs: {\n Placeholder: \"@@Type\",\n Multiple: false,\n ItemsSource: inputTypes,\n ValueMemberPath: \"Value\",\n DisplayMemberPath: \"Caption\"\n }\n });\n PROPERTIES.push({\n ID: \"Minimum\",\n Parent: \"chiplist\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Minimum\",\n CheckVisibility: (item) => {\n return item.InputType == 'number';\n },\n InitArgs: {\n InputType: \"number\"\n }\n });\n PROPERTIES.push({\n ID: \"Maximum\",\n Parent: \"chiplist\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Maximum\",\n CheckVisibility: (item) => {\n return item.InputType == 'number';\n },\n InitArgs: {\n InputType: \"number\"\n }\n });\n PROPERTIES.push({\n ID: \"Selectable\",\n Parent: \"chiplist\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Selectable\"\n }\n });\n PROPERTIES.push({\n ID: \"Removable\",\n Parent: \"chiplist\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Removable\"\n }\n });\n PROPERTIES.push({\n ID: \"AddOnBlur\",\n Parent: \"chiplist\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@AddOnBlur\"\n }\n });\n }\n}","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output, ViewChild } from '@angular/core';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { FormulaTextBoxThemeControl } from '../../../appbuilder/controls/formulabox/formula.textbox.theme.control';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { TranslationTextBoxThemeControl } from '../../../appbuilder/controls/translation/translation.textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { CacheService } from '../../../cache/cache.service';\nimport { ACaptionGetter, DefaultCaptionGetter } from '../../../helpers/acaptiongetter';\nimport { ArrayHelpers } from '../../../helpers/array.helpers';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { FilterHelper } from '../../../helpers/filter.helper';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { RTLHelper } from '../../../helpers/rtl.helper';\nimport { VariablesNodeInformation } from '../../../models/basic/formulaEditor.model';\nimport { Comparer } from '../../../models/enums/comparer.enum';\nimport { Order } from '../../../models/enums/order.enum';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ElementProperty } from '../../../models/layoutbase.model';\nimport { RequestFilter } from '../../../models/rest/requestfilter';\nimport { RequestOptions } from '../../../models/rest/requestoptions';\nimport { DataService } from '../../../services/data.service';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LanguageService } from '../../../services/language.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { ComponentFilterControl } from '../../common/componentfilter/componentfilter.control';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-combobox',\n templateUrl: './combobox.control.html',\n styleUrls: ['./combobox.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ComboBoxControl extends IBaseComponent {\n static Type: any = 'combobox';\n static Default = JSON.parse(JSON.stringify(defaultProperties.combobox));\n @ViewChild('menuTrigger') menuTrigger: MatMenuTrigger;\n //#region SelectedItem\n SelectedItemValue;\n\n @Input()\n get SelectedItem() {\n return this.SelectedItemValue;\n }\n set SelectedItem(val) {\n this.SelectedItemValue = val;\n this.SelectedItemChange.emit(this.SelectedItemValue);\n this.cdRef.detectChanges();\n }\n\n @Output() SelectedItemChange = new EventEmitter();\n //#endregion\n //#region DataSource\n @Input()\n get DataSource() {\n return this.SelectedItemValue;\n }\n set DataSource(val) {\n this.SelectedItemValue = val;\n this.InternalSelection = null;\n this.CheckData();\n this.DataSourceChange.emit(this.SelectedItemValue);\n this.SelectedItemChange.emit(this.SelectedItemValue);\n this.triggerEvent('DataSourceChanged', this.DataSourceValue);\n this.RefreshCount += 1;\n this.cdRef.detectChanges();\n }\n @Output() DataSourceChange = new EventEmitter();\n //#endregion\n //#region ItemsSource\n ItemsSourceValue;\n @Input()\n get ItemsSource() {\n return this.ItemsSourceValue;\n }\n set ItemsSource(val) {\n if (Array.isArray(val)) {\n if (this.LayoutElementValue.DisplayMemberPath) {\n switch (this.LayoutElementValue.Order) {\n case Order.ASC:\n ArrayHelpers.sortAlphabetical(val, this.LayoutElementValue.DisplayMemberPath);\n break;\n case Order.DESC:\n ArrayHelpers.sortAlphabetical(val, this.LayoutElementValue.DisplayMemberPath);\n val.reverse();\n break;\n }\n } else {\n switch (this.LayoutElementValue.Order) {\n case Order.ASC:\n val.sort((a, b) => {\n const aVal = ('' + a).toLowerCase();\n const bVal = ('' + b).toLowerCase();\n if (aVal < bVal) {\n return -1;\n }\n if (aVal > bVal) {\n return 1;\n }\n return 0;\n });\n break;\n case Order.DESC:\n val.sort((a, b) => {\n const aVal = ('' + a).toLowerCase();\n const bVal = ('' + b).toLowerCase();\n if (aVal > bVal) {\n return -1;\n }\n if (aVal < bVal) {\n return 1;\n }\n return 0;\n });\n break;\n }\n }\n this.InternalItemsSource = this.ConvertData(val);\n this.Count = this.InternalItemsSource.length;\n }\n \n this.ItemsSourceValue = val;\n this.CheckData();\n this.ItemsSourceChange.emit(this.ItemsSourceValue);\n this.cdRef.detectChanges();\n }\n\n @Output() ItemsSourceChange = new EventEmitter();\n //#endregion\n //#region InternalItemsSource\n InternalItemsSourceValue;\n\n @Input()\n get InternalItemsSource() {\n return this.InternalItemsSourceValue;\n }\n set InternalItemsSource(val) {\n //if (Array.isArray(val) && this.LayoutElementValue.DisplayMemberPath) {\n // switch (this.LayoutElementValue.Order) {\n // case Order.ASC:\n // ArrayHelpers.sortAlphabetical(val, this.LayoutElementValue.DisplayMemberPath);\n // break;\n // case Order.DESC:\n // ArrayHelpers.sortAlphabetical(val, this.LayoutElementValue.DisplayMemberPath);\n // val.reverse();\n // break;\n // }\n //}\n this.InternalItemsSourceValue = val;\n this.CheckData();\n this.InternalItemsSourceChange.emit(this.InternalItemsSourceValue);\n this.cdRef.detectChanges();\n }\n\n @Output() InternalItemsSourceChange = new EventEmitter();\n //#endregion\n //#region Caption\n CaptionValue;\n\n @Input()\n get Caption() {\n return this.CaptionValue;\n }\n set Caption(val) {\n this.CaptionValue = val;\n this.CaptionChange.emit(this.CaptionValue);\n }\n\n @Output() CaptionChange = new EventEmitter();\n //#endregion\n //#region Selection\n _Selection;\n get Selection() {\n return this._Selection;\n }\n set Selection(value) {\n if (this._Selection != value) {\n this._Selection = value;\n if (this.InternalItemsSourceValue) {\n this.InternalItemsSourceValue.forEach((item) => {\n item.selected = false;\n item.focus = false;\n });\n }\n if (this.Multiple) {\n if (Array.isArray(value) && value.length == 0) {\n this._Selection = null;\n this.SelectedItem = [];\n } else {\n if (!this.DataSource || !Array.isArray(this.DataSource)) {\n this.SelectedItem = [];\n }\n const list = [];\n if (this._Selection) {\n this._Selection.forEach((val) => {\n val.selected = true;\n if (!this.ValueMemberPath || this.LayoutElementValue.IsReverse) {\n list.push(val.data);\n } else {\n list.push(val.data[this.ValueMemberPath]);\n }\n });\n }\n this.SelectedItem = list;\n }\n } else {\n if (typeof (value) == 'object' && value && value.data) {\n if (!this.ValueMemberPath || this.LayoutElementValue.IsReverse) {\n this.SelectedItem = value.data;\n } else {\n if (typeof (value.data) == 'object') {\n this.SelectedItem = value.data[this.ValueMemberPath] != null ? value.data[this.ValueMemberPath] : value;\n } else {\n this.SelectedItem = value;\n }\n }\n } else if (Array.isArray(value)) {\n\n } else {\n this.SelectedItem = value;\n }\n if (this._Selection) {\n this._Selection.selected = true;\n }\n }\n this.DataSourceChange.emit(this.SelectedItemValue);\n this.onSelectionChange(null);\n }\n }\n //#endregion\n //#region DisplayMemberPath\n @Input()\n get DisplayMemberPath() {\n return this.LayoutElementValue.DisplayMemberPath;\n }\n set DisplayMemberPath(val) {\n this.LayoutElementValue.DisplayMemberPath = val;\n this.UpdateCaptionGetter();\n this.DisplayMemberPathChange.emit(this.LayoutElementValue.DisplayMemberPath);\n }\n\n @Output() DisplayMemberPathChange = new EventEmitter();\n //#endregion\n //#region ValueMemberPath\n @Input()\n get ValueMemberPath() {\n return this.LayoutElementValue.ValueMemberPath;\n }\n set ValueMemberPath(val) {\n this.LayoutElementValue.ValueMemberPath = val;\n this.ValueMemberPathChange.emit(this.LayoutElementValue.ValueMemberPath);\n }\n\n @Output() ValueMemberPathChange = new EventEmitter();\n //#endregion\n //#region Multiple\n @Input()\n get Multiple() {\n return this.LayoutElementValue.Multiple;\n }\n set Multiple(val) {\n this.LayoutElementValue.Multiple = val;\n this.MultipleChange.emit(this.LayoutElementValue.Multiple);\n }\n\n @Output() MultipleChange = new EventEmitter();\n //#endregion\n //#region Placeholder\n @Input()\n get Placeholder() {\n return this.LayoutElementValue.Placeholder;\n }\n set Placeholder(val) {\n this.LayoutElementValue.Placeholder = val;\n this.PlaceholderChange.emit(this.LayoutElementValue.Placeholder);\n }\n\n @Output() PlaceholderChange = new EventEmitter();\n //#endregion\n SearchValue;\n Component;\n _Count = 0;\n get Count() {\n return this._Count;\n }\n set Count(value) {\n this._Count = value;\n if (value > 10) {\n this._Height = 10 * this.LineHeight;\n } else {\n this._Height = value * this.LineHeight;\n }\n if (value == 0) {\n this._Height = this.LineHeight;\n }\n if (this.LayoutElementValue.ShowFilter) {\n this._Height += 60;\n }\n }\n _Height = this.LineHeight;\n get Height() {\n if (this.HorizontalScrollBarVisible) {\n return this._Height + 15;\n } else {\n return this._Height;\n }\n }\n set Height(value) {\n this._Height = value;\n }\n hsbv;\n get HorizontalScrollBarVisible() {\n return this.hsbv;\n }\n set HorizontalScrollBarVisible(value) {\n if (this.hsbv != value) {\n this.hsbv = value;\n this.cdRef.detectChanges();\n }\n }\n ChangeHSBV(value) {\n this.hsbv = value;\n }\n get LineHeight() {\n if (this.LayoutElementValue.LineHeight) {\n return this.LayoutElementValue.LineHeight;\n } else {\n return 40;\n }\n }\n get PageSize() {\n if (this.LayoutElementValue.PageSize) {\n return this.LayoutElementValue.PageSize;\n } else {\n return 20;\n }\n }\n get MaxHeight() {\n if (this.LayoutElementValue.ComboMaxHeight) {\n return this.LayoutElementValue.ComboMaxHeight;\n } else {\n return 400;\n }\n }\n DisableAutoLoad = false;\n DataSourceID;\n FieldList = [];\n CaptionGetter: ACaptionGetter = new DefaultCaptionGetter();\n @Output() SelectionChanged = new EventEmitter();\n SelectedObject;\n SelectionLoaded = false;\n InternalSelection;\n IsRtl = false;\n DelayTrigger = false;\n constructor(private dataService: DataService, private translate: TranslateService,\n cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.Component = this;\n this.EventList.push('selectionchanged');\n this.EventList.push('newentryselected');\n this.EventList.push('OnFocus');\n this.PropertyList.push(new ElementProperty('ItemsSource', 'object', '@@ItemsSource'));\n this.PropertyList.push(new ElementProperty('InternalItemsSource', 'object', '@@InternalItemsSource')); \n }\n ngOnInit() {\n super.ngOnInit();\n this.IsRtl = RTLHelper.Direction === 'rtl';\n this.Subscriptions['RTL'] = RTLHelper.DirectionChanged.subscribe((dir) => {\n this.IsRtl = dir === 'rtl';\n });\n LanguageService.LanguageChanged.subscribe(() => {\n this.UpdateCaptionGetter();\n this.cdRef.detectChanges();\n })\n }\n ControlInitialized() {\n this.initConfig();\n this.Subscriptions['Values'] = this.LayoutElementValue.ValuesChanged.subscribe((Property) => {\n this.initConfig();\n });\n }\n \n initConfig() {\n this.UpdateCaptionGetter();\n\n this.DisableAutoLoad = this.LayoutElementValue.DisableAutoLoad;\n if (this.LayoutElementValue.IsEnum) {\n if (this.LayoutElementValue && this.LayoutElementValue.DataSourceID) {\n EnumHelper.GetEnumValues(this.LayoutElementValue.DataSourceID).then((data) => {\n this.DisplayMemberPath = 'Caption';\n this.ValueMemberPath = 'Value';\n this.ItemsSource = data;\n this.cdRef.detectChanges();\n });\n }\n } else {\n if (this.LayoutElementValue.DataSourceID && this.LayoutElementValue.DataSourceID !== '00000000-0000-0000-0000-000000000000') {\n CacheService.ReadTable(this.LayoutElementValue.DataSourceID).then((result) => {\n this.DataSourceID = this.LayoutElementValue.DataSourceID;\n this.FieldList = result['Fields'];\n this.UpdateCaptionGetter();\n this.CheckData();\n this.setCount(true);\n });\n } else {\n MetaHelper.FindTableProperties(this.LayoutValue, this.LayoutElementValue).then(result => {\n if (result) {\n if (result.IsEnum) {\n EnumHelper.GetEnumValues(result.SID).then((data) => {\n this.DisplayMemberPath = 'Caption';\n this.ValueMemberPath = 'Value';\n this.ItemsSource = data;\n this.cdRef.detectChanges();\n });\n } else if (result.Fields) {\n const field = result.Fields.find(x => x.ID === this.LayoutElementValue.DataSource);\n if (field && MetaHelper.FieldFitsForElementType(field, this.LayoutElementValue.ElementType)) {\n this.DataSourceID = this.LayoutElementValue.DataSourceID;\n this.FieldList = result.Fields;\n this.UpdateCaptionGetter();\n this.CheckData();\n this.setCount(true);\n }\n }\n }\n });\n }\n }\n }\n\n clicked() {\n this.triggerEvent('OnFocus', this.DataSource);\n }\n Focus = false;\n setFocus() {\n const control = document.getElementById(this.LayoutElementValue.ID);\n if (control) {\n control.focus();\n }\n }\n\n getDisplayName(data) {\n if (this.CaptionGetter) {\n return this.CaptionGetter.GetCaption(data);\n }\n return '';\n }\n\n UpdateCaptionGetter() {\n this.CaptionGetter = ACaptionGetter.GetCaptionGetter(this.LayoutElementValue, this.FieldList);\n }\n\n MouseEnterItem(item, index) {\n if (index != this.FocusedItem) {\n this.InternalItemsSourceValue[this.FocusedItem].focus = false;\n this.FocusedItem = index;\n this.InternalItemsSourceValue[this.FocusedItem].focus = true;\n }\n }\n\n onFocus() {\n this.Focus = true;\n this.cdRef.detectChanges();\n this.triggerEvent('OnFocus', this.DataSource);\n }\n FocusedItem = 0;\n //#region Selection\n stopPropagation(event) {\n event.stopPropagation();\n }\n onSelectionChange(ev) {\n if (this.SelectedItemValue === '||NewEntry||' || (Array.isArray(this.SelectedItemValue) && this.SelectedItemValue.indexOf('||NewEntry||') > -1)) {\n this.triggerEvent('newentryselected', null);\n }\n this.triggerEvent('selectionchanged', this.SelectedItemValue);\n this.SelectionChanged.emit();\n }\n\n SelectItem(item, event) {\n if (this.Editable && !this.Disabled) {\n if (this.Multiple) {\n if (this.ValueMemberPath && item.data[this.ValueMemberPath] != null) {\n if (event && event.stopPropagation) {\n event.stopPropagation();\n }\n let list = [];\n if (this._Selection) {\n list = [...this._Selection];\n }\n let toFind = list.find((value) => {\n if (this.ValueMemberPath) {\n return value.data[this.ValueMemberPath] == item.data[this.ValueMemberPath];\n }\n return value == item\n });\n let index = list.indexOf(toFind);\n if (index >= 0) {\n item.selected = false;\n list.splice(index, 1);\n } else {\n item.selected = true;\n list.push(item);\n }\n this.Selection = list;\n }\n } else {\n if (this.ValueMemberPath && item.data && item.data[this.ValueMemberPath] == null) {\n this.Selection = null;\n } else {\n this.Selection = item;\n }\n }\n }\n }\n ClearSelection(event) {\n event.stopPropagation();\n this.Selection = null;\n }\n\n //#endregion\n //#region Data\n LoadData(start, end) {\n if (this.DataSourceID && !this.DisableAutoLoad) {\n const options = FilterHelper.PrepareFilter(this.LayoutElementValue);\n if (this.LayoutElementValue.DisplayMemberPath) {\n if (typeof this.LayoutElementValue.Order === 'number') {\n options.Sort = [{\n Name: this.LayoutElementValue.DisplayMemberPath,\n Order: this.LayoutElementValue.Order,\n Position: 0\n }];\n }\n if (this.SearchValue) {\n if (!options.Filters) {\n options.Filters = [];\n }\n let filter = new RequestFilter();\n filter.Name = this.LayoutElementValue.DisplayMemberPath;\n filter.Operator = Comparer.Like;\n filter.Value = this.SearchValue;\n options.Filters.push(filter);\n }\n }\n options.StartRow = start;\n options.EndRow = end;\n if (this.LayoutElementValue.LoadAll) {\n options.StartRow = null;\n options.EndRow = null;\n }\n\n\n this.dataService.SearchObjects('dynamicdata', this.DataSourceID, options).subscribe((data) => {\n if (this.LayoutElementValue) {\n if (this.LayoutElementValue.NewEntry) {\n if (this.ValueMemberPath) {\n const item = {};\n item[this.ValueMemberPath] = '||NewEntry||';\n item[this.DisplayMemberPath] = this.translate.instant('@@NewEntry');\n data.unshift(item);\n }\n }\n if (this.LayoutElementValue.EmptyEntry) {\n if (this.ValueMemberPath) {\n const item = {};\n item[this.ValueMemberPath] = null;\n item[this.DisplayMemberPath] = this.translate.instant('@@None');\n data.unshift(item);\n }\n }\n }\n let list = this.ConvertData(data);\n if (this.LayoutElementValue.LoadAll) {\n this.InternalItemsSourceValue = list;\n } else {\n this.InternalItemsSourceValue.splice(start, end - start, ...list);\n }\n if (this.FocusedItem >= start && this.FocusedItem < end) {\n if (this.InternalItemsSourceValue && this.InternalItemsSourceValue.length > 0) {\n this.InternalItemsSourceValue[this.FocusedItem].focus = true;\n }\n }\n this.CheckSelection();\n this.CheckData();\n this.cdRef.detectChanges(); \n });\n }\n if (this.LayoutElementValue.IsEnum) {\n this.CheckSelection();\n }\n this.DisableAutoLoad = false;\n }\n CheckSelection() {\n if (this._Selection && this.ValueMemberPath) {\n this.InternalItemsSourceValue.forEach((item) => {\n item.selected = false;\n });\n if (Array.isArray(this._Selection)) {\n let sels = [];\n this._Selection.forEach((sel) => {\n let item = this.InternalItemsSourceValue.find((value) => value.data[this.ValueMemberPath] == sel.data[this.ValueMemberPath]);\n if (item) {\n item.selected = true;\n sels.push(item);\n } else {\n sels.push(sel);\n }\n });\n this._Selection = sels;\n } else {\n let item = this.InternalItemsSourceValue.find((value) => value.data[this.ValueMemberPath] == this._Selection.data[this.ValueMemberPath]);\n if (item) {\n item.selected = true;\n this._Selection = item;\n }\n }\n }\n }\n ExecuteRefresh(loadData = false) {\n this.ExecuteRefreshInternal(loadData);\n }\n\n ExecuteRefreshInternal(loadData) {\n return new Promise((resolve) => {\n if (this.DisableAutoLoad) {\n this.DisableAutoLoad = false;\n resolve();\n } else {\n this.setCount(false).then(x => {\n if (x && (loadData || this.LayoutElementValue.LoadAll)) {\n this.LoadData(0, this.PageSize);\n }\n resolve();\n });\n }\n });\n }\n\n setCount(checkFilter: boolean) {\n return new Promise(resolve => {\n if (this.DataSourceID) {\n const options = FilterHelper.PrepareFilter(this.LayoutElementValue);\n // Eingebaut, falls Filter mit Variable auf Control gesetzt, die im Init noch nicht gef�llt ist\n if (checkFilter && options && options.Filters && options.Filters.length > 0) {\n this.DelayTrigger = true;\n resolve(false);\n } else {\n if (this.LayoutElementValue.DisplayMemberPath) {\n if (typeof this.LayoutElementValue.Order === 'number') {\n options.Sort = [{\n Name: this.LayoutElementValue.DisplayMemberPath,\n Order: this.LayoutElementValue.Order,\n Position: 0\n }];\n }\n if (this.SearchValue) {\n if (!options.Filters) {\n options.Filters = [];\n }\n let filter = new RequestFilter();\n filter.Name = this.LayoutElementValue.DisplayMemberPath;\n filter.Operator = Comparer.Like;\n filter.Value = this.SearchValue;\n options.Filters.push(filter);\n }\n }\n if (this.LayoutElementValue.LoadAll) {\n options.StartRow = null;\n options.EndRow = null;\n }\n this.dataService.CountObjects('dynamicdata', this.DataSourceID, options).subscribe((data) => {\n let count = data;\n if (this.LayoutElementValue.NewEntry) {\n count += 1;\n }\n if (this.LayoutElementValue.EmptyEntry) {\n count += 1;\n }\n this.Count = count;\n this.InternalItemsSource = Array.from(Array(count), (v, index) => {\n return {\n data: {},\n selected: false,\n focus: false\n }\n });\n this.FocusedItem = 0;\n resolve(true);\n });\n }\n } else {\n if (Array.isArray(this.ItemsSourceValue) && this.ItemsSourceValue.length > 0 && this.LayoutElementValue.DisplayMemberPath) {\n if (this.SearchValue) {\n const toLower = this.SearchValue.toLowerCase();\n const filtered = this.ItemsSourceValue.filter(x =>\n ('' + x[this.LayoutElementValue.DisplayMemberPath]).toLowerCase().indexOf(toLower) > -1);\n this.Count = filtered.length;\n this.InternalItemsSource = this.ConvertData(filtered);\n } else if (Array.isArray(this.InternalItemsSourceValue) &&\n this.ItemsSourceValue.length != this.InternalItemsSourceValue.length) {\n this.Count = this.ItemsSourceValue.length;\n this.InternalItemsSource = this.ConvertData(this.ItemsSourceValue);\n }\n }\n resolve(false);\n }\n });\n }\n\n lazyLoad(event) {\n this.LoadData(event.first, event.first + event.rows);\n }\n CheckData() {\n if (!this.InternalSelection) {\n if (this.SelectedItemValue != null) {\n if (!this.LayoutElementValue.IsEnum) {\n if (this.DataSourceID) {\n let fetchData = [];\n if (this.DataSource) {\n if (this.InternalItemsSourceValue && this.InternalItemsSourceValue.length > 0) {\n this.InternalItemsSourceValue.forEach((item) => {\n item.selected = false;\n });\n if (this.Multiple && Array.isArray(this.DataSource)) {\n const list = [];\n this.DataSource.forEach((ds) => {\n const found = this.InternalItemsSourceValue.find((value) => {\n if (value.data && typeof (value.data) == 'object') {\n return (this.ValueMemberPath ? value.data[this.ValueMemberPath] : value.data) == ds;\n }\n });\n if (found) {\n found.selected = true;\n list.push(found);\n } else {\n fetchData.push(ds);\n }\n });\n if (list.length > 0) {\n this._Selection = list;\n }\n } else {\n const found = this.InternalItemsSourceValue.find((value) => {\n if (value.data && typeof (value.data) == 'object') {\n return (this.ValueMemberPath ? value.data[this.ValueMemberPath] : value.data) == this.DataSource;\n }\n });\n if (found) {\n found.selected = true;\n this._Selection = found;\n } else {\n fetchData.push(this.DataSource);\n }\n }\n } else {\n fetchData = null;\n }\n } else {\n fetchData = null;\n }\n if (this.ValueMemberPath && !this.LayoutElementValue.IsReverse && this.LayoutElementValue && (!fetchData || fetchData.length > 0)) {\n //#region Create RequestOptions\n const options = RequestOptions.CleanRequestOptions();\n options.Filters = [];\n const filter = new RequestFilter();\n filter.Name = this.ValueMemberPath;\n filter.Operator = Comparer.Equal;\n filter.Value = this.DataSource;\n let sendRequest = true;\n if (this.Multiple) {\n if (this.DataSource && this.DataSource.length > 0) {\n filter.Operator = Comparer.In;\n } else {\n sendRequest = false;\n }\n }\n options.Filters.push(filter);\n //#endregion\n //#region FetchData\n if (sendRequest) {\n this.dataService.SearchObjects('dynamicdata',\n this.DataSourceID, options).subscribe((data) => {\n this.SelectionLoaded = true;\n data = this.ConvertData(data);\n this.InternalSelection = data;\n if (this.Multiple) {\n data.forEach(x => x.selected = true);\n this._Selection = data;\n } else {\n data[0].selected = true;\n this._Selection = data[0];\n }\n this.cdRef.detectChanges();\n });\n }\n //#endregion\n }\n } else {\n if (this.DataSource) {\n if (this.InternalItemsSourceValue && this.InternalItemsSourceValue.length > 0) {\n this.InternalItemsSourceValue.forEach((item) => {\n item.selected = false;\n });\n if (this.Multiple && Array.isArray(this.DataSource)) {\n const list = [];\n this.DataSource.forEach((ds) => {\n const found = this.InternalItemsSourceValue.find((value) => {\n if (value.data && typeof (value.data) == 'object') {\n return (this.ValueMemberPath ? value.data[this.ValueMemberPath] : value.data) == ds;\n }\n });\n if (found) {\n found.selected = true;\n list.push(found);\n }\n });\n if (list.length > 0) {\n this._Selection = list;\n }\n } else {\n const found = this.InternalItemsSourceValue.find((value) => {\n if (value.data && typeof (value.data) == 'object') {\n return (this.ValueMemberPath ? value.data[this.ValueMemberPath] : value.data) == this.DataSource;\n }\n });\n if (found) {\n found.selected = true;\n this._Selection = found;\n }\n }\n }\n }\n }\n } else {\n this.DisplayMemberPath = 'Caption';\n this.ValueMemberPath = 'Value';\n if (this.InternalItemsSourceValue) {\n if (this.Multiple) {\n this._Selection = [];\n if (!Array.isArray(this.DataSource)) {\n this.InternalItemsSourceValue.forEach((item) => {\n if (item.data.Value === this.DataSource) {\n item.selected = true;\n this._Selection.push(item);\n } else {\n item.selected = false;\n }\n });\n } else {\n this.InternalItemsSourceValue.forEach((item) => {\n item.selected = this.DataSource.some((it) => {\n if (item.data.Value === it) {\n this._Selection.push(item);\n return true;\n }\n return false;\n });\n });\n }\n } else {\n this.InternalItemsSourceValue.forEach((item) => {\n if (item.data.Value === this.DataSource) {\n item.selected = true;\n this._Selection = item;\n } else {\n item.selected = false;\n }\n });\n }\n }\n }\n } else {\n this._Selection = null;\n }\n }\n this.cdRef.detectChanges();\n }\n ConvertData(items) {\n let retVal = [];\n if (items) {\n items.forEach((item) => {\n retVal.push({\n data: item,\n selected: false,\n focus: false\n });\n })\n }\n return retVal;\n }\n //#endregion\n //#region Menu\n onComboClick() {\n if (this.ItemsSourceValue) {\n if (this.menuTrigger) {\n this.menuTrigger.openMenu();\n }\n } else {\n this.ExecuteRefreshInternal(false).then(() => {\n if (this.menuTrigger) {\n this.menuTrigger.openMenu();\n }\n });\n }\n this.DelayTrigger = false;\n }\n MenuOpen = false;\n menuOpened(event) {\n this.MenuOpen = true;\n if (this.LayoutElementValue.ShowFilter) {\n const textBox = document.getElementById('cbx_filter_' + this.LayoutElementValue.ID);\n if (textBox) {\n textBox.focus();\n }\n }\n if (!this.ItemsSourceValue) {\n this.ExecuteRefresh();\n }\n //this.cdRef.detectChanges();\n }\n menuClosed(event) {\n this.MenuOpen = false;\n }\n //#endregion\n //#region Keyboard\n Input(event) {\n if (this.Editable && !this.Disabled) {\n switch (event.code) {\n case 'ArrowDown':\n if (this.MenuOpen) {\n if (this.InternalItemsSourceValue) {\n this.InternalItemsSourceValue[this.FocusedItem].focus = false;\n if (this.FocusedItem + 1 < this.InternalItemsSourceValue.length) {\n this.FocusedItem += 1;\n }\n this.InternalItemsSourceValue[this.FocusedItem].focus = true;\n }\n } else {\n if (this.menuTrigger) {\n this.menuTrigger.openMenu();\n }\n }\n break;\n case 'ArrowUp':\n if (this.MenuOpen) {\n if (this.InternalItemsSourceValue) {\n this.InternalItemsSourceValue[this.FocusedItem].focus = false;\n if (this.FocusedItem > 0) {\n this.FocusedItem -= 1;\n }\n this.InternalItemsSourceValue[this.FocusedItem].focus = true;\n }\n } else {\n if (this.menuTrigger) {\n this.menuTrigger.openMenu();\n }\n }\n break;\n case 'Escape':\n if (this.MenuOpen) {\n if (this.menuTrigger) {\n this.menuTrigger.closeMenu();\n }\n }\n break;\n case 'Tab':\n if (this.menuTrigger) {\n this.menuTrigger.closeMenu();\n }\n break;\n case 'Space':\n case 'Enter':\n if (this.MenuOpen) {\n this.SelectItem(this.InternalItemsSourceValue[this.FocusedItem], null);\n if (this.menuTrigger && !this.Multiple) {\n this.menuTrigger.closeMenu();\n }\n } else {\n if (this.menuTrigger) {\n this.menuTrigger.openMenu();\n event.stopPropagation();\n }\n }\n break;\n case 'ShiftLeft':\n case 'ShiftRight':\n break;\n default:\n if (!this.MenuOpen) {\n if (this.LayoutElementValue.ShowFilter) {\n if (this.menuTrigger) {\n event.stopPropagation();\n this.SearchValue = null;\n this.menuTrigger.openMenu();\n }\n }\n }\n break;\n }\n }\n }\n KeyUp(event) {\n if (this.Editable && !this.Disabled) {\n switch (event.code) {\n case 'ArrowDown':\n if (this.InternalItemsSourceValue) {\n this.InternalItemsSourceValue[this.FocusedItem].focus = false;\n if (this.FocusedItem + 1 < this.InternalItemsSourceValue.length) {\n this.FocusedItem += 1;\n }\n this.InternalItemsSourceValue[this.FocusedItem].focus = true;\n }\n break;\n case 'ArrowUp':\n if (this.InternalItemsSourceValue) {\n this.InternalItemsSourceValue[this.FocusedItem].focus = false;\n if (this.FocusedItem > 0) {\n this.FocusedItem -= 1;\n }\n this.InternalItemsSourceValue[this.FocusedItem].focus = true;\n }\n break;\n case 'Escape':\n if (this.menuTrigger) {\n this.menuTrigger.closeMenu();\n const control = document.getElementById(this.LayoutElementValue.ID);\n if (control) {\n control.focus();\n }\n }\n break;\n case 'Tab':\n if (this.menuTrigger) {\n this.menuTrigger.closeMenu();\n }\n break;\n case 'Space':\n case 'Enter':\n this.SelectItem(this.InternalItemsSourceValue[this.FocusedItem], null);\n if (this.menuTrigger && !this.Multiple) {\n this.menuTrigger.closeMenu();\n const control = document.getElementById(this.LayoutElementValue.ID);\n if (control) {\n control.focus();\n }\n }\n break;\n default:\n this.ExecuteRefresh(true);\n break;\n }\n }\n }\n //#endregion\n OpenMenu() {\n if (this.menuTrigger) {\n this.menuTrigger.openMenu();\n }\n } \n}\nexport class ComboBoxPanel extends BasePanel {\n static override SIDS = ['48a37756-7378-4ca5-bb18-ead9628ab716']\n private static DisplayMemberPathSub: BehaviorSubject = new BehaviorSubject(null);\n private static ValueMemberPathSub: BehaviorSubject = new BehaviorSubject(null);\n private static VariablesSub: BehaviorSubject = new BehaviorSubject(null);\n private static TableProperties;\n static override SetSelectedItem(item) {\n ComboBoxPanel.ReadTableProperties();\n if (item && item.DataBindingChanged) {\n item.DataBindingChanged.subscribe(() => ComboBoxPanel.ReadTableProperties())\n }\n }\n static InitPanel() {\n this.InitSelectedItem()\n PROPERTYGROUPS.push({\n SID:'48a37756-7378-4ca5-bb18-ead9628ab716',\n ID: 'combobox',\n Caption: '@@ComboBox',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'combobox';\n }\n })\n PROPERTIES.push({\n ID: \"Placeholder\",\n Parent: \"combobox\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Placeholder\",\n InitArgs: {\n DataType: 'string'\n }\n });\n PROPERTIES.push({\n ID: \"DisplayMemberPath\",\n Parent: \"combobox\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@DisplayMemberPath\",\n CheckVisibility: (item) => {\n return ComboBoxPanel.TableProperties && ComboBoxPanel.TableProperties.Fields;\n },\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSourceSub: ComboBoxPanel.DisplayMemberPathSub,\n ValueMemberPath: \"Name\",\n DisplayMemberPath: \"TranslatedCaption\"\n }\n });\n PROPERTIES.push({\n ID: \"DisplayFormula\",\n Parent: \"combobox\",\n Content: new ComponentPortal(FormulaTextBoxThemeControl),\n Label: \"@@Erweiterte Anzeige\",\n CheckVisibility: (item) => {\n return ComboBoxPanel.TableProperties && ComboBoxPanel.TableProperties.Fields;\n },\n InitArgs: {\n Placeholder: \"@@Erweiterte Anzeige\",\n VariablesSub: ComboBoxPanel.VariablesSub\n }\n });\n PROPERTIES.push({\n ID: \"DisplayMemberPath\",\n Parent: \"combobox\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@DisplayMemberPath\",\n CheckVisibility: (item) => {\n return !ComboBoxPanel.TableProperties || (ComboBoxPanel.TableProperties && !ComboBoxPanel.TableProperties.Fields);\n }\n });\n PROPERTIES.push({\n ID: \"ValueMemberPath\",\n Parent: \"combobox\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@ValueMemberPath\",\n CheckVisibility: (item) => {\n return !ComboBoxPanel.TableProperties || (ComboBoxPanel.TableProperties && !ComboBoxPanel.TableProperties.Fields);\n }\n });\n PROPERTIES.push({\n ID: \"ValueMemberPath\",\n Parent: \"combobox\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@ValueMemberPath\",\n CheckVisibility: (item) => {\n return ComboBoxPanel.TableProperties && ComboBoxPanel.TableProperties.Fields;\n },\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSourceSub: ComboBoxPanel.ValueMemberPathSub,\n ValueMemberPath: \"Name\",\n DisplayMemberPath: \"TranslatedCaption\"\n }\n });\n PROPERTIES.push({\n ID: \"Order\",\n Parent: \"combobox\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Order\",\n InitArgs: {\n Placeholder: \"\",\n Multiple: false,\n EnumSource: Order\n }\n });\n PROPERTIES.push({\n ID: \"LineHeight\",\n Parent: \"combobox\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@LineHeight\",\n InitArgs: {\n InputType: \"number\"\n }\n });\n PROPERTIES.push({\n ID: \"LoadAll\",\n Parent: \"combobox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@LoadAll\"\n }\n });\n PROPERTIES.push({\n ID: \"PageSize\",\n Parent: \"combobox\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@PageSize\",\n CheckVisibility: (item) => {\n return !item.LoadAll;\n },\n InitArgs: {\n InputType: \"number\"\n }\n });\n PROPERTIES.push({\n ID: \"ComboMaxHeight\",\n Parent: \"combobox\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@ComboMaxHeight\",\n InitArgs: {\n InputType: \"number\"\n }\n });\n PROPERTIES.push({\n ID: \"Multiple\",\n Parent: \"combobox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Multiple\"\n }\n });\n PROPERTIES.push({\n ID: \"UseChips\",\n Parent: \"combobox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@UseChips\"\n }\n });\n PROPERTIES.push({\n ID: \"NewEntry\",\n Parent: \"combobox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@NewEntry\"\n }\n });\n PROPERTIES.push({\n ID: \"EmptyEntry\",\n Parent: \"combobox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@EmptyEntry\"\n }\n });\n PROPERTIES.push({\n ID: \"UseFloatingLabel\",\n Parent: \"combobox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@UseFloatingLabel\"\n }\n });\n PROPERTIES.push({\n ID: \"ShowFilter\",\n Parent: \"combobox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@ShowFilter\"\n }\n });\n PROPERTIES.push({\n ID: \"ShowClear\",\n Parent: \"combobox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@ShowClear\"\n }\n });\n PROPERTIES.push({\n ID: \"Filter\",\n Parent: \"combobox\",\n Content: new ComponentPortal(ComponentFilterControl)\n });\n }\n static ReadTableProperties() {\n if (ComboBoxPanel.SelectedItem) {\n const variables = [];\n ComboBoxPanel.TableProperties = null;\n if (!ComboBoxPanel.SelectedItem.IsEnum) {\n if (ComboBoxPanel.SelectedItem.DataSourceID) {\n CacheService.ReadTable(ComboBoxPanel.SelectedItem.DataSourceID).then((data) => {\n if (data) {\n ComboBoxPanel.TableProperties = data;\n\n ComboBoxPanel.TableProperties.Fields.forEach((column) => {\n const vni = new VariablesNodeInformation();\n vni.VariableID = column.ID;\n vni.Name = column.TranslatedCaption;\n variables.push(vni);\n });\n ComboBoxPanel.VariablesSub.next(variables);\n let fields = JSON.stringify(ComboBoxPanel.TableProperties.Fields)\n let DisplayMemberFields = JSON.parse(fields);\n DisplayMemberFields.unshift({ Name: \"\", TranslatedCaption: \"\" });\n ComboBoxPanel.DisplayMemberPathSub.next(DisplayMemberFields);\n\n let ValueMemberFields = JSON.parse(fields);\n\n ValueMemberFields.unshift({ Name: '_Id', TranslatedCaption: \"System.ID\" });\n ValueMemberFields.unshift({ Name: null, TranslatedCaption: \"@@None\" });\n ComboBoxPanel.ValueMemberPathSub.next(ValueMemberFields);\n LayoutService.LayoutChanged.next(null);\n }\n });\n }\n }\n }\n }\n}","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { IBaseComponent } from '../../controls/base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-content',\n templateUrl: './content.control.html',\n styleUrls: ['./content.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ContentControl extends IBaseComponent {\n static Type: any = 'content';\n static Default = JSON.parse(JSON.stringify(defaultProperties.content));\n\n LayoutEditDailog = false;\n SelectedPage = 'content';\n ControlInitialized() {\n this.cdRef.detectChanges();\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CapsuleHelper } from '../../../helpers/capsule.helper';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-data-capsule-tag',\n templateUrl: 'data.capsule.tag.control.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DataCapsuleTagControl extends IBaseComponent {\n static Type: any = 'datacapsuletag';\n static Default = JSON.parse(JSON.stringify(defaultProperties.datacapsuletag));\n\n TagList;\n\n get CapsuleTag() {\n if (this.DataSourceValue) {\n return this.DataSourceValue._CapsuleTag;\n }\n return null;\n }\n set CapsuleTag(val) {\n if (this.DataSourceValue) {\n this.DataSourceValue._CapsuleTag = val;\n }\n }\n\n ControlInitialized() {\n CapsuleHelper.GetCapsuleTags().then(r => {\n if (r) {\n MetaHelper.FindTableProperties(this.LayoutValue, this.LayoutElementValue).then(result => {\n if (result && result.DataCapsuleTags) {\n this.TagList = result.DataCapsuleTags;\n this.cdRef.detectChanges();\n }\n });\n }\n });\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\nimport { DateTimeAdapter } from '@danielmoncada/angular-datetime-picker';\nimport { DateHelper } from '../../../helpers/date.helper';\nimport { PickerMode } from '../../../models/enums/pickermode.enum';\nimport { StartView } from '../../../models/enums/pickerstartview.enum';\nimport { PickerType } from '../../../models/enums/pickertype.enum';\nimport { LanguageService } from '../../../services/language.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { IBaseComponent } from '../base.component';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { TranslationTextBoxThemeControl } from '../../../appbuilder/controls/translation/translation.textbox.theme.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { LayoutHelper } from 'src/app/helpers/layout.helper';\nimport { DateTimeThemeControl } from 'src/app/appbuilder/controls/datetime/datetime.control';\nimport { TextboxThemeControl } from 'src/app/appbuilder/controls/textbox/textbox.theme.control';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-datetimepicker',\n templateUrl: './datetimepicker.control.html',\n styleUrls: ['./datetimepicker.control.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DateTimePickerControl extends IBaseComponent {\n\n static Type: any = 'datetimepicker';\n static Default = JSON.parse(JSON.stringify(defaultProperties.datetimepicker));\n\n SpecificDays;\n SpecificMonths;\n FixedRange;\n RangeType;\n DynamicRange;\n SpecificDMY;\n SpecificDMY_Number;\n SpecificDMY_Type;\n //#region DataSource\n DataSourceValue;\n selectedPastFutureDate;\n selectedDynamicCustomDateType;\n ExplicitMinDate;\n ExplicitMaxDate;\n @Input()\n get DataSource() {\n return this.DataSourceValue;\n }\n set DataSource(val) {\n this.DataSourceValue = val;\n this.DataSourceChange.emit(this.DataSourceValue);\n this.triggerEvent('DataSourceChanged', this.DataSourceValue);\n this.cdRef.detectChanges();\n }\n\n @Output() DataSourceChange = new EventEmitter();\n //#endregion\n\n //#region SelectedDate\n SelectedDateValue;\n\n @Input()\n get SelectedDate() {\n return this.SelectedDateValue;\n }\n set SelectedDate(val) {\n this.SelectedDateValue = val;\n this.SelectedDateChange.emit(this.SelectedDateValue);\n this.cdRef.detectChanges();\n }\n\n @Output() SelectedDateChange = new EventEmitter();\n //#endregion\n\n //region PickerType\n @Input()\n get PickerType() {\n if (!this.LayoutElement.PickerType) {\n return PickerType[0];\n } else {\n return PickerType[this.LayoutElement.PickerType];\n }\n }\n set PickerType(val) {\n this.LayoutElement.PickerType = val;\n this.cdRef.detectChanges();\n }\n //#endregion\n\n //region PickerMode\n @Input()\n get PickerMode() {\n if (!this.LayoutElement.PickerMode) {\n return PickerMode[0];\n } else {\n return PickerMode[this.LayoutElement.PickerMode];\n }\n\n }\n set PickerMode(val) {\n this.LayoutElement.PickerMode = val;\n this.cdRef.detectChanges();\n }\n\n\n\n //#endregion\n\n //region StartView\n @Input()\n get StartView() {\n if (!this.LayoutElement.StartView) {\n return StartView[0];\n } else {\n return StartView[this.LayoutElement.StartView];\n }\n\n }\n set StartView(val) {\n this.LayoutElement.StartView = val;\n this.cdRef.detectChanges();\n }\n //#endregion\n\n //#region Placeholder\n @Input()\n get Placeholder() {\n return this.LayoutElement.Placeholder;\n }\n set Placeholder(val) {\n this.LayoutElement.Placeholder = val;\n this.PlaceholderChange.emit(this.LayoutElement.Placeholder);\n this.cdRef.detectChanges();\n }\n\n @Output() PlaceholderChange = new EventEmitter();\n //#endregion\n\n @Output() DateChanged = new EventEmitter();\n\n\n constructor(translate: TranslateService, private dateTimeAdapter: DateTimeAdapter, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.EventList.push('datechanged');\n this.setLocale(translate.currentLang);\n translate.onLangChange.subscribe((event: LangChangeEvent) => {\n this.setLocale(event.lang);\n });\n }\n\n ControlInitialized() {\n LayoutService.SelectedItem.subscribe((item) => {\n this.RangeType = this.LayoutElement.RangeType;\n this.FixedRange = this.LayoutElement.FixedRange?.toString();\n this.DynamicRange = this.LayoutElement.DynamicRange;\n this.SpecificDays = this.LayoutElement.SpecificDays?.toString();\n this.SpecificDMY = this.LayoutElement.SpecificDMY\n this.SpecificDMY_Number = this.LayoutElement.SpecificDMY_Number\n this.SpecificDMY_Type = this.LayoutElement.SpecificDMY_Type;\n this.selectedPastFutureDate = this.LayoutElement.PastFutureDate;\n this.selectedDynamicCustomDateType = this.LayoutElement.DynamicCustomDateType;\n this.SpecificMonths = this.LayoutElement.SpecificMonths;\n this.ExplicitMinDate = this.LayoutElement.ExplicitMinDate;\n this.ExplicitMaxDate = this.LayoutElement.ExplicitMaxDate;\n });\n }\n\n private getDayOfYear(date: Date): number {\n const startOfYear = new Date(date.getFullYear(), 0, 1); // January 1st\n const timeDifference = date.getTime() - startOfYear.getTime();\n const dayOfYear = Math.floor(timeDifference / (24 * 60 * 60 * 1000)) + 1;\n return dayOfYear;\n }\n\n\n myFilter = (d: Date): boolean => {\n const selectedMonth = this.dateTimeAdapter.getMonth(d)\n const dayOfWeek = this.dateTimeAdapter.getDay(d);\n if (this.LayoutElement.UseValidation === 1) {\n //Specific days conditions\n if (this.SpecificMonths && this.SpecificDays) {\n return this.SpecificMonthCheck(selectedMonth) && this.SpecificDayCheck(dayOfWeek);\n }\n else if (this.SpecificMonths) {\n return this.SpecificMonthCheck(selectedMonth);\n }\n else if (this.SpecificDays) {\n return this.SpecificDayCheck(dayOfWeek);\n }\n else return true\n }\n else if (this.LayoutElement.UseValidation === 2) {\n //Range conditions\n if ((this.RangeType === 0 && this.FixedRange && this.SpecificDays) || (this.RangeType === 1 && this.DynamicRange && this.SpecificDays)) {\n //Range and specifc days condition\n return this.RangeCheck(d, this.RangeType) && this.SpecificDayCheck(dayOfWeek);\n }\n else if ((this.RangeType === 0 && this.FixedRange) || (this.RangeType === 1 && this.DynamicRange)) {\n return this.RangeCheck(d, this.RangeType);\n }\n else return true;\n\n }\n else if (this.LayoutElement.UseValidation === 3) {\n //SpecificDMY\n if (this.SpecificDMY !== undefined && this.SpecificDMY_Number !== undefined && this.SpecificDMY_Type !== undefined && this.SpecificDays) {\n //SpecificDMY and specific days\n return this.SpecificDMYCheck(d) && this.SpecificDayCheck(dayOfWeek);\n }\n else if (this.SpecificDMY !== undefined && this.SpecificDMY_Number !== undefined && this.SpecificDMY_Type !== undefined) {\n //Specific DMY\n return this.SpecificDMYCheck(d)\n }\n return true;\n }\n else if (this.LayoutElement.UseValidation === 4 && this.selectedPastFutureDate !== undefined && this.selectedDynamicCustomDateType === 0) {\n //Past/Future\n if (this.SpecificDays && this.selectedPastFutureDate !== undefined && this.selectedDynamicCustomDateType === 0) {\n return this.PastFutureDateCheck(d) && this.SpecificDayCheck(dayOfWeek)\n }\n else if (this.selectedPastFutureDate !== undefined && this.selectedDynamicCustomDateType === 0) {\n return this.PastFutureDateCheck(d)\n }\n else return true;\n }\n else if (this.LayoutElement.UseValidation === 4 && this.selectedPastFutureDate !== undefined && this.selectedDynamicCustomDateType === 1) {\n //Past/Future\n if (this.SpecificDays) {\n return this.SpecificDayCheck(dayOfWeek)\n }\n else return true;\n }\n else return true\n }\n\n PastFutureDateCheck(d: Date) {\n const currentDate = new Date();\n if (this.selectedPastFutureDate === 0 && this.selectedDynamicCustomDateType === 0) {\n return d <= currentDate;\n }\n else if (this.selectedPastFutureDate === 1 && this.selectedDynamicCustomDateType === 0) {\n return d >= currentDate;\n }\n }\n RangeCheck(d: Date, Type: string): boolean {\n if (Type == '0') {\n return this.FixedRangeCheck(d);\n }\n else {\n if (this.DynamicRange) {\n return this.DynamicRangeCheck(d);\n }\n }\n }\n\n FixedRangeCheck(d: Date): boolean {\n if (this.FixedRange != undefined) {\n const dateStrings = this.FixedRange.split(',');\n if (dateStrings.length === 2) {\n const startDate = new Date(dateStrings[0].trim());\n const endDate = new Date(dateStrings[1].trim());\n if ((startDate != null && endDate != null)) {\n return d >= startDate && d <= endDate;\n }\n }\n }\n }\n\n SpecificDayCheck(dayOfWeek: Number): boolean {\n return this.SpecificDays.includes(dayOfWeek)\n }\n\n SpecificMonthCheck(selectedMonth: Number): boolean {\n return this.SpecificMonths.includes(selectedMonth)\n }\n\n DynamicRangeCheck(d: Date): boolean {\n const currentDate = new Date();\n let endDate: Date = null;\n if (this.DynamicRange > 0) {\n // If DynamicRange is non-negative, calculate the end date as the current date plus DynamicRange days.\n endDate = new Date(currentDate.getTime() + this.DynamicRange * 24 * 60 * 60 * 1000);\n return d >= currentDate && d <= endDate;\n } else if (this.DynamicRange < 0) {\n // If DynamicRange is negative, calculate the end date as the current date minus the absolute value of DynamicRange days.\n endDate = new Date(currentDate.getTime() - Math.abs(this.DynamicRange) * 24 * 60 * 60 * 1000);\n return d <= currentDate && d >= endDate;\n }\n else return false\n }\n\n\n SpecificDMYCheck(d: Date): boolean {\n if (this.SpecificDMY_Number !== '') {\n if (this.SpecificDMY_Type !== '') {\n let selectedDate = new Date(d);\n if (this.SpecificDMY_Type == '0') {\n if (this.SpecificDMY == '0') {\n const selectedDayOfYear = this.getDayOfYear(d);\n return selectedDayOfYear >= 1 && selectedDayOfYear <= this.SpecificDMY_Number;\n }\n else if (this.SpecificDMY == '1') {\n const lastDayOfYear = new Date(d.getFullYear(), 11, 31);\n const firstDayOfRange = new Date(\n lastDayOfYear.getFullYear(),\n lastDayOfYear.getMonth(),\n lastDayOfYear.getDate() - this.SpecificDMY_Number + 1\n );\n return d >= firstDayOfRange && d <= lastDayOfYear;\n }\n }\n else if (this.SpecificDMY_Type == '1') {\n const selectedWeekNumber = this.SpecificDMY_Number;\n\n if (this.SpecificDMY == '0') { // First weeks of the year\n const startOfSelectedWeek = new Date(selectedDate.getFullYear(), 0, 1);\n const endOfSelectedWeek = new Date(startOfSelectedWeek);\n endOfSelectedWeek.setDate(startOfSelectedWeek.getDate() + (7 * selectedWeekNumber - 1));\n return d >= startOfSelectedWeek && d <= endOfSelectedWeek;\n } else if (this.SpecificDMY == '1') { // Last weeks of the year\n const endOfYear = new Date(selectedDate.getFullYear(), 11, 31);\n const startOfLastWeek = new Date(endOfYear);\n startOfLastWeek.setDate(endOfYear.getDate() - 7 * selectedWeekNumber + 1); // Adjust the calculation\n const endOfSelectedWeek = new Date(endOfYear);\n\n return d >= startOfLastWeek && d <= endOfSelectedWeek;\n }\n\n }\n else {\n if (this.SpecificDMY == '0') {\n const selectedMonth = d.getMonth();\n return selectedMonth >= 0 && selectedMonth < this.SpecificDMY_Number;\n }\n else if (this.SpecificDMY == '1') {\n const selectedMonth = d.getMonth();\n const firstMonthOfLast8Months = 12 - this.SpecificDMY_Number; // December (11) - 7 = May \n return selectedMonth >= firstMonthOfLast8Months && selectedMonth <= 11;\n }\n }\n }\n }\n }\n\n setLocale(lang) {\n const langinfo = LanguageService.Languages.getValue().find(l => l.LCID.toString() === lang);\n if (langinfo) {\n this.dateTimeAdapter.setLocale(langinfo.Name);\n //this.cdRef.detectChanges();\n }\n }\n\n onDateChanged(ev) {\n this.SelectedDate = this.DataSource;\n this.DateChanged.emit(this.SelectedDate);\n let json = '';\n if (this.SelectedDate) {\n json = DateHelper.GetSerializeString(this.SelectedDate);\n }\n this.triggerEvent('datechanged', json);\n }\n\n\n\n setFocus() {\n let control = document.getElementById(this.LayoutElement.ID);\n if (control) {\n control.focus();\n }\n }\n\n}\nexport class DateTimePickerPanel extends BasePanel {\n private static removeValidations(SelectedItem = null, validations: string[] = []): void {\n if (SelectedItem !== null && validations.length > 0) {\n validations.forEach((validation) => {\n delete SelectedItem[validation]\n })\n }\n }\n static override SIDS = ['a01941d2-eeab-42c4-be8a-2e49cef5cf44']\n static validations = [\"PastFutureDate\", \"DynamicCustomDateType\",\n \"ExplicitMinDate\", \"SpecificDays\",\n \"SpecificMonths\", \"ExplicitMaxDate\",\n \"RangeType\", \"FixedRange\",\n \"DynamicRange\", \"SpecificDMY\",\n \"SpecificDMY_Number\", \"SpecificDMY_Type\"]\n static InitPanel() {\n\n PROPERTYGROUPS.push({\n SID: 'a01941d2-eeab-42c4-be8a-2e49cef5cf44',\n ID: 'datetimepicker',\n Caption: '@@DateTimePicker',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'datetimepicker';\n }\n });\n PROPERTIES.push({\n ID: \"Placeholder\",\n Parent: \"datetimepicker\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Placeholder\",\n InitArgs: {\n DataType: 'string'\n }\n });\n PROPERTIES.push({\n ID: \"PickerType\",\n Parent: \"datetimepicker\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@PickerType\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: PickerType\n }\n })\n PROPERTIES.push({\n ID: \"PickerMode\",\n Parent: \"datetimepicker\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@PickerMode\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: PickerMode\n }\n })\n PROPERTIES.push({\n ID: \"StartView\",\n Parent: \"datetimepicker\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@StartView\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: StartView\n }\n })\n PROPERTIES.push({\n ID: \"FirstDayOfWeek\",\n Parent: \"datetimepicker\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@FirstDayOfWeek\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: [\n { Caption: '@@Monday', Value: 1 },\n { Caption: '@@Tuesday', Value: 2 },\n { Caption: '@@Wednesday', Value: 3 },\n { Caption: '@@Thursday', Value: 4 },\n { Caption: '@@Friday', Value: 5 },\n { Caption: '@@Saturday', Value: 6 },\n { Caption: '@@Sunday', Value: 0 }\n ],\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'Value'\n }\n })\n PROPERTIES.push({\n ID: \"UseValidation\",\n Parent: \"datetimepicker\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@UseValidation\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: [\n { Caption: '@@Specific', Value: 1 },\n { Caption: '@@Range', Value: 2 },\n { Caption: '@@First/Last', Value: 3 },\n { Caption: '@@Past/Future', Value: 4 },\n ],\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'Value',\n Action: (ev) => {\n let selectedValidation = ev.SelectedItem.UseValidation;\n if (selectedValidation === 1) {\n this.removeValidations(ev.SelectedItem, this.validations.filter(validation =>\n validation !== \"SpecificDays\" && validation !== \"SpecificMonths\"\n ))\n }\n else if (selectedValidation === 2) {\n this.removeValidations(ev.SelectedItem, this.validations.filter(validation =>\n validation !== \"SpecificDays\" && validation !== \"SpecificMonths\"\n && validation !== \"RangeType\" && validation !== \"FixedRange\"\n && validation !== \"DynamicRange\"\n ))\n }\n else if (selectedValidation === 3) {\n this.removeValidations(ev.SelectedItem, this.validations.filter(validation =>\n validation !== \"SpecificDays\" && validation !== \"SpecificMonths\"\n && validation !== \"SpecificDMY\" && validation !== \"SpecificDMY_Number\"\n && validation !== \"SpecificDMY_Type\"\n ))\n }\n else if (selectedValidation === 4) {\n this.removeValidations(ev.SelectedItem, this.validations.filter(validation =>\n validation !== \"SpecificDays\" && validation !== \"SpecificMonths\"\n && validation !== \"PastFutureDate\" && validation !== \"DynamicCustomDateType\"\n && validation !== \"ExplicitMinDate\" && validation !== \"ExplicitMaxDate\"\n ))\n }\n }\n }\n })\n PROPERTIES.push({\n ID: \"Inline\",\n Parent: \"datetimepicker\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Inline\"\n }\n });\n PROPERTIES.push({\n ID: \"Hour12Timer\",\n Parent: \"datetimepicker\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Hour12Timer\"\n }\n });\n // PROPERTIES.push({\n // ID: \"Disabled\",\n // Parent: \"datetimepicker\",\n // Content: new ComponentPortal(CheckBoxThemeControl),\n // InitArgs: {\n // Caption: \"@@Disabled\"\n // }\n // });\n // PROPERTIES.push({\n // ID: \"UseValidation\",\n // Parent: \"datetimepicker\",\n // Content: new ComponentPortal(CheckBoxThemeControl),\n // InitArgs: {\n // Caption: \"@@UseValidation\",\n // Action: (ev) => {\n // LayoutHelper.RefreshMenuTabs.next(null);\n // }\n // }\n // });\n\n PROPERTIES.push({\n ID: \"PastFutureDate\",\n Parent: \"datetimepicker\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Past/Future Date\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: [\n { Caption: '@@Past Only', Value: 0 },\n { Caption: '@@Future Only', Value: 1 },\n ],\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'Value',\n Action: (ev) => {\n this.removeValidations(ev.SelectedItem, this.validations.filter(validation =>\n validation !== \"SpecificDays\" && validation !== \"PastFutureDate\"\n && validation!==\"DynamicCustomDateType\"\n ))\n }\n },\n\n CheckVisibility: (item) => {\n return item.UseValidation === 4;\n },\n });\n PROPERTIES.push({\n ID: \"DynamicCustomDateType\",\n Parent: \"datetimepicker\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Dynamic/Custom Date\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: [\n { Caption: '@@Dynamic', Value: 0 },\n { Caption: '@@Custom', Value: 1 },\n ],\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'Value',\n Action: (ev) => {\n const DynamicCustomDateType = ev.SelectedItem.DynamicCustomDateType\n if (DynamicCustomDateType === 0) {\n this.removeValidations(ev.SelectedItem, this.validations.filter(validation =>\n validation !== \"SpecificDays\" && validation !== \"PastFutureDate\"\n && validation !== \"DynamicCustomDateType\"\n ))\n }\n else if (DynamicCustomDateType === 1) {\n this.removeValidations(ev.SelectedItem, this.validations.filter(validation =>\n validation !== \"SpecificDays\" && validation !== \"PastFutureDate\"\n && validation !== \"DynamicCustomDateType\"\n ))\n }\n }\n },\n CheckVisibility: (item) => {\n let DateType;\n LayoutService.SelectedItem.subscribe((item) => {\n DateType = item.PastFutureDate\n });\n return item.UseValidation === 4 && (DateType == '0' || DateType == '1');\n },\n });\n PROPERTIES.push({\n ID: \"ExplicitMinDate\",\n Parent: \"datetimepicker\",\n Content: new ComponentPortal(DateTimeThemeControl),\n Label: \"@@Past Date\",\n InitArgs: {\n InputType: 'single',\n Action: (ev) => {\n this.removeValidations(ev.SelectedItem, this.validations.filter(validation =>\n validation !== \"SpecificDays\" && validation !== \"PastFutureDate\"\n && validation !== \"DynamicCustomDateType\" && validation !== \"ExplicitMinDate\"\n ))\n }\n },\n CheckVisibility: (item) => {\n let DateType;\n LayoutService.SelectedItem.subscribe((item) => {\n DateType = item.PastFutureDate\n });\n return item.UseValidation === 4 && item.DynamicCustomDateType == '1' && DateType == '0';\n }\n });\n PROPERTIES.push({\n ID: \"ExplicitMaxDate\",\n Parent: \"datetimepicker\",\n Content: new ComponentPortal(DateTimeThemeControl),\n Label: \"@@Future Date\",\n InitArgs: {\n InputType: 'single',\n Action: (ev) => {\n this.removeValidations(ev.SelectedItem, this.validations.filter(validation =>\n validation !== \"SpecificDays\" && validation !== \"PastFutureDate\"\n && validation !== \"DynamicCustomDateType\" && validation !== \"ExplicitMaxDate\"\n ))\n }\n },\n CheckVisibility: (item) => {\n let DateType;\n LayoutService.SelectedItem.subscribe((item) => {\n DateType = item.PastFutureDate\n });\n return item.UseValidation === 4 && item.DynamicCustomDateType == '1' && DateType == '1';\n },\n });\n PROPERTIES.push({\n ID: \"SpecificDays\",\n Parent: \"datetimepicker\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Specific Days\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: true,\n ItemsSource: [\n { Caption: '@@Monday', Value: 1 },\n { Caption: '@@Tuesday', Value: 2 },\n { Caption: '@@Wednesday', Value: 3 },\n { Caption: '@@Thursday', Value: 4 },\n { Caption: '@@Friday', Value: 5 },\n { Caption: '@@Saturday', Value: 6 },\n { Caption: '@@Sunday', Value: 0 },\n ],\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'Value',\n },\n CheckVisibility: (item) => {\n return item.UseValidation;\n },\n });\n\n PROPERTIES.push({\n ID: \"SpecificMonths\",\n Parent: \"datetimepicker\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Specific Months\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: true,\n ItemsSource: [\n { Caption: '@@January', Value: 0 },\n { Caption: '@@February', Value: 1 },\n { Caption: '@@March', Value: 2 },\n { Caption: '@@April', Value: 3 },\n { Caption: '@@May', Value: 4 },\n { Caption: '@@June', Value: 5 },\n { Caption: '@@July', Value: 6 },\n { Caption: '@@August', Value: 7 },\n { Caption: '@@September', Value: 8 },\n { Caption: '@@October', Value: 9 },\n { Caption: '@@November', Value: 10 },\n { Caption: '@@December', Value: 11 },\n ],\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'Value',\n },\n CheckVisibility: (item) => {\n return item.UseValidation === 1;\n },\n });\n PROPERTIES.push({\n ID: \"RangeType\",\n Parent: \"datetimepicker\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Fixed Range/Dynamic Range\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: [\n { Caption: '@@Fixed Range', Value: 0 },\n { Caption: '@@Dynamic Range', Value: 1 },\n ],\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'Value',\n Action: (ev) => {\n const rangeType = ev.SelectedItem.RangeType\n if (rangeType === 0) {\n this.removeValidations(ev.SelectedItem, this.validations.filter(validation =>\n validation !== \"RangeType\" && validation !== \"FixedRange\" && validation!==\"SpecificDays\"\n ))\n }\n else if (rangeType === 1) {\n this.removeValidations(ev.SelectedItem, this.validations.filter(validation =>\n validation !== \"RangeType\" && validation !== \"DynamicRange\" && validation!==\"SpecificDays\"\n ))\n }\n\n }\n },\n\n CheckVisibility: (item) => {\n return item.UseValidation === 2;\n },\n });\n PROPERTIES.push({\n ID: \"FixedRange\",\n Parent: \"datetimepicker\",\n Content: new ComponentPortal(DateTimeThemeControl),\n Label: \"@@Fixed Range Date\",\n InitArgs: {\n InputType: \"range\",\n PickerType: \"calendar\"\n },\n CheckVisibility: (item) => {\n let DateType;\n LayoutService.SelectedItem.subscribe((item) => {\n DateType = item.RangeType\n });\n\n return item.UseValidation === 2 && DateType == '0';\n },\n });\n\n PROPERTIES.push({\n ID: \"DynamicRange\",\n Parent: \"datetimepicker\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Dynamic Range Date\",\n InitArgs: {\n InputType: 'Number',\n // Minimum: 0\n },\n CheckVisibility: (item) => {\n let DateType;\n LayoutService.SelectedItem.subscribe((item) => {\n DateType = item.RangeType\n });\n\n return item.UseValidation === 2 && DateType == '1';\n },\n\n });\n PROPERTIES.push({\n ID: \"SpecificDMY\",\n Parent: \"datetimepicker\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@First/Last\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: [\n { Caption: '@@First', Value: 0 },\n { Caption: '@@Last', Value: 1 },\n ],\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'Value',\n },\n\n CheckVisibility: (item) => {\n return item.UseValidation === 3;\n },\n });\n\n PROPERTIES.push({\n ID: \"SpecificDMY_Number\",\n Parent: \"datetimepicker\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Number\",\n InitArgs: {\n InputType: 'Number',\n Minimum: 0\n },\n CheckVisibility: (item) => {\n let DateType;\n LayoutService.SelectedItem.subscribe((item) => {\n DateType = item.SpecificDMY\n });\n\n return item.UseValidation === 3;\n },\n });\n\n PROPERTIES.push({\n ID: \"SpecificDMY_Type\",\n Parent: \"datetimepicker\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Day/Week/Month\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: [\n { Caption: '@@Days', Value: 0 },\n { Caption: '@@Weeks', Value: 1 },\n { Caption: '@@Months', Value: 2 },\n ],\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'Value',\n },\n\n CheckVisibility: (item) => {\n let DateType;\n LayoutService.SelectedItem.subscribe((item) => {\n DateType = item.SpecificDMY\n });\n return item.UseValidation === 3;\n },\n });\n\n }\n\n}\n\n\n","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, ViewChild } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ElementProperty } from '../../../models/layoutbase.model';\nimport { LayoutElement } from '../../../models/layoutelement.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MediaService } from '../../../services/media.service';\nimport { IBaseComponent } from '../base.component';\nimport { ButtonControl } from '../button/button.control';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-download',\n templateUrl: './download.control.html',\n styleUrls: ['./download.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DownloadControl extends IBaseComponent {\n static Type: any = 'download';\n static Default = JSON.parse(JSON.stringify(defaultProperties.download));\n //#region Filename\n FilenameValue;\n @Input()\n get Filename() {\n if (this.FilenameValue != null) {\n return this.FilenameValue;\n }\n return this.LayoutElement.Filename;\n }\n set Filename(val) {\n this.FilenameValue = val;\n this.cdRef.detectChanges();\n }\n //#endregion\n\n \n ButtonLayout;\n @ViewChild('button') button: ButtonControl;\n\n constructor(private mediaService: MediaService, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.PropertyList.push(new ElementProperty('Filename', 'string', '@@Filename'));\n }\n\n ControlInitialized() {\n this.SetButtonLayout();\n }\n\n private SetButtonLayout() {\n if (this.LayoutElementValue) {\n this.ButtonLayout = plainToClass(LayoutElement, JSON.parse(JSON.stringify(this.LayoutElementValue)));\n }\n }\n\n onLayoutElementSet() {\n this.SetButtonLayout();\n }\n onLayoutElementChanged() {\n this.SetButtonLayout();\n }\n\n download() {\n const downloadLink = document.createElement(\"a\");\n downloadLink.href = this.DataSource;\n downloadLink.download = this.Filename;\n downloadLink.click();\n }\n}\nexport class DownloadPanel extends BasePanel {\n static override SIDS = ['c6bc24d8-1b5d-42f8-98b3-88c28ea65a1d']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'c6bc24d8-1b5d-42f8-98b3-88c28ea65a1d',\n ID: 'download',\n Caption: '@@Download',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'download';\n }\n });\n\n \n PROPERTIES.push({\n ID: \"Filename\",\n Parent: \"download\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Filename\",\n CheckVisibility: (item) => {\n return !item.UseForBlob;\n }\n });\n }\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, ViewChild } from '@angular/core';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { ViewType } from '../../../models/enums/viewtype.enum';\nimport { LayoutService } from '../../../services/layout.service';\nimport { SettingsService } from '../../../services/settings.service';\nimport { DropDownControl } from '../../common/dropdowncontrol/dropdown.control';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DropdownComponent extends IBaseComponent {\n\n static Type: any = 'dropdown';\n static Default = JSON.parse(JSON.stringify(defaultProperties.dropdown));\n\n dragItem;\n dragType;\n ButtonContentElement;\n DropDownContentElement;\n ShowDropDownContent = true;\n @ViewChild('dropDown') dropDown: DropDownControl;\n\n constructor(private settingsService: SettingsService, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.EventList.push('OnOpened');\n this.EventList.push('OnClosed');\n }\n ControlInitialized() {\n this.Subscriptions['ViewType'] = LayoutService.ViewType.subscribe((viewType) => {\n this.ShowDropDownContent = viewType === ViewType.Edit;\n });\n this.Subscriptions['DragStart'] = this.settingsService.DragStart.subscribe((item) => {\n this.dragItem = item.item;\n });\n this.Subscriptions['Delete'] = this.settingsService.Delete.subscribe((item) => {\n this.removeItem(item);\n });\n this.Subscriptions['DragType'] = LayoutService.DragType.subscribe((dragType) => {\n if (dragType === this.LayoutElement.ID) {\n this.dragType = dragType;\n } else {\n this.dragType = null;\n }\n });\n }\n\n onOpened() {\n this.triggerEvent('OnOpened');\n this.cdRef.detectChanges();\n }\n\n onClosed() {\n this.triggerEvent('OnClosed');\n }\n\n removeItem(item) {\n if (this.LayoutElementValue && this.LayoutElementValue.Elements) {\n const index = this.LayoutElementValue.Elements.indexOf(item);\n if (index > -1) {\n this.LayoutElementValue.Elements.splice(index, 1);\n LayoutService.SelectedItem.next(null);\n LayoutService.OnLayoutElementRemoved({\n ElementID: item.ID,\n ElementName: item.Name ? item.Name : item.ID,\n ParentID: this.LayoutElementValue.ID\n });\n }\n }\n }\n\n itemDrop(event, buttonContent) {\n if (this.LayoutElementValue) {\n let found = false;\n if (this.LayoutElementValue.Elements) {\n if (buttonContent) {\n found = this.LayoutElementValue.Elements.some(x => x.IsButtonContent);\n } else {\n found = this.LayoutElementValue.Elements.some(x => !x.IsButtonContent);\n }\n } else {\n this.LayoutElementValue.Elements = [];\n }\n if (!found) {\n const insert = LayoutHelper.GetDroppedLayoutElement(this.dragItem);\n insert['IsButtonContent'] = buttonContent;\n this.LayoutElementValue.Elements.push(insert);\n if (buttonContent) {\n this.ButtonContentElement = insert;\n } else {\n this.DropDownContentElement = insert;\n }\n LayoutService.OnLayoutElementAdded({\n ElementContent: JSON.stringify(insert),\n Index: this.LayoutElementValue.Elements.length - 1,\n ParentID: this.LayoutElementValue.ID\n });\n }\n }\n event.currentTarget.style.backgroundColor = 'transparent';\n }\n\n itemSelected(item) {\n if (!item.Selected) {\n LayoutService.SelectedItem.next(item);\n }\n }\n\n onLayoutElementSet() {\n this.ButtonContentElement = null;\n this.DropDownContentElement = null;\n if (this.LayoutElementValue && this.LayoutElementValue.Elements) {\n this.LayoutElementValue.Elements.some(x => {\n if (x.IsButtonContent) {\n if (!this.ButtonContentElement) {\n this.ButtonContentElement = x;\n this.ButtonContentElement.Parent = this.LayoutElementValue;\n }\n } else {\n if (!this.DropDownContentElement) {\n this.DropDownContentElement = x;\n this.DropDownContentElement.Parent = this.LayoutElementValue;\n }\n }\n return this.ButtonContentElement && this.DropDownContentElement;\n });\n this.cdRef.detectChanges();\n }\n }\n\n dropdownClicked() {\n this.ShowDropDownContent = !this.ShowDropDownContent;\n }\n\n setFocus() {\n if (this.dropDown) {\n this.dropDown.setFocus();\n }\n }\n\n close() {\n if (this.dropDown) {\n this.dropDown.close();\n }\n }\n}\n","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport 'quill-emoji/dist/quill-emoji.js';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { TranslationTextBoxThemeControl } from '../../../appbuilder/controls/translation/translation.textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { ThemeHelper } from '../../../helpers/theme.helpers';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ViewType } from '../../../models/enums/viewtype.enum';\nimport { TranslatedString } from '../../../models/translatedstring.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LanguageService } from '../../../services/language.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MediaService } from '../../../services/media.service';\nimport { StandardRequestBase } from '../../../services/request-base';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-editor',\n templateUrl: './editor.control.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EditorControl extends IBaseComponent {\n\n static Type: any = 'editor';\n static Default = JSON.parse(JSON.stringify(defaultProperties.editor));\n\n quill;\n\n IsInEditModeValue = false;\n get IsInEditMode() {\n return this.IsInEditModeValue;\n }\n set IsInEditMode(value) {\n this.IsInEditModeValue = value;\n if (this.Initialized) {\n this.cdRef.detectChanges();\n }\n }\n //#region DataSource\n get DataSourceInnerHtml() {\n if (this.DataSourceValue) {\n return this.sanitizer.bypassSecurityTrustHtml(this.DataSourceValue);\n }\n return '';\n }\n //#endregion\n\n //#region Caption\n @Input()\n get Text() {\n return this.LayoutElement.Text;\n }\n set Text(val) {\n this.LayoutElement.Text = val;\n if (val) {\n this.TextInnerHtml = this.sanitizer.bypassSecurityTrustHtml(val);\n } else {\n this.TextInnerHtml = '';\n }\n this.TextChange.emit(this.LayoutElement.Text);\n this.cdRef.detectChanges();\n }\n TextInnerHtml;\n //#endregion\n\n LanguageInnerHtml;\n customOptions;\n modules;\n\n @Output() TextChange = new EventEmitter();\n\n FontList;\n FontSizes;\n\n SelectedColor;\n SelectedBackgroundColor;\n\n IsTranslatedString = false;\n AllLanguages = [];\n \n constructor(private sanitizer: DomSanitizer, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data, private requestService: StandardRequestBase) {\n super(cdRef, data);\n this.EventList.push('textchanged');\n this.Subscriptions['ViewType'] = LayoutService.ViewType.subscribe((viewType) => {\n this.IsInEditMode = viewType === ViewType.Edit;\n });\n\n this.FontList = MediaService.CustomFontList.getValue();\n MediaService.CustomFontList.subscribe((fonts) => {\n this.FontList = fonts;\n this.InitOptions();\n });\n\n this.Subscriptions['DataSourceChange'] = this.DataSourceChange.subscribe(x => {\n if (this.IsTranslatedString) {\n this.FillLanguages();\n }\n });\n this.Subscriptions['LanguageChanged'] = LanguageService.LanguageChanged.subscribe(() => {\n if (this.IsTranslatedString) {\n this.FillLanguages();\n }\n });\n\n this.InitOptions();\n }\n\n InitOptions() {\n this.customOptions = [];\n let sizeItem = { 'size': [] };\n if (ThemeHelper.CustomFontSizes) {\n let sizes = [];\n ThemeHelper.CustomFontSizes.forEach((size) => {\n sizes.push(size + 'px');\n });\n this.customOptions.push({\n import: 'attributors/style/size',\n whitelist: sizes\n });\n sizeItem = { 'size': [false, ...sizes] };\n this.FontSizes = sizes;\n }\n let fontItem = { 'font': [] };\n if (this.FontList && this.FontList.length > 0) {\n this.customOptions.push({\n import: 'attributors/class/font',\n whitelist: this.FontList\n });\n fontItem = { 'font': [ false, ...this.FontList ]};\n }\n this.modules = {\n toolbar: [\n ['bold', 'italic', 'underline', 'strike'], // toggled buttons\n ['blockquote', 'code-block'],\n [{ 'list': 'ordered' }, { 'list': 'bullet' }],\n [{ 'script': 'sub' }, { 'script': 'super' }], // superscript/subscript\n [{ 'indent': '-1' }, { 'indent': '+1' }], // outdent/indent\n [{ 'direction': 'rtl' }], // text direction\n [sizeItem],\n [{ 'header': [1, 2, 3, 4, 5, 6, false] }],\n [{ 'color': ['#F00', '#0F0', '#00F', '#000', '#FFF', 'color-picker'] }, { 'background': ['#F00', '#0F0', '#00F', '#000', '#FFF', 'color-picker'] }], // dropdown with defaults from theme\n [fontItem],\n [{ 'align': [] }],\n ['emoji'],\n ['clean'], // remove formatting button\n ['link', 'image', 'video'], // link and image, video\n ],\n 'emoji-shortname': true,\n 'emoji-textarea': false,\n 'emoji-toolbar': true\n }\n }\n\n ControlInitialized() {\n \n }\n\n onLayoutElementSet() {\n this.IsTranslatedString = (this.LayoutElement.DataSourceType == \"a0c232a9-4ab7-444c-a7e2-d23899a5673b\");\n if (this.IsTranslatedString) {\n this.requestService.executeGet('config/api/config', 'GetSelectedLanguages').subscribe(languages => {\n let list = [];\n if (languages) {\n list.push(...languages);\n }\n list.unshift({ LCID: \"default\", Caption: \"Default\" })\n this.AllLanguages = list;\n this.FillLanguages();\n this.cdRef.detectChanges();\n });\n }\n if (this.Text) {\n this.TextInnerHtml = this.sanitizer.bypassSecurityTrustHtml(this.Text);\n } else {\n this.TextInnerHtml = '';\n }\n this.cdRef.detectChanges();\n }\n onLayoutElementChanged() {\n if (this.IsTranslatedString) {\n this.requestService.executeGet('config/api/config', 'GetSelectedLanguages').subscribe(languages => {\n let list = [];\n if (languages) {\n list.push(...languages);\n }\n list.unshift({ LCID: \"default\", Caption: \"Default\" })\n this.AllLanguages = list;\n this.FillLanguages();\n this.cdRef.detectChanges();\n });\n }\n if (this.Text) {\n this.TextInnerHtml = this.sanitizer.bypassSecurityTrustHtml(this.Text);\n } else {\n this.TextInnerHtml = '';\n }\n this.cdRef.detectChanges();\n }\n\n FillLanguages() {\n if (this.AllLanguages && this.AllLanguages.length > 0) {\n if (this.DataSource == null) {\n this.AllLanguages.forEach((lang) => lang.Value = null);\n } else {\n this.AllLanguages[0].Value = this.DataSource.DefaultValue;\n if (this.DataSource.SerializedTranslations) {\n this.AllLanguages.forEach((trans) => {\n if (trans.LCID != 'default') {\n let found = this.DataSource.SerializedTranslations.find((value) => value.LCID == trans.LCID);\n if (found) {\n trans.Value = found.Value;\n } else {\n trans.Value = null;\n }\n }\n });\n }\n }\n if (!this.LayoutElement.Editable) {\n let text = TranslatedString.GetTranslation(this.DataSourceValue);\n this.LanguageInnerHtml = this.sanitizer.bypassSecurityTrustHtml(text);\n } else {\n this.LanguageInnerHtml = '';\n }\n this.cdRef.detectChanges();\n }\n }\n getLanguageName(lcid: number): string {\n var retVal = '';\n let lang = this.AllLanguages.find((lang) => lang.LCID == lcid);\n if (lang) {\n retVal = lang.Caption;\n }\n return retVal;\n }\n langChanged(lang) {\n if (lang.LCID == 'default') {\n if (this.DataSourceValue) {\n this.DataSourceValue.DefaultValue = lang.Value;\n } else {\n this.DataSource = {\n DefaultValue: lang.Value,\n SerializedTranslations: []\n };\n }\n } else {\n if (this.DataSourceValue) {\n let trans = this.DataSource.SerializedTranslations.find((val) => val.LCID == lang.LCID);\n if (lang.Value == \"\") {\n if (trans) {\n this.DataSource.SerializedTranslations.splice(this.DataSource.SerializedTranslations.indexOf(trans), 1);\n }\n } else {\n if (trans) {\n trans.Value = lang.Value;\n } else {\n this.DataSource.SerializedTranslations.push({ LCID: lang.LCID, Value: lang.Value });\n }\n }\n } else {\n this.DataSource = {\n DefaultValue: lang.Value,\n SerializedTranslations: [{ LCID: lang.LCID, Value: lang.Value }]\n };\n }\n }\n\n }\n setFocus() {\n if (this.quill) {\n if (this.quill && typeof this.quill.focus === 'function') {\n this.quill.focus();\n }\n }\n }\n\n onChange(ev) {\n if (this.LayoutElement.SaveToLayout) {\n this.triggerEvent('textchanged', this.Text);\n this.TextChange.emit(this.Text);\n } else {\n this.triggerEvent('textchanged', this.DataSourceValue);\n this.TextChange.emit(this.DataSourceValue);\n }\n }\n\n onKeyDown(ev) {\n if (ev && ev.key === 'Delete') {\n ev.stopPropagation();\n }\n }\n created(event) {\n if (event) {\n this.quill = event;\n var toolbar = this.quill.getModule('toolbar');\n toolbar.addHandler('color', (value) => {\n if (value === 'color-picker') {\n var picker = document.getElementById('color-picker');\n if (!picker) {\n picker = document.createElement('input');\n picker.id = 'color-picker';\n picker['type'] = 'color';\n picker.style.display = 'none';\n picker['value'] = '#FF0000';\n document.body.appendChild(picker);\n let that = this;\n picker.addEventListener('change', function () {\n that.quill.format('color', picker['value']);\n }, false);\n }\n picker.click();\n } else {\n this.quill.format('color', value);\n }\n });\n }\n }\n ColorChanged(value) {\n if (this.quill) {\n this.quill.format('color', this.SelectedColor, 'user');\n }\n }\n BackgroundChanged(value) {\n if (this.quill) {\n this.quill.format('background-color', this.SelectedBackgroundColor);\n }\n }\n SelectionChanged(event) {\n if (this.quill && event && event.range) {\n this.SelectedColor = null;\n this.SelectedBackgroundColor = null;\n let format = this.quill.getFormat(event.range.index, event.range.length);\n if (format) {\n if (format.color) {\n this.SelectedColor = format.color;\n } \n if (format.background) {\n this.SelectedBackgroundColor = format.background;\n } \n }\n }\n }\n}\nexport class EditorPanel extends BasePanel {\n static override SIDS = ['740deb8f-019f-429b-b700-a394b6a971cd']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'740deb8f-019f-429b-b700-a394b6a971cd',\n ID: 'Editor',\n Caption: '@@Editor',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'editor';\n }\n })\n\n PROPERTIES.push({\n ID: \"Placeholder\",\n Parent: \"Editor\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Placeholder\",\n Column: 1,\n Row: 1,\n InitArgs: {\n DataType: 'string'\n }\n })\n PROPERTIES.push({\n ID: \"SaveToLayout\",\n Parent: \"Editor\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Inhalt im Layout speichern\"\n },\n Column: 1,\n Row: 2\n })\n \n }\n}","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { TextAreaThemeControl } from '../../../appbuilder/controls/textarea/textarea.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ElementProperty } from '../../../models/layoutbase.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-embed',\n templateUrl: './embed.control.html',\n styleUrls: ['./embed.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EmbedControl extends IBaseComponent {\n\n static Type: any = 'embed';\n static Default = JSON.parse(JSON.stringify(defaultProperties.embed))\n\n EmbedContent;\n\n ContentValue;\n get Content() {\n if (this.ContentValue) {\n return this.ContentValue;\n }\n return this.LayoutElementValue.Content;\n }\n set Content(val) {\n this.ContentValue = val;\n this.setSanitizedContent();\n }\n \n constructor(private sanitizer: DomSanitizer, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.PropertyList.push(new ElementProperty('Content', 'string', '@@Content'));\n }\n\n ControlInitialized() {\n this.setSanitizedContent();\n }\n\n onLayoutElementChanged() {\n this.setSanitizedContent();\n }\n\n setSanitizedContent() {\n const content = this.Content;\n if (content != null) {\n this.EmbedContent = this.sanitizer.bypassSecurityTrustHtml(content);\n } else {\n this.EmbedContent = '';\n }\n }\n}\nexport class EmbedPanel extends BasePanel {\n static override SIDS = ['83ed3787-3c19-4488-b728-387962189e84']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'83ed3787-3c19-4488-b728-387962189e84',\n ID: 'embed',\n Caption: '@@Embed',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'embed';\n }\n })\n\n PROPERTIES.push({\n ID: \"Content\",\n Parent: \"embed\",\n Content: new ComponentPortal(TextAreaThemeControl),\n Label: \"@@Content\"\n });\n }\n}","import { ChangeDetectorRef, Component, Inject, ViewChild } from '@angular/core';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { MultiCacheService } from '../../../cache/multi/cache.service';\nimport { RTLHelper } from '../../../helpers/rtl.helper';\nimport { ElementProperty } from '../../../models/layoutbase.model';\nimport { LanguageService } from '../../../services/language.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MultiReportingService } from '../../../services/reporting.service';\nimport { IBaseComponent } from '../base.component';\nimport { FilterTreeComponent, FilterTreeControl, MultidimensionalTreeLogic } from './filter.tree.control';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'filter-dropdown-control',\n templateUrl: './filter.dropdown.control.html',\n styleUrls: ['./filter.dropdown.control.css']\n})\nexport class FilterDropdownControl extends IBaseComponent {\n static Type = 'filterdropdown';\n static Default = JSON.parse(JSON.stringify(defaultProperties.filterdropdown));\n\n SelectionText = ''; \n WasOpened = false;\n ShowLoading = true;\n IsRtl = false;\n\n @ViewChild('treeControl') treeControl: FilterTreeComponent;\n @ViewChild('menuTrigger') menuTrigger: MatMenuTrigger;\n\n ActualSelectionValue;\n get ActualSelection() {\n return this.ActualSelectionValue;\n }\n set ActualSelection(val) {\n this.ActualSelectionValue = val;\n this.setSelectionText();\n FilterTreeControl.updateVariables(this.LayoutElementValue, this.LayoutValue, val);\n }\n\n constructor(cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data, private service: MultiReportingService) {\n super(cdRef, data);\n this.EventList.push('selectionChanged');\n this.IsRtl = RTLHelper.Direction === 'rtl';\n this.PropertyList.push(new ElementProperty('ActualSelection', 'list', '@@ActualSelection'));\n this.Subscriptions['RTL'] = RTLHelper.DirectionChanged.subscribe((dir) => {\n this.IsRtl = dir === 'rtl';\n });\n this.Subscriptions['LanguageChanged'] = LanguageService.LanguageChanged.subscribe(() => {\n if (!this.LayoutElementValue.Relational && this.LayoutElementValue.DataSource) {\n const actSel = this.ActualSelectionValue;\n if (actSel && actSel.length > 0) {\n const query = {\n DataSource: this.LayoutElementValue.DataSource,\n SelectedMembers: actSel\n };\n this.service.GetMemberCaptions(query).subscribe(list => {\n if (list) {\n list.forEach(x => {\n const sel = actSel.find(y => y.LevelId == x.LevelId);\n if (sel) {\n sel.MemberIds.forEach((m, i) => {\n const newCaption = x.Captions[m];\n if (newCaption) {\n sel.MemberCaptions[i] = newCaption;\n }\n });\n }\n });\n this.setSelectionText();\n }\n });\n }\n }\n });\n }\n\n setInitialized() {\n FilterTreeControl.GetDynamicTimeInit(this.LayoutElementValue, this.LayoutValue).then(x => {\n if (x) {\n this.LayoutElementValue.SavedSelection = [x];\n this.ActualSelection = this.LayoutElementValue.SavedSelection;\n }\n super.setInitialized();\n });\n }\n\n ControlInitialized() {\n if (this.LayoutElementValue.SaveSelection && Array.isArray(this.LayoutElementValue.SavedSelection)) {\n this.ActualSelection = this.LayoutElementValue.SavedSelection;\n }\n }\n\n onSelectionChange(ev) {\n this.ActualSelection = ev;\n FilterTreeControl.updateSavedSelection(this.LayoutElementValue, ev);\n if (!this.LayoutElementValue.MultiSelect && this.menuTrigger) {\n this.menuTrigger.closeMenu();\n }\n this.triggerEvent('selectionChanged', ev);\n }\n\n setSelectionText() {\n let selText = '';\n if (this.ActualSelectionValue && this.ActualSelectionValue.length > 0) {\n if (this.LayoutElementValue.Relational) {\n selText = this.ActualSelectionValue.join(', ');\n } else {\n let first = true;\n this.ActualSelectionValue.forEach(x => {\n if (!first) {\n selText += ', ';\n }\n first = false;\n selText += x.MemberCaptions.join(', ');\n });\n }\n }\n this.SelectionText = selText;\n this.cdRef.detectChanges();\n }\n\n codeDescChanged() {\n if (this.treeControl) {\n this.treeControl.codeDescChanged();\n }\n }\n\n onLayoutElementChanged() {\n if (this.treeControl) {\n this.treeControl.InitLogic();\n }\n }\n\n onMenuOpened() {\n this.WasOpened = true;\n if (this.LayoutElementValue.ConditionalFilter && this.treeControl) {\n this.ShowLoading = true;\n this.treeControl.RefreshLogic();\n }\n }\n\n clearSelection() {\n if (this.treeControl) {\n this.treeControl.clearSelection();\n } else {\n this.onSelectionChange([]);\n }\n }\n\n onRootNodesFilled(filled) {\n this.ShowLoading = !filled;\n this.cdRef.detectChanges();\n }\n\n getNextOrPrevious(ev, next) {\n let levelID;\n let memberID = '';\n let ss;\n const le = this.LayoutElementValue;\n if (this.ActualSelectionValue && this.ActualSelectionValue.length > 0 && !le.MultiSelect) {\n ss = this.ActualSelectionValue[0];\n }\n if (ss && ss.LevelId && ss.MemberIds && ss.MemberIds.length > 0) {\n levelID = ss.LevelId;\n memberID = ss.MemberIds[0];\n } else if (le.Levels && le.Levels.length > 0) {\n levelID = le.Levels[0];\n }\n if (levelID) {\n if (le.ConditionalFilter) {\n MultiCacheService.GetLevel(levelID, le.DataModel).then(l => {\n MultidimensionalTreeLogic.ExecuteDependendFilter(l, le.ConditionalFilter, le.DataModel, null, le, this.service).then(x => {\n let selected;\n if (x.length > 0) {\n if (memberID) {\n x.some((an, i) => {\n if (an.Key == memberID) {\n if (next) {\n if (i == x.length - 1) {\n selected = x[0];\n } else {\n selected = x[i + 1];\n }\n } else {\n if (i == 0) {\n selected = x[x.length - 1];\n } else {\n selected = x[i - 1];\n }\n }\n return true;\n }\n return false;\n });\n } else {\n selected = x[next ? 0 : x.length - 1];\n }\n }\n if (selected) {\n this.setSelectedEntry(selected.Key, selected.Caption, selected.MemberId, levelID);\n } else {\n this.onSelectionChange([]);\n }\n });\n }); \n } else if (le.DataSource) {\n this.service.GetNextOrPreviousMember(le.DataSource, levelID, memberID, next).subscribe(x => {\n if (x) {\n this.setSelectedEntry(x.Key, x.Caption, x.ID, levelID);\n } else {\n this.onSelectionChange([]);\n }\n });\n }\n }\n ev.stopPropagation();\n }\n\n private setSelectedEntry(memberKey, memberCaption, memberID, levelID) {\n let codeDesc = 0;\n if (typeof this.LayoutElementValue.CodeDesc === 'number') {\n codeDesc = this.LayoutElementValue.CodeDesc;\n }\n let caption;\n if (codeDesc === 1) { // Code\n caption = memberKey;\n } else if (codeDesc === 3) { // Code & Description\n caption = memberKey + ' ' + memberCaption;\n } else {\n caption = memberCaption;\n }\n this.onSelectionChange([{\n LevelId: levelID,\n MemberIds: [memberID],\n MemberCaptions: [caption]\n }]);\n }\n}\n","import {\n AfterViewInit, ChangeDetectorRef, Component, EventEmitter, Inject, Input, OnDestroy, OnInit, Output, ViewChild\n} from '@angular/core';\nimport { UUID } from 'angular2-uuid';\nimport { MultiCacheService } from '../../../cache/multi/cache.service';\nimport { Level, Measure } from '../../../cache/multi/models/database.model';\nimport { ArrayHelpers } from '../../../helpers/array.helpers';\nimport { FilterHelper } from '../../../helpers/filter.helper';\nimport { InjectorHelper } from '../../../helpers/injector.helper';\nimport { FormulaNodeCalculator } from '../../../models/calculation/formula.node.calculator';\nimport { AxisNode } from '../../../models/datadescription/multi/multiresult.model';\nimport {\n AxisDef, LevelDef, MeasureDef, QueryDef, WhereDef, WhereOptions, WhereSelects\n} from '../../../models/datadescription/multi/querydef.model';\nimport { Aggregation, DimensionType } from '../../../models/enums';\nimport { AxisType } from '../../../models/enums/query.enum';\nimport { LanguageService } from '../../../services/language.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MultiReportingService, ReportingService } from '../../../services/reporting.service';\nimport { ABaseTreeNode, BaseTreeControl, IBaseTreeNode, IDKeeper, ITreeLogic } from '../../common/basetreecontrol/base.tree.control';\nimport { IBaseComponent } from '../base.component';\nimport { FromToFilter } from './from.to.filter';\n\n@Component({\n selector: 'filter-tree-component',\n templateUrl: './filter.tree.control.html'\n})\nexport class FilterTreeComponent implements OnInit, OnDestroy, AfterViewInit {\n\n @ViewChild('treeControl') treeControl: BaseTreeControl;\n Logic;\n RootNodes = [];\n FilterSelection = [];\n Initialized = false;\n\n //#region Settings\n SettingsValue;\n @Input()\n get Settings() {\n return this.SettingsValue;\n }\n set Settings(val) {\n if (val !== this.SettingsValue) {\n this.SettingsValue = val;\n this.InitLogic();\n this.SettingsChange.emit(this.SettingsValue);\n }\n }\n @Output() SettingsChange = new EventEmitter();\n //#endregion\n\n @Output() SelectionChange = new EventEmitter();\n @Output() RootNodesFilled = new EventEmitter();\n\n LanguageSub;\n\n private static updateCaption(nodes, codeDesc) {\n if (nodes) {\n nodes.forEach(node => {\n node.updateCaption(codeDesc);\n FilterTreeComponent.updateCaption(node.Children, codeDesc);\n });\n }\n }\n\n private static deselect(nodes) {\n if (nodes) {\n nodes.forEach(node => {\n node.Selected = false;\n FilterTreeComponent.deselect(node.Children);\n });\n }\n }\n\n constructor(private relService: ReportingService, private service: MultiReportingService) {\n }\n\n ngOnInit(): void {\n this.LanguageSub = LanguageService.LanguageChanged.subscribe(() => {\n this.RefreshLogic();\n });\n }\n\n RefreshLogic() {\n if (this.Logic instanceof MultidimensionalTreeLogic) {\n this.Logic.refresh().then(x => {\n this.RootNodes = x;\n this.RootNodesFilled.emit(true);\n });\n }\n }\n\n ngOnDestroy(): void {\n if (this.LanguageSub) {\n this.LanguageSub.unsubscribe();\n }\n }\n\n ngAfterViewInit(): void {\n this.Initialized = true;\n this.InitLogic();\n }\n\n InitLogic() {\n this.Logic = null;\n this.RootNodes = [];\n this.FilterSelection = [];\n this.RootNodesFilled.emit(false);\n if (this.Initialized) {\n const le = this.SettingsValue;\n if (le) {\n if (Array.isArray(le.SavedSelection)) {\n this.FilterSelection = [...le.SavedSelection];\n }\n if (le.Relational) {\n if (le.Container && le.Field && le.DataSource) {\n const query = {\n Filters: [],\n Sort: [],\n Columns: [{\n FieldID: le.Field,\n ContainerID: le.Container,\n DatasourceID: le.DataSource\n }],\n AdditionalColumns: [],\n Relations: [],\n Distinct: true\n };\n if (typeof le.Sort === 'number') {\n query.Sort.push({\n FieldID: le.Field,\n ContainerID: le.Container,\n DatasourceID: le.DataSource,\n Order: le.Sort\n });\n }\n this.relService.ExecuteQuery(query).subscribe(x => {\n const retVal = [];\n if (x && x.length > 0) {\n const keys = Object.keys(x[0]);\n if (keys.length > 0) {\n const col = keys[0];\n let index = 0;\n x.forEach(row => {\n const node = new FilterTreeNode(index++);\n node.Caption = row[col];\n retVal.push(node);\n });\n }\n }\n this.RootNodes = retVal;\n this.RootNodesFilled.emit(true);\n });\n }\n } else {\n this.Logic = new MultidimensionalTreeLogic(this.service);\n this.Logic.initialize(le).then(x => {\n if (x) {\n this.RootNodes = x;\n this.RootNodesFilled.emit(true);\n }\n });\n }\n }\n }\n }\n\n onSingleSelect(ev) {\n if (this.SettingsValue && !this.SettingsValue.MultiSelect) {\n this.FilterSelection.splice(0);\n if (ev && ev.length > 0) {\n if (this.SettingsValue.Relational) {\n this.FilterSelection.push(ev[0].Caption);\n } else {\n const first = ev[0];\n this.FilterSelection.push({\n LevelId: first.LevelID,\n MemberIds: [first.MemberID],\n MemberCaptions: [first.Caption]\n });\n }\n }\n this.fireSelect();\n }\n }\n\n onMultiSelect(ev, node) {\n if (ev && this.SettingsValue) {\n if (this.SettingsValue.Relational) {\n if (ev.checked) {\n this.FilterSelection.push(node.Caption);\n this.fireSelect();\n } else {\n const index = this.FilterSelection.indexOf(node.Caption);\n if (index > -1) {\n this.FilterSelection.splice(index, 1);\n this.fireSelect();\n }\n }\n } else {\n if (ev.checked) {\n let levItem = this.FilterSelection.find(x => x.LevelId === node.LevelID);\n if (!levItem) {\n levItem = {\n LevelId: node.LevelID,\n MemberIds: [],\n MemberCaptions: []\n };\n this.FilterSelection.push(levItem);\n }\n levItem.MemberIds.push(node.MemberID);\n levItem.MemberCaptions.push(node.Caption);\n this.fireSelect();\n } else {\n this.FilterSelection.some((levItem, i) => {\n if (levItem.LevelId === node.LevelID) {\n if (levItem.MemberIds) {\n const index = levItem.MemberIds.indexOf(node.MemberID);\n if (index > -1) {\n levItem.MemberIds.splice(index, 1);\n levItem.MemberCaptions.splice(index, 1);\n if (levItem.MemberIds.length === 0) {\n this.FilterSelection.splice(i, 1);\n }\n this.fireSelect();\n }\n } else {\n this.FilterSelection.splice(i, 1);\n }\n return true;\n }\n return false;\n });\n }\n }\n }\n }\n\n fireSelect() {\n if (this.Logic) {\n this.Logic.WhereSelects = [...this.FilterSelection];\n }\n this.SelectionChange.emit([...this.FilterSelection]);\n }\n\n codeDescChanged() {\n if (this.SettingsValue && !this.SettingsValue.Relational) {\n FilterTreeComponent.updateCaption(this.RootNodes, this.SettingsValue.CodeDesc);\n }\n }\n\n clearSelection() {\n if (this.SettingsValue && this.SettingsValue.MultiSelect) {\n FilterTreeComponent.deselect(this.RootNodes);\n } else if (this.treeControl) {\n this.treeControl.SelectedNode = null;\n }\n this.FilterSelection.splice(0);\n this.fireSelect();\n }\n}\n\n@Component({\n selector: 'filter-tree-control',\n template: ''\n})\nexport class FilterTreeControl extends IBaseComponent {\n static Type = 'filtertree';\n static Default = {\n Caption: 'FilterTree',\n Type: 'filtertree',\n Layout: {\n Height: {Type: 0, Value: 250},\n Width: {Type: 0, Value: 250},\n }\n };\n\n @ViewChild('treeControl') treeControl: FilterTreeComponent;\n\n static updateVariables(layoutElement, layout, selection: any[]) {\n if (layoutElement.FilterVariables && layoutElement.FilterVariables.length > 0) {\n let value;\n if (selection) {\n if (layoutElement.Relational && !layoutElement.MultiSelect) {\n if (selection.length > 0) {\n value = selection[0];\n }\n } else {\n value = [...selection];\n }\n }\n FromToFilter.FillVariables(layoutElement.FilterVariables, value, layout);\n }\n }\n\n static updateSavedSelection(layoutElement, selection: any[]) {\n if (layoutElement.SaveSelection) {\n layoutElement.SavedSelection = [...selection];\n } else {\n layoutElement.SavedSelection = [];\n }\n }\n\n static GetDynamicTimeInit(le, layout): Promise {\n return new Promise(resolve => {\n if (le && le.DynamicTime && !le.Relational && !le.SaveSelection\n && le.DataSource && le.Hierarchy && le.Levels && le.Levels.length > 0) {\n MultiCacheService.GetHierarchy(le.Hierarchy, le.DataModel).then(hier => {\n if (hier && hier.Parent && hier.Parent.DimensionType == DimensionType.Time) {\n let level;\n le.Levels.forEach(x => {\n const actLevel = hier.Levels.find(hl => hl.ID === x);\n if (actLevel && (!level || level.LevelNumber < actLevel.LevelNumber)) {\n level = actLevel;\n }\n });\n if (level) {\n const service = InjectorHelper.InjectorInstance.get(MultiReportingService);\n service.GetMemberFromDynamicTimePoint(le.DynamicTime, le.DataSource, level.ID).subscribe(member => {\n if (member) {\n const ws = new WhereSelects();\n ws.LevelId = level.ID;\n ws.MemberIds = [member.ID];\n ws[\"MemberCaptions\"] = [member.Caption];\n resolve(ws);\n } else {\n resolve(null);\n }\n }, () => resolve(null));\n return;\n }\n }\n resolve(null);\n }, () => resolve(null));\n } else {\n resolve(null);\n }\n });\n }\n\n constructor(cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.EventList.push('selectionChanged');\n }\n\n ControlInitialized() {\n if (this.LayoutElementValue.SaveSelection && Array.isArray(this.LayoutElementValue.SavedSelection)) {\n FilterTreeControl.updateVariables(this.LayoutElementValue, this.LayoutValue, this.LayoutElementValue.SavedSelection);\n }\n }\n\n setInitialized() {\n FilterTreeControl.GetDynamicTimeInit(this.LayoutElementValue, this.LayoutValue).then(x => {\n if (x) {\n this.LayoutElementValue.SavedSelection = [x];\n FilterTreeControl.updateVariables(this.LayoutElementValue, this.LayoutValue, this.LayoutElementValue.SavedSelection);\n this.onLayoutElementChanged();\n }\n super.setInitialized();\n });\n }\n\n onSelectionChange(ev) {\n FilterTreeControl.updateVariables(this.LayoutElementValue, this.LayoutValue, ev);\n FilterTreeControl.updateSavedSelection(this.LayoutElementValue, ev);\n this.triggerEvent('selectionChanged', ev);\n }\n\n codeDescChanged() {\n if (this.treeControl) {\n this.treeControl.codeDescChanged();\n }\n }\n\n onLayoutElementChanged() {\n if (this.treeControl) {\n this.treeControl.InitLogic();\n }\n }\n}\n\nexport class MultidimensionalTreeLogic implements ITreeLogic {\n\n WhereSelects: WhereSelects[];\n DataModel;\n Datasource;\n LevelList;\n CodeDesc = 0;\n ConditionalFilter;\n LayoutElement;\n private _IdKeeper = new IDKeeper();\n\n static ExecuteDependendFilter(level: Level, conditionalFilter, dataModel, additionalFilter: WhereDef[],\n layoutElement, service: MultiReportingService) {\n return new Promise((resolve, reject) => {\n MultiCacheService.GetCube(conditionalFilter.Cube, dataModel).then(c => {\n const definition = new QueryDef();\n definition.Cube = c;\n definition.ID = UUID.UUID();\n definition.DataModell = dataModel;\n definition.MeasureOnAxis = AxisType.X_Axis;\n\n let uid = 0;\n\n const mAxisDef = new AxisDef();\n mAxisDef.AreaID = uid++;\n mAxisDef.Type = AxisType.Measure;\n mAxisDef.HasMeasures = true;\n mAxisDef.ShowAll = true;\n definition.Axis.push(mAxisDef);\n\n let measureList: Measure[] = [];\n if (conditionalFilter.Measures && conditionalFilter.Measures.length > 0) {\n measureList = c.Measures.filter(m => conditionalFilter.Measures.some(cfm => cfm === m.ID));\n }\n if (measureList.length === 0) {\n measureList = c.Measures;\n }\n measureList.forEach(m => {\n const mi = new MeasureDef();\n mi.Caption = m.Caption;\n mi.ASFunctionType = Aggregation.Sum;\n mi.Measure = m;\n mi.UniqueID = uid++;\n definition.Measures.push(mi);\n });\n\n const axisdef = new AxisDef();\n axisdef.AreaID = uid++;\n axisdef.Type = AxisType.Y_Axis;\n //axisdef.ShowAll = true;\n\n const leveldef = new LevelDef();\n leveldef.Level = level;\n leveldef.Hierarchy = level.Parent;\n leveldef.Dimension = level.Parent.Parent;\n leveldef.UniqueID = uid++;\n\n axisdef.Levels.push(leveldef);\n definition.Axis.push(axisdef);\n definition.HeterogenPosition.set(AxisType.Y_Axis, axisdef.AreaID);\n \n if (additionalFilter) {\n definition.Where.push(...additionalFilter);\n }\n\n if (conditionalFilter.Filter) {\n conditionalFilter.Filter.forEach(f => {\n const options = new WhereOptions();\n options.IsOptional = true;\n const wd = new WhereDef();\n wd.DimensionId = f.Dimension;\n wd.HierarchyId = f.Hierarchy;\n wd.Formula = f.Formula;\n wd.Options = options;\n wd.Defaults = f.Defaults;\n definition.Where.push(wd);\n });\n }\n\n if (layoutElement) {\n const variableList = FilterHelper.GetVariables(layoutElement);\n variableList.forEach(x => {\n const vat = FormulaNodeCalculator.GetVariableValue(x, false).Value;\n if (typeof vat !== 'undefined' && vat !== null) {\n definition.Variables[x.Name] = vat;\n }\n });\n }\n\n service.ExecuteQuery(dataModel, definition).toPromise().then(x => {\n if (x && x.YAxis && x.YAxis.Nodes) {\n resolve(x.YAxis.Nodes);\n } else {\n resolve([]);\n }\n });\n });\n });\n }\n\n constructor(private service: MultiReportingService) {\n }\n\n initialize(filterElementSetting): Promise {\n const promise = new Promise((resolve, reject) => {\n this.LayoutElement = filterElementSetting;\n if (filterElementSetting && filterElementSetting.DataModel && filterElementSetting.DataSource\n && filterElementSetting.Hierarchy && filterElementSetting.Levels) {\n if (Array.isArray(filterElementSetting.SavedSelection)) {\n this.WhereSelects = [...filterElementSetting.SavedSelection];\n }\n if (filterElementSetting.ConditionalFilter) {\n this.ConditionalFilter = filterElementSetting.ConditionalFilter;\n }\n this.Datasource = filterElementSetting.DataSource;\n this.DataModel = filterElementSetting.DataModel;\n if (typeof filterElementSetting.CodeDesc === 'number') {\n this.CodeDesc = filterElementSetting.CodeDesc;\n }\n MultiCacheService.GetHierarchy(filterElementSetting.Hierarchy, filterElementSetting.DataModel).then(hier => {\n if (hier) {\n const levels = [];\n hier.Levels.forEach(l => {\n if (filterElementSetting.Levels.some(ll => ll === l.ID)) {\n levels.push(l);\n }\n });\n this.LevelList = levels;\n if (levels.length > 0) {\n this.loadChildren(new MultiTreeNode(-1)).then(children => {\n resolve(children);\n });\n } else {\n resolve([]);\n }\n } else {\n resolve([]);\n }\n }, () => { resolve([]); });\n } else {\n resolve([]);\n }\n });\n return promise;\n }\n\n refresh(): Promise {\n return this.loadChildren(new MultiTreeNode(-1));\n }\n\n loadChildren(node: IBaseTreeNode): Promise {\n const promise = new Promise((resolve, reject) => {\n if (node instanceof MultiTreeNode) {\n if (node.Depth < this.LevelList.length) {\n const nodeLevel = this.LevelList[node.Depth];\n if (this.ConditionalFilter) {\n // Query zusammenbauen\n const additionalFilter = [];\n let parent = node;\n while (parent) {\n if (parent.Depth === 0) {\n break;\n }\n const wd = new WhereDef();\n wd.DimensionId = nodeLevel.Parent.Parent.ID;\n wd.HierarchyId = nodeLevel.Parent.ID;\n wd.Options = new WhereOptions();\n const sel = new WhereSelects();\n sel.LevelId = parent.LevelID;\n sel.MemberIds = [parent.MemberID];\n wd.Defaults = [sel];\n additionalFilter.splice(0, 0, wd);\n parent = parent.Parent;\n }\n MultidimensionalTreeLogic.ExecuteDependendFilter(nodeLevel, this.ConditionalFilter, this.DataModel,\n additionalFilter, this.LayoutElement, this.service).then(x => {\n const retVal = [];\n const nextIndex = node.Depth + 1;\n const hasChildren = nextIndex < this.LevelList.length;\n x.forEach(axisNode => {\n if (axisNode.Position !== -1 && axisNode.Visible !== false) {\n const memberNode = new MultiTreeNode(this._IdKeeper.NextID);\n memberNode.Parent = node;\n memberNode.MemberKey = axisNode.Key;\n memberNode.LevelID = nodeLevel.ID;\n memberNode.MemberCaption = axisNode.Caption;\n memberNode.updateCaption(this.CodeDesc);\n memberNode.MemberID = axisNode.MemberId;\n memberNode.Depth = nextIndex;\n memberNode.HasChildren = hasChildren;\n if (this.WhereSelects) {\n this.WhereSelects.some(ws => {\n if (ws.LevelId === memberNode.LevelID) {\n if (ws.MemberIds.includes(axisNode.MemberId)) {\n memberNode.Selected = true;\n return true;\n }\n }\n return false;\n });\n }\n retVal.push(memberNode);\n }\n });\n if (this.LayoutElement && typeof this.LayoutElement.Sort === 'number') {\n ArrayHelpers.sortAlphabetical(retVal, 'Caption');\n if (this.LayoutElement.Sort === 1) {\n retVal.reverse();\n }\n }\n resolve(retVal);\n });\n } else {\n this.service.GetMembers(this.Datasource, nodeLevel.ID, node.MemberID, node.LevelID).subscribe(members => {\n const retVal = [];\n if (members) {\n const nextIndex = node.Depth + 1;\n const hasChildren = nextIndex < this.LevelList.length;\n members.forEach(m => {\n const memberNode = new MultiTreeNode(this._IdKeeper.NextID);\n memberNode.MemberKey = m.Key;\n memberNode.LevelID = nodeLevel.ID;\n memberNode.MemberCaption = m.Caption;\n memberNode.updateCaption(this.CodeDesc);\n memberNode.MemberID = m.ID;\n memberNode.Depth = nextIndex;\n memberNode.HasChildren = hasChildren;\n if (this.WhereSelects) {\n this.WhereSelects.some(ws => {\n if (ws.LevelId === memberNode.LevelID) {\n if (ws.MemberIds.includes(m.ID)) {\n memberNode.Selected = true;\n return true;\n }\n }\n return false;\n });\n }\n retVal.push(memberNode);\n });\n if (this.LayoutElement && typeof this.LayoutElement.Sort === 'number') {\n ArrayHelpers.sortAlphabetical(retVal, 'Caption');\n if (this.LayoutElement.Sort === 1) {\n retVal.reverse();\n }\n }\n }\n resolve(retVal);\n });\n }\n } else {\n resolve([]);\n }\n } else {\n resolve([]);\n }\n });\n return promise;\n }\n}\n\nexport class FilterTreeNode extends ABaseTreeNode {\n Selected = false;\n}\n\nexport class MultiTreeNode extends FilterTreeNode {\n Parent: MultiTreeNode;\n Depth = 0;\n MemberKey = '';\n MemberCaption = '';\n LevelID = '00000000-0000-0000-0000-000000000000';\n MemberID = '';\n\n updateCaption(codeDesc) {\n if (codeDesc === 1) { // Code\n this.Caption = this.MemberKey;\n } else if (codeDesc === 3) { // Code & Description\n this.Caption = this.MemberKey + ' ' + this.MemberCaption;\n } else {\n this.Caption = this.MemberCaption;\n }\n }\n}\n","import { ChangeDetectorRef, Component, Input, ViewChild } from '@angular/core';\nimport { BaseDialog } from '../../dialogs/basedialog/base.dialog';\nimport { FilterElementSettings } from '../../../models/datadescription/multi/filter/filterElementSettings.model';\nimport { FilterTreeComponent } from './filter.tree.control';\n\n@Component({\n selector: 'filter-tree-dialog',\n templateUrl: './filter.tree.dialog.html'\n})\nexport class FilterTreeDialog {\n\n @Input()\n FilterElementSettingsValue: FilterElementSettings;\n\n @ViewChild('filterTree') filterTree: FilterTreeComponent;\n\n public static ShowDialog(args, handler) {\n BaseDialog.ShowDialog({\n ContentType: FilterTreeDialog,\n InitArgs: args,\n Title: '@@Auswahl',\n Handler: handler\n });\n }\n\n constructor(private cdRef: ChangeDetectorRef) {\n }\n\n Initialize(args) {\n if (args) { \n if (args.FilterElementSettingsValue) {\n this.FilterElementSettingsValue = args.FilterElementSettingsValue;\n }\n }\n }\n\n GetDialogResult() {\n return { FilterSelection: this.filterTree.FilterSelection };\n }\n\n onRootNodesFilled(ev) {\n this.cdRef.detectChanges();\n }\n}\n","import { ChangeDetectorRef, Component, Inject } from '@angular/core';\nimport { Moment } from 'moment';\nimport { CacheService } from '../../../cache/cache.service';\nimport { DateHelper } from '../../../helpers/date.helper';\nimport { WhereSelects } from '../../../models/datadescription/multi/querydef.model';\nimport { LevelType } from '../../../models/enums';\nimport { ElementProperty } from '../../../models/layoutbase.model';\nimport { DynamicTimeSettingsService } from '../../../services/dynamictimesettings.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { VariableInfo } from '../../common/variable.chooser';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'from-to-control',\n templateUrl: './from.to.filter.html',\n styles: ['.piCal { position: absolute; right: 0.5rem; top: 0px; bottom: 0px; }']\n})\nexport class FromToFilter extends IBaseComponent {\n static Type = 'fromto';\n static Default = JSON.parse(JSON.stringify(defaultProperties.fromto));\n\n Range;\n\n get StartView() {\n switch (this.LayoutElementValue.LevelType) {\n case LevelType.TimeYears:\n return 'multi-years';\n break;\n case LevelType.TimeMonths:\n return \"year\";\n break;\n default:\n return 'month';\n } \n }\n\n get From() {\n if (Array.isArray(this.Range) && this.Range.length > 0) {\n return this.Range[0];\n }\n return null;\n }\n set From(val) {\n if (Array.isArray(this.Range)) {\n this.Range = [val, this.Range[1]];\n } else {\n this.Range = [val, null];\n }\n this.dateChanged(true);\n }\n\n get To() {\n if (Array.isArray(this.Range) && this.Range.length > 1) {\n return this.Range[1];\n }\n return null;\n }\n set To(val) {\n if (Array.isArray(this.Range)) {\n this.Range = [this.Range[0], val];\n } else {\n this.Range = [null, val];\n }\n this.dateChanged(false);\n }\n\n static FillVariables(varInfos: VariableInfo[], value, layout) {\n if (varInfos) {\n varInfos.forEach(varInfo => {\n if (varInfo.IsGlobal) {\n CacheService.ReadGlobalVariables().then((vars) => {\n if (vars) {\n const v = vars.find(x => x.Name === varInfo.VariableName);\n if (v) {\n v.Value = value;\n }\n }\n });\n } else {\n const elem = FromToFilter.GetElementByName(layout, varInfo.ElemName);\n if (elem && elem.Variables) {\n const v = elem.Variables.find(x => x.Name === varInfo.VariableName);\n if (v) {\n v.Value = value;\n }\n }\n }\n });\n }\n }\n\n private static GetElementByName(elem, name) {\n let retVal = null;\n if (elem) {\n if (elem.Name === name) {\n retVal = elem;\n } else if (elem.Elements) {\n elem.Elements.some(x => {\n const child = FromToFilter.GetElementByName(x, name);\n if (child) {\n retVal = child;\n return true;\n }\n return false;\n });\n }\n }\n return retVal;\n }\n\n constructor(private dynService: DynamicTimeSettingsService, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.EventList.push('fromChanged');\n this.EventList.push('toChanged');\n this.PropertyList.push(new ElementProperty('From', 'object', '@@Von'));\n this.PropertyList.push(new ElementProperty('To', 'object', '@@Bis'));\n }\n\n ControlInitialized() {\n const le = this.LayoutElementValue;\n if (le) {\n const range = [null, null];\n let diff;\n if (le.SaveSelection && Array.isArray(le.SavedRange) && le.SavedRange.length > 0) {\n let startTime, endTime;\n if (typeof le.SavedRange[0] === 'string') {\n startTime = Date.parse(le.SavedRange[0]);\n }\n if (le.SavedRange.length > 1 && typeof le.SavedRange[1] === 'string') {\n endTime = Date.parse(le.SavedRange[1]);\n }\n if (!isNaN(startTime)) {\n range[0] = new Date(startTime);\n if (!isNaN(endTime)) {\n range[1] = new Date(endTime);\n diff = endTime - startTime;\n }\n } else if (!isNaN(endTime)) {\n range[1] = new Date(endTime);\n }\n }\n if (le.DynTimeFrom) {\n const query = {\n Start: le.DynTimeFrom,\n End: null\n };\n if (le.DynTimeTo) {\n query.End = le.DynTimeTo;\n this.dynService.ExecuteTimeQuery(query).subscribe(x => {\n if (x && x.Start && x.End) {\n const start = new Date(x.Start);\n const end = new Date(x.End);\n this.Range = [start, end];\n if (le.Relational) {\n FromToFilter.FillVariables(le.VariablesFrom, start, this.LayoutValue);\n FromToFilter.FillVariables(le.VariablesTo, end, this.LayoutValue);\n } else {\n this.updateMultiVar();\n }\n this.triggerEvent('fromChanged', start);\n this.triggerEvent('toChanged', end);\n this.cdRef.detectChanges();\n }\n this.setInitialized();\n });\n } else {\n this.dynService.ExecuteTimeQuery(query).subscribe(x => {\n if (x && x.Start) {\n const dynStart = Date.parse(x.Start);\n let dynEnd = null;\n if (typeof diff === 'number') {\n dynEnd = new Date(dynStart + diff);\n }\n this.Range = [new Date(dynStart), dynEnd];\n this.dateChanged(true);\n }\n this.setInitialized();\n });\n }\n return;\n } else if (le.DynTimeTo) {\n this.dynService.ExecuteTimeQuery({ Start: le.DynTimeTo }).subscribe(x => {\n if (x && x.Start) {\n const dynEnd = Date.parse(x.Start);\n let dynStart = null;\n if (typeof diff === 'number') {\n dynStart = new Date(dynEnd - diff);\n }\n this.Range = [dynStart, new Date(dynEnd)];\n this.dateChanged(false);\n }\n this.setInitialized();\n });\n return;\n } else if (le.SaveSelection) {\n this.Range = range;\n if (le.Relational) {\n FromToFilter.FillVariables(le.VariablesFrom, range[0], this.LayoutValue);\n FromToFilter.FillVariables(le.VariablesTo, range[1], this.LayoutValue);\n } else {\n this.updateMultiVar();\n }\n }\n }\n }\n\n isFrom = true;\n chosenYearHandler(normalizedYear: Moment, datepicker:any) {\n \n if (this.LayoutElementValue.LevelType === LevelType.TimeYears && normalizedYear) {\n\n let oldRange = [null, null];\n if (Array.isArray(this.Range)) {\n oldRange = this.Range;\n }\n this.Range = null;\n this.Range = [null, null];\n\n if (datepicker._dtInput.selectMode === 'rangeFrom' || (datepicker._dtInput.selectMode === 'range' && this.isFrom)) {\n this.Range[0] = new Date(normalizedYear.toString());\n if (Array.isArray(oldRange )&& oldRange.length > 1) {\n this.Range[1] = oldRange[1];\n }\n if (datepicker._dtInput.selectMode !== 'rangeFrom') {\n this.isFrom = false;\n }\n this.dateChanged(true);\n datepicker.close();\n }\n else {\n let date = new Date(normalizedYear.toString());\n date.setDate(date.getDate() - 1);\n this.Range[1] = date;\n if (Array.isArray(oldRange) && oldRange.length > 0) {\n this.Range[0] = oldRange[0];\n }\n this.isFrom = true;\n this.dateChanged(false);\n datepicker.close();\n }\n }\n else if (this.LayoutElementValue.LevelType === LevelType.TimeMonths && normalizedYear) {\n \n }\n }\n\n chosenMonthHandler(normalizedMonth: Moment, datepicker:any) {\n \n if (this.LayoutElementValue.LevelType === LevelType.TimeMonths && normalizedMonth) {\n\n let oldRange = [null, null];\n if (Array.isArray(this.Range)) {\n oldRange = this.Range;\n }\n this.Range = null;\n this.Range = [null, null];\n\n if (datepicker._dtInput.selectMode === 'rangeFrom' || (datepicker._dtInput.selectMode === 'range' && this.isFrom)) {\n this.Range[0] = new Date(normalizedMonth.toString());\n if (Array.isArray(oldRange) && oldRange.length > 1) {\n this.Range[1] = oldRange[1];\n }\n if (datepicker._dtInput.selectMode !== 'rangeFrom') {\n this.isFrom = false;\n }\n this.dateChanged(true);\n datepicker.close();\n }\n else {\n let date = new Date(normalizedMonth.toString());\n date.setDate(date.getDate() - 1);\n this.Range[1] = date;\n if (Array.isArray(oldRange) && oldRange.length > 0) {\n this.Range[0] = oldRange[0];\n }\n this.isFrom = true;\n this.dateChanged(false);\n datepicker.close();\n }\n }\n }\n\n dateChanged(from: boolean) {\n let fromDate;\n let toDate;\n if (Array.isArray(this.Range) && this.Range.length > 0) {\n fromDate = this.Range[0];\n if (this.Range.length > 1) {\n toDate = this.Range[1];\n }\n }\n if (this.LayoutElementValue) {\n const savedRange = [];\n if (this.LayoutElementValue.SaveSelection) {\n if (fromDate instanceof Date) {\n savedRange.push(fromDate.toUTCString());\n } else {\n savedRange.push(null);\n }\n if (toDate instanceof Date) {\n savedRange.push(toDate.toUTCString());\n } else {\n savedRange.push(null);\n }\n }\n this.LayoutElementValue.SavedRange = savedRange;\n if (this.LayoutElementValue.Relational) {\n if (from) {\n FromToFilter.FillVariables(this.LayoutElementValue.VariablesFrom, fromDate, this.LayoutValue);\n } else {\n FromToFilter.FillVariables(this.LayoutElementValue.VariablesTo, toDate, this.LayoutValue);\n }\n } else {\n this.updateMultiVar();\n }\n }\n if (from) {\n this.triggerEvent('fromChanged', fromDate);\n } else {\n this.triggerEvent('toChanged', toDate);\n }\n }\n\n updateMultiVar() {\n if (this.LayoutElementValue.Level) {\n const whereDef = new WhereSelects();\n whereDef.LevelId = this.LayoutElementValue.Level;\n if (Array.isArray(this.Range)) {\n if (this.Range.length > 0) {\n whereDef.Start = this.Range[0];\n if (whereDef.Start instanceof Date) {\n whereDef.Start = DateHelper.GetSerializeString(whereDef.Start);\n }\n if (this.Range.length > 1) {\n whereDef.End = this.Range[1];\n if (whereDef.End instanceof Date) {\n whereDef.End = DateHelper.GetSerializeString(whereDef.End);\n }\n }\n }\n }\n FromToFilter.FillVariables(this.LayoutElementValue.VariablesFrom, [whereDef], this.LayoutValue);\n }\n }\n}\n","import {ComponentPortal} from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable, of} from 'rxjs';\nimport {catchError, map} from 'rxjs/operators';\nimport {ComboboxThemeControl} from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport {TextboxThemeControl} from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport {GenericMenuTab} from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport {BasePanel} from '../../../appbuilder/panels/base.panel';\nimport {PropertyGroupDisplay} from '../../../models/enums/propertygroupdisplay.enum';\nimport {\n PROPERTIES,\n PROPERTYGROUPS,\n} from '../../../services/dynamic.component.service';\nimport {LayoutService} from '../../../services/layout.service';\nimport {IBaseComponent} from '../base.component';\nimport {MediaService} from \"../../../services/media.service\";\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-googlemap',\n templateUrl: './gmap.control.html',\n styleUrls: ['./gmap.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GMapControl extends IBaseComponent {\n static Type: any = 'googlemap';\n apiLoaded: Observable;\n static Default = JSON.parse(JSON.stringify(defaultProperties.googlemap));\n GeneralSettings;\n\n ControlInitialized() {\n }\n\n constructor(\n cdRef: ChangeDetectorRef,\n public httpClient: HttpClient,\n @Inject(LayoutService.CONTAINER_DATA) public data,\n ) {\n super(cdRef, data);\n let settings = localStorage.getItem('GeneralSettings');\n if (settings) {\n this.GeneralSettings = JSON.parse(settings);\n const key = this.GeneralSettings?.GoogleMapsAPIKey || '';\n\n MediaService.IconURL.subscribe(url => {\n if (url) {\n this.MarkerIconURL = url;\n }\n })\n this.LoadGoogleMap(key);\n }\n\n }\n LoadGoogleMap(key) {\n const url = `https://maps.googleapis.com/maps/api/js?key=${key}&libraries=visualization`\n this.apiLoaded = this.httpClient.jsonp(url, 'callback')\n .pipe(\n map(() => true),\n catchError(() => of(false)),\n );\n }\n\n @Input()\n get Longitude() {\n return this.LayoutElement.Longitude;\n }\n\n set Longitude(val) {\n this.LayoutElement.Longitude = val;\n this.LongitudeChange.emit(this.LayoutElement.Longitude);\n }\n\n @Output() LongitudeChange = new EventEmitter();\n\n @Input()\n get Latitude() {\n return this.LayoutElement.Latitude;\n }\n\n set Latitude(val) {\n this.LayoutElement.Latitude = val;\n this.LatitudeChange.emit(this.LayoutElement.Latitude);\n }\n\n @Output() LatitudeChange = new EventEmitter();\n\n MarkerIconURL = '';\n IconValue;\n @Input()\n get MarkerIcon() {\n if (this.IconValue != null) {\n return this.IconValue;\n }\n return this.LayoutElement.MarkerIcon;\n }\n set Icon(val) {\n this.IconValue = val;\n this.cdRef.detectChanges();\n }\n\n display: any;\n center: google.maps.LatLngLiteral;\n zoom: 4;\n markerOptions: google.maps.MarkerOptions = {draggable: true};\n markerPositions: google.maps.LatLngLiteral = {\n lat: 30.3756933837723,\n lng: 69.34467084655763,\n }\n\n markerIconSize: google.maps.Size = {height: 30, width: 30, equals(other: google.maps.Size | null): boolean {\n return true}};\n get markerIcon(): string | google.maps.Icon {\n console.log('this.MarkerIcon', this.MarkerIcon);\n if(this.MarkerIcon) {\n return {\n url: this.MarkerIconURL + this.MarkerIcon + '.svg',\n scaledSize: this.markerIconSize\n };\n }\n return;\n }\n\n moveMap(event: google.maps.MapMouseEvent) {\n if (event.latLng != null) this.Latitude = event.latLng.toJSON();\n }\n\n move(event: google.maps.MapMouseEvent) {\n // if (event.latLng != null) this.Longitude = event.latLng.toJSON();\n }\n}\n\nexport class GoogleMapPanel extends BasePanel {\n static override SIDS = ['7ca4f1c3-f490-4565-ae0a-e312868f9d8c'];\n\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID: '7ca4f1c3-f490-4565-ae0a-e312868f9d8c',\n ID: 'GoogleMap',\n Caption: '@@GoogleMap',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'googlemap';\n },\n });\n\n PROPERTIES.push({\n ID: 'Longitude',\n Parent: 'GoogleMap',\n Content: new ComponentPortal(TextboxThemeControl),\n Label: '@@Longitude',\n Column: 1,\n Row: 1,\n InitArgs: {\n InputType: 'number',\n },\n });\n PROPERTIES.push({\n ID: 'Latitude',\n Parent: 'GoogleMap',\n Content: new ComponentPortal(TextboxThemeControl),\n Label: '@@Latitude',\n Column: 1,\n Row: 2,\n InitArgs: {\n InputType: 'number',\n },\n });\n\n MediaService.IconList.subscribe((result) => {\n if (result) {\n let icons = [];\n result.forEach((icon) => {\n icons.push({ Caption: icon, Icon: icon, Value: icon })\n });\n PROPERTIES.push({\n ID: \"MarkerIcon\",\n Parent: \"GoogleMap\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Icon\",\n Column: 1,\n Row: 3,\n InitArgs: {\n Placeholder: \"@@Icon\",\n Multiple: false,\n ItemsSource: icons,\n ValueMemberPath: \"Value\",\n DisplayMemberPath: \"Caption\",\n IconMemberPath: \"Icon\"\n }\n });\n }\n });\n }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { Color } from '../../../models/style/color.model';\nimport { LayoutService } from '../../../services/layout.service';\n\n@Component({\n selector: 'lib-color-picker',\n templateUrl: './colorpicker.control.html',\n styleUrls: ['./colorpicker.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ColorPickerComponent implements OnInit, AfterViewInit {\n\n //@ViewChild('gradientColorPickerElement') gradientColorPicker;\n\n CustomCSSVariables = [];\n SelectedCSSVariable;\n SelectedColorHex = '';\n SelectedColorHexAlpha = '';\n SelectedColorValue = new Color();\n Gradient = ''\n Style = {};\n @Input()\n get SelectedColor() {\n return this.SelectedColorValue;\n }\n set SelectedColor(val) {\n if (val) {\n this.SelectedCSSVariable = val.ColorReference;\n const hex = Color.HexFromColor(val)\n this.SelectedColorHexAlpha = hex;\n this.setGradientValue(hex)\n this.SelectedColorHex = Color.HexFromColor(val, true);\n this.SelectedColorValue = val;\n } else {\n this.SelectedCSSVariable = null;\n this.SelectedColorHexAlpha = '';\n this.SelectedColorHex = '';\n this.SelectedColorValue = new Color();\n }\n this.updateStyle(true);\n this.cdRef.detectChanges();\n }\n @Input()\n get InitialGradient() {\n return this.Gradient\n }\n set InitialGradient(value: string) {\n this.Gradient = value;\n }\n constructor(private cdRef: ChangeDetectorRef) {}\n\n UseVariablesValue = true;\n @Input()\n get UseVariables() {\n return this.UseVariablesValue;\n }\n set UseVariables(val) {\n this.UseVariablesValue = val;\n }\n\n UseSystemVariablesValue = true;\n @Input()\n get UseSystemVariables() {\n return this.UseSystemVariablesValue;\n }\n set UseSystemVariables(val) {\n this.UseSystemVariablesValue = val;\n }\n @Output() ColorChanged = new EventEmitter();\n onColorChanged() {\n this.ColorChanged.emit(this.SelectedColorValue);\n this.GradientColor.emit(this.Gradient)\n }\n @Input() InputGradient;\n @Output() GradientColor = new EventEmitter();\n gradientChange(ev) {\n this.Gradient = ev\n this.GradientColor.emit(this.Gradient)\n this.onColorChanged()\n }\n InternalUpdate = false;\n \n setGradientValue(hex) {\n if (hex) { \n this.Gradient = `linear-gradient(180deg, ${hex},${this.createTint(hex,0.7)})`\n }\n }\n createTint(hexColor, tintAmount) {\n // Remove the \"#\" symbol if it exists\n hexColor = hexColor?.replace(\"#\", \"\");\n\n // Parse the hex color into its red, green, and blue components\n const r = parseInt(hexColor.slice(0, 2), 16);\n const g = parseInt(hexColor.slice(2, 4), 16);\n const b = parseInt(hexColor.slice(4, 6), 16);\n \n // Calculate the tinted color by adding white\n const newR = r + (255 - r) * tintAmount;\n const newG = g + (255 - g) * tintAmount;\n const newB = b + (255 - b) * tintAmount;\n\n // Convert the tinted RGB values back to hexadecimal\n const tintedHexColor = `#${Math.round(newR).toString(16)}${Math.round(newG).toString(16)}${Math.round(newB).toString(16)}`;\n return tintedHexColor;\n }\n ngOnInit(): void {\n if (this.UseVariablesValue) {\n if (this.UseSystemVariablesValue) {\n this.CustomCSSVariables = [...LayoutService.SystemCSSVariables, ...LayoutService.CustomCSSVariables];\n } else {\n this.CustomCSSVariables = [...LayoutService.CustomCSSVariables];\n }\n }\n }\n\n ngAfterViewInit(): void {\n //if (this.gradientColorPicker) {\n // this.InternalUpdate = true;\n // const hex = Color.HexFromColor(this.SelectedColorValue, true);\n // if (hex) {\n // this.gradientColorPicker.updateTmpSelectedColor(hex);\n // } else {\n // this.gradientColorPicker.updateTmpSelectedColor('#000000');\n // }\n // this.InternalUpdate = false;\n //}\n }\n\n pickerChanged(ev) {\n if (!this.InternalUpdate) {\n const color = Color.FromHex(ev.value);\n if (color.R !== this.SelectedColorValue.R || color.G !== this.SelectedColorValue.G || color.B !== this.SelectedColorValue.B) {\n color.A = this.SelectedColorValue.A;\n this.SelectedColor = color;\n this.onColorChanged();\n }\n }\n }\n\n hexChanged(ev) {\n if (ev && ev.target) {\n const hex = ev.target.value;\n this.SelectedColor = Color.FromHex(hex);\n this.setGradientValue(hex);\n this.onColorChanged();\n }\n }\n\n rgbaChanged() {\n this.onRGBAChange(true);\n }\n\n aChanged() {\n this.onRGBAChange(false);\n }\n\n onRGBAChange(updatePicker: boolean) {\n this.SelectedColorValue.ColorReference = null;\n this.SelectedCSSVariable = null;\n this.SelectedColorHex = Color.HexFromColor(this.SelectedColorValue, true);\n this.SelectedColorHexAlpha = Color.HexFromColor(this.SelectedColorValue);\n this.onColorChanged();\n this.updateStyle(updatePicker);\n }\n\n OnItemChanged() {\n this.SelectedColor = Color.FromReference(this.SelectedCSSVariable);\n this.onColorChanged();\n }\n\n updateStyle(updatePicker: boolean) {\n const result = {};\n result['background-color'] = Color.GetStyleText(this.SelectedColorValue);\n if (this.SelectedColorValue.R == null && this.SelectedColorValue.G == null && this.SelectedColorValue.B == null) {\n result['color'] = 'black';\n } else {\n const o =\n Math.round((this.SelectedColorValue.R * 299 + this.SelectedColorValue.G * 587 + this.SelectedColorValue.B * 114) / 1000);\n result['color'] = o > 125 ? 'black' : 'white';\n }\n this.Style = result;\n this.cdRef.detectChanges();\n //if (updatePicker) {\n // const hex = Color.HexFromColor(this.SelectedColorValue, true);\n // if (hex) {\n // this.InternalUpdate = true;\n // this.gradientColorPicker.updateTmpSelectedColor(hex);\n // this.InternalUpdate = false;\n // }\n //}\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MenuKeyDownHelper } from '../../../helpers/clickstoppropagation.directive';\nimport { Color } from '../../../models/style/color.model';\n\n@Component({\n selector: 'lib-color-picker-menu',\n templateUrl: './colorpickermenu.control.html',\n styleUrls: ['./colorpickermenu.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ColorPickerMenuComponent {\n\n SelectedColorValue = new Color();\n GradientValue :string = ''\n @Input()\n get SelectedColor() {\n return this.SelectedColorValue;\n }\n set SelectedColor(val) {\n if (val != this.SelectedColorValue) {\n this.SelectedColorValue = val;\n this.FillStyle = {\n 'fill': Color.GetStyleText(this.SelectedColorValue)\n };\n this.SelectedColorChange.emit(this.SelectedColorValue);\n }\n }\n\n @Output() SelectedColorChange = new EventEmitter();\n\n @Output() ColorChanged = new EventEmitter();\n @Output() GradientColorValue = new EventEmitter();\n ToolTipValue;\n @Input()\n get ToolTip() {\n return this.ToolTipValue;\n }\n set ToolTip(val) {\n this.ToolTipValue = val;\n this.ToolTipChange.emit(this.ToolTipValue);\n }\n\n @Output() ToolTipChange = new EventEmitter();\n UseVariablesValue = true;\n @Input()\n get UseVariables() {\n return this.UseVariablesValue;\n }\n set UseVariables(val) {\n this.UseVariablesValue = val;\n }\n\n UseSystemVariablesValue = true;\n @Input()\n get UseSystemVariables() {\n return this.UseSystemVariablesValue;\n }\n set UseSystemVariables(val) {\n this.UseSystemVariablesValue = val;\n }\n @Input() InputGradient;\n @Input() SelectedGradient;\n \n FillStyle = {};\n GradientColorChange(value) {\n this.GradientColorValue.emit(value)\n }\n ColorChange(value) {\n this.SelectedColor = value;\n this.ColorChanged.emit(value);\n }\n\n menuKeyDown(ev) {\n MenuKeyDownHelper.onKeyDown(ev);\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { Point } from '../../../models/basic/point.model';\nimport { GradientType } from '../../../models/enums/gradienttype.enum';\nimport { Color } from '../../../models/style/color.model';\nimport { Gradient } from '../../../models/style/gradient.model';\nimport { GradientStopColor } from '../../../models/style/gradientstopcolor.model';\n\n@Component({\n selector: 'gradient-picker',\n templateUrl: './gradientpicker.control.html',\n styleUrls: ['./gradientpicker.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GradientPicker {\n vertical = false;\n colors: GradientStopColor[] = [];\n gradientType: GradientType = GradientType.Solid;\n selectedColor: GradientStopColor;\n selectedIndex = -1;\n //#region Gradient\n @Input()\n get Gradient() {\n const retVal = new Gradient();\n switch (this.gradientType) {\n case GradientType.Solid:\n if (this.colors.length > 0) {\n const clone = GradientStopColor.FromObject(this.colors[0]);\n clone.Offset /= 100;\n retVal.Colors.push(clone);\n } else {\n retVal.Colors.push(new GradientStopColor());\n }\n break;\n case GradientType.Gradient:\n if (this.colors.length > 0) {\n this.colors.forEach((color) => {\n const clone = GradientStopColor.FromObject(color);\n clone.Offset /= 100;\n retVal.Colors.push(clone);\n });\n } else {\n retVal.Colors.push(new GradientStopColor());\n }\n break;\n default:\n return null;\n }\n retVal.Type = this.gradientType;\n if (this.vertical) {\n retVal.StartPoint = new Point();\n retVal.StartPoint.X = 0.5;\n retVal.EndPoint = new Point();\n retVal.EndPoint.X = 0.5;\n retVal.EndPoint.Y = 1;\n } else {\n retVal.StartPoint = new Point();\n retVal.StartPoint.Y = 0.5;\n retVal.EndPoint = new Point();\n retVal.EndPoint.X = 1;\n retVal.EndPoint.Y = 0.5;\n }\n return retVal;\n }\n set Gradient(val: Gradient) {\n if (val && val.StartPoint && val.EndPoint && val.Colors) {\n this.vertical = val.StartPoint.Y < val.EndPoint.Y;\n const colList = [];\n val.Colors.forEach((gsc) => {\n const newGSC = GradientStopColor.FromObject(gsc);\n newGSC.Offset *= 100;\n colList.push(newGSC);\n });\n this.colors = colList;\n if (val.Type) { \n this.setGradientType(val.Type);\n } else {\n this.setGradientType(GradientType.Solid)\n }\n } else {\n this.gradientType = GradientType.Solid;\n this.vertical = false;\n this.colors = [];\n this.setSelectedColorStopInternal(-1);\n }\n }\n //#endregion\n\n get SelectedColor() {\n if (this.selectedColor) {\n return this.selectedColor.Color;\n }\n return null;\n }\n\n setSelectedColorStop(index): void {\n this.setSelectedColorStopInternal(index);\n }\n\n setGradientType(type): void {\n this.gradientType = type;\n if (this.gradientType === GradientType.Solid) {\n if (this.colors.length < 1) {\n this.colors.push(new GradientStopColor());\n }\n this.setSelectedColorStopInternal(0);\n } else if (this.gradientType === GradientType.Gradient) {\n if (this.colors.length < 1) {\n this.colors.push(new GradientStopColor());\n }\n if (this.colors.length < 2) {\n const gsc = new GradientStopColor();\n gsc.Color = Color.FromObject(this.colors[0].Color);\n gsc.Offset = 100;\n this.colors.push(gsc);\n }\n this.setSelectedColorStopInternal(0);\n } else {\n this.setSelectedColorStopInternal(-1);\n }\n }\n\n setSelectedColorStopInternal(index) {\n this.selectedIndex = index;\n if (index >= 0 && index < this.colors.length) {\n this.selectedColor = this.colors[index];\n } else {\n this.selectedColor = null;\n }\n }\n\n getGradients(): Object {\n return Gradient.getStyleObject(this.Gradient);\n }\n\n addColorStop() {\n const gsc = new GradientStopColor();\n gsc.Offset = 50;\n this.colors.push(gsc);\n this.setSelectedColorStopInternal(this.colors.length - 1);\n }\n\n removeColorStop() {\n if (this.selectedColor && this.colors.length > 2) {\n this.colors.splice(this.selectedIndex, 1);\n this.setSelectedColorStopInternal(0);\n }\n }\n\n setVertical(vertical) {\n this.vertical = vertical;\n }\n\n ColorChange(ev) {\n if (this.selectedColor) {\n this.selectedColor.Color = ev;\n }\n }\n}\n","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input } from '@angular/core';\nimport moment from 'moment';\nimport { BehaviorSubject } from 'rxjs';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { InputswitchThemeControl } from '../../../appbuilder/controls/inputswitch/inputswitch.theme.control';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { TranslationTextBoxThemeControl } from '../../../appbuilder/controls/translation/translation.textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { CacheService } from '../../../cache/cache.service';\nimport { ArrayHelpers } from '../../../helpers/array.helpers';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { InjectorHelper } from '../../../helpers/injector.helper';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { TagType } from '../../../models/enums/tagtype.enum';\nimport { MultiPropertyChangeValue } from '../../../models/layout/layout.change.model';\nimport { ElementProperty } from '../../../models/layoutbase.model';\nimport { MenuTabLabelPosition } from '../../../models/menutab/menutab.property.model';\nimport { TranslatedString } from '../../../models/translatedstring.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LanguageService } from '../../../services/language.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MetaService } from '../../../services/meta.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-href',\n templateUrl: './href.control.html',\n styleUrls: ['./href.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class HrefControl extends IBaseComponent {\n static Type: any = 'href';\n static Default = JSON.parse(JSON.stringify(defaultProperties.href));\n\n DataSourceText = '';\n DataBindingField;\n\n get URL() {\n if (this.LayoutElement && this.LayoutElement.NavigationStructure && this.LayoutElement.URL) {\n return '/' + this.LayoutElement.NavigationStructure + '/' + this.LayoutElement.URL;\n } else {\n return null;\n }\n }\n\n //#region Caption\n CaptionValue: string;\n @Input()\n get Caption() {\n if (this.CaptionValue != null) {\n return this.CaptionValue;\n }\n return this.LayoutElement.Caption;\n }\n set Caption(val) {\n this.CaptionValue = val;\n }\n //#endregion\n //#region Tooltip\n TooltipValue;\n @Input()\n get Tooltip() {\n if (this.TooltipValue != null) {\n return this.TooltipValue;\n }\n return this.LayoutElement.Tooltip;\n }\n set Tooltip(val) {\n this.TooltipValue = val;\n this.cdRef.detectChanges();\n }\n //#endregion\n constructor(cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.PropertyList.push(new ElementProperty('Caption', 'string', '@@Text'));\n this.PropertyList.push(new ElementProperty('Tooltip', 'string', '@@Tooltip'));\n }\n\n ControlInitialized() {\n this.Subscriptions['DataSourceChange'] = this.DataSourceChange.subscribe(x => {\n this.CheckDataSourceText();\n });\n this.Subscriptions['LanguageChanged'] = LanguageService.SelectedLanguage.subscribe(() => {\n this.CheckDataSourceText();\n });\n this.OnDataBindingChanged();\n }\n\n OnDataBindingChanged() {\n super.OnDataBindingChanged();\n MetaHelper.FindTableProperties(this.Layout, this.LayoutElementValue).then((result) => {\n if (result && result.SID !== this.LayoutElementValue.DataSource && result.Fields) {\n this.DataBindingField = result.Fields.find(x => x.ID === this.LayoutElementValue.DataSource);\n this.CheckDataSourceText();\n } else {\n this.DataBindingField = null;\n }\n });\n }\n\n CheckDataSourceText() {\n if (this.DataBindingField && this.DataSourceValue) {\n if (this.DataBindingField.Type === '876cf188-243b-49ed-91ab-b2cf27216a30') {\n EnumHelper.GetEnumValues(this.LayoutElementValue.DataSourceID).then((data) => {\n let enumEntry;\n if (data) {\n enumEntry = data.find(x => x.Value === this.DataSourceValue);\n }\n if (enumEntry) {\n this.DataSourceText = enumEntry.Caption;\n } else {\n this.DataSourceText = '' + this.DataSourceValue;\n }\n this.cdRef.detectChanges();\n });\n return;\n } else if (this.DataBindingField.Type === 'a0c232a9-4ab7-444c-a7e2-d23899a5673b') {\n this.DataSourceText = TranslatedString.GetTranslation(this.DataSourceValue);\n } else if (this.DataBindingField.Type === 'cfcb4295-9d1e-49b4-b466-3fe74d1b0c69' && this.LayoutElementValue.DateFormat) {\n this.DataSourceText = moment(this.DataSourceValue).format(this.LayoutElementValue.DateFormat);\n } else {\n this.DataSourceText = '' + this.DataSourceValue;\n }\n } else {\n this.DataSourceText = '';\n }\n this.cdRef.detectChanges();\n }\n}\nexport class HrefPanel extends BasePanel {\n static override SIDS = ['0efddb24-27fe-4a75-85fd-02fa3edd7572']\n public static PagesSub: BehaviorSubject = new BehaviorSubject(null)\n static override SetSelectedItem(item) {\n if (item && item.InternalNavigation) {\n if (item.NavigationStructure) {\n HrefPanel.FetchPages(item.NavigationStructure);\n }\n }\n \n }\n private static FetchPages(id) {\n let metaService = InjectorHelper.InjectorInstance.get(MetaService);\n metaService.GetNavigationNodesForStructure(id).subscribe((pages) => {\n if (pages) {\n const pageList = [];\n pages.forEach(page => {\n pageList.push({\n Caption: page.Caption?page.Caption.DefaultValue:page.Caption,\n URL: page.Url\n });\n });\n ArrayHelpers.sortAlphabetical(pageList, 'Caption');\n HrefPanel.PagesSub.next(pageList)\n }\n })\n }\n static InitPanel() {\n HrefPanel.InitSelectedItem();\n PROPERTYGROUPS.push({\n SID: '0efddb24-27fe-4a75-85fd-02fa3edd7572',\n ID: 'href',\n Caption: '@@Href',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'href';\n }\n })\n PROPERTIES.push({\n ID: \"Caption\",\n Parent: \"href\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Text\",\n Row: 1,\n InitArgs: {\n DataType: 'string'\n }\n });\n PROPERTIES.push({\n ID: \"Tooltip\",\n Parent: \"href\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Tooltip\",\n Row: 2,\n InitArgs: {\n DataType: 'string'\n }\n });\n PROPERTIES.push({\n ID: \"InternalNavigation\",\n Parent: \"href\",\n Content: new ComponentPortal(InputswitchThemeControl),\n Label: \"@@InternalNavigation\",\n LabelPosition: MenuTabLabelPosition.Right,\n Row: 3,\n InitArgs: {\n Action: (action) => {\n if (!action.Event) {\n delete HrefPanel.SelectedItem.NavigationStructure;\n delete HrefPanel.SelectedItem.URL;\n const mlpcv = new MultiPropertyChangeValue();\n mlpcv.ElementIDs = [HrefPanel.SelectedItem.ID],\n ['NavigationStructure', 'URL'].forEach(x => {\n mlpcv.Properties.push({\n PropertyName: x,\n Value: null\n });\n });\n LayoutService.OnMultiLayoutPropertyChanged([mlpcv]);\n LayoutService.LayoutChanged.next(null);\n }\n }\n },\n });\n PROPERTIES.push({\n ID: \"URL\",\n Parent: \"href\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Url\",\n Row: 4,\n InitArgs: {\n InputType: \"text\"\n },\n CheckVisibility: (item) => {\n return !item.InternalNavigation;\n }\n });\n let metaService = InjectorHelper.InjectorInstance.get(MetaService);\n metaService.GetNavigationStructures().subscribe(structures => {\n if (structures) {\n let navi = [];\n structures.forEach(page => {\n navi.push({\n Caption: page.Caption,\n ID: page.SID\n });\n });\n PROPERTIES.push({\n ID: \"NavigationStructure\",\n Parent: \"href\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@NavigationStructure\",\n Row: 5,\n InitArgs: {\n Caption: '@@Select',\n ItemsSource: navi,\n ValueMemberPath: 'Caption',\n DisplayMemberPath: 'Caption',\n Action: (action) => {\n if (action && action.SelectedItem && action.SelectedItem.NavigationStructure) {\n HrefPanel.FetchPages(action.SelectedItem.NavigationStructure);\n }\n }\n },\n CheckVisibility: (item) => {\n return item.InternalNavigation;\n }\n });\n PROPERTIES.push({\n ID: \"URL\",\n Parent: \"href\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@URL\",\n Row: 6,\n InitArgs: {\n Caption: '@@Select',\n ItemsSourceSub: HrefPanel.PagesSub,\n ValueMemberPath: 'URL',\n DisplayMemberPath: 'Caption',\n Action: (item) => {\n\n }\n },\n CheckVisibility: (item) => {\n return item.NavigationStructure;\n }\n });\n }\n });\n \n PROPERTIES.push({\n ID: \"DateFormat\",\n Parent: \"href\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@DateFormat\",\n Row: 10,\n CheckVisibility: (item) => {\n return item.DataSourceType == 'cfcb4295-9d1e-49b4-b466-3fe74d1b0c69'\n },\n InitArgs: {\n InputType: \"text\"\n }\n });\n PROPERTIES.push({\n ID: \"BreakLine\",\n Parent: \"href\",\n Content: new ComponentPortal(InputswitchThemeControl),\n Label: \"@@Zeilenumbruch\",\n LabelPosition: MenuTabLabelPosition.Right,\n Row: 11\n });\n }\n}","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Inject, Input, ViewChild } from '@angular/core';\nimport moment from 'moment';\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ElementProperty } from '../../../models/layoutbase.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { IBaseComponent } from '../base.component';\nimport { LanguageService } from '../../../services/language.service';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-hyperpay',\n templateUrl: './hyperpay.control.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class HyperPayControl extends IBaseComponent {\n static Type: any = 'hyperpay';\n static Default = JSON.parse(JSON.stringify(defaultProperties.hyperpay));\n\n _ViewInitialized = false;\n\n _Language = \"en\";\n\n CheckoutIDValue: string;\n @Input()\n get CheckoutID() {\n return this.CheckoutIDValue;\n }\n set CheckoutID(val) {\n this.CheckoutIDValue = val;\n this.CheckControl();\n }\n\n ResultURLValue: string;\n @Input()\n get ResultURL() {\n return this.ResultURLValue;\n }\n set ResultURL(val) {\n this.ResultURLValue = val;\n this.CheckControl();\n }\n\n @ViewChild('scriptDIV') scriptDIV: ElementRef;\n\n constructor(translate: TranslateService, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.PropertyList.push(new ElementProperty('CheckoutID', 'string', '@@CheckoutID'));\n this.PropertyList.push(new ElementProperty('ResultURL', 'string', '@@ResultURL'));\n this.setLocale(translate.currentLang);\n }\n\n setLocale(lang) {\n const langinfo = LanguageService.Languages.getValue().find(l => l.LCID.toString() === lang);\n if (langinfo) {\n this._Language = langinfo.Name.slice(0, 2);\n }\n }\n\n ngAfterViewInit(): void {\n super.ngAfterViewInit();\n this._ViewInitialized = true;\n this.CheckControl();\n }\n ControlInitialized() {\n }\n CheckControl() {\n if (this.scriptDIV && this.scriptDIV.nativeElement) {\n this.scriptDIV.nativeElement.innerHTML = '';\n if (this.CheckoutIDValue && this.ResultURLValue) {\n const le = this.LayoutElementValue;\n let options = 'var wpwlOptions = { locale: \"' + this._Language + '\"';\n if (le && le.HyperpayStyle) {\n options += ', style: \"' + le.HyperpayStyle + '\"';\n }\n options += '}';\n const optScript = document.createElement('script');\n optScript.type = 'text/javascript';\n optScript.innerText = options;\n this.scriptDIV.nativeElement.appendChild(optScript);\n const payScript = document.createElement('script');\n payScript.type = 'text/javascript';\n payScript.async = true;\n payScript.src = 'https://eu-test.oppwa.com/v1/paymentWidgets.js?checkoutId=' + this.CheckoutIDValue;\n this.scriptDIV.nativeElement.appendChild(payScript);\n const form = document.createElement('form');\n form.action = this.ResultURLValue;\n form.classList.add('paymentWidgets');\n if (le && Array.isArray(le.DataBrands) && le.DataBrands.length > 0) {\n form.setAttribute('data-brands', le.DataBrands.join(' '));\n } else {\n form.setAttribute('data-brands', 'VISA MASTER AMEX');\n }\n this.scriptDIV.nativeElement.appendChild(form);\n }\n this.cdRef.detectChanges();\n }\n }\n}\n\nexport class HyperPayPanel extends BasePanel {\n static override SIDS = ['23f3c349-f0ed-4971-85f6-d80b7a60a602']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID: '23f3c349-f0ed-4971-85f6-d80b7a60a602',\n ID: 'hyperpay',\n Caption: '@@HyperPay',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'hyperpay';\n }\n });\n\n PROPERTIES.push({\n ID: \"HyperpayStyle\",\n Parent: \"hyperpay\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Style\",\n Row: 1,\n InitArgs: {\n Placeholder: \"@@Style\",\n Multiple: false,\n ItemsSource: [\n {\n Caption: '@@Card',\n Value: 'card'\n }, {\n Caption: '@@Plain',\n Value: 'plain'\n }],\n ValueMemberPath: \"Value\",\n DisplayMemberPath: \"Caption\"\n }\n });\n PROPERTIES.push({\n ID: \"DataBrands\",\n Parent: \"hyperpay\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Brands\",\n Row: 2,\n InitArgs: {\n Placeholder: \"@@Brands\",\n Multiple: true,\n ItemsSource: [\n {\n Caption: '@@Visa',\n Value: 'VISA'\n }, {\n Caption: '@@Mastercard',\n Value: 'MASTER'\n }, {\n Caption: '@@American Express',\n Value: 'AMEX'\n }, {\n Caption: '@@GooglePay',\n Value: 'GOOGLEPAY'\n }, {\n Caption: '@@ApplePay',\n Value: 'APPLEPAY'\n }, {\n Caption: '@@Mada',\n Value: 'MADA'\n }],\n ValueMemberPath: \"Value\",\n DisplayMemberPath: \"Caption\"\n }\n });\n }\n}","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject } from '@angular/core';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { UnitSelectionControl } from '../../../appbuilder/controls/unittypeselection/unitselection.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { LayoutUnit } from '../../../models/basic/layoutunit.model';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ElementProperty } from '../../../models/layoutbase.model';\nimport { MenuTabLabelPosition } from '../../../models/menutab/menutab.property.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MediaService } from '../../../services/media.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-icon',\n templateUrl: './icon.control.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class IconControl extends IBaseComponent {\n\n static Type: any = 'icon';\n static Default = JSON.parse(JSON.stringify(defaultProperties.icon));\n\n IconValue;\n get Icon() {\n if (this.IconValue) {\n return this.IconValue;\n }\n return this.LayoutElement.Icon;\n }\n set Icon(val) {\n this.IconValue = val;\n this.cdRef.detectChanges();\n }\n\n constructor(cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.PropertyList.push(new ElementProperty('Icon', 'string', '@@Icon'));\n }\n\n ControlInitialized() {\n }\n}\nexport class IconPanel extends BasePanel {\n static override SIDS = ['65886290-d5dc-4f8c-98fd-d31208bf4cb1']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'65886290-d5dc-4f8c-98fd-d31208bf4cb1',\n ID: 'icon',\n Caption: '@@Icon',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'icon' || item.ElementType == 'usermenu' || item.ElementType == 'sidenav-toggle' ;\n }\n })\n MediaService.IconList.subscribe((icons) => {\n if (icons) {\n let Icons = [];\n icons.forEach((icon) => {\n Icons.push({ Value: icon })\n })\n PROPERTIES.push({\n ID: \"Icon\",\n Parent: \"icon\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Icon\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: Icons,\n DisplayMemberPath: 'Value',\n ValueMemberPath: 'Value',\n IconMemberPath: 'Value'\n }\n })\n PROPERTIES.push({\n ID: \"IconHeight\",\n Parent: \"icon\",\n Content: new ComponentPortal(UnitSelectionControl),\n Type: LayoutUnit,\n Label: \"@@IconHeight\",\n LabelPosition: MenuTabLabelPosition.Top,\n CheckVisibility: (item) => {\n return item.Icon;\n },\n InitArgs: {\n Minimum: 0\n }\n });\n PROPERTIES.push({\n ID: \"IconWidth\",\n Parent: \"icon\",\n Content: new ComponentPortal(UnitSelectionControl),\n Type: LayoutUnit,\n Label: \"@@IconWidth\",\n LabelPosition: MenuTabLabelPosition.Top,\n CheckVisibility: (item) => {\n return item.Icon;\n },\n InitArgs: {\n Minimum: 0\n }\n });\n\n }\n });\n }\n}","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-iframe',\n templateUrl: './iframe.control.html',\n styleUrls: ['./iframe.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class IFrameControl extends IBaseComponent {\n\n static Type: any = 'iframe';\n static Default = JSON.parse(JSON.stringify(defaultProperties.iframe));\n\n URL;\n \n constructor(private sanitizer: DomSanitizer, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n }\n\n ControlInitialized() {\n this.CreateUrl();\n }\n onLayoutElementChanged() {\n this.CreateUrl();\n }\n CreateUrl() {\n if (this.LayoutElementValue.URL) {\n this.URL = this.sanitizer.bypassSecurityTrustResourceUrl(this.LayoutElementValue.URL);\n }\n }\n}\nexport class IFramePanel extends BasePanel {\n static override SIDS = ['54067d9b-233f-46ef-9a42-ad550f446f41']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'54067d9b-233f-46ef-9a42-ad550f446f41',\n ID: 'iframe',\n Caption: '@@IFrame',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'iframe';\n }\n })\n\n PROPERTIES.push({\n ID: \"URL\",\n Parent: \"iframe\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@URL\",\n InitArgs: {\n InputType: \"text\"\n }\n });\n }\n}","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, KeyValueDiffers, Output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { promise } from 'protractor';\nimport { Observable, of } from 'rxjs';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { FileSelectionThemeControl } from '../../../appbuilder/controls/fileselection/fileselection.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { CacheService } from '../../../cache/cache.service';\nimport { InjectorHelper } from '../../../helpers/injector.helper';\nimport { MediaSource } from '../../../models/datamodel/mediasource.model';\nimport { ObjectFit } from '../../../models/enums/objectfit.enum';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { MenuTabLabelPosition } from '../../../models/menutab/menutab.property.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MediaService } from '../../../services/media.service';\nimport { FileExplorerDialog } from '../../fileexplorer/fileexplorer.dialog';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-image',\n templateUrl: './image.control.html',\n styleUrls: ['./image.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ImageControl extends IBaseComponent {\n\n static Type: any = 'image';\n static Default = JSON.parse(JSON.stringify(defaultProperties.image));\n\n URLValue: Observable;\n get URL() {\n return this.URLValue;\n }\n set URL(value) {\n this.URLValue = value;\n if (value && value.subscribe) {\n this.URLValue.subscribe(() => {\n this.cdRef.markForCheck()\n })\n }\n }\n\n //#region MediaSource\n MediaSourceValue;\n @Input()\n get MediaSource() {\n return this.MediaSourceValue;\n }\n set MediaSource(val) {\n this.MediaSourceValue = val;\n this.MediaSourceChange.emit(this.MediaSourceValue);\n }\n\n @Output() MediaSourceChange = new EventEmitter();\n //#endregion\n\n //#region DataSource\n DataSourceValue;\n\n @Input()\n get DataSource() {\n return this.DataSourceValue;\n }\n set DataSource(val) {\n if (this.DataSourceValue != val) {\n this.DataSourceValue = val;\n if (this.LayoutElement && this.LayoutElement.DataSource) {\n this.URL = this.CreateUrl();\n }\n this.triggerEvent('DataSourceChanged', this.DataSourceValue);\n this.DataSourceChange.emit(this.DataSourceValue);\n }\n }\n\n @Output() DataSourceChange = new EventEmitter();\n //#endregion\n Sources;\n \n constructor(private mediaService: MediaService, private dialog: MatDialog, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.EventList.push('imageUploaded');\n this.EventList.push('click');\n }\n ControlInitialized() {\n this.URL = this.CreateUrl();\n }\n ngOnInit(): void {\n this.URL = this.CreateUrl();\n super.ngOnInit();\n }\n onLayoutElementChanged() {\n this.URL = this.CreateUrl();\n }\n CreateUrl(): Observable {\n if (this.LayoutElement) {\n if (this.LayoutElement.UseForBlob) {\n of(this.DataSource);\n } else if (this.LayoutElement && this.LayoutElement.MediaSource) {\n return new Observable((subscriber) => {\n CacheService.ReadMediaSourceSub(this.LayoutElement.MediaSource).subscribe((source) => {\n let fileName = this.LayoutElement.FileName;\n if (this.LayoutElement.DataSource) {\n if (this.DataSourceValue) {\n fileName = this.DataSourceValue;\n }\n }\n if (fileName) {\n if (source.Private) {\n this.mediaService.LoadImage(source.SID, fileName).subscribe((image) => {\n subscriber.next(image);\n });\n } else {\n if (this.LayoutElement.UseCaching) {\n subscriber.next(MediaSource.GetURL(source, fileName));\n } else {\n subscriber.next(MediaSource.GetURL(source, fileName + '?a=' + Math.random()));\n }\n }\n } else {\n subscriber.next(\"\")\n }\n });\n })\n } else {\n of(\"\");\n }\n } else {\n of(\"\");\n }\n }\n\n editImage() {\n if (this.Editable && this.LayoutElement && this.LayoutElement.MediaSource) {\n const dialogRef = this.dialog.open(FileExplorerDialog, {\n panelClass: 'fileexplorer-dialog-container',\n data: {\n MediaSourceID: this.LayoutElement.MediaSource,\n ImageInstance: this\n }\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.DataSource = result;\n }\n });\n }\n }\n\n deleteImage() {\n if (this.Editable) {\n this.DataSource = null;\n }\n }\n\n onFileUploaded(ev) {\n this.triggerEvent('imageUploaded', ev);\n }\n\n onClick() {\n this.triggerEvent('click');\n }\n}\nexport class ImagePanel extends BasePanel {\n static override SIDS = ['950f8d05-65c6-4b29-8063-646095329fb7']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'950f8d05-65c6-4b29-8063-646095329fb7',\n ID: 'image',\n Caption: '@@Image',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'image';\n }\n })\n // PROPERTIES.push({\n // ID: \"UseForBlob\",\n // Parent: \"image\",\n // Content: new ComponentPortal(CheckBoxThemeControl),\n // InitArgs: {\n // Caption: \"@@UseForBlob\"\n // },\n // Row:1,\n // })\n PROPERTIES.push({\n ID: \"UseCaching\",\n Parent: \"image\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@UseCaching\"\n },\n Row: 2,\n CheckVisibility: (item) => {\n return !item.UseForBlob;\n }\n })\n let mediaService = InjectorHelper.InjectorInstance.get(MediaService);\n mediaService.GetUsable().subscribe((data) => {\n PROPERTIES.push({\n ID: \"MediaSource\",\n Parent: \"image\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@SelectMediaSource\",\n Row: 3,\n CheckVisibility: (item) => {\n return !item.UseForBlob;\n },\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: data,\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'SID'\n }\n })\n });\n PROPERTIES.push({\n ID: \"FileName\",\n Parent: \"image\",\n Content: new ComponentPortal(FileSelectionThemeControl),\n Row: 4,\n CheckVisibility: (item) => {\n return !item.UseForBlob && item.MediaSource;\n }\n })\n \n PROPERTIES.push({\n ID: \"ImageFit\",\n Parent: \"image\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@ObjectFit\",\n Row: 5,\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: ObjectFit\n }\n\n })\n }\n}","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, OnDestroy, Output, ViewChild, ViewEncapsulation } from \"@angular/core\";\nimport { ToastUiImageEditorComponent } from \"ngx-tui-image-editor\"\n\nconst includeUIOptions = {\n includeUI: {\n initMenu: \"filter\"\n }\n};\nconst editorDefaultOptions = {\n cssMaxWidth: 700,\n cssMaxHeight: 500\n};\n\n//interface IImageEditor extends ImageEditor {\n// off(eventName: string): void;\n//}\n\n@Component({\n selector: \"evidanza-image-editor\",\n templateUrl: 'imageeditor.control.html',\n styleUrls: ['imageeditor.control.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ImageEditorControl implements AfterViewInit, OnDestroy {\n\n @ViewChild(ToastUiImageEditorComponent) editorComponent: ToastUiImageEditorComponent;\n\n\n\n @Input() includeUI = true;\n @Input() options;\n editorInstance;\n @Output() InstanceCreated = new EventEmitter();\n //@Output() addText = new EventEmitter();\n //@Output() mousedown = new EventEmitter();\n //@Output() objectActivated = new EventEmitter();\n //@Output() objectMoved = new EventEmitter();\n //@Output() objectScaled = new EventEmitter();\n //@Output() redoStackChanged = new EventEmitter();\n //@Output() textEditing = new EventEmitter();\n //@Output() undoStackChanged = new EventEmitter();\n @Output() Save = new EventEmitter();\n @Output() Cancel = new EventEmitter();\n\n @ViewChild(\"imageEditor\") editorRef: ElementRef;\n\n ngAfterViewInit() {\n this.editorInstance = this.editorComponent.editorInstance;\n let options = editorDefaultOptions;\n if (this.includeUI) {\n options = Object.assign(includeUIOptions, this.options);\n }\n //this.editorInstance = new ImageEditor(\n // this.editorRef.nativeElement,\n // options\n //);\n const that = this;\n this.editorInstance.loadImageFromURL = (function () {\n const cached_function = that.editorInstance.loadImageFromURL;\n function waitUntilImageEditorIsUnlocked(imageEditor) {\n return new Promise((resolve, reject) => {\n const interval = setInterval(() => {\n if (!imageEditor._invoker._isLocked) {\n clearInterval(interval);\n resolve(true);\n }\n }, 100);\n })\n }\n return function () {\n const args = arguments;\n return waitUntilImageEditorIsUnlocked(that.editorInstance).then(() => { return cached_function.apply(this, args) });\n };\n })();\n\n\n //window.addEventListener(\"resize\", function () {\n // that.editorInstance['ui'].resizeEditor(null)\n //})\n //this.editorRef.nativeElement.onmousewheel=((e) => {\n // var imageOriginalSize = {\n // width: this.editorInstance['_graphics'].canvasImage.width,\n // height: this.editorInstance['_graphics'].canvasImage.height\n // };\n // var wDelta = e.wheelDelta || e.deltaY;\n // var imageEditorWindow = e.currentTarget;\n // var scrollContainer = $('.tui-image-editor-wrap');\n // var initWidth = imageEditorWindow.style.width;\n // var initHeight = imageEditorWindow.style.height;\n // var scrollContainerInitial = {\n // top: scrollContainer.scrollTop(),\n // left: scrollContainer.scrollLeft(),\n // height: scrollContainer[0].scrollHeight,\n // width: scrollContainer[0].scrollWidth\n // };\n // var mousePosition = {\n // top: e.clientY - $(imageEditorWindow).offset().top,\n // left: e.clientX - $(imageEditorWindow).offset().left\n // };\n // var newWidth;\n // var newHeight;\n // var offsetY;\n // var offsetX;\n // // Zoom step 10%\n // if (wDelta > 0) {\n // newWidth = parseInt(initWidth, 10) * 1.1;\n // newHeight = parseInt(initHeight, 10) * 1.1;\n // // Limit maximum zoom by image resolution\n // if (newWidth > imageOriginalSize.width || newHeight > imageOriginalSize.height) {\n // newWidth = imageOriginalSize.width;\n // newHeight = imageOriginalSize.height;\n // }\n // } else {\n // newWidth = parseInt(initWidth, 10) * 0.9;\n // newHeight = parseInt(initHeight, 10) * 0.9;\n // // Limit minimum zoom by 0.5 of original container size\n // if (parseInt(imageEditorWindow.dataset.minWidth, 10) * 0.5 > parseInt(newWidth, 10)) {\n // newWidth = parseInt(imageEditorWindow.dataset.minWidth, 10) * 0.5;\n // newHeight = parseInt(imageEditorWindow.dataset.minHeight, 10) * 0.5;\n // }\n // }\n // scrollContainer[0].style.width = newWidth + 'px';\n // scrollContainer[0].style.height = newHeight + 'px';\n // $(imageEditorWindow).find('canvas, .tui-image-editor-canvas-container')\n // .css('max-width', imageEditorWindow.style.width)\n // .css('max-height', imageEditorWindow.style.height);\n\n // // Save initial size of container\n // if (imageEditorWindow.dataset.minHeight === undefined) {\n // imageEditorWindow.dataset.minHeight = initHeight;\n // imageEditorWindow.dataset.minWidth = initWidth;\n // }\n\n // // Calculate scroll offset for new position\n // offsetY = (scrollContainer[0].scrollHeight - scrollContainerInitial.height)\n // * (mousePosition.top / scrollContainerInitial.height);\n // offsetX = (scrollContainer[0].scrollWidth - scrollContainerInitial.width)\n // * (mousePosition.left / scrollContainerInitial.width);\n\n // scrollContainer.scrollTop(scrollContainerInitial.top + offsetY);\n // scrollContainer.scrollLeft(scrollContainerInitial.left + offsetX);\n\n // e.preventDefault();\n // e.stopPropagation();\n //});\n //// Prevent scroll with wheel\n //$('.tui-image-editor-wrap')[0].onwheel = function () { return false; };\n //// Prevent overlapping from toolbar\n //$('.tui-image-editor-wrap').css('height', 'calc(100% - 150px)');\n this.InstanceCreated.emit(this.editorInstance);\n this.addEventListeners();\n }\n ngOnDestroy() {\n this.removeEventListeners();\n //this.editorInstance.destroy();\n }\n\n private addEventListeners() {\n //this.editorInstance.on(editorEvents.addText, event =>\n // this.addText.emit(event)\n //);\n //this.editorInstance.on(editorEvents.mousedown, (event, originPointer) =>\n // this.mousedown.emit({ event, originPointer })\n //);\n //this.editorInstance.on(editorEvents.objectActivated, event =>\n // this.objectActivated.emit(event)\n //);\n //this.editorInstance.on(editorEvents.objectMoved, event =>\n // this.objectMoved.emit(event)\n //);\n //this.editorInstance.on(editorEvents.objectScaled, event =>\n // this.objectScaled.emit(event)\n //);\n //this.editorInstance.on(editorEvents.redoStackChanged, event =>\n // this.redoStackChanged.emit(event)\n //);\n //this.editorInstance.on(editorEvents.textEditing, () =>\n // this.textEditing.emit()\n //);\n //this.editorInstance.on(editorEvents.undoStackChanged, event =>\n // this.undoStackChanged.emit(event)\n //);\n }\n\n private removeEventListeners() {\n //(this.editorInstance).off(editorEvents.addText);\n //(this.editorInstance).off(editorEvents.mousedown);\n //(this.editorInstance).off(editorEvents.objectActivated);\n //(this.editorInstance).off(editorEvents.objectMoved);\n //(this.editorInstance).off(editorEvents.objectScaled);\n //(this.editorInstance).off(editorEvents.redoStackChanged);\n //(this.editorInstance).off(editorEvents.textEditing);\n //(this.editorInstance).off(editorEvents.undoStackChanged);\n }\n\n cancel() {\n this.Cancel.emit();\n }\n save() {\n this.Save.emit();\n }\n}\n","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output, Pipe, PipeTransform } from '@angular/core';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { ListBoxThemeControl } from '../../../appbuilder/controls/listbox/listbox.theme.control';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { TranslationTextBoxThemeControl } from '../../../appbuilder/controls/translation/translation.textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { NotificationHelper } from '../../../helpers/notification.helper';\nimport { LayoutUnit } from '../../../models/basic/layoutunit.model';\nimport { KeyFilter } from '../../../models/enums/keyfilter.enum';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ElementProperty } from '../../../models/layoutbase.model';\nimport { LayoutElement } from '../../../models/layoutelement.model';\nimport { MenuTabLabelPosition } from '../../../models/menutab/menutab.property.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { SettingsService } from '../../../services/settings.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-inputgroup',\n templateUrl: './inputgroup.control.html',\n styleUrls: ['./inputgroup.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class InputGroupControl extends IBaseComponent {\n static Type: any = 'inputgroup';\n static Default = JSON.parse(JSON.stringify(defaultProperties.inputgroup));\n\n Valid = true;\n KeyDownTimeOut;\n\n AppBuilderPanel = InputGroupPanel;\n //#region Placeholder\n @Input()\n get Placeholder() {\n return this.LayoutElement.Placeholder;\n }\n set Placeholder(val) {\n this.LayoutElement.Placeholder = val;\n this.PlaceholderChange.emit(this.LayoutElement.Placeholder);\n }\n\n @Output() PlaceholderChange = new EventEmitter();\n //#endregion\n //#region InputType\n @Input()\n get InputType(): string {\n return this.LayoutElement.InputType;\n }\n set InputType(val: string) {\n this.LayoutElement.InputType = val;\n this.InputTypeChange.emit(this.LayoutElement.InputType);\n }\n\n @Output() InputTypeChange = new EventEmitter();\n //#endregion\n\n //#region Minimum\n @Input()\n get Minimum(): string {\n return this.LayoutElement.Minimum;\n }\n set Minimum(val: string) {\n this.LayoutElement.Minimum = val;\n this.MinimumChange.emit(this.LayoutElement.Minimum);\n }\n\n @Output() MinimumChange = new EventEmitter();\n //#endregion\n\n //#region Maximum\n @Input()\n get Maximum(): string {\n return this.LayoutElement.Maximum;\n }\n set Maximum(val: string) {\n this.LayoutElement.Maximum = val;\n this.MaximumChange.emit(this.LayoutElement.Maximum);\n }\n\n @Output() MaximumChange = new EventEmitter();\n //#endregion\n\n //#region Nachkommastellen\n @Input()\n get DecimalPositions(): string {\n return this.LayoutElement.DecimalPositions;\n }\n set DecimalPositions(val: string) {\n this.LayoutElement.DecimalPositions = val;\n if (this.DataSourceValue && this.DecimalPositions && Number(this.DecimalPositions) > 0) {\n this.DataSourceValue = Number(this.DataSourceValue).toFixed(Number(this.DecimalPositions));\n }\n this.DecimalPositionsChange.emit(this.LayoutElement.DecimalPositions);\n }\n\n @Output() DecimalPositionsChange = new EventEmitter();\n //#endregion\n\n //#region Step\n @Input()\n get Step(): string {\n if (this.LayoutElement.Step !== undefined) {\n return this.LayoutElement.Step;\n }\n return 'any;';\n }\n set Step(val: string) {\n this.LayoutElement.Step = val;\n this.StepChange.emit(this.LayoutElement.Step);\n }\n\n @Output() StepChange = new EventEmitter();\n //#endregion\n\n //#region ReadOnly\n ReadOnlyValue;\n get ReadOnly(): boolean {\n if (typeof this.ReadOnlyValue === 'boolean') {\n return this.ReadOnlyValue;\n }\n return this.LayoutElement.ReadOnly;\n }\n set ReadOnly(val) {\n this.ReadOnlyValue = val;\n }\n //#endregion\n\n @Output() TextChange = new EventEmitter();\n invalidChars = ['e'];\n ButtonsBefore = [];\n ButtonsAfter = [];\n\n constructor(private settingsService: SettingsService, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.EventList.push('textchanged');\n this.EventList.push('keypress');\n this.EventList.push('keydown');\n this.PropertyList.push(new ElementProperty('ReadOnly', 'boolean', '@@ReadOnly'));\n this.PropertyList.push(new ElementProperty('DataSourceValue', 'string', '@@Text'));\n }\n\n ControlInitialized() {\n this.Subscriptions['Delete'] = this.settingsService.Delete.subscribe((item) => {\n if (this.LayoutElementValue && this.LayoutElementValue.Elements) {\n const index = this.LayoutElementValue.Elements.indexOf(item);\n if (index > -1) {\n this.LayoutElementValue.Elements.splice(index, 1);\n LayoutService.SelectedItem.next(null);\n LayoutService.OnLayoutElementRemoved({\n ElementID: item.ID,\n ElementName: item.Name ? item.Name : item.ID,\n ParentID: this.LayoutElementValue.ID\n });\n this.checkButtons();\n this.cdRef.detectChanges();\n }\n }\n });\n }\n\n onLayoutElementSet() {\n this.checkButtons();\n }\n\n onLayoutElementChanged() {\n this.checkButtons();\n }\n\n checkButtons() {\n const buttonsBefore = [];\n const buttonsAfter = [];\n if (this.LayoutElementValue && this.LayoutElementValue.Elements && this.LayoutElementValue.AddButtons) {\n this.LayoutElementValue.Elements.forEach(x => {\n if (x.IsBefore == true) {\n buttonsBefore.push(x);\n } else {\n buttonsAfter.push(x);\n }\n });\n }\n this.ButtonsBefore = buttonsBefore;\n this.ButtonsAfter = buttonsAfter;\n }\n\n setFocus() {\n const textBox = document.getElementById(this.LayoutElement.ID);\n if (textBox) {\n textBox.focus();\n }\n }\n\n onChange(ev) {\n if (this.LayoutElement.InputType === 'number') {\n\n let setMaxValue = false;\n let setMinValue = false;\n\n let valueNumberTemp = Number(this.DataSourceValue);\n if (this.DataSourceValue < this.Minimum) {\n valueNumberTemp = Number(this.Minimum);\n setMinValue = true;\n\n } else if (this.DataSourceValue > this.Maximum) {\n valueNumberTemp = Number(this.Maximum);\n setMaxValue = true;\n }\n\n if (this.DecimalPositions && Number(this.DecimalPositions) > 0) {\n\n const valueString = valueNumberTemp.toString();\n valueNumberTemp = Number(valueNumberTemp.toFixed(Number(this.DecimalPositions)));\n\n if (!setMaxValue && !setMinValue && valueString !== valueNumberTemp.toString()) {\n NotificationHelper.Info('@@Der Wert wurde auf die maximale Nachkommastellenanzahl von {0} gesetzt.', '@@maximal {0} Nachkommstellen zulaessig', { 0: this.DecimalPositions }, { 0: this.DecimalPositions });\n }\n }\n\n if (setMaxValue) {\n NotificationHelper.Info('@@Der Wert wurde auf das Maximum {0} gesetzt. Die maximale Nachkommastellenanzahl von {1} wurde beachtet.', '@@Maximum ueberschritten', { 0: valueNumberTemp, 1: this.DecimalPositions });\n }\n if (setMinValue) {\n NotificationHelper.Info('@@Der Wert wurde auf das Minimum {0} gesetzt. Die maximale Nachkommastellenanzahl von {1} wurde beachtet.', '@@Minimum unterschritten', { 0: valueNumberTemp, 1: this.DecimalPositions });\n }\n\n if (valueNumberTemp) {\n this.DataSource = valueNumberTemp;\n }\n }\n if (typeof this.DataSourceValue === 'string') {\n this.triggerEvent('textchanged', this.DataSourceValue);\n this.TextChange.emit(this.DataSourceValue);\n }\n }\n\n KeyDown(event) {\n this.cdRef.detach();\n if (this.LayoutElementValue.InputType === 'number' && this.invalidChars.includes(event.key)) {\n event.preventDefault();\n } else {\n if (this.LayoutElementValue.UseKeyDownDelay &&\n typeof this.LayoutElementValue.KeyDownDelay === 'number' && this.LayoutElementValue.KeyDownDelay > 0) {\n clearTimeout(this.KeyDownTimeOut);\n this.KeyDownTimeOut = setTimeout(() => {\n this.triggerEvent('keydown', event);\n }, this.LayoutElementValue.KeyDownDelay);\n } else {\n this.triggerEvent('keydown', event);\n }\n }\n }\n\n KeyPress(event) {\n this.triggerEvent('keypress', event);\n }\n}\nexport class InputGroupPanel extends BasePanel {\n static override SIDS = ['475b52d1-ff73-44c3-ba09-b51900eab178']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'475b52d1-ff73-44c3-ba09-b51900eab178',\n ID: 'InputGroup',\n Caption: '@@InputGroup',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'inputgroup';\n }\n });\n //#region InputTypes\n let inputTypes = [{\n Caption: '@@Color',\n Value: 'color'\n }, {\n Caption: '@@Date',\n Value: 'date'\n }, {\n Caption: '@@DateTime',\n Value: 'datetime-local'\n }, {\n Caption: '@@EMail',\n Value: 'email'\n }, {\n Caption: '@@Month',\n Value: 'month'\n }, {\n Caption: '@@Number',\n Value: 'number'\n }, {\n Caption: '@@Password',\n Value: 'password'\n }, {\n Caption: '@@Search',\n Value: 'search'\n }, {\n Caption: '@@Phone',\n Value: 'tel'\n }, {\n Caption: '@@Text',\n Value: 'text'\n }, {\n Caption: '@@Time',\n Value: 'time'\n }, {\n Caption: '@@URL',\n Value: 'url'\n }, {\n Caption: '@@Week',\n Value: 'week'\n }]\n\n //#endregion InputTypes\n let inputModes = [{\n Caption: '@@None',\n Value: 'none'\n }, {\n Caption: '@@Text',\n Value: 'text'\n }, {\n Caption: '@@Decimal',\n Value: 'decimal'\n }, {\n Caption: '@@Numeric',\n Value: 'numeric'\n }, {\n Caption: '@@Telephone',\n Value: 'tel'\n }, {\n Caption: '@@Search',\n Value: 'search'\n }, {\n Caption: '@@Email',\n Value: 'email'\n }, {\n Caption: '@@URL',\n Value: 'url'\n }]\n //#endregion\n PROPERTIES.push({\n ID: \"Placeholder\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Placeholder\",\n Column: 1,\n Row: 1,\n InitArgs: {\n DataType: 'string'\n }\n });\n PROPERTIES.push({\n ID: \"Tooltip\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Tooltip\",\n Column: 1,\n Row: 2,\n InitArgs: {\n DataType: 'string'\n }\n });\n PROPERTIES.push({\n ID: \"InputType\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Input type\",\n Column: 1,\n Row: 3,\n InitArgs: {\n Placeholder: \"@@Type\",\n Multiple: false,\n ItemsSource: inputTypes,\n ValueMemberPath: \"Value\",\n DisplayMemberPath: \"Caption\"\n }\n });\n PROPERTIES.push({\n ID: \"InputMode\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Input mode\",\n Column: 1,\n Row: 4,\n InitArgs: {\n Placeholder: \"@@Type\",\n Multiple: false,\n ItemsSource: inputModes,\n ValueMemberPath: \"Value\",\n DisplayMemberPath: \"Caption\"\n }\n });\n PROPERTIES.push({\n ID: \"ReadOnly\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@ReadOnly\"\n },\n Column: 1,\n Row: 5\n });\n PROPERTIES.push({\n ID: \"UseValidation\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@UseValidation\"\n },\n Column: 1,\n Row: 6\n });\n PROPERTIES.push({\n ID: \"KeyFilter\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Filter type\",\n Column: 1,\n Row: 7,\n CheckVisibility: (item) => {\n return item.UseValidation;\n },\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: KeyFilter\n }\n })\n PROPERTIES.push({\n ID: \"RegExp\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@RegExp\",\n Column: 1,\n Row: 8,\n CheckVisibility: (item) => {\n return item.KeyFilter == 9 && item.UseValidation;\n }\n });\n PROPERTIES.push({\n ID: \"ValidateOnly\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@ValidateOnly\"\n },\n Column: 1,\n Row: 9,\n CheckVisibility: (item) => {\n return item.UseValidation && (item.KeyFilter === 0 || item.KeyFilter > 0);\n }\n });\n PROPERTIES.push({\n ID: \"CheckWholeExpression\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@CheckWholeExpression\"\n },\n Column: 1,\n Row: 10,\n CheckVisibility: (item) => {\n return item.UseValidation && item.KeyFilter == 9;\n }\n });\n PROPERTIES.push({\n ID: \"Minimum\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Minimum\",\n Column: 1,\n Row: 11,\n CheckVisibility: (item) => {\n return item.InputType == 'number';\n },\n InitArgs: {\n InputType: \"number\"\n }\n });\n PROPERTIES.push({\n ID: \"Maximum\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Maximum\",\n Column: 1,\n Row: 12,\n CheckVisibility: (item) => {\n return item.InputType == 'number';\n },\n InitArgs: {\n InputType: \"number\"\n }\n });\n PROPERTIES.push({\n ID: \"DecimalPositions\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Nachkommastellen\",\n Column: 1,\n Row: 13,\n CheckVisibility: (item) => {\n return item.InputType == 'number';\n },\n InitArgs: {\n InputType: \"number\",\n Minimum: 0,\n Step: 1\n }\n });\n PROPERTIES.push({\n ID: \"UseKeyDownDelay\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@UseKeyDownDelay\"\n },\n Column: 1,\n Row: 14\n });\n PROPERTIES.push({\n ID: \"KeyDownDelay\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Delay in ms\",\n Column: 1,\n Row: 15,\n CheckVisibility: (item) => {\n return item.UseKeyDownDelay;\n },\n InitArgs: {\n InputType: \"number\",\n Minimum: 0,\n Step: 1\n }\n });\n PROPERTIES.push({\n ID: \"UseFloatingLabel\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@UseFloatingLabel\"\n },\n Column: 1,\n Row: 16\n });\n PROPERTIES.push({\n ID: \"Elements\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(ListBoxThemeControl),\n Label: \"@@Buttons\",\n Column: 1,\n Row: 17,\n Properties: [\n {\n ID: \"Name\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Caption\",\n LabelPosition: MenuTabLabelPosition.Top\n },\n {\n ID: \"IsBefore\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@IsBefore\"\n }\n }\n ],\n InitArgs: {\n GenerateNewItem: () => {\n const item = new LayoutElement();\n item.ElementType = 'button';\n item.Editable = true;\n item['IsBefore'] = true;\n item.Width = new LayoutUnit();\n return item;\n }\n },\n LabelPosition: MenuTabLabelPosition.Top\n });\n }\n}","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { RTLHelper } from '../../../helpers/rtl.helper';\nimport { LanguageMenuText } from '../../../models/enums/languagemenutext.enum';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { MenuTabLabelPosition } from '../../../models/menutab/menutab.property.model';\nimport { TranslatedString } from '../../../models/translatedstring.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { StandardRequestBase } from '../../../services/request-base';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-language-menu',\n templateUrl: './language.menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LanguageMenu extends IBaseComponent {\n static Type: any = 'languagemenu';\n static Default = JSON.parse(JSON.stringify(defaultProperties.languagemenu));\n @ViewChild('languageMenu') languageMenu: LanguageMenuControl;\n\n ControlInitialized() {\n } \n\n setFocus() {\n if (this.languageMenu) {\n this.languageMenu.setFocus();\n }\n }\n}\n\n@Component({\n selector: 'language-menu-control',\n templateUrl: './language.menu.control.html',\n styleUrls: ['./language.menu.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LanguageMenuControl implements OnInit {\n\n SelectedLanguage;\n Languages = [];\n @ViewChild(MatMenuTrigger) trigger: MatMenuTrigger;\n\n //#region Disabled\n DisabledValue = false;\n @Input()\n get Disabled(): boolean {\n return this.DisabledValue;\n }\n set Disabled(val: boolean) {\n this.DisabledValue = val;\n this.DisabledChange.emit(this.DisabledValue);\n }\n @Output() DisabledChange = new EventEmitter();\n //#endregion\n @Input() Label: string;\n //#region ShowFlags\n ShowFlagsValue = false;\n @Input()\n get ShowFlags(): boolean {\n return this.ShowFlagsValue;\n }\n set ShowFlags(val: boolean) {\n this.ShowFlagsValue = val;\n this.ShowFlagsChange.emit(this.ShowFlagsValue);\n this.cdRef.detectChanges();\n }\n @Output() ShowFlagsChange = new EventEmitter();\n //#endregion\n\n //#region LanguageMenuText\n LanguageMenuTextValue = LanguageMenuText.ShortName;\n @Input()\n get LanguageMenuText(): LanguageMenuText {\n return this.LanguageMenuTextValue;\n }\n set LanguageMenuText(val: LanguageMenuText) {\n if (typeof val !== 'number') {\n val = LanguageMenuText.ShortName;\n }\n if (val !== this.LanguageMenuTextValue) {\n this.LanguageMenuTextValue = val;\n this.updateText();\n this.LanguageMenuTextChange.emit(this.LanguageMenuTextValue);\n }\n }\n @Output() LanguageMenuTextChange = new EventEmitter();\n //#endregion\n\n @Output() LanguageChanged = new EventEmitter();\n\n constructor(private service: StandardRequestBase, private translate: TranslateService, public cdRef: ChangeDetectorRef) {\n }\n\n ngOnInit(): void {\n this.service.executeGet('config/api/config', 'GetSelectedLanguages').subscribe(languages => {\n this.Languages = languages;\n this.Languages.forEach(x => {\n // x.Icon = 'flags/' + x.Name;\n x.Icon = x.Name;\n });\n const currentLang = this.translate.currentLang;\n let sel = {\n LCID: parseInt(currentLang, 10),\n Caption: currentLang,\n Name: currentLang,\n };\n if (!isNaN(sel.LCID)) {\n languages.some(lang => {\n if (lang.LCID === sel.LCID) {\n sel = lang;\n return true;\n }\n return false;\n });\n }\n this.SelectedLanguage = sel;\n this.updateText();\n });\n }\n\n languageSelected(lang) {\n if (this.SelectedLanguage !== lang) {\n this.translate.use(lang.LCID.toString());\n this.SelectedLanguage = lang;\n this.ChangeDirection();\n localStorage.setItem('SelectedLanguage', lang.LCID);\n this.LanguageChanged.emit(lang);\n this.updateText();\n }\n this.trigger.closeMenu();\n }\n\n ChangeDirection() {\n RTLHelper.Direction = this.SelectedLanguage.IsRightToLeft ? 'rtl' : 'ltr';\n }\n\n updateText() {\n switch (this.LanguageMenuTextValue) {\n case LanguageMenuText.None:\n this.Languages.forEach(x => {\n x.ActualText = '';\n x.Tooltip = x.Name + ' (' + x.Caption + ')';\n });\n break;\n case LanguageMenuText.ShortName:\n this.Languages.forEach(x => {\n x.ActualText = x.Name;\n x.Tooltip = null;\n });\n break;\n case LanguageMenuText.LongName:\n this.Languages.forEach(x => {\n x.ActualText = x.Caption;\n x.Tooltip = null;\n });\n break;\n case LanguageMenuText.Both:\n this.Languages.forEach(x => {\n x.ActualText = x.Name + ' (' + x.Caption + ')';\n x.Tooltip = null;\n });\n case LanguageMenuText.Translation:\n this.Languages.forEach(x => {\n const translation = TranslatedString.GetTranslation(x.Translation);\n if (translation) {\n x.ActualText = translation;\n } else {\n x.ActualText = x.Name;\n }\n x.Tooltip = null;\n });\n break;\n }\n this.cdRef.detectChanges();\n }\n\n setFocus() {\n if (this.trigger) {\n this.trigger.focus();\n }\n }\n}\nexport class LanguageMenuPanel extends BasePanel{\n static override SIDS = ['9c434e14-d611-416c-8d41-a19687f3666b']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'9c434e14-d611-416c-8d41-a19687f3666b',\n ID: 'languagemenu',\n Caption: '@@Sprachauswahl',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'languagemenu';\n }\n })\n PROPERTIES.push({\n ID: \"ShowFlags\",\n Parent: \"languagemenu\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Flaggen anzeigen\"\n }\n });\n PROPERTIES.push({\n ID: \"LanguageMenuText\",\n Parent: \"languagemenu\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Text\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: LanguageMenuText\n }\n })\n }\n}\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { UUID } from 'angular2-uuid';\nimport { plainToClass } from 'class-transformer';\nimport { TranslateFormatText } from '../../helpers/array.helpers';\nimport { ClipboardHelper } from '../../helpers/clipboard.helper';\nimport { LayoutHelper } from '../../helpers/layout.helper';\nimport { MetaHelper } from '../../helpers/meta.helper';\nimport { NotificationHelper } from '../../helpers/notification.helper';\nimport { DropState } from '../../models/enums/dropstate.enum';\nimport { MessageBoxButtons } from '../../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../../models/enums/messageboxicon.enum';\nimport { MessageBoxResult } from '../../models/enums/messageboxresult.enum';\nimport { MultiLayoutPositionChangeValue, MultiPropertyChangeValue, PositionChangeSourceValue } from '../../models/layout/layout.change.model';\nimport { LayoutElement } from '../../models/layoutelement.model';\nimport { REGISTRY } from '../../services/dynamic.component.service';\nimport { LayoutService } from '../../services/layout.service';\nimport { NavigationService } from '../../services/navigation.service';\nimport { ABaseTreeNode, IDKeeper } from '../common/basetreecontrol/base.tree.control';\nimport { EventTreeDialog } from '../dialogs/eventtree/event.tree.dialog';\nimport { MessageBoxHelper } from '../dialogs/messagebox/messagebox.dialog';\nimport { WorkflowNameChangeDialog } from '../dialogs/workflowdebug/workflow.name.change.dialog';\n\n@Component({\n selector: 'layout-tree',\n templateUrl: './layout.tree.html',\n styleUrls: ['./layout.tree.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutTree implements OnInit, OnDestroy {\n Registry = REGISTRY;\n //#region SelectedNode\n SelectedNodeValue;\n @Input()\n get SelectedNode() {\n return this.SelectedNodeValue;\n }\n set SelectedNode(val) {\n this.internalSelect = true;\n if (this.SelectedNodeValue) {\n this.SelectedNodeValue.Hover = false;\n }\n this.SelectedNodesValue = null;\n LayoutTree.ExecuteOnAllNodes(this.Elements, (x) => {\n x.IsSelected = false;\n });\n this.SelectedNodeValue = val;\n if (this.SelectedNodeValue) {\n this.SelectedNodeValue.IsSelected = true;\n this.SelectedNodeValue.Hover = true;\n }\n this.SelectedNodeChange.emit(this.SelectedNodeValue);\n }\n\n @Output() SelectedNodeChange = new EventEmitter();\n //#endregion\n //#region SelectedNodes\n SelectedNodesValue;\n @Input()\n get SelectedNodes() {\n return this.SelectedNodesValue;\n }\n set SelectedNodes(val) {\n this.internalSelect = true;\n if (val != undefined) {\n if (this.SelectedNodeValue) {\n this.SelectedNodeValue.Hover = false;\n this.SelectedNodeValue = null;\n }\n LayoutTree.ExecuteOnAllNodes(this.Elements, (x) => {\n x.IsSelected = false;\n });\n this.SelectedNodesValue = val;\n if (val) {\n val.forEach(x => {\n x.IsSelected = true;\n });\n }\n this.SelectedNodesChange.emit(this.SelectedNodesValue);\n }\n }\n\n @Output() SelectedNodesChange = new EventEmitter();\n //#endregion\n //#region ShowIcons\n ShowIconsValue = true;\n\n @Input()\n get ShowIcons() {\n return this.ShowIconsValue;\n }\n set ShowIcons(val) {\n this.ShowIconsValue = val;\n this.ShowIconsChange.emit(this.ShowIconsValue);\n }\n\n @Output() ShowIconsChange = new EventEmitter();\n //#endregion\n //#region ShowDeleteButton\n ShowDeleteButtonValue;\n\n @Input()\n get ShowDeleteButton() {\n return this.ShowDeleteButtonValue;\n }\n set ShowDeleteButton(val) {\n this.ShowDeleteButtonValue = val;\n this.ShowDeleteButtonChange.emit(this.ShowDeleteButtonValue);\n }\n\n @Output() ShowDeleteButtonChange = new EventEmitter();\n //#endregion\n //#region ShowEditButton\n ShowEditButtonValue;\n\n @Input()\n get ShowEditButton() {\n return this.ShowEditButtonValue;\n }\n set ShowEditButton(val) {\n this.ShowEditButtonValue = val;\n this.ShowEditButtonChange.emit(this.ShowEditButtonValue);\n }\n\n @Output() ShowEditButtonChange = new EventEmitter();\n //#endregion\n //#region ShowDuplicateButton\n ShowDuplicateButtonValue;\n\n @Input()\n get ShowDuplicateButton() {\n return this.ShowDuplicateButtonValue;\n }\n set ShowDuplicateButton(val) {\n this.ShowDuplicateButtonValue = val;\n this.ShowDuplicateButtonChange.emit(this.ShowDuplicateButtonValue);\n }\n\n @Output() ShowDuplicateButtonChange = new EventEmitter();\n //#endregion\n //#region ShowCopyButton\n ShowCopyButtonValue;\n\n @Input()\n get ShowCopyButton() {\n return this.ShowCopyButtonValue;\n }\n set ShowCopyButton(val) {\n this.ShowCopyButtonValue = val;\n this.ShowCopyButtonChange.emit(this.ShowCopyButtonValue);\n }\n\n @Output() ShowCopyButtonChange = new EventEmitter();\n //#endregion\n //#region SelectedItem\n SelectedItemValue;\n @Input()\n get SelectedItem() {\n return this.SelectedItemValue;\n }\n set SelectedItem(val) {\n if (val != undefined) {\n this.SelectedItemValue = val;\n if (this.IsInitialized) {\n this.SelectItem(this.Elements, val, []);\n }\n this.SelectedItemChange.emit(this.SelectedItemValue);\n this.cdRef.detectChanges();\n }\n }\n @Output() SelectedItemChange = new EventEmitter();\n //#endregion\n //#region SelectedItems\n SelectedItemsValue;\n\n @Input()\n get SelectedItems() {\n return this.SelectedItemsValue;\n }\n set SelectedItems(val) {\n if (val != undefined) {\n this.SelectedItemsValue = val;\n this.SelectedItemsChange.emit(this.SelectedItemsValue);\n this.cdRef.detectChanges();\n }\n }\n @Output() SelectedItemsChange = new EventEmitter();\n //#endregion\n //#region ShowRoot\n ShowRootValue;\n\n @Input()\n get ShowRoot() {\n return this.ShowRootValue;\n }\n set ShowRoot(val) {\n this.ShowRootValue = val;\n this.ShowRootChange.emit(this.ShowRootValue);\n }\n\n @Output() ShowRootChange = new EventEmitter();\n //#endregion\n //#region ChangeRootType\n ChangeRootTypeValue = false;\n\n @Input()\n get ChangeRootType() {\n return this.ChangeRootTypeValue;\n }\n set ChangeRootType(val) {\n this.ChangeRootTypeValue = val;\n this.ChangeRootTypeChange.emit(this.ChangeRootTypeValue);\n }\n\n @Output() ChangeRootTypeChange = new EventEmitter();\n //#endregion\n //#region ShowInfo\n ShowInfoValue;\n\n @Input()\n get ShowInfo() {\n return this.ShowInfoValue;\n }\n set ShowInfo(val) {\n this.ShowInfoValue = val;\n this.ShowInfoChange.emit(this.ShowInfoValue);\n }\n\n @Output() ShowInfoChange = new EventEmitter();\n //#endregion\n //#region Layout\n LayoutValue;\n\n @Input()\n get Layout() {\n return this.LayoutValue;\n }\n set Layout(val) {\n this.LayoutValue = val;\n this.Component = this.LayoutValue;\n this.RefreshNodes();\n this.LayoutChange.emit(this.LayoutValue);\n }\n\n @Output() LayoutChange = new EventEmitter();\n //#endregion\n MultipleSelectionValue = false;\n @Input()\n get MultipleSelection(): boolean {\n return this.MultipleSelectionValue;\n }\n set MultipleSelection(val) {\n this.MultipleSelectionValue = val;\n }\n //#region NodeLoader\n NodeLoaderValue: ILayoutTreeNodeLoader;\n\n @Input()\n get NodeLoader() {\n return this.NodeLoaderValue;\n }\n set NodeLoader(val: ILayoutTreeNodeLoader) {\n this.NodeLoaderValue = val;\n this.NodeLoaderChange.emit(this.NodeLoaderValue);\n }\n\n @Output() NodeLoaderChange = new EventEmitter();\n //#endregion\n\n //#region CanDrag\n CanDragValue = false;\n @Input()\n get CanDrag() {\n return this.CanDragValue;\n }\n set CanDrag(val: boolean) {\n this.CanDragValue = val;\n this.CanDragChange.emit(this.CanDragValue);\n }\n\n @Output() CanDragChange = new EventEmitter();\n //#endregion\n\n Component;\n Elements = [];\n Subscriptions = [];\n TreeNodes = [];\n\n IsInitialized = false;\n @Output() Initialized = new EventEmitter();\n\n @Output() DeleteElement = new EventEmitter();\n @Output() OnRefresh = new EventEmitter();\n @Output() SelectionChanged = new EventEmitter();\n internalSelect = false;\n dragState;\n\n ShowPasteButton = false;\n\n constructor(private cdRef: ChangeDetectorRef, private clipboard: Clipboard) { }\n //#region Statics\n private static getNodeRecursive(nodeList, name) {\n let retVal;\n if (nodeList && name) {\n nodeList.some(node => {\n if ((node.longName && node.longName === name) || (node.data && node.data.Name === name)) {\n retVal = node;\n return true;\n }\n retVal = LayoutTree.getNodeRecursive(node.Children, name);\n if (retVal) {\n return true;\n }\n return false;\n });\n }\n return retVal;\n }\n\n private static getTreeLine(elem: LayoutElement, templateName: string, id: IDKeeper, parent: LayoutTreeNode): any {\n const retVal = TypeNameLoader.GenerateTreeNode(elem, templateName, id, parent);\n if (elem['IsRoot']) {\n retVal.canCopy = false;\n if (elem.ElementType == 'grid' || elem.ElementType == 'flex' || elem.ElementType == 'raster' || elem.ElementType == 'canvas') {\n retVal.canPaste = true;\n }\n } else if (elem.ElementType) {\n const regEntry = REGISTRY[elem.ElementType];\n if (regEntry) {\n retVal.Icon = regEntry.Icon;\n }\n if (elem.ElementType == 'grid' || elem.ElementType == 'flex' || elem.ElementType == 'raster' || elem.ElementType == 'canvas') {\n retVal.Icon = null;\n retVal.canPaste = true;\n }\n }\n const page = NavigationService.SelectedPage.getValue();\n if (elem.Elements && elem.Elements.length > 0) {\n if (!((elem.ElementType === 'template' && elem['LoadByReference']) || (elem.ElementType === 'widget' && page !== 'widget'))) {\n retVal.HasChildren = true;\n retVal.Children = [];\n }\n if (elem.ElementType === 'template') {\n if (!elem['LoadByReference']) {\n if (templateName) {\n templateName += '.' + (elem.Name || '');\n } else {\n templateName = elem.Name || '';\n }\n elem.Elements.forEach(child => {\n const childLine = LayoutTree.getTreeLine(child, templateName, id, retVal);\n retVal.Children.push(childLine);\n });\n }\n } else if (elem.ElementType === 'widget') {\n if (page === 'widget') {\n if (templateName) {\n templateName += '.' + (elem.Name || '');\n } else {\n templateName = elem.Name || '';\n }\n elem.Elements.forEach(child => {\n const childLine = LayoutTree.getTreeLine(child, templateName, id, retVal);\n retVal.Children.push(childLine);\n });\n }\n } else if (elem.ElementType === 'tab' || elem.ElementType === 'accordion' || elem.ElementType === 'expansionpanel') {\n elem.Elements.forEach(child => {\n const childLine = LayoutTree.getTreeLine(child, templateName, id, retVal);\n childLine.canDelete = false;\n childLine.Draggable = false;\n retVal.Children.push(childLine);\n });\n } else {\n elem.Elements.forEach(child => {\n const childLine = LayoutTree.getTreeLine(child, templateName, id, retVal);\n retVal.Children.push(childLine);\n });\n }\n }\n return retVal;\n }\n\n private static ChangeCopy(copy, viewType, elemNames) {\n let name = copy.Name + '_copy';\n let index = 1;\n while (elemNames[name] === true) {\n name = copy.Name + '_copy_' + index++;\n }\n copy.Name = name;\n elemNames[name] = true;\n copy.ID = UUID.UUID();\n copy.ViewType = viewType;\n if (copy.Elements) {\n copy.Elements.forEach(x => LayoutTree.ChangeCopy(x, viewType, elemNames));\n }\n }\n\n private static GetElementNames(elem, dict) {\n if (elem.Name) {\n dict[elem.Name] = true;\n }\n if (elem.Elements) {\n elem.Elements.forEach(x => {\n LayoutTree.GetElementNames(x, dict);\n });\n }\n }\n\n private static CheckForExistingName(elem, name) {\n if (elem.Name === name) {\n return true;\n }\n if (elem.Elements) {\n return elem.Elements.some(x => LayoutTree.CheckForExistingName(x, name));\n }\n return false;\n }\n\n private static ResetDataBinding(le, elemIDList) {\n le.DataSource = null;\n le.DataSourceID = null;\n le.DataModelID = null;\n elemIDList.push(le.ID);\n if (le.Elements && le.Elements.length > 0) {\n le.Elements.forEach((item) => {\n LayoutTree.ResetDataBinding(item, elemIDList);\n });\n }\n }\n\n private static FillTreeNodes(elements, treeNodes) {\n if (elements) {\n elements.forEach(x => {\n treeNodes.push(x);\n if (x.HasChildren && x.IsExpanded) {\n LayoutTree.FillTreeNodes(x.Children, treeNodes);\n }\n });\n }\n return treeNodes;\n }\n\n private static ExecuteOnAllNodes(elements, action) {\n if (elements) {\n elements.forEach(x => {\n action(x);\n LayoutTree.ExecuteOnAllNodes(x.Children, action);\n });\n }\n }\n\n static FillState(nodes, state) {\n nodes.forEach(x => {\n if (x.HasChildren) {\n if (x.LayoutElement) {\n state[x.LayoutElement.ID] = x.IsExpanded;\n }\n LayoutTree.FillState(x.Children, state);\n }\n });\n }\n\n static ApplyState(nodes, state) {\n nodes.forEach(x => {\n if (x.HasChildren) {\n if (x.LayoutElement) {\n const stateVal = state[x.LayoutElement.ID];\n if (typeof stateVal === 'boolean') {\n x.IsExpanded = stateVal;\n }\n }\n LayoutTree.ApplyState(x.Children, state);\n }\n });\n }\n //#endregion\n ngOnInit(): void {\n this.Component = this.Layout;\n\n if (ClipboardHelper.Inititalized) {\n this.ShowCopyButton = true;\n this.ShowDuplicateButton = false;\n if (ClipboardHelper.ClipboardContent && ClipboardHelper.ClipboardContent.type && ClipboardHelper.ClipboardContent.type == \"LayoutElementCopy\") {\n this.ShowPasteButton = true;\n } else {\n this.ShowPasteButton = false;\n }\n ClipboardHelper.ClipboardChanged.subscribe((data:any) => {\n if (data && data.type && data.type == \"LayoutElementCopy\") {\n this.ShowPasteButton = true;\n } else {\n this.ShowPasteButton = false;\n }\n //this.cdRef.detectChanges();\n });\n } else {\n this.ShowCopyButton = false;\n this.ShowDuplicateButton = true;\n }\n\n this.Subscriptions.push(LayoutService.RefreshTree.subscribe((val) => {\n if (val) {\n this.RefreshNodes();\n }\n }));\n this.Subscriptions.push(LayoutService.LayoutElementsChangedEvent.subscribe(() => {\n this.RefreshNodes();\n }));\n this.Subscriptions.push(LayoutService.LayoutPropertyChangedEvent.subscribe((obj) => {\n const checkProps = ['Name', 'Variables', 'Events', 'Elements'];\n if (obj && Object.keys(obj).some(x => obj[x].some(y => checkProps.indexOf(y.PropertyName) > -1))) {\n this.RefreshNodes();\n }\n }));\n this.Subscriptions.push(LayoutService.RootSize.subscribe((size) => {\n if (size && this.Layout && this.Layout.Resolutions) {\n let found = false;\n this.Layout.Resolutions.forEach((res) => {\n if (size.Width > res.FromWidth && size.Width <= res.ToWidth) {\n this.Component = res;\n found = true;\n }\n });\n if (!found) {\n this.Component = this.Layout;\n }\n this.RefreshNodes();\n }\n }));\n this.IsInitialized = true;\n this.RefreshNodes();\n this.Initialized.emit(this);\n this.cdRef.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.Subscriptions.forEach(sub => {\n sub.unsubscribe();\n });\n }\n\n SelectItem(elements, val, parents) {\n if (elements && elements.length > 0) {\n elements.forEach((item) => {\n if (item.data === val) {\n if (!this.internalSelect) {\n if (parents) {\n parents.forEach((parent) => {\n parent.IsExpanded = true;\n });\n }\n this.updateTreeLines();\n setTimeout(() => {\n const elementList = document.querySelectorAll('.selectedNode');\n if (elementList.length > 0) {\n const element = elementList[0] as HTMLElement;\n element.scrollIntoView({ behavior: 'smooth' });\n }\n }, 100);\n } else {\n this.internalSelect = false;\n }\n if (this.SelectedNodeValue) {\n this.SelectedNodeValue.Hover = false;\n }\n LayoutTree.ExecuteOnAllNodes(this.Elements, (x) => {\n x.IsSelected = false;\n });\n this.SelectedNodeValue = item;\n if (this.SelectedNodeValue) {\n this.SelectedNodeValue.IsSelected = true;\n this.SelectedNodeValue.Hover = true;\n }\n } else {\n if (item.Children && item.Children.length > 0) {\n const pList = [];\n if (parents) {\n pList.push(...parents);\n }\n pList.push(item);\n this.SelectItem(item.Children, val, pList);\n }\n }\n });\n }\n }\n SelectItems(elements, vals) {\n if (elements && elements.length > 0) {\n elements.forEach((item) => {\n if (vals.find((value) => value == item.data) != null) {\n if (!this.SelectedNodesValue) {\n this.SelectedNodesValue = [];\n }\n this.SelectedNodesValue.push(item);\n } else {\n if (item.Children && item.Children.length > 0) {\n this.SelectItems(item.Children, vals);\n }\n }\n });\n }\n }\n\n RefreshNodes(): void {\n if (this.IsInitialized && this.Component) {\n let expandState;\n if (this.Elements && this.Elements.length > 0) {\n expandState = {};\n LayoutTree.FillState(this.Elements, expandState);\n }\n let nodes = [];\n if (this.NodeLoaderValue) {\n this.NodeLoaderValue.Layout = this.Component;\n nodes = this.NodeLoaderValue.getNodes();\n } else {\n const idKeeper = new IDKeeper();\n if (this.ShowRootValue) {\n this.Component.IsRoot = true;\n nodes = [LayoutTree.getTreeLine(this.Component, null, idKeeper, null)];\n } else {\n const list = [];\n this.Component.Elements.forEach(elem => {\n const treeLine = LayoutTree.getTreeLine(elem, null, idKeeper, null);\n list.push(treeLine);\n });\n nodes = list;\n }\n }\n if (expandState) {\n LayoutTree.ApplyState(nodes, expandState);\n }\n this.Elements = nodes;\n if (this.Elements && this.Elements.length > 0) {\n if (this.SelectedItemValue) {\n this.SelectItem(this.Elements, this.SelectedItemValue, []);\n }\n if (this.SelectedItemsValue) {\n this.SelectItems(this.Elements, this.SelectedItemsValue);\n }\n }\n this.OnRefresh.emit(nodes);\n this.updateTreeLines();\n this.cdRef.detectChanges();\n }\n }\n\n getNodeByElemName(name: string) {\n return LayoutTree.getNodeRecursive(this.Elements, name);\n }\n\n DeleteNode(elem) {\n LayoutHelper.OnDeleteElement(elem.LayoutElement, elem.templatePath, this.LayoutValue, () => {\n this.DeleteElement.emit(elem.LayoutElement);\n });\n }\n\n changeContent(elemType) {\n this.SelectedItemValue.ElementType = elemType;\n this.SelectedItemValue.ComponentChanged.next();\n }\n\n EditNode(elem) {\n elem.Edit = !elem.Edit;\n elem.TempName = elem.LayoutElement.Name + '';\n }\n\n Accept(elem) {\n if (elem.LayoutElement.Name !== elem.TempName && this.LayoutValue) {\n const nameExisting = LayoutTree.CheckForExistingName(this.LayoutValue, elem.TempName);\n if (nameExisting) {\n const tft = new TranslateFormatText('@@Name \\'{0}\\' already exists in the layout. Name given anyway?');\n tft.FormatParams.push(elem.TempName);\n MessageBoxHelper.ShowDialog(tft, new TranslateFormatText('@@Umbenennen'),\n MessageBoxButtons.YesNoAbort, MessageBoxIcon.Question).then(x => {\n if (x === MessageBoxResult.Yes) {\n this.checkWorkflowChange(elem);\n } else if (x === MessageBoxResult.No) {\n elem.Edit = !elem.Edit;\n }\n });\n } else {\n this.checkWorkflowChange(elem);\n }\n } else {\n elem.Edit = !elem.Edit;\n }\n }\n\n private checkWorkflowChange(elem) {\n const newName = elem.templatePath + elem.TempName;\n WorkflowNameChangeDialog.CheckWorkflowChange(this.LayoutValue, elem.longName, newName).then(x => {\n if (x !== MessageBoxResult.Abort) {\n elem.LayoutElement.Name = elem.TempName;\n elem.Caption = elem.TempName;\n elem.Edit = !elem.Edit;\n LayoutService.OnLayoutPropertyChanged(elem.LayoutElement.ID, 'Name', elem.LayoutElement.Name);\n }\n });\n }\n\n Cancel(elem) {\n elem.Edit = !elem.Edit;\n }\n\n KeyDown(ev, elem) {\n if (ev && ev.key === 'Enter' && elem) {\n this.Accept(elem);\n }\n }\n\n CopyNode(node) {\n if (ClipboardHelper.Inititalized) {\n let entry = {\n type: node.LayoutElement.IsRoot ? node.LayoutElement.ElementType == 'widget' ? \"WidgetCopy\" : node.LayoutElement.ElementType =='template' ? \"TemplateCopy\" :\"LayoutCopy\" :\"LayoutElementCopy\",\n content: node.LayoutElement\n }\n ClipboardHelper.CopyToClipboard(entry);\n NotificationHelper.Info(\"@@CopyToClipboard\", \"@@ElementCopiedToClipboard\");\n } else {\n const parent = MetaHelper.FindParent(this.LayoutValue, node.LayoutElement);\n if (parent) {\n const copy = plainToClass(LayoutElement, JSON.parse(JSON.stringify(node.LayoutElement)));\n const elemNames = {};\n LayoutTree.GetElementNames(this.LayoutValue, elemNames);\n LayoutTree.ChangeCopy(copy, node.LayoutElement.ViewType, elemNames);\n parent.Elements.push(copy);\n this.RefreshNodes();\n this.SelectedItem = copy;\n LayoutService.SelectedItem.next(copy);\n LayoutService.OnLayoutElementAdded({\n ElementContent: JSON.stringify(copy),\n Index: parent.Elements.length - 1,\n ParentID: parent.ID\n });\n }\n }\n }\n DuplicateNode(node) {\n if (ClipboardHelper.Inititalized) {\n let entry = {\n type: \"LayoutElementCopy\",\n content: node.LayoutElement\n }\n ClipboardHelper.CopyToClipboard(entry);\n NotificationHelper.Info(\"@@CopyToClipboard\", \"@@ElementCopiedToClipboard\");\n } else {\n const parent = MetaHelper.FindParent(this.LayoutValue, node.LayoutElement);\n if (parent) {\n const copy = plainToClass(LayoutElement, JSON.parse(JSON.stringify(node.LayoutElement)));\n const elemNames = {};\n LayoutTree.GetElementNames(this.LayoutValue, elemNames);\n LayoutTree.ChangeCopy(copy, node.LayoutElement.ViewType, elemNames);\n copy['Parent'] = parent;\n parent.Elements.push(copy);\n this.RefreshNodes();\n this.SelectedItem = copy;\n LayoutService.SelectedItem.next(copy);\n LayoutService.OnLayoutElementAdded({\n ElementContent: JSON.stringify(copy),\n Index: parent.Elements.length - 1,\n ParentID: parent.ID\n });\n }\n }\n }\n PasteNode(node) {\n if (node && node.LayoutElement) {\n let item = ClipboardHelper.ClipboardContent.content;\n const copy = plainToClass(LayoutElement, JSON.parse(JSON.stringify(item)));\n const elemNames = {};\n LayoutTree.GetElementNames(this.LayoutValue, elemNames);\n LayoutTree.ChangeCopy(copy, node.LayoutElement.ViewType, elemNames);\n copy['Parent'] = node.LayoutElement;\n node.LayoutElement.Elements.push(copy);\n this.RefreshNodes();\n this.SelectedItem = copy;\n LayoutService.SelectedItem.next(copy);\n LayoutService.OnLayoutElementAdded({\n ElementContent: JSON.stringify(copy),\n Index: node.LayoutElement.Elements.length - 1,\n ParentID: node.LayoutElement.ID\n });\n }\n }\n\n showEventTree(ev) {\n EventTreeDialog.ShowDialog(this.LayoutValue);\n ev.stopPropagation();\n }\n\n onToggleClick(node) {\n if (node && node.HasChildren) {\n node.IsExpanded = !node.IsExpanded;\n this.updateTreeLines();\n }\n }\n\n updateTreeLines() {\n this.TreeNodes = LayoutTree.FillTreeNodes(this.Elements, []);\n }\n\n changeExpandState(expanded: boolean) {\n LayoutTree.ExecuteOnAllNodes(this.Elements, (x) => {\n x.IsExpanded = expanded;\n });\n this.updateTreeLines();\n this.cdRef.detectChanges();\n }\n\n onNodeSelected(ev, node) {\n if (this.MultipleSelectionValue && ev && ev.ctrlKey) {\n if (Array.isArray(this.SelectedNodesValue)) {\n const newList = [...this.SelectedNodesValue];\n const index = this.SelectedNodesValue.indexOf(node);\n if (index < 0) {\n newList.push(node);\n } else {\n newList.splice(index, 1);\n }\n this.SelectedNodes = newList;\n } else {\n if (this.SelectedNodeValue) {\n if (node === this.SelectedNodeValue) {\n this.SelectedNode = null;\n } else {\n this.SelectedNodes = [this.SelectedNodeValue, node];\n }\n } else {\n this.SelectedNode = node;\n }\n }\n } else {\n this.SelectedNode = node;\n }\n this.cdRef.detectChanges();\n }\n\n //#region Dragging\n dragStart(ev) {\n const dragContext = {\n Caption: '',\n DraggedTreeNodes: [],\n DropInfos: {},\n DropNode: null,\n CanDrop: false\n };\n const captions = [];\n this.TreeNodes.forEach(x => {\n if (x.IsSelected && x.Draggable) {\n captions.push(x.Caption);\n dragContext.DraggedTreeNodes.push(x);\n }\n });\n dragContext.Caption = captions.join(', ');\n this.dragState = dragContext;\n }\n\n dragOver(ev, node) {\n node.DropState = DropState.None;\n const ds = this.dragState;\n if (ds) {\n const oldDropNode = ds.DropNode;\n ds.DropNode = node;\n const nodeChanged = oldDropNode !== node;\n if (oldDropNode && nodeChanged) {\n oldDropNode.DropState = DropState.None;\n }\n let canDrop = false;\n if (ev.currentTarget) {\n if (!ev.currentTarget.DropHeight) {\n ev.currentTarget.DropHeight = ev.currentTarget.offsetHeight;\n }\n const pos = ev.offsetY / ev.currentTarget.DropHeight;\n let target;\n if (ds.DropNode.Parent) {\n if (pos <= 0.25) {\n node.DropState = DropState.Before;\n target = ds.DropNode.Parent;\n } else if (pos >= 0.75) {\n node.DropState = DropState.After;\n target = ds.DropNode.Parent;\n } else {\n node.DropState = DropState.Inner;\n target = ds.DropNode;\n }\n } else {\n node.DropState = DropState.Inner;\n target = ds.DropNode;\n }\n let dropInfo = ds.DropInfos[node.DropKey];\n if (!dropInfo) {\n dropInfo = {\n CanDrop: true,\n DropInfoText: null\n };\n ds.DropInfos[node.DropKey] = dropInfo;\n if (ds.DraggedTreeNodes.some(x => x === target)) {\n dropInfo.CanDrop = false;\n dropInfo.DropInfoText = new TranslateFormatText('@@Drop into itself not possible');\n } else {\n if (!(target.LayoutElement.ElementType === 'canvas' || target.LayoutElement.ElementType === 'flex'\n || target.LayoutElement.ElementType === 'grid' || target.LayoutElement.ElementType === 'bootstrapgrid' || target.LayoutElement.ElementType === 'bootstraprepeat'\n || target.LayoutElement.ElementType === 'raster' || target.LayoutElement.ElementType === 'repeat')) {\n dropInfo.CanDrop = false;\n dropInfo.DropInfoText = new TranslateFormatText('@@Dropping is not possible here');\n } else {\n const parentIDs = [target.LayoutElement.ID];\n let parent = target.Parent;\n while (parent) {\n parentIDs.push(parent.LayoutElement.ID);\n parent = parent.Parent;\n }\n if (ds.DraggedTreeNodes.some(dtn => parentIDs.some(pi => dtn.LayoutElement.ID === pi))) {\n dropInfo.CanDrop = false;\n dropInfo.DropInfoText = new TranslateFormatText('@@Drop into itself not possible');\n }\n }\n }\n }\n canDrop = dropInfo.CanDrop;\n }\n ds.CanDrop = canDrop;\n }\n }\n\n onInternalDrop() {\n if (this.dragState) {\n const dropNode = this.dragState.DropNode;\n if (dropNode && dropNode.DropState !== DropState.None) {\n const canDropInfo = this.dragState.DropInfos[dropNode.DropKey];\n if (canDropInfo && canDropInfo.CanDrop === false) {\n if (canDropInfo.DropInfoText !== null) {\n MessageBoxHelper.ShowDialog(canDropInfo.DropInfoText, new TranslateFormatText('@@Drop'),\n MessageBoxButtons.Ok, MessageBoxIcon.Warning);\n }\n } else {\n let dropTarget;\n let dropIndex;\n if (dropNode.DropState === DropState.Inner) {\n dropNode.IsExpanded = true;\n dropNode.HasChildren = true;\n if (!dropNode.Children) {\n dropNode.Children = [];\n }\n dropTarget = dropNode;\n dropIndex = dropNode.Children.length;\n } else if (dropNode.Parent) {\n dropTarget = dropNode.Parent;\n dropIndex = dropNode.Parent.Children.indexOf(dropNode);\n if (dropNode.DropState === DropState.After) {\n dropIndex++;\n }\n }\n if (dropTarget) {\n let realDropIndex = dropIndex;\n const droppedNodes = [];\n const spliceIndices = [];\n const checkNodes = [];\n this.dragState.DraggedTreeNodes.forEach((dragNode, di) => {\n if (dragNode.Parent) {\n const origIndex = dragNode.Parent.Children.indexOf(dragNode);\n if (origIndex >= 0) {\n if (dragNode.Parent === dropTarget) {\n droppedNodes.push({\n Node: dragNode,\n DropIndex: di\n });\n spliceIndices.push(origIndex);\n if (origIndex < dropIndex) {\n realDropIndex--;\n }\n } else {\n checkNodes.push({\n Node: dragNode,\n DropIndex: di\n });\n }\n }\n }\n });\n if (checkNodes.length > 0) {\n MetaHelper.FindDataBindingProperties(this.Layout, dropTarget.LayoutElement).then(dropSource => {\n let table;\n if (dropSource) {\n table = dropSource.Table;\n }\n const dbObject = {\n List: checkNodes,\n Index: 0,\n Ask: [],\n MoveList: [],\n DropSourceTable: table,\n DataBindings: {}\n };\n this.checkDataBindings(dbObject, () => {\n\n const posChange = new MultiLayoutPositionChangeValue();\n posChange.Index = realDropIndex;\n posChange.NewParentID = dropTarget.LayoutElement.ID;\n\n if (droppedNodes.length > 0) {\n // LayoutTreestruktur anpassen\n spliceIndices.sort((a, b) => b - a);\n spliceIndices.forEach(x => {\n dropTarget.Children.splice(x, 1);\n });\n\n // LayoutElementStruktur anpassen\n const dNodePosChange = new PositionChangeSourceValue();\n dNodePosChange.ParentID = dropTarget.LayoutElement.ID;\n droppedNodes.forEach(x => {\n dNodePosChange.Elements.push({\n ElementID: x.Node.LayoutElement.ID,\n DropIndex: x.DropIndex\n });\n const index = dropTarget.LayoutElement.Elements.indexOf(x.Node.LayoutElement);\n dropTarget.LayoutElement.Elements.splice(index, 1);\n });\n posChange.Elements.push(dNodePosChange);\n }\n const oldParents = {};\n dbObject.MoveList.forEach(moveEntry => {\n const index = moveEntry.Node.Parent.Children.indexOf(moveEntry.Node);\n if (index > -1) {\n const oldParent = moveEntry.Node.Parent;\n oldParents[oldParent.LayoutElement.ID] = oldParent;\n // LayoutTreestruktur anpassen\n oldParent.Children.splice(index, 1);\n moveEntry.Node.Parent = dropTarget;\n droppedNodes.push(moveEntry);\n\n // LayoutElementStruktur anpassen\n const leIndex = oldParent.LayoutElement.Elements.indexOf(moveEntry.Node.LayoutElement);\n oldParent.LayoutElement.Elements.splice(leIndex, 1);\n let mENodePosChange = posChange.Elements.find(x => x.ParentID === oldParent.LayoutElement.ID);\n if (!mENodePosChange) {\n mENodePosChange = new PositionChangeSourceValue();\n mENodePosChange.ParentID = oldParent.LayoutElement.ID;\n posChange.Elements.push(mENodePosChange);\n }\n mENodePosChange.Elements.push({\n ElementID: moveEntry.Node.LayoutElement.ID,\n DropIndex: moveEntry.DropIndex\n });\n }\n });\n\n droppedNodes.sort((a, b) => b.DropIndex - a.DropIndex);\n const realNodes = [];\n const realLayoutElements = [];\n droppedNodes.forEach(x => {\n realNodes.push(x.Node);\n realLayoutElements.push(x.Node.LayoutElement);\n });\n // LayoutTreestruktur anpassen\n dropTarget.Children.splice(realDropIndex, 0, ...realNodes);\n // LayoutElementStruktur anpassen\n dropTarget.LayoutElement.Elements.splice(realDropIndex, 0, ...realLayoutElements);\n\n this.updateTreeLines();\n\n LayoutService.OnMultiLayoutElementMoved(posChange);\n if (dropTarget.LayoutElement.ValuesChanged) {\n dropTarget.LayoutElement.ValuesChanged.next();\n }\n Object.keys(oldParents).forEach(x => {\n const le = oldParents[x].LayoutElement;\n if (le && le.ValuesChanged) {\n le.ValuesChanged.next();\n }\n });\n this.cdRef.detectChanges();\n });\n });\n } else {\n const posChange = new MultiLayoutPositionChangeValue();\n posChange.Index = realDropIndex;\n posChange.NewParentID = dropTarget.LayoutElement.ID;\n\n if (droppedNodes.length > 0) {\n // LayoutTreestruktur anpassen\n spliceIndices.sort((a, b) => b - a);\n spliceIndices.forEach(x => {\n dropTarget.Children.splice(x, 1);\n });\n\n // LayoutElementStruktur anpassen\n const dNodePosChange = new PositionChangeSourceValue();\n dNodePosChange.ParentID = dropTarget.LayoutElement.ID;\n droppedNodes.forEach(x => {\n dNodePosChange.Elements.push({\n ElementID: x.Node.LayoutElement.ID,\n DropIndex: x.DropIndex\n });\n const index = dropTarget.LayoutElement.Elements.indexOf(x.Node.LayoutElement);\n dropTarget.LayoutElement.Elements.splice(index, 1);\n });\n posChange.Elements.push(dNodePosChange);\n }\n\n const realNodes = [];\n const realLayoutElements = [];\n droppedNodes.forEach(x => {\n realNodes.push(x.Node);\n realLayoutElements.push(x.Node.LayoutElement);\n });\n // LayoutTreestruktur anpassen\n dropTarget.Children.splice(realDropIndex, 0, ...realNodes);\n // LayoutElementStruktur anpassen\n dropTarget.LayoutElement.Elements.splice(realDropIndex, 0, ...realLayoutElements);\n\n this.updateTreeLines();\n\n LayoutService.OnMultiLayoutElementMoved(posChange);\n if (dropTarget.LayoutElement.ValuesChanged) {\n dropTarget.LayoutElement.ValuesChanged.next();\n }\n this.cdRef.detectChanges();\n }\n }\n }\n dropNode.DropState = DropState.None;\n }\n this.dragState = null;\n }\n }\n\n checkDataBindings(dbObject, finishAction) {\n if (dbObject.Index < dbObject.List.length) {\n const actEntry = dbObject.List[dbObject.Index++];\n const mustReset = dbObject.DataBindings[actEntry.Node.Parent.LayoutElement.ID];\n if (mustReset == null) {\n MetaHelper.FindDataBindingProperties(this.Layout, actEntry.Node.Parent.LayoutElement).then(removedSource => {\n if (removedSource && removedSource.Table && removedSource.Table != dbObject.DropSourceTable) {\n dbObject.DataBindings[actEntry.Node.Parent.LayoutElement.ID] = true;\n dbObject.Ask.push(actEntry);\n } else {\n dbObject.DataBindings[actEntry.Node.Parent.LayoutElement.ID] = false;\n dbObject.MoveList.push(actEntry);\n }\n this.checkDataBindings(dbObject, finishAction);\n });\n } else {\n if (mustReset) {\n dbObject.Ask.push(actEntry);\n } else {\n dbObject.MoveList.push(actEntry);\n }\n this.checkDataBindings(dbObject, finishAction);\n }\n } else {\n if (dbObject.Ask.length > 0) {\n const names = [];\n dbObject.Ask.forEach(x => {\n names.push(x.Node.Caption);\n });\n const tft = new TranslateFormatText('@@ResetDataBinding on {0}');\n tft.FormatParams.push(names.join(', '));\n MessageBoxHelper.ShowDialog(tft, new TranslateFormatText('@@ResetDataBindingContent'),\n MessageBoxButtons.YesNo, MessageBoxIcon.Question).then(x => {\n if (x === MessageBoxResult.Yes) {\n dbObject.MoveList.push(...dbObject.Ask);\n const mpcv = new MultiPropertyChangeValue();\n mpcv.Properties.push({\n PropertyName: 'DataSource',\n Value: null\n }, {\n PropertyName: 'DataSourceID',\n Value: null\n }, {\n PropertyName: 'DataModelID',\n Value: null\n });\n dbObject.Ask.forEach(ask => {\n LayoutTree.ResetDataBinding(ask.Node.LayoutElement, mpcv.ElementIDs);\n });\n LayoutService.OnMultiLayoutPropertyChanged([mpcv]);\n finishAction();\n } else {\n finishAction();\n }\n });\n } else {\n finishAction();\n }\n }\n }\n //#endregion\n\n}\n\nexport class LayoutTreeNode extends ABaseTreeNode {\n data;\n longName;\n templatePath;\n LayoutElement;\n canEdit = true;\n canCopy = true;\n canPaste = false;\n canDelete = true;\n VariableCount = 0;\n VariableTooltip;\n EventCount = 0;\n EventTooltip;\n IsSelected = false;\n DepthStyle;\n DropStyle;\n\n private InternalDropState: DropState = DropState.None;\n get DropState(): DropState { return this.InternalDropState; }\n set DropState(val: DropState) {\n this.InternalDropState = val;\n const style = {};\n switch (val) {\n case DropState.After:\n style['border-bottom'] = '3px solid var(--primary-color)';\n break;\n case DropState.Before:\n style['border-top'] = '3px solid var(--primary-color)';\n break;\n case DropState.Inner:\n style['background-color'] = 'var(--primary-color)';\n break;\n }\n this.DropStyle = style;\n }\n\n private DepthValue = 0;\n get Depth(): number { return this.DepthValue; }\n set Depth(val: number) {\n this.DepthValue = val;\n this.DepthStyle = { width: (val * 40) + 'px' };\n }\n\n private ParentValue: LayoutTreeNode;\n get Parent(): LayoutTreeNode { return this.ParentValue; }\n set Parent(val: LayoutTreeNode) {\n this.ParentValue = val;\n if (val) {\n this.Depth = val.Depth + 1;\n } else {\n this.Depth = 0;\n }\n }\n\n get DropKey() { return this.LayoutElement.ID + '_' + this.InternalDropState; }\n\n constructor(id: number, parent: LayoutTreeNode) {\n super(id);\n this.Parent = parent;\n }\n}\n\nexport interface ILayoutTreeNodeLoader {\n Layout;\n getNodes(): LayoutTreeNode[];\n}\n\nexport class TypeNameLoader implements ILayoutTreeNodeLoader {\n\n private static ChildrenTypes = ['dropdown', 'accordion', 'raster', 'grid', 'bootstrapgrid', 'bootstraprepeat', 'flex', 'canvas', 'repeat'];\n\n Layout;\n ShowRoot = false;\n TypeNames: string[] = [];\n\n static GenerateTreeNode(elem: LayoutElement, templateName: string, id: IDKeeper, parent: LayoutTreeNode): LayoutTreeNode {\n const retVal = new LayoutTreeNode(id.NextID, parent);\n retVal.Draggable = true;\n retVal.Caption = elem.Name + ' ';\n retVal.data = elem;\n retVal.templatePath = templateName ? templateName + '.' : '';\n retVal.longName = retVal.templatePath + elem.Name;\n retVal.LayoutElement = elem;\n retVal.IsExpanded = true;\n if (elem.Variables) {\n retVal.VariableCount = elem.Variables.length;\n const names = [];\n elem.Variables.forEach((v) => {\n names.push(v.Name);\n });\n retVal.VariableTooltip = names.join('\\n');\n }\n if (elem.Events) {\n const names = [];\n elem.Events.forEach(x => {\n if (x && x.Handlers && x.Handlers.length > 0) {\n retVal.EventCount += x.Handlers.length;\n names.push(x.EventID);\n }\n });\n retVal.EventTooltip = names.join('\\n');\n }\n return retVal;\n }\n\n private getTreeLine(elem: LayoutElement, templateName: string, id: IDKeeper, parent: LayoutTreeNode): LayoutTreeNode {\n const retVal = TypeNameLoader.GenerateTreeNode(elem, templateName, id, parent);\n const page = NavigationService.SelectedPage.getValue();\n if (elem.Elements && elem.Elements.length > 0) {\n const childList = [];\n if (elem.ElementType === 'template') {\n if (!elem['LoadByReference']) {\n if (templateName) {\n templateName += '.' + (elem.Name || '');\n } else {\n templateName = elem.Name || '';\n }\n elem.Elements.forEach(child => {\n if (this.TypeNames.some(x => x === child.ElementType)) {\n const treeLine = this.getTreeLine(child, templateName, id, retVal);\n childList.push(treeLine);\n } else if (TypeNameLoader.ChildrenTypes.some(x => x === child.ElementType)) {\n const treeLine = this.getTreeLine(child, templateName, id, retVal);\n if (treeLine.Children && treeLine.Children.length > 0) {\n childList.push(treeLine);\n }\n }\n });\n }\n } else if (elem.ElementType === 'widget') {\n if (page === 'widget') {\n if (templateName) {\n templateName += '.' + (elem.Name || '');\n } else {\n templateName = elem.Name || '';\n }\n elem.Elements.forEach(child => {\n if (this.TypeNames.some(x => x === child.ElementType)) {\n const treeLine = this.getTreeLine(child, templateName, id, retVal);\n childList.push(treeLine);\n } else if (TypeNameLoader.ChildrenTypes.some(x => x === child.ElementType)) {\n const treeLine = this.getTreeLine(child, templateName, id, retVal);\n if (treeLine.Children && treeLine.Children.length > 0) {\n childList.push(treeLine);\n }\n }\n });\n }\n } else {\n elem.Elements.forEach(child => {\n if (this.TypeNames.some(x => x === child.ElementType)) {\n const treeLine = this.getTreeLine(child, templateName, id, retVal);\n childList.push(treeLine);\n } else if (TypeNameLoader.ChildrenTypes.some(x => x === child.ElementType)) {\n const treeLine = this.getTreeLine(child, templateName, id, retVal);\n if (treeLine.Children && treeLine.Children.length > 0) {\n childList.push(treeLine);\n }\n }\n });\n }\n if (childList.length > 0) {\n retVal.HasChildren = true;\n retVal.Children = childList;\n }\n }\n return retVal;\n }\n\n getNodes(): LayoutTreeNode[] {\n const retVal = [];\n const idKeeper = new IDKeeper();\n if (this.Layout) {\n const root = this.getTreeLine(this.Layout, null, idKeeper, null);\n if (this.ShowRoot) {\n retVal.push(root);\n } else if (root.Children) {\n retVal.push(...root.Children);\n }\n }\n return retVal;\n }\n}\n","import { ComponentPortal, Portal, PortalInjector } from '@angular/cdk/portal';\nimport {\n\tAfterViewInit,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tComponentFactoryResolver,\n\tElementRef,\n\tEventEmitter,\n\tInjector,\n\tInput,\n\tOnDestroy,\n\tOnInit,\n\tOutput,\n\tViewChild,\n\tRenderer2,\n\tHostListener,\n} from '@angular/core';\nimport { UUID } from 'angular2-uuid';\nimport { IntersectionHelper } from '../../../helpers/IntersectionHelper';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { PermissionHelper } from '../../../helpers/permissions.helper';\nimport {\n\tContextEvent,\n\tContextEventHelper,\n} from '../../../models/contextevent.model';\nimport { ViewType } from '../../../models/enums/viewtype.enum';\nimport { UnitType } from '../../../models/enums/unittype.enum';\nimport { MultiLayoutElement } from '../../../models/layoutelement.model';\nimport { LayoutUnit } from '../../../models/basic/layoutunit.model';\nimport {\n\tPROPERTYGROUPS,\n\tREGISTRY,\n} from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\n\n@Component({\n\tselector: 'layout-item',\n\ttemplateUrl: './layout.item.component.html',\n\tstyleUrls: ['./layout.item.component.css'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LayoutItem implements OnInit, OnDestroy, AfterViewInit {\n\t//#region Properties\n\tprivate componentRef;\n\tSubscriptions = {};\n\tMetaTableProperties: any;\n\tParentDisabled;\n\tInVisible = false;\n\tInitialized = false;\n\tselectedPortal: Portal;\n\t//#region FromBaseLayout\n\tFromBaseLayoutValue = false;\n\n\tisBaseLayout = false;\n\n\t@Input()\n\tget FromBaseLayout() {\n\t\treturn this.FromBaseLayoutValue;\n\t}\n\tset FromBaseLayout(val) {\n\t\tthis.FromBaseLayoutValue = val;\n\t\tthis.FromBaseLayoutChange.emit(this.FromBaseLayoutValue);\n\t}\n\n\t@Output() FromBaseLayoutChange = new EventEmitter();\n\t//#endregion\n\t//#region Component\n\tComponentValue;\n\tLastSourceValue;\n\n\t@Input()\n\tget Component() {\n\t\treturn this.ComponentValue;\n\t}\n\tset Component(val) {\n\t\tthis.ComponentValue = val;\n\t\tif (val && val.Elements && val.Elements.length > 0) {\n\t\t\tval.Elements.forEach((child) => (child.Parent = this.ComponentValue));\n\t\t}\n\t\tthis.cdRef.detectChanges();\n\t\tthis.Initialized = false;\n\t\tthis.CheckParentDisabled();\n\t\tthis.RenderContent();\n\t\tthis.ComponentChange.emit(this.ComponentValue);\n\t}\n\n\t@Output() ComponentChange = new EventEmitter();\n\t//#endregion\n\tRefreshCount = 0;\n\t//#region Layout\n\tLayoutValue;\n\n\t@Input()\n\tget Layout() {\n\t\treturn this.LayoutValue;\n\t}\n\tset Layout(val) {\n\t\tthis.LayoutValue = val;\n\t\tthis.CheckParentDisabled();\n\t\tthis.RenderContent();\n\t\tthis.LayoutChange.emit(this.LayoutValue);\n\t}\n\n\t@Output() LayoutChange = new EventEmitter();\n\t//#endregion\n\t//#region Disabled\n\tDisabledValue;\n\n\t@Input()\n\tget Disabled() {\n\t\tif (this.ParentDisabled) {\n\t\t\treturn true;\n\t\t}\n\t\treturn this.DisabledValue;\n\t}\n\tset Disabled(val) {\n\t\tthis.DisabledValue = val;\n\t\tthis.DisabledChange.emit(this.DisabledValue);\n\t}\n\n\t@Output() DisabledChange = new EventEmitter();\n\t//#endregion\n\t//#region ParentIsFlex\n\tParentIsFlexValue;\n\n\t@Input()\n\tget ParentIsFlex() {\n\t\treturn this.ParentIsFlexValue;\n\t}\n\tset ParentIsFlex(val) {\n\t\tthis.ParentIsFlexValue = val;\n\t\tthis.ParentIsFlexChange.emit(this.ParentIsFlexValue);\n\t}\n\n\t@Output() ParentIsFlexChange = new EventEmitter();\n\t//#endregion\n\t//#region Parent\n\tParentValue;\n\n\t@Input()\n\tget Parent() {\n\t\treturn this.ParentValue;\n\t}\n\tset Parent(val) {\n\t\tthis.ParentValue = val;\n\t\tthis.ParentChange.emit(this.ParentValue);\n\t}\n\n\t@Output() ParentChange = new EventEmitter();\n\t//#endregion\n\n\t//#region DataSource\n\tDataSourceValue;\n\t@Input()\n\tget DataSource() {\n\t\treturn this.DataSourceValue;\n\t}\n\tset DataSource(val) {\n\t\tthis.DataSourceValue = val;\n\t\tif (this.componentRef && this.componentRef.instance) {\n\t\t\tthis.componentRef.instance.DataSource = this.GetSourceValue();\n\t\t}\n\t\tthis.DataSourceChange.emit(this.DataSourceValue);\n\t}\n\n\t@Output() DataSourceChange = new EventEmitter();\n\t//#endregion\n\t//#region TriggerEvents\n\tTriggerEventsValue = false;\n\tget TriggerEvents() {\n\t\treturn this.TriggerEventsValue;\n\t}\n\tset TriggerEvents(val) {\n\t\tthis.TriggerEventsValue = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\t//#endregion\n\t//#region ItemSelected\n\t@Output() ItemSelected = new EventEmitter();\n\t//#endregion\n\t//#endregion\n\n\t//#region LifeCycle\n\tconstructor(\n\t\tprivate factoryResolver: ComponentFactoryResolver,\n\t\tpublic cdRef: ChangeDetectorRef,\n\t\tpublic _injector: Injector,\n\t\tprivate renderer: Renderer2\n\t) {}\n\tID = UUID.UUID();\n\tSelectedValue = false;\n\tget Selected() {\n\t\treturn this.SelectedValue;\n\t}\n\tset Selected(value) {\n\t\tthis.SelectedValue = value;\n\t\tthis.cdRef.detectChanges();\n\t}\n\tngOnInit(): void {\n\t\tif (this.Component) {\n\t\t\tthis.Subscriptions['TriggerEvents'] =\n\t\t\t\tLayoutService.TriggerEventsInEditMode.subscribe((mode) => {\n\t\t\t\t\tthis.TriggerEvents = mode;\n\t\t\t\t});\n\t\t\tthis.Subscriptions['SelectedItem'] = LayoutService.SelectedItem.subscribe(\n\t\t\t\t(item) => {\n\t\t\t\t\tif (this.Component.ViewType === ViewType.Edit) {\n\t\t\t\t\t\tthis.Selected = this.Component == item;\n\t\t\t\t\t\tthis.isBaseLayout = item?._Name == 'Base';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.Selected = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t\tthis.Subscriptions['SelectedItems'] =\n\t\t\t\tLayoutService.SelectedItems.subscribe((items) => {\n\t\t\t\t\tif (items && items.length > 0) {\n\t\t\t\t\t\tthis.Selected = items.indexOf(this.Component) > -1;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\tthis.Subscriptions['ViewType'] = LayoutService.ViewType.subscribe(\n\t\t\t\t(item) => {\n\t\t\t\t\tif (item == ViewType.View) {\n\t\t\t\t\t\tthis.Selected = false;\n\t\t\t\t\t\tthis.Hover = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t\tif (this.Component.ComponentChanged) {\n\t\t\t\tthis.Subscriptions['ComponentChanged'] =\n\t\t\t\t\tthis.Component.ComponentChanged.subscribe(() => {\n\t\t\t\t\t\tthis.Initialized = false;\n\t\t\t\t\t\tthis.RenderContent();\n\t\t\t\t\t});\n\t\t\t}\n\t\t\tif (this.Component.ValueChanged) {\n\t\t\t\tthis.Subscriptions['ValuesChanged'] =\n\t\t\t\t\tthis.Component.ValuesChanged.subscribe((x) => {\n\t\t\t\t\t\tif (x == 'HandleIntersection') {\n\t\t\t\t\t\t\tthis.ApplyIntersection();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\t\t\tif (\n\t\t\t\tthis.Component['PermissionType'] &&\n\t\t\t\tthis.Component['PermissionType'] === 'baselayout'\n\t\t\t) {\n\t\t\t\tthis.Subscriptions['permissions'] =\n\t\t\t\t\tPermissionHelper.BaseLayoutPermissions.subscribe((permissions) => {\n\t\t\t\t\t\tif (permissions) {\n\t\t\t\t\t\t\tif (permissions[this.Component.ID]) {\n\t\t\t\t\t\t\t\tthis.InVisible = permissions[this.Component.ID].InVisible;\n\t\t\t\t\t\t\t\tif (this.InVisible && this.Component.Initialized) {\n\t\t\t\t\t\t\t\t\tthis.Component.Initialized.next(true);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.Disabled = permissions[this.Component.ID].Disabled;\n\t\t\t\t\t\t\t\tif (this.Disabled) {\n\t\t\t\t\t\t\t\t\tthis.Component.Editable = false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.InVisible = false;\n\t\t\t\t\t\t\t\tthis.Disabled = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.InVisible = false;\n\t\t\t\t\t\t\tthis.Disabled = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.cdRef.detectChanges();\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.Subscriptions['permissions'] =\n\t\t\t\t\tPermissionHelper.ActiveContentPermissions.subscribe((permissions) => {\n\t\t\t\t\t\tif (permissions) {\n\t\t\t\t\t\t\tif (permissions[this.Component.ID]) {\n\t\t\t\t\t\t\t\tthis.InVisible = permissions[this.Component.ID].InVisible;\n\t\t\t\t\t\t\t\tif (this.InVisible && this.Component.Initialized) {\n\t\t\t\t\t\t\t\t\tthis.Component.Initialized.next(true);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.Disabled = permissions[this.Component.ID].Disabled;\n\t\t\t\t\t\t\t\tif (this.Disabled) {\n\t\t\t\t\t\t\t\t\tthis.Component.Editable = false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.InVisible = false;\n\t\t\t\t\t\t\t\tthis.Disabled = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.InVisible = false;\n\t\t\t\t\t\t\tthis.Disabled = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.cdRef.detectChanges();\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tngAfterViewInit(): void {\n\t\t//this.RenderContent();\n\t\tthis.ApplyIntersection();\n\t}\n\n\tngOnDestroy(): void {\n\t\tconst keys = Object.keys(this.Subscriptions);\n\t\tkeys.forEach((key) => {\n\t\t\tthis.Subscriptions[key].unsubscribe();\n\t\t});\n\t\tif (this.leMainDIV && this.HandlesIntersection) {\n\t\t\tthis.HandlesIntersection = false;\n\t\t\tIntersectionHelper.Unobserve(this.leMainDIV.nativeElement);\n\t\t}\n\t}\n\n\tcreateInjector(dataToPass): PortalInjector {\n\t\tconst injectorTokens = new WeakMap();\n\t\tinjectorTokens.set(LayoutService.CONTAINER_DATA, dataToPass);\n\t\treturn new PortalInjector(this._injector, injectorTokens);\n\t}\n\n\tRenderContent() {\n\t\tif (\n\t\t\t!this.Initialized &&\n\t\t\tthis.Component &&\n\t\t\tthis.Component.ElementType &&\n\t\t\tREGISTRY[this.Component.ElementType] &&\n\t\t\tthis.LayoutValue\n\t\t) {\n\t\t\tthis.Initialized = true;\n\t\t\t//let start = moment();\n\t\t\tthis.ReadTableProperties().then(() => {\n\t\t\t\t//let end = moment();\n\t\t\t\tthis.Component.MetaTableProperties = this.MetaTableProperties;\n\t\t\t\tthis.selectedPortal = new ComponentPortal(\n\t\t\t\t\tREGISTRY[this.Component.ElementType].Control,\n\t\t\t\t\tnull,\n\t\t\t\t\tthis.createInjector({\n\t\t\t\t\t\tLayout: this.LayoutValue,\n\t\t\t\t\t\tDisabled: this.Disabled,\n\t\t\t\t\t\tDataSource: this.GetSourceValue(),\n\t\t\t\t\t\tLayoutElement: this.Component,\n\t\t\t\t\t\tParent: this.Parent,\n\t\t\t\t\t\tFromBaseLayout: this.FromBaseLayout,\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t\tthis.cdRef.detectChanges();\n\t\t\t});\n\t\t}\n\t}\n\tComponentAttached(event) {\n\t\tthis.componentRef = event;\n\t\t//this.componentRef.instance.Layout = this.Layout;\n\t\t//this.componentRef.instance.Disabled = this.Disabled;\n\t\t//this.componentRef.instance.DataSource = this.GetSourceValue();\n\t\t//this.componentRef.instance.LayoutElement = this.Component;\n\t\tthis.componentRef.instance.SetProperties().subscribe();\n\t\t//this.componentRef.instance.Parent = this.Parent;\n\t\t//this.componentRef.instance.FromBaseLayout = this.FromBaseLayout;\n\t\tthis.Subscriptions['PropertyChanged'] =\n\t\t\tLayoutService.PropertyChanged.subscribe((prop) => {\n\t\t\t\tif (this.MetaTableProperties) {\n\t\t\t\t\tlet mtp = this.MetaTableProperties.Fields.find(\n\t\t\t\t\t\t(value) =>\n\t\t\t\t\t\t\tvalue.Name == prop.PropertyName &&\n\t\t\t\t\t\t\tvalue.ID == this.Component.DataSource\n\t\t\t\t\t);\n\t\t\t\t\tif (mtp) {\n\t\t\t\t\t\tthis.componentRef.instance.DataSource = this.GetSourceValue();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.RefreshCount += 1;\n\t\t\t\tthis.cdRef.detectChanges();\n\t\t\t});\n\t\t//this.Subscriptions['ValuesChanged'] = this.Component.ValuesChanged.subscribe((prop) => {\n\t\t// this.RefreshCount += 1;\n\t\t// this.cdRef.detectChanges();\n\t\t//});\n\t\tthis.Subscriptions['WorkflowStyleChanged'] =\n\t\t\tthis.Component.WorkflowStyleChanged.subscribe((prop) => {\n\t\t\t\tthis.RefreshCount += 1;\n\t\t\t\tthis.cdRef.detectChanges();\n\t\t\t});\n\t\tthis.componentRef.instance.DataSourceChange.subscribe((val) => {\n\t\t\tthis.RefreshDataSource(val);\n\t\t});\n\t\tthis.componentRef.instance.StyleChange.subscribe((lay) => {\n\t\t\tthis.RefreshCount += 1;\n\t\t\tthis.cdRef.detectChanges();\n\t\t});\n\t\tthis.RefreshCount += 1;\n\t\tthis.cdRef.detectChanges();\n\t}\n\t//#endregion\n\tRefreshDataSource(val) {\n\t\tif (this.LastSourceValue !== val) {\n\t\t\tif (this.MetaTableProperties) {\n\t\t\t\tif (this.MetaTableProperties.SID === this.Component.DataSource) {\n\t\t\t\t\tthis.DataSourceValue = val;\n\t\t\t\t\tthis.LastSourceValue = val;\n\t\t\t\t} else if (this.DataSourceValue) {\n\t\t\t\t\tthis.MetaTableProperties.Fields.some((prop) => {\n\t\t\t\t\t\tif (prop.ID === this.Component.DataSource) {\n\t\t\t\t\t\t\tif (this.DataSourceValue[prop.Name] !== val) {\n\t\t\t\t\t\t\t\tif ((prop.Default != null && val == null) || val === '') {\n\t\t\t\t\t\t\t\t\tif (prop.IsList) {\n\t\t\t\t\t\t\t\t\t\tthis.DataSourceValue[prop.Name] = [prop.Default];\n\t\t\t\t\t\t\t\t\t\tthis.componentRef.instance.DataSource = [prop.Default];\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tthis.DataSourceValue[prop.Name] = prop.Default;\n\t\t\t\t\t\t\t\t\t\tthis.componentRef.instance.DataSource = prop.Default;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tthis.DataSourceValue[prop.Name] = val;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis.LastSourceValue = this.DataSourceValue[prop.Name];\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tReadTableProperties() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (!this.MetaTableProperties && this.Layout && this.Component) {\n\t\t\t\tMetaHelper.FindTablePropertiesSub(\n\t\t\t\t\tthis.Layout,\n\t\t\t\t\tthis.Component\n\t\t\t\t).subscribe((result) => {\n\t\t\t\t\tthis.MetaTableProperties = result;\n\t\t\t\t\tresolve(true);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tresolve(true);\n\t\t\t}\n\t\t});\n\t}\n\n\tGetSourceValue() {\n\t\tlet retVal = null;\n\t\tif (this.DataSourceValue) {\n\t\t\tretVal = this.DataSourceValue;\n\t\t\tif (\n\t\t\t\tthis.MetaTableProperties &&\n\t\t\t\tthis.MetaTableProperties.SID !== this.Component.DataSource\n\t\t\t) {\n\t\t\t\tconst field = this.MetaTableProperties.Fields.find(\n\t\t\t\t\t(prop) => prop.ID === this.Component.DataSource\n\t\t\t\t);\n\t\t\t\tif (field) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tfield.Default != null &&\n\t\t\t\t\t\tthis.DataSourceValue[field.Name] == null\n\t\t\t\t\t) {\n\t\t\t\t\t\tif (field.IsList) {\n\t\t\t\t\t\t\tthis.DataSourceValue[field.Name] = [field.Default];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.DataSourceValue[field.Name] = field.Default;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tretVal = this.DataSourceValue[field.Name];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.LastSourceValue = retVal;\n\t\treturn retVal;\n\t}\n\t_LabelClass = 'above';\n\tget LabelClass() {\n\t\treturn this._LabelClass;\n\t}\n\tset LabelClass(value) {\n\t\tthis._LabelClass = value;\n\t\tthis.cdRef.detectChanges();\n\t}\n\t//#region Hover\n\tCheckLE() {\n\t\tif (this.Layout && this.Component) {\n\t\t\tlet layout = document.getElementById('LE_' + this.Layout.ID);\n\t\t\tlet component = document.getElementById('LE_' + this.Component.ID);\n\t\t\tif (layout && component) {\n\t\t\t\tlet layoutRect = layout.getBoundingClientRect();\n\t\t\t\tlet componentRect = component.getBoundingClientRect();\n\t\t\t\tif (\n\t\t\t\t\tcomponentRect.y == layoutRect.y &&\n\t\t\t\t\tcomponentRect.height == layoutRect.height\n\t\t\t\t) {\n\t\t\t\t\tthis.LabelClass = '';\n\t\t\t\t} else if (componentRect.y - 30 <= layoutRect.y) {\n\t\t\t\t\tthis.LabelClass = 'below';\n\t\t\t\t} else {\n\t\t\t\t\tthis.LabelClass = 'above';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate getEdge(event: MouseEvent, element: HTMLElement) {\n\t\tconst offset = 10;\n\t\tconst rect = element.getBoundingClientRect();\n\t\tconst { clientX: x, clientY: y } = event;\n\t\tconst { top, bottom, left, right } = rect;\n\n\t\tif (y <= top + offset) {\n\t\t\treturn 'top';\n\t\t}\n\n\t\tif (y >= bottom - offset) {\n\t\t\treturn 'bottom';\n\t\t}\n\n\t\tif (x <= left + offset) {\n\t\t\treturn 'left';\n\t\t}\n\n\t\tif (x >= right - offset) {\n\t\t\treturn 'right';\n\t\t}\n\t}\n\tprivate handleEdge(\n\t\tedge: 'left' | 'right' | 'top' | 'bottom',\n\t\tevent: MouseEvent\n\t): void {\n\t\t// if (edge === 'right' || edge === 'bottom') {\n\t\t// \tthis.updateElementDimensions(event);\n\t\t// }\n\t\tthis.updateElementDimensions(event);\n\t}\n\tShowResizeEdges = false;\n\tOnMounseEnter() {\n\t\tif (this.shouldStartResize()) {\t\n\t\t\tthis.ShowResizeEdges = true;\n\t\t}\n\t}\n\tOnMounseLeave() {\n\t\tif (this.shouldStartResize()) {\t\n\t\t\tthis.ShowResizeEdges = false;\n\t\t}\n\t}\n\t@ViewChild('resizableElement') resizableElement: ElementRef;\n\tprivate isResizing = false;\n\tprivate startX: number;\n\tprivate startY: number;\n\tprivate startWidth: number;\n\tprivate startHeight: number;\n\n\t@HostListener('mousemove', ['$event'])\n\tonMouseMove(event: MouseEvent): void {\n\t\tconst edge = this.getEdge(event, this.resizableElement.nativeElement);\n\t\tthis.handleEdge(edge, event);\n\t}\n\n\t@HostListener('mouseup', ['$event'])\n\tonMouseUp(event: MouseEvent): void {\n\t\tif (this.isResizing) {\n\t\t\tthis.isResizing = false;\n\t\t}\n\t}\n\t@HostListener('mouseleave', ['$event'])\n\tonMouseLeave(event: MouseEvent): void {\n\t\tthis.isResizing = false;\n\t}\n\t@HostListener('mousedown', ['$event'])\n\tonMouseDown(event: MouseEvent): void {\n\t\tthis.startResize(event);\n\t}\n\tprivate shouldStartResize(): boolean {\n\t\treturn (\n\t\t\tthis.Component &&\n\t\t\t!this.isSpecialElementType() &&\n\t\t\tthis.Component.ViewType == ViewType.Edit &&\n\t\t\t!this.TriggerEvents\n\t\t);\n\t}\n\n\tprivate isSpecialElementType(): boolean {\n\t\tconst specialElementTypes = [\n\t\t\t'grid',\n\t\t\t'bootstrapgrid',\n\t\t\t'bootstraprepeat',\n\t\t\t'flex',\n\t\t\t'repeat',\n\t\t\t'raster',\n\t\t\t'canvas',\n\t\t\t'expansionpanel',\n\t\t];\n\t\treturn specialElementTypes.includes(this.Component.ElementType);\n\t}\n\n\tstartResize(event: MouseEvent): void {\n\t\tif (this.shouldStartResize()) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tthis.isResizing = true;\n\t\t\tthis.startX = event.clientX;\n\t\t\tthis.startY = event.clientY;\n\n\t\t\tthis.startWidth = this.convertToPixels(this.Component.Width, 'Width');\n\t\t\tthis.startHeight = this.convertToPixels(this.Component.Height, 'Height');\n\t\t}\n\t}\n\n\tprivate convertToPixels(\n\t\tdimension: LayoutUnit,\n\t\tproperty: 'Width' | 'Height'\n\t): number {\n\t\tif (dimension?.Type === undefined) {\n\t\t\tconst parentValue = this.getParentSize(property);\n\t\t\treturn parentValue;\n\t\t}\n\n\t\tswitch (dimension.Type) {\n\t\t\tcase UnitType.Pixel:\n\t\t\t\treturn dimension.Value;\n\n\t\t\tcase UnitType.Percent:\n\t\t\t\tconst parentValue = this.getParentSize(property);\n\t\t\t\tconst convertedValue = (Number(dimension.Value) / 100) * parentValue;\n\t\t\t\treturn convertedValue;\n\n\t\t\tcase UnitType.em:\n\t\t\t\tconst fontSize = this.getStylePropertyValue(\n\t\t\t\t\t'font-size',\n\t\t\t\t\tthis.resizableElement.nativeElement\n\t\t\t\t);\n\t\t\t\treturn Number(dimension.Value) * parseFloat(fontSize.split('px')[0]);\n\n\t\t\tcase UnitType.vw:\n\t\t\t\tconst viewportWidth = Math.max(\n\t\t\t\t\tdocument.documentElement.clientWidth || 0,\n\t\t\t\t\twindow.innerWidth || 0\n\t\t\t\t);\n\t\t\t\treturn (Number(dimension.Value) / 100) * viewportWidth;\n\n\t\t\tcase UnitType.vh:\n\t\t\t\tconst viewportHeight = Math.max(\n\t\t\t\t\tdocument.documentElement.clientHeight || 0,\n\t\t\t\t\twindow.innerHeight || 0\n\t\t\t\t);\n\t\t\t\treturn (Number(dimension.Value) / 100) * viewportHeight;\n\n\t\t\tdefault:\n\t\t\t\treturn (parentValue / 100) * parentValue;\n\t\t}\n\t}\n\tprivate getParentSize(property: 'Width' | 'Height'): number {\n\t\tconst parentElement = this.resizableElement.nativeElement.parentElement;\n\t\tif (parentElement && property === 'Width') return parentElement.clientWidth;\n\t\treturn parentElement.clientHeight;\n\t}\n\n\tprivate updateElementDimensions(event: MouseEvent): void {\n\t\tif (this.isResizing) {\n\t\t\tconst newWidth = this.startWidth + (event.clientX - this.startX);\n\t\t\tconst newHeight = this.startHeight + (event.clientY - this.startY);\n\n\t\t\tconst parentWidth =\n\t\t\t\tthis.resizableElement.nativeElement.parentElement.clientWidth;\n\t\t\tconst parentHeight =\n\t\t\t\tthis.resizableElement.nativeElement.parentElement.clientHeight;\n\n\t\t\tthis.updateDimension(\n\t\t\t\t'Width',\n\t\t\t\tnewWidth,\n\t\t\t\tparentWidth,\n\t\t\t\tthis.Component.Width\n\t\t\t);\n\t\t\tthis.updateDimension(\n\t\t\t\t'Height',\n\t\t\t\tnewHeight,\n\t\t\t\tparentHeight,\n\t\t\t\tthis.Component.Height\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate updateDimension(\n\t\tproperty: 'Width' | 'Height',\n\t\tnewValue: number,\n\t\tparentSize: number,\n\t\tcurrentDimension: LayoutUnit\n\t): void {\n\t\tif (currentDimension?.Type === undefined) {\n\t\t\tcurrentDimension = new LayoutUnit();\n\t\t\tcurrentDimension.Type = UnitType.Pixel;\n\t\t\tcurrentDimension.Value = newValue;\n\t\t\tthis.renderer.setStyle(\n\t\t\t\tthis.resizableElement.nativeElement,\n\t\t\t\tproperty,\n\t\t\t\t`${newValue}px`\n\t\t\t);\n\t\t\tthis.Component[property] = currentDimension;\n\t\t\treturn;\n\t\t}\n\n\t\tconst propertyToSet = property === 'Width' ? 'width' : 'height';\n\n\t\tthis.renderer.setStyle(\n\t\t\tthis.resizableElement.nativeElement,\n\t\t\tpropertyToSet,\n\t\t\t`${newValue}px`\n\t\t);\n\n\t\tconst convertedValue = this.convertPxToUnit(\n\t\t\tnewValue,\n\t\t\tcurrentDimension.Type,\n\t\t\tproperty\n\t\t);\n\t\tthis.Component[property] = convertedValue;\n\t\t// if (newValue <= parentSize - 10) {\n\t\t// \tthis.renderer.setStyle(this.resizableElement.nativeElement, propertyToSet, `${newValue}px`);\n\n\t\t// \tconst convertedValue = this.convertPxToUnit(newValue, currentDimension.Type, property);\n\t\t// \tthis.Component[property] = convertedValue;\n\t\t// } else {\n\t\t// \tthis.renderer.setStyle( this.resizableElement.nativeElement, propertyToSet, '100%');\n\t\t// \tthis.Component[property] = { ...currentDimension, Value: '100', Type: UnitType.Percent };\n\t\t// }\n\t}\n\n\tprivate convertPxToUnit(\n\t\tpx: number,\n\t\tunit: UnitType,\n\t\tproperty: 'Width' | 'Height'\n\t): LayoutUnit {\n\t\tconst newValue = new LayoutUnit();\n\t\tnewValue.Type = unit;\n\n\t\tswitch (unit) {\n\t\t\tcase UnitType.Pixel:\n\t\t\t\tnewValue.Value = px;\n\t\t\t\treturn newValue;\n\n\t\t\tcase UnitType.Percent:\n\t\t\t\tconst parentWidth = this.getParentSize(property);\n\t\t\t\tnewValue.Value = (px / parentWidth) * 100;\n\t\t\t\treturn newValue;\n\n\t\t\tcase UnitType.em:\n\t\t\t\tconst fontSize = this.getStylePropertyValue(\n\t\t\t\t\t'font-size',\n\t\t\t\t\tthis.resizableElement.nativeElement\n\t\t\t\t);\n\t\t\t\tnewValue.Value = px / parseFloat(fontSize.split('px')[0]);\n\t\t\t\treturn newValue;\n\n\t\t\tcase UnitType.vw:\n\t\t\t\tconst viewportWidth = Math.max(\n\t\t\t\t\tdocument.documentElement.clientWidth || 0,\n\t\t\t\t\twindow.innerWidth || 0\n\t\t\t\t);\n\t\t\t\tnewValue.Value = (px / viewportWidth) * 100;\n\t\t\t\treturn newValue;\n\n\t\t\tcase UnitType.vh:\n\t\t\t\tconst viewportHeight = Math.max(\n\t\t\t\t\tdocument.documentElement.clientHeight || 0,\n\t\t\t\t\twindow.innerHeight || 0\n\t\t\t\t);\n\t\t\t\tnewValue.Value = (px / viewportHeight) * 100;\n\t\t\t\treturn newValue;\n\n\t\t\tdefault:\n\t\t\t\treturn newValue;\n\t\t}\n\t}\n\n\tprivate getStylePropertyValue(property: string, element: any): string {\n\t\treturn window.getComputedStyle(element).getPropertyValue(property);\n\t}\n\n\tHoverValue = false;\n\tget Hover() {\n\t\treturn this.HoverValue;\n\t}\n\tset Hover(value) {\n\t\tif (this.HoverValue != value) {\n\t\t\tif (this.Component.ViewType === ViewType.Edit) {\n\t\t\t\tthis.HoverValue = value;\n\t\t\t\tthis.CheckLE();\n\t\t\t\tthis.cdRef.detectChanges();\n\t\t\t} else {\n\t\t\t\tthis.HoverValue = false;\n\t\t\t}\n\t\t}\n\t}\n\tFlagHoverValue = false;\n\tget FlagHover() {\n\t\treturn this.FlagHoverValue;\n\t}\n\tset FlagHover(value) {\n\t\tthis.FlagHoverValue = value;\n\t\tthis.cdRef.detectChanges();\n\t}\n\tActionsMouseEnter(event) {\n\t\tthis.FlagHover = true;\n\t\tevent.stopPropagation();\n\t}\n\tActionsMouseOut(event) {\n\t\tthis.FlagHover = false;\n\t\tevent.stopPropagation();\n\t}\n\tInternalChange = false;\n\tmouseEnter(event) {\n\t\tif (this.Component && this.Component.Element) {\n\t\t\tthis.Component.Element.triggerEvent('MouseEnter');\n\t\t}\n\t}\n\tmouseLeave(event) {\n\t\tif (this.Component && this.Component.Element) {\n\t\t\tthis.Component.Element.triggerEvent('MouseLeave');\n\t\t}\n\t}\n\tmouseOver(event) {\n\t\tevent.stopPropagation();\n\t\tif (this.Component.ViewType === ViewType.Edit) {\n\t\t\tconst BaseEdit = LayoutService.BaseLayoutEditMode.getValue();\n\t\t\tif (BaseEdit) {\n\t\t\t\tthis.Hover = true;\n\t\t\t} else if (!this.FromBaseLayout) {\n\t\t\t\tthis.Hover = true;\n\t\t\t}\n\t\t}\n\t\tthis.InternalChange = true;\n\t}\n\tmouseOut(event) {\n\t\tevent.stopPropagation();\n\t\tthis.Hover = false;\n\t}\n\t//#endregion\n\tItemClick(event) {\n\t\tif (this.Component.ViewType === ViewType.Edit) {\n\t\t\tconst BaseEdit = LayoutService.BaseLayoutEditMode.getValue();\n\t\t\tif (BaseEdit) {\n\t\t\t\tLayoutService.SelectedItem.next(this.Component);\n\t\t\t} else if (!this.FromBaseLayout) {\n\t\t\t\tLayoutService.SelectedItem.next(this.Component);\n\t\t\t}\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\tconst item = new ContextEvent();\n\t\titem.Element = this.Component;\n\t\titem.Event = event;\n\t\tthis.isBaseLayout = item.Element._Name == 'Base';\n\t\tLayoutService.HostClick.next(item);\n\t\tif (\n\t\t\tthis.Component &&\n\t\t\tthis.Component.Element &&\n\t\t\tthis.Component.Element.Editable &&\n\t\t\t!this.Component.Element.Disabled\n\t\t) {\n\t\t\tthis.Component.Element.triggerEvent('MouseClick', this.Component);\n\t\t}\n\t}\n\t//ItemDoubleClick(event) {\n\t// this.Component.Element.triggerEvent('MouseDoubleClick', this.Component);\n\t//}\n\tRightClick(event: MouseEvent) {\n\t\tconst item = new ContextEvent();\n\t\titem.Element = this.Component;\n\t\titem.Event = event;\n\t\tLayoutService.HostClick.next(item);\n\t\tevent.stopPropagation();\n\t}\n\topen(event: MouseEvent) {\n\t\tLayoutService.SelectedItem.next(this.Component);\n\n\t\tconst ev = new ContextEvent();\n\t\tev.Element = this.Component;\n\t\tev.Event = event;\n\t\tContextEventHelper.Open.next(ev);\n\n\t\tevent.stopPropagation();\n\t}\n\tNoContext(event: MouseEvent) {\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t}\n\tCheckParentDisabled() {\n\t\tif (this.ComponentValue && this.LayoutValue) {\n\t\t\tthis.ParentDisabled = MetaHelper.FindDisabledParent(\n\t\t\t\tthis.LayoutValue,\n\t\t\t\tthis.ComponentValue\n\t\t\t);\n\t\t\tthis.ValidParent = MetaHelper.FindValidParent(\n\t\t\t\tthis.Layout,\n\t\t\t\tthis.Component\n\t\t\t);\n\t\t}\n\t}\n\tValidParent = null;\n\n\tselectedMenu = null;\n\tselectedGroup = null;\n\tOpenMenu(event) {\n\t\tevent.stopPropagation();\n\t\tthis.selectedMenu = null;\n\t\tthis.selectedGroup = null;\n\t\tif (this.Component) {\n\t\t\tconst regEntry = REGISTRY[this.Component.ElementType];\n\t\t\tif (regEntry) {\n\t\t\t\tif (regEntry.MenuTab) {\n\t\t\t\t\tthis.selectedMenu = new ComponentPortal(regEntry.MenuTab, null, null);\n\t\t\t\t}\n\t\t\t\tif (regEntry.Panel) {\n\t\t\t\t\tif (PROPERTYGROUPS) {\n\t\t\t\t\t\tlet panel = PROPERTYGROUPS.find(\n\t\t\t\t\t\t\t(val) =>\n\t\t\t\t\t\t\t\tregEntry.Panel.SIDS && regEntry.Panel.SIDS.indexOf(val.SID) > -1\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.selectedGroup = panel;\n\t\t\t\t\t\tif (panel) {\n\t\t\t\t\t\t\tthis.selectedMenu = new ComponentPortal(\n\t\t\t\t\t\t\t\tpanel.Content,\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tMenuComponentAttached(event, item) {\n\t\tevent.instance.PropertyGroup = this.selectedGroup;\n\t}\n\tMenuClosed() {\n\t\tthis.selectedMenu = null;\n\t}\n\tDelete(event) {\n\t\tevent.stopPropagation();\n\t\tconst elem = LayoutService.SelectedItem.getValue();\n\t\tif (elem) {\n\t\t\tif (elem instanceof MultiLayoutElement) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet templatePath = '';\n\t\t\tconst layout = LayoutService.SelectedLayout.getValue();\n\t\t\tif (layout && layout.Workflows) {\n\t\t\t\tconst parents = MetaHelper.FindParentPath(layout, elem);\n\t\t\t\tif (parents) {\n\t\t\t\t\tparents.forEach((x) => {\n\t\t\t\t\t\tif (x.ElementType === 'template') {\n\t\t\t\t\t\t\ttemplatePath += x.Name + '.';\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tLayoutHelper.OnDeleteElement(elem, templatePath, layout, null);\n\t\t}\n\t}\n\tShowActions = false;\n\tChangeMode(event) {\n\t\tevent.stopPropagation();\n\t\tthis.ShowActions != this.ShowActions;\n\t}\n\t//#region Intersection\n\tHandlesIntersection = false;\n\t@ViewChild('leMainDIV') leMainDIV: ElementRef;\n\tApplyIntersection() {\n\t\tif (this.leMainDIV) {\n\t\t\tif (this.Component && this.Component.HandleIntersection) {\n\t\t\t\tthis.HandlesIntersection = true;\n\t\t\t\tIntersectionHelper.Observe(this.leMainDIV.nativeElement, (visible) => {\n\t\t\t\t\tif (this.componentRef) {\n\t\t\t\t\t\tthis.componentRef.instance.handleIntersection(visible);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else if (this.HandlesIntersection) {\n\t\t\t\tthis.HandlesIntersection = false;\n\t\t\t\tIntersectionHelper.Unobserve(this.leMainDIV.nativeElement);\n\t\t\t}\n\t\t}\n\t}\n\t//#endregion\n}\n","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { FormulaTextBoxThemeControl } from '../../../appbuilder/controls/formulabox/formula.textbox.theme.control';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { ACaptionGetter, DefaultCaptionGetter } from '../../../helpers/acaptiongetter';\nimport { FilterHelper } from '../../../helpers/filter.helper';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { RTLHelper } from '../../../helpers/rtl.helper';\nimport { VariablesNodeInformation } from '../../../models/basic/formulaEditor.model';\nimport { Comparer } from '../../../models/enums/comparer.enum';\nimport { Order } from '../../../models/enums/order.enum';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { RequestFilter } from '../../../models/rest/requestfilter';\nimport { RequestSort } from '../../../models/rest/requestsort';\nimport { DataService } from '../../../services/data.service';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { ComponentFilterControl } from '../../common/componentfilter/componentfilter.control';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-listbox-component',\n templateUrl: './listbox.control.html',\n styleUrls: ['./listbox.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ListBoxControl extends IBaseComponent {\n static Type: any = 'listbox';\n static Default = JSON.parse(JSON.stringify(defaultProperties.listbox));\n\n listDataSource: IListBoxDataSource;\n actualDataSource = [];\n dataSourceSub;\n DisableAutoLoad = false;\n\n get Order() {\n return this.LayoutElementValue.Order;\n }\n //#region SelectedItem\n SelectedItemValue;\n\n @Input()\n get SelectedItem() {\n return this.SelectedItemValue;\n }\n set SelectedItem(val) {\n const obsCount = this.BeforeSelectionChange.observers.length;\n if (obsCount > 0) {\n const that = this;\n const args = new BeforeSelectionArgs(obsCount, () => {\n that.SelectedItemValue = val;\n });\n this.BeforeSelectionChange.emit(args);\n } else {\n this.SelectedItemValue = val;\n }\n this.triggerEvent('selectionchanged', this.SelectedItemValue);\n this.SelectedItemChange.emit(this.SelectedItemValue);\n if (this.LayoutElementValue.UseAsSelection) {\n if (this.LayoutElementValue.IsShared && !this.LayoutElementValue.IsReverse) {\n if (this.LayoutElementValue.IsShared && !this.LayoutElementValue.IsReverse) {\n const list = [];\n this.SelectedItemValue.forEach((item) => {\n list.push(item._Id);\n });\n this.DataSourceValue = list;\n this.DataSourceChange.emit(list);\n }\n } else {\n this.DataSourceChange.emit(this.SelectedItemValue);\n }\n }\n this.ItemClicked.emit(this.SelectedItemValue);\n }\n\n @Output() SelectedItemChange = new EventEmitter();\n //#endregion\n //#region DataSource\n @Input()\n get DataSource() {\n return this.DataSourceValue;\n }\n set DataSource(val) {\n if (this.LayoutElementValue.UseAsSelection) {\n if (this.LayoutElementValue.IsShared && !this.LayoutElementValue.IsReverse) {\n const list = [];\n if (val) {\n val.forEach((item) => {\n list.push({ _Id: item });\n });\n }\n this.SelectedItemValue = list;\n } else {\n this.SelectedItemValue = val;\n }\n this.SelectedItemChange.emit(this.SelectedItemValue);\n this.cdRef.detectChanges();\n }\n this.DataSourceValue = val;\n this.triggerEvent('DataSourceChanged', this.DataSourceValue);\n this.DataSourceChange.emit(this.DataSourceValue);\n }\n\n @Output() DataSourceChange = new EventEmitter();\n //#endregion\n //#region ItemsSource\n @Input()\n get ItemsSource() {\n return this.DataSource;\n }\n set ItemsSource(val) {\n this.DataSource = val;\n this.ItemsSourceChange.emit(val);\n }\n\n @Output() ItemsSourceChange = new EventEmitter();\n //#endregion\n\n //#region DisplayMemberPath\n @Input()\n get DisplayMemberPath() {\n return this.LayoutElementValue.DisplayMemberPath;\n }\n set DisplayMemberPath(val) {\n this.LayoutElementValue.DisplayMemberPath = val;\n this.DisplayMemberPathChange.emit(this.LayoutElementValue.DisplayMemberPath);\n }\n\n @Output() DisplayMemberPathChange = new EventEmitter();\n //#endregion\n SearchValue;\n\n @Output() BeforeSelectionChange = new EventEmitter();\n @Output() ItemClicked = new EventEmitter();\n IsRtl = false;\n constructor(private dataService: DataService, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.listDataSource = new SimpleDataSource(this, { Fields: [] });\n this.EventList.push('selectionchanged');\n this.EventList.push('OnFocus');\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.Subscriptions['Values'] = this.LayoutElementValue.ValuesChanged.subscribe((Property) => {\n this.SetMaxHeight();\n this.ExecuteRefresh();\n });\n this.IsRtl = RTLHelper.Direction === 'rtl';\n this.Subscriptions['RTL'] = RTLHelper.DirectionChanged.subscribe((dir) => {\n this.IsRtl = dir === 'rtl';\n this.ExecuteRefresh();\n }); \n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n if (this.listDataSource) {\n this.listDataSource.unsubscribe();\n }\n }\n MaxHeight;\n SetMaxHeight() {\n let maxHeight;\n if (this.LayoutElementValue.MaxHeight) {\n if (typeof this.LayoutElementValue.MaxHeight.Value === 'number') {\n maxHeight = this.LayoutElementValue.MaxHeight.Value;\n } else if (this.LayoutElementValue.MaxHeight.Value) {\n maxHeight = parseInt(this.LayoutElementValue.MaxHeight.Value + '', 10);\n }\n }\n if (typeof maxHeight === 'number') {\n if (this.LayoutElementValue.ShowFilter) {\n maxHeight -= 54;\n }\n maxHeight -= 2;\n this.MaxHeight = Math.max(0, maxHeight) + 'px';\n } else {\n this.MaxHeight = null;\n }\n this.cdRef.detectChanges();\n }\n ControlInitialized() {\n if (this.LayoutElement.ControlStyling) {\n this.actualDataSource = this.LayoutElement.actualDataSource;\n return;\n }\n this.DisableAutoLoad = this.LayoutElementValue.DisableAutoLoad;\n this.SetMaxHeight();\n\n if (this.listDataSource) {\n this.listDataSource.unsubscribe();\n }\n if (this.dataSourceSub) {\n this.dataSourceSub.unsubscribe();\n }\n MetaHelper.FindDataBindingProperties(this.Layout, this.LayoutElementValue).then(result => {\n if (result) {\n if (result.IsDataBinding) {\n if (result.IsShared) {\n this.listDataSource = new SharedDataBindingSource(this, result.Table, result.KeyColumns,\n this.dataService, this.DisableAutoLoad);\n } else {\n this.listDataSource = new SimpleDataSource(this, result.Table);\n }\n } else {\n this.listDataSource = new DataSourceListSource(this, result.Table, this.dataService, this.DisableAutoLoad);\n }\n } else {\n this.listDataSource = new SimpleDataSource(this, { Fields: [] });\n }\n if (this.listDataSource) {\n this.dataSourceSub = this.listDataSource.DataSource.subscribe(x => {\n this.actualDataSource = x ?? [];\n if (this.LayoutElementValue.Multiple && this.SelectedItemValue) {\n this.SelectedItemValue = [...this.SelectedItemValue];\n }\n this.cdRef.detectChanges();\n });\n }\n this.cdRef.detectChanges();\n });\n }\n\n resetSearch() {\n this.SearchValue = '';\n this.change();\n }\n\n change() {\n if (this.listDataSource) {\n this.listDataSource.updateSearch(this.SearchValue);\n }\n }\n\n clicked() {\n this.triggerEvent('OnFocus', this.DataSource);\n }\n\n onItemClick(item) {\n if (this.SelectedItem !== item) {\n this.SelectedItem = item;\n }\n }\n setSelection(sel) {\n if (sel && sel.options) {\n const newSel = [];\n if (this.SelectedItemValue) {\n newSel.push(...this.SelectedItemValue);\n }\n sel.options.forEach(x => {\n const val = x.value;\n if (x.selected) {\n newSel.push(val);\n } else {\n let index = -1;\n newSel.some((y, i) => {\n if (this.compareSel(val, y)) {\n index = i;\n return true;\n }\n return false;\n });\n if (index > -1) {\n newSel.splice(index, 1);\n }\n }\n });\n this.SelectedItem = newSel;\n }\n }\n\n onScrollDown() {\n if (this.listDataSource) {\n this.listDataSource.onScroll();\n }\n }\n\n ExecuteRefresh() {\n this.listDataSource = null;\n setTimeout(() => { this.ControlInitialized(); }, 20);\n /*this.change();*/\n }\n\n compareSel(opt, sel): boolean {\n if (typeof opt === 'object' && typeof sel === 'object') {\n return opt._Id === sel._Id;\n }\n return opt === sel;\n }\n}\n\nexport interface IListBoxDataSource {\n DataSource: Subject;\n\n updateSearch(searchVal: string);\n onScroll();\n unsubscribe();\n}\n\nexport abstract class AListBoxDataSource implements IListBoxDataSource {\n SearchValue;\n CaptionGetter = new DefaultCaptionGetter();\n Subscriptions = [];\n\n DataSource = new Subject();\n\n constructor(protected listBox: ListBoxControl, table) {\n this.CaptionGetter = ACaptionGetter.GetCaptionGetter(listBox.LayoutElement, table.Fields);\n this.Subscriptions.push(listBox.DisplayMemberPathChange.subscribe(x => {\n this.CaptionGetter = ACaptionGetter.GetCaptionGetter(listBox.LayoutElement, table.Fields);\n }));\n }\n\n unsubscribe() {\n this.Subscriptions.forEach(x => {\n if (x.unsubscribe) {\n x.unsubscribe();\n }\n });\n }\n\n updateSearch(searchVal: string) {\n this.SearchValue = searchVal;\n this.onFilterChanged();\n }\n\n abstract onFilterChanged();\n abstract onScroll();\n\n getDisplayName(data) {\n if (this.CaptionGetter) {\n return this.CaptionGetter.GetCaption(data);\n }\n return '';\n }\n}\n\nexport class SimpleDataSource extends AListBoxDataSource {\n InternalDataSource = [];\n\n constructor(protected listBox: ListBoxControl, table) {\n super(listBox, table);\n this.dataSourceChanged();\n this.Subscriptions.push(listBox.DataSourceChange.subscribe(x => {\n this.dataSourceChanged();\n }));\n }\n\n dataSourceChanged() {\n const ds = this.listBox.DataSource;\n if (Array.isArray(ds)) {\n this.InternalDataSource = ds;\n } else {\n this.InternalDataSource = [];\n }\n this.onFilterChanged();\n }\n\n\n onFilterChanged() {\n const list = [];\n if (this.SearchValue) {\n this.InternalDataSource.forEach(x => {\n const caption = this.getDisplayName(x);\n if (caption.indexOf(this.SearchValue) > -1) {\n list.push({\n Caption: caption,\n Data: x\n });\n }\n });\n } else {\n this.InternalDataSource.forEach(x => {\n list.push({\n Caption: this.getDisplayName(x),\n Data: x\n });\n });\n }\n switch (this.listBox.Order) {\n case Order.ASC:\n list.sort((a, b) => {\n if (a.Caption < b.Caption) {\n return -1;\n }\n if (a.Caption > b.Caption) {\n return 1;\n }\n return 0;\n });\n break;\n case Order.DESC:\n list.sort((a, b) => {\n if (a.Caption < b.Caption) {\n return 1;\n }\n if (a.Caption > b.Caption) {\n return -1;\n }\n return 0;\n });\n break;\n }\n this.DataSource.next(list);\n }\n\n onScroll() {\n }\n}\n\nexport class SharedDataBindingSource extends AListBoxDataSource {\n DataSourceID;\n DataSourceElement;\n FilterKeys = [];\n\n constructor(protected listBox: ListBoxControl, table, private keyCols: string[], private dS: DataService, private DisableAutoLoad) {\n super(listBox, table);\n this.DataSourceID = table.SID;\n this.DataSourceElement = MetaHelper.FindValidParent(listBox.Layout, listBox.LayoutElement);\n this.FilterKeys = listBox.DataSource;\n this.onFilterChanged();\n this.Subscriptions.push(listBox.DataSourceChange.subscribe(x => {\n this.FilterKeys = x;\n this.onFilterChanged();\n }));\n }\n\n onFilterChanged() {\n this.DataSource.next([]);\n if (!this.DisableAutoLoad) {\n this.LoadData();\n }\n this.DisableAutoLoad = false;\n }\n\n onScroll() {\n }\n\n LoadData() {\n if (this.FilterKeys != null) {\n const keyFilter = new RequestFilter();\n if (this.keyCols && this.keyCols.length === 1) {\n keyFilter.Name = this.keyCols[0];\n keyFilter.Operator = Comparer.Equal;\n } else {\n if (this.FilterKeys.length === 0) {\n return;\n }\n keyFilter.Name = '_Id';\n keyFilter.Operator = Comparer.In;\n }\n keyFilter.Value = this.FilterKeys;\n const filter = FilterHelper.PrepareFilter(this.DataSourceElement);\n if (this.listBox.DisplayMemberPath) {\n if (this.SearchValue) {\n const search = new RequestFilter();\n search.Name = this.listBox.DisplayMemberPath;\n search.Operator = Comparer.Like;\n search.Value = this.SearchValue;\n FilterHelper.AddSearchFilter(filter, search);\n }\n if (this.listBox.Order != null) {\n const sort = new RequestSort();\n sort.Name = this.listBox.DisplayMemberPath;\n sort.Order = this.listBox.Order;\n filter.Sort = [sort];\n }\n }\n FilterHelper.AddSearchFilter(filter, keyFilter);\n this.dS.SearchObjects('dynamicdata', this.DataSourceID, filter).subscribe((data) => {\n if (data) {\n const list = [];\n data.forEach(x => {\n list.push({\n Caption: this.getDisplayName(x),\n Data: x\n });\n });\n this.DataSource.next(list);\n }\n });\n }\n }\n}\n\nexport class DataSourceListSource extends AListBoxDataSource {\n DataSourceID;\n DataSourceElement;\n pageIndex = 0;\n pageLength = 100;\n loaded = false;\n InternalDataSource = [];\n\n constructor(protected listBox: ListBoxControl, table, private dataService: DataService, private DisableAutoLoad) {\n super(listBox, table);\n this.DataSourceID = table.SID;\n this.DataSourceElement = MetaHelper.FindValidParent(listBox.Layout, listBox.LayoutElement);\n if (!DisableAutoLoad) {\n this.LoadData(true);\n }\n DisableAutoLoad = false;\n }\n\n onFilterChanged() {\n this.pageIndex = 0;\n this.loaded = false;\n this.InternalDataSource = [];\n this.DataSource.next(this.InternalDataSource);\n this.LoadData(true);\n }\n\n onScroll() {\n this.LoadData(false);\n }\n\n LoadData(shouldRemoveDuplication:Boolean) {\n if (!this.loaded && this.DataSourceID) {\n const filter = FilterHelper.PrepareFilter(this.DataSourceElement);\n if (this.listBox.DisplayMemberPath) {\n if (this.SearchValue) {\n const search = new RequestFilter();\n search.Name = this.listBox.DisplayMemberPath;\n search.Operator = Comparer.Like;\n search.Value = this.SearchValue;\n FilterHelper.AddSearchFilter(filter, search);\n }\n if (this.listBox.Order != null) {\n const sort = new RequestSort();\n sort.Name = this.listBox.DisplayMemberPath;\n sort.Order = this.listBox.Order;\n filter.Sort = [sort];\n }\n }\n filter.StartRow = this.pageIndex * this.pageLength;\n filter.EndRow = filter.StartRow + this.pageLength;\n this.dataService.SearchObjects('dynamicdata', this.DataSourceID, filter).subscribe((data) => {\n this.pageIndex += 1;\n if (data && data.length > 0) {\n const list = [];\n data.forEach(x => {\n list.push({\n Caption: this.getDisplayName(x),\n Data: x\n });\n });\n if (shouldRemoveDuplication) {\n this.InternalDataSource = list;\n this.pageIndex = 1;\n } else {\n this.InternalDataSource = [...this.InternalDataSource, ...list];\n }\n this.DataSource.next(this.InternalDataSource);\n } else {\n this.loaded = true;\n }\n });\n }\n }\n}\n\nexport class BeforeSelectionArgs {\n private observerCount: number;\n private onFinish;\n private cancel = false;\n\n constructor(observerCount: number, onFinish: any) {\n this.observerCount = observerCount;\n this.onFinish = onFinish;\n }\n\n set(cancel: boolean) {\n if (cancel) {\n this.cancel = true;\n }\n this.observerCount--;\n if (this.observerCount === 0 && !this.cancel && typeof this.onFinish === 'function') {\n this.onFinish();\n }\n }\n}\n\nexport class ListBoxPanel extends BasePanel {\n static override SIDS = ['6eb4dd49-9ce8-4a76-82ce-48eac9edbd06']\n static override ElementType = 'listbox';\n private static DisplayMemberPathSub: BehaviorSubject = new BehaviorSubject(null);\n private static VariablesSub: BehaviorSubject = new BehaviorSubject(null);\n private static TableProperties;\n static override SetSelectedItem(item) {\n ListBoxPanel.ReadTableProperties();\n }\n static override SetSelectedLayout(item) {\n ListBoxPanel.ReadTableProperties();\n }\n static InitPanel() {\n this.InitSelectedItem();\n this.InitSelectedLayout();\n PROPERTYGROUPS.push({\n SID: '6eb4dd49-9ce8-4a76-82ce-48eac9edbd06',\n ID: 'listbox',\n Caption: '@@ListBox',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'listbox';\n }\n });\n\n PROPERTIES.push({\n ID: \"DisplayMemberPath\",\n Parent: \"listbox\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@DisplayMemberPath\",\n CheckVisibility: (item) => {\n return ListBoxPanel.TableProperties && ListBoxPanel.TableProperties.Fields;\n },\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSourceSub: ListBoxPanel.DisplayMemberPathSub,\n ValueMemberPath: \"Name\",\n DisplayMemberPath: \"TranslatedCaption\"\n }\n });\n PROPERTIES.push({\n ID: \"DisplayFormula\",\n Parent: \"listbox\",\n Content: new ComponentPortal(FormulaTextBoxThemeControl),\n Label: \"@@Erweiterte Anzeige\",\n CheckVisibility: (item) => {\n return ListBoxPanel.TableProperties && ListBoxPanel.TableProperties.Fields;\n },\n InitArgs: {\n Placeholder: \"@@Erweiterte Anzeige\",\n VariablesSub: ListBoxPanel.VariablesSub\n }\n });\n PROPERTIES.push({\n ID: \"DisplayMemberPath\",\n Parent: \"listbox\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@DisplayMemberPath\",\n CheckVisibility: (item) => {\n return !ListBoxPanel.TableProperties || (ListBoxPanel.TableProperties && !ListBoxPanel.TableProperties.Fields);\n }\n });\n PROPERTIES.push({\n ID: \"Order\",\n Parent: \"listbox\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Order\",\n InitArgs: {\n Placeholder: \"\",\n Multiple: false,\n EnumSource: Order\n }\n });\n PROPERTIES.push({\n ID: \"UseAsSelection\",\n Parent: \"listbox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@UseAsSelection\"\n },\n CheckVisibility: (item) => {\n return item.IsShared && item.Multiple;\n }\n });\n PROPERTIES.push({\n ID: \"Multiple\",\n Parent: \"listbox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Multiple\"\n }\n });\n PROPERTIES.push({\n ID: \"Checkbox\",\n Parent: \"listbox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Checkbox\"\n },\n CheckVisibility: (item) => {\n return item.Multiple;\n }\n });\n PROPERTIES.push({\n ID: \"DisableAutoLoad\",\n Parent: \"listbox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@DisableAutoLoad\"\n }\n });\n PROPERTIES.push({\n ID: \"ShowFilter\",\n Parent: \"listbox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@ShowFilter\"\n }\n });\n PROPERTIES.push({\n ID: \"Grow\",\n Parent: \"listbox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Grow\"\n }\n });\n PROPERTIES.push({\n ID: \"Filter\",\n Parent: \"listbox\",\n Content: new ComponentPortal(ComponentFilterControl)\n });\n }\n static ReadTableProperties() {\n if (ListBoxPanel.SelectedItem && ListBoxPanel.SelectedLayout) {\n ListBoxPanel.TableProperties = null;\n MetaHelper.FindDataBindingProperties(ListBoxPanel.SelectedLayout, ListBoxPanel.SelectedItem).then(result => {\n if (result) {\n ListBoxPanel.TableProperties = result.Table;\n const fields = result.Table.Fields;\n if (fields) {\n const variables = [];\n fields.forEach(field => {\n const vni = new VariablesNodeInformation();\n vni.VariableID = field.ID;\n vni.Name = field.TranslatedCaption;\n variables.push(vni);\n });\n ListBoxPanel.VariablesSub.next(variables);\n }\n let fieldscopy = JSON.stringify(ListBoxPanel.TableProperties.Fields)\n let DisplayMemberFields = JSON.parse(fieldscopy);\n DisplayMemberFields.unshift({ Name: \"\", TranslatedCaption: \"@@Keine Auswahl\" });\n ListBoxPanel.DisplayMemberPathSub.next(DisplayMemberFields);\n LayoutService.LayoutChanged.next(null);\n }\n });\n }\n }\n}\n","import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'evi-listbox',\n templateUrl: './simple.listbox.control.html',\n styleUrls: ['./listbox.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SimpleListBoxControl {\n\n //#region SelectedItem\n SelectedItemValue;\n\n @Input()\n get SelectedItem() {\n return this.SelectedItemValue;\n }\n set SelectedItem(val) {\n if (this.SelectedItemValue !== val) {\n this.SelectedItemValue = val;\n this.SelectedItemChange.emit(this.SelectedItemValue);\n }\n }\n\n @Output() SelectedItemChange = new EventEmitter();\n //#endregion\n\n //#region ItemsSource\n ItemsSourceValue = [];\n\n @Input()\n get ItemsSource() {\n return this.ItemsSourceValue;\n }\n set ItemsSource(val) {\n this.ItemsSourceValue = val;\n this.ItemsSourceChange.emit(val);\n }\n\n @Output() ItemsSourceChange = new EventEmitter();\n //#endregion\n\n //#region DisplayMemberPath\n DisplayMemberPathValue;\n\n @Input()\n get DisplayMemberPath() {\n return this.DisplayMemberPathValue;\n }\n set DisplayMemberPath(val) {\n this.DisplayMemberPathValue = val;\n this.DisplayMemberPathChange.emit(this.DisplayMemberPathValue);\n }\n\n @Output() DisplayMemberPathChange = new EventEmitter();\n //#endregion\n\n\n @Output() ItemClicked = new EventEmitter();\n\n onItemClick(item) {\n if (this.SelectedItem !== item) {\n this.SelectedItem = item;\n this.ItemClicked.emit(item);\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { NotificationHelper } from '../../../helpers/notification.helper';\nimport { LayoutElement } from '../../../models/layoutelement.model';\nimport { DynamicDataService } from '../../../services/dynamicdata.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-listdetail',\n templateUrl: './listdetail.control.html',\n styleUrls: ['./listdetail.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ListDetailControl extends IBaseComponent {\n\n static Type: any = 'listdetail';\n static Default = JSON.parse(JSON.stringify(defaultProperties.listdetail));\n\n //#region SelectedItem\n SelectedItemValue;\n\n @Input()\n get SelectedItem() {\n return this.SelectedItemValue;\n }\n set SelectedItem(val) {\n this.SelectedItemValue = val;\n this.SelectedItemChange.emit(this.SelectedItemValue);\n }\n @Output() SelectedItemChange = new EventEmitter();\n //#endregion\n\n //#region ItemsSource\n ItemsSourceValue;\n\n @Input()\n get ItemsSource() {\n return this.ItemsSourceValue;\n }\n set ItemsSource(val) {\n this.ItemsSourceValue = val;\n this.ItemsSourceChange.emit(this.ItemsSourceValue);\n }\n\n @Output() ItemsSourceChange = new EventEmitter();\n //#endregion\n\n //#region Caption\n CaptionValue;\n\n @Input()\n get Caption() {\n return this.CaptionValue;\n }\n set Caption(val) {\n this.CaptionValue = val;\n this.CaptionChange.emit(this.CaptionValue);\n }\n\n @Output() CaptionChange = new EventEmitter();\n //#endregion\n\n //#region DraggedItem\n DraggedItemValue;\n\n @Input()\n get DraggedItem() {\n return this.DraggedItemValue;\n }\n set DraggedItem(val) {\n this.DraggedItemValue = val;\n this.DraggedItemChange.emit(this.DraggedItemValue);\n }\n\n @Output() DraggedItemChange = new EventEmitter();\n //#endregion\n\n MetaTableProperties;\n\n constructor(private service: DynamicDataService, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.EventList.push('selectionchanged');\n }\n\n ControlInitialized() {\n MetaHelper.FindTableProperties(this.LayoutValue, this.LayoutElementValue).then(result => {\n this.MetaTableProperties = result;\n });\n }\n\n add() {\n this.SelectedItem = {};\n }\n\n save() {\n if (this.MetaTableProperties) {\n this.service.SaveEntry(this.MetaTableProperties.SID, this.SelectedItem).subscribe((data) => {\n if (data) {\n if (data.Success) {\n Object.assign(this.SelectedItem, data.UpdateValues);\n if (data.IsNewEntry) {\n this.ItemsSource.push(this.SelectedItem);\n }\n this.SelectedItem = null;\n } else {\n NotificationHelper.Error(data.Error, '@@Error');\n }\n }\n });\n }\n }\n delete() {\n if (this.MetaTableProperties) {\n this.service.DeleteEntry(this.MetaTableProperties.SID, this.SelectedItem._Id).subscribe((data) => {\n if (data) {\n NotificationHelper.Error('Data could not be deleted. (' + data + ')', '@@Error');\n } else {\n this.ItemsSource.splice(this.ItemsSource.indexOf(this.SelectedItem), 1);\n this.SelectedItem = null;\n }\n });\n }\n }\n\n getLayoutElement(prop) {\n const retVal = new LayoutElement();\n retVal['Placeholder'] = prop.TranslatedCaption;\n retVal.Editable = !prop.IsReadOnly;\n switch (prop.Type) {\n // Text\n case '9b056ce1-ffb9-4168-9e00-977449f2f66d':\n retVal.ElementType = 'textbox';\n retVal['InputType'] = 'text';\n break;\n // Datum\n case 'cfcb4295-9d1e-49b4-b466-3fe74d1b0c69':\n case '397767a9-9711-49cd-adb7-76678fff16bf':\n case 'f696d7f4-fa0b-4664-84d7-3f9bab8c99b7':\n retVal.ElementType = 'datetimepicker';\n break;\n // Bool\n case '02414483-3194-474d-a3d1-0a1a8a36a9e0':\n retVal.ElementType = 'checkbox';\n retVal['Caption'] = prop.TranslatedCaption;\n break;\n // Enum\n case '876cf188-243b-49ed-91ab-b2cf27216a30':\n retVal.ElementType = 'combobox';\n retVal['IsEnum'] = true;\n retVal['DataSourceID'] = prop.AdvancedType;\n retVal['DisplayMemberPath'] = 'Caption';\n retVal['ValueMemberPath'] = 'Value';\n break;\n // Nummer\n case 'a2eb35c4-56d5-4acc-a58e-ef855cb5086b':\n case 'c02230ee-05fb-46d2-ab58-5b9dde1f32d5':\n case 'a4299f61-eb3f-4b29-8c4e-144458d17048':\n retVal.ElementType = 'textbox';\n retVal['InputType'] = 'number';\n break;\n // TranslationText\n case 'A0C232A9-4AB7-444C-A7E2-D23899A5673B':\n retVal.ElementType = 'translationtextbox';\n break;\n // User\n case 'a236172b-9aaa-4211-9fe9-b57daf3f3a29':\n case '07b8fdec-641d-48b7-b491-ca13af4b59c5':\n case '919a5bff-675a-435c-b0c6-6d1076ae9156':\n retVal.ElementType = 'autocomplete';\n retVal['DataSourceID'] = 'a236172b-9aaa-4211-9fe9-b57daf3f3a29';\n retVal['DisplayMemberPath'] = 'DisplayName';\n retVal['ValueMemberPath'] = '_Id';\n retVal.Editable = false;\n break;\n }\n return retVal;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { LayoutService } from '../../../services/layout.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'loading',\n templateUrl: 'loading.component.html',\n styleUrls: ['loading.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LoadingComponent extends IBaseComponent {\n\n static Type: any = 'loading';\n static Default = JSON.parse(JSON.stringify(defaultProperties.loading));\n\n EditMode = false;\n IsComponent = false;\n\n @Input() status;\n\n ControlInitialized() {\n this.IsComponent = true;\n this.EditMode = LayoutService.OverlayStatus.getValue();\n this.Subscriptions['Overlay'] = LayoutService.OverlayStatus.subscribe((overlay) => {\n this.EditMode = overlay;\n });\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { SecurityService } from '../../../services/security.service';\nimport { UsersService } from '../../../services/users.service';\n\n@Component({\n selector: 'login',\n templateUrl: './login.control.html',\n styleUrls: ['./login.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LoginControl {\n error = false;\n showCredentials = true;\n selectedProvider;\n SecurityProviderTypes;\n credentials = {\n UserName: '',\n Password: '',\n ProviderId: null\n };\n loading = {\n status: false,\n text: 'Loading ...'\n };\n isScanner = false;\n\n constructor(private usersService: UsersService, private securityService: SecurityService) {\n this.securityService.GetSecurityProviders().subscribe((types) => {\n if (types) {\n this.SecurityProviderTypes = types;\n let found = false;\n this.SecurityProviderTypes.forEach((provider) => {\n if (provider.IsDefault) {\n this.credentials.ProviderId = provider.Id;\n if (provider.Url) {\n found = true;\n }\n if (provider.Type === '31e75470-8458-48e5-af70-d8a6e8840b37') {\n this.isScanner = true;\n found = true;\n }\n this.selectedProvider = provider;\n }\n })\n this.showCredentials = !found;\n }\n });\n }\n\n onKeydown(event) {\n if (event.key === 'Enter') {\n this.login();\n }\n }\n\n login() {\n this.loading.status = true;\n if (!this.showCredentials && !this.isScanner) {\n window.location.href = (this.selectedProvider.Url + '&state=' + this.credentials.ProviderId + '|' + window.location.href);\n } else {\n this.usersService.executeLogin(this.credentials).then(x => {\n this.loading.status = false;\n this.error = !x;\n });\n }\n }\n\n selectionChanged() {\n\n if (this.SecurityProviderTypes) {\n this.isScanner = false;\n let found = false;\n this.SecurityProviderTypes.forEach((provider) => {\n if (provider.Id == this.credentials.ProviderId) {\n if (provider.Url) {\n found = true;\n }\n if (provider.Type === '31e75470-8458-48e5-af70-d8a6e8840b37') {\n this.isScanner = true;\n found = true;\n }\n this.selectedProvider = provider;\n }\n })\n this.showCredentials = !found;\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input } from '@angular/core';\nimport { UUID } from 'angular2-uuid';\nimport { TranslateFormatText } from '../../../helpers/array.helpers';\nimport { MessageBoxButtons } from '../../../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../../../models/enums/messageboxicon.enum';\nimport { MessageBoxResult } from '../../../models/enums/messageboxresult.enum';\nimport { ElementProperty } from '../../../models/layoutbase.model';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MessageBoxHelper } from '../../dialogs/messagebox/messagebox.dialog';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'marker',\n templateUrl: './marker.control.html',\n styleUrls: ['./marker.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MarkerControl extends IBaseComponent {\n\n static Type: any = 'marker';\n static Default = JSON.parse(JSON.stringify(defaultProperties.marker));\n\n markers: MarkerItem[] = [];\n\n @Input()\n get MarkerPositions(): MarkerPosition[] {\n const list = [];\n this.markers.forEach(x => {\n list.push(x.Position);\n });\n return list;\n }\n set MarkerPositions(val: MarkerPosition[]) {\n const list = [];\n if (val) {\n val.forEach(x => {\n list.push(new MarkerItem(x));\n });\n }\n this.markers = list;\n }\n\n get SelectedMarkerID(): any {\n const selected = this.markers.find(x => x.Selected);\n if (selected) {\n return selected.Position.ID;\n }\n return null;\n }\n set SelectedMarkerID(val: any) {\n this.markers.forEach(x => x.Selected = false);\n const selected = this.markers.find(x => x.Position.ID == val);\n if (selected) {\n selected.Selected = true;\n }\n }\n\n constructor(cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.EventList.push('OnMarkCompleted');\n this.EventList.push('OnMarkAdded');\n this.EventList.push('OnMarkSelected');\n this.EventList.push('OnMarkDeleted');\n this.EventList.push('OnMarkModified');\n this.PropertyList.push(new ElementProperty('MarkerPositions', 'object', '@@Markierungen'));\n this.PropertyList.push(new ElementProperty('SelectedMarkerID', 'object', '@@Auswahl'));\n }\n\n ControlInitialized() {\n }\n\n onDragOffsetEnd(ev, m) {\n if (ev && m && m.Position) {\n m.Position.X += ev.x;\n m.Position.Y += ev.y;\n const index = this.markers.indexOf(m);\n if (index > -1) {\n this.markers.splice(index, 1);\n window.setTimeout(() => {\n this.markers.push(m);\n this.cdRef.detectChanges();\n }, 50);\n }\n this.triggerEvent('OnMarkModified', m.Position);\n }\n }\n\n onResize(ev, m) {\n if (ev && m && m.Position) {\n if (ev.direction.n) {\n m.Position.Y += m.Position.Height - ev.size.height;\n }\n if (ev.direction.w) {\n m.Position.X += m.Position.Width - ev.size.width;\n }\n m.Position.Height = ev.size.height;\n m.Position.Width = ev.size.width;\n this.triggerEvent('OnMarkModified', m.Position);\n }\n }\n\n onMarkerClick(ev, m) {\n if (ev && m && this.Editable && !this.Disabled) {\n if (!m.Selected) {\n this.markers.forEach(x => x.Selected = false);\n m.Selected = true;\n this.triggerEvent('OnMarkSelected', m.Position);\n }\n ev.stopPropagation();\n }\n }\n\n addmarker() {\n const newMarker = new MarkerPosition();\n newMarker.X = 100;\n newMarker.Y = 100;\n newMarker.Width = 100;\n newMarker.Height = 100;\n newMarker.ID = UUID.UUID();\n this.markers.push(new MarkerItem(newMarker));\n this.triggerEvent('OnMarkAdded', newMarker);\n }\n\n deletemarker() {\n const sel = this.markers.find(x => x.Selected);\n if (sel) {\n MessageBoxHelper.ShowDialog(new TranslateFormatText('@@Wollen Sie die Markierung wirklich loeschen?'),\n new TranslateFormatText('@@Markierung loeschen'), MessageBoxButtons.YesNo, MessageBoxIcon.Question).then((res) => {\n if (res === MessageBoxResult.Yes) {\n const deleteMarkIndex = this.markers.indexOf(sel);\n if (deleteMarkIndex > -1) {\n this.markers.splice(deleteMarkIndex, 1);\n this.triggerEvent('OnMarkDeleted', sel.Position.ID);\n this.cdRef.detectChanges();\n }\n }\n });\n }\n }\n\n confirmmarker() {\n this.triggerEvent('OnMarkCompleted', this.MarkerPositions);\n }\n\n onControlClick() {\n this.markers.forEach(x => x.Selected = false);\n this.triggerEvent('OnMarkSelected', null);\n }\n}\n\nexport class MarkerPosition {\n X = 0.0;\n Y = 0.0;\n Height = 0.0;\n Width = 0.0;\n ID: any;\n}\n\nexport class MarkerItem {\n Position: MarkerPosition;\n Selected = false;\n\n constructor(pos: MarkerPosition) {\n this.Position = pos;\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Inject, OnInit, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { NotificationHelper } from '../../../helpers/notification.helper';\nimport { MessageType } from '../../../models/enums/messagetype.enum';\nimport { LayoutService } from '../../../services/layout.service';\nimport { IBaseComponent } from '../base.component';\nimport { MessageCenterDialog } from './messagecenter.dialog';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-messagecenter',\n templateUrl: './messagecenter.control.html',\n styleUrls: ['./messagecenter.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MessageCenterControl extends IBaseComponent {\n\n static Type: any = 'messagecenter';\n static Default = JSON.parse(JSON.stringify(defaultProperties.messagecenter));\n\n @ViewChild('button', { read: ElementRef }) button: ElementRef;\n Count = 0;\n ColorStyle = {};\n\n constructor(private dialog: MatDialog, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.Subscriptions['ReceivedMessages'] = NotificationHelper.ReceivedMessages.subscribe(x => {\n let count = 0;\n let style = {};\n if (x) {\n x.forEach(rm => {\n if (!rm.Read) {\n if (count === 0) {\n switch (rm.MessageType) {\n case MessageType.Error:\n style['background'] = 'rgb(244,67,54)';\n break;\n case MessageType.Information:\n style['background'] = 'rgb(31,135,229)';\n break;\n case MessageType.Success:\n style['background'] = 'rgb(77,174,81)';\n break;\n case MessageType.Warning:\n style['background'] = 'rgb(254,152,2)';\n break;\n }\n }\n count++;\n }\n });\n }\n this.Count = count;\n this.ColorStyle = style;\n this.cdRef.detectChanges();\n });\n }\n\n ControlInitialized() {\n }\n\n open() {\n this.dialog.open(MessageCenterDialog, { panelClass: 'MessageCenterDialog', data: {} });\n }\n\n setFocus() {\n if (this.button && this.button.nativeElement) {\n this.button.nativeElement.focus();\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { TranslateService } from '@ngx-translate/core';\nimport { TranslateHelper } from '../../../helpers/injector.helper';\nimport { NetworkConnection } from '../../../helpers/network.helpers';\nimport { NotificationHelper } from '../../../helpers/notification.helper';\nimport { OfflineHelper } from '../../../helpers/offline.helper';\nimport { MessageType } from '../../../models/enums/messagetype.enum';\nimport { SyncStatus } from '../../../models/enums/syncstatus.enum';\nimport { ReceivedMessage } from '../../../models/notification/receivedmessage.model';\nimport { MonacoPreviewDialog } from '../../dialogs/monacopreview/monaco.preview.dialog';\nimport moment from 'moment';\nimport config from '../../../../assets/config.json';\n@Component({\n selector: 'evi-messagecenterdialog',\n templateUrl: './messagecenter.dialog.html',\n styleUrls: ['./messagecenter.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MessageCenterDialog implements OnInit, OnDestroy {\n\n MessageTypes = [];\n SelectedMessageType = -1;\n SelectedMessage: MessageCenterMessage;\n\n OfflinePossible;\n Online = false;\n\n Subscriptions = [];\n SyncDate;\n Changes;\n AllMessages = [];\n Messages = [];\n\n constructor(private dialogRef: MatDialogRef, private translate: TranslateService,\n @Inject(MAT_DIALOG_DATA) public data: any) {\n this.MessageTypes.push({ Caption: '@@Alle', Value: -1 });\n this.MessageTypes.push({ Caption: '@@Information', Value: MessageType.Information });\n this.MessageTypes.push({ Caption: '@@Exception', Value: MessageType.Error });\n this.MessageTypes.push({ Caption: '@@Warning', Value: MessageType.Warning });\n this.MessageTypes.push({ Caption: '@@Success', Value: MessageType.Success });\n this.SelectedMessageType = this.MessageTypes[0].Value;\n\n this.OfflinePossible = false;\n let settings: any = localStorage.getItem(\"GeneralSettings\");\n if (settings) {\n settings = JSON.parse(settings);\n }\n if (settings != null) {\n if (settings.Offline && settings.Offline.Active) {\n this.OfflinePossible = true;\n }\n }\n }\n isHaveJobAccess = true;\n ngOnInit(): void {\n const userRole = JSON.parse(localStorage.getItem('user'))?.Roles;\n if (userRole && userRole.length > 0 && userRole[0] === config.FREE_USER_ID) {\n this.isHaveJobAccess = false;\n\t\t}\n OfflineHelper.LoadChanges();\n this.Changes = OfflineHelper.Changes;\n this.Subscriptions.push(NetworkConnection.Online.subscribe((online) => {\n this.Online = online;\n }));\n this.Subscriptions.push(NotificationHelper.ReceivedMessages.subscribe(x => {\n if (x) {\n this.AllMessages = [...x];\n } else {\n this.AllMessages = [];\n }\n this.filterMessages();\n }));\n }\n\n ngOnDestroy(): void {\n this.Subscriptions.forEach(x => {\n x.unsubscribe();\n });\n }\n\n filterMessages() {\n const messages = [];\n if (this.SelectedMessageType < 0) {\n this.AllMessages.forEach(x => {\n messages.push(new MessageCenterMessage(x));\n });\n } else {\n this.AllMessages.forEach(x => {\n if (x.MessageType === this.SelectedMessageType) {\n messages.push(new MessageCenterMessage(x));\n }\n });\n }\n this.Messages = messages;\n }\n\n okClicked() {\n this.dialogRef.close();\n }\n\n clearClicked() {\n this.SelectedMessage = null;\n NotificationHelper.ClearMessages();\n }\n\n messageTypeClicked() {\n this.SelectedMessage = null;\n this.filterMessages();\n }\n\n onItemClick(item) {\n if (this.SelectedMessage !== item) {\n this.SelectedMessage = item;\n this.SelectedMessage.setRead();\n }\n }\n\n copy() {\n if (this.SelectedMessage) {\n const selBox = document.createElement('textarea');\n selBox.style.position = 'fixed';\n selBox.style.left = '0';\n selBox.style.top = '0';\n selBox.style.opacity = '0';\n selBox.value = this.SelectedMessage.getMessageCopyText();\n document.body.appendChild(selBox);\n selBox.focus();\n selBox.select();\n document.execCommand('copy');\n document.body.removeChild(selBox);\n }\n }\n\n ResetDB() {\n OfflineHelper.DeleteDB().then((result) => {\n OfflineHelper.GenerateDB();\n OfflineHelper.StartClientSync(null);\n });\n }\n StartClientSync() {\n OfflineHelper.StartClientSync(new Date(this.SyncDate));\n }\n StartServerSync() {\n OfflineHelper.StartServerSync();\n }\n OpenDocument(item) {\n let args = {\n Document: JSON.stringify(item.Item, null, '\\t')\n }\n if (item.Status == SyncStatus.Error) {\n args['Original'] = JSON.stringify(item.Original, null, '\\t');\n }\n MonacoPreviewDialog.ShowDialog(args, '@@DocumentPreview');\n }\n\n GetIcon(item) {\n let retVal = \"\";\n switch (item.Status) {\n case SyncStatus.Success: retVal = \"sync_success\"; break;\n case SyncStatus.Waiting: retVal = \"sync_waiting\"; break;\n case SyncStatus.Processing: retVal = \"sync_processing\"; break;\n case SyncStatus.Error: retVal = \"sync_error\"; break;\n }\n return retVal;\n }\n ItemAction(item) {\n if (item.Status == SyncStatus.Waiting) {\n item.Status = SyncStatus.Processing;\n OfflineHelper.SyncSingleDocument(item.ContainerID, item.Item).then((result) => {\n if (result && result['Success']) {\n item.Status = SyncStatus.Success;\n } else {\n item.Status = SyncStatus.Error;\n if (result.Document) {\n item.Original = JSON.parse(result.Document);\n }\n }\n })\n }\n }\n TakeOffline(item) {\n if (item && item.Item) {\n OfflineHelper.ForceSyncDocument(item, 'Item').then((result) => {\n if (result && result['Success']) {\n item.Status = SyncStatus.Success;\n } else {\n item.Status = SyncStatus.Error;\n if (result.Document) {\n item.Original = JSON.parse(result.Document);\n }\n }\n });\n }\n }\n TakeOnline(item) {\n if (item && item.Original) {\n OfflineHelper.ForceSyncDocument(item, 'Original').then((result) => {\n if (result && result['Success']) {\n item.Status = SyncStatus.Success;\n } else {\n item.Status = SyncStatus.Error;\n if (result.Document) {\n item.Original = JSON.parse(result.Document);\n }\n }\n });\n }\n }\n}\n\nexport class MessageCenterMessage {\n private static Styles = {\n 0: { background: 'rgb(77,174,81)' },\n 1: { background: 'rgb(254,152,2)' },\n 2: { background: 'rgb(244,67,54)' },\n 3: { background: 'rgb(31,135,229)' }\n };\n\n Title;\n ShortTitle;\n MediumTitle;\n CreateDateTextShort;\n Content;\n ContentShort;\n Style;\n get Read() {\n return this.message.Read;\n }\n\n constructor(private message: ReceivedMessage) {\n this.Title = message.Title;\n if (this.Title && this.Title.length > 25) {\n this.ShortTitle = this.Title.substring(0, 22) + '...';\n if (this.Title.length > 60) {\n this.MediumTitle = this.Title.substring(0, 57) + '...';\n } else {\n this.MediumTitle = this.Title;\n }\n } else {\n this.ShortTitle = this.Title;\n this.MediumTitle = this.Title;\n }\n this.CreateDateTextShort = moment(message.CreateDate).format('LLLL');\n if (this.CreateDateTextShort && this.CreateDateTextShort.length > 150) {\n this.CreateDateTextShort = this.CreateDateTextShort.substring(0, 147) + '...';\n }\n this.Content = message.Content;\n if (this.Content && this.Content.length > 150) {\n this.ContentShort = this.Content.substring(0, 147) + '...';\n } else {\n this.ContentShort = this.Content;\n }\n this.Style = MessageCenterMessage.Styles[message.MessageType];\n }\n\n setRead() {\n this.message.Read = true;\n }\n\n getMessageCopyText() {\n const translate = TranslateHelper.TranslatorInstance;\n let text = translate.instant('@@Titel:') + ' ' + this.message.Title + '\\n\\n';\n text += translate.instant('@@Zeit:') + ' ' + this.message.CreateDate.toString() + '\\n\\n';\n text += translate.instant('@@Nachricht:') + ' ' + this.message.Content;\n return text;\n }\n}\n","import { OnInit, Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from \"@angular/core\";\n\n@Component({\n selector: 'evi-navigationtree',\n templateUrl: './navigationtree.control.html',\n styleUrls: ['./navigationtree.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NavigationTreeControl implements OnInit {\n\n //#region ItemsSource\n ItemsSourceValue;\n\n @Input()\n get ItemsSource() {\n return this.ItemsSourceValue;\n }\n set ItemsSource(val) {\n this.ItemsSourceValue = val;\n this.ItemsSourceChange.emit(this.ItemsSourceValue);\n }\n\n @Output() ItemsSourceChange = new EventEmitter();\n //#endregion\n\n constructor() {\n }\n\n ngOnInit(): void {\n\n }\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { PermissionHelper } from '../../../helpers/permissions.helper';\nimport { SideNavService } from '../../../services/sidenav.service';\n\n\n@Component({\n selector: 'evi-navigationtree-item',\n templateUrl: './navigationtree.item.html',\n styleUrls: ['./navigationtree.item.css'],\n animations: [\n trigger('animateRow', [\n transition(':enter', [\n style({ backgroundColor: 'yellow' }),\n animate(300)\n ]),\n transition(':leave', [\n animate(300, style({ backgroundColor: 'yellow' }))\n ]),\n state('*', style({ backgroundColor: 'green' })),\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NavigationTreeItem implements OnInit, OnDestroy {\n\n //#region Item\n ItemValue;\n\n @Input()\n get Item() {\n return this.ItemValue;\n }\n set Item(val) {\n this.ItemValue = val;\n this.ItemChange.emit(this.ItemValue);\n }\n\n @Output() ItemChange = new EventEmitter();\n //#endregion\n\n Subscriptions = {};\n HasVisibleChildren = false;\n\n ngOnInit(): void {\n this.Subscriptions['ActiveNavigationPermissions'] = PermissionHelper.ActiveNavigationPermissions.subscribe((perm) => {\n if (perm) {\n const actPerm = perm[this.ItemValue.Id];\n if (actPerm != null) {\n this.ItemValue.InVisible = actPerm;\n } else {\n this.ItemValue.InVisible = false;\n }\n this.HasVisibleChildren = this.ItemValue.children && this.ItemValue.children.some(x => {\n if (x.IsVisible) {\n const childPerm = perm[this.ItemValue.Id];\n if (childPerm != null) {\n return !childPerm;\n }\n return true;\n }\n return false;\n });\n } else {\n this.ItemValue.InVisible = false;\n this.HasVisibleChildren = this.ItemValue.children && this.ItemValue.children.some(x => x.IsVisible);\n }\n });\n }\n\n ngOnDestroy(): void {\n const keys = Object.keys(this.Subscriptions);\n keys.forEach((key) => {\n this.Subscriptions[key].unsubscribe();\n });\n }\n\n //#region ToolTip\n ShowToolTip;\n enter(event: MouseEvent) {\n if (event.target['offsetWidth'] < event.target['scrollWidth']) {\n this.ShowToolTip = true;\n } else {\n this.ShowToolTip = false;\n }\n }\n //#endregion\n\n closeNav() {\n SideNavService.Close.next(null);\n }\n}\n","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, DoCheck, EventEmitter, Inject, Input, KeyValueDiffers, Output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { FileSelectionThemeControl } from '../../../appbuilder/controls/fileselection/fileselection.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { CacheService } from '../../../cache/cache.service';\nimport { InjectorHelper } from '../../../helpers/injector.helper';\nimport { MediaSource } from '../../../models/datamodel/mediasource.model';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { MenuTabLabelPosition } from '../../../models/menutab/menutab.property.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MediaService } from '../../../services/media.service';\nimport { FileExplorerDialog } from '../../fileexplorer/fileexplorer.dialog';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-objectviewer',\n templateUrl: './objectviewer.control.html',\n styleUrls: ['./objectviewer.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ObjectViewerControl extends IBaseComponent {\n\n static Type: any = 'objectviewer';\n static Default = JSON.parse(JSON.stringify(defaultProperties.objectviewer));\n\n URL;\n\n //#region MediaSource\n MediaSourceValue;\n @Input()\n get MediaSource() {\n return this.MediaSourceValue;\n }\n set MediaSource(val) {\n this.MediaSourceValue = val;\n this.MediaSourceChange.emit(this.MediaSourceValue);\n }\n\n @Output() MediaSourceChange = new EventEmitter();\n //#endregion\n\n //#region DataSource\n DataSourceValue;\n\n @Input()\n get DataSource() {\n return this.DataSourceValue;\n }\n set DataSource(val) {\n this.DataSourceValue = val;\n if (this.LayoutElement && this.LayoutElement.DataSource) {\n this.CreateUrl();\n }\n this.triggerEvent('DataSourceChanged', this.DataSourceValue);\n this.DataSourceChange.emit(this.DataSourceValue);\n }\n\n @Output() DataSourceChange = new EventEmitter();\n //#endregion\n differ;\n Sources;\n constructor(private mediaService: MediaService, private dialog: MatDialog, private sanitizer: DomSanitizer, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.EventList.push('objectFileUploaded');\n this.EventList.push('click');\n }\n ControlInitialized() {\n this.CreateUrl();\n }\n ngOnInit(): void {\n this.CreateUrl();\n super.ngOnInit();\n }\n\n onLayoutElementChanged() {\n if (!this.Editable) {\n this.CreateUrl();\n }\n }\n //BuildStyle(element, result) {\n // //result['display'] = 'flex';\n // //result['width'] = '100%';\n // //result['height'] = '100%';\n // // result['overflow'] = 'hidden';\n // super.BuildStyle(element, result);\n // //result['overflow'] = 'hidden';\n //}\n\n\n CreateUrl() {\n if (this.LayoutElement) {\n if (this.LayoutElement.UseForBlob) {\n this.URL = this.DataSource;\n this.cdRef.detectChanges();\n } else if (this.LayoutElement.MediaSource) {\n CacheService.ReadMediaSource(this.LayoutElement.MediaSource).then((source) => {\n let fileName = this.LayoutElement.FileName;\n if (this.LayoutElement.DataSource) {\n if (this.DataSourceValue) {\n fileName = this.DataSourceValue;\n }\n }\n if (fileName) {\n if (source.Private) {\n this.mediaService.LoadImage(source.SID, fileName).subscribe((file) => {\n this.URL = file;\n this.cdRef.detectChanges();\n });\n } else {\n const url = MediaSource.GetURL(source, fileName + '?a=' + Math.random());\n this.URL = this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n } else {\n this.URL = '';\n }\n this.cdRef.detectChanges();\n });\n }\n }\n }\n\n chooseObjectFile() {\n if (this.Editable && this.LayoutElement && this.LayoutElement.MediaSource) {\n const dialogRef = this.dialog.open(FileExplorerDialog, {\n panelClass: 'fileexplorer-dialog-container',\n data: {\n MediaSourceID: this.LayoutElement.MediaSource,\n ImageInstance: this\n }\n });\n dialogRef.afterClosed().subscribe(result => {\n if (result) {\n this.DataSource = result;\n }\n });\n }\n }\n\n deleteObjectFile() {\n if (this.Editable) {\n this.DataSource = null;\n }\n }\n\n onFileUploaded(ev) {\n this.triggerEvent('objectFileUploaded', ev);\n }\n\n onClick() {\n this.triggerEvent('click');\n }\n}\nexport class ObjectViewerPanel extends BasePanel {\n static override SIDS = ['37d11954-bf64-41a0-b6c4-f4dce709ce2e']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'37d11954-bf64-41a0-b6c4-f4dce709ce2e',\n ID: 'objectviewer',\n Caption: '@@Dateiviewer',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'objectviewer';\n }\n })\n // PROPERTIES.push({\n // ID: \"UseForBlob\",\n // Parent: \"objectviewer\",\n // Content: new ComponentPortal(CheckBoxThemeControl),\n // InitArgs: {\n // Caption: \"@@UseForBlob\"\n // },\n // Row: 1\n // })\n\n let mediaService = InjectorHelper.InjectorInstance.get(MediaService);\n mediaService.GetUsable().subscribe((data) => {\n PROPERTIES.push({\n ID: \"MediaSource\",\n Parent: \"objectviewer\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@SelectMediaSource\",\n Row: 2,\n CheckVisibility: (item) => {\n return !item.UseForBlob;\n },\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: data,\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'SID'\n }\n })\n });\n PROPERTIES.push({\n ID: \"FileName\",\n Parent: \"objectviewer\",\n Content: new ComponentPortal(FileSelectionThemeControl),\n CheckVisibility: (item) => {\n return !item.UseForBlob && item.MediaSource;\n },\n Row: 3\n })\n }\n}","import { IBaseComponent } from '../base.component';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { MenuTabLabelPosition } from '../../../models/menutab/menutab.property.model';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-page-index',\n templateUrl: './page.index.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PageIndexComponent extends IBaseComponent {\n static Type: any = 'pageindex';\n static Default = JSON.parse(JSON.stringify(defaultProperties.pageindex));\n\n ControlInitialized() {\n }\n}\nexport class PageIndexPanel extends BasePanel {\n static override SIDS = ['6311bcb6-4997-43da-9264-c3bf15604066']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'6311bcb6-4997-43da-9264-c3bf15604066',\n ID: 'pageindex',\n Caption: '@@Seitenzahl',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'pageindex';\n }\n })\n\n PROPERTIES.push({\n ID: \"ShowPageCount\",\n Parent: \"pageindex\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Gesamtseitenzahl anzeigen\"\n }\n })\n }\n}","import { IBaseComponent } from '../base.component';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { MenuTabLabelPosition } from '../../../models/menutab/menutab.property.model';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-sum-component',\n templateUrl: './sum.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SumComponent extends IBaseComponent {\n static Type: any = 'sumcomponent';\n static Default = JSON.parse(JSON.stringify(defaultProperties.sumcomponent));\n\n ControlInitialized() {\n }\n}\nexport class SumPanel extends BasePanel{\n static override SIDS = ['f30bad42-3d50-4158-99a4-2c53ae5fea2d']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'f30bad42-3d50-4158-99a4-2c53ae5fea2d',\n ID: 'sumcomponent',\n Caption: '@@Summe',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'sumcomponent';\n }\n })\n\n PROPERTIES.push({\n ID: \"ShowCarryOver\",\n Parent: \"sumcomponent\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Uebertrag anzeigen\"\n }\n })\n }\n}","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { FileSelectionThemeControl } from '../../../appbuilder/controls/fileselection/fileselection.theme.control';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { TogglebuttongroupThemeControl } from '../../../appbuilder/controls/togglebuttongroup/togglebuttongroup.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { CacheService } from '../../../cache/cache.service';\nimport { InjectorHelper } from '../../../helpers/injector.helper';\nimport { MediaSource } from '../../../models/datamodel/mediasource.model';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { MenuTabLabelPosition } from '../../../models/menutab/menutab.property.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MediaService } from '../../../services/media.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-pdfviewer',\n templateUrl: './pdfviewer.control.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PDFViewerControl extends IBaseComponent {\n static Type: any = 'pdfviewer';\n static Default = JSON.parse(JSON.stringify(defaultProperties.pdfviewer));\n\n URL;\n PDFLoaded = false;\n\n //#region DataSource\n DataSourceValue;\n @Input()\n get DataSource() {\n return this.DataSourceValue;\n }\n set DataSource(val) {\n this.DataSourceValue = val;\n if (this.Editable) {\n this.CreateUrl();\n }\n this.triggerEvent('DataSourceChanged', this.DataSourceValue);\n this.DataSourceChange.emit(this.DataSourceValue);\n }\n\n @Output() DataSourceChange = new EventEmitter();\n //#endregion\n\n constructor(private mediaService: MediaService, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.EventList.push('PDFLoaded');\n this.EventList.push('PagesInitialized');\n }\n\n ControlInitialized() {\n this.CreateUrl();\n }\n onLayoutElementChanged() {\n this.CreateUrl();\n }\n CreateUrl() {\n if (this.LayoutElementValue && this.LayoutElementValue.MediaSource) {\n CacheService.ReadMediaSource(this.LayoutElementValue.MediaSource).then((source) => {\n let fileName = this.LayoutElementValue.FileName;\n if (this.Editable) {\n if (this.DataSourceValue) {\n fileName = this.DataSourceValue;\n }\n }\n if (fileName) {\n if (source.Private) {\n this.mediaService.LoadImage(source.SID, fileName).subscribe((file) => {\n this.URL = file;\n this.cdRef.detectChanges();\n });\n } else {\n this.URL = MediaSource.GetURL(source, fileName + '?a=' + Math.random());\n }\n } else {\n this.URL = '';\n }\n this.cdRef.detectChanges();\n });\n }\n }\n\n onLoaded(ev) {\n this.PDFLoaded = true;\n this.triggerEvent('PDFLoaded', ev);\n }\n\n onPages(ev) {\n this.triggerEvent('PagesInitialized', ev);\n }\n}\nexport class PdfViewerPanel extends BasePanel{\n static override SIDS = ['377bf13f-3e7a-4c91-82e4-2e1025bb42af']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'377bf13f-3e7a-4c91-82e4-2e1025bb42af',\n ID: 'pdfviewer',\n Caption: '@@PDFViewer',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'pdfviewer';\n }\n })\n let mediaService = InjectorHelper.InjectorInstance.get(MediaService);\n mediaService.GetUsable().subscribe((data) => {\n PROPERTIES.push({\n ID: \"MediaSource\",\n Parent: \"pdfviewer\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@SelectMediaSource\",\n Row: 1,\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: data,\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'SID'\n }\n })\n });\n PROPERTIES.push({\n ID: \"FileName\",\n Parent: \"pdfviewer\",\n Content: new ComponentPortal(FileSelectionThemeControl),\n Row: 2,\n CheckVisibility: (item) => {\n return item.MediaSource;\n }\n })\n PROPERTIES.push({\n ID: \"ShowSinglePage\",\n Parent: \"pdfviewer\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Show single page\"\n },\n Row: 3,\n CheckVisibility: (item) => {\n return item.MediaSource;\n }\n })\n PROPERTIES.push({\n ID: \"PageToShow\",\n Parent: \"pdfviewer\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Page to show\",\n Row: 4,\n CheckVisibility: (item) => {\n return item.ShowSinglePage && item.MediaSource;\n },\n InitArgs: {\n InputType: \"number\",\n Minimum:1\n }\n });\n let rotation = [{\n Caption: '0°',\n Value: '0'\n }, {\n Caption: '90°',\n Value: '90'\n }, {\n Caption: '180°',\n Value: '180'\n }, {\n Caption: '270°',\n Value: '270'\n }]\n\n PROPERTIES.push({\n ID: \"PDFRotation\",\n Parent: \"pdfviewer\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Rotation\",\n Row: 5,\n InitArgs: {\n Placeholder: \"@@Select...\",\n Multiple: false,\n ItemsSource: rotation,\n ValueMemberPath: \"Value\",\n DisplayMemberPath: \"Caption\"\n },\n CheckVisibility: (item) => {\n return item.MediaSource;\n }\n });\n PROPERTIES.push({\n ID: \"PageAlignment\",\n Parent: \"pdfviewer\",\n Content: new ComponentPortal(TogglebuttongroupThemeControl),\n Label: \"@@Page alignment\",\n LabelPosition: MenuTabLabelPosition.Top,\n Row: 6,\n InitArgs: {\n Multiple: false,\n Buttons: [{\n ButtonIcon: \"align_left\",\n Value: 0,\n Tooltip: \"@@LeftJustified\"\n }, {\n ButtonIcon: \"align_center\",\n Value: 1,\n Tooltip: \"@@Centered\"\n }, {\n ButtonIcon: \"align_right\",\n Value: 2,\n Tooltip: \"@@RightJustified\"\n }]\n },\n CheckVisibility: (item) => {\n return item.MediaSource;\n }\n });\n }\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject } from '@angular/core';\nimport { LayoutService } from '../../../services/layout.service';\nimport { UserSettingsService } from '../../../services/usersettings.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-profile-management',\n templateUrl: './profilemanagement.control.html',\n styleUrls: ['./profilemanagement.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ProfileManagementControl extends IBaseComponent {\n\n static Type: any = 'profilemanagement';\n static Default = JSON.parse(JSON.stringify(defaultProperties.profilemanagement)); \n\n constructor(private usersettingsService: UserSettingsService, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.EventList.push('valuechanged');\n }\n\n ProfileVariables;\n LayoutVariables;\n\n SelectedProfile;\n NewProfile;\n Profiles = [];\n ControlInitialized() {\n this.LoadVariables();\n this.LoadProfiles();\n }\n LoadVariables() {\n if (this.Layout && this.Layout.ProfileVariables) {\n this.ProfileVariables = this.Layout.ProfileVariables;\n }\n if (this.Layout && this.Layout.Variables) {\n this.LayoutVariables = this.Layout.Variables;\n }\n this.cdRef.detectChanges();\n }\n\n LoadProfiles() {\n if (this.LayoutElement.ControlStyling) {\n this.Profiles = this.LayoutElement.Profiles;\n this.cdRef.detectChanges();\n return;\n }\n this.usersettingsService.ReadProfileByLayout(this.Layout._Id).subscribe((profiles) => {\n this.Profiles = profiles;\n this.cdRef.detectChanges();\n });\n }\n\n Add() {\n this.NewProfile = {\n Name: 'NewProfile',\n LayoutID: this.Layout._Id\n }\n }\n Save() {\n if (this.NewProfile) {\n this.usersettingsService.CreateProfile(this.NewProfile).subscribe(() => {\n this.SelectedProfile = this.NewProfile;\n this.NewProfile = null;\n\n this.SaveVariables();\n this.LoadProfiles();\n })\n } else {\n this.SaveVariables();\n }\n }\n Delete() {\n if (this.SelectedProfile) {\n this.usersettingsService.RemoveByLayoutProfile(this.Layout._Id, this.SelectedProfile.Name).subscribe(() => {\n this.usersettingsService.DeleteProfile(this.SelectedProfile.ID).subscribe(() => {\n this.SelectedProfile = null;\n this.LoadProfiles();\n });\n })\n }\n }\n\n SaveVariables() {\n this.LoadVariables();\n this.usersettingsService.SaveValues(this.ProfileVariables, this.Layout._Id, this.SelectedProfile.Name);\n }\n ProfileChanged() {\n if (!this.LayoutElement.ControlStyling) { \n this.usersettingsService.ChangeProfile(this.Layout._Id, this.SelectedProfile.Name).then(() => {\n this.cdRef.detectChanges();\n this.triggerEvent('valuechanged');\n });\n }\n }\n}\n","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { QRErrorCorrectionLevel } from '../../../models/enums/errorcorrectionlevel.enum';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'qr',\n templateUrl: 'qr.component.html',\n styleUrls: ['qr.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class QRComponent extends IBaseComponent {\n\n static Type: any = 'qr';\n static Default = JSON.parse(JSON.stringify(defaultProperties.qr));\n ErrorCorrectionLevelValue:any = QRErrorCorrectionLevel.M;\n get ErrorCorrectionLevel() {\n if (this.LayoutElementValue) {\n return QRErrorCorrectionLevel[this.LayoutElementValue.ErrorCorrectionLevel];\n } else {\n return QRErrorCorrectionLevel[this.ErrorCorrectionLevelValue];\n }\n }\n set ErrorCorrectionLevel(value) {\n if (this.LayoutElementValue) {\n this.LayoutElementValue.ErrorCorrectionLevel = value;\n } else {\n this.ErrorCorrectionLevelValue = value;\n }\n }\n\n WidthValue = 256;\n get Width() {\n if (this.LayoutElementValue) {\n return this.LayoutElementValue.QRSize;\n } else {\n return this.WidthValue;\n }\n }\n set Width(value) {\n if (this.LayoutElementValue) {\n this.LayoutElementValue.QRSize = value;\n } else {\n this.WidthValue = value;\n }\n }\n\n PixelPerModuleValue = 20;\n get PixelPerModule() {\n if (this.LayoutElementValue) {\n return this.LayoutElementValue.PixelPerModule;\n } else {\n return this.PixelPerModuleValue;\n }\n }\n set PixelPerModule(value) {\n if (this.LayoutElementValue) {\n this.LayoutElementValue.PixelPerModule = value;\n } else {\n this.PixelPerModuleValue = value;\n }\n }\n\n @Input() status;\n\n ControlInitialized() {\n }\n}\nexport class QRPanel extends BasePanel {\n static override SIDS = ['b3568934-7794-47d7-86da-ae0192035a27']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'b3568934-7794-47d7-86da-ae0192035a27',\n ID: 'QR',\n Caption: '@@QR',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'qr';\n }\n })\n\n PROPERTIES.push({\n ID: \"QRSize\",\n Parent: \"QR\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Size\",\n InitArgs: {\n InputType: \"number\",\n Minimum: 0,\n Step: 1\n }\n });\n PROPERTIES.push({\n ID: \"PixelPerModule\",\n Parent: \"QR\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Pixel per Module\",\n InitArgs: {\n InputType: \"number\",\n Minimum: 0,\n Step: 1\n }\n });\n PROPERTIES.push({\n ID: \"ErrorCorrectionLevel\",\n Parent: \"QR\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@ErrorCorrectionLevel\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: QRErrorCorrectionLevel\n }\n })\n\n }\n}","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output, ViewChild, ViewChildren } from '@angular/core';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ListBoxThemeControl } from '../../../appbuilder/controls/listbox/listbox.theme.control';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { TranslationTextBoxThemeControl } from '../../../appbuilder/controls/translation/translation.textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { CacheService } from '../../../cache/cache.service';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { MenuTabLabelPosition } from '../../../models/menutab/menutab.property.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-radiobutton',\n templateUrl: './radiobutton.control.html',\n styleUrls: ['./radiobutton.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RadioButtonControl extends IBaseComponent {\n static Type: any = 'radiobutton';\n static Default = JSON.parse(JSON.stringify(defaultProperties.radiobutton));\n //#region Source\n SourceValue;\n\n @Input()\n get Source() {\n return this.SourceValue;\n }\n set Source(val) {\n this.SourceValue = val;\n this.SourceChange.emit(this.SourceValue);\n this.cdRef.detectChanges();\n }\n\n @Output() SourceChange = new EventEmitter();\n //#endregion\n //#region SelectedItem\n SelectedItemValue;\n\n @Input()\n get SelectedItem() {\n return this.SelectedItemValue;\n }\n set SelectedItem(val) {\n this.SelectedItemValue = val;\n this.SelectedItemChange.emit(this.SelectedItemValue);\n this.cdRef.detectChanges();\n }\n\n @Output() SelectedItemChange = new EventEmitter();\n //#endregion\n //#region DataSource\n @Input()\n get DataSource() {\n return this.SelectedItemValue;\n }\n set DataSource(val) {\n this.SelectedItemValue = val;\n this.DataSourceChange.emit(this.SelectedItemValue);\n this.SelectedItemChange.emit(this.SelectedItemValue);\n this.triggerEvent('DataSourceChanged', this.DataSourceValue);\n this.cdRef.detectChanges();\n }\n\n @Output() DataSourceChange = new EventEmitter();\n //#endregion\n\n @ViewChildren('enumButton') enumButton;\n @ViewChild('firstButton') firstButton;\n ButtonsDisabled = true;\n\n constructor(cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.EventList.push('checked');\n }\n\n ControlInitialized() {\n this.initSource();\n }\n\n onLayoutElementChanged() {\n this.initSource();\n }\n\n initSource() {\n MetaHelper.FindDataBindingProperties(this.Layout, this.LayoutElementValue).then(result => {\n this.ButtonsDisabled = !result || !result.IsDataBinding;\n if (this.LayoutElementValue.IsEnum) { // Enum\n EnumHelper.GetEnumValues(this.LayoutElementValue.DataSourceID).then((data) => {\n this.Source = data;\n this.cdRef.detectChanges();\n });\n } else {\n this.Source = this.LayoutElementValue.CustomValues;\n this.cdRef.detectChanges();\n }\n });\n }\n\n onChange(ev) {\n this.triggerEvent('checked', ev.value);\n }\n\n setFocus() {\n if (this.firstButton && typeof this.firstButton.focus === 'function') {\n this.firstButton.focus();\n } else if (this.enumButton) {\n const array = this.enumButton.toArray();\n if (array) {\n array.some(button => {\n if (button && typeof button.focus === 'function') {\n button.focus();\n return true;\n }\n return false;\n });\n }\n }\n }\n}\nexport class RadioButtonPanel extends BasePanel {\n static override SIDS = ['7c1f7fcb-2bab-4595-adca-a3529874d5c6']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'7c1f7fcb-2bab-4595-adca-a3529874d5c6',\n ID: 'radiobutton',\n Caption: '@@RadioButton',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'radiobutton';\n }\n });\n PROPERTIES.push({\n ID: \"CustomValues\",\n Parent: \"radiobutton\",\n Content: new ComponentPortal(ListBoxThemeControl),\n Label: \"@@CustomValues\",\n Properties: [\n {\n ID: \"Caption\",\n Parent: \"radiobutton\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Caption\",\n Column: 1,\n Row: 1,\n InitArgs: {\n DataType: 'string'\n }\n },\n {\n ID: \"Value\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Value\",\n LabelPosition: MenuTabLabelPosition.Top,\n CheckVisibility: (item) => {\n return item.DataSourceType == '9b056ce1-ffb9-4168-9e00-977449f2f66d'\n },\n InitArgs: {\n InputType:'text'\n }\n },\n {\n ID: \"Value\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Value\",\n LabelPosition: MenuTabLabelPosition.Top,\n CheckVisibility: (item) => {\n return item.DataSourceType == 'a4299f61-eb3f-4b29-8c4e-144458d17048' || item.DataSourceType == 'c02230ee-05fb-46d2-ab58-5b9dde1f32d5' || item.DataSourceType == 'a2eb35c4-56d5-4acc-a58e-ef855cb5086b'\n },\n InitArgs: {\n InputType: 'number'\n }\n },\n {\n ID: \"Value\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Value\"\n },\n CheckVisibility: (item) => {\n return item.DataSourceType == '02414483-3194-474d-a3d1-0a1a8a36a9e0'\n }\n }\n ],\n InitArgs: {\n GenerateNewItem: () => {\n const item = { Caption: '', Value: '' }\n return item;\n },\n DisplayMemberPath:'Caption'\n },\n LabelPosition: MenuTabLabelPosition.Top\n });\n }\n}\n\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MultiReportingService } from '../../../services/reporting.service';\n\n@Component({\n selector: 'reference-axis',\n templateUrl: './reference.axis.component.html'\n})\nexport class ReferenceAxisComponent {\n //#region Description\n DescriptionValue = [];\n @Input()\n get Description() {\n return this.DescriptionValue;\n }\n set Description(val) {\n if (val !== this.DescriptionValue) {\n this.DescriptionValue = val;\n this.DescriptionChange.emit(this.DescriptionValue);\n }\n }\n @Output() DescriptionChange = new EventEmitter();\n //#endregion\n //#region Axis\n AxisValue = [];\n @Input()\n get Axis() {\n return this.AxisValue;\n }\n set Axis(val) {\n if (val !== this.AxisValue) {\n this.AxisValue = val;\n this.AxisChange.emit(this.AxisValue);\n }\n }\n @Output() AxisChange = new EventEmitter();\n //#endregion\n //#region Members\n MembersValue = [];\n @Input()\n get Members() {\n return this.MembersValue;\n }\n set Members(val) {\n if (val !== this.MembersValue) {\n this.MembersValue = val;\n this.MembersChange.emit(this.MembersValue);\n }\n }\n @Output() MembersChange = new EventEmitter();\n //#endregion\n\n SelectedData;\n AreaIndex;\n AreaIndexChanged() {\n let area = this.Description[this.AreaIndex];\n let areas = Object.keys(this.Axis);\n areas.forEach((a) => {\n if (area.ID == this.Axis[a].AreaID) {\n this.Axis[a].Selected = true;\n } else {\n this.Axis[a].Selected = false;\n }\n })\n }\n\n constructor(private multiService: MultiReportingService) {\n }\n\n CheckRefresh() {\n this.ValuesChanged.emit();\n }\n @Output() ValuesChanged = new EventEmitter();\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CellReferenceLevel, CellReferenceArea, CellReference } from '../../../models/planning/cell.reference.model';\nimport { MultiCacheService } from '../../../cache/multi/cache.service';\nimport { MultiReportingService } from '../../../services/reporting.service';\n\n@Component({\n selector: 'reference-overview',\n templateUrl: './reference.overview.component.html'\n})\nexport class ReferenceOverviewComponent {\n //#region References\n ReferencesValue = [];\n @Input()\n get References() {\n return this.ReferencesValue;\n }\n set References(val) {\n if (val !== this.ReferencesValue) {\n this.ReferencesValue = val;\n this.ReferencesChange.emit(this.ReferencesValue);\n }\n }\n @Output() ReferencesChange = new EventEmitter();\n //#endregion\n //#region Data\n DataValue = [];\n @Input()\n get Data() {\n return this.DataValue;\n }\n set Data(val) {\n if (val !== this.DataValue) {\n this.DataValue = val;\n this.DataChange.emit(this.DataValue);\n }\n }\n @Output() DataChange = new EventEmitter();\n //#endregion\n\n SelectedData;\n Description;\n Members;\n constructor(private multiService: MultiReportingService) {\n }\n\n SelectedReference = null;\n AddReference() {\n var reference = new CellReference();\n reference.Name = '@@NewReference';\n this.References.push(reference);\n this.SelectedReference = reference;\n this.SetSelectedData();\n }\n\n RemoveRefernce() {\n this.References.splice(this.References.indexOf(this.SelectedReference), 1);\n this.SelectedReference = null;\n this.SelectedData = null;\n }\n SelectReference(ref) {\n this.SelectedReference = ref;\n this.SetSelectedData();\n }\n\n async SetSelectedData() {\n this.Description = {\n X: [],\n Y: []\n }\n this.SelectedData = null;\n if (this.SelectedReference.DataDescriptionID) {\n this.SelectedData = this.Data.find((value) => { return this.SelectedReference.DataDescriptionID == value.ID });\n if (this.SelectedData.IsRelational) {\n\n } else {\n if (!this.SelectedReference.X) {\n this.SelectedReference.X = {};\n }\n if (!this.SelectedReference.Y) {\n this.SelectedReference.Y = {};\n }\n this.FillAxis(this.SelectedData.Datadescription.XLevelNodes, this.Description.X, this.SelectedReference.X);\n this.FillAxis(this.SelectedData.Datadescription.YLevelNodes, this.Description.Y, this.SelectedReference.Y);\n }\n }\n }\n\n DataDescriptionSelected() {\n this.SelectedReference.X = {};\n this.SelectedReference.Y = {};\n this.SetSelectedData();\n }\n\n FillAxis(Node, Axis, ReferenceAxis) {\n if (!ReferenceAxis) {\n ReferenceAxis = {};\n }\n for (let i = 0; i < Node.Areas.length; i++) {\n let area = {\n Caption: 'Area ' + i,\n ID: i + '',\n Levels: [],\n Measures: []\n }\n if (!ReferenceAxis[area.ID]) {\n let refArea = new CellReferenceArea();\n refArea.AreaID = area.ID;\n refArea.Levels = {};\n if (i == 0) {\n refArea.Selected = true;\n }\n ReferenceAxis[area.ID] = refArea;\n }\n let ll = {};\n Node.Areas[i].Tuples.forEach((tuple) => {\n tuple.Levels.forEach(async (level) => {\n let lev = {\n Caption: level.Caption.DefaultValue,\n Value: level.UniqueID,\n ID: level.Level,\n Members: []\n }\n if (!ReferenceAxis[area.ID].Levels[lev.ID]) {\n let refLevel = new CellReferenceLevel();\n refLevel.LevelID = lev.Value;\n ll[lev.ID] = refLevel;\n } else {\n ll[lev.ID] = ReferenceAxis[area.ID].Levels[lev.ID];\n }\n const cubeLevel = await MultiCacheService.GetLevel(level.Level, this.SelectedData.DataModelID);\n if (cubeLevel) {\n this.multiService.GetMembers(cubeLevel.Parent.Parent.DatasourceID, level.Level, null, null).subscribe(members => {\n const memberList = [];\n if (members) {\n members.forEach(m => {\n memberList.push({\n Caption: m.Caption,\n Value: m.ID\n });\n });\n }\n if (!this.Members) {\n this.Members = {};\n }\n this.Members[level.Level] = memberList;\n });\n }\n area.Levels.push(lev);\n });\n })\n ReferenceAxis[area.ID].Levels = ll;\n Node.Areas[i].Measures.forEach((measure) => {\n area.Measures.push({\n Caption: measure.Caption.DefaultValue,\n Value: measure.UniqueID,\n ID: measure.Measure\n })\n })\n Axis.push(area);\n }\n }\n\n GetLevels(Nodes) {\n let retVal = [];\n Nodes.Areas.forEach((area) => {\n area.Tuples.forEach((tuple) => {\n tuple.Levels.forEach((level) => {\n retVal.push(Object.assign({}, level));\n });\n });\n });\n return retVal;\n }\n GetMeasures(Nodes) {\n let retVal = [];\n Nodes.Areas.forEach((area) => {\n area.Measures.forEach((measure) => {\n retVal.push(Object.assign({}, measure));\n });\n });\n return retVal;\n }\n}\n","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, KeyValueDiffers, Output, ViewChild } from '@angular/core';\nimport { CalendarOptions, DateSelectArg, EventAddArg, EventApi, EventChangeArg, EventClickArg, EventRemoveArg, FullCalendarComponent } from '@fullcalendar/angular';\nimport { UUID } from 'angular2-uuid';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { CacheService } from '../../../cache/cache.service';\nimport { FilterHelper } from '../../../helpers/filter.helper';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { CalendarView } from '../../../models/enums/calendarview.enum';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { RequestFilter } from '../../../models/rest/requestfilter';\nimport { RequestOptions } from '../../../models/rest/requestoptions';\nimport { DataService } from '../../../services/data.service';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { ComponentFilterControl } from '../../common/componentfilter/componentfilter.control';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-scheduler',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['scheduler.control.scss'],\n templateUrl: 'scheduler.control.html'\n})\nexport class SchedulerControl extends IBaseComponent {\n\n static Type: any = 'scheduler';\n static Default = JSON.parse(JSON.stringify(defaultProperties.scheduler));\n\n calendarOptions: CalendarOptions;\n viewDate: Date = new Date();\n\n refresh: Subject = new Subject();\n\n events: EventApi[] = [];\n\n activeDayIsOpen = true;\n\n @ViewChild('calendar') calendarComponent: FullCalendarComponent;\n\n //#region ItemsSource\n ItemsSourceValue;\n\n @Input()\n get ItemsSource() {\n return this.ItemsSourceValue;\n }\n set ItemsSource(val) {\n if (val != this.ItemsSourceValue) {\n this.ItemsSourceValue = val;\n this.buildEvents();\n this.ItemsSourceChange.emit(this.ItemsSourceValue);\n }\n }\n @Output() ItemsSourceChange = new EventEmitter();\n //#endregion\n\n //#region DataSource\n get DataSource() {\n return this.ItemsSource;\n }\n set DataSource(val) {\n this.ItemsSource = val;\n }\n //#endregion\n\n differ;\n differObject;\n obeservedItems = [];\n DataSourceID;\n\n constructor(private dataService: DataService, differs: KeyValueDiffers, cdRef: ChangeDetectorRef,\n @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n\n this.differ = differs.find([]).create();\n this.differObject = differs.find({}).create();\n\n this.EventList.push('selectionchanged');\n this.EventList.push('timechanged');\n // this.EventList.push('delete');\n // this.EventList.push('edit');\n // this.EventList.push('OnFocus');\n }\n\n buildEvents() {\n this.events = [];\n this.obeservedItems = [];\n if (this.ItemsSourceValue) {\n this.ItemsSourceValue.forEach((i) => {\n const item: any = {\n title: 'New event',\n start: new Date(),\n end: new Date(),\n meta: i\n };\n if (this.LayoutElement) {\n if (this.LayoutElement.IsDraggable != null) {\n item.draggable = this.LayoutElement.IsDraggable;\n }\n if (this.LayoutElement.IsResizeable) {\n item.resizable = {\n beforeStart: true,\n afterEnd: true\n };\n }\n if (this.LayoutElement.TitleMemberPath) {\n item.title = i[this.LayoutElement.TitleMemberPath];\n }\n if (this.LayoutElement.StartMemberPath) {\n item.start = new Date(i[this.LayoutElement.StartMemberPath]);\n }\n if (this.LayoutElement.EndMemberPath) {\n item.end = new Date(i[this.LayoutElement.EndMemberPath]);\n }\n if (this.LayoutElement.AllDayMemberPath) {\n item.allDay = i[this.LayoutElement.AllDayMemberPath];\n }\n }\n this.events.push(item);\n });\n this.GenerateCalendarOptions();\n }\n }\n\n ControlInitialized() {\n this.ExecuteRefresh();\n }\n\n onLayoutElementChanged() {\n this.ExecuteRefresh();\n }\n\n GenerateCalendarOptions() {\n this.calendarOptions = null;\n setTimeout(() => {\n const temp = {\n headerToolbar: {\n left: '', // 'prev, today, next',\n center: '', // 'title',\n right: '' // 'dayGridMonth, timeGridWeek, timeGridDay, listWeek'\n },\n initialView: 'listWeek',\n initialEvents: [],\n weekends: true,\n editable: true,\n selectable: true,\n selectMirror: true,\n dayMaxEvents: true,\n select: this.handleDateSelect.bind(this),\n eventClick: this.handleEventClick.bind(this),\n eventsSet: this.handleEvents.bind(this),\n eventAdd: this.handleAdd.bind(this),\n eventChange: this.handleChange.bind(this),\n eventRemove: this.handleRemove.bind(this),\n events: this.events\n };\n if (this.LayoutElementValue) {\n if (this.LayoutElement.headerToolbar) {\n if (this.LayoutElement.headerToolbar.left) {\n for (let i = 0; i < this.LayoutElement.headerToolbar.left.length; i++) {\n if (i > 0) {\n temp.headerToolbar.left += ',';\n }\n temp.headerToolbar.left += this.LayoutElement.headerToolbar.left[i];\n }\n }\n if (this.LayoutElement.headerToolbar.center) {\n for (let i = 0; i < this.LayoutElement.headerToolbar.center.length; i++) {\n if (i > 0) {\n temp.headerToolbar.center += ',';\n }\n temp.headerToolbar.center += this.LayoutElement.headerToolbar.center[i];\n }\n }\n if (this.LayoutElement.headerToolbar.right) {\n for (let i = 0; i < this.LayoutElement.headerToolbar.right.length; i++) {\n if (i > 0) {\n temp.headerToolbar.right += ',';\n }\n temp.headerToolbar.right += this.LayoutElement.headerToolbar.right[i];\n }\n }\n }\n if (this.LayoutElement.DefaultView != null) {\n temp.initialView = CalendarView[this.LayoutElement.DefaultView];\n }\n }\n this.calendarOptions = temp;\n this.cdRef.detectChanges();\n }, 5);\n }\n\n clicked() {\n this.triggerEvent('OnFocus', this.DataSource);\n }\n\n ExecuteRefresh() {\n if (this.LayoutElement) {\n this.GenerateCalendarOptions();\n this.DataSourceID = MetaHelper.FindDataSourceID(this.Layout, this.LayoutElement);\n if (this.DataSourceID) {\n const options = new RequestOptions();\n if (this.Variables && this.LayoutElement.Filter) {\n this.LayoutElement.Filter.forEach((fil) => {\n if (this.Variables[fil.Filter]) {\n const item = new RequestFilter();\n item.Name = fil.Name;\n item.Operator = fil.Comparer;\n item.Value = this.Variables[fil.Filter];\n FilterHelper.AddSearchFilter(options, item);\n }\n });\n }\n this.dataService.SearchObjects('dynamicdata', this.DataSourceID, options).subscribe((data) => {\n this.ItemsSource = data;\n this.cdRef.detectChanges();\n });\n }\n }\n }\n\n handleDateSelect(selectInfo: DateSelectArg) {\n const calendarApi = selectInfo.view.calendar;\n calendarApi.unselect();\n calendarApi.addEvent({\n id: UUID.UUID(),\n title: 'NewEvent',\n start: selectInfo.startStr,\n end: selectInfo.endStr,\n allDay: selectInfo.allDay,\n meta: {}\n });\n }\n\n handleEventClick(clickInfo: EventClickArg) {\n this.triggerEvent('selectionchanged', clickInfo.event.extendedProps['meta']);\n }\n\n handleEvents(events: EventApi[]) {\n this.events = events;\n }\n\n handleAdd(addInfo: EventAddArg) {\n }\n\n handleChange(changeInfo: EventChangeArg) {\n if (this.LayoutElement.StartMemberPath) {\n changeInfo.event.extendedProps['meta'][this.LayoutElement.StartMemberPath] = changeInfo.event.start;\n }\n if (this.LayoutElement.EndMemberPath) {\n changeInfo.event.extendedProps['meta'][this.LayoutElement.EndMemberPath] = changeInfo.event.end;\n }\n this.triggerEvent('timechanged', changeInfo.event.extendedProps['meta']);\n }\n\n handleRemove(removeInfo: EventRemoveArg) {\n this.triggerEvent('delete', removeInfo.event.extendedProps['meta']);\n }\n}\nexport class SchedulerPanel extends BasePanel {\n static override SIDS = ['b16b17c8-551f-4fa0-976c-63c71b4b09bc']\n private static headerToolbarSub: BehaviorSubject = new BehaviorSubject(null);\n private static TitleTableProperties: BehaviorSubject = new BehaviorSubject(null);\n private static DateTableProperties: BehaviorSubject = new BehaviorSubject(null);\n private static BooleanTableProperties: BehaviorSubject = new BehaviorSubject(null);\n private static TableProperties;\n static override SetSelectedItem(item) {\n if (SchedulerPanel.SelectedItem && SchedulerPanel.SelectedItem.ElementType == 'scheduler') {\n if (!SchedulerPanel.SelectedItem.headerToolbar) {\n SchedulerPanel.SelectedItem.headerToolbar = {\n left: null,\n center: null,\n right: null\n };\n }\n SchedulerPanel.headerToolbarSub.next(SchedulerPanel.SelectedItem.headerToolbar);\n }\n SchedulerPanel.ReadTableProperties();\n }\n static override SetSelectedLayout(item) {\n SchedulerPanel.ReadTableProperties();\n }\n static InitPanel() {\n this.InitSelectedItem();\n this.InitSelectedLayout();\n PROPERTYGROUPS.push({\n SID:'b16b17c8-551f-4fa0-976c-63c71b4b09bc',\n ID: 'scheduler',\n Caption: '@@Scheduler',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'scheduler';\n }\n });\n PROPERTIES.push({\n ID: \"DefaultView\",\n Parent: \"scheduler\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@DefaultView\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: CalendarView\n }\n })\n PROPERTIES.push({\n ID: \"TitleMemberPath\",\n Parent: \"scheduler\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@TitleMemberPath\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSourceSub: SchedulerPanel.TitleTableProperties,\n ValueMemberPath: \"Name\",\n DisplayMemberPath: \"TranslatedCaption\"\n }\n });\n PROPERTIES.push({\n ID: \"StartMemberPath\",\n Parent: \"scheduler\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@StartMemberPath\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSourceSub: SchedulerPanel.DateTableProperties,\n ValueMemberPath: \"Name\",\n DisplayMemberPath: \"TranslatedCaption\"\n }\n });\n PROPERTIES.push({\n ID: \"EndMemberPath\",\n Parent: \"scheduler\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@EndMemberPath\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSourceSub: SchedulerPanel.DateTableProperties,\n ValueMemberPath: \"Name\",\n DisplayMemberPath: \"TranslatedCaption\"\n }\n });\n PROPERTIES.push({\n ID: \"AllDayMemberPath\",\n Parent: \"scheduler\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@AllDayMemberPath\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSourceSub: SchedulerPanel.BooleanTableProperties,\n ValueMemberPath: \"Name\",\n DisplayMemberPath: \"TranslatedCaption\"\n }\n });\n PROPERTIES.push({\n ID: \"IsDraggable\",\n Parent: \"scheduler\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@IsDraggable\"\n }\n });\n PROPERTIES.push({\n ID: \"IsResizeable\",\n Parent: \"scheduler\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@IsResizeable\"\n }\n });\n PROPERTIES.push({\n ID: \"Filter\",\n Parent: \"scheduler\",\n Content: new ComponentPortal(ComponentFilterControl)\n });\n\n let ToolBarValues = [{ Value: 'prev' }, { Value: 'today' },{ Value: 'next' },{ Value: 'title' },{ Value: 'dayGridMonth' },{ Value: 'timeGridWeek' },{ Value: 'timeGridDay' }, { Value: 'listWeek' }];\n\n PROPERTIES.push({\n ID: \"left\",\n Parent: \"scheduler\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@ToolbarLeft\",\n DataSource: SchedulerPanel.headerToolbarSub,\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: true,\n ItemsSource: ToolBarValues,\n DisplayMemberPath: \"Value\",\n ValueMemberPath: \"Value\"\n }\n });\n PROPERTIES.push({\n ID: \"center\",\n Parent: \"scheduler\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@ToolbarCenter\",\n DataSource: SchedulerPanel.headerToolbarSub,\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: true,\n ItemsSource: ToolBarValues,\n DisplayMemberPath: \"Value\",\n ValueMemberPath:\"Value\"\n }\n });\n PROPERTIES.push({\n ID: \"right\",\n Parent: \"scheduler\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@ToolbarRight\",\n DataSource: SchedulerPanel.headerToolbarSub,\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: true,\n ItemsSource: ToolBarValues,\n DisplayMemberPath: \"Value\",\n ValueMemberPath: \"Value\"\n }\n });\n }\n private static ReadTableProperties() {\n SchedulerPanel.TableProperties = null;\n // SchedulerPanel.TitleTableProperties.next([]);\n // SchedulerPanel.DateTableProperties.next([]);\n // SchedulerPanel.BooleanTableProperties.next([]);\n if (SchedulerPanel.SelectedLayout && SchedulerPanel.SelectedItem) {\n const ID = MetaHelper.FindDataSourceID(SchedulerPanel.SelectedLayout, SchedulerPanel.SelectedItem);\n if (ID) {\n CacheService.ReadTable(ID).then((result) => {\n SchedulerPanel.TableProperties = result;\n SchedulerPanel.TitleTableProperties.next(result['Fields'].filter((element, index, array) => {\n return element.Type === '9b056ce1-ffb9-4168-9e00-977449f2f66d';\n }))\n SchedulerPanel.DateTableProperties.next(result['Fields'].filter((element, index, array) => {\n return element.Type === 'cfcb4295-9d1e-49b4-b466-3fe74d1b0c69';\n }))\n SchedulerPanel.BooleanTableProperties.next(result['Fields'].filter((element, index, array) => {\n return element.Type === '02414483-3194-474d-a3d1-0a1a8a36a9e0';\n }))\n });\n }\n }\n }\n}","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { UnitSelectionControl } from '../../../appbuilder/controls/unittypeselection/unitselection.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { LayoutUnit } from \"../../../models/basic/layoutunit.model\";\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { SideNavMode } from '../../../models/enums/sidenavmode.enum';\nimport { SideNavPosition } from '../../../models/enums/sidenavposition.enum';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { SideNavService } from '../../../services/sidenav.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-sidenav-toggle',\n templateUrl: './sidenav.control.html',\n styleUrls: ['./sidenav.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SideNavControl extends IBaseComponent {\n static Type: any = 'sidenav-toggle';\n static Default = JSON.parse(JSON.stringify(defaultProperties['sidenav-toggle']));\n ControlInitialized() {\n \n }\n toggle() {\n SideNavService.Toggle.next(null);\n }\n}\n\nexport class SideNavPanel extends BasePanel {\n static override SIDS = ['b65c7495-2367-4d24-b987-59d4d08489cc']\n private static SideNavSub: BehaviorSubject = new BehaviorSubject(null);\n static override SetSelectedLayout(layout) {\n if (layout) {\n if (!layout.SideNav) {\n layout.SideNav = {};\n }\n SideNavPanel.SideNavSub.next(layout.SideNav);\n }\n }\n static InitPanel() {\n this.InitSelectedLayout();\n PROPERTYGROUPS.push({\n SID:'b65c7495-2367-4d24-b987-59d4d08489cc',\n ID: 'sidenav',\n Caption: '@@SideNavToggle',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'sidenav-toggle';\n }\n });\n PROPERTIES.push({\n ID: \"Mode\",\n Parent: \"sidenav\",\n Content: new ComponentPortal(ComboboxThemeControl),\n DataSource: SideNavPanel.SideNavSub,\n Label: \"@@Mode\",\n InitArgs: {\n Placeholder: \"\",\n Multiple: false,\n EnumSource: SideNavMode\n }\n });\n PROPERTIES.push({\n ID: \"Position\",\n Parent: \"sidenav\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Position\",\n DataSource: SideNavPanel.SideNavSub,\n InitArgs: {\n Placeholder: \"\",\n Multiple: false,\n EnumSource: SideNavPosition\n }\n });\n PROPERTIES.push({\n ID: \"Width\",\n Parent: \"sidenav\",\n Content: new ComponentPortal(UnitSelectionControl),\n Type: LayoutUnit,\n Label: \"@@Width\",\n DataSource: SideNavPanel.SideNavSub,\n InitArgs: {\n Minimum: 0\n }\n });\n PROPERTIES.push({\n ID: \"Height\",\n Parent: \"sidenav\",\n Content: new ComponentPortal(UnitSelectionControl),\n Type: LayoutUnit,\n Label: \"@@Height\",\n DataSource: SideNavPanel.SideNavSub,\n InitArgs: {\n Minimum: 0\n }\n });\n }\n}","import {\n\tComponent,\n\tInput,\n\tOnInit,\n\tOnDestroy,\n\tChangeDetectorRef,\n\tSimpleChanges,\n} from '@angular/core';\nimport { MetaService } from '../../../services/meta.service';\nimport { SelfServiceObjectService } from '../../../services/datamodel.service';\nimport { Color } from '../../../models/style/color.model';\nimport { NotificationHelper } from '../../../helpers/notification.helper';\nimport { FilterHelper } from '../../../helpers/filter.helper';\n\nconst surfaceBorder = '#090909';\n@Component({\n\tselector: 'chart-wrapper',\n\ttemplateUrl: './chartwrapper.component.html',\n\tstyleUrls: ['./chartwrapper.component.css'],\n})\nexport class ChartWrapperComponent implements OnInit, OnDestroy {\n\t_options: any;\n\t@Input()\n\tget Options() {\n\t\treturn this._options;\n\t}\n\tset Options(val) {\n\t\tthis._options = val;\n\t}\n\n\t_chartdata: any;\n\t@Input()\n\tget Chartdata() {\n\t\treturn this._chartdata;\n\t}\n\tset Chartdata(val) {\n\t\tthis._chartdata = val;\n\t}\n\n\t_defaultPalette;\n\t@Input()\n\tget DefaultPalette() {\n\t\treturn this._defaultPalette;\n\t}\n\tset DefaultPalette(val) {\n\t\tthis._defaultPalette = val;\n\t}\n\t_loading: boolean;\n\t@Input()\n\tget Loading() {\n\t\treturn this._loading;\n\t}\n\tset Loading(val) {\n\t\tthis._loading = val;\n\t}\n\t@Input() ChartType: string;\n\t@Input() ChartPalette: string;\n\t@Input() LegendPosition: string;\n\t@Input() DataFilter: any;\n\t@Input() XLabel: string;\n\t@Input() YLabel: string;\n\t@Input() BoldXLabel: boolean;\n\t@Input() ItalicXLabel: boolean;\n\t@Input() ColorXLabel: string;\n\t@Input() BoldYLabel: boolean;\n\t@Input() ItalicYLabel: boolean;\n\t@Input() ColorYLabel: string;\n\t@Input() FontSizeXLabel: number;\n\t@Input() FontSizeYLabel: number;\n\t@Input() GridColor: string;\n\t@Input() AggregationColumns: string;\n\t@Input() Aggregation: string;\n\t@Input() GroupByDateColumns: string;\n\t@Input() GroupByDate: string;\n\t@Input() NoOfRecords: number;\n\t@Input() GroupByTableColumns: string;\n\t@Input() DataSource: string;\n\t@Input() HideXAxisGrid: boolean;\n\t@Input() HideYAxisGrid: boolean;\n\t@Input() LayoutElement: any;\n\tchartVisible: boolean = false;\n\n\tconstructor(\n\t\tprivate cdRef: ChangeDetectorRef,\n\t\tprivate metaService: MetaService,\n\t\tprivate dataService: SelfServiceObjectService\n\t) {}\n\tngOnInit() {\n\t\tthis.chartVisible = true;\n\t}\n\n\tngOnDestroy() {\n\t\tthis.chartVisible = false;\n\t}\n\tSetDefaultPalette() {\n\t\tthis.DefaultPalette = [\n\t\t\t'#FF5733',\n\t\t\t'#33FF57',\n\t\t\t'#5733FF',\n\t\t\t'#FFD700',\n\t\t\t'#8A2BE2',\n\t\t\t'#00FFFF',\n\t\t\t'#FF4500',\n\t\t\t'#008000',\n\t\t\t'#4B0082',\n\t\t];\n\t}\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (changes['ChartPalette']) {\n\t\t\tif (this.ChartPalette && this.ChartPalette !== null) {\n\t\t\t\tthis.GetPalette();\n\t\t\t\tthis.destroyAndRecreateChart();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.SetDefaultPalette();\n\t\t\tthis.GetPalette();\n\t\t\tthis.destroyAndRecreateChart();\n\t\t\treturn;\n\t\t}\n\t\tif (\n\t\t\tchanges['DataFilter'] ||\n\t\t\tchanges['DataSource'] ||\n\t\t\tchanges['GroupByDateColumns'] ||\n\t\t\tchanges['GroupByDate'] ||\n\t\t\tchanges['NoOfRecords'] ||\n\t\t\tchanges['AggregationColumns'] ||\n\t\t\tchanges['Aggregation'] ||\n\t\t\tchanges['GroupByTableColumns']\n\t\t) {\n\t\t\tthis.LoadChartData();\n\t\t\tthis.destroyAndRecreateChart();\n\t\t\treturn;\n\t\t}\n\t\tif (\n\t\t\tchanges['LegendPosition'] ||\n\t\t\tchanges['XLabel'] ||\n\t\t\tchanges['YLabel'] ||\n\t\t\tchanges['BoldXLabel'] ||\n\t\t\tchanges['ItalicXLabel'] ||\n\t\t\tchanges['ColorXLabel'] ||\n\t\t\tchanges['BoldYLabel'] ||\n\t\t\tchanges['ItalicYLabel'] ||\n\t\t\tchanges['ColorYLabel'] ||\n\t\t\tchanges['FontSizeXLabel'] ||\n\t\t\tchanges['FontSizeYLabel'] ||\n\t\t\tchanges['GridColor'] ||\n\t\t\tchanges['HideXAxisGrid'] ||\n\t\t\tchanges['HideYAxisGrid'] ||\n\t\t\tchanges['ChartType']\n\t\t) {\n\t\t\tthis.destroyAndRecreateChart();\n\t\t\tthis.ChangeChartSettings();\n\t\t}\n\t}\n\n\tprivate destroyAndRecreateChart() {\n\t\tthis.chartVisible = false;\n\t\tthis.cdRef.detectChanges();\n\n\t\t// Delayed set to true to ensure proper destruction and recreation\n\t\tsetTimeout(() => {\n\t\t\tthis.chartVisible = true;\n\t\t\tthis.cdRef.detectChanges();\n\t\t});\n\t}\n\tLoadChartData() {\n\t\tif (\n\t\t\t!this.DataSource ||\n\t\t\t!this.GroupByTableColumns ||\n\t\t\t!this.AggregationColumns ||\n\t\t\t!this.Aggregation\n\t\t) {\n\t\t\tthis.Chartdata = { labels: [], datasets: [] };\n\t\t\treturn;\n\t\t}\n\t\tthis.Loading = true;\n\t\tconst filters = FilterHelper.PrepareFilter(this.LayoutElement);\n\n\t\tif (this.GroupByTableColumns && this.GroupByTableColumns.length > 0) {\n\t\t\tfilters.GroupBy = [this.GroupByTableColumns];\n\t\t}\n\t\tif (this.AggregationColumns && this.AggregationColumns.length > 0) {\n\t\t\tconst aggregationObj = {\n\t\t\t\tField: this.AggregationColumns,\n\t\t\t\tOperation: this.Aggregation,\n\t\t\t\tAlias: this.AggregationColumns,\n\t\t\t};\n\t\t\tfilters.Aggregations = [aggregationObj];\n\t\t}\n\t\tif (this.GroupByDateColumns && this.GroupByDate) {\n\t\t\tfilters.GroupByDate = {\n\t\t\t\tField: this.GroupByDateColumns,\n\t\t\t\tGroupingLevel: this.GroupByDate,\n\t\t\t};\n\t\t}\n\t\tif (!this.GroupByDate) {\n\t\t\tdelete filters.GroupByDate;\n\t\t}\n\t\tfilters.EndRow = null;\n\t\tif (\n\t\t\tthis.GroupByTableColumns &&\n\t\t\tthis.DataSource &&\n\t\t\tthis.AggregationColumns &&\n\t\t\tthis.Aggregation\n\t\t) {\n\t\t\tthis.Chartdata = { labels: [], datasets: [] };\n\t\t\tthis.dataService\n\t\t\t\t.ExecuteObjectQueryExtended(this.DataSource, filters)\n\t\t\t\t.subscribe({\n\t\t\t\t\tnext: (data) => {\n\t\t\t\t\t\tif (data && data.length > 0) {\n\t\t\t\t\t\t\tlet result;\n\t\t\t\t\t\t\tthis.NoOfRecords && this.NoOfRecords > 0\n\t\t\t\t\t\t\t\t? (result = this.GetMaxNoOfResults(\n\t\t\t\t\t\t\t\t\t\tdata[0].Data,\n\t\t\t\t\t\t\t\t\t\tthis.NoOfRecords,\n\t\t\t\t\t\t\t\t\t\tthis.AggregationColumns\n\t\t\t\t\t\t\t\t ))\n\t\t\t\t\t\t\t\t: (result = data[0].Data);\n\n\t\t\t\t\t\t\tif (this.GroupByDate) {\n\t\t\t\t\t\t\t\tthis.PrepareChartData(result);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.PrepareChartdataWithoutGroupBy(result);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.GetPalette();\n\t\t\t\t\t\tthis.Loading = false;\n\t\t\t\t\t\tthis.cdRef.detectChanges();\n\t\t\t\t\t},\n\t\t\t\t\terror: (error) => {\n\t\t\t\t\t\tNotificationHelper.Error(error.error['error'], '@@Error');\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\treturn;\n\t\t}\n\t}\n\tGetMaxNoOfResults(array, maxResults, sortByField) {\n\t\t// Sort the array in descending order based on the specified field\n\t\tarray.sort((a, b) => b[sortByField] - a[sortByField]);\n\n\t\t// Slice the array to get the top-rated movies based on the maxResults\n\t\tconst topResults = array.slice(0, maxResults);\n\n\t\treturn topResults;\n\t}\n\tPrepareChartData(data) {\n\t\tconst groupedData = this.groupByFieldName(data, this.GroupByTableColumns);\n\t\t// labels => uniquely _Created kr k set krwa dena hy\n\t\tlet chartData: any = { labels: [], datasets: [] };\n\n\t\t// set unique labels for the x-axis\n\t\tdata.forEach((item) => {\n\t\t\t// if (this.GroupByDate === 'Month') {\n\t\t\t// \tconst month = this.getMonthNameByNumber(\n\t\t\t// \t\titem[this.GroupByDateColumns].split('-')[1].replace(/^0+/, '')\n\t\t\t// \t);\n\t\t\t// \tchartData.labels.push(month);\n\t\t\t// }\n\t\t\t// if (this.GroupByDate === 'Year') {\n\t\t\t// \tconst year = item[this.GroupByDateColumns];\n\t\t\t// \tchartData.labels.push(year);\n\t\t\t// }\n\t\t\t// if (this.GroupByDate === 'Day') {\n\t\t\t// \tconst day = item[this.GroupByDateColumns];\n\t\t\t// \tchartData.labels.push(day);\n\t\t\t// }\n\t\t\tchartData.labels.push(item[this.GroupByDateColumns]);\n\t\t});\n\t\tchartData.labels = [...new Set(chartData.labels)];\n\n\t\t// set the datasets according to the given aggregation\n\t\tconst datasets = Object.keys(groupedData).map((key) => {\n\t\t\tconst datasetData = [];\n\t\t\tgroupedData[key].forEach((item) => {\n\t\t\t\tconst index = chartData.labels.indexOf(item[this.GroupByDateColumns]);\n\t\t\t\tdatasetData[index] = item[this.AggregationColumns];\n\t\t\t});\n\t\t\tconst datasetObj = {\n\t\t\t\tlabel: key,\n\t\t\t\tdata: datasetData,\n\t\t\t};\n\t\t\treturn datasetObj;\n\t\t});\n\t\tchartData.datasets = datasets;\n\t\tthis.Chartdata = chartData;\n\t}\n\tPrepareChartdataWithoutGroupBy(data) {\n\t\tconst chartdata = { labels: [], datasets: [{ data: [], label: '' }] };\n\n\t\tdata.forEach((item) => {\n\t\t\tchartdata.labels.push(item[this.GroupByTableColumns]);\n\t\t\tchartdata.datasets[0].data.push(item[this.AggregationColumns]);\n\t\t});\n\t\tchartdata.datasets[0].label = this.AggregationColumns;\n\t\tthis.Chartdata = chartdata;\n\t}\n\tgroupByFieldName(data, fieldName) {\n\t\tconst groupedData = {};\n\n\t\tdata.forEach((item) => {\n\t\t\tconst fieldValue = item[fieldName];\n\n\t\t\tif (!groupedData[fieldValue]) {\n\t\t\t\tgroupedData[fieldValue] = [item];\n\t\t\t} else {\n\t\t\t\tgroupedData[fieldValue].push(item);\n\t\t\t}\n\t\t});\n\n\t\treturn groupedData;\n\t}\n\tGetPalette() {\n\t\tif (this.Chartdata) {\n\t\t\tif (this.ChartPalette) {\n\t\t\t\tthis.metaService\n\t\t\t\t\t.ReadPalette(this.ChartPalette)\n\t\t\t\t\t.subscribe((paletteInfo) => {\n\t\t\t\t\t\tlet colorsArray = [];\n\t\t\t\t\t\tif (paletteInfo.Palette && paletteInfo.Palette.length > 0) {\n\t\t\t\t\t\t\tpaletteInfo.Palette.forEach((color) => {\n\t\t\t\t\t\t\t\tcolorsArray.push(Color.HexFromColor(color));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (colorsArray && colorsArray.length > 0) {\n\t\t\t\t\t\t\tthis.DefaultPalette = colorsArray;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.Chartdata = {\n\t\t\t\t\t\t\t...this.Chartdata,\n\t\t\t\t\t\t\tdatasets: this.SetPrimeNGChartPalette(this.Chartdata.datasets),\n\t\t\t\t\t\t};\n\t\t\t\t\t\tthis.cdRef.detectChanges();\n\t\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.Chartdata = {\n\t\t\t\t...this.Chartdata,\n\t\t\t\tdatasets: this.SetPrimeNGChartPalette(this.Chartdata.datasets),\n\t\t\t};\n\t\t\tthis.cdRef.detectChanges();\n\t\t}\n\t}\n\tSetPrimeNGChartPalette(seriesData: any[]): any {\n\t\tif (this.GroupByDate) {\n\t\t\tconst coloredSeries = seriesData.map((series, index) => {\n\t\t\t\tconst backgroundColorArray = series.data.map(\n\t\t\t\t\t(data) => this.DefaultPalette[index % this.DefaultPalette.length]\n\t\t\t\t);\n\t\t\t\tconst colorObject = {\n\t\t\t\t\t...series,\n\t\t\t\t\tbackgroundColor: backgroundColorArray,\n\t\t\t\t};\n\t\t\t\tif (this.ChartType === 'line') {\n\t\t\t\t\tcolorObject.borderColor =\n\t\t\t\t\t\tthis.DefaultPalette[index % this.DefaultPalette.length];\n\t\t\t\t\tcolorObject.fill = false;\n\t\t\t\t\tcolorObject.tension = 0.4;\n\t\t\t\t}\n\t\t\t\treturn colorObject;\n\t\t\t});\n\t\t\treturn coloredSeries;\n\t\t}\n\t\tconst backgroundColor = [];\n\t\tseriesData[0]?.data.forEach((series, index) => {\n\t\t\tbackgroundColor.push(\n\t\t\t\tthis.DefaultPalette[index % this.DefaultPalette.length]\n\t\t\t);\n\t\t});\n\t\treturn [\n\t\t\t{\n\t\t\t\t...seriesData[0],\n\t\t\t\tbackgroundColor: backgroundColor,\n\t\t\t},\n\t\t];\n\t}\n\n\tChangeChartSettings() {\n\t\tif (!this.ChartType) {\n\t\t\tNotificationHelper.Error('@@Please select chart type', '@@Error');\n\t\t\treturn;\n\t\t}\n\t\tif (this.HideXAxisGrid) {\n\t\t\tthis.Options.scales.x.grid.display = false;\n\t\t}\n\t\tif (!this.HideXAxisGrid) {\n\t\t\tthis.Options.scales.x.grid.display = true;\n\t\t}\n\t\tif (this.HideYAxisGrid) {\n\t\t\tthis.Options.scales.y.grid.display = false;\n\t\t}\n\t\tif (!this.HideYAxisGrid) {\n\t\t\tthis.Options.scales.y.grid.display = true;\n\t\t}\n\t\tif (this.XLabel) {\n\t\t\tthis.Options.scales.x.title.text = this.XLabel;\n\t\t}\n\t\tif (this.YLabel) {\n\t\t\tthis.Options.scales.y.title.text = this.YLabel;\n\t\t}\n\t\tif (this.BoldXLabel) {\n\t\t\tthis.Options.scales.x.title.font.weight = 900;\n\t\t}\n\t\tif (this.ItalicXLabel) {\n\t\t\tthis.Options.scales.x.title.font.style = 'italic';\n\t\t}\n\t\tif (this.ColorXLabel) {\n\t\t\tconst color = Color.HexFromColor(this.ColorXLabel);\n\t\t\tthis.Options.scales.x.title.color = color;\n\t\t}\n\t\tif (this.BoldYLabel) {\n\t\t\tthis.Options.scales.y.title.font.weight = 900;\n\t\t}\n\t\tif (this.ItalicYLabel) {\n\t\t\tthis.Options.scales.y.title.font.style = 'italic';\n\t\t}\n\t\tif (this.ColorYLabel) {\n\t\t\tconst color = Color.HexFromColor(this.ColorYLabel);\n\t\t\tthis.Options.scales.y.title.color = color;\n\t\t}\n\t\tif (this.FontSizeXLabel) {\n\t\t\tthis.Options.scales.x.title.font.size = this.FontSizeXLabel;\n\t\t}\n\t\tif (this.FontSizeYLabel) {\n\t\t\tthis.Options.scales.y.title.font.size = this.FontSizeYLabel;\n\t\t}\n\t\tif (this.GridColor) {\n\t\t\tconst color = Color.HexFromColor(this.GridColor);\n\t\t\tthis.Options.scales.x.grid.color = color;\n\t\t\tthis.Options.scales.y.grid.color = color;\n\t\t}\n\t\tif (!this.GridColor) {\n\t\t\tthis.Options.scales.x.grid.color = surfaceBorder;\n\t\t\tthis.Options.scales.y.grid.color = surfaceBorder;\n\t\t}\n\t\tif (this.ChartType) {\n\t\t\tconst gridTypes = ['line', 'bar', 'radar'];\n\t\t\tif (gridTypes.includes(this.ChartType)) {\n\t\t\t\tthis.Options.scales.x.display = true;\n\t\t\t\tthis.Options.scales.y.display = true;\n\t\t\t}\n\t\t\tif (!gridTypes.includes(this.ChartType)) {\n\t\t\t\tthis.Options.scales.x.display = false;\n\t\t\t\tthis.Options.scales.y.display = false;\n\t\t\t}\n\t\t}\n\t\tthis.cdRef.detectChanges();\n\t}\n\tgetMonthNameByNumber(monthNumber) {\n\t\tconst monthNames = [\n\t\t\t'January',\n\t\t\t'February',\n\t\t\t'March',\n\t\t\t'April',\n\t\t\t'May',\n\t\t\t'June',\n\t\t\t'July',\n\t\t\t'August',\n\t\t\t'September',\n\t\t\t'October',\n\t\t\t'November',\n\t\t\t'December',\n\t\t];\n\n\t\t// Validate that the monthNumber is within the valid range\n\t\tif (monthNumber >= 1 && monthNumber <= 12) {\n\t\t\t// Return the month name from the array\n\t\t\treturn monthNames[monthNumber - 1]; // Adjusting to 0-based index\n\t\t} else {\n\t\t\treturn 'Invalid month number';\n\t\t}\n\t}\n}\n","import { ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\nimport {\n\tMAT_DIALOG_DATA,\n\tMatDialogConfig,\n\tMatDialogRef,\n} from '@angular/material/dialog';\nimport { DialogHelper } from '../../../../helpers/injector.helper';\nimport { LayoutService } from '../../../../services/layout.service';\n\nexport class ReportingPreviewInitArgs {\n\tdata: any;\n}\n\n@Component({\n\tselector: 'preview-dialogue-component',\n\ttemplateUrl: './preview-dialogue.component.html',\n\tstyleUrls: ['./preview-dialogue.component.css'],\n})\nexport class ReportingPreviewComponent implements OnInit {\n\teditorOptions = {\n\t\tlanguage: 'json',\n\t\treadOnly: true,\n\t\t// scrollBeyondLastLine: false,\n\t};\n\tstatic OpenDialog(\n\t\ttemplate: ReportingPreviewInitArgs,\n\t\thandler?: (x: any) => void\n\t) {\n\t\tconst config = new MatDialogConfig();\n\t\tconfig.data = template;\n\t\tconfig.panelClass = 'preview-dialogue-component';\n\t\tconfig.disableClose = false;\n\t\tconst diaRef = DialogHelper.DialogInstance.open(\n\t\t\tReportingPreviewComponent,\n\t\t\tconfig\n\t\t);\n\t\tif (handler) {\n\t\t\tdiaRef.afterClosed().subscribe((x) => {\n\t\t\t\thandler(x);\n\t\t\t});\n\t\t}\n\t}\n\n\tPreviewData;\n\tconstructor(\n\t\tprivate dialogRef: MatDialogRef,\n\t\t@Inject(MAT_DIALOG_DATA) public _template: ReportingPreviewInitArgs,\n\t\tprivate cdRef: ChangeDetectorRef\n\t) {\n\t\tthis.PreviewData = JSON.stringify(_template, null, 2);\n\t}\n\n\tngOnInit(): void {}\n\n\tonUseTemplate(template) {\n\t\tthis.dialogRef.close(template);\n\t}\n\n\tloading(value) {\n\t\tLayoutService.Loading.next(value);\n\t\tthis.cdRef.detectChanges();\n\t}\n}\n","import { ChangeDetectorRef, Inject, Component, Input } from '@angular/core';\nimport {BehaviorSubject, Subscription} from 'rxjs';\nimport { IBaseComponent } from '../base.component';\nimport { LayoutService } from '../../../services/layout.service';\nimport {\n\tPROPERTIES,\n\tPROPERTYGROUPS,\n} from '../../../services/dynamic.component.service';\nimport { MetaService } from '../../../services/meta.service';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { DataModelService } from '../../../services/datamodel.service';\nimport { RTLHelper } from '../../../helpers/rtl.helper';\nimport { InjectorHelper } from '../../../helpers/injector.helper';\nimport { DataService } from '../../../services/data.service';\nimport { RequestFilter } from '../../../models/rest/requestfilter';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { MultiPropertyChangeValue } from '../../../models/layout/layout.change.model';\nimport {\n\tRequestOptionsColumn,\n\tRequestOptionsControl,\n\tRequestOptionsDialogArgs,\n} from '../../../components/common/requestoptions/request.options.control';\nimport { ButtonThemeControl } from '../../../appbuilder/controls/button/button.theme.control';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { RequestOptions } from '../../../models/rest/requestoptions';\nimport { FilterHelper } from '../../../helpers/filter.helper';\nimport { TextAreaThemeControl } from '../../../appbuilder/controls/textarea/textarea.theme.control';\nimport { ViewType } from '../../../models/enums/viewtype.enum';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { ReportingPreviewComponent } from './preview-dialogue/preview-dialogue.component';\nimport { ElementProperty } from '../../../models/layoutbase.model';\nimport { SelfServiceObjectService } from '../../../services/datamodel.service';\nimport { Color } from '../../../models/style/color.model';\nimport { NotificationHelper } from '../../../helpers/notification.helper';\nimport { Comparer } from 'src/app/models/enums/comparer.enum';\nimport { FilterMatchMode } from 'primeng/api/filtermatchmode';\nimport { LazyLoadEvent } from 'primeng/api/lazyloadevent';\nimport { Concat } from 'src/app/models/enums/contact.enum';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\nconst textColor = '#000';\nconst textColorSecondary = '#c4c4c4';\nconst surfaceBorder = '#090909';\n@Component({\n\tselector: 'evi-simplereporting',\n\ttemplateUrl: './simplereporting.component.html',\n\tstyleUrls: ['./simplereporting.component.css'],\n})\nexport class SimpleReportingControl extends IBaseComponent {\n\tstatic Type: any = 'reporting';\n\tstatic Default = JSON.parse(JSON.stringify(defaultProperties.reporting));\n\n\tOptions: any = {\n\t\tresponsive: true,\n\t\tmaintainAspectRatio: false,\n\t\taspectRatio: 1,\n\t\tplugins: {\n\t\t\tlegend: {\n\t\t\t\tdisplay: false,\n\t\t\t\tlabels: {\n\t\t\t\t\tcolor: textColor,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tscales: {\n\t\t\tx: {\n\t\t\t\tdisplay: true,\n\t\t\t\ttitle: {\n\t\t\t\t\tdisplay: true,\n\t\t\t\t\ttext: '',\n\t\t\t\t\tcolor: 'black',\n\t\t\t\t\tfont: {\n\t\t\t\t\t\tweight: 400,\n\t\t\t\t\t\tsize: 12,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tticks: {\n\t\t\t\t\tcolor: textColorSecondary,\n\t\t\t\t\tfont: {\n\t\t\t\t\t\tweight: 500,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tgrid: {\n\t\t\t\t\tdisplay: false,\n\t\t\t\t\tcolor: surfaceBorder,\n\t\t\t\t\tdrawBorder: false,\n\t\t\t\t},\n\t\t\t},\n\t\t\ty: {\n\t\t\t\tdisplay: true,\n\t\t\t\ttitle: {\n\t\t\t\t\tdisplay: true,\n\t\t\t\t\ttext: '',\n\t\t\t\t\tcolor: 'black',\n\t\t\t\t\tfont: {\n\t\t\t\t\t\tweight: 400,\n\t\t\t\t\t\tsize: 12,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tticks: {\n\t\t\t\t\tcolor: textColorSecondary,\n\t\t\t\t},\n\t\t\t\tgrid: {\n\t\t\t\t\tdisplay: false,\n\t\t\t\t\tcolor: surfaceBorder,\n\t\t\t\t\tdrawBorder: false,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t};\n\tChartdata: any = { labels: [], datasets: [] };\n\tLoading: boolean = false;\n\tDefaultPalette = [\n\t\t'#FF5733',\n\t\t'#33FF57',\n\t\t'#5733FF',\n\t\t'#FFD700',\n\t\t'#8A2BE2',\n\t\t'#00FFFF',\n\t\t'#FF4500',\n\t\t'#008000',\n\t\t'#4B0082',\n\t];\n\tIsRtl = false;\n\n\tprivate zoomSubscription: Subscription;\n\tdivWidth = 100;\n\tconstructor(\n\t\tcdRef: ChangeDetectorRef,\n\t\tprivate dataService: SelfServiceObjectService,\n\t\tprivate metaService: MetaService,\n\t\t@Inject(LayoutService.CONTAINER_DATA) public data\n\t) {\n\t\tsuper(cdRef, data);\n\t\tthis.PropertyList.push(new ElementProperty('Filter', 'list', '@@Filter'));\n\t\tthis.PropertyList.push(\n\t\t\tnew ElementProperty('ChartPalette', 'string', '@@Chart Palette')\n\t\t);\n\t}\n\n\tngOnInit() {\n\t\tsuper.ngOnInit();\n\t\tthis.IsRtl = RTLHelper.Direction == 'rtl';\n\t\tthis.Subscriptions['RTL'] = RTLHelper.DirectionChanged.subscribe((dir) => {\n\t\t\tthis.IsRtl = dir == 'rtl';\n\t\t});\n\n\t\tthis.zoomSubscription = this.metaService.zoom$.subscribe(zoom => {\n\t\t\tthis.divWidth = 0;\n\t\t\tthis.cdRef.detectChanges();\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.divWidth = 100;\n\t\t\t\tthis.cdRef.detectChanges();\n\t\t\t}, 300)\n\t\t});\n\t}\n\n\tControlInitialized() {\n\t\tthis.cdRef.detectChanges();\n\t\t// console.log('ControlInitialized');\n\t\tthis.Subscriptions['selection'] = LayoutService.SelectionChanged.subscribe(\n\t\t\t(value) => {\n\t\t\t\tthis.cdRef.detectChanges();\n\t\t\t}\n\t\t);\n\t\tif (this.SRDataSource) {\n\t\t\tthis.LoadChartData();\n\t\t}\n\t\tthis.ChangeChartSettings();\n\t}\n\tExecuteRefresh() {\n\t\tif (this.SRDataSource) {\n\t\t\tthis.LoadChartData();\n\t\t}\n\t\tthis.ChangeChartSettings();\n\t}\n\n\t@Input()\n\tget SourceType(): string {\n\t\treturn this.LayoutElement.SourceType;\n\t}\n\tset SourceType(val: string) {\n\t\tthis.LayoutElement.SourceType = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\n\t@Input()\n\tget DisableAutoLoad(): boolean {\n\t\treturn this.LayoutElement.DisableAutoLoad;\n\t}\n\tset DisableAutoLoad(val: boolean) {\n\t\tthis.LayoutElement.DisableAutoLoad = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\n\t@Input()\n\tget SRDataModelID(): string {\n\t\treturn this.LayoutElement.SRDataModelID;\n\t}\n\tset SRDataModelID(val: string) {\n\t\tthis.LayoutElement.SRDataModelID = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\n\t@Input()\n\tget SRDataSource(): string {\n\t\treturn this.LayoutElement.SRDataSource;\n\t}\n\tset SRDataSource(val: string) {\n\t\tthis.LayoutElement.SRDataSource = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\n\t@Input()\n\tget LegendPosition(): string {\n\t\treturn this.LayoutElement.LegendPosition;\n\t}\n\tset LegendPosition(val: string) {\n\t\tthis.LayoutElement.LegendPosition = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\n\t@Input()\n\tget SRDataFilter() {\n\t\treturn this.LayoutElement.SRDataFilter;\n\t}\n\tset SRDataFilter(val: RequestOptions) {\n\t\tthis.LayoutElement.SRDataFilter = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\n\t@Input()\n\tget ChartType(): string {\n\t\treturn this.LayoutElement.ChartType;\n\t}\n\n\tset ChartType(val: string) {\n\t\tthis.LayoutElement.ChartType = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\n\t@Input()\n\tget ChartPalette(): string {\n\t\treturn this.LayoutElement.ChartPalette;\n\t}\n\n\tset ChartPalette(val: string) {\n\t\tthis.ChartPalette = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\t@Input()\n\tget NoOfRecords(): number {\n\t\treturn this.LayoutElement.NoOfRecords;\n\t}\n\tset NoOfRecords(val: number) {\n\t\tthis.LayoutElement.NoOfRecords = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\n\t@Input()\n\tget XLabel(): string {\n\t\treturn this.LayoutElement.XLabel;\n\t}\n\tset XLabel(val: string) {\n\t\tthis.LayoutElement.XLabel = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\n\t@Input()\n\tget BoldXLabel(): boolean {\n\t\treturn this.LayoutElement.BoldXLabel;\n\t}\n\tset BoldXLabel(val: boolean) {\n\t\tthis.LayoutElement.BoldXLabel = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\n\t@Input()\n\tget ItalicXLabel(): boolean {\n\t\treturn this.LayoutElement.ItalicXLabel;\n\t}\n\tset ItalicXLabel(val: boolean) {\n\t\tthis.LayoutElement.ItalicXLabel = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\t@Input()\n\tget HideXAxisGrid() {\n\t\treturn this.LayoutElement.HideXAxisGrid;\n\t}\n\tset HideXAxisGrid(val: boolean) {\n\t\tthis.LayoutElement.HideXAxisGrid = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\t@Input()\n\tget HideYAxisGrid() {\n\t\treturn this.LayoutElement.HideYAxisGrid;\n\t}\n\tset HideYAxisGrid(val: boolean) {\n\t\tthis.LayoutElement.HideYAxisGrid = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\n\tget ColorXLabel(): string {\n\t\treturn this.LayoutElement.ColorXLabel;\n\t}\n\tset ColorXLabel(val: string) {\n\t\tthis.LayoutElement.ColorXLabel = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\t@Input()\n\tget FontSizeXLabel() {\n\t\treturn this.LayoutElement.FontSizeXLabel;\n\t}\n\tset FontSizeXLabel(val: number) {\n\t\tthis.LayoutElement.FontSizeXLabel = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\n\t@Input()\n\tget YLabel(): string {\n\t\treturn this.LayoutElement.YLabel;\n\t}\n\tset YLabel(val: string) {\n\t\tthis.LayoutElement.YLabel = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\n\t@Input()\n\tget BoldYLabel(): boolean {\n\t\treturn this.LayoutElement.BoldYLabel;\n\t}\n\tset BoldYLabel(val: boolean) {\n\t\tthis.LayoutElement.BoldYLabel = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\n\t@Input()\n\tget ItalicYLabel(): boolean {\n\t\treturn this.LayoutElement.ItalicYLabel;\n\t}\n\tset ItalicYLabel(val: boolean) {\n\t\tthis.LayoutElement.ItalicYLabel = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\t@Input()\n\tget ColorYLabel(): string {\n\t\treturn this.LayoutElement.ColorYLabel;\n\t}\n\tset ColorYLabel(val: string) {\n\t\tthis.LayoutElement.ColorYLabel = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\n\t@Input()\n\tget FontSizeYLabel() {\n\t\treturn this.LayoutElement.FontSizeYLabel;\n\t}\n\tset FontSizeYLabel(val: number) {\n\t\tthis.LayoutElement.FontSizeYLabel = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\t@Input()\n\tget GridColor(): string {\n\t\treturn this.LayoutElement.GridColor;\n\t}\n\tset GridColor(val: string) {\n\t\tthis.LayoutElement.GridColor = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\t@Input()\n\tget GroupByTableColumns(): string {\n\t\treturn this.LayoutElement.GroupByTableColumns;\n\t}\n\tset GroupByTableColumns(val: string) {\n\t\tthis.LayoutElement.GroupByTableColumns = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\t@Input()\n\tget AggregationColumns(): string {\n\t\treturn this.LayoutElement.AggregationColumns;\n\t}\n\tset AggregationColumns(val: string) {\n\t\tthis.LayoutElement.AggregationColumns = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\t@Input()\n\tget Aggregation(): string {\n\t\treturn this.LayoutElement.Aggregation;\n\t}\n\tset Aggregation(val: string) {\n\t\tthis.LayoutElement.Aggregation = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\t@Input()\n\tget GroupByDateColumns() {\n\t\treturn this.LayoutElement.GroupByDateColumns;\n\t}\n\tset GroupByDateColumns(val: string) {\n\t\tthis.LayoutElement.GroupByDateColumns = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\n\t@Input()\n\tget GroupByDate() {\n\t\treturn this.LayoutElement.GroupByDate;\n\t}\n\tset GroupByDate(val: string) {\n\t\tthis.LayoutElement.GroupByDate = val;\n\t\tthis.cdRef.detectChanges();\n\t}\n\tLoadChartData() {\n\t\tif (\n\t\t\t!this.SRDataSource ||\n\t\t\t!this.GroupByTableColumns ||\n\t\t\t!this.AggregationColumns ||\n\t\t\t!this.Aggregation\n\t\t) {\n\t\t\tthis.Chartdata = { labels: [], datasets: [] };\n\t\t\treturn;\n\t\t}\n\t\tthis.Loading = true;\n\t\tconst filters = FilterHelper.PrepareFilter(this.LayoutElement);\n\t\tif (this.GroupByTableColumns && this.GroupByTableColumns.length > 0) {\n\t\t\tfilters.GroupBy = [this.GroupByTableColumns];\n\t\t}\n\t\tif (this.AggregationColumns && this.AggregationColumns.length > 0) {\n\t\t\tconst aggregationObj = {\n\t\t\t\tField: this.AggregationColumns,\n\t\t\t\tOperation: this.Aggregation,\n\t\t\t\tAlias: this.AggregationColumns,\n\t\t\t};\n\t\t\tfilters.Aggregations = [aggregationObj];\n\t\t}\n\t\tif (this.GroupByDateColumns && this.GroupByDate) {\n\t\t\tfilters.GroupByDate = {\n\t\t\t\tField: this.GroupByDateColumns,\n\t\t\t\tGroupingLevel: this.GroupByDate,\n\t\t\t};\n\t\t}\n\t\tif (!this.GroupByDate) {\n\t\t\tdelete filters.GroupByDate;\n\t\t}\n\t\tfilters.EndRow = null;\n\t\tif (\n\t\t\tthis.GroupByTableColumns &&\n\t\t\tthis.SRDataSource &&\n\t\t\tthis.AggregationColumns &&\n\t\t\tthis.Aggregation\n\t\t) {\n\t\t\tthis.Chartdata = { labels: [], datasets: [] };\n\t\t\tthis.dataService\n\t\t\t\t.ExecuteObjectQueryExtended(this.SRDataSource, filters)\n\t\t\t\t.subscribe({\n\t\t\t\t\tnext: (data) => {\n\t\t\t\t\t\tif (data && data.length > 0) {\n\t\t\t\t\t\t\tlet result;\n\t\t\t\t\t\t\tthis.NoOfRecords && this.NoOfRecords > 0\n\t\t\t\t\t\t\t\t? (result = this.GetMaxNoOfResults(\n\t\t\t\t\t\t\t\t\t\tdata[0].Data,\n\t\t\t\t\t\t\t\t\t\tthis.NoOfRecords,\n\t\t\t\t\t\t\t\t\t\tthis.AggregationColumns\n\t\t\t\t\t\t\t\t ))\n\t\t\t\t\t\t\t\t: (result = data[0].Data);\n\n\t\t\t\t\t\t\tif (this.GroupByDate) {\n\t\t\t\t\t\t\t\tthis.PrepareChartData(result);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.PrepareChartdataWithoutGroupBy(result);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.GetPalette();\n\t\t\t\t\t\tthis.Loading = false;\n\t\t\t\t\t\tthis.cdRef.detectChanges();\n\t\t\t\t\t},\n\t\t\t\t\terror: (error) => {\n\t\t\t\t\t\tNotificationHelper.Error(error.error['error'], '@@Error');\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\treturn;\n\t\t}\n\t}\n\tGetMaxNoOfResults(array, maxResults, sortByField) {\n\t\t// Sort the array in descending order based on the specified field\n\t\tarray.sort((a, b) => b[sortByField] - a[sortByField]);\n\n\t\t// Slice the array to get the top-rated movies based on the maxResults\n\t\tconst topResults = array.slice(0, maxResults);\n\n\t\treturn topResults;\n\t}\n\tPrepareChartData(data) {\n\t\tconst groupedData = this.groupByFieldName(data, this.GroupByTableColumns);\n\t\t// labels => uniquely _Created kr k set krwa dena hy\n\t\tlet chartData: any = { labels: [], datasets: [] };\n\n\t\t// set unique labels for the x-axis\n\t\tdata.forEach((item) => {\n\t\t\t// if (this.GroupByDate === 'Month') {\n\t\t\t// \tconst month = this.getMonthNameByNumber(\n\t\t\t// \t\titem[this.GroupByDateColumns].split('-')[1].replace(/^0+/, '')\n\t\t\t// \t);\n\t\t\t// \tchartData.labels.push(month);\n\t\t\t// }\n\t\t\t// if (this.GroupByDate === 'Year') {\n\t\t\t// \tconst year = item[this.GroupByDateColumns];\n\t\t\t// \tchartData.labels.push(year);\n\t\t\t// }\n\t\t\t// if (this.GroupByDate === 'Day') {\n\t\t\t// \tconst day = item[this.GroupByDateColumns];\n\t\t\t// \tchartData.labels.push(day);\n\t\t\t// }\n\t\t\tchartData.labels.push(item[this.GroupByDateColumns]);\n\t\t});\n\t\tchartData.labels = [...new Set(chartData.labels)];\n\n\t\t// set the datasets according to the given aggregation\n\t\tconst datasets = Object.keys(groupedData).map((key) => {\n\t\t\tconst datasetData = [];\n\t\t\tgroupedData[key].forEach((item) => {\n\t\t\t\tconst index = chartData.labels.indexOf(item[this.GroupByDateColumns]);\n\t\t\t\tdatasetData[index] = item[this.AggregationColumns];\n\t\t\t});\n\t\t\tconst datasetObj = {\n\t\t\t\tlabel: key,\n\t\t\t\tdata: datasetData,\n\t\t\t};\n\t\t\treturn datasetObj;\n\t\t});\n\t\tchartData.datasets = datasets;\n\t\tthis.Chartdata = chartData;\n\t}\n\tPrepareChartdataWithoutGroupBy(data) {\n\t\tconst chartdata = { labels: [], datasets: [{ data: [], label: '' }] };\n\n\t\tdata.forEach((item) => {\n\t\t\tchartdata.labels.push(item[this.GroupByTableColumns]);\n\t\t\tchartdata.datasets[0].data.push(item[this.AggregationColumns]);\n\t\t});\n\t\tchartdata.datasets[0].label = this.AggregationColumns;\n\t\tthis.Chartdata = chartdata;\n\t}\n\tgroupByFieldName(data, fieldName) {\n\t\tconst groupedData = {};\n\n\t\tdata.forEach((item) => {\n\t\t\tconst fieldValue = item[fieldName];\n\n\t\t\tif (!groupedData[fieldValue]) {\n\t\t\t\tgroupedData[fieldValue] = [item];\n\t\t\t} else {\n\t\t\t\tgroupedData[fieldValue].push(item);\n\t\t\t}\n\t\t});\n\n\t\treturn groupedData;\n\t}\n\tGetPalette() {\n\t\tif (this.Chartdata) {\n\t\t\tif (this.ChartPalette) {\n\t\t\t\tthis.metaService\n\t\t\t\t\t.ReadPalette(this.ChartPalette)\n\t\t\t\t\t.subscribe((paletteInfo) => {\n\t\t\t\t\t\tlet colorsArray = [];\n\t\t\t\t\t\tif (paletteInfo.Palette && paletteInfo.Palette.length > 0) {\n\t\t\t\t\t\t\tpaletteInfo.Palette.forEach((color) => {\n\t\t\t\t\t\t\t\tcolorsArray.push(Color.HexFromColor(color));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (colorsArray && colorsArray.length > 0) {\n\t\t\t\t\t\t\tthis.DefaultPalette = colorsArray;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.Chartdata = {\n\t\t\t\t\t\t\t...this.Chartdata,\n\t\t\t\t\t\t\tdatasets: this.SetPrimeNGChartPalette(this.Chartdata.datasets),\n\t\t\t\t\t\t};\n\t\t\t\t\t\tthis.cdRef.detectChanges();\n\t\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.Chartdata = {\n\t\t\t\t...this.Chartdata,\n\t\t\t\tdatasets: this.SetPrimeNGChartPalette(this.Chartdata.datasets),\n\t\t\t};\n\t\t\tthis.cdRef.detectChanges();\n\t\t}\n\t}\n\tSetPrimeNGChartPalette(seriesData: any[]): any {\n\t\tif (this.GroupByDate) {\n\t\t\tconst coloredSeries = seriesData.map((series, index) => {\n\t\t\t\tconst backgroundColorArray = series.data.map(\n\t\t\t\t\t(data) => this.DefaultPalette[index % this.DefaultPalette.length]\n\t\t\t\t);\n\t\t\t\tconst colorObject = {\n\t\t\t\t\t...series,\n\t\t\t\t\tbackgroundColor: backgroundColorArray,\n\t\t\t\t};\n\t\t\t\tif (this.ChartType === 'line') {\n\t\t\t\t\tcolorObject.borderColor =\n\t\t\t\t\t\tthis.DefaultPalette[index % this.DefaultPalette.length];\n\t\t\t\t\tcolorObject.fill = false;\n\t\t\t\t\tcolorObject.tension = 0.4;\n\t\t\t\t}\n\t\t\t\treturn colorObject;\n\t\t\t});\n\t\t\treturn coloredSeries;\n\t\t}\n\t\tconst backgroundColor = [];\n\t\tif (seriesData[0]) {\n\t\t\tseriesData[0].data.forEach((series, index) => {\n\t\t\t\tbackgroundColor.push(\n\t\t\t\t\tthis.DefaultPalette[index % this.DefaultPalette.length]\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\t\treturn [\n\t\t\t{\n\t\t\t\t...seriesData[0],\n\t\t\t\tbackgroundColor: backgroundColor,\n\t\t\t},\n\t\t];\n\t}\n\n\tChangeChartSettings() {\n\t\tif (!this.ChartType) {\n\t\t\tNotificationHelper.Error('@@Please select chart type', '@@Error');\n\t\t\treturn;\n\t\t}\n\t\t// const chartTypes = ['bar', 'line', 'radar'];\n\t\t// if (!chartTypes.includes(this.ChartType)) {\n\t\t// \tthis.Options.plugins.legend.display = false;\n\t\t// }\n\t\t// if (this.LegendPosition && chartTypes.includes(this.ChartType)) {\n\t\t// \tif (this.LegendPosition === 'hide') {\n\t\t// \t\tthis.Options.plugins.legend.display = false;\n\t\t// \t}\n\t\t// \tif (this.LegendPosition !== 'hide') {\n\t\t// \t\tthis.Options.plugins.legend.display = true;\n\t\t// \t\tthis.Options.plugins.legend.position = this.LegendPosition;\n\t\t// \t}\n\t\t// }\n\t\tif (this.HideXAxisGrid) {\n\t\t\tthis.Options.scales.x.grid.display = false;\n\t\t}\n\t\tif (!this.HideXAxisGrid) {\n\t\t\tthis.Options.scales.x.grid.display = true;\n\t\t}\n\t\tif (this.HideYAxisGrid) {\n\t\t\tthis.Options.scales.y.grid.display = false;\n\t\t}\n\t\tif (!this.HideYAxisGrid) {\n\t\t\tthis.Options.scales.y.grid.display = true;\n\t\t}\n\t\tif (this.XLabel) {\n\t\t\tthis.Options.scales.x.title.text = this.XLabel;\n\t\t}\n\t\tif (this.YLabel) {\n\t\t\tthis.Options.scales.y.title.text = this.YLabel;\n\t\t}\n\t\tif (this.BoldXLabel) {\n\t\t\tthis.Options.scales.x.title.font.weight = 900;\n\t\t}\n\t\tif (this.ItalicXLabel) {\n\t\t\tthis.Options.scales.x.title.font.style = 'italic';\n\t\t}\n\t\tif (this.ColorXLabel) {\n\t\t\tconst color = Color.HexFromColor(this.ColorXLabel);\n\t\t\tthis.Options.scales.x.title.color = color;\n\t\t}\n\t\tif (this.BoldYLabel) {\n\t\t\tthis.Options.scales.y.title.font.weight = 900;\n\t\t}\n\t\tif (this.ItalicYLabel) {\n\t\t\tthis.Options.scales.y.title.font.style = 'italic';\n\t\t}\n\t\tif (this.ColorYLabel) {\n\t\t\tconst color = Color.HexFromColor(this.ColorYLabel);\n\t\t\tthis.Options.scales.y.title.color = color;\n\t\t}\n\t\tif (this.FontSizeXLabel) {\n\t\t\tthis.Options.scales.x.title.font.size = this.FontSizeXLabel;\n\t\t}\n\t\tif (this.FontSizeYLabel) {\n\t\t\tthis.Options.scales.y.title.font.size = this.FontSizeYLabel;\n\t\t}\n\t\tif (this.GridColor) {\n\t\t\tconst color = Color.HexFromColor(this.GridColor);\n\t\t\tthis.Options.scales.x.grid.color = color;\n\t\t\tthis.Options.scales.y.grid.color = color;\n\t\t}\n\t\tif (!this.GridColor) {\n\t\t\tthis.Options.scales.x.grid.color = surfaceBorder;\n\t\t\tthis.Options.scales.y.grid.color = surfaceBorder;\n\t\t}\n\t\tif (this.ChartType) {\n\t\t\tconst gridTypes = ['line', 'bar', 'radar'];\n\t\t\tif (gridTypes.includes(this.ChartType)) {\n\t\t\t\tthis.Options.scales.x.display = true;\n\t\t\t\tthis.Options.scales.y.display = true;\n\t\t\t}\n\t\t\tif (!gridTypes.includes(this.ChartType)) {\n\t\t\t\tthis.Options.scales.x.display = false;\n\t\t\t\tthis.Options.scales.y.display = false;\n\t\t\t}\n\t\t}\n\t\tthis.cdRef.detectChanges();\n\t}\n\tgetMonthNameByNumber(monthNumber) {\n\t\tconst monthNames = [\n\t\t\t'January',\n\t\t\t'February',\n\t\t\t'March',\n\t\t\t'April',\n\t\t\t'May',\n\t\t\t'June',\n\t\t\t'July',\n\t\t\t'August',\n\t\t\t'September',\n\t\t\t'October',\n\t\t\t'November',\n\t\t\t'December',\n\t\t];\n\n\t\t// Validate that the monthNumber is within the valid range\n\t\tif (monthNumber >= 1 && monthNumber <= 12) {\n\t\t\t// Return the month name from the array\n\t\t\treturn monthNames[monthNumber - 1]; // Adjusting to 0-based index\n\t\t} else {\n\t\t\treturn 'Invalid month number';\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tif (this.zoomSubscription) {\n\t\t\tthis.zoomSubscription.unsubscribe();\n\t\t}\n\t}\n}\n\nexport class SimpleReportingPanel extends BasePanel {\n\tstatic override SIDS = ['7c88102a-3d44-4799-b86a-0e6e5d24fd6f'];\n\tstatic override SetSelectedItem(item) {\n\t\tSimpleReportingPanel.CheckItem();\n\t\tSimpleReportingPanel.CheckFilterText();\n\t}\n\tprivate static ResetDataBinding(LayoutElement: any, idList: any) {\n\t\tif (LayoutElement) {\n\t\t\tLayoutElement.SRDataSource = null;\n\t\t\tLayoutElement.SRDataSourceID = null;\n\t\t\tLayoutElement.SRDataModelID = null;\n\t\t\tLayoutElement.SRDataFilter = null;\n\t\t\tidList.push(LayoutElement.ID);\n\t\t\tif (LayoutElement.Elements && LayoutElement.Elements.length > 0) {\n\t\t\t\tLayoutElement.Elements.forEach((item: any) => {\n\t\t\t\t\tSimpleReportingPanel.ResetDataBinding(item, idList);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\tprivate static DataModels: BehaviorSubject = new BehaviorSubject(null);\n\tprivate static Tables: BehaviorSubject = new BehaviorSubject(null);\n\tprivate static TableColumns: BehaviorSubject = new BehaviorSubject(null);\n\tprivate static AggregationColumns: BehaviorSubject = new BehaviorSubject(\n\t\tnull\n\t);\n\tprivate static Palettes: BehaviorSubject = new BehaviorSubject(null);\n\tprivate static CheckItem() {\n\t\tif (SimpleReportingPanel.SelectedItem) {\n\t\t\tif (\n\t\t\t\t(SimpleReportingPanel.SelectedItem.SRDataModelID == null &&\n\t\t\t\t\tSimpleReportingPanel.SelectedItem.SRDataSource != null) ||\n\t\t\t\tSimpleReportingPanel.SelectedItem.SourceType == 0\n\t\t\t) {\n\t\t\t\tSimpleReportingPanel.dataService\n\t\t\t\t\t.GetList('dynamic', 'GetAllStaticTables')\n\t\t\t\t\t.subscribe((tables) => {\n\t\t\t\t\t\tSimpleReportingPanel.Tables.next(tables);\n\t\t\t\t\t});\n\t\t\t}\n\t\t\tif (SimpleReportingPanel.SelectedItem.SRDataModelID) {\n\t\t\t\tSimpleReportingPanel.dataModelService\n\t\t\t\t\t.GetModels()\n\t\t\t\t\t.subscribe((models) => {\n\t\t\t\t\t\tSimpleReportingPanel.DataModels.next(models);\n\t\t\t\t\t});\n\t\t\t\tif (SimpleReportingPanel.SelectedItem.SRDataSource) {\n\t\t\t\t\tthis.dataModelService\n\t\t\t\t\t\t.GetFilterInfo(SimpleReportingPanel.SelectedItem.SRDataSource)\n\t\t\t\t\t\t.subscribe((result) => {\n\t\t\t\t\t\t\tSimpleReportingPanel.TableColumns.next(result.Columns);\n\t\t\t\t\t\t});\n\t\t\t\t\tSimpleReportingPanel.dataService\n\t\t\t\t\t\t.GetListWithID(\n\t\t\t\t\t\t\t'dynamic',\n\t\t\t\t\t\t\t'GetTable',\n\t\t\t\t\t\t\tSimpleReportingPanel.SelectedItem.SRDataSource\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.subscribe((result) => {\n\t\t\t\t\t\t\tSimpleReportingPanel.AggregationColumns.next(result.Fields);\n\t\t\t\t\t\t});\n\t\t\t\t\tif (SimpleReportingPanel.SelectedItem.SourceType != null) {\n\t\t\t\t\t\tswitch (SimpleReportingPanel.SelectedItem.SourceType) {\n\t\t\t\t\t\t\tcase SimpleReportingPanel.SelectedItem:\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t\tSimpleReportingPanel.dataService\n\t\t\t\t\t\t\t\t\t.GetItem(\n\t\t\t\t\t\t\t\t\t\t'dynamic',\n\t\t\t\t\t\t\t\t\t\t'GetNonCCOContainersByDataModel',\n\t\t\t\t\t\t\t\t\t\tSimpleReportingPanel.SelectedItem.SRDataModelID\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.subscribe((data) => {\n\t\t\t\t\t\t\t\t\t\tconst container = [];\n\t\t\t\t\t\t\t\t\t\tdata.forEach((tab) => {\n\t\t\t\t\t\t\t\t\t\t\tcontainer.push({\n\t\t\t\t\t\t\t\t\t\t\t\tValue: tab.SID,\n\t\t\t\t\t\t\t\t\t\t\t\tCaption: tab.Caption,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tSimpleReportingPanel.Tables.next(container);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\t\tSimpleReportingPanel.dataService\n\t\t\t\t\t\t\t\t\t.GetItem(\n\t\t\t\t\t\t\t\t\t\t'dynamic',\n\t\t\t\t\t\t\t\t\t\t'GetTablesByDataModel',\n\t\t\t\t\t\t\t\t\t\tSimpleReportingPanel.SelectedItem.SRDataModelID\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.subscribe((tableList) => {\n\t\t\t\t\t\t\t\t\t\tconst tables = [];\n\t\t\t\t\t\t\t\t\t\ttableList.forEach((tab) => {\n\t\t\t\t\t\t\t\t\t\t\ttables.push({\n\t\t\t\t\t\t\t\t\t\t\t\tValue: tab.SID,\n\t\t\t\t\t\t\t\t\t\t\t\tCaption: tab.Caption,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tSimpleReportingPanel.Tables.next(tables);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tSimpleReportingPanel.dataService\n\t\t\t\t\t\t\t.GetItem(\n\t\t\t\t\t\t\t\t'dynamic',\n\t\t\t\t\t\t\t\t'GetNonCCOContainersByDataModel',\n\t\t\t\t\t\t\t\tSimpleReportingPanel.SelectedItem.SRDataModelID\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.subscribe((data) => {\n\t\t\t\t\t\t\t\tlet tables = [];\n\t\t\t\t\t\t\t\tif (data && data.length > 0) {\n\t\t\t\t\t\t\t\t\tlet retVal = data.find(\n\t\t\t\t\t\t\t\t\t\t(tab) =>\n\t\t\t\t\t\t\t\t\t\t\ttab.SID == SimpleReportingPanel.SelectedItem.SRDataSource\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tif (retVal) {\n\t\t\t\t\t\t\t\t\t\tSimpleReportingPanel.SelectedItem.SourceType = 1;\n\t\t\t\t\t\t\t\t\t\tdata.forEach((tab) => {\n\t\t\t\t\t\t\t\t\t\t\ttables.push({\n\t\t\t\t\t\t\t\t\t\t\t\tValue: tab.SID,\n\t\t\t\t\t\t\t\t\t\t\t\tCaption: tab.Caption,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tSimpleReportingPanel.Tables.next(tables);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\tSimpleReportingPanel.dataService\n\t\t\t\t\t\t\t.GetItem(\n\t\t\t\t\t\t\t\t'dynamic',\n\t\t\t\t\t\t\t\t'GetTablesByDataModel',\n\t\t\t\t\t\t\t\tSimpleReportingPanel.SelectedItem.SRDataModelID\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.subscribe((data) => {\n\t\t\t\t\t\t\t\tlet tables = [];\n\t\t\t\t\t\t\t\tif (data && data.length > 0) {\n\t\t\t\t\t\t\t\t\tlet retVal = data.find(\n\t\t\t\t\t\t\t\t\t\t(tab) =>\n\t\t\t\t\t\t\t\t\t\t\ttab.SID == SimpleReportingPanel.SelectedItem.SRDataSource\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tif (retVal) {\n\t\t\t\t\t\t\t\t\t\tSimpleReportingPanel.SelectedItem.SourceType = 2;\n\t\t\t\t\t\t\t\t\t\tdata.forEach((tab) => {\n\t\t\t\t\t\t\t\t\t\t\ttables.push({\n\t\t\t\t\t\t\t\t\t\t\t\tValue: tab.SID,\n\t\t\t\t\t\t\t\t\t\t\t\tCaption: tab.Caption,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tSimpleReportingPanel.Tables.next(tables);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tprivate static ColumnText: BehaviorSubject = new BehaviorSubject(null);\n\tprivate static FilterText: BehaviorSubject = new BehaviorSubject(null);\n\tprivate static SortText: BehaviorSubject = new BehaviorSubject(null);\n\n\tprivate static CheckFilterText() {\n\t\tlet columnText = null;\n\t\tlet filterText = null;\n\t\tlet sortText = null;\n\t\tif (\n\t\t\tSimpleReportingPanel.SelectedItem &&\n\t\t\tSimpleReportingPanel.SelectedItem.SRDataFilter\n\t\t) {\n\t\t\tif (\n\t\t\t\tSimpleReportingPanel.SelectedItem.SRDataFilter.Columns &&\n\t\t\t\tSimpleReportingPanel.SelectedItem.SRDataFilter.Columns.length > 0\n\t\t\t) {\n\t\t\t\tconst list = [];\n\t\t\t\tSimpleReportingPanel.SelectedItem.SRDataFilter.Columns.forEach(\n\t\t\t\t\t(col) => {\n\t\t\t\t\t\tlist.push(col.Name);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tcolumnText = list.join(', ');\n\t\t\t}\n\t\t\tif (\n\t\t\t\tSimpleReportingPanel.SelectedItem.SRDataFilter.Filters &&\n\t\t\t\tSimpleReportingPanel.SelectedItem.SRDataFilter.Filters.length > 0\n\t\t\t) {\n\t\t\t\tfilterText = RequestFilter.getRequestFilterText(\n\t\t\t\t\tSimpleReportingPanel.SelectedItem.SRDataFilter.Filters[0]\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (\n\t\t\t\tSimpleReportingPanel.SelectedItem.SRDataFilter.Sort &&\n\t\t\t\tSimpleReportingPanel.SelectedItem.SRDataFilter.Sort.length > 0\n\t\t\t) {\n\t\t\t\tconst list = [];\n\t\t\t\tSimpleReportingPanel.SelectedItem.SRDataFilter.Sort.forEach((x) => {\n\t\t\t\t\tlist.push(x.Name + ' (' + (x.Order === 0 ? 'ASC' : 'DESC') + ')');\n\t\t\t\t});\n\t\t\t\tsortText = list.join(', ');\n\t\t\t}\n\t\t}\n\t\tSimpleReportingPanel.ColumnText.next(columnText);\n\t\tSimpleReportingPanel.FilterText.next(filterText);\n\t\tSimpleReportingPanel.SortText.next(sortText);\n\t}\n\tprivate static dataService;\n\tprivate static dataModelService;\n\tprivate static chartPaletteService;\n\tprivate static containerSerice;\n\tstatic InitPanel() {\n\t\tSimpleReportingPanel.dataModelService =\n\t\t\tInjectorHelper.InjectorInstance.get(DataModelService);\n\t\tSimpleReportingPanel.dataService =\n\t\t\tInjectorHelper.InjectorInstance.get(DataService);\n\t\tSimpleReportingPanel.chartPaletteService =\n\t\t\tInjectorHelper.InjectorInstance.get(MetaService);\n\t\tSimpleReportingPanel.containerSerice =\n\t\t\tInjectorHelper.InjectorInstance.get(\n\t\t\t\tSelfServiceObjectService\n\t\t\t);\n\t\tthis.InitSelectedItem();\n\n\t\tSimpleReportingPanel.chartPaletteService\n\t\t\t.ReadPaletteInfos()\n\t\t\t.subscribe((paletteInfos: any) => {\n\t\t\t\tif (paletteInfos) {\n\t\t\t\t\tSimpleReportingPanel.Palettes.next(paletteInfos);\n\t\t\t\t}\n\t\t\t});\n\t\tPROPERTYGROUPS.push({\n\t\t\tSID: '7c88102a-3d44-4799-b86a-0e6e5d24fd6f',\n\t\t\tID: 'SimpleReporting',\n\t\t\tCaption: '@@Data for Reporting',\n\t\t\tIndex: 100,\n\t\t\tContent: GenericMenuTab,\n\t\t\tDisplay: PropertyGroupDisplay.Grid,\n\t\t\tColumns: ['1fr', '1fr'],\n\t\t\tRows: ['auto'],\n\t\t\tCheckVisibilityAsync: (item) => {\n\t\t\t\treturn new Promise((resolve) => {\n\t\t\t\t\tconst selected = LayoutService.SelectedItem.getValue();\n\t\t\t\t\tif (\n\t\t\t\t\t\tselected &&\n\t\t\t\t\t\tselected.ElementType &&\n\t\t\t\t\t\tselected.ElementType === 'reporting'\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst layout = LayoutHelper.GetLayout();\n\t\t\t\t\t\tconst resolution = LayoutHelper.GetActiveResolution(layout);\n\t\t\t\t\t\tMetaHelper.FindDataBindingProperties(resolution, selected).then(\n\t\t\t\t\t\t\t(result) => {\n\t\t\t\t\t\t\t\tresolve(!result || !result.IsDataBinding);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve(false);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t});\n\n\t\tLayoutService.ViewType.subscribe((vt) => {\n\t\t\tif (vt == ViewType.Edit && SimpleReportingPanel.SelectedItem) {\n\t\t\t\tSimpleReportingPanel.CheckItem();\n\t\t\t}\n\t\t});\n\n\t\tconst dstype = [\n\t\t\t{ Caption: '@@None', Value: null },\n\t\t\t{ Caption: '@@Static', Value: 0 },\n\t\t\t{ Caption: '@@Container', Value: 1 },\n\t\t\t{ Caption: '@@Dynamic', Value: 2 },\n\t\t];\n\n\t\tPROPERTIES.push({\n\t\t\tID: 'SourceType',\n\t\t\tParent: 'SimpleReporting',\n\t\t\tContent: new ComponentPortal(ComboboxThemeControl),\n\t\t\tLabel: '@@DataSourceType',\n\t\t\tColumn: 1,\n\t\t\tColSpan: 2,\n\t\t\tRow: 1,\n\t\t\tInitArgs: {\n\t\t\t\tRequired: true,\n\t\t\t\tPlaceholder: '',\n\t\t\t\tMultiple: false,\n\t\t\t\tItemsSource: dstype,\n\t\t\t\tDisplayMemberPath: 'Caption',\n\t\t\t\tValueMemberPath: 'Value',\n\t\t\t\tAction: (value) => {\n\t\t\t\t\tif (value && value.Event) {\n\t\t\t\t\t\tdelete SimpleReportingPanel.SelectedItem.SRDataSource;\n\t\t\t\t\t\tdelete SimpleReportingPanel.SelectedItem.SRDataModelID;\n\t\t\t\t\t\tdelete SimpleReportingPanel.SelectedItem.SRDataSourceID;\n\t\t\t\t\t\tdelete SimpleReportingPanel.SelectedItem.SRDataFilter;\n\t\t\t\t\t\tconst mlpcv = new MultiPropertyChangeValue();\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t'SRDataSource',\n\t\t\t\t\t\t\t'SRDataSourceID',\n\t\t\t\t\t\t\t'SRDataModelID',\n\t\t\t\t\t\t\t'SRDataFilter',\n\t\t\t\t\t\t].forEach((x) => {\n\t\t\t\t\t\t\tmlpcv.Properties.push({\n\t\t\t\t\t\t\t\tPropertyName: x,\n\t\t\t\t\t\t\t\tValue: null,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t\tSimpleReportingPanel.ResetDataBinding(\n\t\t\t\t\t\t\tSimpleReportingPanel.SelectedItem,\n\t\t\t\t\t\t\tmlpcv.ElementIDs\n\t\t\t\t\t\t);\n\t\t\t\t\t\tLayoutService.OnMultiLayoutPropertyChanged([mlpcv]);\n\t\t\t\t\t\tswitch (value.Event.value) {\n\t\t\t\t\t\t\tcase null:\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t\tSimpleReportingPanel.dataService\n\t\t\t\t\t\t\t\t\t.GetList('dynamic', 'GetAllStaticTables')\n\t\t\t\t\t\t\t\t\t.subscribe((tables) => {\n\t\t\t\t\t\t\t\t\t\tSimpleReportingPanel.Tables.next(tables);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\t\tSimpleReportingPanel.dataModelService\n\t\t\t\t\t\t\t\t\t.GetModels()\n\t\t\t\t\t\t\t\t\t.subscribe((models) => {\n\t\t\t\t\t\t\t\t\t\tSimpleReportingPanel.DataModels.next(models);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tPROPERTIES.push({\n\t\t\tID: 'SRDataModelID',\n\t\t\tParent: 'SimpleReporting',\n\t\t\tContent: new ComponentPortal(ComboboxThemeControl),\n\t\t\tLabel: '@@DataModel',\n\t\t\tColumn: 1,\n\t\t\tColSpan: 2,\n\t\t\tRow: 2,\n\t\t\tCheckVisibility: (item) => {\n\t\t\t\treturn item.SourceType == 1 || item.SourceType == 2;\n\t\t\t},\n\t\t\tInitArgs: {\n\t\t\t\tRequired: true,\n\t\t\t\tPlaceholder: '',\n\t\t\t\tMultiple: false,\n\t\t\t\tItemsSourceSub: SimpleReportingPanel.DataModels,\n\t\t\t\tDisplayMemberPath: 'Caption',\n\t\t\t\tValueMemberPath: 'SID',\n\t\t\t\tAction: (value) => {\n\t\t\t\t\tif (value && value.Event && value.Event.value) {\n\t\t\t\t\t\tif (SimpleReportingPanel.SelectedItem) {\n\t\t\t\t\t\t\tif (SimpleReportingPanel.SelectedItem.SRDataSource != null) {\n\t\t\t\t\t\t\t\tSimpleReportingPanel.SelectedItem.SRDataSource = null;\n\t\t\t\t\t\t\t\tSimpleReportingPanel.SelectedItem.SRDataFilter = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (SimpleReportingPanel.SelectedItem.SourceType == 1) {\n\t\t\t\t\t\t\t\tSimpleReportingPanel.dataService\n\t\t\t\t\t\t\t\t\t.GetItem(\n\t\t\t\t\t\t\t\t\t\t'dynamic',\n\t\t\t\t\t\t\t\t\t\t'GetNonCCOContainersByDataModel',\n\t\t\t\t\t\t\t\t\t\tSimpleReportingPanel.SelectedItem.SRDataModelID\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.subscribe((data) => {\n\t\t\t\t\t\t\t\t\t\tconst container = [];\n\t\t\t\t\t\t\t\t\t\tdata.forEach((tab) => {\n\t\t\t\t\t\t\t\t\t\t\tcontainer.push({\n\t\t\t\t\t\t\t\t\t\t\t\tValue: tab.SID,\n\t\t\t\t\t\t\t\t\t\t\t\tCaption: tab.Caption,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tSimpleReportingPanel.Tables.next(container);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (SimpleReportingPanel.SelectedItem.SourceType == 2) {\n\t\t\t\t\t\t\t\tSimpleReportingPanel.dataService\n\t\t\t\t\t\t\t\t\t.GetItem(\n\t\t\t\t\t\t\t\t\t\t'dynamic',\n\t\t\t\t\t\t\t\t\t\t'GetTablesByDataModel',\n\t\t\t\t\t\t\t\t\t\tSimpleReportingPanel.SelectedItem.SRDataModelID\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.subscribe((tableList) => {\n\t\t\t\t\t\t\t\t\t\tconst tables = [];\n\t\t\t\t\t\t\t\t\t\ttableList.forEach((tab) => {\n\t\t\t\t\t\t\t\t\t\t\ttables.push({\n\t\t\t\t\t\t\t\t\t\t\t\tValue: tab.SID,\n\t\t\t\t\t\t\t\t\t\t\t\tCaption: tab.Caption,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tSimpleReportingPanel.Tables.next(tables);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tPROPERTIES.push({\n\t\t\tID: 'SRDataSource',\n\t\t\tParent: 'SimpleReporting',\n\t\t\tContent: new ComponentPortal(ComboboxThemeControl),\n\t\t\tLabel: '@@Data Table',\n\t\t\tColumn: 1,\n\t\t\tColSpan: 2,\n\t\t\tRow: 3,\n\t\t\tCheckVisibility: (item) => {\n\t\t\t\treturn item.SourceType == 0 || item.SRDataModelID;\n\t\t\t},\n\t\t\tInitArgs: {\n\t\t\t\tRequired: true,\n\t\t\t\tPlaceholder: '',\n\t\t\t\tMultiple: false,\n\t\t\t\tItemsSourceSub: SimpleReportingPanel.Tables,\n\t\t\t\tDisplayMemberPath: 'Caption',\n\t\t\t\tValueMemberPath: 'Value',\n\t\t\t\tAction: (ev) => {\n\t\t\t\t\tconst selected = ev.SelectedItem;\n\t\t\t\t\tif (selected) {\n\t\t\t\t\t\tthis.dataModelService\n\t\t\t\t\t\t\t.GetFilterInfo(selected.SRDataSource)\n\t\t\t\t\t\t\t.subscribe((result) => {\n\t\t\t\t\t\t\t\tSimpleReportingPanel.TableColumns.next(result.Columns);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\tSimpleReportingPanel.dataService\n\t\t\t\t\t\t\t.GetListWithID(\n\t\t\t\t\t\t\t\t'dynamic',\n\t\t\t\t\t\t\t\t'GetTable',\n\t\t\t\t\t\t\t\tSimpleReportingPanel.SelectedItem.SRDataSource\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.subscribe((result) => {\n\t\t\t\t\t\t\t\tSimpleReportingPanel.AggregationColumns.next(result.Fields);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\tconst changedProps = [];\n\t\t\t\t\t\tif (selected.SourceType == 0 && selected.SRDataModelID != null) {\n\t\t\t\t\t\t\tselected.SRDataModelID = null;\n\t\t\t\t\t\t\tchangedProps.push('SRDataModelID');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchangedProps.push('SRDataSource');\n\t\t\t\t\t\tselected.SRDataFilter = new RequestOptions();\n\t\t\t\t\t\tchangedProps.push('SRDataFilter');\n\t\t\t\t\t\tSimpleReportingPanel.CheckFilterText();\n\t\t\t\t\t\tLayoutService.LayoutChanged.next(null);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tPROPERTIES.push({\n\t\t\tID: 'SRDataFilter',\n\t\t\tParent: 'SimpleReporting',\n\t\t\tContent: new ComponentPortal(ButtonThemeControl),\n\t\t\tColumn: 1,\n\t\t\tColSpan: 2,\n\t\t\tRow: 4,\n\t\t\tCheckVisibility: (item) => {\n\t\t\t\treturn item.SRDataSource;\n\t\t\t},\n\t\t\tInitArgs: {\n\t\t\t\tCaption: '@@Filter & Sorting',\n\t\t\t\tAction: (ev) => {\n\t\t\t\t\tconst selected = ev.SelectedItem;\n\t\t\t\t\tif (selected && selected.SRDataSource) {\n\t\t\t\t\t\tthis.dataModelService\n\t\t\t\t\t\t\t.GetFilterInfo(selected.SRDataSource)\n\t\t\t\t\t\t\t.subscribe((filterInfo) => {\n\t\t\t\t\t\t\t\tif (filterInfo) {\n\t\t\t\t\t\t\t\t\tconst initArgs = new RequestOptionsDialogArgs();\n\t\t\t\t\t\t\t\t\tinitArgs.SystemVariables =\n\t\t\t\t\t\t\t\t\t\tFilterHelper.GetVariables(selected);\n\t\t\t\t\t\t\t\t\tif (selected.SRDataFilter) {\n\t\t\t\t\t\t\t\t\t\tinitArgs.RequestOptions = selected.SRDataFilter;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tinitArgs.ShowFilter = filterInfo.CanFilter;\n\t\t\t\t\t\t\t\t\tfilterInfo.Columns.forEach((x) => {\n\t\t\t\t\t\t\t\t\t\tconst col = new RequestOptionsColumn();\n\t\t\t\t\t\t\t\t\t\tcol.Name = x.Name;\n\t\t\t\t\t\t\t\t\t\tcol.Type = x.DataType;\n\t\t\t\t\t\t\t\t\t\tcol.CanFilter = filterInfo.CanFilter;\n\t\t\t\t\t\t\t\t\t\tcol.CanSelect = filterInfo.CanSelectColumns;\n\t\t\t\t\t\t\t\t\t\tinitArgs.Columns.push(col);\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tRequestOptionsControl.ShowDialog(\n\t\t\t\t\t\t\t\t\t\tinitArgs,\n\t\t\t\t\t\t\t\t\t\t'@@Spalten, Filter und Sortierung',\n\t\t\t\t\t\t\t\t\t\t(r) => {\n\t\t\t\t\t\t\t\t\t\t\tselected.SRDataFilter = r;\n\t\t\t\t\t\t\t\t\t\t\tSimpleReportingPanel.CheckFilterText();\n\t\t\t\t\t\t\t\t\t\t\tLayoutService.OnLayoutPropertyChanged(\n\t\t\t\t\t\t\t\t\t\t\t\tselected.ID,\n\t\t\t\t\t\t\t\t\t\t\t\t'SRDataFilter',\n\t\t\t\t\t\t\t\t\t\t\t\tr\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tPROPERTIES.push({\n\t\t\tID: null,\n\t\t\tLabel: '@@Spalten',\n\t\t\tParent: 'SimpleReporting',\n\t\t\tDataSource: SimpleReportingPanel.ColumnText,\n\t\t\tContent: new ComponentPortal(TextAreaThemeControl),\n\t\t\tColumn: 1,\n\t\t\tColSpan: 2,\n\t\t\tRow: 5,\n\t\t\tCheckVisibility: (item) => {\n\t\t\t\treturn (\n\t\t\t\t\titem.SRDataFilter &&\n\t\t\t\t\titem.SRDataFilter.Columns &&\n\t\t\t\t\titem.SRDataFilter.Columns.length > 0\n\t\t\t\t);\n\t\t\t},\n\t\t\tInitArgs: {\n\t\t\t\tDisabled: true,\n\t\t\t},\n\t\t});\n\n\t\tPROPERTIES.push({\n\t\t\tID: null,\n\t\t\tLabel: '@@Filter',\n\t\t\tParent: 'SimpleReporting',\n\t\t\tDataSource: SimpleReportingPanel.FilterText,\n\t\t\tContent: new ComponentPortal(TextAreaThemeControl),\n\t\t\tColumn: 1,\n\t\t\tColSpan: 2,\n\t\t\tRow: 6,\n\t\t\tCheckVisibility: (item) => {\n\t\t\t\treturn (\n\t\t\t\t\titem.SRDataFilter &&\n\t\t\t\t\titem.SRDataFilter.Filters &&\n\t\t\t\t\titem.SRDataFilter.Filters.length > 0\n\t\t\t\t);\n\t\t\t},\n\t\t\tInitArgs: {\n\t\t\t\tDisabled: true,\n\t\t\t},\n\t\t});\n\n\t\tPROPERTIES.push({\n\t\t\tID: null,\n\t\t\tParent: 'SimpleReporting',\n\t\t\tDataSource: SimpleReportingPanel.SortText,\n\t\t\tContent: new ComponentPortal(TextAreaThemeControl),\n\t\t\tLabel: '@@Sortierung',\n\t\t\tColumn: 1,\n\t\t\tColSpan: 2,\n\t\t\tRow: 7,\n\t\t\tCheckVisibility: (item) => {\n\t\t\t\treturn (\n\t\t\t\t\titem.SRDataFilter &&\n\t\t\t\t\titem.SRDataFilter.Sort &&\n\t\t\t\t\titem.SRDataFilter.Sort.length > 0\n\t\t\t\t);\n\t\t\t},\n\t\t\tInitArgs: {\n\t\t\t\tDisabled: true,\n\t\t\t},\n\t\t});\n\n\t\tconst groupby = [\n\t\t\t{ Caption: '@@Year', Value: 'Year' },\n\t\t\t{ Caption: '@@Month', Value: 'Month' },\n\t\t\t{ Caption: '@@Day', Value: 'Day' },\n\t\t];\n\t\tPROPERTIES.push({\n\t\t\tID: 'GroupByTableColumns',\n\t\t\tParent: 'SimpleReporting',\n\t\t\tContent: new ComponentPortal(ComboboxThemeControl),\n\t\t\tLabel: '@@Group by Table Columns *',\n\t\t\tColumn: 1,\n\t\t\tColSpan: 2,\n\t\t\tRow: 8,\n\t\t\tInitArgs: {\n\t\t\t\tPlaceholder: '@@Columns',\n\t\t\t\tItemsSourceSub: SimpleReportingPanel.TableColumns,\n\t\t\t\tMultiple: false,\n\t\t\t\tValueMemberPath: 'Name',\n\t\t\t\tDisplayMemberPath: 'Name',\n\t\t\t},\n\t\t});\n\t\tPROPERTIES.push({\n\t\t\tID: 'GroupByDate',\n\t\t\tParent: 'SimpleReporting',\n\t\t\tContent: new ComponentPortal(ComboboxThemeControl),\n\t\t\tLabel: '@@Group By Date',\n\t\t\tColumn: 1,\n\t\t\tRow: 9,\n\t\t\tInitArgs: {\n\t\t\t\tPlaceholder: '@@Group By',\n\t\t\t\tMultiple: false,\n\t\t\t\tItemsSource: groupby,\n\t\t\t\tValueMemberPath: 'Value',\n\t\t\t\tDisplayMemberPath: 'Caption',\n\t\t\t},\n\t\t});\n\n\t\tPROPERTIES.push({\n\t\t\tID: 'GroupByDateColumns',\n\t\t\tParent: 'SimpleReporting',\n\t\t\tContent: new ComponentPortal(ComboboxThemeControl),\n\t\t\tLabel: '@@Date Column *',\n\t\t\tColumn: 2,\n\t\t\tRow: 9,\n\t\t\tCheckVisibility: (item) => {\n\t\t\t\treturn item.GroupByDate;\n\t\t\t},\n\t\t\tInitArgs: {\n\t\t\t\tRequired: true,\n\t\t\t\tPlaceholder: '@@Date Column *',\n\t\t\t\tItemsSourceSub: SimpleReportingPanel.TableColumns,\n\t\t\t\tMultiple: false,\n\t\t\t\tValueMemberPath: 'Name',\n\t\t\t\tDisplayMemberPath: 'Name',\n\t\t\t},\n\t\t});\n\n\t\tconst aggregationTypes = [\n\t\t\t{ Caption: '@@Sum', Value: 'sum' },\n\t\t\t{ Caption: '@@Average', Value: 'average' },\n\t\t\t{ Caption: '@@Count', Value: 'count' },\n\t\t\t{ Caption: '@@Min', Value: 'min' },\n\t\t\t{ Caption: '@@Max', Value: 'max' },\n\t\t];\n\n\t\tPROPERTIES.push({\n\t\t\tID: 'AggregationColumns',\n\t\t\tParent: 'SimpleReporting',\n\t\t\tContent: new ComponentPortal(ComboboxThemeControl),\n\t\t\tLabel: '@@Aggregate Value *',\n\t\t\tColumn: 2,\n\t\t\tRow: 10,\n\t\t\tInitArgs: {\n\t\t\t\tRequired: true,\n\t\t\t\tPlaceholder: '@@Aggregation Value',\n\t\t\t\tItemsSourceSub: SimpleReportingPanel.AggregationColumns,\n\t\t\t\tMultiple: false,\n\t\t\t\tValueMemberPath: 'Name',\n\t\t\t\tDisplayMemberPath: 'Name',\n\t\t\t},\n\t\t});\n\n\t\tPROPERTIES.push({\n\t\t\tID: 'Aggregation',\n\t\t\tParent: 'SimpleReporting',\n\t\t\tContent: new ComponentPortal(ComboboxThemeControl),\n\t\t\tLabel: '@@Aggregation *',\n\t\t\tColumn: 1,\n\t\t\tRow: 10,\n\t\t\tInitArgs: {\n\t\t\t\tRequired: true,\n\t\t\t\tPlaceholder: '@@Aggregation',\n\t\t\t\tMultiple: false,\n\t\t\t\tItemsSource: aggregationTypes,\n\t\t\t\tValueMemberPath: 'Value',\n\t\t\t\tDisplayMemberPath: 'Caption',\n\t\t\t},\n\t\t});\n\n\t\tPROPERTIES.push({\n\t\t\tID: 'NoOfRecords',\n\t\t\tParent: 'SimpleReporting',\n\t\t\tContent: new ComponentPortal(TextboxThemeControl),\n\t\t\tLabel: '@@Max no of results',\n\t\t\tColumn: 1,\n\t\t\tColSpan: 2,\n\t\t\tRow: 12,\n\t\t\tInitArgs: {\n\t\t\t\tInputType: 'number',\n\t\t\t},\n\t\t});\n\n\t\tPROPERTIES.push({\n\t\t\tID: null,\n\t\t\tParent: 'SimpleReporting',\n\t\t\tContent: new ComponentPortal(ButtonThemeControl),\n\t\t\tColumn: 1,\n\t\t\tColSpan: 2,\n\t\t\tRow: 13,\n\t\t\tInitArgs: {\n\t\t\t\tCaption: '@@Preview',\n\t\t\t\tAction: (ev: any) => {\n\t\t\t\t\tconst selected = ev.SelectedItem;\n\t\t\t\t\tif (\n\t\t\t\t\t\t!selected.ChartType ||\n\t\t\t\t\t\t!selected.AggregationColumns ||\n\t\t\t\t\t\t!selected.Aggregation ||\n\t\t\t\t\t\t!selected.GroupByTableColumns ||\n\t\t\t\t\t\t!selected.SRDataSource ||\n\t\t\t\t\t\t!selected.SourceType ||\n\t\t\t\t\t\t!selected.SRDataModelID\n\t\t\t\t\t) {\n\t\t\t\t\t\tNotificationHelper.Error(\n\t\t\t\t\t\t\t'@@Please select all the required fields',\n\t\t\t\t\t\t\t'@@Error'\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (selected && selected.SRDataSource) {\n\t\t\t\t\t\tconst filters = FilterHelper.PrepareFilter(selected);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tselected.GroupByTableColumns &&\n\t\t\t\t\t\t\tselected.GroupByTableColumns.length > 0\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tfilters.GroupBy = [selected.GroupByTableColumns];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tselected.AggregationColumns &&\n\t\t\t\t\t\t\tselected.AggregationColumns.length > 0\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst aggregationObj = {\n\t\t\t\t\t\t\t\tField: selected.AggregationColumns,\n\t\t\t\t\t\t\t\tOperation: selected.Aggregation,\n\t\t\t\t\t\t\t\tAlias: selected.AggregationColumns,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tfilters.Aggregations = [aggregationObj];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (selected.GroupByDateColumns && selected.GroupByDate) {\n\t\t\t\t\t\t\tfilters.GroupByDate = {\n\t\t\t\t\t\t\t\tField: selected.GroupByDateColumns,\n\t\t\t\t\t\t\t\tGroupingLevel: selected.GroupByDate,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!selected.GroupByDate) {\n\t\t\t\t\t\t\tdelete filters.GroupByDate;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!selected.GroupByDate) {\n\t\t\t\t\t\t\tdelete filters.GroupByDate;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfilters.EndRow = null;\n\t\t\t\t\t\tfunction GetMaxNoOfResults(array, maxResults, sortByField) {\n\t\t\t\t\t\t\t// Sort the array in descending order based on the specified field\n\t\t\t\t\t\t\tarray.sort((a, b) => b[sortByField] - a[sortByField]);\n\n\t\t\t\t\t\t\t// Slice the array to get the top-rated movies based on the maxResults\n\t\t\t\t\t\t\tconst topResults = array.slice(0, maxResults);\n\n\t\t\t\t\t\t\treturn topResults;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tSimpleReportingPanel.containerSerice\n\t\t\t\t\t\t\t.ExecuteObjectQueryExtended(selected.SRDataSource, filters)\n\t\t\t\t\t\t\t.subscribe((data) => {\n\t\t\t\t\t\t\t\tlet result;\n\t\t\t\t\t\t\t\tif (data && data.length > 0) {\n\t\t\t\t\t\t\t\t\tselected.NoOfRecords && selected.NoOfRecords > 0\n\t\t\t\t\t\t\t\t\t\t? (result = GetMaxNoOfResults(\n\t\t\t\t\t\t\t\t\t\t\t\tdata[0].Data,\n\t\t\t\t\t\t\t\t\t\t\t\tselected.NoOfRecords,\n\t\t\t\t\t\t\t\t\t\t\t\tselected.AggregationColumns\n\t\t\t\t\t\t\t\t\t\t ))\n\t\t\t\t\t\t\t\t\t\t: (result = data[0].Data);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tReportingPreviewComponent.OpenDialog(\n\t\t\t\t\t\t\t\t\tresult,\n\t\t\t\t\t\t\t\t\t(template: any) => {\n\t\t\t\t\t\t\t\t\t\tif (template) {\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n}\n","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Output } from '@angular/core';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { SliderOrientation } from '../../../models/enums/slider.orientation.enum';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-slider',\n templateUrl: './slider.control.html',\n styleUrls: ['./slider.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SliderControl extends IBaseComponent {\n\n static Type: any = 'slider';\n static Default = JSON.parse(JSON.stringify(defaultProperties.slider));\n\n @Output() ValueChanged = new EventEmitter();\n\n constructor(cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.EventList.push('valuechanged');\n }\n\n ControlInitialized() {\n this.cdRef.detectChanges();\n this.Subscriptions['selection'] = LayoutService.SelectionChanged.subscribe((value) => {\n this.cdRef.detectChanges();\n });\n }\n\n onChange(ev) {\n this.triggerEvent('valuechanged');\n this.ValueChanged.emit(this.DataSource);\n }\n\n setFocus() {\n let control = document.getElementById(this.LayoutElement.ID);\n if (control) {\n control.focus();\n }\n }\n}\nexport class SliderPanel extends BasePanel {\n static override SIDS = ['383ef075-2ada-4f3a-a86f-a0d304152cd0']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'383ef075-2ada-4f3a-a86f-a0d304152cd0',\n ID: 'slider',\n Caption: '@@Slider',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'slider';\n }\n });\n PROPERTIES.push({\n ID: \"Orientation\",\n Parent: \"slider\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Orientation\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: SliderOrientation\n }\n })\n PROPERTIES.push({\n ID: \"Minimum\",\n Parent: \"slider\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Minimum\",\n InitArgs: {\n InputType: \"number\"\n }\n });\n PROPERTIES.push({\n ID: \"Maximum\",\n Parent: \"slider\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Maximum\",\n InitArgs: {\n InputType: \"number\"\n }\n });\n PROPERTIES.push({\n ID: \"Step\",\n Parent: \"slider\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Step\",\n InitArgs: {\n InputType: \"number\"\n }\n });\n }\n}","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject } from '@angular/core';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { ListBoxThemeControl } from '../../../appbuilder/controls/listbox/listbox.theme.control';\nimport { TranslationTextBoxThemeControl } from '../../../appbuilder/controls/translation/translation.textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { ContentType } from '../../../models/enums/contenttype.enum';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { StepperOrientation } from '../../../models/enums/stepperorientation.enum';\nimport { LayoutElement } from '../../../models/layoutelement.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-stepper',\n templateUrl: 'stepper.control.html',\n styleUrls: ['stepper.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class StepperControl extends IBaseComponent {\n public static Type = 'stepper';\n public static Default = JSON.parse(JSON.stringify(defaultProperties.stepper))\n\n constructor(cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.EventList.push('stepchanged');\n }\n\n StepChanged(event) {\n const stepObject = { selectedIndex: event.selectedIndex, previouslySelectedIndex: event.previouslySelectedIndex};\n this.triggerEvent('stepchanged', stepObject);\n }\n\n ControlInitialized() {\n this.cdRef.detectChanges();\n this.Subscriptions['selection'] = LayoutService.SelectionChanged.subscribe((value) => {\n this.cdRef.detectChanges();\n });\n if (this.LayoutElementValue) {\n const orientation = this.LayoutElementValue.orientation;\n if (orientation !== StepperOrientation.Horizontal || orientation !== StepperOrientation.Vertical) {\n this.LayoutElementValue.orientation = StepperOrientation.Horizontal;\n }\n }\n }\n}\nexport class StepperPanel extends BasePanel {\n static override SIDS = ['d9f539bc-69f9-432c-b6f4-4492fcf26544']\n static override ElementType = 'stepper'\n static InitPanel() {\n this.InitSelectedItem();\n this.InitSelectedLayout();\n \n PROPERTYGROUPS.push({\n SID:'d9f539bc-69f9-432c-b6f4-4492fcf26544',\n ID: 'stepper',\n Caption: '@@Stepper',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'stepper';\n }\n })\n PROPERTIES.push({\n ID: \"orientation\",\n Parent: \"stepper\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Orientation\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: [\n { Caption: '@@Vertical', Value: 0 },\n { Caption: 'Horizontal', Value: 1 }\n ],\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'Value'\n }\n });\n PROPERTIES.push({\n ID: \"Elements\",\n Parent: \"stepper\",\n Content: new ComponentPortal(ListBoxThemeControl),\n Properties: [\n {\n ID: \"Name\",\n Parent: \"stepper\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Titel\",\n InitArgs: {\n DataType: 'string'\n }\n },\n {\n ID: \"ContentType\",\n Parent: \"stepper\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@ContentType\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: ContentType,\n Action: (ev) => {\n ev.SelectedItem.ElementType = ContentType[ev.SelectedItem.ContentType].toLowerCase();\n }\n }\n }\n ],\n InitArgs: {\n DisplayMemberPath: 'Name',\n GenerateNewItem: () => {\n const elem = new LayoutElement();\n elem.ContentType = ContentType.Grid;\n elem.ElementType = 'grid';\n elem.Name = LayoutHelper.GetNextElementNameByPrefix(StepperPanel.SelectedLayout, StepperPanel.SelectedItem.Name + '_tab');\n return elem;\n }\n }\n });\n }\n}","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { ListBoxThemeControl } from '../../../appbuilder/controls/listbox/listbox.theme.control';\nimport { TranslationTextBoxThemeControl } from '../../../appbuilder/controls/translation/translation.textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { ContentType } from '../../../models/enums/contenttype.enum';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ViewType } from '../../../models/enums/viewtype.enum';\nimport { LayoutElement } from '../../../models/layoutelement.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-tab',\n templateUrl: './tab.control.html',\n styleUrls: ['./tab.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TabControl extends IBaseComponent {\n static Type: any = 'tab';\n static Default = JSON.parse(JSON.stringify(defaultProperties.tab));\n\n SelectedIndex = -1;\n StopClick = false;\n Redraw = false;\n\n private static FindElem(elem, elemToFind) {\n if (elem) {\n if (elem === elemToFind) {\n return true;\n }\n if (elem.Elements) {\n return elem.Elements.some(x => TabControl.FindElem(x, elemToFind));\n }\n }\n return false;\n }\n\n ControlInitialized() {\n this.Subscriptions['ElemChanged'] = LayoutService.SelectedItem.subscribe(x => {\n if (this.LayoutElement && this.LayoutElement.Elements && this.LayoutElement.ViewType === ViewType.Edit) {\n this.LayoutElement.Elements.some((y, i) => {\n if (TabControl.FindElem(y, x)) {\n if (i !== this.SelectedIndex) {\n this.SelectedIndex = i;\n }\n return true;\n }\n return false;\n });\n }\n });\n }\n\n onTabClick(ev) {\n if (this.StopClick) {\n this.StopClick = false;\n if (ev) {\n ev.stopPropagation();\n }\n }\n }\n\n onFocus(ev) {\n if (ev && this.LayoutElement && this.LayoutElement.Elements && this.LayoutElement.ViewType === ViewType.Edit) {\n LayoutService.SelectedItem.next(this.LayoutElement.Elements[ev.index]);\n this.StopClick = true;\n }\n }\n\n ResetTabs() {\n this.Redraw = true;\n setTimeout(() => {\n this.Redraw = false;\n }, 50);\n }\n\n TabChanged(event) {\n if (event) {\n let result = [];\n this.findTable(this.LayoutElement.Elements[event.index].Elements, result);\n if (result.length > 0) {\n result.forEach((element) => {\n if (element.Element) {\n element.Element.Rerender();\n }\n })\n }\n }\n }\n findTable(elements, result) {\n for (let i = 0; i < elements.length; i++) {\n let element = elements[i];\n if (element.ElementType == 'datatable') {\n result.push(element);\n }\n if (element.Elements) {\n this.findTable(element.Elements, result);\n }\n }\n }\n}\nexport class TabPanel extends BasePanel {\n static override SIDS = ['c428ef5a-2133-49c4-9e61-1a3e2f092f1e']\n static override ElementType = 'tab';\n static InitPanel() {\n this.InitSelectedItem();\n this.InitSelectedLayout();\n PROPERTYGROUPS.push({\n SID:'c428ef5a-2133-49c4-9e61-1a3e2f092f1e',\n ID: 'tab',\n Caption: '@@Tab',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'tab';\n }\n })\n PROPERTIES.push({\n ID: \"Elements\",\n Parent: \"tab\",\n Content: new ComponentPortal(ListBoxThemeControl),\n Properties: [\n {\n ID: \"Caption\",\n Parent: \"tab\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Caption\",\n InitArgs: {\n DataType: 'string'\n }\n },\n {\n ID: \"ContentType\",\n Parent: \"tab\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@ContentType\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: ContentType,\n Action: (ev) => {\n ev.SelectedItem.ElementType = ContentType[ev.SelectedItem.ContentType].toLowerCase();\n }\n }\n }\n ],\n InitArgs: {\n DisplayMemberPath: 'Caption',\n GenerateNewItem: () => {\n const elem = new LayoutElement();\n elem.ContentType = ContentType.Grid;\n elem.ElementType = 'grid';\n elem.Name = LayoutHelper.GetNextElementNameByPrefix(TabPanel.SelectedLayout, TabPanel.SelectedItem.Name + '_tab');\n elem.Caption = LayoutHelper.GetNextElementNameByPrefix(TabPanel.SelectedLayout, TabPanel.SelectedItem.Name + '_tab');\n return elem;\n }\n }\n });\n }\n}","import {\n ChangeDetectionStrategy, ChangeDetectorRef, Component,\n EventEmitter, Inject, Input, OnInit, Output,\n} from '@angular/core';\nimport { LayoutService } from '../../../../services/layout.service';\nimport { IBaseComponent } from '../../base.component';\n\n@Component({\n selector: 'basic-datatable',\n templateUrl: './basic-datatable.control.html',\n styleUrls: ['./basic-datatable.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BasicDataTableControl extends IBaseComponent {\n ControlInitialized() {\n throw new Error('Method not implemented.');\n }\n ViewInitialized = false;\n @Input() Columns;\n @Input() DataRows;\n @Output() OnRowDoubleClicked = new EventEmitter();\n constructor(private cdref: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdref, data);\n }\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n this.ViewInitialized = true;\n super.ngAfterViewInit();\n this.cdRef.detectChanges();\n }\n\n RowDoubleClicked(event) {\n this.triggerEvent('DoubleClick', { RowIndex: event.index, RowData: event.data });\n this.OnRowDoubleClicked.emit(event);\n }\n}","import { moveItemInArray } from '@angular/cdk/drag-drop';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { MetaHelper } from '../../../../helpers/meta.helper';\nimport { VariableHelper } from '../../../../helpers/variable.helper';\nimport { ElementProperty } from '../../../../models/layoutbase.model';\nimport { LayoutElement } from '../../../../models/layoutelement.model';\nimport { LayoutService } from '../../../../services/layout.service';\nimport { IBaseComponent } from '../../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-table-column-visibility',\n templateUrl: './columnvisibility.control.html',\n styleUrls: ['./columnvisibility.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EviTableColumnVisibilityControl extends IBaseComponent {\n \n static Type: any = 'tablecolumnvisibility';\n static Default = JSON.parse(JSON.stringify(defaultProperties.tablecolumnvisibility));\n\n DataTable;\n Columns = [];\n FilteredColumns = [];\n\n FilterValue;\n get Filter() {\n return this.FilterValue;\n }\n set Filter(val) {\n this.FilterValue = val;\n this.setFiltered();\n }\n\n _ButtonLayout = new LayoutElement();\n get ButtonLayout() {\n return this._ButtonLayout;\n }\n\n constructor(cdref: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdref, data);\n this.PropertyList.push(new ElementProperty('Filter', 'list', '@@Filter'));\n }\n\n ControlInitialized() {\n this.initConfig();\n this.Subscriptions['Values'] = this.LayoutElementValue.ValuesChanged.subscribe((Property) => {\n this.initConfig();\n });\n }\n\n initConfig() {\n this.Columns = [];\n if (this.LayoutElementValue) {\n this._ButtonLayout = plainToClass(LayoutElement, JSON.parse(JSON.stringify(this.LayoutElementValue)));\n if (this.LayoutElementValue.DataTableID) {\n this.DataTable = MetaHelper.FindElementByID(this.Layout, this.LayoutElementValue.DataTableID);\n if (this.DataTable) {\n this.CreateColumns();\n }\n }\n }\n }\n\n CreateColumns() {\n if (this.DataTable && this.DataTable.Columns) {\n const columns = [];\n this.DataTable.Columns.filter(item => item.FetchData).forEach(col => {\n columns.push({\n Caption: col.Caption ? col.Caption : col.Name,\n Data: col\n });\n });\n this.Columns = columns;\n this.SortColumns();\n this.LoadUserSpecific();\n this.setFiltered();\n }\n }\n\n ButtonInitComplete() {\n this.LayoutElementValue.Element = this;\n }\n LoadUserSpecific() {\n if (VariableHelper.ActiveVariablesMap[this.Layout._Id + '||' + this.LayoutElementValue.ID]) {\n const cols = VariableHelper.ActiveVariablesMap[this.Layout._Id + '||' + this.LayoutElementValue.ID].Value;\n if (cols) {\n this.Columns.forEach((item) => {\n const col = cols.find((value) => value.Name == item.Data.Name);\n if (col) {\n item.Data.Position = col.Position;\n item.Data.IsVisible = col.IsVisible;\n }\n });\n this.SortColumns();\n }\n this.Refresh();\n }\n }\n\n Refresh() {\n if (this.DataTable) {\n this.DataTable.ValuesChanged.next();\n }\n }\n VisibilityChanged() {\n if (this.DataTable) {\n this.DataTable.ValuesChanged.next();\n\n VariableHelper.ValueChanged(this.Layout, {\n ID: this.LayoutElementValue.ID,\n Value: this.GetUserSpecificValue()\n });\n }\n }\n\n onDrop(event) {\n if (event.previousIndex !== event.currentIndex) {\n let previous, current;\n if (this.FilterValue && this.FilterValue.length > 0) {\n const actCol = this.FilteredColumns[event.previousIndex];\n previous = this.Columns.indexOf(actCol);\n if (event.currentIndex > event.previousIndex && event.currentIndex < this.FilteredColumns.length - 1) {\n const targetCol = this.FilteredColumns[event.currentIndex + 1];\n current = this.Columns.indexOf(targetCol) - 1;\n } else {\n const targetCol = this.FilteredColumns[event.currentIndex];\n current = this.Columns.indexOf(targetCol);\n }\n } else {\n previous = event.previousIndex;\n current = event.currentIndex;\n }\n moveItemInArray(this.Columns, previous, current);\n for (let i = 0; i < this.Columns.length; i++) {\n this.Columns[i].Data.Position = i;\n }\n this.setFiltered();\n this.VisibilityChanged();\n }\n }\n\n SortColumns() {\n this.Columns = this.Columns.sort((a, b) => {\n if (a.Data.Position > b.Data.Position) {\n return 1;\n }\n if (a.Data.Position < b.Data.Position) {\n return -1;\n }\n return 0;\n });\n for (let i = 0; i < this.Columns.length; i++) {\n this.Columns[i].Data.Position = i;\n }\n }\n\n GetUserSpecificValue() {\n const cols = [];\n this.Columns.forEach(x => {\n cols.push(x.Data);\n });\n return cols;\n }\n SetUserSpecificValue(val) {\n this.LoadUserSpecific();\n }\n\n setFiltered() {\n if (this.FilterValue && this.FilterValue.length > 0) {\n this.FilteredColumns = this.Columns.filter(x => this.FilterValue.indexOf(x.Data.ContainerFieldID) > -1);\n } else {\n this.FilteredColumns = [...this.Columns];\n }\n }\n}\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef,\n EventEmitter, HostListener, Inject, Input, Output, ViewChild, ViewEncapsulation\n} from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ResizedEvent } from 'angular-resize-event';\nimport { FilterMatchMode, LazyLoadEvent } from 'primeng/api';\nimport { DomHandler } from 'primeng/dom';\nimport { Table, TableService } from 'primeng/table';\nimport { Subject, Subscription } from 'rxjs';\nimport { EnumHelper } from '../../../../helpers/enum.helper';\nimport { FilterHelper } from '../../../../helpers/filter.helper';\nimport { MetaHelper } from '../../../../helpers/meta.helper';\nimport { RTLHelper } from '../../../../helpers/rtl.helper';\nimport { VariableHelper } from '../../../../helpers/variable.helper';\nimport { CustomBaseStyle } from '../../../../models/basic/custombasestyle.model';\nimport { LayoutUnit } from '../../../../models/basic/layoutunit.model';\nimport { Row } from '../../../../models/basic/row.model';\nimport { Comparer } from '../../../../models/enums/comparer.enum';\nimport { Concat } from '../../../../models/enums/contact.enum';\nimport { Order } from '../../../../models/enums/order.enum';\nimport { PagingType } from '../../../../models/enums/pagingtype.enum';\nimport { ResponsiveType } from '../../../../models/enums/responsivetype.enum';\nimport { SelectMode } from '../../../../models/enums/selectmode.enum';\nimport { TableStyle } from '../../../../models/enums/tablestyle.enum';\nimport { UnitType } from '../../../../models/enums/unittype.enum';\nimport { ElementProperty } from '../../../../models/layoutbase.model';\nimport { RequestColumn } from '../../../../models/rest/requestcolumn';\nimport { RequestFilter } from '../../../../models/rest/requestfilter';\nimport { RequestOptions } from '../../../../models/rest/requestoptions';\nimport { RequestSort } from '../../../../models/rest/requestsort';\nimport { Color } from '../../../../models/style/color.model';\nimport { DynamicDataService } from '../../../../services/dynamicdata.service';\nimport { LayoutService } from '../../../../services/layout.service';\nimport { IBaseComponent } from '../../base.component';\nimport { DataTableDataSource, DataTableRowDataSource } from './datatable.datasource';\nimport { DataTableCommunicationService } from \"../../../../services/datatable-communication.service\";\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n@Component({\n selector: 'evi-datatable',\n templateUrl: './datatable.control.html',\n styleUrls: ['./datatable.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DataTableControl extends IBaseComponent {\n static Type: any = 'datatable';\n static Default = JSON.parse(JSON.stringify(defaultProperties.datatable));\n\n //#region Properties\n initialized = false;\n JSON = JSON;\n ViewInitialized = false;\n //#region Data\n DataSourceElement;\n DataSourceID;\n FlatTableSource: any;\n AdditionalFilter: RequestFilter;\n //#region DataSource\n DataSourceValue;\n\n @Input()\n get DataSource() {\n return this.DataSourceValue;\n }\n set DataSource(val) {\n this.DataSourceValue = val;\n this.DataSourceChange.emit(this.DataSourceValue);\n if (val) {\n this.doInit(true);\n }\n this.triggerEvent('DataSourceChanged', this.DataSourceValue);\n this.cdRef.detectChanges();\n }\n\n @Output() DataSourceChange = new EventEmitter();\n //#endregion\n\n\n //#region FilterValue\n FilterValue: RequestOptions = new RequestOptions();\n\n @Input()\n get Filter() {\n return this.FilterValue;\n }\n set Filter(val) {\n this.FilterValue = val;\n this.FilterChange.emit(this.FilterValue);\n this.cdRef.detectChanges();\n }\n\n @Output() FilterChange = new EventEmitter();\n //#endregion\n\n //#region ExternalDataSource\n ExternalDataSourceValue;\n\n @Input()\n get ExternalDataSource() {\n return this.ExternalDataSourceValue;\n }\n set ExternalDataSource(val) {\n this.ExternalDataSourceValue = val;\n this.ExternalDataSourceChange.emit(this.ExternalDataSourceValue);\n if (val) {\n this.doInit(false);\n }\n this.cdRef.detectChanges();\n }\n\n ngOnInit(): void {\n this.datableComService.getSortColumn().subscribe((sort) => {\n if (sort !== null) {\n this.SortColumn = sort;\n }\n else this.SortColumn = null;\n })\n\n this.datableComService.getSortOrder().subscribe((order) => {\n if (order !== null) {\n this.SortOrder = order;\n }\n else this.SortOrder = null;\n })\n }\n\n @Output() ExternalDataSourceChange = new EventEmitter();\n //#endregion\n //#region Source\n @Input()\n get Source() {\n if (this.FlatTableSource) {\n switch (this.PagingType) {\n case PagingType.Pager:\n return this.FlatTableSource.PagedData;\n case PagingType.Scroll:\n case PagingType.Endless:\n return this.FlatTableSource.cachedData;\n }\n }\n }\n @Output() SourceChange = new EventEmitter();\n //#endregion\n //#region DataSourceRows\n get DataSourceRows() {\n if (this.FlatTableSource) {\n return this.FlatTableSource.cachedData;\n } else if (this.Rows) {\n return this.Rows\n } else {\n return null;\n }\n }\n set DataSourceRows(val) {\n if (this.FlatTableSource) {\n this.FlatTableSource.cachedData = val;\n } else if (this.Rows) {\n this.Rows = val;\n }\n this.cdRef.detectChanges();\n }\n //#endregion\n //#region Rows\n RowsValue;\n @Input()\n get Rows() {\n return this.RowsValue;\n }\n set Rows(val) {\n if (Array.isArray(val)) {\n if (val.length > 0) {\n const pd = [];\n let count = 0;\n val.forEach((row) => {\n const toPush = new Row();\n toPush.index = count++;\n toPush.data = row;\n pd.push(toPush);\n });\n this.RowsValue = pd;\n } else {\n this.RowsValue = val;\n }\n } else {\n this.RowsValue = null;\n }\n this.RowsChange.emit(this.RowsValue);\n this.loading = false;\n this.cdRef.detectChanges();\n }\n @Output() RowsChange = new EventEmitter();\n //#endregion\n get RowCount() {\n if (this.Rows) {\n return this.Rows.length;\n }\n if (this.FlatTableSource) {\n switch (this.PagingType) {\n case PagingType.Pager:\n return this.FlatTableSource.cachedData.length;\n case PagingType.Scroll:\n case PagingType.Endless:\n return this.FlatTableSource.cachedData.length;\n }\n }\n }\n\n get TotalRecords() {\n if (this.FlatTableSource) {\n return this.FlatTableSource.FilteredCount;\n } else {\n return 0;\n }\n }\n //#endregion\n\n\n //#region MobileBreakpoint\n //MobileBreakpointValue;\n //@Input()\n //get MobileBreakpoint() {\n // if (this.LayoutElement) {\n // return this.LayoutElement.MobileBreakpoint;\n // } else {\n // return this.MobileBreakpointValue;\n // }\n //}\n //set MobileBreakpoint(val) {\n // if (this.LayoutElement) {\n // this.LayoutElement.MobileBreakpoint = val;\n // this.MobileBreakpointChange.emit(this.LayoutElement.MobileBreakpoint);\n // } else {\n // this.MobileBreakpointValue = val;\n // this.MobileBreakpointChange.emit(this.MobileBreakpointValue);\n // }\n //}\n //@Output() MobileBreakpointChange = new EventEmitter();\n //#endregion\n //#region TableStyle\n //TableStyleValue: TableStyle;\n\n //@Input()\n //get TableStyle() {\n // if (this.LayoutElement) {\n // return this.LayoutElement.TableStyle;\n // } else {\n // return this.TableStyleValue;\n // }\n //}\n //set TableStyle(val) {\n // if (this.LayoutElement) {\n // this.LayoutElement.TableStyle = val;\n // this.TableStyleChange.emit(this.LayoutElement.TableStyle);\n // } else {\n // this.TableStyleValue = val;\n // this.TableStyleChange.emit(this.TableStyleValue);\n // }\n //}\n\n //@Output() TableStyleChange = new EventEmitter();\n //#endregion\n\n DisableAutoLoad = false;\n\n //#region CustomBaseStyle\n get CustomBaseStyleBinding(): CustomBaseStyle {\n if (this.LayoutElementValue) {\n let value = new CustomBaseStyle();\n if (this.LayoutElementValue.CustomBaseStyle) {\n if (this.LayoutElementValue.CustomBaseStyle.HeaderBackground) {\n value.HeaderBackground = Color.HexFromColor(this.LayoutElementValue.CustomBaseStyle.HeaderBackground);\n }\n if (this.LayoutElementValue.CustomBaseStyle.HeaderForeground) {\n value.HeaderForeground = Color.HexFromColor(this.LayoutElementValue.CustomBaseStyle.HeaderForeground);\n }\n if (this.LayoutElementValue.CustomBaseStyle.Line) {\n value.Line = Color.HexFromColor(this.LayoutElementValue.CustomBaseStyle.Line);\n }\n if (this.LayoutElementValue.CustomBaseStyle.StickyBackground) {\n value.StickyBackground = Color.HexFromColor(this.LayoutElementValue.CustomBaseStyle.StickyBackground);\n }\n }\n return value;\n }\n return null;\n }\n CustomBaseStyleValue;\n\n @Input()\n get CustomBaseStyle() {\n if (this.LayoutElement) {\n return this.LayoutElement.CustomBaseStyle;\n } else {\n return this.CustomBaseStyleValue;\n }\n }\n set CustomBaseStyle(val) {\n if (this.LayoutElement) {\n this.LayoutElement.CustomBaseStyle = val;\n this.CustomBaseStyleChange.emit(this.LayoutElement.CustomBaseStyle);\n } else {\n this.CustomBaseStyleValue = val;\n this.CustomBaseStyleChange.emit(this.CustomBaseStyleValue);\n }\n }\n\n @Output() CustomBaseStyleChange = new EventEmitter();\n CellStyles;\n //#endregion\n //#region PagingType\n PagingTypeValue: PagingType = PagingType.Scroll;\n\n @Input()\n get PagingType() {\n if (this.LayoutElement) {\n return this.LayoutElement.PagingType;\n } else {\n return this.PagingTypeValue;\n }\n }\n set PagingType(val) {\n if (this.LayoutElement) {\n this.LayoutElement.PagingType = val;\n this.PagingTypeChange.emit(this.LayoutElement.PagingType);\n } else {\n this.PagingTypeValue = val;\n this.PagingTypeChange.emit(this.PagingTypeValue);\n }\n }\n\n @Output() PagingTypeChange = new EventEmitter();\n //#endregion\n //#region PageSize\n PageSizeValue: number = 300;\n\n @Input()\n get PageSize() {\n return this.PageSizeValue;\n }\n set PageSize(val) {\n this.PageSizeValue = val;\n if (this.FlatTableSource) {\n this.FlatTableSource.pageSize = val;\n }\n this.PageSizeChange.emit(this.PageSizeValue);\n }\n\n @Output() PageSizeChange = new EventEmitter();\n //#endregion\n //#region ResponsiveType\n ResponsiveTypeValue: ResponsiveType;\n\n @Input()\n get ResponsiveType() {\n if (this.LayoutElement) {\n return this.LayoutElement.ResponsiveType;\n } else {\n return this.ResponsiveTypeValue;\n }\n }\n set ResponsiveType(val) {\n if (this.LayoutElement) {\n this.LayoutElement.ResponsiveType = val;\n this.ResponsiveTypeChange.emit(this.LayoutElement.ResponsiveType);\n } else {\n this.ResponsiveTypeValue = val;\n this.ResponsiveTypeChange.emit(this.ResponsiveTypeValue);\n }\n }\n\n @Output() ResponsiveTypeChange = new EventEmitter();\n //#endregion\n //#region SelectMode\n SelectModeValue: SelectMode;\n Select = 'single';\n @Input()\n get SelectMode() {\n if (this.LayoutElement) {\n return this.LayoutElement.SelectMode;\n } else {\n return this.SelectModeValue;\n }\n }\n set SelectMode(val) {\n if (this.LayoutElement) {\n this.LayoutElement.SelectMode = val;\n\n this.SelectModeChange.emit(this.LayoutElement.SelectMode);\n } else {\n this.SelectModeValue = val;\n this.SelectModeChange.emit(this.SelectModeValue);\n }\n this.SetSelect();\n }\n SetSelect() {\n this.Selection = null;\n switch (this.SelectMode) {\n case SelectMode.single:\n case SelectMode['fire&forget']:\n this.Select = 'single';\n break;\n case SelectMode.multi:\n case SelectMode.os:\n this.Select = 'multiple';\n break;\n }\n this.cdRef.detectChanges();\n }\n @Output() SelectModeChange = new EventEmitter();\n //#endregion\n //#region RowsExpandable\n RowsExpandableValue: boolean = false;\n\n @Input()\n get RowsExpandable() {\n if (this.LayoutElement) {\n return this.LayoutElement.RowsExpandable;\n } else {\n return this.RowsExpandableValue;\n }\n }\n set RowsExpandable(val) {\n if (this.LayoutElement) {\n this.LayoutElement.RowsExpandable = val;\n this.RowsExpandableChange.emit(this.LayoutElement.RowsExpandable);\n } else {\n this.RowsExpandableValue = val;\n this.RowsExpandableChange.emit(this.RowsExpandableValue);\n }\n }\n\n @Output() RowsExpandableChange = new EventEmitter();\n //#endregion\n //#region ColumnsExpandable\n ColumnsExpandableValue: boolean = false;\n\n @Input()\n get ColumnsExpandable() {\n if (this.LayoutElement) {\n return this.LayoutElement.ColumnsExpandable;\n } else {\n return this.ColumnsExpandableValue;\n }\n }\n set ColumnsExpandable(val) {\n if (this.LayoutElement) {\n this.LayoutElement.ColumnsExpandable = val;\n this.ColumnsExpandableChange.emit(this.LayoutElement.ColumnsExpandable);\n } else {\n this.ColumnsExpandableValue = val;\n this.ColumnsExpandableChange.emit(this.ColumnsExpandableValue);\n }\n }\n\n @Output() ColumnsExpandableChange = new EventEmitter();\n //#endregion\n //#region ShowSelectAll\n ShowSelectAllValue: boolean = false;\n\n @Input()\n get ShowSelectAll() {\n if (this.LayoutElement) {\n return this.LayoutElement.SelectAll;\n } else {\n return this.ShowSelectAllValue;\n }\n }\n set ShowSelectAll(val) {\n if (this.LayoutElement) {\n this.LayoutElement.SelectAll = val;\n this.ShowSelectAllChange.emit(this.LayoutElement.SelectAll);\n } else {\n this.ShowSelectAllValue = val;\n this.ShowSelectAllChange.emit(this.ShowSelectAllValue);\n }\n }\n\n @Output() ShowSelectAllChange = new EventEmitter();\n //#endregion\n //#region Resizable\n ResizableValue: boolean = false;\n\n @Input()\n get Resizable() {\n if (this.LayoutElement) {\n return this.LayoutElement.Resizable;\n } else {\n return this.ResizableValue;\n }\n }\n set Resizable(val) {\n if (this.LayoutElement) {\n this.LayoutElement.Resizable = val;\n this.ResizableChange.emit(this.LayoutElement.Resizable);\n } else {\n this.ResizableValue = val;\n this.ResizableChange.emit(this.ResizableValue);\n }\n }\n\n @Output() ResizableChange = new EventEmitter();\n //#endregion\n //#region ResizeMode\n ResizeModeValue: string = 'fit';\n\n @Input()\n get ResizeMode() {\n if (this.LayoutElement) {\n if (!this.LayoutElement.ResizeMode) {\n return 'fit';\n }\n return this.LayoutElement.ResizeMode;\n } else {\n if (!this.ResizeModeValue) {\n return 'fit';\n }\n return this.ResizeModeValue;\n }\n }\n set ResizeMode(val) {\n if (this.LayoutElement) {\n this.LayoutElement.ResizeMode = val;\n this.ResizeModeChange.emit(this.LayoutElement.ResizeMode);\n } else {\n this.ResizeModeValue = val;\n this.ResizeModeChange.emit(this.ResizeModeValue);\n }\n }\n\n @Output() ResizeModeChange = new EventEmitter();\n //#endregion\n //#region EditMode\n EditModeValue: string = 'row';\n\n @Input()\n get EditMode() {\n if (this.LayoutElement) {\n if (!this.LayoutElement.EditMode) {\n return 'row';\n }\n return this.LayoutElement.EditMode;\n } else {\n if (!this.EditModeValue) {\n return 'row';\n }\n return this.EditModeValue;\n }\n }\n set EditMode(val) {\n if (this.LayoutElement) {\n this.LayoutElement.EditMode = val;\n this.EditModeChange.emit(this.LayoutElement.EditMode);\n } else {\n this.EditModeValue = val;\n this.EditModeChange.emit(this.EditModeValue);\n }\n }\n\n @Output() EditModeChange = new EventEmitter();\n //#endregion\n //#region LineHeight\n LineHeightValue: number;\n\n @Input()\n get LineHeight() {\n if (this.LayoutElement) {\n if (typeof this.LayoutElement.LineHeight === 'number' && this.LayoutElement.LineHeight >= 0) {\n return this.LayoutElement.LineHeight;\n } else {\n return 40;\n }\n } else {\n if (typeof this.LineHeightValue === 'number' && this.LineHeightValue >= 0) {\n return this.LineHeightValue;\n } else {\n return 40;\n }\n }\n }\n set LineHeight(val) {\n if (this.LayoutElement) {\n this.LayoutElement.LineHeight = val;\n this.LineHeightChange.emit(this.LayoutElement.LineHeight);\n } else {\n this.LineHeightValue = val;\n this.LineHeightChange.emit(this.LineHeightValue);\n }\n }\n\n @Output() LineHeightChange = new EventEmitter();\n //#endregion\n //#region Columns\n ColumnsValue;\n UserSpecificColumns;\n ResponsiveColumns;\n RequestColumns;\n InternalColumns;\n DefaultSort;\n EnumSources = {};\n\n loading = true;\n @Input()\n get Columns() {\n if (this.UserSpecificColumns) {\n return this.UserSpecificColumns;\n } else {\n return this.ColumnsValue;\n }\n }\n set Columns(val) {\n this.CreateColumns(val);\n this.ColumnsChange.emit(this.ColumnsValue);\n this.ColumnsChanged.next(null);\n }\n @Output() ColumnsChange = new EventEmitter();\n ColumnsChanged: Subject = new Subject();\n //#region FixedColumnsLeft\n FixedColumnsLeftValue;\n @Input()\n get FixedColumnsLeft() {\n if (this.LayoutElementValue) {\n return this.LayoutElementValue.FixedColumnsLeft;\n } else {\n return this.FixedColumnsLeftValue;\n }\n }\n set FixedColumnsLeft(val) {\n if (this.LayoutElementValue) {\n this.LayoutElementValue.FixedColumnsLeft = val;\n this.FixedColumnsRightChange.emit(this.LayoutElementValue.FixedColumnsLeft);\n } else {\n this.FixedColumnsLeftValue = val;\n this.FixedColumnsLeftChange.emit(this.FixedColumnsLeftValue);\n }\n this.CreateColumns(this.Columns);\n }\n @Output() FixedColumnsLeftChange = new EventEmitter();\n //#endregion\n //#region FixedColumnsRight\n FixedColumnsRightValue;\n @Input()\n get FixedColumnsRight() {\n if (this.LayoutElementValue) {\n return this.LayoutElementValue.FixedColumnsRight;\n } else {\n return this.FixedColumnsRightValue;\n }\n }\n set FixedColumnsRight(val) {\n if (this.LayoutElementValue) {\n this.LayoutElementValue.FixedColumnsRight = val;\n this.FixedColumnsRightChange.emit(this.LayoutElementValue.FixedColumnsRight);\n } else {\n this.FixedColumnsRightValue = val;\n this.FixedColumnsRightChange.emit(this.FixedColumnsRightValue);\n }\n this.CreateColumns(this.Columns);\n }\n @Output() FixedColumnsRightChange = new EventEmitter();\n //#endregion\n //#endregion\n //#endregion\n FilterOptions = [];\n IsRtl = false;\n //#region LifeCycle\n constructor(private translate: TranslateService, public service: DynamicDataService, private datableComService: DataTableCommunicationService, private cdref: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdref, data);\n this.FilterOptions = EnumHelper.GetDropdownValues(Comparer);\n this.EventList.push('SelectionChanged');\n this.EventList.push('DoubleClick');\n this.EventList.push('ValueChanged');\n this.EventList.push('OnFocus');\n this.PropertyList.push(new ElementProperty('Filter', 'list', '@@Filter'));\n this.PropertyList.push(new ElementProperty('Columns', 'list', '@@Spalten'));\n this.PropertyList.push(new ElementProperty('DataSourceRows', 'list', '@@Zeilen'));\n this.PropertyList.push(new ElementProperty('InternalColumns', 'list', '@@InterneSpalten'));\n this.IsRtl = RTLHelper.Direction == 'rtl';\n this.Subscriptions['RTL'] = RTLHelper.DirectionChanged.subscribe((dir) => {\n this.IsRtl = dir == 'rtl';\n });\n }\n PaginatorSteps = [5, 10, 25, 100];\n onLayoutElementSet() {\n this.SetSelect();\n this.DisableAutoLoad = this.LayoutElementValue.DisableAutoLoad;\n let ps = this.LayoutElementValue.PageSize ? parseInt(this.LayoutElementValue.PageSize) : 300;\n if (this.PagingType == PagingType.Pager && this.PaginatorSteps.indexOf(ps) < 0) {\n ps = this.PaginatorSteps[1];\n }\n this.PageSize = ps;\n }\n onLayoutElementChanged() {\n this.initialized = false;\n this.SetSelect();\n //this.DisableAutoLoad = this.LayoutElementValue.DisableAutoLoad; Disable AutoLoad nur initial setzen, nicht bei jeder Layout-�nderung\n let ps = this.LayoutElementValue.PageSize ? parseInt(this.LayoutElementValue.PageSize) : 300;\n if (this.PagingType == PagingType.Pager && this.PaginatorSteps.indexOf(ps) < 0) {\n ps = this.PaginatorSteps[1];\n }\n this.PageSize = ps;\n this.doInit(false);\n }\n ControlInitialized() {\n this.doInit(false);\n }\n\n doInit(fromDSChange: boolean) {\n this.Selection = [];\n const subDT = this.Subscriptions['DTDataSource'];\n if (subDT && subDT.unsubscribe) {\n subDT.unsubscribe();\n }\n if (this.Rows) {\n if (fromDSChange) {\n if (this.DataSourceValue) {\n this.Rows = this.DataSourceValue;\n }\n } else {\n this.InitializeDataSource(() => new DataTableRowDataSource(this));\n }\n } else if (this.ExternalDataSource) {\n this.InitializeDataSource(() => this.ExternalDataSource);\n } else if (!fromDSChange) {\n MetaHelper.FindDataBindingProperties(this.Layout, this.LayoutElementValue).then(result => {\n if (result) {\n if (result.IsDataBinding) {\n if (result.IsShared) {\n this.DataSourceID = result.Table.SID;\n this.DataSourceElement = this.LayoutElementValue;\n this.AdditionalFilter = new RequestFilter();\n if (result.KeyColumns && result.KeyColumns.length === 1) {\n this.AdditionalFilter.Name = result.KeyColumns[0];\n if (this.DataSourceValue != null) {\n this.AdditionalFilter.Operator = Comparer.Equal;\n this.AdditionalFilter.Value = this.DataSourceValue;\n } else {\n this.AdditionalFilter.Operator = Comparer.In;\n this.AdditionalFilter.Value = [];\n }\n this.Subscriptions['DTDataSource'] = this.DataSourceChange.subscribe(x => {\n if (this.DataSourceValue != null) {\n this.AdditionalFilter.Operator = Comparer.Equal;\n this.AdditionalFilter.Value = this.DataSourceValue;\n } else {\n this.AdditionalFilter.Operator = Comparer.In;\n this.AdditionalFilter.Value = [];\n }\n this.Rerender();\n });\n } else {\n this.AdditionalFilter.Name = '_Id';\n this.AdditionalFilter.Operator = Comparer.In;\n this.AdditionalFilter.Value = [];\n if (Array.isArray(this.DataSourceValue)) {\n this.AdditionalFilter.Value.push(...this.DataSourceValue);\n }\n this.Subscriptions['DTDataSource'] = this.DataSourceChange.subscribe(x => {\n this.AdditionalFilter.Value = [];\n if (Array.isArray(x)) {\n this.AdditionalFilter.Value.push(...x);\n }\n this.Rerender();\n });\n }\n this.Columns = this.LayoutElementValue.Columns;\n this.InitializeDataSource(() => new DataTableDataSource(this.DataSourceID, this.service, TableStyle.DataTable));\n } else {\n this.DataSourceElement = this.LayoutElementValue;\n //this.onRefresh();\n this.Rows = this.DataSourceValue;\n this.Subscriptions['DTDataSource'] = this.DataSourceChange.subscribe(x => {\n this.Rows = x;\n });\n this.Columns = this.LayoutElementValue.Columns;\n this.InitializeDataSource(() => new DataTableRowDataSource(this));\n }\n } else {\n this.DataSourceID = result.Table.SID;\n this.DataSourceElement = MetaHelper.FindValidParent(this.Layout, this.LayoutElementValue);\n this.Columns = this.LayoutElementValue.Columns;\n this.InitializeDataSource(() => new DataTableDataSource(this.DataSourceID, this.service, TableStyle.DataTable));\n }\n }\n });\n }\n this.cdRef.detectChanges();\n }\n\n private setFlatTableSource(source) {\n this.FlatTableSource = source;\n if (this.Subscriptions['Initialized']) {\n this.Subscriptions['Initialized'].unsubscribe();\n }\n this.Subscriptions['Initialized'] = this.FlatTableSource.Initialized.subscribe((res) => {\n this.initialized = res;\n this.cdRef.detectChanges();\n });\n if (this.Subscriptions['Loading']) {\n this.Subscriptions['Loading'].unsubscribe();\n }\n this.Subscriptions['Loading'] = this.FlatTableSource.Loading.subscribe((res) => {\n this.loading = res;\n this.cdRef.detectChanges();\n });\n }\n\n ngAfterViewInit(): void {\n this.ViewInitialized = true;\n super.ngAfterViewInit();\n this.cdRef.detectChanges();\n }\n //#endregion\n\n //#region Table&Data\n //#region Columns\n CreateColumns(val) {\n let doc = document.getElementById(this.LayoutElement.ID);\n let maxWidthPX = 0;\n let docWidth = 0;\n if (doc) {\n docWidth = doc.offsetWidth;\n maxWidthPX = docWidth;\n if (this.SelectMode == 1) {\n maxWidthPX -= Math.ceil(3.4 * 16);\n }\n }\n this.InternalColumns = val;\n this.RequestColumns = [];\n this.DefaultSort = [];\n let cols = [];\n this.ResponsiveColumns = [];\n this.EnumSources = {};\n let tempCols = [];\n if (val) {\n tempCols = val.sort((a, b) => {\n if (typeof a.Position === 'number') {\n if (typeof b.Position === 'number') {\n return a.Position - b.Position;\n } else {\n return 1;\n }\n } else if (typeof b.Position === 'number') {\n return -1;\n } else {\n return 0;\n }\n });\n }\n let count = 0;\n let visiblecolumns = 0;\n const noSizeCols = [];\n tempCols.forEach((col) => {\n if (col.IsVisible) {\n visiblecolumns += 1;\n }\n });\n for (let i = 0; i < tempCols.length; i++) {\n const col = tempCols[i];\n if (col.FetchData || col.FetchData == null) {\n const column = new RequestColumn();\n column.Name = col.Name;\n column.IsCommaSeparated = col.IsCommaSeparated ? true : false;\n this.RequestColumns.push(column);\n }\n if(this.SortColumn!==null && this.SortOrder!==null){\n const sort = new RequestSort();\n sort.Name = this.SortColumn;\n if(this.SortOrder==\"asc\"){\n sort.Order = Order.ASC;\n }\n else{\n sort.Order = Order.DESC;\n }\n this.DefaultSort = []; //Remove previous sort\n this.DefaultSort.push(sort);\n }\n if (typeof col.Order === 'number') {\n const sort = new RequestSort();\n sort.Name = col.Name;\n sort.Order = col.Order;\n this.DefaultSort.push(sort);\n }\n\n if (col.IsVisible) {\n const title = col.Caption ? col.Caption : col.Name;\n this.translate.get(title).subscribe((res: string) => {\n this.GetColumnToPush(col, res).then((toPush) => {\n count += 1;\n if (this.FixedColumnsLeft && this.FixedColumnsLeft >= count) {\n toPush['IsSticky'] = 'left';\n } else if (this.FixedColumnsRight && this.FixedColumnsRight + count > visiblecolumns) {\n toPush['IsSticky'] = 'right';\n }\n\n if (col.ResponsiveTitle) {\n this.ResponsiveColumns.push(toPush);\n }\n if (toPush.Width && typeof toPush.Width.Value == 'number') {\n if (toPush.Width.Type === UnitType.Pixel) {\n maxWidthPX -= toPush.Width.Value;\n } else if (toPush.Width.Type === UnitType.Percent) {\n maxWidthPX -= docWidth * toPush.Width.Value;\n }\n toPush.CalculatedWidth = LayoutUnit.ToStyle(toPush.Width);\n } else {\n noSizeCols.push(toPush);\n }\n cols.push(toPush);\n\n if (count === visiblecolumns) {\n cols = cols.sort((a, b) => {\n if (typeof a.Position === 'number') {\n if (typeof b.Position === 'number') {\n return a.Position - b.Position;\n } else {\n return 1;\n }\n } else if (typeof b.Position === 'number') {\n return -1;\n } else {\n return 0;\n }\n });\n if (noSizeCols.length > 0) {\n let colSize = Math.floor(maxWidthPX / noSizeCols.length);\n if (colSize < 50) {\n colSize = 200;\n }\n noSizeCols.forEach((x) => {\n x.Width = new LayoutUnit();\n x.Width.Value = colSize;\n x.Width.Type = UnitType.Pixel;\n x.CalculatedWidth = LayoutUnit.ToStyle(x.Width);\n });\n }\n this.ColumnsValue = cols;\n\n this.LoadUserSettings();\n if (this.ExternalDataSource) {\n this.InitializeDataSource(() => this.ExternalDataSource);\n }\n this.cdRef.detectChanges();\n }\n });\n });\n }\n }\n }\n private GetColumnToPush(col, translation) {\n return new Promise((resolve, reject) => {\n const toPush: any = {\n Caption: translation,\n Data: col.Name.replace(/\\./g, '_'),\n Name: col.Name,\n IsEditable: col.IsEditable ? true : false,\n IsSortable: col.IsSortable ? true : false,\n IsFilterable: col.IsFilterable ? true : false,\n IsCommaSeparated: col.IsCommaSeparated ? true : false,\n OrderState: 'NONE',\n Type: col.Type,\n Type2: col.Type2,\n Type3: col.Type3,\n Width: col.Width,\n SearchValue: null,\n IsList: col.IsList ? true : false,\n ParentIsList: col.ParentIsList,\n IsVisible: col.IsVisible ? true : false,\n IsSticky: col.IsSticky,\n Prefix: col.Prefix,\n Suffix: col.Suffix,\n Position: col.Position,\n NumericPrecision: col.NumericPrecision,\n DateFormat: col.DateFormat,\n DateFormatCulture: col.DateFormatCulture,\n StyleID: 0,\n UseIcons: col.UseIcons,\n IconMapping: col.IconMapping,\n DefaultIcon: col.DefaultIcon\n };\n if (col.Type2 == '876cf188-243b-49ed-91ab-b2cf27216a30' && col.Type3 !== '00000000-0000-0000-0000-000000000000') {\n EnumHelper.GetEnumValues(col.Type3).then((data) => {\n this.EnumSources[col.Type3] = [...data];\n toPush['IsEnum'] = true;\n toPush['DisplayMemberPath'] = 'Caption';\n toPush['ValueMemberPath'] = 'Value';\n resolve(toPush);\n });\n } else {\n resolve(toPush);\n }\n });\n }\n //#endregion\n SortColumn: string;\n SortOrder: string;\n InitializeDataSource(getDS) {\n if (!this.FlatTableSource) {\n this.setFlatTableSource(getDS());\n }\n this.Filter = FilterHelper.PrepareFilter(this.DataSourceElement);\n if (this.AdditionalFilter) {\n FilterHelper.AddSearchFilter(this.Filter, this.AdditionalFilter);\n }\n this.FlatTableSource.SetFilter(this.Filter.Filters);\n this.FlatTableSource.UseCaching = this.LayoutElementValue.UseCaching;\n this.FlatTableSource.PagingType = this.LayoutElementValue.PagingType;\n this.FlatTableSource.pageSize = this.PageSize;\n this.FlatTableSource.Columns = this.Columns;\n this.FlatTableSource.SetRequestColumns(this.RequestColumns);\n this.FlatTableSource.SetOrder(this.DefaultSort);\n if (!this.DisableAutoLoad) {\n this.FlatTableSource.Initialize();\n }\n }\n OnPage(event) {\n if (this.PagingType == PagingType.Pager) {\n if (this.PageSize != event.rows) {\n this.PageSize = event.rows;\n if (this.FlatTableSource) {\n this.FlatTableSource.RefreshAndFetch(event.first, event.first + event.rows);\n }\n } else if (this.FlatTableSource) {\n this.FlatTableSource.fetch(event.first, event.first + event.rows);\n }\n }\n }\n LazyLoad(event: LazyLoadEvent) {\n if (!this.DisableAutoLoad) {\n if (this.RequestColumns && this.RequestColumns.length > 0) {\n let options = FilterHelper.PrepareFilter(this.DataSourceElement);\n if (this.AdditionalFilter) {\n FilterHelper.AddSearchFilter(options, this.AdditionalFilter);\n }\n if (event.multiSortMeta && event.multiSortMeta.length > 0) {\n let list = [];\n\n for (let i = 0; i < event.multiSortMeta.length; i++) {\n let sort = event.multiSortMeta[i];\n let column = JSON.parse(sort.field);\n if (column.IsSortable) {\n let s = new RequestSort();\n s.Name = column.Name;\n s.Order = sort.order == -1 ? Order.DESC : Order.ASC;\n s.Position = i;\n list.push(s);\n }\n }\n if (list.length > 0) {\n options.Sort = list;\n }\n }\n if (event.filters) {\n let requestFilters = new RequestFilter();\n requestFilters.ConcatOperator = Concat.And;\n let columns = Object.keys(event.filters); {\n for (let i = 0; i < columns.length; i++) {\n let column: any = event.filters[columns[i]];\n let filters = new RequestFilter();\n\n if (column[0] && column[0].operator == 'and') {\n filters.ConcatOperator = Concat.And;\n } else {\n filters.ConcatOperator = Concat.Or;\n }\n if (Array.isArray(column)) {\n column.forEach((filter) => {\n this.ConvertFilter(filter, filters, columns[i]);\n });\n } else {\n this.ConvertFilter(column, filters, columns[i]);\n }\n if (filters.Filters) {\n if (!requestFilters.Filters) {\n requestFilters.Filters = [];\n }\n requestFilters.Filters.push(filters);\n }\n }\n }\n if (requestFilters.Filters) {\n if (options.Filters) {\n options.Filters.push(requestFilters);\n } else {\n options.Filters = [requestFilters];\n }\n }\n }\n if (this.FlatTableSource) {\n if (JSON.stringify(options) != JSON.stringify(this.Filter)) {\n this.Filter = options;\n this.FlatTableSource.SetFilter(options.Filters);\n this.FlatTableSource.SetOrder(options.Sort);\n this.FlatTableSource.Refresh();\n } else {\n if (this.PagingType != PagingType.Pager) {\n this.FlatTableSource.fetch(event.first, event.first + event.rows);\n }\n }\n }\n }\n } else {\n this.DisableAutoLoad = false;\n }\n }\n ConvertFilter(filter, filters, name) {\n if (filter.value != null) {\n if (!filters.Filters) {\n filters.Filters = [];\n }\n let f = new RequestFilter();\n f.Name = name;\n f.Value = filter.value;\n f.Operator = Comparer.Equal;\n switch (filter.matchMode) {\n case FilterMatchMode.EQUALS:\n f.Operator = Comparer.Equal;\n break;\n case FilterMatchMode.NOT_EQUALS:\n f.Operator = Comparer.NotEqual;\n break;\n case FilterMatchMode.CONTAINS:\n f.Operator = Comparer.Like;\n break;\n case FilterMatchMode.LESS_THAN:\n f.Operator = Comparer.Smaller;\n break;\n case FilterMatchMode.LESS_THAN_OR_EQUAL_TO:\n f.Operator = Comparer.SmallerEqual;\n break;\n case FilterMatchMode.GREATER_THAN:\n f.Operator = Comparer.Greater;\n break;\n case FilterMatchMode.GREATER_THAN_OR_EQUAL_TO:\n f.Operator = Comparer.GreaterEqual;\n break;\n }\n filters.Filters.push(f);\n }\n return\n }\n //#endregion\n //#region Actions\n clicked() {\n this.triggerEvent('OnFocus', this.DataSourceValue);\n }\n\n @Output() OnRowDoubleClicked = new EventEmitter();\n RowDoubleClicked(event) {\n this.triggerEvent('DoubleClick', { RowIndex: event.index, RowData: event.data });\n this.OnRowDoubleClicked.emit(event);\n }\n\n ValueChanged(item) {\n this.triggerEvent('ValueChanged', item);\n }\n clones: any = {};\n onCellEdit(event) {\n if (this.EditMode == 'cell') {\n this.ValueChanged(event.data.data);\n }\n }\n onRowEditInit(row) {\n this.clones[row.index] = { ...row.data };\n }\n\n onRowEditSave(row) {\n delete this.clones[row.index];\n this.ValueChanged(row.data);\n }\n\n onRowEditCancel(row, index: number) {\n row.data = this.clones[row.index];\n delete this.clones[row.index];\n }\n ExecuteRefresh() {\n this.DisableAutoLoad = false;\n this.Rerender();\n }\n Rerender() {\n if (this.FlatTableSource) {\n this.initialized = false;\n setTimeout(() => {\n this.doInit(false);\n }, 50);\n }\n this.cdRef.detectChanges();\n }\n //#region Selection\n Selection;\n @Output() RowSelectionChanged = new EventEmitter();\n onRowSelect(event) {\n this.emitSelection();\n }\n onRowUnselect(event) {\n this.emitSelection();\n }\n HeaderSelected = false;\n onHeaderSelect(event) {\n //event.\n this.emitSelection();\n }\n emitSelection() {\n const selection = [];\n if (this.Selection) {\n if (Array.isArray(this.Selection)) {\n if (this.Selection.length > 0) {\n this.Selection.forEach(x => {\n selection.push(x.data);\n });\n }\n } else {\n selection.push(this.Selection.data);\n }\n }\n this.triggerEvent('SelectionChanged', selection);\n this.RowSelectionChanged.emit(selection);\n }\n //#endregion\n ColResized(event) {\n if (event && event.element) {\n let col = this.Columns.find((value) => value.Caption == event.element.innerText);\n if (col) {\n col.CalculatedWidth = event.element.clientWidth + 'px';\n }\n }\n VariableHelper.ValueChanged(this.Layout, {\n ID: this.LayoutElement.ID,\n Value: this.Columns\n });\n }\n ColsReordered(event) {\n if (event.columns) {\n for (let i = 0; i < event.columns.length; i++) {\n event.columns[i].Position = i;\n }\n }\n VariableHelper.ValueChanged(this.Layout, {\n ID: this.LayoutElement.ID,\n Value: this.Columns\n });\n }\n //#endregion\n\n LoadUserSettings() {\n if (this.Layout) {\n this.UserSpecificColumns = null;\n if (VariableHelper.ActiveVariablesMap[this.Layout._Id + '||' + this.LayoutElement.ID]) {\n let retVal = [];\n const cols = VariableHelper.ActiveVariablesMap[this.Layout._Id + '||' + this.LayoutElement.ID].Value;\n if (cols && this.ColumnsValue) {\n this.ColumnsValue.forEach((item) => {\n const col = cols.find((value) => value.Name == item.Name);\n if (col && col.CalculatedWidth) {\n col.Width.Value = col.CalculatedWidth;\n col.Width.Type = 0;\n retVal.push(col);\n } else {\n retVal.push(item);\n }\n })\n this.UserSpecificColumns = retVal;\n this.UserSpecificColumns = this.UserSpecificColumns.sort((a, b) => {\n if (a.Position > b.Position) {\n return 1;\n }\n if (a.Position < b.Position) {\n return -1;\n }\n return 0;\n });\n }\n }\n this.cdRef.detectChanges();\n }\n }\n GetUserSpecificValue() {\n return this.Columns;\n }\n SetUserSpecificValue(val) {\n this.LoadUserSettings();\n }\n\n\n onResize(event: ResizedEvent) {\n if (event && event.newRect) {\n if (this.ColumnsValue) {\n let givenSizes = 0;\n let noSizeCols = [];\n this.ColumnsValue.forEach((col) => {\n let x = null;\n if (this.LayoutElementValue.Columns) {\n x = this.LayoutElementValue.Columns.find((value) => value.Name == col.Name);\n }\n if (x && x.Width && typeof x.Width.Value === 'number') {\n col.Width = x.Width;\n col.CalculatedWidth = LayoutUnit.ToStyle(col.Width);\n if (col.Width.Type === UnitType.Pixel) {\n givenSizes += col.Width.Value;\n } else if (col.Width.Type === UnitType.Percent) {\n givenSizes += event.newRect.width * col.Width.Value;\n }\n } else {\n noSizeCols.push(col);\n }\n });\n if (noSizeCols.length > 0) {\n if (this.SelectMode == 1) {\n givenSizes += Math.ceil(3.4 * 16);\n }\n let colSize = Math.floor((event.newRect.width - givenSizes) / noSizeCols.length);\n if (colSize < 50) {\n colSize = 200;\n }\n noSizeCols.forEach((x) => {\n x.Width = new LayoutUnit();\n x.Width.Value = colSize;\n x.Width.Type = UnitType.Pixel;\n x.CalculatedWidth = LayoutUnit.ToStyle(x.Width);\n });\n }\n }\n this.cdRef.detectChanges();\n }\n }\n\n @HostListener('window:keydown', ['$event'])\n @HostListener('window:click', ['$event'])\n keyboardInput(event) {\n if (event.shiftKey && event.type == \"click\") {\n console.log(\"shiftkey+left mouse\");\n this.Rerender();\n // console.log(this.DefaultSort);\n // this.FlatTableSource.SetOrder(this.DefaultSort);\n }\n }\n}\n\n@Component({\n selector: 'evi-tableHeaderCheckbox',\n template: `\n
\n
\n \n
\n
\n \n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'p-element'\n }\n})\nexport class EviTableHeaderCheckbox {\n\n @ViewChild('box') boxViewChild: ElementRef;\n\n @Input() disabled: boolean;\n\n @Input() inputId: string;\n\n @Input() name: string;\n\n @Input() ariaLabel: string;\n\n checked: boolean;\n\n selectionChangeSubscription: Subscription;\n\n valueChangeSubscription: Subscription;\n\n constructor(public dt: Table, public tableService: TableService, public cd: ChangeDetectorRef) {\n this.valueChangeSubscription = this.dt.tableService.valueSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n\n this.selectionChangeSubscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n\n ngOnInit() {\n this.checked = this.updateCheckedState();\n }\n\n onClick(event: Event) {\n if (!this.disabled) {\n if (this.dt.value && this.dt.value.length > 0) {\n this.dt.toggleRowsWithCheckbox(event, !this.checked);\n }\n this.checked = !this.checked;\n this.checked = this.updateCheckedState();\n }\n\n DomHandler.clearSelection();\n }\n\n onFocus() {\n DomHandler.addClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n\n onBlur() {\n DomHandler.removeClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n\n isDisabled() {\n return this.disabled || !this.dt.value || !this.dt.value.length;\n }\n\n ngOnDestroy() {\n if (this.selectionChangeSubscription) {\n this.selectionChangeSubscription.unsubscribe();\n }\n\n if (this.valueChangeSubscription) {\n this.valueChangeSubscription.unsubscribe();\n }\n }\n\n updateCheckedState() {\n this.cd.markForCheck();\n if (this.dt.filteredValue && !this.dt.lazy) {\n const val = this.dt.filteredValue;\n return (val && val.length > 0 && this.dt.selection && this.dt.selection.length > 0 && this.isAllFilteredValuesChecked());\n }\n else {\n const val = this.dt.value;\n const length = val ? val.length : 0;\n let retVal = (val && length > 0 && this.dt.selection && this.dt.selection.length > 0 && this.dt.selection.length === length);\n if (retVal) {\n val.forEach((item) => {\n if (this.dt.selection.indexOf(item) == -1) {\n retVal = false;\n }\n })\n }\n return retVal;\n }\n }\n\n isAllFilteredValuesChecked() {\n if (!this.dt.filteredValue) {\n return false;\n }\n else {\n for (let rowData of this.dt.filteredValue) {\n if (!this.dt.isSelected(rowData)) {\n return false;\n }\n }\n return true;\n }\n }\n}","import { BehaviorSubject } from 'rxjs';\nimport { FilterHelper } from '../../../../helpers/filter.helper';\nimport { Row } from '../../../../models/basic/row.model';\nimport { PagingType } from '../../../../models/enums/pagingtype.enum';\nimport { TableStyle } from '../../../../models/enums/tablestyle.enum';\nimport { RequestColumn } from '../../../../models/rest/requestcolumn';\nimport { RequestFilter } from '../../../../models/rest/requestfilter';\nimport { RequestOptions } from '../../../../models/rest/requestoptions';\nimport { RequestSort } from '../../../../models/rest/requestsort';\nimport { DynamicDataService } from '../../../../services/dynamicdata.service';\n\nexport abstract class ATableDataSource {\n protected PageCache = {};\n\n //#region PageSize\n private _pageSize = 300;\n get pageSize(): number {\n return this._pageSize;\n }\n set pageSize(val: number) {\n this._pageSize = val;\n if (typeof (this._pageSize) !== 'number') {\n this._pageSize = Number(this._pageSize);\n }\n this.PageCache = {};\n }\n //#endregion\n\n //#region Columns\n protected DynamicResultSize = false;\n private ColumnsValue = [];\n get Columns() {\n return this.ColumnsValue;\n }\n set Columns(value) {\n if (Array.isArray(value)) {\n this.DynamicResultSize = value.some(col => (col.ParentIsList || col.IsList) && col.IsCommaSeparated == false);\n this.ColumnsValue = value;\n } else {\n this.DynamicResultSize = false;\n this.ColumnsValue = [];\n }\n }\n //#endregion\n\n public UseCaching;\n public PagingType: PagingType = PagingType.Scroll;\n public FilteredCount = 0;\n public cachedData = Array.from({ length: this.FilteredCount });\n public PagedData: any[] = [];\n\n public Initialized: BehaviorSubject = new BehaviorSubject(false);\n public Loading: BehaviorSubject = new BehaviorSubject(false);\n\n public abstract SetFilter(filter: RequestFilter[]);\n public abstract SetRequestColumns(columns: RequestColumn[]);\n public abstract SetOrder(order: RequestSort[]);\n public abstract RefreshAndFetch(start: number, end: number);\n protected abstract fetchPage(page: number, pageSize: number);\n\n public Initialize() {\n this.Refresh();\n }\n\n public Refresh() {\n this.RefreshAndFetch(0, this.pageSize);\n }\n\n public fetch(start: number, end: number) {\n const ps = this.pageSize;\n const startPage = Math.floor(start / ps);\n let endPage = Math.floor(end / ps);\n if (end > 0 && end % ps == 0) {\n endPage--;\n }\n if (startPage == endPage && this.PagingType == PagingType.Pager) {\n const loaded = this.PageCache[startPage];\n if (loaded) {\n this.PagedData = this.cachedData.slice(startPage * ps, (startPage * ps) + ps);\n this.cachedData = [...this.cachedData];\n return;\n }\n }\n for (let i = startPage; i <= endPage; i++) {\n const loaded = this.PageCache[i];\n if (!loaded) {\n this.Loading.next(true);\n this.PageCache[i] = [];\n this.fetchPage(i, ps);\n }\n }\n }\n}\n\nexport class DataTableDataSource extends ATableDataSource {\n \n private TableStyle: TableStyle = TableStyle.DataTable;\n private DataSourceID;\n private queryId;\n private TabIndex = 0;\n private Filter: RequestOptions = new RequestOptions();\n private DataService: DynamicDataService; \n private _RowStyle = null;\n\n constructor(DataSourceID, Service, tableStyle: TableStyle) {\n super();\n this.DataSourceID = DataSourceID;\n this.DataService = Service;\n if (typeof tableStyle === 'number') {\n this.TableStyle = tableStyle;\n }\n }\n\n public SetRequestColumns(Columns: RequestColumn[]) {\n if (Columns && Columns.length > 0) {\n this.Filter.Columns = Columns;\n const rs = {};\n Columns.forEach(col => {\n rs[col.Name] = '0';\n });\n this._RowStyle = rs;\n } else {\n this.Filter.Columns = [];\n this._RowStyle = null;\n }\n }\n public SetFilter(Filter: RequestFilter[]) {\n this.Filter.Filters = Filter;\n }\n public SetOrder(Sort: RequestSort[]) {\n this.Filter.Sort = Sort;\n } \n\n protected fetchPage(page: number, pageSize: number) {\n if (this.UseCaching) {\n this.DataService.ExecuteQuery(this.queryId, page * pageSize, (page + 1) * pageSize).subscribe((result) => {\n this.FillResult(result, page);\n });\n } else {\n this.Filter.StartRow = page * pageSize;\n this.Filter.EndRow = this.Filter.StartRow + pageSize;\n // if(this.Filter.Sort.length===0){\n // this.Loading.next(false)\n // return\n // }\n this.DataService.ExecuteQueryWithFilter(this.DataSourceID, this.Filter).subscribe((result) => {\n this.FillResult(result, page);\n });\n }\n }\n\n public Refresh() {\n this.RefreshAndFetch(0, this.pageSize);\n }\n\n public RefreshAndFetch(start: number, end: number) {\n this.TabIndex = 0;\n this.PageCache = {};\n if (this.Filter && this.Filter.Columns && this.Filter.Columns.length > 0) {\n if (this.UseCaching) {\n if (this.queryId) {\n this.DataService.CloseQuery(this.queryId).subscribe((r) => {\n this.DataService.OpenQuery(this.DataSourceID, this.Filter).subscribe((result) => {\n if (result) {\n this.queryId = result;\n if (this.PagingType === PagingType.Endless) {\n this.FilteredCount = this.pageSize * 2;\n this.cachedData = Array.from(Array(this.FilteredCount), (v, index) => new Row());\n this.Initialized.next(true);\n this.fetch(start, end);\n } else {\n this.DataService.ExecuteCountQuery(this.queryId).subscribe(res => {\n if (res) {\n this.FilteredCount = res;\n } else {\n this.FilteredCount = 0;\n }\n this.cachedData = Array.from(Array(this.FilteredCount), (v, index) => new Row());\n this.Initialized.next(true);\n this.fetch(start, end);\n });\n }\n }\n });\n });\n } else {\n this.DataService.OpenQuery(this.DataSourceID, this.Filter).subscribe((result) => {\n if (result) {\n this.queryId = result;\n if (this.PagingType === PagingType.Endless) {\n this.FilteredCount = this.pageSize * 2;\n this.cachedData = Array.from(Array(this.FilteredCount), (v, index) => new Row());\n this.Initialized.next(true);\n this.fetch(start, end);\n } else {\n this.DataService.ExecuteCountQuery(this.queryId).subscribe((data) => {\n if (data) {\n this.FilteredCount = data;\n } else {\n this.FilteredCount = 0;\n }\n this.cachedData = Array.from(Array(this.FilteredCount), (v, index) => new Row());\n this.Initialized.next(true);\n this.fetch(start, end);\n });\n }\n }\n });\n }\n } else {\n if (this.PagingType === PagingType.Endless) {\n this.FilteredCount = this.pageSize * 2;\n this.cachedData = Array.from(Array(this.FilteredCount), (v, index) => new Row());\n this.Initialized.next(true);\n this.fetch(start, end);\n } else {\n this.DataService.ExecuteCount(this.DataSourceID, this.Filter).subscribe((data) => {\n if (data) {\n this.FilteredCount = data;\n } else {\n this.FilteredCount = 0;\n }\n this.cachedData = Array.from(Array(this.FilteredCount), (v, index) => new Row());\n this.Initialized.next(true);\n this.fetch(start, end);\n });\n }\n }\n }\n } \n\n private FillResult(result, page) {\n const ps = this.pageSize;\n const rows = [];\n if (result) {\n let index = page * ps;\n if (this.TableStyle == TableStyle.DataTable) {\n result.forEach((item) => {\n const row = new Row();\n row.data = item;\n row.styles = this._RowStyle;\n row.index = index;\n index++;\n rows.push(row);\n });\n } else {\n result.forEach((item) => {\n const cols = {};\n this.Columns.forEach((column) => {\n cols[column.Name] = {\n selected: false,\n edit: false,\n tabindex: this.TabIndex\n };\n this.TabIndex += 1;\n });\n const row = new Row();\n row.data = item;\n row.cols = cols;\n row.styles = this._RowStyle;\n row.index = index;\n index++;\n rows.push(row);\n });\n }\n }\n this.PageCache[page] = rows;\n\n if (this.DynamicResultSize) {\n if (this.PagingType === PagingType.Endless) {\n if (rows.length >= ps) {\n const actPageLength = page * ps + rows.length;\n let max = (page + 2) * ps;\n while (max <= actPageLength) {\n max += ps;\n }\n while (this.FilteredCount < max) {\n this.FilteredCount += ps;\n }\n }\n } else {\n if (rows.length > ps) {\n this.FilteredCount += rows.length - ps;\n }\n }\n let position = 0;\n this.cachedData = Array.from(Array(this.FilteredCount), (v, index) => new Row());\n let pages = [];\n Object.keys(this.PageCache).forEach(x => {\n pages.push(parseInt(x));\n });\n pages = pages.sort();\n for (let i = 0; i < pages.length; i++) {\n let p = pages[i];\n let items = this.PageCache[p];\n let length = items.length;\n\n let start = (p * ps) + position;\n\n if (length > ps) {\n position += length - ps;\n }\n this.cachedData.splice(start, length, ...items);\n }\n } else {\n if (this.PagingType === PagingType.Endless) {\n if (result && result.length == ps) {\n const max = (page + 2) * ps;\n while (this.FilteredCount < max) {\n this.FilteredCount += ps;\n for (let i = 0; i < ps; i++) {\n this.cachedData.push(new Row());\n }\n }\n }\n }\n this.cachedData.splice(page * ps, ps, ...rows);\n }\n this.PagedData = this.cachedData.slice(page * ps, (page * ps) + ps);\n this.cachedData = [...this.cachedData];\n this.Loading.next(false);\n }\n}\n\nexport class DataTableRowDataSource extends ATableDataSource {\n private _DataRows: any[] = [];\n private _Filters: RequestFilter[] = [];\n private _Sort: RequestSort[] = [];\n\n constructor(table) {\n super();\n if (table) {\n const rows = table.Rows;\n if (Array.isArray(rows)) {\n this._DataRows = rows;\n }\n if (table.RowsChange) {\n table.RowsChange.subscribe(rows => {\n if (Array.isArray(rows)) {\n this._DataRows = rows;\n } else {\n this._DataRows = [];\n }\n this.Refresh();\n });\n }\n }\n }\n\n public SetFilter(filter: RequestFilter[]) {\n this._Filters = filter;\n }\n public SetRequestColumns(columns: RequestColumn[]) {\n }\n public SetOrder(order: RequestSort[]) {\n this._Sort = order;\n }\n public RefreshAndFetch(start: number, end: number) {\n const filtered = FilterHelper.ApplyTableFilter(this._Filters, this._DataRows, this._Sort);\n this.FilteredCount = filtered.length;\n const pageCache = {};\n const ps = this.pageSize;\n let pageIndex = 0;\n if (filtered.length <= ps) {\n pageCache[pageIndex] = filtered;\n } else {\n let dataIndex = 0;\n while (dataIndex < filtered.length) {\n pageCache[pageIndex] = filtered.slice(dataIndex, dataIndex + ps);\n dataIndex += ps;\n pageIndex++;\n }\n }\n this.PageCache = pageCache;\n this.cachedData = filtered;\n this.Initialized.next(true);\n this.fetch(start, end);\n }\n\n protected fetchPage(page: number, pageSize: number) {\n this.Loading.next(false);\n }\n}","import { PortalInjector } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Inject, Injector, Input, Output, ViewChild\n} from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { EnumHelper } from '../../../../helpers/enum.helper';\nimport { FilterHelper } from '../../../../helpers/filter.helper';\nimport { LayoutHelper } from '../../../../helpers/layout.helper';\nimport { MetaHelper } from '../../../../helpers/meta.helper';\nimport { VariableHelper } from '../../../../helpers/variable.helper';\nimport { CustomBaseStyle } from '../../../../models/basic/custombasestyle.model';\nimport { LayoutUnit } from '../../../../models/basic/layoutunit.model';\nimport { Row } from '../../../../models/basic/row.model';\nimport { Comparer } from '../../../../models/enums/comparer.enum';\nimport { PagingType } from '../../../../models/enums/pagingtype.enum';\nimport { ResponsiveType } from '../../../../models/enums/responsivetype.enum';\nimport { SelectMode } from '../../../../models/enums/selectmode.enum';\nimport { TableStyle } from '../../../../models/enums/tablestyle.enum';\nimport { UnitType } from '../../../../models/enums/unittype.enum';\nimport { ElementProperty } from '../../../../models/layoutbase.model';\nimport { RequestColumn } from '../../../../models/rest/requestcolumn';\nimport { RequestFilter } from '../../../../models/rest/requestfilter';\nimport { RequestOptions } from '../../../../models/rest/requestoptions';\nimport { RequestSort } from '../../../../models/rest/requestsort';\nimport { Color } from '../../../../models/style/color.model';\nimport { DynamicDataService } from '../../../../services/dynamicdata.service';\nimport { LayoutService } from '../../../../services/layout.service';\nimport { SettingsService } from '../../../../services/settings.service';\nimport { IBaseComponent } from '../../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-primetable',\n templateUrl: './primetable.control.html',\n styleUrls: ['./primetable.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PrimeTableControl extends IBaseComponent {\n static Type: any = 'primetable';\n static Default = JSON.parse(JSON.stringify(defaultProperties.primetable));\n //#region Properties\n initialized = false;\n ViewInitialized = false;\n EditMode = false;\n //#region Data\n DataSourceElement;\n DataSourceID;\n FlatTableSource: any;\n Filter: RequestOptions = new RequestOptions();\n AdditionalFilter: RequestFilter;\n //#region DataSource\n DataSourceValue;\n\n @Input()\n get DataSource() {\n return this.DataSourceValue;\n }\n set DataSource(val) {\n this.DataSourceValue = val;\n this.DataSourceChange.emit(this.DataSourceValue);\n }\n\n @Output() DataSourceChange = new EventEmitter();\n //#endregion\n //#region ExternalDataSource\n ExternalDataSourceValue;\n\n @Input()\n get ExternalDataSource() {\n return this.ExternalDataSourceValue;\n }\n set ExternalDataSource(val) {\n this.ExternalDataSourceValue = val;\n this.ExternalDataSourceChange.emit(this.ExternalDataSourceValue);\n }\n\n @Output() ExternalDataSourceChange = new EventEmitter();\n //#endregion\n //#region DataSourceRows\n get DataSourceRows() {\n if (this.FlatTableSource) {\n return this.FlatTableSource.cachedData;\n } else if (this.Rows) {\n return this.Rows\n } else {\n return null;\n }\n }\n set DataSourceRows(val) {\n if (this.FlatTableSource) {\n this.FlatTableSource.cachedData = val;\n } else if (this.Rows) {\n this.Rows = val;\n }\n }\n //#endregion\n //#region Rows\n RowsValue;\n FilteredRows;\n\n @Input()\n get Rows() {\n return this.RowsValue;\n }\n set Rows(val) {\n this.RowsValue = val;\n if (Array.isArray(val)) {\n this.FilteredRows = FilterHelper.ApplyFilter(this.Filter, val, this.DefaultSort);\n } else {\n this.FilteredRows = null;\n }\n this.RowsChange.emit(this.RowsValue);\n }\n @Output() RowsChange = new EventEmitter();\n //#endregion\n //#endregion\n\n //#region MobileBreakpoint\n MobileBreakpointValue;\n @Input()\n get MobileBreakpoint() {\n if (this.LayoutElement) {\n return this.LayoutElement.MobileBreakpoint;\n } else {\n return this.MobileBreakpointValue;\n }\n }\n set MobileBreakpoint(val) {\n if (this.LayoutElement) {\n this.LayoutElement.MobileBreakpoint = val;\n this.MobileBreakpointChange.emit(this.LayoutElement.MobileBreakpoint);\n } else {\n this.MobileBreakpointValue = val;\n this.MobileBreakpointChange.emit(this.MobileBreakpointValue);\n }\n }\n @Output() MobileBreakpointChange = new EventEmitter();\n //#endregion\n //#region TableStyle\n TableStyleValue: TableStyle;\n\n @Input()\n get TableStyle() {\n if (this.LayoutElement) {\n return this.LayoutElement.TableStyle;\n } else {\n return this.TableStyleValue;\n }\n }\n set TableStyle(val) {\n if (this.LayoutElement) {\n this.LayoutElement.TableStyle = val;\n this.TableStyleChange.emit(this.LayoutElement.TableStyle);\n } else {\n this.TableStyleValue = val;\n this.TableStyleChange.emit(this.TableStyleValue);\n }\n }\n\n @Output() TableStyleChange = new EventEmitter();\n //#endregion\n //#region CustomBaseStyle\n get CustomBaseStyleBinding(): CustomBaseStyle {\n if (this.LayoutElementValue) {\n let value = new CustomBaseStyle();\n if (this.LayoutElementValue.CustomBaseStyle) {\n if (this.LayoutElementValue.CustomBaseStyle.HeaderBackground) {\n value.HeaderBackground = Color.HexFromColor(this.LayoutElementValue.CustomBaseStyle.HeaderBackground);\n }\n if (this.LayoutElementValue.CustomBaseStyle.HeaderForeground) {\n value.HeaderForeground = Color.HexFromColor(this.LayoutElementValue.CustomBaseStyle.HeaderForeground);\n }\n if (this.LayoutElementValue.CustomBaseStyle.Line) {\n value.Line = Color.HexFromColor(this.LayoutElementValue.CustomBaseStyle.Line);\n }\n if (this.LayoutElementValue.CustomBaseStyle.StickyBackground) {\n value.StickyBackground = Color.HexFromColor(this.LayoutElementValue.CustomBaseStyle.StickyBackground);\n }\n }\n return value;\n }\n return null;\n }\n CustomBaseStyleValue;\n\n @Input()\n get CustomBaseStyle() {\n if (this.LayoutElement) {\n return this.LayoutElement.CustomBaseStyle;\n } else {\n return this.CustomBaseStyleValue;\n }\n }\n set CustomBaseStyle(val) {\n if (this.LayoutElement) {\n this.LayoutElement.CustomBaseStyle = val;\n this.CustomBaseStyleChange.emit(this.LayoutElement.CustomBaseStyle);\n } else {\n this.CustomBaseStyleValue = val;\n this.CustomBaseStyleChange.emit(this.CustomBaseStyleValue);\n }\n }\n\n @Output() CustomBaseStyleChange = new EventEmitter();\n CellStyles;\n //#endregion\n //#region PagingType\n PagingTypeValue: PagingType = PagingType.Scroll;\n\n @Input()\n get PagingType() {\n if (this.LayoutElement) {\n return this.LayoutElement.PagingType;\n } else {\n return this.PagingTypeValue;\n }\n }\n set PagingType(val) {\n if (this.LayoutElement) {\n this.LayoutElement.PagingType = val;\n this.PagingTypeChange.emit(this.LayoutElement.PagingType);\n } else {\n this.PagingTypeValue = val;\n this.PagingTypeChange.emit(this.PagingTypeValue);\n }\n }\n\n @Output() PagingTypeChange = new EventEmitter();\n //#endregion\n //#region ResponsiveType\n ResponsiveTypeValue: ResponsiveType;\n\n @Input()\n get ResponsiveType() {\n if (this.LayoutElement) {\n return this.LayoutElement.ResponsiveType;\n } else {\n return this.ResponsiveTypeValue;\n }\n }\n set ResponsiveType(val) {\n if (this.LayoutElement) {\n this.LayoutElement.ResponsiveType = val;\n this.ResponsiveTypeChange.emit(this.LayoutElement.ResponsiveType);\n } else {\n this.ResponsiveTypeValue = val;\n this.ResponsiveTypeChange.emit(this.ResponsiveTypeValue);\n }\n }\n\n @Output() ResponsiveTypeChange = new EventEmitter();\n //#endregion\n //#region SelectMode\n SelectModeValue: SelectMode;\n\n @Input()\n get SelectMode() {\n if (this.LayoutElement) {\n return this.LayoutElement.SelectMode;\n } else {\n return this.SelectModeValue;\n }\n }\n set SelectMode(val) {\n if (this.LayoutElement) {\n this.LayoutElement.SelectMode = val;\n this.SelectModeChange.emit(this.LayoutElement.SelectMode);\n } else {\n this.SelectModeValue = val;\n this.SelectModeChange.emit(this.SelectModeValue);\n }\n }\n\n @Output() SelectModeChange = new EventEmitter();\n //#endregion\n //#region RowsExpandable\n RowsExpandableValue: boolean = false;\n\n @Input()\n get RowsExpandable() {\n if (this.LayoutElement) {\n return this.LayoutElement.RowsExpandable;\n } else {\n return this.RowsExpandableValue;\n }\n }\n set RowsExpandable(val) {\n if (this.LayoutElement) {\n this.LayoutElement.RowsExpandable = val;\n this.RowsExpandableChange.emit(this.LayoutElement.RowsExpandable);\n } else {\n this.RowsExpandableValue = val;\n this.RowsExpandableChange.emit(this.RowsExpandableValue);\n }\n }\n\n @Output() RowsExpandableChange = new EventEmitter();\n //#endregion\n //#region ColumnsExpandable\n ColumnsExpandableValue: boolean = false;\n\n @Input()\n get ColumnsExpandable() {\n if (this.LayoutElement) {\n return this.LayoutElement.ColumnsExpandable;\n } else {\n return this.ColumnsExpandableValue;\n }\n }\n set ColumnsExpandable(val) {\n if (this.LayoutElement) {\n this.LayoutElement.ColumnsExpandable = val;\n this.ColumnsExpandableChange.emit(this.LayoutElement.ColumnsExpandable);\n } else {\n this.ColumnsExpandableValue = val;\n this.ColumnsExpandableChange.emit(this.ColumnsExpandableValue);\n }\n }\n\n @Output() ColumnsExpandableChange = new EventEmitter();\n //#endregion\n //#region ShowSelectAll\n ShowSelectAllValue: boolean = false;\n\n @Input()\n get ShowSelectAll() {\n if (this.LayoutElement) {\n return this.LayoutElement.SelectAll;\n } else {\n return this.ShowSelectAllValue;\n }\n }\n set ShowSelectAll(val) {\n if (this.LayoutElement) {\n this.LayoutElement.SelectAll = val;\n this.ShowSelectAllChange.emit(this.LayoutElement.SelectAll);\n } else {\n this.ShowSelectAllValue = val;\n this.ShowSelectAllChange.emit(this.ShowSelectAllValue);\n }\n }\n\n @Output() ShowSelectAllChange = new EventEmitter();\n //#endregion\n //#region Resizable\n ResizableValue: boolean = false;\n\n @Input()\n get Resizable() {\n if (this.LayoutElement) {\n return this.LayoutElement.Resizable;\n } else {\n return this.ResizableValue;\n }\n }\n set Resizable(val) {\n if (this.LayoutElement) {\n this.LayoutElement.Resizable = val;\n this.ResizableChange.emit(this.LayoutElement.Resizable);\n } else {\n this.ResizableValue = val;\n this.ResizableChange.emit(this.ResizableValue);\n }\n }\n\n @Output() ResizableChange = new EventEmitter();\n //#endregion\n //#region LineHeight\n LineHeightValue: number;\n\n @Input()\n get LineHeight() {\n if (this.LayoutElement) {\n return this.LayoutElement.LineHeight;\n } else {\n return this.LineHeightValue;\n }\n }\n set LineHeight(val) {\n if (this.LayoutElement) {\n this.LayoutElement.LineHeight = val;\n this.LineHeightChange.emit(this.LayoutElement.LineHeight);\n } else {\n this.LineHeightValue = val;\n this.LineHeightChange.emit(this.LineHeightValue);\n }\n }\n\n @Output() LineHeightChange = new EventEmitter();\n //#endregion\n //#region Columns\n ColumnsValue;\n UserSpecificColumns;\n ResponsiveColumns;\n RequestColumns;\n InternalColumns;\n DefaultSort;\n @Input()\n get Columns() {\n if (this.UserSpecificColumns) {\n return this.UserSpecificColumns;\n } else {\n return this.ColumnsValue;\n }\n }\n set Columns(val) {\n this.CreateColumns(val);\n this.ColumnsChange.emit(this.ColumnsValue);\n }\n @Output() ColumnsChange = new EventEmitter();\n\n FixedColumnsLeftValue;\n @Input()\n get FixedColumnsLeft() {\n if (this.LayoutElementValue) {\n return this.LayoutElementValue.FixedColumnsLeft;\n } else {\n return this.FixedColumnsLeftValue;\n }\n }\n set FixedColumnsLeft(val) {\n if (this.LayoutElementValue) {\n this.LayoutElementValue.FixedColumnsLeft = val;\n this.FixedColumnsRightChange.emit(this.LayoutElementValue.FixedColumnsLeft);\n } else {\n this.FixedColumnsLeftValue = val;\n this.FixedColumnsLeftChange.emit(this.FixedColumnsLeftValue);\n }\n this.CreateColumns(this.Columns);\n }\n @Output() FixedColumnsLeftChange = new EventEmitter();\n\n FixedColumnsRightValue;\n @Input()\n get FixedColumnsRight() {\n if (this.LayoutElementValue) {\n return this.LayoutElementValue.FixedColumnsRight;\n } else {\n return this.FixedColumnsRightValue;\n }\n }\n set FixedColumnsRight(val) {\n if (this.LayoutElementValue) {\n this.LayoutElementValue.FixedColumnsRight = val;\n this.FixedColumnsRightChange.emit(this.LayoutElementValue.FixedColumnsRight);\n } else {\n this.FixedColumnsRightValue = val;\n this.FixedColumnsRightChange.emit(this.FixedColumnsRightValue);\n }\n this.CreateColumns(this.Columns);\n }\n @Output() FixedColumnsRightChange = new EventEmitter();\n //#endregion\n //#endregion\n ScrollHeight=\"0\";\n private container: ElementRef;\n @ViewChild('container') set _container(content: ElementRef) {\n this.container = content;\n if (this.container && this.container.nativeElement && this.ScrollHeight == \"0\") {\n this.ScrollHeight = this.container.nativeElement.clientHeight+'px';\n }\n }\n\n //#region LifeCycle\n constructor(private translate: TranslateService, public DataService: DynamicDataService, private settingsService: SettingsService, private cdref: ChangeDetectorRef, public _injector: Injector, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdref, data);\n this.EventList.push('SelectionChanged');\n this.EventList.push('DoubleClick');\n this.EventList.push('ValueChanged');\n this.EventList.push('OnFocus');\n this.PropertyList.push(new ElementProperty('Filter', 'list', '@@Filter'));\n this.PropertyList.push(new ElementProperty('Columns', 'list', '@@Spalten'));\n this.PropertyList.push(new ElementProperty('DataSourceRows', 'list', '@@Zeilen'));\n this.PropertyList.push(new ElementProperty('InternalColumns', 'list', '@@InterneSpalten'));\n //this.PropertyList.push(new ElementProperty('FlatTableSource.cachedData', 'list', '@@DataSource Zeilen'));\n }\n CreateColumns(val) {\n this.InternalColumns = val;\n this.RequestColumns = [];\n this.DefaultSort = [];\n const cols = [];\n this.ResponsiveColumns = [];\n const tempCols = val.sort((a, b) => {\n if (typeof a.Position === 'number') {\n if (typeof b.Position === 'number') {\n return a.Position - b.Position;\n } else {\n return 1;\n }\n } else if (typeof b.Position === 'number') {\n return -1;\n } else {\n return 0;\n }\n });\n let colcount = 0;\n let maxWidth = 100;\n let count = 0;\n let visiblecolumns = 0;\n tempCols.forEach((col) => {\n if (col.IsVisible) {\n visiblecolumns += 1;\n }\n });\n for (let i = 0; i < tempCols.length; i++) {\n const col = tempCols[i];\n if (col.FetchData || col.FetchData == null) {\n const column = new RequestColumn();\n column.Name = col.Name;\n column.IsCommaSeparated = col.IsCommaSeparated ? true : false;\n this.RequestColumns.push(column);\n }\n if (typeof col.Order === 'number') {\n const sort = new RequestSort();\n sort.Name = col.Name;\n sort.Order = col.Order;\n this.DefaultSort.push(sort);\n }\n\n if (col.IsVisible) {\n const title = col.Caption ? col.Caption : col.Name;\n this.translate.get(title).subscribe((res: string) => {\n if (!col.Width || (col.Width && col.Width.Value == null)) {\n colcount += 1;\n } else {\n\n if (col.Width.Type === UnitType.Percent) {\n maxWidth -= col.Width.Value;\n }\n }\n this.GetColumnToPush(col, res).then((toPush) => {\n count += 1;\n if (this.FixedColumnsLeft && this.FixedColumnsLeft >= i + 1) {\n toPush['IsSticky'] = true;\n } else if (this.FixedColumnsRight && i + this.FixedColumnsRight >= tempCols.length) {\n toPush['IsSticky'] = true;\n }\n if (col.ResponsiveTitle) {\n this.ResponsiveColumns.push(toPush);\n }\n cols.push(toPush);\n if (count === visiblecolumns) {\n cols.forEach((x) => {\n if (!x.Width || !(typeof x.Width.Value === 'number')) {\n x.Width = new LayoutUnit();\n x.Width.Value = (maxWidth / colcount);\n x.Width.Type = UnitType.Percent;\n }\n });\n this.ColumnsValue = cols;\n this.LoadUserSettings();\n if (this.FlatTableSource && !this.DisableAutoLoad) {\n this.FlatTableSource.Columns = this.Columns; \n this.FlatTableSource.SetRequestColumns(this.RequestColumns);\n this.FlatTableSource.SetOrder(this.DefaultSort);\n this.FlatTableSource.Initialize();\n }\n }\n });\n });\n }\n }\n }\n GetColumnToPush(col, tanslation) {\n return new Promise((resolve, reject) => {\n const toPush = {\n ContainerFieldID: col.ContainerFieldID,\n Caption: tanslation,\n Data: col.Name.replace(/\\./g, '_'),\n Name: col.Name,\n IsSortable: col.IsSortable ? true : false,\n IsFilterable: col.IsFilterable ? true : false,\n IsCommaSeparated: col.IsCommaSeparated ? true : false,\n OrderState: 'NONE',\n Type: col.Type,\n Type2: col.Type2,\n Type3: col.Type3,\n Width: col.Width,\n SearchValue: null,\n IsList: col.IsList ? true : false,\n ParentIsList: col.ParentIsList,\n IsVisible: col.IsVisible ? true : false,\n IsSticky: col.IsSticky,\n Prefix: col.Prefix,\n Suffix: col.Suffix,\n Position: col.Position,\n NumericPrecision: col.NumericPrecision,\n DateFormat: col.DateFormat,\n StyleID: 0\n };\n if (col.Type2 == '876cf188-243b-49ed-91ab-b2cf27216a30' && col.Type3 !== '00000000-0000-0000-0000-000000000000') {\n EnumHelper.GetEnumValues(col.Type3).then((data) => {\n toPush['EnumSource'] = [...data];\n toPush['IsEnum'] = true;\n toPush['DisplayMemberPath'] = 'Caption';\n toPush['ValueMemberPath'] = 'Value';\n resolve(toPush);\n });\n } else {\n resolve(toPush);\n }\n });\n }\n onLayoutElementChanged() {\n this.initialized = false;\n this.ControlInitialized();\n }\n dragType;\n dragItem;\n Dragging;\n DisableAutoLoad = false;\n ControlInitialized() {\n\n this.FillElements(this.LayoutElementValue.HeaderViewDefinition);\n this.FillElements(this.LayoutElementValue.ContentViewDefinition);\n this.FillElements(this.LayoutElementValue.ContentEditDefinition);\n\n\n const subDT = this.Subscriptions['DTDataSource'];\n if (subDT && subDT.unsubscribe) {\n subDT.unsubscribe();\n }\n const subInit = this.Subscriptions['Initialized'];\n if (subInit && subInit.unsubscribe) {\n subInit.unsubscribe();\n }\n this.Subscriptions['Overlay'] = LayoutService.OverlayStatus.subscribe((overlay) => {\n this.EditMode = overlay;\n });\n this.DisableAutoLoad = this.LayoutElementValue.DisableAutoLoad;\n if (this.Rows) {\n this.initialized = true;\n } else if (this.ExternalDataSource) {\n this.FlatTableSource = this.ExternalDataSource;\n this.InitializeDataSource();\n } else {\n MetaHelper.FindDataBindingProperties(this.Layout, this.LayoutElementValue).then(result => {\n if (result) {\n if (result.IsDataBinding) {\n if (result.IsShared) {\n this.DataSourceID = result.Table.SID;\n this.AdditionalFilter = new RequestFilter();\n if (result.KeyColumns && result.KeyColumns.length === 1) {\n this.AdditionalFilter.Name = result.KeyColumns[0];\n if (this.DataSourceValue != null) {\n this.AdditionalFilter.Operator = Comparer.Equal;\n this.AdditionalFilter.Value = this.DataSourceValue;\n } else {\n this.AdditionalFilter.Operator = Comparer.In;\n this.AdditionalFilter.Value = [];\n }\n this.Subscriptions['DTDataSource'] = this.DataSourceChange.subscribe(x => {\n if (this.DataSourceValue != null) {\n this.AdditionalFilter.Operator = Comparer.Equal;\n this.AdditionalFilter.Value = this.DataSourceValue;\n } else {\n this.AdditionalFilter.Operator = Comparer.In;\n this.AdditionalFilter.Value = [];\n }\n this.ExecuteRefresh();\n });\n } else {\n this.AdditionalFilter.Name = '_Id';\n this.AdditionalFilter.Operator = Comparer.In;\n this.AdditionalFilter.Value = [];\n if (Array.isArray(this.DataSourceValue)) {\n this.AdditionalFilter.Value.push(...this.DataSourceValue);\n }\n this.Subscriptions['DTDataSource'] = this.DataSourceChange.subscribe(x => {\n this.AdditionalFilter.Value = [];\n if (Array.isArray(x)) {\n this.AdditionalFilter.Value.push(...x);\n }\n this.ExecuteRefresh();\n });\n }\n this.createColumns();\n this.InitializeDataSource();\n } else {\n this.DataSourceElement = this.LayoutElementValue;\n this.onRefresh();\n this.Rows = this.DataSourceValue;\n this.Subscriptions['DTDataSource'] = this.DataSourceChange.subscribe(x => {\n this.Rows = x;\n });\n this.createColumns();\n this.initialized = true;\n }\n } else {\n this.DataSourceID = result.Table.SID;\n this.DataSourceElement = MetaHelper.FindValidParent(this.Layout, this.LayoutElementValue);\n this.createColumns();\n this.InitializeDataSource();\n }\n }\n });\n }\n this.Subscriptions['DragStart'] = this.settingsService.DragStart.subscribe((item) => {\n if (this.LayoutElement.Selected) {\n this.dragItem = item.item;\n this.Dragging = true;\n }\n });\n this.Subscriptions['DragType'] = LayoutService.DragType.subscribe((dragType) => {\n if (dragType === this.LayoutElement.ID) {\n this.dragType = dragType;\n } else {\n this.dragType = null;\n }\n });\n }\n FillElements(obj) {\n if (obj) {\n let keys = Object.keys(obj);\n keys.forEach((key) => {\n let found = this.LayoutElementValue.Elements.find((value) => value.ID == obj[key].ID);\n if (found) {\n obj[key] = found;\n }\n });\n }\n }\n\n ngAfterViewInit(): void {\n this.ViewInitialized = true;\n super.ngAfterViewInit();\n }\n //#endregion\n //#region Table&Data\n createColumns() {\n if (this.LayoutElementValue && this.LayoutElementValue.Columns && this.LayoutElementValue.Columns.length > 0) {\n this.Columns = this.LayoutElementValue.Columns;\n }\n }\n FilteredCount = 0;\n Data = [];\n RowHeight = 33;\n ViewRowHeight;\n EditRowHeight;\n InitializeDataSource() {\n //if (!this.ExternalDataSource) {\n // this.FlatTableSource = new DataTableDataSource(this.DataSourceID, this.service, this.TableStyle);\n //}\n //this.FlatTableSource.UseCaching = this.LayoutElementValue.UseCaching;\n //this.FlatTableSource.PagingType = this.LayoutElementValue.PagingType;\n //this.FlatTableSource.pageSize = this.LayoutElementValue.PageSize ? this.LayoutElementValue.PageSize : 300;\n //if (this.LayoutElementValue.PagingType === PagingType.Pager) {\n // this.FlatTableSource.pageSize = this.LayoutElementValue.PageSize ? this.LayoutElementValue.PageSize : 10;\n //}\n ////this.onRefresh();\n //this.Subscriptions['Initialized'] = this.FlatTableSource.Initialized.subscribe((res) => {\n // this.initialized = res;\n \n //});\n ////this.Subscriptions['Loading'] = this.FlatTableSource.Loading.subscribe((res) => {\n //// this.cdRef.detectChanges();\n ////});\n //if (!this.DisableAutoLoad) {\n // this.FlatTableSource.Initialize();\n //}\n\n\n if (this.LayoutElementValue.UseCaching) {\n if (this.queryId) {\n this.DataService.CloseQuery(this.queryId).subscribe((r) => {\n this.DataService.OpenQuery(this.DataSourceID, this.Filter).subscribe((result) => {\n if (result) {\n this.queryId = result;\n if (this.PagingType === PagingType.Endless) {\n this.initialized = true;\n } else {\n this.DataService.ExecuteCountQuery(this.queryId).subscribe(res => {\n if (res) {\n this.FilteredCount = res;\n } else {\n this.FilteredCount = 0;\n }\n this.initialized = true;\n });\n }\n }\n });\n });\n } else {\n this.DataService.OpenQuery(this.DataSourceID, this.Filter).subscribe((result) => {\n if (result) {\n this.queryId = result;\n if (this.PagingType === PagingType.Endless) {\n this.initialized = true;\n } else {\n this.DataService.ExecuteCountQuery(this.queryId).subscribe((data) => {\n if (data) {\n this.FilteredCount = data;\n } else {\n this.FilteredCount = 0;\n }\n this.initialized = true;\n });\n }\n }\n });\n }\n } else {\n if (this.PagingType === PagingType.Endless) {\n this.initialized = true;\n } else {\n this.DataService.ExecuteCount(this.DataSourceID, this.Filter).subscribe((data) => {\n if (data) {\n this.FilteredCount = data;\n } else {\n this.FilteredCount = 0;\n }\n this.initialized = true;\n });\n }\n }\n }\n //public fetchPage(page: number) {\n // //this.ActivePage = page;\n // //if (this.PageCache[page] != null) {\n // // if (this.PagingType === PagingType.Pager) {\n // // this.PagedData.next(this.cachedData.slice(page * this.pageSize, (page * this.pageSize) + this.pageSize));\n // // }\n // // return;\n // //}\n // //this.PageCache[page] = [];\n // //this.Loading.next(true);\n // //this.Filter.StartRow = page * this.pageSize;\n // //this.Filter.EndRow = this.Filter.StartRow + this.pageSize;\n // //if (this.UseCaching) {\n // // this.DataService.ExecuteQuery(this.queryId, this.Filter.StartRow, this.Filter.EndRow).subscribe((result) => {\n // // this.FillResult(result, page);\n // // });\n // //} else {\n // // this.DataService.ExecuteQueryWithFilter(this.DataSourceID, this.Filter).subscribe((result) => {\n // // this.FillResult(result, page);\n // // });\n // //}\n //}\n lazyLoad(event) {\n this.loading = true;\n if (this.LayoutElementValue.UseCaching) {\n this.DataService.ExecuteQuery(this.queryId, event.first, event.first+event.rows).subscribe((result) => {\n if (result && Array.isArray(result) && result.length > 0) {\n this.FillResult(result);\n }\n });\n } else {\n this.DataService.ExecuteQueryWithFilter(this.DataSourceID, this.Filter).subscribe((result) => {\n if (result && Array.isArray(result) && result.length > 0) {\n this.FillResult(result);\n }\n });\n }\n this.loading = false;\n }\n FillResult(result) {\n const rows = [];\n if (result) {\n if (this.TableStyle == TableStyle.DataTable) {\n result.forEach((item) => {\n const row = new Row();\n row.data = item;\n //row.styles = this._RowStyle;\n rows.push(row);\n });\n } else {\n result.forEach((item) => {\n const cols = {};\n this.Columns.forEach((column) => {\n cols[column.Name] = {\n selected: false,\n edit: false,\n //tabindex: this.TabIndex\n };\n //this.TabIndex += 1;\n });\n const row = new Row();\n row.data = item;\n row.cols = cols;\n //row.styles = this._RowStyle;\n rows.push(row);\n });\n }\n this.Data = [...this.Data, ...rows];\n }\n }\n loading = false;\n queryId;\n //#endregion\n //#region Actions\n clicked() {\n this.triggerEvent('OnFocus', this.DataSource);\n }\n RowDoubleClicked(event) {\n this.triggerEvent('DoubleClick', event);\n }\n SelectionChanged(item) {\n const selection = [];\n if (item && item.length > 0) {\n item.forEach(x => {\n selection.push(x.RowData);\n });\n }\n this.triggerEvent('SelectionChanged', selection);\n }\n ValueChanged(item) {\n this.triggerEvent('ValueChanged', item);\n }\n SortChanged(sort) {\n if (this.FlatTableSource) {\n this.FlatTableSource.SetOrder(sort);\n this.FlatTableSource.Refresh();\n //this.cdRef.detectChanges();\n }\n }\n FilterChanged(filter) {\n const clone = {\n Filters: []\n };\n if (this.Filter && this.Filter.Filters) {\n clone.Filters.push(...JSON.parse(JSON.stringify(this.Filter.Filters)));\n }\n filter.forEach(x => {\n FilterHelper.AddSearchFilter(clone, x);\n });\n if (this.FlatTableSource) {\n this.FlatTableSource.SetFilter(clone.Filters);\n this.FlatTableSource.Refresh();\n }\n //this.cdRef.detectChanges();\n }\n ExecuteRefresh() {\n if (this.FlatTableSource) {\n this.onRefresh();\n if (this.Columns) {\n this.Columns.forEach(col => {\n col.OrderState = 'NONE';\n });\n }\n this.FlatTableSource.Refresh();\n } else if (this.Rows) {\n this.onRefresh();\n const rows = this.Rows;\n this.Rows = [];\n window.setTimeout(() => {\n this.Rows = rows;\n }, 50); \n }\n //this.cdRef.detectChanges();\n }\n\n onRefresh() {\n if (!this.DisableAutoLoad) {\n this.Filter = FilterHelper.PrepareFilter(this.DataSourceElement);\n if (this.FlatTableSource) {\n this.FlatTableSource.Columns = this.Columns;\n if (this.AdditionalFilter) {\n FilterHelper.AddSearchFilter(this.Filter, this.AdditionalFilter);\n }\n this.FlatTableSource.SetFilter(this.Filter.Filters);\n this.FlatTableSource.SetRequestColumns(this.RequestColumns);\n this.FlatTableSource.SetOrder(this.DefaultSort);\n }\n }\n this.DisableAutoLoad = false;\n //this.cdRef.detectChanges();\n }\n ColumnResized(event) {\n VariableHelper.ValueChanged(this.Layout, {\n ID: this.LayoutElement.ID,\n Value: this.Columns\n });\n //this.cdRef.detectChanges();\n }\n //#endregion\n\n LoadUserSettings() {\n this.UserSpecificColumns = null;\n if (VariableHelper.ActiveVariablesMap[this.Layout._Id + '||' + this.LayoutElement.ID]) {\n let retVal = [];\n const cols = VariableHelper.ActiveVariablesMap[this.Layout._Id + '||' + this.LayoutElement.ID].Value;\n if (cols && this.ColumnsValue) {\n this.ColumnsValue.forEach((item) => {\n const col = cols.find((value) => value.Name == item.Name);\n if (col && col.CalculatedWidth) {\n col.Width.Value = col.CalculatedWidth;\n col.Width.Type = 0;\n //const old = this.ColumnsValue.find((value) => value.Name == col.Name);\n if (item && item.Position != col.Position) {\n col.Position = item.Position;\n }\n retVal.push(col);\n } else {\n retVal.push(item);\n }\n })\n //cols.forEach((col) => {\n // if (col.CalculatedWidth) {\n // col.Width.Value = col.CalculatedWidth;\n // col.Width.Type = 0;\n // const old = this.ColumnsValue.find((value) => value.Name == col.Name);\n // if (old && old.Position != col.Position) {\n // col.Position = old.Position;\n // }\n // }\n //})\n this.UserSpecificColumns = retVal;\n this.UserSpecificColumns = this.UserSpecificColumns.sort((a, b) => {\n if (a.Position > b.Position) {\n return 1;\n }\n if (a.Position < b.Position) {\n return -1;\n }\n return 0;\n });\n }\n }\n //this.cdRef.detectChanges();\n }\n\n GetUserSpecificValue() {\n return this.Columns;\n }\n SetUserSpecificValue(val) {\n this.LoadUserSettings();\n }\n OnRowsChange(ev) {\n if (ev) {\n const cols = this.Columns;\n if (cols) {\n const rowStyle = {};\n cols.forEach(col => {\n rowStyle[col.Name] = '0';\n });\n ev.forEach(row => {\n row.styles = rowStyle;\n });\n }\n }\n }\n\n\n\n\n GetSourceValue() {\n\n }\n\n createInjector(dataToPass): PortalInjector {\n const injectorTokens = new WeakMap();\n injectorTokens.set(LayoutService.CONTAINER_DATA, dataToPass);\n return new PortalInjector(this._injector, injectorTokens);\n }\n\n headerDrop(event, item) {\n if (this.dragItem) {\n let control: any = LayoutHelper.GetDroppedLayoutElement(this.dragItem);\n this.AddToElements(control, item);\n if (!this.LayoutElementValue.HeaderViewDefinition) {\n this.LayoutElementValue.HeaderViewDefinition = {};\n }\n this.LayoutElementValue.HeaderViewDefinition[item.Name] = control;\n }\n }\n contentViewDrop(event, item) {\n if (this.dragItem) {\n let control = LayoutHelper.GetDroppedLayoutElement(this.dragItem);\n this.AddToElements(control, item);\n if (!this.LayoutElementValue.ContentViewDefinition) {\n this.LayoutElementValue.ContentViewDefinition = {};\n }\n this.LayoutElementValue.ContentViewDefinition[item.Name] = control;\n }\n }\n contentEditDrop(event, item) {\n if (this.dragItem) {\n let control = LayoutHelper.GetDroppedLayoutElement(this.dragItem);\n this.AddToElements(control, item);\n if (!this.LayoutElementValue.ContentEditDefinition) {\n this.LayoutElementValue.ContentEditDefinition = {};\n }\n this.LayoutElementValue.ContentEditDefinition[item.Name] = control;\n }\n }\n\n AddToElements(control, item) {\n if (item) {\n control.DataSourceID = this.DataSourceID;\n control.DataSource = item.ContainerFieldID;\n control.type = item.Type2;\n }\n if (!this.LayoutElementValue.Elements) {\n this.LayoutElementValue.Elements = [];\n }\n this.LayoutElementValue.Elements.push(control);\n }\n\n onDragEnter(event, item) {\n event.currentTarget.style.border = '2px solid #c6e067';\n }\n onDragLeave(event, item) {\n event.currentTarget.style.border = '1px solid black';\n }\n\n itemSelected(item) {\n if (!item.Selected) {\n LayoutService.SelectedItem.next(item);\n }\n }\n clear(item, property) {\n this.LayoutElement.Elements.splice(this.LayoutElement.Elements.indexOf(item[property]), 1);\n delete item[property];\n }\n print(item) {\n console.log(item);\n }\n \n}\n","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Inject, Input, Output, ViewChild } from '@angular/core';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { TranslationTextBoxThemeControl } from '../../../appbuilder/controls/translation/translation.textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { Resizeable } from '../../../models/enums/resizeable.enum';\nimport { LayoutElement } from '../../../models/layoutelement.model';\nimport { MenuTabLabelPosition } from '../../../models/menutab/menutab.property.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-textarea',\n templateUrl: './textarea.control.html',\n styleUrls: ['./textarea.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TextAreaControl extends IBaseComponent {\n\n static Type = 'textarea';\n static Default = JSON.parse(JSON.stringify(defaultProperties.textarea));\n\n //#region DataSource\n DataSourceValue;\n\n @Input()\n get DataSource() {\n return this.DataSourceValue;\n }\n set DataSource(val) {\n this.DataSourceValue = val;\n this.DataSourceChange.emit(this.DataSourceValue);\n this.triggerEvent('DataSourceChanged', this.DataSourceValue);\n this.cdRef.detectChanges();\n }\n\n @Output() DataSourceChange = new EventEmitter();\n //#endregion\n\n //#region Placeholder\n @Input()\n get Placeholder() {\n return this.LayoutElement.Placeholder;\n }\n set Placeholder(val) {\n this.CheckLayoutElement();\n this.LayoutElement.Placeholder = val;\n this.PlaceholderChange.emit(this.LayoutElement.Placeholder);\n this.cdRef.detectChanges();\n }\n\n @Output() PlaceholderChange = new EventEmitter();\n //#endregion\n\n constructor(cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.EventList.push('textchanged');\n }\n\n ControlInitialized() {\n }\n\n setFocus() {\n let textBox = document.getElementById(this.LayoutElement.ID);\n if (textBox) {\n textBox.focus();\n }\n }\n\n onChange(ev) {\n this.triggerEvent('textchanged', this.DataSourceValue);\n }\n\n CheckLayoutElement() {\n if (!this.LayoutElement) {\n this.LayoutElement = new LayoutElement();\n }\n }\n}\nexport class TextAreaPanel extends BasePanel {\n static override SIDS = ['04a3a9a2-bdc2-42ab-816c-861d6b8c4dbd']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'04a3a9a2-bdc2-42ab-816c-861d6b8c4dbd',\n ID: 'TextArea',\n Caption: '@@TextArea',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto','auto','auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'textarea';\n }\n })\n \n PROPERTIES.push({\n ID: \"Placeholder\",\n Parent: \"TextArea\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Placeholder\",\n Column: 1,\n Row: 1,\n InitArgs: {\n DataType: 'string'\n }\n })\n PROPERTIES.push({\n ID: \"UseFloatingLabel\",\n Parent: \"TextArea\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@UseFloatingLabel\"\n },\n Column: 1,\n Row: 2\n })\n PROPERTIES.push({\n ID: \"Resizeable\",\n Parent: \"TextArea\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Resizeable\",\n Column: 1,\n Row: 3,\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: Resizeable\n }\n })\n }\n}","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input } from '@angular/core';\nimport moment from 'moment';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { TranslationTextBoxThemeControl } from '../../../appbuilder/controls/translation/translation.textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { TagType } from '../../../models/enums/tagtype.enum';\nimport { ElementProperty } from '../../../models/layoutbase.model';\nimport { TranslatedString } from '../../../models/translatedstring.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LanguageService } from '../../../services/language.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-textblock',\n templateUrl: './textblock.control.html',\n styleUrls: ['./textblock.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TextBlockControl extends IBaseComponent {\n static Type: any = 'textblock';\n static Default = JSON.parse(JSON.stringify(defaultProperties.textblock));\n\n DataSourceText = '';\n DataBindingField;\n\n //#region Caption\n CaptionValue: string;\n @Input()\n get Caption() {\n if (this.CaptionValue != null) {\n return this.CaptionValue;\n }\n return this.LayoutElement.Caption;\n }\n set Caption(val) {\n this.CaptionValue = val;\n }\n //#endregion\n //#region Tooltip\n TooltipValue;\n @Input()\n get Tooltip() {\n if (this.TooltipValue != null) {\n return this.TooltipValue;\n }\n return this.LayoutElement.Tooltip;\n }\n set Tooltip(val) {\n this.TooltipValue = val;\n this.cdRef.detectChanges();\n }\n //#endregion\n constructor(cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.PropertyList.push(new ElementProperty('Caption', 'string', '@@Text'));\n this.PropertyList.push(new ElementProperty('Tooltip', 'string', '@@Tooltip'));\n }\n\n ControlInitialized() {\n this.Subscriptions['DataSourceChange'] = this.DataSourceChange.subscribe(x => {\n this.CheckDataSourceText();\n });\n this.Subscriptions['LanguageChanged'] = LanguageService.SelectedLanguage.subscribe(() => {\n this.CheckDataSourceText();\n });\n this.OnDataBindingChanged();\n }\n\n OnDataBindingChanged() {\n super.OnDataBindingChanged();\n MetaHelper.FindTableProperties(this.Layout, this.LayoutElementValue).then((result) => {\n if (result && result.SID !== this.LayoutElementValue.DataSource && result.Fields) {\n this.DataBindingField = result.Fields.find(x => x.ID === this.LayoutElementValue.DataSource);\n this.CheckDataSourceText();\n } else {\n this.DataBindingField = null;\n }\n });\n }\n\n CheckDataSourceText() {\n if (this.DataBindingField && this.DataSourceValue != null) {\n if (this.DataBindingField.Type === '876cf188-243b-49ed-91ab-b2cf27216a30') {\n EnumHelper.GetEnumValues(this.LayoutElementValue.DataSourceID).then((data) => {\n let enumEntry;\n if (data) {\n enumEntry = data.find(x => x.Value === this.DataSourceValue);\n }\n if (enumEntry) {\n this.DataSourceText = enumEntry.Caption;\n } else {\n this.DataSourceText = '' + this.DataSourceValue;\n }\n this.cdRef.detectChanges();\n });\n return;\n } else if (this.DataBindingField.Type === 'a0c232a9-4ab7-444c-a7e2-d23899a5673b') {\n this.DataSourceText = TranslatedString.GetTranslation(this.DataSourceValue);\n } else if (this.DataBindingField.Type === 'cfcb4295-9d1e-49b4-b466-3fe74d1b0c69' && this.LayoutElementValue.DateFormat) {\n this.DataSourceText = moment(this.DataSourceValue).format(this.LayoutElementValue.DateFormat);\n } else {\n this.DataSourceText = '' + this.DataSourceValue;\n }\n } else {\n this.DataSourceText = '';\n }\n this.cdRef.detectChanges();\n }\n}\nexport class TextBlockPanel extends BasePanel {\n static override SIDS = ['c19b96db-010c-4869-9bb8-5683cfd98f4b']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'c19b96db-010c-4869-9bb8-5683cfd98f4b',\n ID: 'textblock',\n Caption: '@@TextBlock',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'textblock';\n }\n })\n PROPERTIES.push({\n ID: \"Caption\",\n Parent: \"textblock\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Text\",\n Row: 1,\n InitArgs: {\n DataType: 'string'\n }\n });\n PROPERTIES.push({\n ID: \"Tooltip\",\n Parent: \"textblock\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Tooltip\",\n Row: 2,\n InitArgs: {\n DataType: 'string'\n }\n });\n PROPERTIES.push({\n ID: \"DateFormat\",\n Parent: \"textblock\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@DateFormat\",\n Row: 3,\n CheckVisibility: (item) => {\n return item.DataSourceType == 'cfcb4295-9d1e-49b4-b466-3fe74d1b0c69'\n },\n InitArgs: {\n InputType: \"text\"\n }\n });\n \n PROPERTIES.push({\n ID: \"TagType\",\n Parent: \"textblock\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label:'TagType',\n InitArgs: {\n Caption: \"@@Select\",\n EnumSource: TagType\n },\n Row: 4\n });\n PROPERTIES.push({\n ID: \"BreakLine\",\n Parent: \"textblock\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Zeilenumbruch\"\n },\n Row: 5\n });\n }\n}","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { DomHandler } from 'primeng/dom';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { TranslationTextBoxThemeControl } from '../../../appbuilder/controls/translation/translation.textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { NotificationHelper } from '../../../helpers/notification.helper';\nimport { RTLHelper } from '../../../helpers/rtl.helper';\nimport { KeyFilter } from '../../../models/enums/keyfilter.enum';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ElementProperty } from '../../../models/layoutbase.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { IBaseComponent } from '../base.component';\nimport {Observable} from \"rxjs\";\nimport {GlobalSearchService} from \"../../../services/global-search.service\";\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n@Component({\n selector: 'evi-textbox',\n templateUrl: './textbox.control.html',\n styleUrls: ['./textbox.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TextBoxControl extends IBaseComponent {\n static Type: any = 'textbox';\n static Default = JSON.parse(JSON.stringify(defaultProperties.textbox));\n\n Valid = true;\n KeyDownTimeOut;\n\n //#region Placeholder\n @Input()\n get Placeholder() {\n return this.LayoutElement.Placeholder;\n }\n set Placeholder(val) {\n this.LayoutElement.Placeholder = val;\n this.PlaceholderChange.emit(this.LayoutElement.Placeholder);\n }\n\n @Output() PlaceholderChange = new EventEmitter();\n //#endregion\n //#region InputType\n @Input()\n get InputType(): string {\n return this.LayoutElement.InputType;\n }\n set InputType(val: string) {\n this.LayoutElement.InputType = val;\n this.InputTypeChange.emit(this.LayoutElement.InputType);\n }\n\n @Output() VariantChange = new EventEmitter();\n @Input()\n get Variant(): string {\n return this.LayoutElement.Variant;\n }\n set Variant(val: string) {\n this.LayoutElement.Variant = val;\n this.VariantChange.emit(this.LayoutElement.Variant);\n }\n\n @Output() InputTypeChange = new EventEmitter();\n //#endregion\n //#region Tooltip\n TooltipValue;\n @Input()\n get Tooltip() {\n if (this.TooltipValue != null) {\n return this.TooltipValue;\n }\n return this.LayoutElement.Tooltip;\n }\n set Tooltip(val) {\n this.TooltipValue = val;\n this.cdRef.detectChanges();\n }\n //#endregion\n //#region Minimum\n @Input()\n get Minimum(): string {\n return this.LayoutElement.Minimum;\n }\n set Minimum(val: string) {\n this.LayoutElement.Minimum = val;\n this.MinimumChange.emit(this.LayoutElement.Minimum);\n }\n\n @Output() MinimumChange = new EventEmitter();\n //#endregion\n\n //#region Maximum\n @Input()\n get Maximum(): string {\n return this.LayoutElement.Maximum;\n }\n set Maximum(val: string) {\n this.LayoutElement.Maximum = val;\n this.MaximumChange.emit(this.LayoutElement.Maximum);\n }\n\n @Output() MaximumChange = new EventEmitter();\n //#endregion\n\n //#region Nachkommastellen\n @Input()\n get DecimalPositions(): string {\n return this.LayoutElement.DecimalPositions;\n }\n set DecimalPositions(val: string) {\n this.LayoutElement.DecimalPositions = val;\n if (this.DataSourceValue && this.DecimalPositions && Number(this.DecimalPositions) > 0) {\n this.DataSourceValue = Number(this.DataSourceValue).toFixed(Number(this.DecimalPositions));\n }\n this.DecimalPositionsChange.emit(this.LayoutElement.DecimalPositions);\n }\n\n @Output() DecimalPositionsChange = new EventEmitter();\n //#endregion\n\n //#region Step\n @Input()\n get Step(): string {\n if (this.LayoutElement.Step !== undefined) {\n return this.LayoutElement.Step;\n }\n return 'any;';\n }\n set Step(val: string) {\n this.LayoutElement.Step = val;\n this.StepChange.emit(this.LayoutElement.Step);\n }\n\n @Output() StepChange = new EventEmitter();\n //#endregion\n\n //#region ReadOnly\n ReadOnlyValue;\n get ReadOnly(): boolean {\n if (typeof this.ReadOnlyValue === 'boolean') {\n return this.ReadOnlyValue;\n }\n return this.LayoutElement.ReadOnly;\n }\n set ReadOnly(val) {\n this.ReadOnlyValue = val;\n }\n //#endregion\n get KeyFilter() {\n let result = null;\n if (this.LayoutElement && this.LayoutElement.UseValidation) {\n if (this.LayoutElement.KeyFilter && this.LayoutElement.KeyFilter == KeyFilter.regex) {\n if (this.LayoutElement.RegExp) {\n result = new RegExp(this.LayoutElement.RegExp);\n }\n } else {\n result = KeyFilter[this.LayoutElement.KeyFilter];\n }\n }\n return result;\n }\n\n PWVisible = false;\n get ActualInputType() {\n if (this.LayoutElementValue.InputType == 'password' && this.LayoutElementValue.ShowPassword && this.PWVisible) {\n return 'text';\n }\n return this.LayoutElementValue.InputType;\n }\n\n IsRtl = false;\n\n // Global Search: variables\n filteredOptions: Observable;\n\n constructor(cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data, private globalSearchService: GlobalSearchService) {\n super(cdRef, data);\n this.EventList.push('textchanged');\n this.EventList.push('keypress');\n this.EventList.push('keydown');\n this.EventList.push('keyup');\n this.EventList.push('ValidationFailed');\n this.PropertyList.push(new ElementProperty('ReadOnly', 'boolean', '@@ReadOnly'));\n this.PropertyList.push(new ElementProperty('DataSourceValue', 'string', '@@Text'));\n this.PropertyList.push(new ElementProperty('Tooltip', 'string', '@@Tooltip'));\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.IsRtl = RTLHelper.Direction == 'rtl';\n this.Subscriptions['RTL'] = RTLHelper.DirectionChanged.subscribe((dir) => {\n this.IsRtl = dir == 'rtl';\n });\n }\n\n MetaTable;\n MetaTableProperties;\n DataSourceProperty;\n @Output() TextChange = new EventEmitter();\n invalidChars = ['e'];\n DEFAULT_MASKS = {\n pint: /[\\d]/,\n 'int': /[\\d\\-]/,\n pnum: /[\\d\\.]/,\n money: /[\\d\\.\\s,]/,\n num: /[\\d\\-\\.]/,\n hex: /[0-9a-f]/i,\n email: /[a-z0-9_\\.\\-@]/i,\n alpha: /[a-z_]/i,\n alphanum: /[a-z0-9_]/i\n };\n Keys = [\n 9, 13, 27, 8, 46, 36, , 35, 37, 39\n ]\n KEYS = {\n TAB: 9,\n RETURN: 13,\n ESC: 27,\n BACKSPACE: 8,\n DELETE: 46\n };\n SAFARI_KEYS = {\n 63234: 37,\n 63235: 39,\n 63232: 38,\n 63233: 40,\n 63276: 33,\n 63277: 34,\n 63272: 46,\n 63273: 36,\n 63275: 35 // end\n };\n ControlInitialized() {\n // let textBox = document.getElementById(this.LayoutElement.ID);\n // console.log(textBox);\n }\n\n\n // textBox: ElementRef;\n // @ViewChild('textBox') set text(element: ElementRef) {\n // this.textBox = element;\n // }\n setFocus() {\n const textBox = document.getElementById(this.LayoutElement.ID);\n if (textBox) {\n textBox.focus();\n }\n }\n CheckValidation(text = null, keypress = false) {\n let ok = true;\n if (this.LayoutElement && this.LayoutElement.UseValidation) {\n let regex = null;\n if (this.LayoutElement.KeyFilter) {\n if (this.LayoutElement.KeyFilter == KeyFilter.regex) {\n regex = new RegExp(this.LayoutElement.RegExp);\n } else {\n let key = KeyFilter[this.LayoutElement.KeyFilter];\n regex = this.DEFAULT_MASKS[key];\n }\n }\n if (!regex) {\n return true;\n }\n let data = text;\n if (!text && this.DataSourceValue) {\n data = this.DataSourceValue.toString();\n }\n if (!keypress || this.LayoutElement.ValidateOnly) {\n data = this.DataSourceValue.toString();\n }\n\n if (data) {\n if (this.LayoutElement.CheckWholeExpression) {\n ok = regex.test(data);\n } else {\n for (let char of data) {\n if (!regex.test(char)) {\n ok = false;\n break;\n }\n }\n }\n }\n if (this.LayoutElement.ValidateOnly) {\n this.triggerEvent('ValidationFailed', !ok);\n if (keypress) {\n ok = true;\n }\n }\n }\n if (this.LayoutElement.ValidateOnly) {\n if (this.Valid != ok) {\n this.Valid = ok;\n this.cdRef.detectChanges();\n }\n } else {\n this.Valid = true;\n }\n return ok;\n }\n onChange(ev) {\n this.CheckValidation();\n if (this.LayoutElement.InputType === 'number') {\n\n let setMaxValue = false;\n let setMinValue = false;\n\n let valueNumberTemp = Number(this.DataSourceValue);\n if (this.DataSourceValue < this.Minimum) {\n valueNumberTemp = Number(this.Minimum);\n setMinValue = true;\n\n } else if (this.DataSourceValue > this.Maximum) {\n valueNumberTemp = Number(this.Maximum);\n setMaxValue = true;\n }\n\n if (this.DecimalPositions && Number(this.DecimalPositions) > 0) {\n\n const valueString = valueNumberTemp.toString();\n valueNumberTemp = Number(valueNumberTemp.toFixed(Number(this.DecimalPositions)));\n\n if (!setMaxValue && !setMinValue && valueString !== valueNumberTemp.toString()) {\n NotificationHelper.Info('@@Der Wert wurde auf die maximale Nachkommastellenanzahl von {0} gesetzt.', '@@maximal {0} Nachkommstellen zulaessig', { 0: this.DecimalPositions }, { 0: this.DecimalPositions });\n }\n }\n\n if (setMaxValue) {\n NotificationHelper.Info('@@Der Wert wurde auf das Maximum {0} gesetzt. Die maximale Nachkommastellenanzahl von {1} wurde beachtet.', '@@Maximum ueberschritten', { 0: valueNumberTemp, 1: this.DecimalPositions });\n }\n if (setMinValue) {\n NotificationHelper.Info('@@Der Wert wurde auf das Minimum {0} gesetzt. Die maximale Nachkommastellenanzahl von {1} wurde beachtet.', '@@Minimum unterschritten', { 0: valueNumberTemp, 1: this.DecimalPositions });\n }\n\n if (!isNaN(valueNumberTemp)) {\n this.DataSource = valueNumberTemp;\n }\n }\n if (this.DataSourceValue != null) {\n const eventValue = '' + this.DataSourceValue;\n this.triggerEvent('textchanged', eventValue);\n this.TextChange.emit(eventValue);\n }\n }\n isSpecialKey(e) {\n let k = e.keyCode || e.charCode;\n return k == 9 || k == 13 || k == 27 || k == 16 || k == 17 || (k >= 18 && k <= 20) ||\n (DomHandler.getBrowser().opera && !e.shiftKey && (k == 8 || (k >= 33 && k <= 35) || (k >= 36 && k <= 39) || (k >= 44 && k <= 45)));\n }\n getKey(e) {\n let k = e.keyCode || e.charCode;\n return DomHandler.getBrowser().safari ? (this.SAFARI_KEYS[k] || k) : k;\n }\n getCharCode(e) {\n return e.charCode || e.keyCode || e.which;\n }\n KeyDown(event) {\n this.cdRef.detach();\n let k = this.getKey(event);\n if (event.key == \"F2\") {\n LayoutService.KeyPress.next(event);\n }\n if (!event.ctrlKey && this.Keys.indexOf(k) == -1 && !this.LayoutElement.ValidateOnly && !this.CheckValidation(event.key, true)) {\n event.preventDefault();\n }\n if (this.LayoutElementValue.InputType === 'number' && this.invalidChars.includes(event.key)) {\n event.preventDefault();\n } else {\n if (this.LayoutElementValue.UseKeyDownDelay &&\n typeof this.LayoutElementValue.KeyDownDelay === 'number' && this.LayoutElementValue.KeyDownDelay > 0) {\n clearTimeout(this.KeyDownTimeOut);\n this.KeyDownTimeOut = setTimeout(() => {\n this.triggerEvent('keydown', event);\n }, this.LayoutElementValue.KeyDownDelay);\n } else {\n this.triggerEvent('keydown', event);\n }\n }\n }\n\n KeyPress(event) {\n this.triggerEvent('keypress', event);\n }\n KeyUp(event) {\n if (this.LayoutElement.ValidateOnly) {\n this.CheckValidation();\n }\n this.triggerEvent('keyup', event);\n }\n SwitchPWVisible() {\n this.PWVisible = !this.PWVisible;\n this.cdRef.detectChanges();\n }\n\n // Global Search: search filter\n globalSearch(value) {\n if (this.Tooltip == 'Global_Search') {\n this.filteredOptions = this.globalSearchService.search(value);\n this.cdRef.detectChanges();\n }\n }\n\n\n // Global Search: navigate to selected route\n navigateRoute(nav) {\n this.globalSearchService.CallNavMenu(nav);\n }\n}\nexport class TextBoxPanel extends BasePanel {\n static override SIDS = ['324598dd-e6f8-4db2-bc43-5328d8e5e884']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID: '324598dd-e6f8-4db2-bc43-5328d8e5e884',\n ID: 'TextBox',\n Caption: '@@TextBox',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'textbox';\n }\n });\n //#region InputTypes\n let inputTypes = [{\n Caption: '@@Color',\n Value: 'color'\n }, {\n Caption: '@@Date',\n Value: 'date'\n }, {\n Caption: '@@DateTime',\n Value: 'datetime-local'\n }, {\n Caption: '@@EMail',\n Value: 'email'\n }, {\n Caption: '@@Month',\n Value: 'month'\n }, {\n Caption: '@@Number',\n Value: 'number'\n }, {\n Caption: '@@Password',\n Value: 'password'\n }, {\n Caption: '@@Search',\n Value: 'search'\n }, {\n Caption: '@@Phone',\n Value: 'tel'\n }, {\n Caption: '@@Text',\n Value: 'text'\n }, {\n Caption: '@@Time',\n Value: 'time'\n }, {\n Caption: '@@URL',\n Value: 'url'\n }, {\n Caption: '@@Week',\n Value: 'week'\n }]\n\n //#endregion InputTypes\n let inputModes = [{\n Caption: '@@None',\n Value: 'none'\n }, {\n Caption: '@@Text',\n Value: 'text'\n }, {\n Caption: '@@Decimal',\n Value: 'decimal'\n }, {\n Caption: '@@Numeric',\n Value: 'numeric'\n }, {\n Caption: '@@Telephone',\n Value: 'tel'\n }, {\n Caption: '@@Search',\n Value: 'search'\n }, {\n Caption: '@@Email',\n Value: 'email'\n }, {\n Caption: '@@URL',\n Value: 'url'\n }]\n\n let variants = [\n {\n Caption: '@@Outline',\n Value: 'outline'\n },\n {\n Caption: '@@Fill',\n Value: 'fill'\n },\n {\n Caption: '@@Standard',\n Value:''\n }\n ]\n PROPERTIES.push({\n ID: \"Placeholder\",\n Parent: \"TextBox\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Placeholder\",\n Column: 1,\n Row: 1,\n InitArgs: {\n DataType: 'string'\n }\n });\n PROPERTIES.push({\n ID: \"Tooltip\",\n Parent: \"TextBox\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Tooltip\",\n Column: 1,\n Row: 2,\n InitArgs: {\n DataType: 'string'\n }\n });\n PROPERTIES.push({\n ID: \"InputType\",\n Parent: \"TextBox\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Input type\",\n Column: 1,\n Row: 3,\n InitArgs: {\n Placeholder: \"@@Type\",\n Multiple: false,\n ItemsSource: inputTypes,\n ValueMemberPath: \"Value\",\n DisplayMemberPath: \"Caption\"\n }\n });\n PROPERTIES.push({\n ID: \"InputMode\",\n Parent: \"TextBox\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Input mode\",\n Column: 1,\n Row: 4,\n InitArgs: {\n Placeholder: \"@@Type\",\n Multiple: false,\n ItemsSource: inputModes,\n ValueMemberPath: \"Value\",\n DisplayMemberPath: \"Caption\"\n }\n });\n\n PROPERTIES.push({\n ID: \"Variant\",\n Parent: \"TextBox\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Variant\",\n Column: 1,\n Row: 5,\n InitArgs: {\n Placeholder: \"@@Type\",\n Multiple: false,\n ItemsSource: variants,\n ValueMemberPath: \"Value\",\n DisplayMemberPath: \"Caption\"\n }\n });\n PROPERTIES.push({\n ID: \"ReadOnly\",\n Parent: \"TextBox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@ReadOnly\"\n },\n Column: 1,\n Row: 6\n });\n PROPERTIES.push({\n ID: \"UseValidation\",\n Parent: \"TextBox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@UseValidation\"\n },\n Column: 1,\n Row: 7\n });\n PROPERTIES.push({\n ID: \"KeyFilter\",\n Parent: \"TextBox\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Filter type\",\n Column: 1,\n Row: 8,\n CheckVisibility: (item) => {\n return item.UseValidation;\n },\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: KeyFilter\n }\n })\n PROPERTIES.push({\n ID: \"RegExp\",\n Parent: \"TextBox\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@RegExp\",\n Column: 1,\n Row: 9,\n CheckVisibility: (item) => {\n return item.KeyFilter == 9 && item.UseValidation;\n }\n });\n PROPERTIES.push({\n ID: \"ValidateOnly\",\n Parent: \"TextBox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@ValidateOnly\"\n },\n Column: 1,\n Row: 10,\n CheckVisibility: (item) => {\n return item.UseValidation && (item.KeyFilter === 0 || item.KeyFilter > 0);\n }\n });\n PROPERTIES.push({\n ID: \"CheckWholeExpression\",\n Parent: \"TextBox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@CheckWholeExpression\"\n },\n Column: 1,\n Row: 11,\n CheckVisibility: (item) => {\n return item.UseValidation && item.KeyFilter == 9;\n }\n });\n PROPERTIES.push({\n ID: \"Message\",\n Parent: \"TextBox\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Message\",\n Column: 1,\n Row: 12,\n CheckVisibility: (item) => {\n return item.UseValidation && (item.KeyFilter === 0 || item.KeyFilter > 0);\n }\n });\n PROPERTIES.push({\n ID: \"Minimum\",\n Parent: \"TextBox\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Minimum\",\n Column: 1,\n Row: 13,\n CheckVisibility: (item) => {\n return item.InputType == 'number';\n },\n InitArgs: {\n InputType: \"number\"\n }\n });\n PROPERTIES.push({\n ID: \"Maximum\",\n Parent: \"TextBox\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Maximum\",\n Column: 1,\n Row: 14,\n CheckVisibility: (item) => {\n return item.InputType == 'number';\n },\n InitArgs: {\n InputType: \"number\"\n }\n });\n PROPERTIES.push({\n ID: \"DecimalPositions\",\n Parent: \"TextBox\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Nachkommastellen\",\n Column: 1,\n Row: 15,\n CheckVisibility: (item) => {\n return item.InputType == 'number';\n },\n InitArgs: {\n InputType: \"number\",\n Minimum: 0,\n Step: 1\n }\n });\n PROPERTIES.push({\n ID: \"UseKeyDownDelay\",\n Parent: \"TextBox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@UseKeyDownDelay\"\n },\n Column: 1,\n Row: 16\n });\n PROPERTIES.push({\n ID: \"KeyDownDelay\",\n Parent: \"TextBox\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Delay in ms\",\n Column: 1,\n Row: 17,\n CheckVisibility: (item) => {\n return item.UseKeyDownDelay;\n },\n InitArgs: {\n InputType: \"number\",\n Minimum: 0,\n Step: 1\n }\n });\n PROPERTIES.push({\n ID: \"UseFloatingLabel\",\n Parent: \"TextBox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@UseFloatingLabel\"\n },\n Column: 1,\n Row: 18\n });\n PROPERTIES.push({\n ID: \"ShowPassword\",\n Parent: \"TextBox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@ShowPassword\"\n },\n Column: 1,\n Row: 19,\n CheckVisibility: (item) => {\n return item.InputType == 'password';\n }\n });\n }\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Inject, ViewChild } from '@angular/core';\nimport { CacheService } from '../../../cache/cache.service';\nimport { ThemeHelper } from '../../../helpers/theme.helpers';\nimport { Comparer } from '../../../models/enums/comparer.enum';\nimport { RequestFilter } from '../../../models/rest/requestfilter';\nimport { RequestOptions } from '../../../models/rest/requestoptions';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MetaService } from '../../../services/meta.service';\nimport { SideNavService } from '../../../services/sidenav.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-themeswitch',\n templateUrl: './themeswitch.control.html',\n styleUrls: ['./themeswitch.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThemeSwitchControl extends IBaseComponent {\n static Type: any = 'themeswitch';\n static Default = JSON.parse(JSON.stringify(defaultProperties.themeswitch));\n Themes;\n get ActTheme() {\n if (ThemeHelper && ThemeHelper.AcitveTheme) {\n return ThemeHelper.AcitveTheme['SID'];\n } else {\n return null;\n }\n }\n @ViewChild('button', { read: ElementRef }) button: ElementRef;\n\n constructor(private service: MetaService, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n\n this.Subscriptions['NaviStruct'] = SideNavService.SelectedNavigationStructure.subscribe(key => {\n this.Themes = null;\n if (key) {\n this.service.LoadNavigationStructurePropertyByKey(key, 'AvailableThemes').subscribe(themes => {\n if (Array.isArray(themes) && themes.length > 0) {\n const options = new RequestOptions();\n const filter = new RequestFilter();\n options.Filters = [filter];\n filter.Name = '_Id';\n filter.Operator = Comparer.In;\n filter.Value = themes;\n this.service.GetThemes(options).subscribe((result) => {\n this.Themes = result;\n });\n }\n });\n }\n });\n }\n\n ControlInitialized() {\n \n }\n\n ChangeTheme(theme) {\n ThemeHelper.SetTheme(ThemeHelper.ThemesMap[theme]);\n }\n\n setFocus() {\n if (this.button && this.button.nativeElement) {\n this.button.nativeElement.focus();\n }\n }\n}\n","import { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n Output, SimpleChanges\n} from '@angular/core';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { TranslationTextBoxThemeControl } from '../../../appbuilder/controls/translation/translation.textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { LayoutElement } from '../../../models/layoutelement.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-timespan',\n templateUrl: './timespan.control.html',\n styleUrls: ['./timespan.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TimespanControl extends IBaseComponent {\n static Type: any = 'timespan';\n static Default = JSON.parse(JSON.stringify(defaultProperties.timespan));\n\n isEditable = true;\n\n Valid = true;\n KeyDownTimeOut;\n\n //#region Placeholder\n @Input()\n get Placeholder() {\n return this.LayoutElement.Placeholder;\n }\n set Placeholder(val) {\n this.CheckLayoutElement();\n this.LayoutElement.Placeholder = val;\n this.PlaceholderChange.emit(this.LayoutElement.Placeholder);\n }\n\n @Output() PlaceholderChange = new EventEmitter();\n //#endregion\n\n constructor(cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n // this.EventList.push('valuechanged');\n }\n MetaTable;\n MetaTableProperties;\n DataSourceProperty;\n @Output() ValueChange = new EventEmitter();\n\n ControlInitialized() {\n }\n\n ngOnInit() {\n this.isEditable = !this.Editable || this.Disabled;\n this.Subscriptions['Editable'] = this.LayoutElement.EditableChanged.subscribe((value) => this.isEditable = !this.Editable || this.Disabled);\n }\n\n\n onChange(ev) {\n this.ValueChange.emit(ev);\n }\n CheckLayoutElement() {\n if (!this.LayoutElement) {\n this.LayoutElement = new LayoutElement();\n }\n }\n}\nexport class TimespanPanel extends BasePanel {\n static override SIDS = ['24a52a82-98e5-401e-a740-517bfc8097fd']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'24a52a82-98e5-401e-a740-517bfc8097fd',\n ID: 'timespan',\n Caption: '@@TimeSpan',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'timespan';\n }\n });\n PROPERTIES.push({\n ID: \"Caption\",\n Parent: \"timespan\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Caption\",\n InitArgs: {\n DataType: 'string'\n }\n });\n PROPERTIES.push({\n ID: \"ShowMilliseconds\",\n Parent: \"timespan\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@ShowMilliseconds\"\n }\n });\n PROPERTIES.push({\n ID: \"Horizontal\",\n Parent: \"timespan\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Horizontal\"\n }\n });\n }\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Inject, Input, Output, ViewChild } from '@angular/core';\nimport { IBaseComponent } from '../base.component';\nimport { ElementProperty } from '../../../models/layoutbase.model';\nimport { LayoutService } from '../../../services/layout.service';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { TranslationTextBoxThemeControl } from '../../../appbuilder/controls/translation/translation.textbox.theme.control';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { ThemeHelper } from '../../../helpers/theme.helpers';\nimport { MetaService } from '../../../services/meta.service';\nimport { Theme } from 'src/app/models/style/theme.model';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n\tselector: 'evi-togglebutton',\n\ttemplateUrl: './togglebutton.control.html',\n\tstyleUrls: ['./togglebutton.control.css'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleButtonControl extends IBaseComponent {\n\tstatic Type: any = 'togglebutton';\n\tstatic Default = JSON.parse(JSON.stringify(defaultProperties.togglebutton));\n\t//#region Caption\n\tCaptionValue;\n\t@Input()\n\tget Caption() {\n\t\tif (this.CaptionValue != null) {\n\t\t\treturn this.CaptionValue;\n\t\t}\n\t\treturn this.LayoutElement.Caption;\n\t}\n\tset Caption(val) {\n\t\tthis.CaptionValue = val;\n\t}\n\t//#endregion\n\n\t//#region Icon\n\t@Input()\n\tget Icon() {\n\t\treturn this.LayoutElement.Icon;\n\t}\n\tset Icon(val) {\n\t\tthis.LayoutElement.Icon = val;\n\t\tthis.IconChange.emit(this.LayoutElement.Icon);\n\t}\n\n\t@Output() IconChange = new EventEmitter();\n\t//#endregion\n\n\t//#region IsChecked\n\t@Input()\n\tget IsChecked() {\n\t\treturn this.DataSourceValue;\n\t}\n\tset IsChecked(val) {\n\t\tthis.DataSourceValue = val;\n\t\tthis.IsCheckedChange.emit(this.DataSourceValue);\n\t}\n\n\t@Output() IsCheckedChange = new EventEmitter();\n\t//#endregion\n\n\t@ViewChild('togglebutton', { read: ElementRef })\n\ttogglebutton: ElementRef;\n\n\tconstructor(\n\t\tprivate metaService: MetaService,\n\t\tcdRef: ChangeDetectorRef,\n\t\t@Inject(LayoutService.CONTAINER_DATA) public data\n\t) {\n\t\tsuper(cdRef, data);\n\t\tthis.EventList.push('checked');\n\t\tthis.EventList.push('unchecked');\n\t\tthis.PropertyList.push(\n\t\t\tnew ElementProperty('IsChecked', 'boolean', '@@Togglestate')\n\t\t);\n\t\tthis.PropertyList.push(new ElementProperty('Caption', 'string', '@@Text'));\n\t}\n\n\tControlInitialized() {}\n\tCurrentTheme: Theme;\n\tClicked() {\n\t\tthis.IsChecked = !this.IsChecked;\n\t\tif (this.IsChecked) {\n\t\t\tthis.setDarkTheme(false);\n\t\t\tthis.triggerEvent('checked');\n\t\t} else {\n\t\t\tthis.setDarkTheme(true);\n\n\t\t\tthis.triggerEvent('unchecked');\n\t\t}\n\t}\n\tngOnInit(): void {\n\t\tif (this.Caption.toLowerCase().includes('dark mode')) {\n\t\t\tthis.metaService.GetDefaultTheme().subscribe((theme: Theme) => {\n this.CurrentTheme = theme;\n if (theme.IsDarkTheme) { \n this.IsChecked = true;\n this.triggerEvent('checked');\n }\n\t\t\t});\n\t\t}\n\t}\n\tsetFocus() {\n\t\tif (this.togglebutton && this.togglebutton.nativeElement) {\n\t\t\tthis.togglebutton.nativeElement.focus();\n\t\t}\n\t}\n\n setDarkTheme(isDark: boolean) {\n if (this.Caption.toLowerCase().includes('dark mode')) {\n \n const darkTheme: Theme = this.CurrentTheme;\n darkTheme.IsDarkTheme = isDark;\n this.metaService.SaveTheme(darkTheme).subscribe((result) => {\n ThemeHelper.SetTheme(darkTheme);\n });\n }\n\t}\n}\nexport class ToggleButtonPanel extends BasePanel{\n static override SIDS = ['06be69d6-4bb8-4c2e-a7a3-bcd46fc46122']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'06be69d6-4bb8-4c2e-a7a3-bcd46fc46122',\n ID: 'togglebutton',\n Caption: '@@ToggleButton',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'togglebutton';\n }\n });\n PROPERTIES.push({\n ID: \"Caption\",\n Parent: \"togglebutton\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Caption\",\n Column: 1,\n Row: 1,\n InitArgs: {\n DataType: 'string'\n }\n });\n }\n}","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DomHandler } from 'primeng/dom';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { TranslationTextBoxThemeControl } from '../../../appbuilder/controls/translation/translation.textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { RTLHelper } from '../../../helpers/rtl.helper';\nimport { KeyFilter } from '../../../models/enums/keyfilter.enum';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { Resizeable } from '../../../models/enums/resizeable.enum';\nimport { ElementProperty } from '../../../models/layoutbase.model';\nimport { TranslatedString } from '../../../models/translatedstring.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LanguageService } from '../../../services/language.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { StandardRequestBase } from '../../../services/request-base';\nimport { IBaseComponent } from '../base.component';\nimport { plainToClass, Type } from 'class-transformer';\nimport { TranslationTextBoxDialog } from './translation.textbox.dialog';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-translationtextbox',\n templateUrl: './translation.textbox.component.html',\n styleUrls: ['./translation.textbox.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TranslationTextBoxComponent extends IBaseComponent {\n static Type: any = 'translationtextbox';\n static Default = JSON.parse(JSON.stringify(defaultProperties.translationtextbox));\n AllLanguages = [];\n //#region Placeholder\n @Input()\n get Placeholder() {\n return this.LayoutElement.Placeholder;\n }\n set Placeholder(val) {\n this.LayoutElement.Placeholder = val;\n this.PlaceholderChange.emit(this.LayoutElement.Placeholder);\n }\n\n @Output() PlaceholderChange = new EventEmitter();\n //#endregion\n\n get DefaultValue() {\n if (this.DataSourceValue) {\n return this.DataSourceValue.DefaultValue;\n }\n return null;\n }\n set DefaultValue(text) {\n if (this.DataSourceValue) {\n this.DataSourceValue.DefaultValue = text;\n } else {\n this.DataSource = {\n DefaultValue: text,\n SerializedTranslations: []\n };\n }\n }\n\n get MaxLength() {\n if (typeof this.LayoutElementValue.MaxLength === 'number' && this.LayoutElementValue.MaxLength > 0) {\n return this.LayoutElementValue.MaxLength;\n }\n return null;\n }\n\n get Resizeable() {\n if (typeof this.LayoutElementValue.Resizeable === 'number') {\n return {\n resize: Resizeable[this.LayoutElementValue.Resizeable]\n };\n }\n return { resize: 'both' };\n }\n\n Valid = true;\n KeyDownTimeOut;\n DEFAULT_MASKS = {\n pint: /[\\d]/,\n 'int': /[\\d\\-]/,\n pnum: /[\\d\\.]/,\n money: /[\\d\\.\\s,]/,\n num: /[\\d\\-\\.]/,\n hex: /[0-9a-f]/i,\n email: /[a-z0-9_\\.\\-@]/i,\n alpha: /[a-z_]/i,\n alphanum: /[a-z0-9_]/i\n };\n SAFARI_KEYS = {\n 63234: 37,\n 63235: 39,\n 63232: 38,\n 63233: 40,\n 63276: 33,\n 63277: 34,\n 63272: 46,\n 63273: 36,\n 63275: 35 // end\n };\n Keys = [\n 9, 13, 27, 8, 46, 36, , 35, 37, 39\n ]\n invalidChars = ['e'];\n\n IsRtl = false;\n constructor(private dialog: MatDialog, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data,\n requestService: StandardRequestBase, private translate: TranslateService) {\n super(cdRef, data);\n requestService.executeGet('config/api/config', 'GetSelectedLanguages').subscribe(languages => {\n let list = [];\n if (languages) {\n list.push(...languages);\n }\n list.unshift({ LCID: \"default\", Caption:\"@@Default\" })\n this.AllLanguages = list;\n this.updateCaptions();\n this.FillLanguages();\n this.cdRef.detectChanges();\n });\n\n this.Subscriptions['DataSourceChange'] = this.DataSourceChange.subscribe(x => {\n this.FillLanguages();\n });\n this.Subscriptions['LanguageChange'] = LanguageService.LanguageChanged.subscribe(() => {\n this.updateCaptions();\n if (this.Initialized) {\n this.cdRef.detectChanges();\n }\n });\n this.IsRtl = RTLHelper.Direction === 'rtl';\n this.Subscriptions['RTL'] = RTLHelper.DirectionChanged.subscribe((dir) => {\n this.IsRtl = dir === 'rtl';\n });\n this.PropertyList.push(new ElementProperty('Tooltip', 'string', '@@Tooltip'));\n this.EventList.push('keypress');\n this.EventList.push('keydown');\n this.EventList.push('keyup');\n this.EventList.push('ValidationFailed');\n }\n\n ControlInitialized() { \n }\n\n FillLanguages() {\n if (this.AllLanguages && this.AllLanguages.length > 0) {\n if (this.DataSource == null) {\n this.AllLanguages.forEach((lang) => lang.Value = null);\n } else {\n this.AllLanguages[0].Value = this.DataSource.DefaultValue;\n if (this.DataSource.SerializedTranslations) {\n this.AllLanguages.forEach((trans) => {\n if (trans.LCID != 'default') {\n let found = this.DataSource.SerializedTranslations.find((value) => value.LCID == trans.LCID);\n if (found) {\n trans.Value = found.Value;\n } else {\n trans.Value = null;\n }\n }\n trans.Valid = true;\n });\n }\n }\n }\n }\n setFocus() {\n let control = document.getElementById(this.LayoutElement.ID);\n if (control) {\n control.focus();\n }\n }\n langChanged(lang) {\n if (lang.LCID == 'default') {\n if (this.DataSourceValue) {\n this.DataSourceValue.DefaultValue = lang.Value;\n } else {\n this.DataSource = {\n DefaultValue: lang.Value,\n SerializedTranslations: []\n };\n }\n } else {\n if (this.DataSourceValue) {\n let trans = this.DataSource.SerializedTranslations.find((val) => val.LCID == lang.LCID);\n if (lang.Value == \"\") {\n if (trans) {\n this.DataSource.SerializedTranslations.splice(this.DataSource.SerializedTranslations.indexOf(trans), 1);\n }\n } else {\n if (trans) {\n trans.Value = lang.Value;\n } else {\n this.DataSource.SerializedTranslations.push({ LCID: lang.LCID, Value: lang.Value });\n }\n }\n } else {\n this.DataSource = {\n DefaultValue: lang.Value,\n SerializedTranslations: [{ LCID: lang.LCID, Value: lang.Value }]\n };\n }\n } \n }\n\n openDialog() {\n if (this.DataSourceValue) {\n const source = plainToClass(TranslatedString, JSON.parse(JSON.stringify(this.DataSourceValue)))\n const dialogRef = this.dialog.open(TranslationTextBoxDialog, { data: { Data: source } });\n dialogRef.afterClosed().subscribe((result) => {\n if (result && result.ok) {\n this.DataSource = result.data;\n }\n });\n } else {\n const ts = new TranslatedString();\n const dialogRef = this.dialog.open(TranslationTextBoxDialog, { data: { Data: ts } });\n dialogRef.afterClosed().subscribe((result) => {\n if (result && result.ok) {\n this.DataSource = result.data;\n }\n });\n }\n }\n\n updateCaptions() {\n this.AllLanguages.forEach(x => {\n if (x.LCID == \"default\") {\n x.ActualCaption = this.translate.instant(x.Caption);\n } else {\n let caption;\n if (x.Translation) {\n caption = TranslatedString.GetTranslation(x.Translation);\n }\n if (!caption) {\n caption = x.Caption;\n }\n x.ActualCaption = caption;\n }\n });\n }\n\n CheckValidation(text = null, keypress = false) {\n let ok = true;\n if (this.LayoutElement && this.LayoutElement.UseValidation) {\n let regex = null;\n if (this.LayoutElement.KeyFilter) {\n if (this.LayoutElement.KeyFilter == KeyFilter.regex) {\n regex = new RegExp(this.LayoutElement.RegExp);\n } else {\n let key = KeyFilter[this.LayoutElement.KeyFilter];\n regex = this.DEFAULT_MASKS[key];\n }\n }\n if (!regex) {\n return true;\n }\n if (this.LayoutElementValue.Multiline) {\n let allok = true;\n this.AllLanguages.forEach((lang) => {\n let data = lang.Value;\n let ok = true;\n if (data) {\n if (this.LayoutElement.CheckWholeExpression) {\n ok = regex.test(data);\n } else {\n for (let char of data) {\n if (!regex.test(char)) {\n ok = false;\n break;\n }\n }\n }\n }\n if (lang.Valid != ok) {\n lang.Valid = ok;\n }\n if (!ok) {\n allok = false;\n }\n })\n if (this.LayoutElement.ValidateOnly) {\n this.triggerEvent('ValidationFailed', !allok);\n if (keypress) {\n ok = true;\n }\n }\n this.cdRef.detectChanges();\n } else {\n let data = text;\n if (!text && this.DataSourceValue.DefaultValue) {\n data = this.DataSourceValue.DefaultValue.toString();\n }\n if (!keypress || this.LayoutElement.ValidateOnly) {\n data = this.DataSourceValue.DefaultValue.toString();\n }\n\n if (data) {\n if (this.LayoutElement.CheckWholeExpression) {\n ok = regex.test(data);\n } else {\n for (let char of data) {\n if (!regex.test(char)) {\n ok = false;\n break;\n }\n }\n }\n }\n if (this.LayoutElement.ValidateOnly) {\n this.triggerEvent('ValidationFailed', !ok);\n if (keypress) {\n ok = true;\n }\n }\n }\n }\n if (this.LayoutElement.ValidateOnly) {\n if (this.Valid != ok) {\n this.Valid = ok;\n this.cdRef.detectChanges();\n }\n } else {\n this.Valid = true;\n }\n return ok;\n }\n isSpecialKey(e) {\n let k = e.keyCode || e.charCode;\n return k == 9 || k == 13 || k == 27 || k == 16 || k == 17 || (k >= 18 && k <= 20) ||\n (DomHandler.getBrowser().opera && !e.shiftKey && (k == 8 || (k >= 33 && k <= 35) || (k >= 36 && k <= 39) || (k >= 44 && k <= 45)));\n }\n getKey(e) {\n let k = e.keyCode || e.charCode;\n return DomHandler.getBrowser().safari ? (this.SAFARI_KEYS[k] || k) : k;\n }\n getCharCode(e) {\n return e.charCode || e.keyCode || e.which;\n }\n KeyDown(event) {\n //this.cdRef.detach();\n let k = this.getKey(event);\n if (event.key == \"F2\") {\n LayoutService.KeyPress.next(event);\n }\n if (!event.ctrlKey && this.Keys.indexOf(k) == -1 && !this.LayoutElement.ValidateOnly && !this.CheckValidation(event.key, true)) {\n event.preventDefault();\n }\n if (this.LayoutElementValue.InputType === 'number' && this.invalidChars.includes(event.key)) {\n event.preventDefault();\n } else {\n if (this.LayoutElementValue.UseKeyDownDelay &&\n typeof this.LayoutElementValue.KeyDownDelay === 'number' && this.LayoutElementValue.KeyDownDelay > 0) {\n clearTimeout(this.KeyDownTimeOut);\n this.KeyDownTimeOut = setTimeout(() => {\n this.triggerEvent('keydown', event);\n }, this.LayoutElementValue.KeyDownDelay);\n } else {\n this.triggerEvent('keydown', event);\n }\n }\n }\n\n KeyPress(event) {\n this.triggerEvent('keypress', event);\n }\n KeyUp(event) {\n if (this.LayoutElement.ValidateOnly) {\n this.CheckValidation();\n }\n this.triggerEvent('keyup', event);\n }\n //#region Tooltip\n TooltipValue;\n @Input()\n get Tooltip() {\n if (this.TooltipValue != null) {\n return this.TooltipValue;\n }\n return this.LayoutElement.Tooltip;\n }\n set Tooltip(val) {\n this.TooltipValue = val;\n this.cdRef.detectChanges();\n }\n //#endregion\n}\nexport class TranslationTextBoxPanel extends BasePanel {\n static override SIDS = ['a6970217-e3bb-48b4-b2ed-ab1bc4137e17']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'a6970217-e3bb-48b4-b2ed-ab1bc4137e17',\n ID: 'TranslationTextBox',\n Caption: '@@TranslationTextBox',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'translationtextbox';\n }\n })\n\n PROPERTIES.push({\n ID: \"Placeholder\",\n Parent: \"TranslationTextBox\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Placeholder\",\n InitArgs: {\n DataType: 'string'\n }\n })\n PROPERTIES.push({\n ID: \"Tooltip\",\n Parent: \"TranslationTextBox\",\n Content: new ComponentPortal(TranslationTextBoxThemeControl),\n Label: \"@@Tooltip\",\n InitArgs: {\n DataType: 'string'\n }\n })\n PROPERTIES.push({\n ID: \"Multiline\",\n Parent: \"TranslationTextBox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Mehrzeilig\"\n }\n })\n PROPERTIES.push({\n ID: \"UseValidation\",\n Parent: \"TranslationTextBox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@UseValidation\"\n }\n });\n PROPERTIES.push({\n ID: \"KeyFilter\",\n Parent: \"TranslationTextBox\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Filter type\",\n CheckVisibility: (item) => {\n return item.UseValidation;\n },\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: KeyFilter\n }\n })\n PROPERTIES.push({\n ID: \"RegExp\",\n Parent: \"TranslationTextBox\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@RegExp\",\n CheckVisibility: (item) => {\n return item.KeyFilter == 9 && item.UseValidation;\n }\n });\n PROPERTIES.push({\n ID: \"ValidateOnly\",\n Parent: \"TranslationTextBox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@ValidateOnly\"\n },\n CheckVisibility: (item) => {\n return item.UseValidation && (item.KeyFilter === 0 || item.KeyFilter > 0);\n }\n });\n PROPERTIES.push({\n ID: \"CheckWholeExpression\",\n Parent: \"TranslationTextBox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@CheckWholeExpression\"\n },\n CheckVisibility: (item) => {\n return item.UseValidation && item.KeyFilter == 9;\n }\n });\n PROPERTIES.push({\n ID: \"Message\",\n Parent: \"TranslationTextBox\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Message\",\n CheckVisibility: (item) => {\n return item.UseValidation && (item.KeyFilter === 0 || item.KeyFilter > 0);\n }\n });\n PROPERTIES.push({\n ID: \"UseKeyDownDelay\",\n Parent: \"TranslationTextBox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@UseKeyDownDelay\"\n }\n });\n PROPERTIES.push({\n ID: \"KeyDownDelay\",\n Parent: \"TranslationTextBox\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Delay in ms\",\n CheckVisibility: (item) => {\n return item.UseKeyDownDelay;\n },\n InitArgs: {\n InputType: \"number\",\n Minimum: 0,\n Step: 1\n }\n });\n PROPERTIES.push({\n ID: \"DisplayCount\",\n Parent: \"TranslationTextBox\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@DisplayCount\"\n },\n CheckVisibility: (item) => {\n return item.Multiline;\n }\n });\n PROPERTIES.push({\n ID: \"MaxLength\",\n Parent: \"TranslationTextBox\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@MaxLangth\",\n CheckVisibility: (item) => {\n return item.Multiline;\n },\n InitArgs: {\n InputType: \"number\",\n Minimum: 0,\n Step: 1\n }\n });\n PROPERTIES.push({\n ID: \"Resizeable\",\n Parent: \"TranslationTextBox\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Resizeable\",\n InitArgs: {\n Placeholder:'@@Select',\n EnumSource: Resizeable\n },\n CheckVisibility: (item) => {\n return item.Multiline;\n }\n });\n }\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { TranslatedString } from '../../../models/translatedstring.model';\nimport { TranslationTextBoxDialog } from './translation.textbox.dialog';\n\n@Component({\n selector: 'translation-textbox',\n templateUrl: './translation.textbox.control.html',\n styleUrls: ['./translation.textbox.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TranslationTextBox {\n //#region TranslatedString\n TranslatedStringValue: TranslatedString;\n\n @Input()\n get TranslatedString() {\n return this.TranslatedStringValue;\n }\n set TranslatedString(val) {\n this.TranslatedStringValue = val;\n if (!val) {\n this.TranslatedStringValue = new TranslatedString();\n }\n this.TranslatedStringChange.emit(this.TranslatedStringValue);\n }\n @Input() required: boolean;\n @Input() appearance: string;\n @Output() TranslatedStringChange = new EventEmitter();\n //#endregion\n //#region Disbaled\n DisabledValue;\n @Input()\n get Disabled(): boolean {\n return this.DisabledValue;\n }\n set Disabled(val: boolean) {\n this.DisabledValue = val;\n this.DisabledChange.emit(this.DisabledValue);\n }\n\n @Output() DisabledChange = new EventEmitter();\n //#endregion\n //#region Placeholder\n PlaceholderValue: string;\n\n @Input()\n get Placeholder() {\n return this.PlaceholderValue;\n }\n set Placeholder(val) {\n this.PlaceholderValue = val;\n this.PlaceholderChange.emit(this.PlaceholderValue);\n }\n\n @Output() PlaceholderChange = new EventEmitter();\n //#endregion\n\n //#region Editable\n EditableValue = true;\n\n @Input()\n get Editable() {\n return this.EditableValue;\n }\n set Editable(val) {\n this.EditableValue = val;\n this.EditableChange.emit(this.EditableValue);\n }\n\n @Output() EditableChange = new EventEmitter();\n //#endregion\n\n //#region Placeholder\n MultilineValue = false;\n\n @Input()\n get Multiline() {\n return this.MultilineValue;\n }\n set Multiline(val) {\n this.MultilineValue = val;\n this.MultilineChange.emit(this.MultilineValue);\n }\n\n @Output() MultilineChange = new EventEmitter();\n //#endregion\n\n @Output() Saved = new EventEmitter();\n @ViewChild('textBox', { read: ElementRef }) textBox: ElementRef;\n constructor(private dialog: MatDialog, private cdRef: ChangeDetectorRef) {\n }\n\n onSaved() {\n if (this.TranslatedStringValue) {\n this.Saved.emit(this.TranslatedStringValue);\n }\n }\n\n defaultChanged(ev) {\n if (this.TranslatedStringValue) {\n this.TranslatedStringValue.DefaultValue = ev;\n this.onSaved();\n }\n }\n\n openDialog(ev) {\n if (this.TranslatedStringValue) {\n const dialogRef = this.dialog.open(TranslationTextBoxDialog, { data: { Data: this.TranslatedStringValue } });\n dialogRef.afterClosed().subscribe(() => this.onSaved());\n }\n }\n\n setFocus() {\n if (this.textBox && this.textBox.nativeElement) {\n this.textBox.nativeElement.focus();\n }\n }\n\n detectChanges() {\n this.cdRef.detectChanges();\n }\n}\n","import { OnInit, Component, Inject, ChangeDetectionStrategy } from \"@angular/core\";\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\nimport { TranslatedString, TranslatedStringElement } from \"../../../models/translatedstring.model\";\nimport { StandardRequestBase } from \"../../../services/request-base\";\n\n@Component({\n selector: 'translation-textbox-dialog',\n templateUrl: './translation.textbox.dialog.html',\n styleUrls: ['./translation.textbox.dialog.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TranslationTextBoxDialog implements OnInit {\n\n TranslatedString: TranslatedString = new TranslatedString();\n AllLanguages = [];\n RemainingLanguages = [];\n\n constructor(private dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private requestService: StandardRequestBase) {\n dialogRef.disableClose = true;\n if (data) {\n this.TranslatedString = data.Data;\n }\n requestService.executeGet('config/api/config', 'GetSelectedLanguages').subscribe(languages => {\n this.AllLanguages = languages;\n this.updateRemaining();\n });\n }\n\n ngOnInit(): void {\n }\n\n getLanguageName(lcid: number):string {\n var retVal = '';\n this.AllLanguages.some(function (lang) {\n if (lang.LCID == lcid) {\n retVal = lang.Caption;\n return true;\n }\n return false;\n });\n return retVal;\n }\n\n deleteClicked(ev, lang) {\n this.TranslatedString.SerializedTranslations.splice(this.TranslatedString.SerializedTranslations.indexOf(lang), 1);\n this.updateRemaining();\n }\n\n addLanguage(ev, lcid, text) {\n var seri = new TranslatedStringElement();\n seri.LCID = lcid;\n seri.Value = text;\n this.TranslatedString.SerializedTranslations.push(seri);\n this.updateRemaining(); \n }\n\n close() {\n this.dialogRef.close({ ok: true, data: this.TranslatedString });\n }\n cancel() {\n this.dialogRef.close({ ok: false });\n }\n\n updateRemaining() {\n var remaining = [];\n var seri = this.TranslatedString.SerializedTranslations;\n this.AllLanguages.forEach(function (lang) {\n var existing = false;\n seri.some(function (st) {\n if (st.LCID == lang.LCID) {\n existing = true;\n return true;\n }\n return false;\n });\n if (!existing) {\n remaining.push(lang);\n }\n });\n this.RemainingLanguages = remaining; \n \n }\n\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { CacheService } from '../../../cache/cache.service';\nimport { ACaptionGetter, DefaultCaptionGetter } from '../../../helpers/acaptiongetter';\nimport { FilterHelper } from '../../../helpers/filter.helper';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { Comparer } from '../../../models/enums/comparer.enum';\nimport { RequestFilter } from '../../../models/rest/requestfilter';\nimport { RequestOptions } from '../../../models/rest/requestoptions';\nimport { DataService } from '../../../services/data.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { ABaseTreeNode, IBaseTreeNode, IDKeeper, ITreeLogic } from '../../common/basetreecontrol/base.tree.control';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-tree',\n templateUrl: './tree.control.html',\n styleUrls: ['./tree.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TreeControl extends IBaseComponent {\n static Type: any = 'tree';\n static Default = JSON.parse(JSON.stringify(defaultProperties.tree));\n\n //#region SelectedNodes\n SelectedNodesValue = [];\n\n @Input()\n get SelectedNodes() {\n return this.SelectedNodesValue;\n }\n set SelectedNodes(val) {\n this.SelectedNodesValue = val;\n }\n //#endregion\n\n //#region Nodes\n NodesValue = [];\n\n @Input()\n get Nodes() {\n return this.NodesValue;\n }\n set Nodes(val) {\n this.NodesValue = val;\n this.NodesChange.emit(this.NodesValue);\n }\n\n @Output() NodesChange = new EventEmitter();\n //#endregion\n\n //#region DisplayMemberPath\n @Input()\n get DisplayMemberPath() {\n return this.LayoutElementValue.DisplayMemberPath;\n }\n set DisplayMemberPath(val) {\n this.LayoutElementValue.DisplayMemberPath = val;\n this.DisplayMemberPathChange.emit(this.LayoutElementValue.DisplayMemberPath);\n }\n\n @Output() DisplayMemberPathChange = new EventEmitter();\n //#endregion\n\n //#region MultipleSelection\n @Input()\n get MultipleSelection() {\n return this.LayoutElementValue.MultipleSelection;\n }\n set MultipleSelection(val) {\n this.LayoutElementValue.MultipleSelection = val;\n this.MultipleSelectionChange.emit(this.LayoutElementValue.MultipleSelection);\n }\n\n @Output() MultipleSelectionChange = new EventEmitter();\n //#endregion\n\n @Output() SelectionChanged = new EventEmitter();\n @Output() DoubleClick = new EventEmitter();\n\n loaded = false;\n DataSourceID;\n pageIndex = 0;\n pageLength = 100;\n idKeeper = new IDKeeper();\n CaptionGetter: ACaptionGetter;\n FieldList = [];\n Logic: MainTreeLoader;\n\n static GetNode(data: any, id: number, level: number, captionGetter: ACaptionGetter, icon: string) {\n const node = new TreeDataNode(id);\n if (data) {\n node.Caption = data.toString();\n node.Data = data;\n if (captionGetter) {\n node.Caption = captionGetter.GetCaption(data);\n }\n if (icon) {\n node.Icon = data[icon];\n }\n }\n node.Level = level;\n return node;\n }\n\n constructor(private dataService: DataService, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.EventList.push('selectionchanged');\n this.EventList.push('doubleclick');\n }\n\n ControlInitialized() {\n this.DataSourceID = MetaHelper.FindDataSourceID(this.Layout, this.LayoutElementValue);\n if (this.DataSourceID) {\n CacheService.ReadTable(this.DataSourceID).then((result) => {\n if (result) {\n const fields = result['Fields'];\n if (fields) {\n this.FieldList = fields;\n }\n }\n this.ExecuteRefresh();\n });\n }\n }\n\n onSelectionChanged(event) {\n this.SelectedNodes = event;\n this.SelectionChanged.emit(event);\n this.triggerEvent('selectionchanged', event);\n }\n\n onDoubleClick(event) {\n this.DoubleClick.emit(event);\n this.triggerEvent('doubleclick', event);\n }\n\n onScrollDown() {\n if (this.LayoutElementValue) {\n this.LoadData();\n }\n }\n\n LoadData() {\n if (!this.loaded && this.DataSourceID) {\n const dse = MetaHelper.FindValidParent(this.Layout, this.LayoutElementValue);\n const filter = FilterHelper.PrepareFilter(dse);\n if (!this.Nodes) {\n this.Nodes = [];\n }\n if (this.Variables && this.Layout.Filter) {\n this.Layout.Filter.forEach((fil) => {\n if (this.Variables[fil.Filter]) {\n const item = new RequestFilter();\n item.Name = fil.Name;\n item.Operator = fil.Comparer;\n item.Value = this.Variables[fil.Filter];\n FilterHelper.AddSearchFilter(filter, item);\n }\n });\n }\n filter.StartRow = null; this.pageIndex * this.pageLength;\n filter.EndRow = null; filter.StartRow + this.pageLength;\n this.dataService.SearchObjects('dynamicdata', this.DataSourceID, filter).subscribe((data) => {\n if (!data) {\n this.loaded = true;\n } else {\n const nodes = this.Nodes.slice();\n this.pageIndex += 1;\n data.forEach(x => {\n const node = TreeControl.GetNode(x, this.idKeeper.NextID, 0, this.CaptionGetter, this.LayoutElementValue.Icon);\n if (this.Logic && this.Logic.NextLoader) {\n node.HasChildren = this.Logic.NextLoader.hasChildren(x);\n }\n nodes.push(node);\n });\n this.Nodes = nodes;\n }\n this.cdRef.detectChanges();\n });\n }\n }\n\n ExecuteRefresh() {\n this.loaded = false;\n this.pageIndex = 0;\n this.Nodes = [];\n this.idKeeper.reset();\n this.CaptionGetter = ACaptionGetter.GetCaptionGetter(this.LayoutElementValue, this.FieldList);\n if (this.LayoutElementValue) {\n this.Logic = new MainTreeLoader(this.DataSourceID, this.FieldList, this.dataService, this.idKeeper, this.LayoutElementValue);\n } else {\n this.Logic = null;\n }\n this.LoadData();\n }\n}\n\nexport class TreeDataNode extends ABaseTreeNode {\n Data;\n Level = 0;\n}\n\nexport abstract class ATreeDataLoader implements ITreeLogic {\n CaptionGetter: ACaptionGetter = new DefaultCaptionGetter();\n IsRecursive = false;\n NextLoader: ATreeDataLoader;\n\n constructor(protected actField, protected service: DataService, protected idKeeper: IDKeeper) {\n }\n\n abstract loadChildren(node: IBaseTreeNode): Promise;\n abstract hasChildren(data): boolean;\n}\n\nexport abstract class AChildListLoader extends ATreeDataLoader {\n CheckForValue = false;\n ColName = '_Id';\n DataSourceID;\n Icon;\n\n async loadChildren(node: IBaseTreeNode): Promise {\n const retVal = [];\n if (node && node['Data'] && this.actField && this.actField.IsList) {\n const children = node['Data'][this.actField.Name];\n let data;\n if (this.actField.IsShared && !this.actField.IsReverse) {\n const filter = RequestOptions.CleanRequestOptions();\n filter.Filters = [];\n filter.Columns = [];\n const colFilter = new RequestFilter();\n colFilter.Name = this.ColName;\n filter.Filters.push(colFilter);\n if (this.CheckForValue) {\n if (children != null) {\n colFilter.Operator = Comparer.Equal;\n colFilter.Value = children;\n data = await this.service.SearchObjects('dynamicdata', this.DataSourceID, filter).toPromise();\n }\n } else if (Array.isArray(children)) {\n colFilter.Operator = Comparer.In;\n colFilter.Value = children;\n data = await this.service.SearchObjects('dynamicdata', this.DataSourceID, filter).toPromise();\n }\n } else if (Array.isArray(children)) {\n data = children;\n }\n if (data) {\n let level = 0;\n if (typeof node['Level'] === 'number') {\n level = node['Level'];\n }\n level++;\n data.forEach(x => {\n const dataNode = TreeControl.GetNode(x, this.idKeeper.NextID, level, this.CaptionGetter, this.Icon);\n if (this.IsRecursive) {\n dataNode.HasChildren = this.hasChildren(x);\n } else if (this.NextLoader) {\n dataNode.HasChildren = this.NextLoader.hasChildren(x);\n }\n retVal.push(dataNode);\n });\n }\n }\n return retVal;\n }\n\n hasChildren(data) {\n if (data && this.actField) {\n const val = data[this.actField.Name];\n if (this.CheckForValue) {\n return val != null;\n } else {\n return Array.isArray(val) && val.length > 0;\n }\n }\n return false;\n }\n}\n\nexport class MainTreeLoader implements ITreeLogic {\n\n NextLoader: ATreeDataLoader;\n\n constructor(protected dataSourceID, protected fieldList, protected service: DataService,\n protected idKeeper: IDKeeper, private layout) {\n if (this.layout && this.layout.TreeSettings) {\n if (this.layout.TreeSettings.Recursive) {\n if (this.layout.TreeSettings.ParentID) {\n this.NextLoader = new RecursiveParentIDLoader(dataSourceID,\n fieldList.find(x => x.ID === this.layout.TreeSettings.ParentID),\n fieldList.find(x => x.ID === this.layout.TreeSettings.ParentCheckID),\n fieldList.find(x => x.ID === this.layout.TreeSettings.HasChildren),\n service, idKeeper, ACaptionGetter.GetCaptionGetter(layout, fieldList), this.layout.Icon);\n } else if (this.layout.TreeSettings.ChildList) {\n this.NextLoader = new RecursiveChildListLoader(dataSourceID,\n fieldList.find(x => x.ID === this.layout.TreeSettings.ChildList), service, idKeeper,\n ACaptionGetter.GetCaptionGetter(layout, fieldList), this.layout.Icon);\n }\n } else {\n const childField = fieldList.find(x => x.ID === this.layout.TreeSettings.NextLevelID);\n if (childField) {\n this.NextLoader = new ChildListLoader(childField, service, idKeeper, this.layout.TreeSettings);\n }\n }\n }\n }\n\n async loadChildren(node: IBaseTreeNode): Promise {\n if (node && this.NextLoader) {\n const level = node['Level'];\n if (typeof level === 'number') {\n let nextLoader = this.NextLoader;\n for (let i = 0; i < level && nextLoader; i++) {\n if (nextLoader.IsRecursive) {\n break;\n }\n nextLoader = nextLoader.NextLoader;\n }\n if (nextLoader) {\n return nextLoader.loadChildren(node);\n }\n }\n }\n return [];\n }\n}\n\nexport class RecursiveParentIDLoader extends ATreeDataLoader {\n private checkFieldName: string;\n\n constructor(private dataSourceID, protected parentField, protected parentCheckField, protected hasChildField,\n protected service: DataService, protected idKeeper: IDKeeper, protected captionGetter: ACaptionGetter, protected icon) {\n super(parentField, service, idKeeper);\n if (parentField) {\n if (parentField.Type === 'c4ef25dd-c176-418c-836e-f26c52d7f59c') {\n this.checkFieldName = '_Id';\n } else if (parentCheckField) {\n if (parentField.Type === parentCheckField.Type && parentField.Name !== parentCheckField.Name) {\n this.checkFieldName = parentCheckField.Name;\n }\n } else if (parentField.Type === '983dad4c-fd88-4124-aed0-1dd1d177521a') {\n this.checkFieldName = '_Id';\n }\n }\n this.CaptionGetter = captionGetter;\n this.IsRecursive = true;\n }\n\n async loadChildren(node: IBaseTreeNode): Promise {\n const retVal = [];\n if (this.checkFieldName) {\n const filter = new RequestOptions();\n filter.Filters = [];\n filter.Columns = [];\n let level = 0;\n if (node) {\n if (node['Data']) {\n const colFilter = new RequestFilter();\n colFilter.Name = this.actField.Name;\n colFilter.Operator = Comparer.Equal;\n colFilter.Value = node['Data'][this.checkFieldName];\n filter.Filters.push(colFilter);\n }\n if (typeof node['Level'] === 'number') {\n level = node['Level'];\n }\n }\n level++;\n const data = await this.service.SearchObjects('dynamicdata', this.dataSourceID, filter).toPromise();\n if (data) {\n data.forEach(x => {\n const dataNode = TreeControl.GetNode(x, this.idKeeper.NextID, level, this.CaptionGetter, this.icon);\n dataNode.HasChildren = this.hasChildren(x);\n retVal.push(dataNode);\n });\n }\n }\n return retVal;\n }\n\n hasChildren(data) {\n if (this.hasChildField && data) {\n return data[this.hasChildField.Name];\n }\n return true;\n }\n}\n\nexport class RecursiveChildListLoader extends AChildListLoader {\n constructor(protected dataSourceID, protected childListField, protected service: DataService,\n protected idKeeper: IDKeeper, protected captionGetter: ACaptionGetter, protected icon) {\n super(childListField, service, idKeeper);\n this.DataSourceID = dataSourceID;\n this.CaptionGetter = captionGetter;\n this.IsRecursive = true;\n this.Icon = icon;\n }\n}\n\nexport class ChildListLoader extends AChildListLoader {\n\n constructor(protected nextField, protected service: DataService, protected idKeeper: IDKeeper, protected nextLevel) {\n super(nextField, service, idKeeper);\n if (nextField) {\n this.DataSourceID = nextField.AdvancedType;\n if (nextField.IsShared && !nextField.IsReverse && nextField.KeyColumns && nextField.KeyColumns.length === 1) {\n this.CheckForValue = true;\n this.ColName = nextField.KeyColumns[0];\n }\n if (nextLevel && nextField.IsList && nextField.Type === 'c4ef25dd-c176-418c-836e-f26c52d7f59c') {\n this.Icon = nextLevel.Icon;\n CacheService.ReadTable(nextField.AdvancedType).then((result) => {\n if (result) {\n const fields = result['Fields'];\n if (fields) {\n this.CaptionGetter = ACaptionGetter.GetCaptionGetter(nextLevel, fields);\n if (nextLevel.NextLevel) {\n if (nextLevel.NextLevel.Recursive) {\n if (nextLevel.NextLevel.ParentID) {\n this.NextLoader = new RecursiveParentIDLoader(this.DataSourceID,\n fields.find(x => x.ID === nextLevel.NextLevel.ParentID),\n fields.find(x => x.ID === nextLevel.NextLevel.ParentCheckID),\n fields.find(x => x.ID === nextLevel.NextLevel.HasChildren),\n service, idKeeper, this.CaptionGetter, nextLevel.Icon);\n } else if (nextLevel.NextLevel.ChildList) {\n this.NextLoader = new RecursiveChildListLoader(this.DataSourceID,\n fields.find(x => x.ID === nextLevel.NextLevel.ChildList),\n service, idKeeper, this.CaptionGetter, nextLevel.Icon);\n }\n } else {\n const childField = fields.find(x => x.ID === nextLevel.NextLevel.NextLevelID);\n if (childField) {\n this.NextLoader = new ChildListLoader(childField, service, idKeeper, nextLevel.NextLevel);\n }\n }\n }\n }\n }\n });\n }\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'evi-treetable',\n templateUrl: './treetable.control.html',\n styleUrls: ['./treetable.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TreeTableControl {\n\n Instance;\n\n //#region Rows\n RowsValue;\n\n @Input()\n get Rows() {\n return this.RowsValue;\n }\n set Rows(val) {\n this.RowsValue = val;\n this.checkRows();\n this.RowsChange.emit(this.RowsValue);\n }\n\n @Output() RowsChange = new EventEmitter();\n //#endregion\n //#region Columns\n ColumnsValue;\n\n @Input()\n get Columns() {\n return this.ColumnsValue;\n }\n set Columns(val) {\n this.ColumnsValue = val;\n this.ColumnsChange.emit(this.ColumnsValue);\n }\n\n @Output() ColumnsChange = new EventEmitter();\n //#endregion\n\n //#region AlternatingLineColors\n AlternatingLineColorsValue = false;\n\n @Input()\n get AlternatingLineColors() {\n return this.AlternatingLineColorsValue;\n }\n set AlternatingLineColors(val) {\n this.AlternatingLineColorsValue = val;\n this.checkRows();\n this.AlternatingLineColorsChange.emit(this.AlternatingLineColorsValue);\n }\n\n @Output() AlternatingLineColorsChange = new EventEmitter();\n //#endregion\n\n static setRowStyle(row, indexObj) {\n if (!row.Style) {\n row.Style = {};\n }\n row.Style['background-color'] = (indexObj.Index % 2 === 0) ? 'lightgray' : null;\n indexObj.Index++;\n if (row.Children && row.Children.length > 0 && row.Expanded) {\n row.Children.forEach(x => {\n TreeTableControl.setRowStyle(x, indexObj);\n });\n }\n }\n\n constructor() {\n this.Instance = this;\n }\n\n @Output() DataChanged = new EventEmitter();\n OnChange() {\n this.DataChanged.emit();\n }\n \n OnExpand() {\n this.checkRows();\n }\n\n checkRows() {\n if (this.AlternatingLineColorsValue === true && Array.isArray(this.RowsValue)) {\n const indexObj = { Index: 0 };\n this.RowsValue.forEach(x => {\n TreeTableControl.setRowStyle(x, indexObj);\n });\n }\n }\n}\n","import { Component, Output, Input, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\nimport { trigger, transition, style, animate } from '@angular/animations';\n\n@Component({\n selector: 'evi-treetableitem',\n templateUrl: './treetableitem.control.html',\n styleUrls: ['./treetableitem.control.css'],\n animations: [\n trigger('animateRow', [\n transition(':enter', [\n style({ transform: 'translateY(-100%)'}),\n animate('200ms', style({ transform: 'translateY(0)' }))\n ]),\n transition(':leave', [\n style({ transform: 'translateY(0)', opacity: 1 }),\n animate('200ms', style({ transform: 'translateY(-100%)' }))\n ])\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TreeTableItemControl {\n //#region Row\n RowValue;\n\n @Input()\n get Row() {\n return this.RowValue;\n }\n set Row(val) {\n this.RowValue = val;\n const marginStyle = {};\n if (this.RowValue) {\n marginStyle['margin-left'] = (this.RowValue['Depth'] * 24) + 'px';\n }\n this.MarginStyle = marginStyle;\n this.RowChange.emit(this.RowValue);\n }\n\n @Output() RowChange = new EventEmitter();\n //#endregion\n //#region Columns\n ColumnsValue;\n\n @Input()\n get Columns() {\n return this.ColumnsValue;\n }\n set Columns(val) {\n this.ColumnsValue = val;\n const colWidth = {};\n if (this.ColumnsValue) {\n colWidth['flex'] = '1 1 ' + (Math.floor(100 / this.ColumnsValue.length)) + '%';\n }\n this.ColWidth = colWidth;\n this.ColumnsChange.emit(this.ColumnsValue);\n }\n\n @Output() ColumnsChange = new EventEmitter();\n //#endregion\n //#region TreeControl\n TreeControlValue;\n\n @Input()\n get TreeControl() {\n return this.TreeControlValue;\n }\n set TreeControl(val) {\n this.TreeControlValue = val;\n this.TreeControlChange.emit(this.TreeControlValue);\n }\n\n @Output() TreeControlChange = new EventEmitter();\n //#endregion\n\n MarginStyle = {};\n ColWidth = {};\n\n OnChange() {\n if (this.TreeControlValue) {\n this.TreeControlValue.OnChange();\n }\n }\n\n OnExpand() {\n this.Row.Expanded = !this.Row.Expanded;\n if (this.TreeControlValue) {\n this.TreeControlValue.OnExpand();\n }\n }\n}\n","import { ComponentPortal } from '@angular/cdk/portal';\nimport { HttpEventType } from '@angular/common/http';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, ViewChild } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { TranslateFormatText } from '../../../helpers/array.helpers';\nimport { InjectorHelper } from '../../../helpers/injector.helper';\nimport { MessageBoxButtons } from '../../../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../../../models/enums/messageboxicon.enum';\nimport { MessageBoxResult } from '../../../models/enums/messageboxresult.enum';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ElementProperty } from '../../../models/layoutbase.model';\nimport { LayoutElement } from '../../../models/layoutelement.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MediaService } from '../../../services/media.service';\nimport { MessageBoxHelper } from '../../dialogs/messagebox/messagebox.dialog';\nimport { IBaseComponent } from '../base.component';\nimport { ButtonControl } from '../button/button.control';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-upload',\n templateUrl: './upload.control.html',\n styleUrls: ['./upload.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class UploadControl extends IBaseComponent {\n static Type: any = 'upload';\n static Default = JSON.parse(JSON.stringify(defaultProperties.upload));\n Types = {\n '.csv': {\n Caption: 'CSV',\n Value: '.csv',\n Type: 'text/csv'\n },\n 'application/vnd.ms-excel': {\n Caption: 'Excel 97-2003',\n Value: 'application/vnd.ms-excel',\n Type: 'application/vnd.ms-excel'\n },\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': {\n Caption: 'Excel 2007+',\n Value: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n Type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n },\n 'text/plain': {\n Caption: 'Text',\n Value: 'text/plain',\n Type: 'text/plain'\n },\n 'image/*': {\n Caption: 'Image',\n Value: 'image/*',\n Type: 'image/*'\n },\n 'text/html': {\n Caption: 'Html',\n Value: 'text/html',\n Type: 'text/html'\n },\n 'video/*': {\n Caption: 'Video',\n Value: 'video/*',\n Type: 'video/*'\n },\n 'audio/*': {\n Caption: 'Audio',\n Value: 'audio/*',\n Type: 'audio/*'\n },\n '.pdf': {\n Caption: 'Pdf',\n Value: '.pdf',\n Type: 'application/pdf'\n }\n };\n PathValue;\n get Path() {\n if (this.PathValue != null) {\n return this.PathValue;\n }\n if (this.LayoutElementValue.Path) {\n return this.LayoutElementValue.Path;\n }\n return '';\n }\n set Path(val) {\n this.PathValue = val;\n }\n\n CaptionValue;\n get Caption() {\n if (this.CaptionValue != null) {\n return this.CaptionValue;\n }\n return this.LayoutElementValue.Caption;\n }\n set Caption(val) {\n this.CaptionValue = val;\n if (this.button) {\n this.button.Caption = val;\n }\n this.cdRef.detectChanges();\n }\n\n IconValue;\n get Icon() {\n if (this.IconValue != null) {\n return this.IconValue;\n }\n return this.LayoutElementValue.Icon;\n }\n set Icon(val) {\n this.IconValue = val;\n if (this.button) {\n this.button.Icon = val;\n }\n this.cdRef.detectChanges();\n }\n\n get FileTypes() {\n if (this.LayoutElementValue && this.LayoutElementValue.FileTypes && this.LayoutElementValue.FileTypes.length > 0) {\n return this.LayoutElementValue.FileTypes.join(', ');\n }\n return null;\n }\n\n ButtonLayout;\n @ViewChild('button') button: ButtonControl;\n\n constructor(private mediaService: MediaService, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.PropertyList.push(new ElementProperty('Caption', 'string', '@@Text'));\n this.PropertyList.push(new ElementProperty('Icon', 'string', '@@Icon'));\n this.PropertyList.push(new ElementProperty('Path', 'string', '@@Path'));\n this.EventList.push('uploadcomplete');\n this.EventList.push('uploadstarting');\n this.EventList.push('uploadstarted');\n this.EventList.push('uploadfailed');\n }\n UseFilePicker = false;\n ControlInitialized() {\n this.SetButtonLayout();\n if (window['showOpenFilePicker']) {\n this.UseFilePicker = true;\n }\n }\n\n private SetButtonLayout() {\n if (this.LayoutElementValue) {\n this.ButtonLayout = plainToClass(LayoutElement, JSON.parse(JSON.stringify(this.LayoutElementValue)));\n }\n }\n FileDrop(event) {\n let ev = {\n target: {\n files: event\n }\n }\n this.UploadPicture(ev)\n }\n onLayoutElementSet() {\n this.SetButtonLayout();\n }\n onLayoutElementChanged() {\n this.SetButtonLayout();\n }\n async OpenFilePicker(event) {\n if(!this.Editable || this.Disabled) {\n return this.PreventDefault(event);\n }\n if (this.UseFilePicker) {\n const pickerOpts = {\n types: [],\n excludeAcceptAllOption: this.LayoutElementValue.HideAllFiles ? true : false,\n multiple: this.LayoutElementValue.Multiple ? true : false\n };\n if (this.LayoutElementValue.FileTypes) {\n pickerOpts.types = [];\n\n this.LayoutElementValue.FileTypes.forEach((ft) => {\n let lft = this.Types[ft];\n let item = {\n description: ft,\n accept: {}\n };\n if (lft) {\n item.description = lft.Caption;\n item.accept[lft.Type] = [];\n }\n pickerOpts.types.push(item);\n\n })\n }\n\n let fileHandles = await window['showOpenFilePicker'](pickerOpts);\n if (fileHandles && fileHandles.length > 0) {\n let event = {\n target: {\n files: []\n }\n }\n if (this.LayoutElementValue.Multiple) {\n let count = fileHandles.length;\n let i = 0;\n fileHandles.forEach((fileHandle) => {\n fileHandle.getFile().then((file) => {\n event.target.files.push(file);\n i += 1;\n if (i == count) {\n this.UploadPicture(event);\n }\n })\n })\n } else {\n fileHandles[0].getFile().then((file) => {\n event.target.files.push(file);\n this.UploadPicture(event)\n })\n }\n }\n //if (fileHandle.kind === 'file') {\n // // run file code\n\n //} else if (fileHandle.kind === 'directory') {\n // // run directory code\n //}\n }\n }\n UploadPicture(event) {\n if(!this.Editable || this.Disabled) {\n return this.PreventDefault(event);\n }\n\n if (this.LayoutElementValue && (this.LayoutElementValue.MediaSource || this.LayoutElementValue.UseForBlob)) {\n let selectedFile = null;\n if (this.LayoutElementValue.Multiple) {\n selectedFile = event.target.files;\n } else {\n selectedFile = event.target.files[0];\n }\n this.triggerEvent('uploadstarting', selectedFile);\n if (this.LayoutElementValue.UseForBlob) {\n this.triggerEvent('uploadstarted', selectedFile);\n const reader = new FileReader();\n reader.onload = (e) => {\n this.DataSource = reader.result;\n selectedFile.data = reader.result;\n this.triggerEvent('uploadcomplete', selectedFile);\n }\n if (this.LayoutElementValue.DataType == 'bin') {\n reader.readAsBinaryString(selectedFile);\n } else {\n reader.readAsDataURL(selectedFile);\n }\n } else {\n if (this.LayoutElementValue.CheckForExisting) {\n this.mediaService.ListObjects(this.LayoutElementValue.MediaSource, this.Path).subscribe(r => {\n if (r && r.length > 0) {\n const found = [];\n if (this.LayoutElementValue.Multiple) {\n Array.from(selectedFile).forEach((file: File) => {\n const value = r.find((v) => v.Name == file.name);\n if (value != null) {\n found.push(file.name);\n }\n });\n } else {\n const value = r.find((v) => v.Name == selectedFile.name);\n if (value != null) {\n found.push(selectedFile.name);\n }\n }\n\n if (found && found.length > 0) {\n let text = '';\n if (found.length > 1) {\n text = '@@Die Dateien mit den Namen \\'{0}\\' existieren bereits. Wollen Sie die Dateien ueberschreiben?';\n } else {\n text = '@@Datei mit Name \\'{0}\\' existiert bereits. Wollen Sie die Datei ueberschreiben?';\n }\n\n const tft = new TranslateFormatText(text);\n const vari = found.join(', ');\n tft.FormatParams.push(vari);\n MessageBoxHelper.ShowDialog(tft, new TranslateFormatText('@@Datei ueberschreiben'), MessageBoxButtons.YesNo,\n MessageBoxIcon.Question).then((res) => {\n if (res === MessageBoxResult.Yes) {\n this.uploadSpecific(selectedFile);\n }\n });\n } else {\n this.uploadSpecific(selectedFile);\n }\n } else {\n this.uploadSpecific(selectedFile);\n }\n });\n } else {\n this.uploadFile(selectedFile);\n }\n }\n\n }\n }\n\n CheckFileSize(selectedFile): boolean {\n let errors = [];\n if (this.LayoutElementValue.MaxFileSize) {\n if (this.LayoutElementValue.Multiple) {\n Array.from(selectedFile).forEach((file: File) => {\n if (file.size > this.LayoutElementValue.MaxFileSize) {\n errors.push(this.CopyFile(file));\n }\n });\n } else {\n if (selectedFile.size > this.LayoutElementValue.MaxFileSize) {\n errors.push(this.CopyFile(selectedFile));\n }\n }\n }\n if (errors.length > 0) {\n this.triggerEvent('uploadfailed', errors);\n console.log(errors);\n }\n return errors.length == 0;\n }\n CopyFile(file:File):any {\n let item: any = {};\n item.name = file.name;\n item.size = file.size;\n item.type = file.type;\n return item;\n }\n uploadFile(selectedFile) {\n if (selectedFile && this.LayoutElementValue && this.LayoutElementValue.MediaSource) {\n const uploadData = new FormData();\n\n if (this.CheckFileSize(selectedFile)) {\n if (this.LayoutElementValue.Multiple) {\n Array.from(selectedFile).forEach((file: File) => {\n uploadData.append(this.Path + file.name, file, this.Path + file.name);\n });\n } else {\n uploadData.append(this.Path + selectedFile.name, selectedFile, this.Path + selectedFile.name);\n }\n this.triggerEvent('uploadstarted', selectedFile);\n this.mediaService.UploadFile(this.LayoutElementValue.MediaSource, uploadData).subscribe((result) => {\n if (result.type === HttpEventType.Response) {\n this.triggerEvent('uploadcomplete', result.body);\n }\n });\n }\n }\n }\n uploadSpecific(selectedFile) {\n if (selectedFile && this.LayoutElementValue && this.LayoutElementValue.MediaSource) {\n const uploadData = new FormData();\n if (this.CheckFileSize(selectedFile)) {\n if (this.LayoutElementValue.Multiple) {\n Array.from(selectedFile).forEach((file: File) => {\n uploadData.append(this.Path + file.name, file, this.Path + file.name);\n });\n } else {\n uploadData.append(this.Path + selectedFile.name, selectedFile, this.Path + selectedFile.name);\n }\n this.triggerEvent('uploadstarted', selectedFile);\n this.mediaService.UploadSpecific(this.LayoutElementValue.MediaSource, uploadData).subscribe(e => {\n if (e.type === HttpEventType.Response) {\n this.triggerEvent('uploadcomplete', e.body);\n }\n });\n }\n }\n }\n GetZIndex() {\n const retVal = {};\n if (this.LayoutElementValue && typeof this.LayoutElementValue.ZIndex === 'number') {\n retVal['z-index'] = this.LayoutElementValue.ZIndex + 1;\n }\n return retVal;\n }\n\n SetProperties() {\n return super.SetProperties();\n }\n\n // prevents the browsers default behaviour and\n // stops an event from bubbling or propagating up the DOM tree\n PreventDefault(event) {\n event.preventDefault();\n event.stopPropagation();\n return false;\n }\n}\nexport class UploadPanel extends BasePanel {\n static override SIDS = ['e451c7d3-3b46-4996-b3e6-0331d524d39f']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'e451c7d3-3b46-4996-b3e6-0331d524d39f',\n ID: 'upload',\n Caption: '@@Upload',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'upload';\n }\n })\n // PROPERTIES.push({\n // ID: \"UseForBlob\",\n // Parent: \"upload\",\n // Content: new ComponentPortal(CheckBoxThemeControl),\n // InitArgs: {\n // Caption: \"@@UseForBlob\"\n // },\n // Row: 1\n // })\n let mediaService = InjectorHelper.InjectorInstance.get(MediaService);\n mediaService.GetUsable().subscribe((data) => {\n PROPERTIES.push({\n ID: \"MediaSource\",\n Parent: \"upload\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@SelectMediaSource\",\n Row: 3,\n CheckVisibility: (item) => {\n return !item.UseForBlob;\n },\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: data,\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'SID'\n }\n })\n let FileTypes = [{\n Caption: 'CSV',\n Value: '.csv'\n }, {\n Caption: 'Excel 97-2003',\n Value: 'application/vnd.ms-excel'\n }, {\n Caption: 'Excel 2007+',\n Value: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n }, {\n Caption: 'Text',\n Value: 'text/plain'\n }, {\n Caption: 'Image',\n Value: 'image/*'\n }, {\n Caption: 'Html',\n Value: 'text/html'\n }, {\n Caption: 'Video',\n Value: 'video/*'\n }, {\n Caption: 'Audio',\n Value: 'audio/*'\n }, {\n Caption: 'Pdf',\n Value: '.pdf'\n }]\n PROPERTIES.push({\n ID: \"FileTypes\",\n Parent: \"upload\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@FileTypes\",\n CheckVisibility: (item) => {\n return !item.UseForBlob;\n },\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: true,\n ItemsSource: FileTypes,\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'Value'\n }\n })\n PROPERTIES.push({\n ID: \"HideAllFiles\",\n Parent: \"upload\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@HideAllFiles\"\n }\n })\n PROPERTIES.push({\n ID: \"MaxFileSize\",\n Parent: \"upload\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@MaxFileSize\",\n CheckVisibility: (item) => {\n return !item.UseForBlob;\n },\n InitArgs: {\n InputType: \"number\"\n }\n });\n PROPERTIES.push({\n ID: \"Path\",\n Parent: \"upload\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Path\",\n CheckVisibility: (item) => {\n return !item.UseForBlob;\n }\n });\n PROPERTIES.push({\n ID: \"CheckForExisting\",\n Parent: \"upload\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Auf bestehende Datei pruefen\"\n },\n CheckVisibility: (item) => {\n return !item.UseForBlob;\n }\n })\n PROPERTIES.push({\n ID: \"Multiple\",\n Parent: \"upload\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Multiple\"\n }\n })\n let DataTypes = [\n {\n Caption: \"@@Binary\",\n Type: \"bin\"\n },\n {\n Caption: \"@@Url\",\n Type: \"url\"\n }\n ];\n PROPERTIES.push({\n ID: \"DataType\",\n Parent: \"upload\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@DataType\",\n CheckVisibility: (item) => {\n return item.UseForBlob;\n },\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: true,\n ItemsSource: DataTypes,\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'Type'\n }\n })\n });\n\n \n }\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output, ViewChild } from '@angular/core';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { TranslateFormatText } from '../../../helpers/array.helpers';\nimport { GitHelper } from '../../../helpers/git.helper';\nimport { PermissionHelper } from '../../../helpers/permissions.helper';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MediaService } from '../../../services/media.service';\nimport { UsersService } from '../../../services/users.service';\nimport { AboutControl } from '../../common/aboutcontrol/about.control';\nimport { IBaseComponent } from '../base.component';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n@Component({\n selector: 'evi-user-menu',\n templateUrl: 'usermenu.control.html',\n styleUrls: ['usermenu.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class UserMenuControl extends IBaseComponent {\n\n static Type: any = 'usermenu';\n static Default = JSON.parse(JSON.stringify(defaultProperties.usermenu));\n user;\n AllowImpersonate = false;\n URL: string;\n GitActive = false;\n Branches = [];\n SelectedBranch;\n @ViewChild(MatMenuTrigger) trigger: MatMenuTrigger;\n get Icon() {\n if (this.LayoutElement.Icon) {\n return this.LayoutElement.Icon;\n }\n return \"person\";\n }\n constructor(private usersService: UsersService, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n }\n\n @Input()\n get Variant() {\n return this.LayoutElement.Variant;\n }\n set Variant(val) {\n this.LayoutElement.Variant = val;\n this.VariantChange.emit(this.LayoutElement.Variant);\n }\n\n @Output() VariantChange = new EventEmitter();\n\n ControlInitialized() {\n this.GitActive = GitHelper.IsActive;\n if (this.GitActive) {\n this.Branches = GitHelper.LocalBranches;\n this.Subscriptions['BranchesChanged'] = GitHelper.BranchesChanged.subscribe((branches) => {\n this.Branches = GitHelper.LocalBranches;\n this.cdRef.detectChanges();\n });\n this.SelectedBranch = GitHelper.SelectedBranch;\n }\n this.user = localStorage.getItem('user');\n if (this.user) {\n this.user = JSON.parse(this.user);\n this.updateImage();\n }\n this.AllowImpersonate = PermissionHelper.GetImpersonatePermission();\n }\n SelectedBranchChanged() {\n GitHelper.SelectedBranch.next(this.SelectedBranch);\n }\n logout() {\n this.usersService.logout();\n this.trigger.closeMenu();\n }\n\n updateImage() {\n if (this.user && this.user.Image) {\n const url = MediaService.ProfilePicURL.getValue();\n if (url) {\n this.URL = url + this.user.SID + '/' + this.user.Image;\n }\n }\n }\n\n languageSelected() {\n // const text = '@@Bitte denken Sie daran auch die Spracheneinstellung Ihres Browsers anzupassen. Einige Controls (z.B.DatetimePicker) und Formatierungen verhalten sich sonst moeglicherweise nicht wie erwartet.';\n // MessageBoxHelper.ShowDialog(new TranslateFormatText(text), null, MessageBoxButtons.Ok, MessageBoxIcon.Information);\n }\n\n OpenDialog() {\n AboutControl.ShowDialog();\n this.trigger.closeMenu();\n }\n}\n\nexport class UserMenuPanel extends BasePanel{\n static override SIDS = ['1a0bf6b1-80bb-494a-88fe-270a109f3919']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'1a0bf6b1-80bb-494a-88fe-270a109f3919',\n ID: 'Usermenu',\n Caption: '@@Usermenu',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'usermenu';\n }\n });\n let variants = [\n {\n Caption: '@@Icon only',\n Value: 'iconed'\n },\n {\n Caption: '@@Icon with name',\n Value: 'named'\n },\n ]\n PROPERTIES.push({\n ID: \"Variant\",\n Parent: \"Usermenu\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Variant\",\n Column: 1,\n Row: 1,\n InitArgs: {\n Placeholder: \"@@Variant\",\n Multiple: false,\n ItemsSource: variants,\n ValueMemberPath: \"Value\",\n DisplayMemberPath: \"Caption\"\n }\n });\n }\n}\n","import { OnInit, Component, EventEmitter, Input, Output, ChangeDetectionStrategy } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: 'variabledefinition',\r\n templateUrl: './variabledefinition.control.html',\r\n styleUrls: ['./variabledefinition.control.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class VariableDefinitionControl implements OnInit {\r\n\r\n DataTypes = [{ Caption: '@@Text', Value: 'System.String' },\r\n { Caption: '@@Bool', Value: 'System.Boolean' },\r\n { Caption: '@@Ganzzahl', Value: 'System.Int32' },\r\n { Caption: '@@Gleitzahl', Value: 'System.Double' },\r\n { Caption: '@@Datum', Value: 'System.DateTime' }];\r\n\r\n //#region SystemVariables\r\n SystemVariablesValue;\r\n\r\n @Input()\r\n get SystemVariables() {\r\n return this.SystemVariablesValue;\r\n }\r\n set SystemVariables(val) {\r\n this.SystemVariablesValue = val;\r\n this.SystemVariablesChange.emit(this.SystemVariablesValue);\r\n }\r\n\r\n @Output() SystemVariablesChange = new EventEmitter();\r\n //#endregion\r\r\n //#region SelectedItem\r\n SelectedItemValue;\r\n\r\n @Input()\r\n get SelectedItem() {\r\n return this.SelectedItemValue;\r\n }\r\n set SelectedItem(val) {\r\n this.SelectedItemValue = val;\r\n this.SelectedItemChange.emit(this.SelectedItemValue);\r\n }\r\n\r\n @Output() SelectedItemChange = new EventEmitter();\r\n //#endregion\r\r\n constructor(private translate: TranslateService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n OnFormulaChanged(event, variable) {\r\n variable.Value = event;\r\n }\r\n\r\n deleteItem(variable) {\r\n this.SelectedItem.Variables.splice(this.SelectedItem.Variables.indexOf(variable), 1);\r\n }\r\n\r\n addItem() {\r\n if (!this.SelectedItem.Variables) {\r\n this.SelectedItem.Variables = [];\r\n }\r\n this.SelectedItem.Variables.push({\r\n Name: this.translate.instant('@@Neue Variable'),\r\n Value: \"\",\r\n Type: this.DataTypes[0]\r\n });\r\n }\r\n}","import { ComponentPortal } from '@angular/cdk/portal';\nimport { Component, EventEmitter, Input, Output, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, Inject } from '@angular/core';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { FileSelectionThemeControl } from '../../../appbuilder/controls/fileselection/fileselection.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { InjectorHelper } from '../../../helpers/injector.helper';\nimport { MediaSource } from '../../../models/datamodel/mediasource.model';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { MenuTabLabelPosition } from '../../../models/menutab/menutab.property.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MediaService } from '../../../services/media.service';\nimport { IBaseComponent } from '../base.component';\nimport { defaultProperties } from 'src/app/helpers/defaultProperties.helper';\n\n@Component({\n selector: 'evi-video',\n templateUrl: './video.control.html',\n styleUrls: ['./video.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class VideoControl extends IBaseComponent implements OnDestroy {\n static Type: any = 'video';\n static Default = JSON.parse(JSON.stringify(defaultProperties.video));\n\n URL;\n\n options: {\n controls: boolean,\n fluid: boolean,\n aspectRatio: string,\n autoplay: any,\n muted:any,\n sources: {\n src: string,\n type: string,\n }[],\n };\n MediaSources;\n constructor(private mediaService: MediaService, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.URL = false;\n }\n onLayoutElementSet() {\n this.Subscriptions['MediaSources'] = MediaService.MediaSources.subscribe((sources) => {\n if (sources) {\n this.MediaSources = sources;\n this.Refresh();\n }\n });\n if (this.LayoutElementValue.ValuesChanged) {\n this.Subscriptions['ValuesChanged'] = this.LayoutElementValue.ValuesChanged.subscribe(() => {\n this.Refresh();\n })\n }\n }\n Refresh() {\n const source = this.MediaSources.find(x => x.SID === this.LayoutElement.MediaSource);\n if (source) {\n if (source.Private) {\n //this.mediaService.LoadImage(source.SID, this.LayoutElement.FileName).subscribe(() => {\n //});\n } else {\n this.options = null;\n setTimeout(() => {\n this.options = {\n controls: this.Editable || !this.Disabled,\n fluid: true,\n aspectRatio: '16:9',\n autoplay: this.LayoutElement.AutoPlay ? 'play' : false,\n muted:this.LayoutElement.AutoPlay ? true : false,\n sources: [{\n src: MediaSource.GetURL(source, this.LayoutElement.FileName),\n type: 'video/mp4'\n }]\n }\n this.cdRef.detectChanges();\n }, 10);\n } \n }\n }\n ControlInitialized() {\n }\n}\nexport class VideoPanel extends BasePanel {\n static override SIDS = ['35fe326b-eb00-4b87-bb10-a7f84cddb2dd']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'35fe326b-eb00-4b87-bb10-a7f84cddb2dd',\n ID: 'video',\n Caption: '@@Video',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto', 'auto', 'auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'video';\n }\n })\n let mediaService = InjectorHelper.InjectorInstance.get(MediaService);\n mediaService.GetUsable().subscribe((data) => {\n PROPERTIES.push({\n ID: \"MediaSource\",\n Parent: \"video\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@SelectMediaSource\",\n Row: 1,\n CheckVisibility: (item) => {\n return !item.UseForBlob;\n },\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: data,\n DisplayMemberPath: 'Caption',\n ValueMemberPath: 'SID'\n }\n })\n });\n PROPERTIES.push({\n ID: \"FileName\",\n Parent: \"video\",\n Content: new ComponentPortal(FileSelectionThemeControl),\n Row: 2,\n CheckVisibility: (item) => {\n return item.MediaSource;\n }\n })\n\n PROPERTIES.push({\n ID: \"AutoPlay\",\n Parent: \"video\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@AutoPlay\"\n },\n Row: 3,\n CheckVisibility: (item) => {\n return item.MediaSource && item.FileName;\n }\n })\n }\n}","// vjs-player.component.ts\nimport { ChangeDetectionStrategy, Component, ElementRef, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport videojs from 'video.js';\n\n@Component({\n selector: 'app-vjs-player',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class VjsPlayerComponent implements OnInit, OnDestroy {\n @ViewChild('target', { static: true }) target: ElementRef;\n @Input() options: {\n controls: boolean,\n fluid: boolean,\n aspectRatio: string,\n autoplay: any,\n muted:any,\n sources: {\n src: string,\n type: string,\n }[],\n };\n player: videojs.Player;\n\n constructor(\n private elementRef: ElementRef,\n ) { }\n\n ngOnInit() {\n this.player = videojs(this.target.nativeElement, this.options, function onPlayerReady() {\n \n });\n }\n\n ngOnDestroy() {\n if (this.player) {\n this.player.dispose();\n }\n }\n}","import { Directive, Input, OnInit } from '@angular/core';\n\n@Directive()\nexport abstract class ABaseCell implements OnInit {\n //#region Row\n RowValue;\n\n @Input()\n get Row() {\n return this.RowValue;\n }\n set Row(val) {\n if (val !== this.RowValue) {\n this.RowValue = val;\n this.checkCellStyle();\n }\n }\n //#endregion\n //#region Column\n ColumnValue;\n\n @Input()\n get Column() {\n return this.ColumnValue;\n }\n set Column(val) {\n if (val !== this.ColumnValue) {\n this.ColumnValue = val;\n this.checkCellStyle();\n }\n }\n //#endregion\n //#region DataTable\n DataTableValue: any;\n\n @Input()\n get DataTable() {\n return this.DataTableValue;\n }\n set DataTable(val: any) {\n this.DataTableValue = val;\n if (this.DataTable && this.DataTable.DataSource && this.DataTable.DataSource.ValuesChanged) {\n this.DataTable.DataSource.ValuesChanged.subscribe((res) => {\n this.checkCellStyle();\n })\n }\n }\n //#endregion\n ActCellStyle = {};\n ShowToolTip = false;\n Initialized = false;\n\n ngOnInit(): void {\n this.Initialized = true;\n this.checkCellStyle();\n }\n\n //#region ToolTip\n enter(event: MouseEvent) {\n if (event.target['offsetWidth'] < event.target['scrollWidth']) {\n this.ShowToolTip = true;\n } else {\n this.ShowToolTip = false;\n }\n if (this.DataTableValue.IsPlanningTable) {\n this.DataTableValue.SelectionHelper.SetCurrentCell({\n RowIndex: this.RowValue.index,\n ColumnName: this.Column.Name\n });\n this.DataTableValue.SelectionHelper.SetDescriptionHover();\n if (this.DataTableValue.SelectionHelper.Copying) {\n this.DataTableValue.SelectionHelper.SetHighlighting();\n }\n\n }\n }\n //#endregion\n\n checkCellStyle() {\n if (this.Initialized) {\n let actStyle = {};\n if (this.RowValue) {\n if (this.RowValue.rowStyle) {\n actStyle = Object.assign(actStyle, this.RowValue.rowStyle);\n }\n if (this.RowValue.styles && this.ColumnValue && this.DataTableValue.CellStylesValue) {\n const rowStyle = this.RowValue.styles[this.ColumnValue.Name];\n if (rowStyle) {\n const rowStyleVal = this.DataTableValue.CellStylesValue[rowStyle];\n if (rowStyleVal) {\n actStyle = Object.assign(actStyle, rowStyleVal);\n }\n }\n }\n }\n this.ActCellStyle = actStyle;\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport moment from 'moment';\nimport { DataTableTranslateHelper } from '../../helpers/translate.helper';\nimport { CellContentType } from '../../models/basic/cell.content.model';\n\n@Component({\n selector: 'evi-cell-content',\n template: '{{DataValue}}',\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class CellContent {\n DataValue = '';\n CellContentType: CellContentType = CellContentType.Text;\n\n //#region Row\n RowValue;\n\n @Input()\n get Row() {\n return this.RowValue;\n }\n set Row(val) {\n this.RowValue = val;\n this.SetData();\n }\n //#endregion\n\n //#region Column\n ColumnValue;\n\n @Input()\n get Column() {\n return this.ColumnValue;\n }\n set Column(val) {\n this.ColumnValue = val;\n this.SetData();\n }\n //#endregion\n //#region DataTable\n DataTableValue;\n\n @Input()\n get DataTable() {\n return this.DataTableValue;\n }\n set DataTable(val) {\n this.DataTableValue = val;\n if (this.DataTable && this.DataTable.DataSourceValuesChanged) {\n this.DataTable.DataSourceValuesChanged.subscribe((res) => {\n this.SetData();\n })\n }\n }\n //#endregion\n static GetCellValue(data, column): string {\n let result = '';\n if (column) {\n if (column.Prefix) {\n result += column.Prefix;\n }\n if (data !== null && typeof (data) !== 'undefined') {\n if (column.Type === 'System.DateTime' && column.DateFormat) {\n result += moment(data).format(column.DateFormat);\n } else if (column.Type === 'System.Double' && column.NumericPrecision != null) {\n result += parseFloat(data).toFixed(column.NumericPrecision);\n } else if (column.IsEnum && column.EnumSource) {\n const kv = column.EnumSource.find(x => x.Value === data);\n if (kv) {\n if (DataTableTranslateHelper.TranslatorInstance) {\n result += DataTableTranslateHelper.TranslatorInstance.instant(kv.Caption);\n } else {\n result += kv.Caption;\n }\n }\n } else {\n result += data;\n }\n }\n if (column.Suffix) {\n result += column.Suffix;\n }\n }\n return result;\n }\n\n SetData() {\n if (this.ColumnValue && this.RowValue) {\n const data = this.RowValue.data[this.ColumnValue.Name];\n if (data != null && typeof data === 'object' && typeof data.CellContentType === 'number') {\n switch (data.CellContentType) {\n case CellContentType.Icon:\n this.CellContentType = CellContentType.Icon;\n this.DataValue = data.Value;\n break;\n default:\n this.CellContentType = CellContentType.Text;\n this.DataValue = CellContent.GetCellValue(data.Value, this.ColumnValue);\n break;\n }\n } else {\n this.CellContentType = CellContentType.Text;\n this.DataValue = CellContent.GetCellValue(data, this.ColumnValue);\n }\n } else {\n this.CellContentType = CellContentType.Text;\n this.DataValue = '';\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Row } from '../../models/basic/row.model';\n\n@Component({\n selector: 'evi-content-column-container',\n templateUrl: './content.column.container.html',\n styleUrls: ['./content.column.container.css'],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class ContentColumnContainer implements OnInit {\n //#region Row\n RowValue: Row;\n\n @Input()\n get Row(): Row {\n return this.RowValue;\n }\n set Row(val: Row) {\n this.RowValue = val;\n this.checkPadding();\n }\n //#endregion\n //#region Columns\n ColumnsValue;\n\n @Input()\n get Columns() {\n return this.ColumnsValue;\n }\n set Columns(val) {\n this.ColumnsValue = val;\n }\n //#endregion\n //#region ToolTip\n ShowToolTip;\n enter(event: MouseEvent) {\n if (event.target['offsetWidth'] < event.target['scrollWidth']) {\n this.ShowToolTip = true;\n } else {\n this.ShowToolTip = false;\n }\n }\n //#endregion\n //#region FirstContainer\n FirstContainerValue = false;\n\n @Input()\n get FirstContainer() {\n return this.FirstContainerValue;\n }\n set FirstContainer(val) {\n this.FirstContainerValue = val;\n this.checkPadding();\n }\n //#endregion\n //#region DataTable\n DataTableValue: any;\n\n @Input()\n get DataTable() {\n return this.DataTableValue;\n }\n set DataTable(val: any) {\n this.DataTableValue = val;\n }\n //#endregion\n @Output() KeyPress = new EventEmitter();\n @Output() CellClicked = new EventEmitter();\n\n PaddingStyle = {}\n Initialized = false;\n\n ngOnInit(): void {\n this.Initialized = true;\n this.checkPadding();\n }\n\n checkPadding() {\n if (this.Initialized) {\n const padStyle = {};\n if (this.FirstContainerValue && this.RowValue) {\n const depth = this.RowValue['Depth'];\n if (typeof depth === 'number' && depth > 0) {\n if (this.DataTableValue && this.DataTableValue.RTL) {\n padStyle['0'] = {\n 'padding-right': depth * 25 + 'px'\n };\n } else {\n padStyle['0'] = {\n 'padding-left': depth * 25 + 'px'\n };\n }\n }\n }\n this.PaddingStyle = padStyle;\n }\n }\n\n KeyPressInternal(event) {\n this.KeyPress.emit(event);\n }\n\n OnCellClick(row, col, event) {\n this.OnContentClick({ Row: row, Column: col, Event: event });\n }\n\n OnContentClick(event) {\n this.CellClicked.emit(event);\n }\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\nimport { ABaseCell } from './a.base.cell';\n\n@Component({\n selector: 'evi-datatable-cell',\n templateUrl: './datatable.cell.html',\n styleUrls: ['./datatable.cell.css'],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class DataTableCell extends ABaseCell {\n}\n","import { CdkScrollable, ScrollDispatcher } from '@angular/cdk/scrolling';\nimport {\n AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef,\n EventEmitter, Input, IterableDiffers, OnDestroy, Output, ViewChild, ViewChildren\n} from '@angular/core';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { PageEvent } from '@angular/material/paginator';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { UUID } from 'angular2-uuid';\nimport { Subject } from 'rxjs';\nimport { IntersectHelper } from '../../helpers/intersect.helper';\nimport { SelectionHelper } from '../../helpers/selection.helper';\nimport { CustomBaseStyle } from '../../models/basic/custombasestyle.model';\nimport { Row } from '../../models/basic/row.model';\nimport { CellSelection, OSSelectionRange, RowSelection } from '../../models/basic/selection.model';\nimport { Order } from '../../models/enums/order.enum';\nimport { PagingType } from '../../models/enums/pagingtype.enum';\nimport { ResponsiveType } from '../../models/enums/responsivetype.enum';\nimport { SelectMode } from '../../models/enums/selectmode.enum';\nimport { TableStyle } from '../../models/enums/tablestyle.enum';\nimport { UnitType } from '../../models/enums/unittype.enum';\nimport { RequestFilter } from '../../models/rest/requestfilter';\nimport { RequestOptions } from '../../models/rest/requestoptions';\nimport { RequestSort } from '../../models/rest/requestsort';\n\n@Component({\n selector: 'evi-lib-datatable',\n templateUrl: 'datatable.component.html',\n styleUrls: ['datatable.component.css'],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class DataTableComponent implements AfterViewInit, OnDestroy {\n //#region Properties\n ID = UUID.UUID();\n Subscriptions = {};\n //#region UI\n ShowFooter;\n Loading;\n initialized = false;\n ShowToolTip;\n //#endregion\n BaseSize;\n //#region Data\n EditRows;\n PagedData;\n //#region DataSource\n DataSourceValue;\n\n @Input()\n get DataSource() {\n return this.DataSourceValue;\n }\n set DataSource(val) {\n this.DataSourceValue = val;\n const initSub = this.Subscriptions[\"initDS\"];\n if (initSub) {\n initSub.unsubscribe();\n delete this.Subscriptions[\"initDS\"];\n }\n const loadingSub = this.Subscriptions[\"loadingDS\"];\n if (loadingSub) {\n loadingSub.unsubscribe();\n delete this.Subscriptions[\"loadingDS\"];\n }\n if (val) {\n this.Subscriptions[\"initDS\"] = this.DataSource.Initialized.subscribe((res) => {\n this.initialized = res;\n this.SelectedRows = [];\n this.InitPagedDS();\n });\n this.Subscriptions[\"loadingDS\"] = this.DataSource.Loading.subscribe((res) => {\n if (res != this.Loading) {\n this.Loading = res;\n this.cdRef.detectChanges();\n }\n });\n }\n this.DataSourceChange.emit(this.DataSourceValue);\n }\n\n @Output() DataSourceChange = new EventEmitter();\n //#endregion\n //#region Rows\n RowsValue;\n RowsRawValue;\n iterableDiffer;\n @Input()\n get Rows() {\n return this.RowsValue;\n }\n set Rows(val) {\n this.RowsRawValue = val;\n this.SelectedRows = [];\n if (val && val.length > 0) {\n const pd = [];\n let count = 0;\n if (this.FixedRowsValue) {\n count = this.FixedRowsValue.length;\n }\n val.forEach((row) => {\n const toPush = new Row();\n toPush.index = count++;\n toPush.data = row;\n if (this.TableStyle === TableStyle.SpreadSheet) {\n if (this.Columns) {\n let cols = {};\n let TabIndex = 0;\n this.Columns.forEach((column) => {\n cols[column.Name] = {\n selected: false,\n edit: false,\n tabindex: TabIndex\n };\n TabIndex += 1;\n });\n toPush.cols = cols;\n }\n }\n pd.push(toPush);\n });\n this.RowsValue = pd;\n } else {\n this.RowsValue = val;\n }\n if (val) {\n this.initialized = true;\n }\n this.RowsChange.emit(this.RowsValue);\n }\n\n @Input()\n get PlanningRows() {\n return this.RowsValue;\n }\n set PlanningRows(val) {\n this.RowsRawValue = val;\n this.RowsValue = val;\n if (val) {\n this.initialized = true;\n }\n this.RowsChange.emit(this.RowsValue);\n }\n\n @Output() RowsChange = new EventEmitter();\n //#endregion\n //#region\n FixedRowsValue: Row[];\n @Input()\n get FixedRows(): Row[] {\n return this.FixedRowsValue;\n }\n set FixedRows(val) {\n if (Array.isArray(val)) {\n this.FixedRowsValue = val;\n } else {\n this.FixedRowsValue = null;\n }\n this.FixedRowsChange.emit(val);\n }\n @Output() FixedRowsChange = new EventEmitter();\n //#endregion\n //#endregion\n //#region Filter\n Filter: RequestOptions = new RequestOptions();\n ShowAdvancedFilter;\n\n @ViewChildren(MatMenuTrigger) triggers: MatMenuTrigger[];\n FilterTriggers;\n //#endregion\n //#region Selection\n //#region RowSelection\n SelectedRows: Row[] = [];\n OSSelectionRanges: OSSelectionRange[] = [];\n @Output() RowSelectionChanged = new EventEmitter();\n //#endregion\n //#region CellSelection\n innerSelections: { Row: Row, ColumnNames: string[] }[] = [];\n @Output() CellSelectionChanged = new EventEmitter();\n //#endregion\n //#region CopySelection\n @Output() CopySelectionChanged = new EventEmitter();\n //#endregion\n //#endregion\n //#region Scrolling\n get HeaderHeight() {\n if (this.header) {\n return '-' + (this.header.nativeElement.scrollHeight) + 'px';\n } else {\n return 0;\n }\n }\n @ViewChild('header') set _header(content: ElementRef) {\n this.header = content;\n }\n private header: ElementRef;\n\n @ViewChild('fixedRows') set _fixedRows(content: ElementRef) {\n this.fixedRows = content;\n }\n private fixedRows: ElementRef;\n\n @ViewChild('Content') set _Content(content: CdkScrollable) {\n this.Content = content;\n }\n private Content: CdkScrollable;\n //#endregion\n //#region Resize\n ContainerWidth = 0;\n private container: ElementRef;\n @ViewChild('container') set _container(content: ElementRef) {\n this.container = content;\n }\n //#endregion\n //#region Editable\n EditableValue;\n\n @Input()\n get Editable() {\n return this.EditableValue;\n }\n set Editable(val) {\n this.EditableValue = val;\n this.EditableChange.emit(this.EditableValue);\n }\n\n @Output() EditableChange = new EventEmitter();\n //#endregion\n //#region CustomBaseStyle\n CustomBaseStyleValue: CustomBaseStyle;\n HeaderRowStyle = {};\n HeaderCellStyle = {};\n ContentRowStyle = {};\n ContentCellStyle = {};\n StickyCellStyle = {};\n @Input()\n get CustomBaseStyle() {\n return this.CustomBaseStyleValue;\n }\n set CustomBaseStyle(val) {\n this.CustomBaseStyleValue = val;\n if (this.CustomBaseStyle) {\n if (this.TableStyle == TableStyle.SpreadSheet) {\n if (this.CustomBaseStyle.HeaderBackground) {\n this.HeaderCellStyle['background'] = this.CustomBaseStyle.HeaderBackground;\n }\n if (this.CustomBaseStyle.Line) {\n this.HeaderCellStyle['border'] = \"1px solid \" + this.CustomBaseStyle.Line;\n this.HeaderCellStyle['border-bottom'] = \"1px solid \" + this.CustomBaseStyle.Line;\n this.ContentCellStyle['border'] = \"1px solid \" + this.CustomBaseStyle.Line;\n this.StickyCellStyle['border'] = \"1px solid \" + this.CustomBaseStyle.Line;\n }\n if (this.CustomBaseStyle.HeaderForeground) {\n this.HeaderCellStyle['color'] = this.CustomBaseStyle.HeaderForeground;\n }\n }\n if (this.TableStyle == TableStyle.DataTable) {\n if (this.CustomBaseStyle.HeaderBackground) {\n this.HeaderRowStyle['background'] = this.CustomBaseStyle.HeaderBackground;\n }\n if (this.CustomBaseStyle.Line) {\n this.HeaderRowStyle['border-bottom'] = \"1px solid \" + this.CustomBaseStyle.Line;\n this.StickyCellStyle['border-bottom'] = \"1px solid \" + this.CustomBaseStyle.Line;\n this.ContentRowStyle['border-bottom'] = \"1px solid \" + this.CustomBaseStyle.Line;\n }\n if (this.CustomBaseStyle.HeaderForeground) {\n this.HeaderRowStyle['color'] = this.CustomBaseStyle.HeaderForeground;\n }\n }\n if (this.CustomBaseStyle.StickyBackground) {\n this.StickyCellStyle['background'] = this.CustomBaseStyle.StickyBackground;\n }\n }\n this.CustomBaseStyleChange.emit(this.CustomBaseStyleValue);\n }\n\n @Output() CustomBaseStyleChange = new EventEmitter();\n //#endregion\n //#region ShowHeader\n ShowHeaderValue = true;\n\n @Input()\n get ShowHeader() {\n return this.ShowHeaderValue;\n }\n set ShowHeader(val) {\n this.ShowHeaderValue = val;\n this.ShowHeaderChange.emit(this.ShowHeaderValue);\n }\n\n @Output() ShowHeaderChange = new EventEmitter();\n //#endregion\n //#region Resizable\n ResizableValue = false;\n\n @Input()\n get Resizable() {\n return this.ResizableValue;\n }\n set Resizable(val) {\n this.ResizableValue = val;\n this.ResizableChange.emit(this.ResizableValue);\n }\n\n @Output() ResizableChange = new EventEmitter();\n //#endregion\n //#region SelectAll\n SelectAllValue = false;\n\n @Input()\n get SelectAll() {\n return this.SelectAllValue;\n }\n set SelectAll(val) {\n this.SelectAllValue = val;\n this.SelectAllChange.emit(this.SelectAllValue);\n }\n\n @Output() SelectAllChange = new EventEmitter();\n //#endregion\n //#region LineHeight\n LineHeightValue = 30;\n LineHeightSet = false;\n @Input()\n get LineHeight() {\n return this.LineHeightValue;\n }\n set LineHeight(val) {\n if (val) {\n this.LineHeightValue = val;\n this.LineHeightSet = true;\n this.LineHeightChange.emit(this.LineHeightValue);\n }\n }\n\n @Output() LineHeightChange = new EventEmitter();\n //#endregion\n //#region MobileBreakpoint\n MobileBreakpointValue;\n @Input()\n get MobileBreakpoint() {\n return this.MobileBreakpointValue;\n }\n set MobileBreakpoint(val) {\n this.MobileBreakpointValue = val;\n this.MobileBreakpointChange.emit(this.MobileBreakpointValue);\n }\n @Output() MobileBreakpointChange = new EventEmitter();\n //#endregion\n //#region TableStyle\n public Styles = {\n TableHeader: \"TableHeader\",\n TableHeaderRow: \"TableHeaderRow\",\n TableHeaderCell: \"TableHeaderCell\",\n TableHeaderCellContent: \"TableHeaderCellContent\",\n TableBody: \"TableBody\",\n TableContent: \"TableContent\",\n TableRow: \"TableRow\",\n TableCell: \"TableCell\",\n TableCellContent: \"TableCellContent\"\n }\n\n TableStyleValue: TableStyle = TableStyle.DataTable;\n @Input()\n get TableStyle() {\n return this.TableStyleValue;\n }\n set TableStyle(val) {\n if (val != null) {\n this.TableStyleValue = val;\n if (val == TableStyle.DataTable) {\n this.Styles.TableHeader = \"TableHeader\";\n this.Styles.TableHeaderRow = \"TableHeaderRow\";\n this.Styles.TableHeaderCell = \"TableHeaderCell\";\n this.Styles.TableHeaderCellContent = \"TableHeaderCellContent\";\n\n this.Styles.TableBody = \"TableBody\";\n this.Styles.TableContent = \"TableContent\";\n\n this.Styles.TableRow = \"TableRow\";\n\n this.Styles.TableCell = \"TableCell\";\n this.Styles.TableCellContent = \"TableCellContent\";\n if (!this.LineHeightSet) {\n this.LineHeightValue = 50;\n }\n } else {\n this.Styles.TableHeader = \"SpreadSheetHeader\";\n this.Styles.TableHeaderRow = \"SpreadSheetHeaderRow\";\n this.Styles.TableHeaderCell = \"SpreadSheetHeaderCell\";\n this.Styles.TableHeaderCellContent = \"SpreadSheetHeaderCellContent\";\n\n this.Styles.TableBody = \"TableBody\";\n this.Styles.TableContent = \"TableContent\";\n\n this.Styles.TableRow = \"SpreadSheetRow\";\n\n this.Styles.TableCell = \"SpreadSheetCell\";\n this.Styles.TableCellContent = \"SpreadSheetCellContent\";\n if (!this.LineHeightSet) {\n this.LineHeightValue = 20;\n }\n }\n this.TableStyleChange.emit(this.TableStyleValue);\n }\n }\n\n @Output() TableStyleChange = new EventEmitter();\n //#endregion\n //#region IsPlanningTable\n IsPlanningTableValue = false;\n @Input()\n get IsPlanningTable() {\n return this.IsPlanningTableValue;\n }\n set IsPlanningTable(val) {\n this.IsPlanningTableValue = val;\n this.IsPlanningTableChange.emit(this.IsPlanningTableValue);\n }\n\n @Output() IsPlanningTableChange = new EventEmitter();\n //#endregion\n //#region CellStyles\n CellStylesValue = {};\n\n @Input()\n get CellStyles() {\n return this.CellStylesValue;\n }\n set CellStyles(val) {\n if (val != this.CellStylesValue) {\n this.CellStylesValue = val;\n this.CheckCellStyles();\n this.CellStylesChange.emit(this.CellStylesValue);\n }\n }\n\n @Output() CellStylesChange = new EventEmitter();\n //#endregion\n\n //#region PagingType\n PagingTypeValue: PagingType = PagingType.Scroll;\n\n @Input()\n get PagingType() {\n return this.PagingTypeValue;\n }\n set PagingType(val) {\n if (val != null) {\n this.PagingTypeValue = val;\n this.InitPagedDS();\n this.PagingTypeChange.emit(this.PagingTypeValue);\n }\n }\n\n @Output() PagingTypeChange = new EventEmitter();\n //#endregion\n //#region ResponsiveType\n ResponsiveTypeValue: ResponsiveType = ResponsiveType.Scroll;\n\n @Input()\n get ResponsiveType() {\n return this.ResponsiveTypeValue;\n }\n set ResponsiveType(val) {\n if (val != null) {\n this.ResponsiveTypeValue = val;\n this.ResponsiveTypeChange.emit(this.ResponsiveTypeValue);\n }\n }\n\n @Output() ResponsiveTypeChange = new EventEmitter();\n //#endregion\n //#region SelectMode\n SelectModeValue: SelectMode = SelectMode.os;\n @Input()\n get SelectMode() {\n return this.SelectModeValue;\n }\n set SelectMode(val) {\n this.SelectModeValue = val;\n this.SelectModeChange.emit(this.SelectModeValue);\n }\n\n @Output() SelectModeChange = new EventEmitter();\n //#endregion\n //#region RowsExpandable\n RowsExpandableValue;\n @Input()\n get RowsExpandable() {\n return this.RowsExpandableValue;\n }\n set RowsExpandable(val) {\n this.RowsExpandableValue = val;\n this.RowsExpandableChange.emit(this.RowsExpandableValue);\n }\n\n @Output() RowsExpandableChange = new EventEmitter();\n //#endregion\n //#region ColumnsExpandable\n ColumnsExpandableValue;\n @Input()\n get ColumnsExpandable() {\n return this.ColumnsExpandableValue;\n }\n set ColumnsExpandable(val) {\n this.ColumnsExpandableValue = val;\n this.ColumnsExpandableChange.emit(this.ColumnsExpandableValue);\n }\n\n @Output() ColumnsExpandableChange = new EventEmitter();\n //#endregion\n //#region Columns\n ColumnsValue;\n ResponsiveColumns;\n RequestColumns;\n DefaultSort;\n HeaderLoading = false;\n @Input()\n get Columns() {\n return this.ColumnsValue;\n }\n set Columns(val) {\n this.ColumnsValue = val;\n if (val) {\n this.CreateColumns();\n this.CheckCellStyles();\n this.SelectionHelper.Columns = this.ColumnsValue;\n if (this.container) {\n this.RecalculateColumns();\n }\n this.HeaderLoading = true;\n setTimeout(() => {\n this.HeaderLoading = false;\n }, 10);\n }\n this.ColumnsChange.emit(this.ColumnsValue);\n }\n @Output() ColumnsChange = new EventEmitter();\n\n FixedColumnsLeftValue;\n @Input()\n get FixedColumnsLeft() {\n return this.FixedColumnsLeftValue;\n }\n set FixedColumnsLeft(val) {\n this.FixedColumnsLeftValue = val;\n this.FixedColumnsLeftChange.emit(this.FixedColumnsLeftValue);\n this.CreateColumns();\n }\n @Output() FixedColumnsLeftChange = new EventEmitter();\n\n FixedColumnsRightValue;\n @Input()\n get FixedColumnsRight() {\n return this.FixedColumnsRightValue;\n }\n set FixedColumnsRight(val) {\n this.FixedColumnsRightValue = val;\n this.FixedColumnsRightChange.emit(this.FixedColumnsRightValue);\n this.CreateColumns();\n }\n @Output() FixedColumnsRightChange = new EventEmitter();\n //#endregion\n\n RTLValue = false;\n @Input()\n get RTL() {\n return this.RTLValue;\n }\n set RTL(val) {\n this.RTLValue = val;\n this.RTLChange.emit(val);\n }\n @Output() RTLChange = new EventEmitter();\n\n IgnoreIntersectValue = false;\n @Input()\n get IgnoreIntersect() {\n return this.IgnoreIntersectValue;\n }\n set IgnoreIntersect(val) {\n this.IgnoreIntersectValue = val;\n this.IgnoreIntersectChange.emit(val);\n }\n @Output() IgnoreIntersectChange = new EventEmitter();\n\n IgnoreHoverValue = false;\n @Input()\n get IgnoreHover() {\n return this.IgnoreHoverValue;\n }\n set IgnoreHover(val) {\n this.IgnoreHoverValue = val;\n this.IgnoreHoverChange.emit(val);\n }\n @Output() IgnoreHoverChange = new EventEmitter();\n\n //#region Events\n @Output() ValueChanged = new EventEmitter();\n @Output() ColumnResized = new EventEmitter();\n @Output() TableInitialized = new EventEmitter();\n @Output() OnKeyPressed = new EventEmitter();\n @Output() RowDoubleClicked = new EventEmitter();\n DataSourceValuesChanged = new Subject();\n //#endregion\n //#endregion\n //#region LifeCycle\n\n IntersectHelper: IntersectHelper;\n SelectionHelper: SelectionHelper;\n ParentInfo;\n\n TableStyleObject = {\n 'width': '0px',\n 'overflow': 'hidden'\n };\n\n Instance: DataTableComponent;\n\n constructor(private cdRef: ChangeDetectorRef, private scrollDispatcher: ScrollDispatcher,\n iterableDiffers: IterableDiffers, private sanitizer: DomSanitizer) {\n this.Instance = this;\n this.iterableDiffer = iterableDiffers.find([]).create(null);\n this.IntersectHelper = new IntersectHelper();\n this.Subscriptions[\"intersect\"] = this.IntersectHelper.OnChange.subscribe(() => {\n this.cdRef.detectChanges();\n });\n this.SelectionHelper = new SelectionHelper();\n this.SelectionHelper.Table = this;\n }\n\n private CreateColumns() {\n this.IntersectHelper.Columns = {};\n this.ParentInfo = {};\n this.CreateColumnsInternal(this.Columns, null);\n }\n\n CreateColumnsInternal(cols, parent) {\n cols.forEach((col) => {\n col.DisplayCaption = this.sanitizer.bypassSecurityTrustHtml(col.Caption.replace(/\\\\n/g, '
'));\n col.Caption = col.Caption.replace(/\\\\n/g, '
');\n this.IntersectHelper.Columns[col.Name] = col;\n this.ParentInfo[col.Name] = parent;\n if (col.Children) {\n this.CreateColumnsInternal(col.Children, col);\n }\n if (col.FixedChildren) {\n this.CreateColumnsInternal(col.FixedChildren, col);\n }\n }); \n }\n\n ngAfterViewInit(): void {\n this.ContainerWidth = this.container.nativeElement.offsetWidth;\n this.TableStyleObject.width = this.ContainerWidth + 'px';\n this.InitializeScroll();\n this.cdRef.detectChanges();\n this.FilterTriggers = {};\n if (this.triggers && this.triggers.length > 0) {\n this.triggers.forEach((trigger) => {\n this.FilterTriggers[trigger['_element']['nativeElement'].id] = trigger;\n })\n }\n this.TableInitialized.emit(this);\n }\n\n ngOnDestroy() {\n Object.keys(this.Subscriptions).forEach(k => {\n const sub = this.Subscriptions[k];\n if (sub) {\n sub.unsubscribe();\n }\n });\n }\n //#endregion\n //#region SizeChanges\n onResized(event) {\n var retVal = {};\n retVal['min-width'] = event.newWidth + 'px';\n retVal['max-width'] = event.newWidth + 'px';\n retVal['width'] = event.newWidth + 'px';\n retVal['min-height'] = event.newHeight + 'px';\n retVal['max-height'] = event.newHeight + 'px';\n retVal['height'] = event.newHeight + 'px';\n this.BaseSize = retVal;\n this.RecalculateColumns();\n }\n\n RecalculateColumns() {\n DataTableComponent.resetCalcWidth(this.Columns);\n this.ContainerWidth = this.container.nativeElement.offsetWidth;\n this.TableStyleObject.width = this.ContainerWidth + 'px';\n this.ResultStyle = {};\n this.UpdateColumnWidths();\n }\n\n UpdateColumnWidths() {\n this.Columns.forEach((column) => {\n this.GetColumnWidth(column);\n });\n }\n\n //#endregion\n //#region Scrolling\n InitializeScroll() {\n this.scrollDispatcher.scrolled().subscribe((event: CdkScrollable) => {\n const nElem = event.getElementRef().nativeElement;\n if (nElem.id === this.ID + \"-Header\") {\n this.Content.getElementRef().nativeElement.scrollLeft = nElem.scrollLeft;\n if (this.fixedRows) {\n this.fixedRows.nativeElement.scrollLeft = nElem.scrollLeft;\n }\n } else if (nElem.id === this.ID + \"-Content\") {\n this.header.nativeElement.scrollLeft = nElem.scrollLeft;\n if (this.fixedRows) {\n this.fixedRows.nativeElement.scrollLeft = nElem.scrollLeft;\n }\n } else if (nElem.id === this.ID + \"-FixedRows\") {\n this.Content.getElementRef().nativeElement.scrollLeft = nElem.scrollLeft;\n this.header.nativeElement.scrollLeft = nElem.scrollLeft;\n }\n });\n }\n //#endregion\n //#region Table&Data\n InitPagedDS() {\n const pdSub = this.Subscriptions[\"pagedData\"];\n if (pdSub) {\n pdSub.unsubscribe();\n delete this.Subscriptions[\"pagedData\"];\n }\n if (this.initialized) {\n if (this.PagingType == PagingType.Pager) {\n if (this.DataSource && this.DataSource.PagedData) {\n this.Subscriptions[\"pagedData\"] = this.DataSource.PagedData.subscribe((data) => {\n this.PagedData = data;\n });\n }\n }\n }\n }\n //#endregion\n //#region Style\n ResultStyle = {};\n GetColumnWidth(column) {\n if (column.CalculatedWidth) {\n } else {\n if (column.Width) {\n if (column.Width.Type === UnitType.Pixel) {\n column.CalculatedWidth = column.Width.Value;\n } else if (column.Width.Type === UnitType.Percent) {\n if ((column.Children && column.Children.length > 0) || (column.FixedChildren && column.FixedChildren.length > 0)) {\n // wenn Children vorhanden, Prozent-Verteilung ignorieren\n } else {\n let contwidth = this.ContainerWidth;// - (this.TableStyle === 0 ? 50 : 0);\n if (this.SelectMode === SelectMode.multi) {\n contwidth -= 50;\n }\n const res = contwidth * (column.Width.Value / 100);\n column.CalculatedWidth = res;\n }\n }\n }\n }\n const result = Object.assign({}, this.ContentCellStyle);\n this.ResultStyle[column.Name] = result;\n this.CheckExpanded(column);\n if (column.IsSticky) {\n let left = 0;\n if (this.RowsExpandable) {\n left += 25;\n }\n for (let i = 0; i < this.Columns.length; i++) {\n const col = this.Columns[i];\n if (col === column) {\n break;\n }\n if (col.IsSticky) {\n if (col.expanded && col.ExpandedWidth) {\n left += col.ExpandedWidth;\n } else if (col.CalculatedWidth) {\n left += col.CalculatedWidth;\n } else if (typeof col.Width === 'number') {\n left += col.Width;\n } else {\n left += parseInt(column.Width.substring(0, column.Width.length - 2), 10);\n }\n }\n }\n result['left'] = left + 'px';\n }\n }\n\n private CheckExpanded(column) {\n let width = 0;\n //if (column.IsFilterable) {\n // width += 30;\n //}\n //if (column.IsSortable) {\n // width += 30;\n //}\n //if (column.Expandable && this.ColumnsExpandable) {\n // width += 30;\n //}\n if (column.expanded) {\n column.Children.forEach((col) => {\n if (!col.CalculatedWidth) {\n if (col.Width && col.Width.Type === UnitType.Pixel) {\n col.CalculatedWidth = col.Width.Value;\n } else {\n col.CalculatedWidth = column.CalculatedWidth;\n }\n }\n width += this.CheckExpanded(col);\n });\n column.ExpandedWidth = width;\n } else if (column.FixedChildren && column.FixedChildren.length > 0) {\n column.FixedChildren.forEach((col) => {\n if (!col.CalculatedWidth) {\n if (col.Width && col.Width.Type === UnitType.Pixel) {\n col.CalculatedWidth = col.Width.Value;\n } else {\n col.CalculatedWidth = column.CalculatedWidth;\n }\n }\n width += this.CheckExpanded(col);\n });\n column.CalculatedWidth = width;\n } else {\n width += column.CalculatedWidth;\n }\n let style = this.ResultStyle[column.Name];\n if (!style) {\n style = {};\n this.ResultStyle[column.Name] = style;\n }\n style['flex'] = '0 0 ' + width + 'px';\n style['width'] = width + 'px';\n style['overflow'] = 'hidden';\n return width;\n }\n\n ColumnHeaderStyles = {};\n ColumnHeaderAlignment = {};\n CheckCellStyles() {\n this.ColumnHeaderStyles = {};\n this.ColumnHeaderAlignment = {};\n if (this.CellStylesValue && this.ColumnsValue) {\n this.CheckCellStylesRecursive(this.ColumnsValue);\n }\n }\n\n private CheckCellStylesRecursive(columns) {\n columns.forEach(col => {\n if (typeof col.StyleID === 'number') {\n const styleObj = this.CellStylesValue['' + col.StyleID];\n if (styleObj) {\n this.ColumnHeaderStyles[col.Name] = Object.assign({}, styleObj);\n const textAlign = styleObj['text-align'];\n if (typeof textAlign === 'string') {\n let alignment = this.ColumnHeaderAlignment[col.Name];\n if (!alignment) {\n alignment = {};\n this.ColumnHeaderAlignment[col.Name] = alignment;\n }\n alignment['text-align'] = textAlign;\n switch (textAlign) {\n case 'start':\n alignment['justify-content'] = 'flex-start';\n break;\n case 'center':\n alignment['justify-content'] = 'center';\n break;\n case 'end':\n alignment['justify-content'] = 'flex-end';\n break;\n }\n }\n }\n }\n if (col.Children) {\n this.CheckCellStylesRecursive(col.Children);\n }\n if (col.FixedChildren) {\n this.CheckCellStylesRecursive(col.FixedChildren);\n }\n });\n }\n\n static resetCalcWidth(cols) {\n if (cols) {\n cols.forEach(c => {\n if (!c.WasResized) {\n c.CalculatedWidth = null;\n DataTableComponent.resetCalcWidth(c.Children);\n DataTableComponent.resetCalcWidth(c.FixedChildren);\n }\n });\n }\n }\n //#endregion\n //#region ToolTip\n enter(event: MouseEvent) {\n //if (event.target['offsetWidth'] < event.target['scrollWidth']) {\n // this.ShowToolTip = true;\n //} else {\n // this.ShowToolTip = false;\n //}\n }\n //#endregion\n //#region Actions\n clicked() {\n //this.triggerEvent('OnFocus', this.DataSource);\n }\n \n RowClick(value) {\n const row = value.Row;\n const col = value.Column;\n const event: MouseEvent = value.Event;\n if (this.TableStyleValue === TableStyle.DataTable) {\n if (this.SelectMode === SelectMode.single) {\n if (this.SelectedRows.length > 0) {\n const first = this.SelectedRows[0];\n if (first === row) {\n return;\n }\n first.selected = false;\n }\n row.selected = true;\n this.SelectedRows = [row];\n this.RowSelectionChanged.emit([{\n RowIndex: row.index,\n RowData: row.data\n }]);\n } else if (this.SelectMode === SelectMode.os) {\n this.SelectedRows.forEach(x => { x.selected = false; });\n if (this.OSSelectionRanges.length > 0 && (event.ctrlKey || event.shiftKey)) {\n if (event.ctrlKey) {\n if (!this.OSSelectionRanges.some((x, i) => {\n if (x.ContainsOnY(row.index)) {\n this.OSSelectionRanges.splice(i, 1);\n if (x.YStart !== x.YEnd) {\n if (row.index < x.YEnd) {\n this.OSSelectionRanges.push(new OSSelectionRange({\n YStart: row.index + 1,\n YEnd: x.YEnd\n }));\n }\n if (x.YStart < row.index) {\n this.OSSelectionRanges.push(new OSSelectionRange({\n YStart: x.YStart,\n YEnd: row.index - 1\n }));\n }\n }\n return true;\n }\n return false;\n })) {\n this.OSSelectionRanges.push(new OSSelectionRange({\n YStart: row.index,\n YEnd: row.index\n }));\n }\n } else {\n const last = this.OSSelectionRanges[this.OSSelectionRanges.length - 1];\n const startIndex = last.UseYStartForShift ? last.YStart : last.YEnd;\n if (row.index < startIndex) {\n last.YStart = row.index;\n last.YEnd = startIndex;\n last.UseYStartForShift = false;\n } else {\n last.YStart = startIndex;\n last.YEnd = row.index;\n last.UseYStartForShift = true;\n }\n }\n const selectedRows = [];\n const rows = this.GetRowList();\n if (rows) {\n const selections: RowSelection[] = [];\n this.OSSelectionRanges.forEach(x => {\n for (let i = x.YStart; i <= x.YEnd; i++) {\n const selRow = rows[i];\n selRow.selected = true;\n selections.push({\n RowIndex: i,\n RowData: selRow.data\n });\n selectedRows.push(selRow);\n }\n });\n this.RowSelectionChanged.emit(selections);\n }\n this.SelectedRows = selectedRows;\n } else {\n this.OSSelectionRanges = [new OSSelectionRange({\n YStart: row.index,\n YEnd: row.index\n })];\n row.selected = true;\n this.SelectedRows = [row];\n this.RowSelectionChanged.emit([{\n RowIndex: row.index,\n RowData: row.data\n }]);\n }\n } else if (this.SelectModeValue == SelectMode[\"fire&forget\"]) {\n this.SelectedRows = [];\n this.RowSelectionChanged.emit([{\n RowIndex: row.index,\n RowData: row.data\n }]);\n }\n } else {\n if (this.SelectModeValue === SelectMode.single) {\n if (this.innerSelections.length > 0) {\n const first = this.innerSelections[0];\n if (first.Row === row && first.ColumnNames.some(x => x === col.Name)) {\n return;\n }\n }\n this.innerSelections.forEach(x => {\n x.ColumnNames.forEach(cn => {\n x.Row.cols[cn].selected = false;\n });\n });\n row.cols[col.Name].selected = true;\n this.innerSelections = [{\n Row: row,\n ColumnNames: [col.Name]\n }];\n this.CellSelectionChanged.emit([{\n ColumnName: col.Name,\n RowIndex: row.index\n }]);\n } else if (this.SelectModeValue === SelectMode.multi) {\n if (!this.innerSelections.some((x, i) => {\n if (x.Row === row) {\n if (x.ColumnNames.some((cn, j) => {\n if (cn === col.Name) {\n x.Row.cols[cn].selected = false;\n x.ColumnNames.splice(j, 1);\n return true;\n }\n return false;\n })) {\n if (x.ColumnNames.length === 0) {\n this.innerSelections.splice(i, 1);\n }\n } else {\n x.Row.cols[col.Name].selected = true;\n x.ColumnNames.push(col.Name);\n }\n return true;\n }\n return false;\n })) {\n row.cols[col.Name].selected = true;\n this.innerSelections.push({\n Row: row,\n ColumnNames: [col.Name]\n });\n }\n const selections: CellSelection[] = [];\n this.innerSelections.forEach(x => {\n x.ColumnNames.forEach(cn => {\n selections.push({\n ColumnName: cn,\n RowIndex: x.Row.index\n });\n });\n });\n this.CellSelectionChanged.emit(selections);\n } else if (this.SelectModeValue === SelectMode.os) {\n const colNames = DataTableComponent.GetColumnLeaveNames(this.ColumnsValue);\n let rows;\n if (this.OSSelectionRanges.length > 0) {\n rows = this.GetRowList();\n this.OSSelectionRanges.forEach(range => {\n for (let y = range.YStart; y <= range.YEnd; y++) {\n const rangeRow = rows[y];\n for (let x = range.XStart; x <= range.XEnd; x++) {\n rangeRow.cols[colNames[x]].selected = false;\n }\n }\n });\n }\n const colIndex = colNames.indexOf(col.Name);\n if (this.OSSelectionRanges.length > 0 && (event.ctrlKey || event.shiftKey)) {\n if (event.ctrlKey) {\n if (!this.OSSelectionRanges.some((x, i) => {\n if (x.Contains(colIndex, row.index)) {\n this.OSSelectionRanges.splice(i, 1);\n if (x.YStart < row.index) {\n if (row.index < x.YEnd) {\n if (x.XStart < colIndex) {\n if (colIndex < x.XEnd) {\n this.OSSelectionRanges.push(new OSSelectionRange({\n YStart: row.index,\n YEnd: row.index,\n XStart: colIndex + 1,\n XEnd: x.XEnd\n }));\n }\n this.OSSelectionRanges.push(new OSSelectionRange({\n YStart: row.index,\n YEnd: row.index,\n XStart: x.XStart,\n XEnd: colIndex - 1\n }));\n } else {\n this.OSSelectionRanges.push(new OSSelectionRange({\n YStart: row.index,\n YEnd: row.index,\n XStart: colIndex + 1,\n XEnd: x.XEnd\n }));\n }\n this.OSSelectionRanges.push(new OSSelectionRange({\n YStart: row.index + 1,\n YEnd: x.YEnd,\n XStart: x.XStart,\n XEnd: x.XEnd\n }));\n this.OSSelectionRanges.push(new OSSelectionRange({\n YStart: x.YStart,\n YEnd: row.index - 1,\n XStart: x.XStart,\n XEnd: x.XEnd\n }));\n } else {\n if (x.XStart < colIndex) {\n if (colIndex < x.XEnd) {\n this.OSSelectionRanges.push(new OSSelectionRange({\n YStart: row.index,\n YEnd: row.index,\n XStart: colIndex + 1,\n XEnd: x.XEnd\n }));\n }\n this.OSSelectionRanges.push(new OSSelectionRange({\n YStart: row.index,\n YEnd: row.index,\n XStart: x.XStart,\n XEnd: colIndex - 1\n }));\n } else {\n this.OSSelectionRanges.push(new OSSelectionRange({\n YStart: row.index,\n YEnd: row.index,\n XStart: colIndex + 1,\n XEnd: x.XEnd\n }));\n }\n this.OSSelectionRanges.push(new OSSelectionRange({\n YStart: x.YStart,\n YEnd: row.index -1,\n XStart: x.XStart,\n XEnd: x.XEnd\n }));\n }\n } else {\n this.OSSelectionRanges.push(new OSSelectionRange({\n YStart: row.index + 1,\n YEnd: x.YEnd,\n XStart: x.XStart,\n XEnd: x.XEnd\n }));\n if (x.XStart < colIndex) {\n if (colIndex < x.XEnd) {\n this.OSSelectionRanges.push(new OSSelectionRange({\n YStart: row.index,\n YEnd: row.index,\n XStart: colIndex + 1,\n XEnd: x.XEnd\n }));\n }\n this.OSSelectionRanges.push(new OSSelectionRange({\n YStart: row.index,\n YEnd: row.index,\n XStart: x.XStart,\n XEnd: colIndex - 1\n }));\n } else {\n this.OSSelectionRanges.push(new OSSelectionRange({\n YStart: row.index,\n YEnd: row.index,\n XStart: colIndex + 1,\n XEnd: x.XEnd\n }));\n }\n }\n return true;\n }\n return false;\n })) {\n this.OSSelectionRanges.push(new OSSelectionRange({\n YStart: row.index,\n YEnd: row.index,\n XStart: colIndex,\n XEnd: colIndex\n }));\n }\n } else {\n const last = this.OSSelectionRanges[this.OSSelectionRanges.length - 1];\n const startY = last.UseYStartForShift ? last.YStart : last.YEnd;\n const startX = last.UseXStartForShift ? last.XStart : last.XEnd;\n if (row.index < startY) {\n last.YStart = row.index;\n last.YEnd = startY;\n last.UseYStartForShift = false;\n } else {\n last.YStart = startY;\n last.YEnd = row.index;\n last.UseYStartForShift = true;\n }\n if (colIndex < startX) {\n last.XStart = colIndex;\n last.XEnd = startX;\n last.UseXStartForShift = false;\n } else {\n last.XStart = startX;\n last.XEnd = colIndex;\n last.UseXStartForShift = true;\n }\n }\n const selections = {};\n this.OSSelectionRanges.forEach(range => {\n for (let y = range.YStart; y <= range.YEnd; y++) {\n const rangeRow = rows[y];\n for (let x = range.XStart; x <= range.XEnd; x++) {\n const colName = colNames[x];\n rangeRow.cols[colName].selected = true;\n selections[y + '_' + x] = {\n ColumnName: colName,\n RowIndex: y\n };\n }\n }\n });\n const selectionList = [];\n Object.keys(selections).forEach(x => {\n selectionList.push(selections[x]);\n });\n this.CellSelectionChanged.emit(selectionList);\n } else {\n this.OSSelectionRanges = [new OSSelectionRange({\n YStart: row.index,\n YEnd: row.index,\n XStart: colIndex,\n XEnd: colIndex\n })];\n row.cols[col.Name].selected = true;\n this.CellSelectionChanged.emit([{\n ColumnName: col.Name,\n RowIndex: row.index\n }]);\n }\n } else if (this.SelectModeValue == SelectMode[\"fire&forget\"]) {\n this.innerSelections = [];\n this.CellSelectionChanged.emit([{\n ColumnName: col.Name,\n RowIndex: row.index\n }]);\n }\n }\n }\n RowDoubleClick(row) {\n if (!this.Editable) {\n this.RowDoubleClicked.emit({ RowIndex: row.index, RowData: row.data });\n }\n }\n RowSelected(row) {\n if (this.SelectMode === SelectMode.multi) {\n if (row.selected) {\n this.SelectedRows.push(row);\n } else {\n this.SelectedRows.splice(this.SelectedRows.indexOf(row), 1);\n }\n const selections: RowSelection[] = [];\n this.SelectedRows.forEach(x => {\n selections.push({\n RowIndex: x.index,\n RowData: x.data\n });\n });\n this.RowSelectionChanged.emit(selections);\n }\n }\n //ClearSelections() {\n // this.OSSelectionRanges.splice(0);\n // if (this.TableStyleValue === TableStyle.DataTable) {\n // this.SelectedRows.forEach(x => { x.selected = false; });\n // this.SelectedRows.splice(0);\n // this.RowSelectionChanged.emit([]);\n // } else {\n // if (this.SelectModeValue === SelectMode.os) {\n // const colNames = DataTableComponent.GetColumnLeaveNames(this.ColumnsValue);\n // const rows = this.GetRowList();\n // rows.forEach(row => {\n // if (row.cols) {\n // colNames.forEach(col => {\n // const rowCol = row.cols[col];\n // if (rowCol) {\n // rowCol.selected = false;\n // }\n // });\n // }\n // });\n // } else {\n // this.innerSelections.forEach(x => {\n // x.ColumnNames.forEach(cn => {\n // x.Row.cols[cn].selected = false;\n // });\n // });\n // this.innerSelections.splice(0);\n // }\n // this.CellSelectionChanged.emit([]);\n // }\n //}\n RowEdit(row) {\n if (this.Editable) {\n row.edit = true;\n if (!this.EditRows) {\n this.EditRows = [];\n }\n const copy = JSON.parse(JSON.stringify(row));\n this.EditRows.push({\n original: row,\n copy: copy\n });\n }\n }\n RowEditAccept(row) {\n row.edit = false;\n const res = this.EditRows.filter((value, index, array) => {\n return value.original === row;\n });\n if (res && res.length > 0) {\n this.EditRows.splice(this.EditRows.indexOf(res[0]), 1);\n }\n this.ValueChanged.emit(row.data);\n }\n RowEditCancel(row) {\n const res = this.EditRows.filter((value, index, array) => {\n return value.original === row;\n });\n if (res && res.length > 0) {\n row.data = res[0].copy.data;\n this.EditRows.splice(this.EditRows.indexOf(res[0]), 1);\n }\n row.edit = false;\n }\n KeyPressed(event) {\n const ev: KeyboardEvent = event.event;\n let rows;\n if (this.DataSourceValue) {\n rows = this.DataSourceValue.cachedData;\n }\n if (this.RowsValue) {\n rows = this.RowsValue;\n }\n if (rows) {\n let rowindex = rows.indexOf(event.row);\n let columnindex = this.Columns.indexOf(event.column);\n if (!rows[rowindex].cols[this.Columns[columnindex].Name].edit) {\n switch (ev.key) {\n case 'ArrowRight':\n if (columnindex + 1 === this.Columns.length) {\n rowindex += 1;\n columnindex = 0;\n }\n if (rowindex = 0) {\n rows[rowindex].cols[this.Columns[columnindex].Name].selected = false;\n rows[rowindex].cols[this.Columns[columnindex - 1].Name].selected = true;\n }\n break;\n case 'ArrowUp':\n if (rowindex > 0) {\n rows[rowindex].cols[this.Columns[columnindex].Name].selected = false;\n rows[rowindex - 1].cols[this.Columns[columnindex].Name].selected = true;\n }\n break;\n case 'ArrowDown':\n if (rowindex + 1 < rows.length) {\n rows[rowindex].cols[this.Columns[columnindex].Name].selected = false;\n rows[rowindex + 1].cols[this.Columns[columnindex].Name].selected = true;\n }\n break;\n case 'Enter':\n if (rows[rowindex].cols[this.Columns[columnindex].Name].editable !== false) {\n rows[rowindex].cols[this.Columns[columnindex].Name].edit = true;\n }\n break;\n }\n } else {\n switch (ev.key) {\n case 'Tab':\n if (columnindex + 1 === this.Columns.length) {\n rowindex += 1;\n columnindex = 0;\n }\n if (rowindex < rows.length) {\n rows[rowindex].cols[this.Columns[columnindex].Name].selected = false;\n rows[rowindex].cols[this.Columns[columnindex + 1].Name].selected = true;\n rows[rowindex].cols[this.Columns[columnindex].Name].edit = false;\n rows[rowindex].cols[this.Columns[columnindex + 1].Name].edit = true;\n }\n break;\n case 'Escape':\n rows[rowindex].cols[this.Columns[columnindex].Name].edit = false;\n break;\n case 'Enter':\n rows[rowindex].cols[this.Columns[columnindex].Name].edit = false;\n break;\n }\n }\n }\n this.OnKeyPressed.emit(ev);\n }\n \n\n ChangeSort(ev) {\n const column = ev.column;\n const event: MouseEvent = ev.event;\n if (!this.Rows) {\n if (!event.ctrlKey) {\n let clear = true;\n this.Columns.forEach((col) => {\n if (col === column && col.OrderState !== 'NONE') {\n clear = false;\n }\n if (col !== column) {\n col.OrderState = 'NONE';\n }\n });\n if (clear) {\n this.Filter.Sort = [];\n }\n }\n } else {\n let clear = true;\n this.Columns.forEach((col) => {\n if (col === column && col.OrderState !== 'NONE') {\n clear = false;\n }\n if (col !== column) {\n col.OrderState = 'NONE';\n }\n });\n if (clear) {\n this.Filter.Sort = [];\n }\n }\n if (column.IsSortable) {\n if (column.OrderState === 'NONE') {\n column.OrderState = 'ASC';\n } else if (column.OrderState === 'ASC') {\n column.OrderState = 'DESC';\n } else if (column.OrderState === 'DESC') {\n column.OrderState = 'NONE';\n }\n if (this.Filter.Sort && this.Filter.Sort.length > 0) {\n const order = this.Filter.Sort.filter((value, index, array) => {\n return value.Name === column.Name;\n });\n if (order && order.length > 0) {\n if (column.OrderState === 'NONE') {\n this.Filter.Sort.splice(this.Filter.Sort.indexOf(order[0]), 1);\n } else {\n order[0].Order = Order.DESC;\n }\n } else {\n const sort = new RequestSort();\n sort.Name = column.Name;\n sort.Order = Order.ASC;\n this.Filter.Sort.push(sort);\n }\n } else {\n const sort = new RequestSort();\n sort.Name = column.Name;\n sort.Order = Order.ASC;\n this.Filter.Sort.push(sort);\n }\n this.SortChanged.emit(this.Filter.Sort);\n }\n }\n\n @Output() SortChanged = new EventEmitter();\n @Output() FilterChanged = new EventEmitter();\n\n ChangeFilter(column) {\n let columnName = column.name;\n if (column.Name) {\n columnName = column.Name;\n }\n\n const fil = this.Filter.Filters.filter((value, index, array) => {\n return value.Name === columnName;\n });\n if (column.SearchValue != null) {\n column.FilterActive = true;\n if (fil && fil.length > 0) {\n fil[0].Value = column.SearchValue;\n fil[0].Operator = column.SearchOperator;\n fil[0].Name = columnName;\n } else {\n const item = new RequestFilter();\n item.Name = columnName;\n item.Operator = column.SearchOperator;\n item.Value = column.SearchValue;\n this.Filter.Filters.push(item);\n }\n } else {\n column.FilterActive = false;\n this.Filter.Filters.splice(this.Filter.Filters.indexOf(fil[0]), 1);\n }\n this.FilterChanged.emit(this.Filter.Filters);\n this.FilterTriggers[column.Name].toggleMenu();\n }\n CancelFilter(column) {\n this.FilterTriggers[column.Name].toggleMenu();\n }\n //#endregion\n //#region Paging\n ChangePage(event: PageEvent) {\n if (event.pageSize !== this.DataSource.pageSize) {\n this.DataSource.pageSize = event.pageSize;\n }\n this.DataSource.fetchPage(event.pageIndex);\n }\n //#endregion\n\n private GetRowList() {\n let retVal = null;\n if (this.FixedRowsValue) {\n retVal = [...this.FixedRowsValue];\n }\n if (this.RowsValue) {\n if (retVal) {\n retVal.push(...this.RowsValue);\n } else {\n retVal = [...this.RowsValue];\n }\n } else if (this.PagingType === PagingType.Pager) {\n if (this.PagedData) {\n if (retVal) {\n retVal.push(...this.PagedData);\n } else {\n retVal = [...this.PagedData];\n }\n }\n } else if (this.DataSourceValue && this.DataSourceValue.cachedData) {\n if (retVal) {\n retVal.push(...this.DataSourceValue.cachedData);\n } else {\n retVal = [...this.DataSourceValue.cachedData];\n }\n }\n return retVal;\n }\n\n private static GetColumnLeaveNames(columns) {\n const retVal = [];\n if (columns) {\n columns.forEach(col => {\n if (col.expanded) {\n if (col.Children && col.Children.length > 0) {\n retVal.push(...DataTableComponent.GetColumnLeaveNames(col.Children));\n } else {\n retVal.push(col.Name);\n }\n } else if (col.FixedChildren && col.FixedChildren.length > 0) {\n retVal.push(...DataTableComponent.GetColumnLeaveNames(col.FixedChildren));\n } else {\n retVal.push(col.Name);\n }\n });\n }\n return retVal;\n }\n\n GenerateTableHeaderRowStyle() {\n const retVal = Object.assign({}, this.HeaderRowStyle);\n retVal['margin-top'] = this.ShowHeader ? '0' : this.HeaderHeight;\n retVal['min-height'] = this.LineHeight + 'px';\n return retVal;\n }\n AllEntriesSelected = false;\n RowSelectionTriggered(event) {\n this.AllEntriesSelected = !this.AllEntriesSelected;\n let rows = [];\n if (this.DataSourceValue) {\n this.DataSourceValue.cachedData.forEach((row) => {\n row.selected = false;\n });\n\n let page =this.DataSourceValue.ActivePage;\n let size = this.DataSourceValue.pageSize;\n let start = page * size;\n let end = start + size;\n if (end > this.DataSourceValue.cachedData.length) {\n end = this.DataSourceValue.cachedData.length\n }\n if (this.AllEntriesSelected) {\n rows = this.DataSourceValue.cachedData.slice(start, end);\n }\n }\n if (this.RowsValue) {\n rows = this.RowsValue;\n }\n if (rows) {\n rows.forEach((row) => {\n row.selected = this.AllEntriesSelected;\n });\n console.log(rows);\n }\n\n this.SelectedRows = rows;\n const selections: RowSelection[] = [];\n this.SelectedRows.forEach(x => {\n selections.push({\n RowIndex: x.index,\n RowData: x.data\n });\n });\n this.RowSelectionChanged.emit(selections);\n }\n}\n","import { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { AngularDraggableModule } from 'angular2-draggable';\nimport { DataTableFilterPipe } from '../../helpers/datatable.filter';\nimport { DataTableSortPipe } from '../../helpers/datatable.sort';\nimport { OperatorComponent } from '../common/operator.component';\nimport { CellContent } from './cell.content';\nimport { ContentColumnContainer } from './content.column.container';\nimport { DataTableCell } from './datatable.cell';\nimport { DataTableComponent } from './datatable.component';\nimport { DataTableRow } from './datatable.row';\nimport { HeaderColumnContainer } from './header.column.container';\nimport { SpreadSheetCell } from './spreadsheet.cell';\n\n@NgModule({\n declarations: [\n DataTableComponent,\n DataTableRow,\n DataTableCell,\n CellContent,\n DataTableFilterPipe,\n DataTableSortPipe,\n OperatorComponent,\n SpreadSheetCell,\n HeaderColumnContainer,\n ContentColumnContainer\n ],\n imports: [\n CommonModule,\n BrowserModule,\n BrowserAnimationsModule,\n FormsModule,\n ScrollingModule,\n MatExpansionModule,\n MatInputModule,\n MatIconModule,\n MatButtonModule,\n MatCheckboxModule,\n MatMenuModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatTooltipModule,\n MatSelectModule,\n AngularDraggableModule,\n AngularResizeEventModule\n ],\n exports: [DataTableComponent]\n})\nexport class DataTableModule { }\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { Row } from '../../models/basic/row.model';\n\n@Component({\n selector: 'evi-datatable-row',\n templateUrl: './datatable.row.html',\n styleUrls: ['./datatable.row.css'],\n animations: [\n trigger('animateExpandable', [\n state('collapsed', style({ transform: 'rotate(0deg)', opacity: 1 })),\n state('collapsedRTL', style({ transform: 'rotate(180deg)', opacity: 1 })),\n state('expanded', style({ transform: 'rotate(90deg)', opacity: 1 })),\n transition('collapsed => expanded', [\n animate('200ms')\n ]),\n transition('expanded => collapsed', [\n animate('200ms')\n ]),\n transition('collapsedRTL => expanded', [\n animate('200ms')\n ]),\n transition('expanded => collapsedRTL', [\n animate('200ms')\n ])\n ])\n ],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class DataTableRow {\n\n //#region Row\n RowValue: Row;\n\n @Input()\n get Row(): Row {\n return this.RowValue;\n }\n set Row(val: Row) {\n this.RowValue = val;\n }\n //#endregion\n\n //#region Columns\n ColumnsValue;\n\n @Input()\n get Columns() {\n return this.ColumnsValue;\n }\n set Columns(val) {\n this.ColumnsValue = val;\n }\n //#endregion\n\n //#region DataTable\n DataTableValue: any;\n\n @Input()\n get DataTable() {\n return this.DataTableValue;\n }\n set DataTable(val: any) {\n this.DataTableValue = val;\n }\n //#endregion\n\n RowEditInternal(row) {\n this.RowEdit.emit(row);\n }\n @Output() RowEdit = new EventEmitter();\n\n RowEditAcceptInternal(row) {\n this.RowEditAccept.emit(row);\n }\n @Output() RowEditAccept = new EventEmitter();\n\n RowEditCancelInternal(row) {\n this.RowEditCancel.emit(row);\n }\n @Output() RowEditCancel = new EventEmitter();\n\n RowClickInternal(event) {\n this.RowClick.emit(event);\n }\n @Output() RowClick = new EventEmitter();\n\n RowSelectedInternal(row) {\n this.RowSelected.emit(row);\n }\n @Output() RowSelected = new EventEmitter();\n\n KeyPressInternal(event) {\n event['row'] = this.Row;\n this.KeyPress.emit(event);\n }\n\n @Output() KeyPress = new EventEmitter();\n\n ExpandClick(event) {\n this.Row.expanded = !this.Row.expanded;\n this.Row.RowExpand.next(this.Row.expanded);\n event.stopPropagation();\n }\n\n //#region ToolTip\n ShowToolTip;\n enter(event: MouseEvent) {\n if (event.target['offsetWidth'] < event.target['scrollWidth']) {\n this.ShowToolTip = true;\n } else {\n this.ShowToolTip = false;\n }\n }\n //#endregion\n GetCustomStyle() {\n //if (this.DataTable && this.DataTable.TableStyle == TableStyle.DataTable && this.DataTable.CustomBaseStyle && this.DataTable.CustomBaseStyle.Line) {\n // return {\n // 'border-bottom': '1px solid ' + this.DataTable.CustomBaseStyle.Line\n // }\n //}\n }\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, QueryList, ViewChildren\n} from '@angular/core';\n\n@Component({\n selector: 'evi-header-column-container',\n templateUrl: './header.column.container.html',\n styleUrls: ['./header.column.container.css'],\n changeDetection: ChangeDetectionStrategy.Default,\n animations: [\n trigger('animateOrder', [\n state('ASC', style({ transform: 'rotate(0deg)', opacity: 1 })),\n state('DESC', style({ transform: 'rotate(180deg)', opacity: 1 })),\n state('NONE', style({ opacity: 0 })),\n transition('ASC => DESC', [\n animate('200ms')\n ]),\n transition('DESC => NONE', [\n animate('200ms')\n ]),\n transition('NONE => ASC', [\n animate('200ms')\n ])\n ])\n ],\n})\nexport class HeaderColumnContainer implements AfterViewInit {\n @ViewChildren('col') elements: QueryList;\n ngAfterViewInit(): void {\n if (this.elements && this.ColumnsValue && this.DataTableValue) {\n this.elements.toArray().forEach((element) => {\n this.DataTableValue.IntersectHelper.Observer.observe(element.nativeElement);\n });\n }\n }\n //#region DataTable\n DataTableValue: any;\n\n @Input()\n get DataTable() {\n return this.DataTableValue;\n }\n set DataTable(val: any) {\n this.DataTableValue = val;\n }\n //#endregion\n //#region Columns\n ColumnsValue;\n\n @Input()\n get Columns() {\n return this.ColumnsValue;\n }\n set Columns(val) {\n this.ColumnsValue = val;\n }\n //#endregion\n //#region ToolTip\n ShowToolTip;\n enter(event: MouseEvent) {\n if (event.target['offsetWidth'] < event.target['scrollWidth']) {\n this.ShowToolTip = true;\n } else {\n this.ShowToolTip = false;\n }\n }\n //#endregion\n\n SetExpanded(column, expanded) {\n column.expanded = expanded;\n if (this.DataTableValue) {\n this.DataTableValue.UpdateColumnWidths();\n }\n }\n onResizeStart(event, column) {\n column.Resizing = true;\n column.WasResized = false;\n this.checkSizeChange(event, column);\n }\n onResizing(event, column) {\n column.Resizing = true;\n this.checkSizeChange(event, column);\n }\n onResizeStop(event, column) {\n column.Resizing = false;\n this.checkSizeChange(event, column); \n if (column.WasResized) {\n column.WasResized = false;\n if (this.DataTableValue) {\n this.DataTableValue.ColumnResized.emit(column);\n }\n }\n }\n private checkSizeChange(event, column) {\n if (column.CalculatedWidth !== event.size.width) {\n column.WasResized = true;\n column.CalculatedWidth = event.size.width;\n this.CheckChildrenWidths(column);\n this.CheckParentWidths(column);\n }\n }\n CheckChildrenWidths(column) {\n if (column) {\n const childList = [];\n if (column.expanded) {\n if (column.Children) {\n childList.push(...column.Children);\n }\n } else if (column.FixedChildren) {\n childList.push(...column.FixedChildren);\n }\n if (childList.length > 0) {\n let colWidth = column.CalculatedWidth;\n const nPC = {\n ChildList: [],\n WidthList: [],\n Sum: 0\n };\n childList.forEach(child => {\n nPC.ChildList.push(child);\n let childWidth = 0;\n if (child.CalculatedWidth) {\n childWidth = child.CalculatedWidth;\n }\n nPC.WidthList.push(childWidth);\n nPC.Sum += childWidth;\n });\n if (nPC.Sum > 0) {\n nPC.ChildList.forEach((x, i) => {\n x.CalculatedWidth = Math.round(100 * colWidth * nPC.WidthList[i] / nPC.Sum) / 100;\n });\n childList.forEach(child => {\n this.CheckChildrenWidths(child);\n });\n }\n }\n }\n }\n\n CheckParentWidths(column) {\n if (column && this.DataTableValue) {\n let parent = column;\n while (parent) {\n const parentParent = this.DataTableValue.ParentInfo[parent.Name];\n if (parentParent) {\n parent = parentParent;\n } else {\n this.DataTableValue.GetColumnWidth(parent);\n break;\n }\n }\n }\n }\n\n //#region Actions\n @Output() ColumnSortChanged = new EventEmitter();\n ChangeSort(column, event) {\n this.ColumnSortChanged.emit({ column: column, event: event });\n }\n ChangeSortExternal(event) {\n this.ColumnSortChanged.emit(event);\n }\n\n @Output() ColumnFilterChange = new EventEmitter();\n ChangeFilter(column) {\n this.ColumnFilterChange.emit(column);\n }\n\n @Output() ColumnFilterCancel = new EventEmitter();\n CancelFilter(column) {\n this.ColumnFilterCancel.emit(column);\n }\n //#endregion\n GetStyle(column) {\n let retVal = { ...this.DataTable.ResultStyle[column.Name], ...this.DataTable.HeaderCellStyle };\n //this.DataTable.ResultStyle[column.Name];\n //if (this.DataTable && this.DataTable.TableStyle == TableStyle.SpreadSheet && this.DataTable.CustomBaseStyle) {\n // if (this.DataTable.CustomBaseStyle.HeaderBackground) {\n // retVal['background'] = this.DataTable.CustomBaseStyle.HeaderBackground;\n // }\n // if (this.DataTable.CustomBaseStyle.Line) {\n // retVal['border'] = \"1px solid \" + this.DataTable.CustomBaseStyle.Line;\n // retVal['border-bottom'] = \"1px solid \" + this.DataTable.CustomBaseStyle.Line;\n // }\n // if (this.DataTable.CustomBaseStyle.HeaderForeground) {\n // retVal['color'] = this.DataTable.CustomBaseStyle.HeaderForeground;\n // }\n //}\n return retVal;\n }\n}\n","import {\n Component, DoCheck, ElementRef, EventEmitter, Input, KeyValueChangeRecord, KeyValueDiffers, Output, ViewChild, ChangeDetectionStrategy\n} from '@angular/core';\nimport { ABaseCell } from './a.base.cell';\n\n@Component({\n selector: 'evi-spreadsheet-cell',\n templateUrl: './spreadsheet.cell.html',\n styleUrls: ['./spreadsheet.cell.css'],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class SpreadSheetCell extends ABaseCell {\n\n @ViewChild('cell', { read: ElementRef })\n private inputRef: ElementRef;\n //#region Editable\n EditableValue;\n\n @Input()\n get Editable() {\n return this.EditableValue;\n }\n set Editable(val) {\n this.EditableValue = val;\n }\n //#endregion\n\n EditValue;\n\n @Output() KeyPress = new EventEmitter();\n differ;\n\n constructor(diff: KeyValueDiffers) {\n super();\n this.differ = diff.find({}).create();\n }\n\n ngDoCheck(): void {\n if (this.RowValue) {\n const changes = this.differ.diff(this.RowValue.cols[this.Column.Name]);\n if (changes) {\n changes.forEachChangedItem((record: KeyValueChangeRecord) => {\n if (record.key === 'selected' && record.currentValue === true) {\n this.inputRef.nativeElement.focus();\n }\n if (record.key === 'edit' && this.Row.cols[this.Column.Name].selected) {\n this.inputRef.nativeElement.focus();\n }\n });\n }\n }\n } \n\n keyboardaction(event: KeyboardEvent) {\n //console.log(event);\n }\n\n CellEditInternal(Name) {\n const data = this.Row.cols[Name];\n if (data.editable !== false) {\n data.edit = !data.edit;\n }\n if (this.DataTableValue.IsPlanningTable) {\n this.EditValue = this.Row.internal[Name];\n }\n }\n ValueChanged() {\n if (this.DataTableValue.IsPlanningTable) {\n this.DataTableValue.ValueChanged.emit({\n RowIndex: this.Row.index,\n ColumnName: this.Column.Name,\n OldValue: this.Row.internal[this.Column.Name],\n NewValue: this.EditValue\n });\n }\n }\n\n keyPress(event) {\n this.KeyPress.emit({ event: event, column: this.Column });\n }\n\n mousedown(event: MouseEvent) {\n event.stopPropagation();\n this.DataTableValue.SelectionHelper.Selecting = true;\n this.DataTableValue.SelectionHelper.StartCell = {\n RowIndex: this.RowValue.index,\n ColumnName: this.Column.Name\n }\n console.log('MouseDown');\n }\n mouseup() {\n this.DataTableValue.SelectionHelper.EndCell = {\n RowIndex: this.RowValue.index,\n ColumnName: this.Column.Name\n }\n //SelectionHelper.Selecting = false;\n if (this.DataTableValue.SelectionHelper.Copying) {\n this.DataTableValue.SelectionHelper.Copying = false;\n this.DataTableValue.SelectionHelper.CopyComplete();\n }\n //else {\n // SelectionHelper.SelectionComplete.next();\n //}\n }\n CopyDown(event: MouseEvent) {\n event.stopPropagation();\n this.DataTableValue.SelectionHelper.InitSelection();\n this.DataTableValue.SelectionHelper.Copying = true;\n this.DataTableValue.SelectionHelper.Selecting = false;\n this.DataTableValue.SelectionHelper.StartCell = {\n RowIndex: this.RowValue.index,\n ColumnName: this.Column.Name\n }\n }\n\n ShowCellCopy() {\n let retVal = false;\n if (this.DataTable.IsPlanningTable && this.Row && this.Row.cols && this.Row.cols[this.Column.Name].selected) {\n if (this.DataTableValue.OSSelectionRanges && this.DataTableValue.OSSelectionRanges.length == 1) {\n let range = this.DataTableValue.OSSelectionRanges[0];\n if (range.XEnd == range.XStart && range.YStart == range.YEnd) {\n retVal = true;\n }\n }\n }\n return retVal;\n }\n}\n","import { ChangeDetectionStrategy, Component, Inject, OnInit } from \"@angular/core\";\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\nimport { EnumHelper } from \"../../../helpers/enum.helper\";\nimport { ActionSize } from \"../../../models/enums/actionsize.enum\";\nimport { Action } from \"../../../models/ribbon/action.model\";\nimport { ACTIONS_REGISTRY } from \"../../../registries/actions/actions.registry\";\n\n@Component({\n selector: 'action-dialog',\n templateUrl: 'action.dialog.html',\n styleUrls: ['./action.dialog.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ActionDialog implements OnInit{\n\n DialogData;\n Type;\n ContainerType;\n\n Sizes;\n Registry = [...Array.from(ACTIONS_REGISTRY.keys())];\n\n constructor(private dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) {\n if (data) {\n this.DialogData = data.data;\n this.Type = data.type;\n this.ContainerType = data.container;\n }\n this.Sizes = EnumHelper.GetDropdownValues(ActionSize);\n dialogRef.disableClose = true;\n }\n\n ngOnInit(): void {\n }\n\n Ok() {\n this.dialogRef.close({\n data: this.DialogData,\n action: 'save'\n });\n }\n Cancel() {\n this.dialogRef.close(null);\n }\n Delete() {\n this.dialogRef.close({\n data: this.DialogData,\n action: 'delete'\n })\n }\n}","import { Component, ViewChild, AfterViewInit, ChangeDetectionStrategy } from '@angular/core';\nimport { AdvancedFilterComponent } from '../../controls/advancedfilter/advancedfilter.component';\n\n@Component({\n selector: 'advancedfilterdialog',\n templateUrl: './advancedfilter.dialog.html',\n styleUrls: ['advancedfilter.dialog.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AdvancedFilterDialog implements AfterViewInit {\n\n Columns;\n Filter;\n SelectedItem;\n SystemVariables;\n\n @ViewChild('advanced') filterComponent: AdvancedFilterComponent;\n\n ngAfterViewInit(): void {\n if (this.Filter && this.filterComponent) {\n this.filterComponent.SetFilter(this.Filter);\n }\n }\n\n Initialize(args) {\n if (args) {\n this.Columns = args.Columns;\n this.Filter = args.Filter;\n this.SelectedItem = args.SelectedItem;\n this.SystemVariables = args.SystemVariables;\n }\n }\n\n GetDialogResult() {\n const retVal = {\n Filter: null\n };\n if (this.filterComponent) {\n retVal.Filter = this.filterComponent.GetActualFilter();\n }\n return retVal;\n }\n}\n","import {\n AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ComponentFactoryResolver, Inject, ViewChild, ViewContainerRef\n} from '@angular/core';\nimport { MatDialogConfig, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { DialogHelper } from '../../../helpers/injector.helper';\nimport { RTLHelper } from '../../../helpers/rtl.helper';\nimport { DialogButton } from '../../../models/enums/dialogbutton.enum';\nimport { DialogResult } from '../../../models/enums/dialogresult.enum';\n\n@Component({\n selector: 'base-dialog',\n templateUrl: 'base.dialog.html',\n styleUrls: ['./base.dialog.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BaseDialog implements AfterViewInit {\n\n DialogData: DialogData;\n DialogContent;\n AdditionalStyle;\n\n @ViewChild('dynamic', { read: ViewContainerRef }) viewContainerRef: ViewContainerRef;\n\n public static ShowDialog(data: DialogData) {\n if (data) {\n const config = new MatDialogConfig();\n config.data = {\n Data: data\n };\n if (!data.Title && data.HideEmptyTitle != true) {\n data.Title = 'evidanza MaC';\n }\n if (typeof data.Buttons !== 'number') {\n data.Buttons = DialogButton.OkCancel;\n }\n if (data.FullScreen === true) {\n config.position = {\n top: '0',\n left: '0'\n };\n config.minWidth = '100%';\n config.height = '100%';\n } else {\n if (data.Height) {\n config.height = data.Height + 'px';\n config.maxHeight = 'initial';\n } else if (data.HeightText) {\n config.height = data.HeightText;\n config.maxHeight = 'initial';\n }\n if (data.Width) {\n config.width = data.Width + 'px';\n } else if (data.WidthText) {\n config.width = data.WidthText;\n }\n }\n if (data.AutoFocus === false) {\n config.autoFocus = false;\n }\n config.direction = RTLHelper.Direction=='ltr'?'ltr':'rtl';\n return DialogHelper.DialogInstance.open(BaseDialog, config);\n } else {\n console.error('No dialog-data defined!');\n }\n return null;\n }\n\n public static async ShowDialogAsync(data: DialogData): Promise {\n const diaRef = BaseDialog.ShowDialog(data);\n if (diaRef) {\n return await diaRef.afterClosed().toPromise();\n }\n return DialogResult.None;\n }\n\n constructor(private dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any,\n private factoryResolver: ComponentFactoryResolver, private cdRef: ChangeDetectorRef) {\n this.DialogData = data.Data;\n dialogRef.disableClose = true;\n if (dialogRef._containerInstance._config.height) {\n this.AdditionalStyle = new Map([['max-height', 'initial']]);\n }\n }\n\n ngAfterViewInit(): void {\n if (this.DialogData) {\n if (this.DialogData.ContentType) {\n const factory = this.factoryResolver.resolveComponentFactory(this.DialogData.ContentType);\n const component = factory.create(this.viewContainerRef.parentInjector);\n this.DialogContent = component.instance;\n this.DialogContent.BaseDialog = this;\n if (this.DialogData.InitArgs && typeof this.DialogContent.Initialize === 'function') {\n this.DialogContent.Initialize(this.DialogData.InitArgs);\n }\n this.viewContainerRef.insert(component.hostView);\n component.location.nativeElement.classList.add('flex-column', 'flex-100', 'full', 'noscroll');\n component.changeDetectorRef.detectChanges();\n }\n }\n }\n\n async buttonClicked(button) {\n if (this.DialogContent) {\n if (typeof this.DialogContent.OnCustomButtonClicked === 'function') {\n await this.DialogContent.OnCustomButtonClicked(button);\n }\n if (this.DialogContent.CloseOnCustomButton === true) {\n await this.tryCloseDialog(DialogResult.None);\n }\n }\n }\n\n async cancelClicked() {\n const execute = await this.onExecuteClick(DialogButton.Cancel);\n if (execute) {\n if (this.DialogData && typeof this.DialogData.Handler === 'function') {\n this.DialogData.Handler(null);\n }\n this.dialogRef.close(DialogResult.Cancel);\n }\n }\n\n async okClicked() {\n const execute = await this.onExecuteClick(DialogButton.Ok);\n if (execute) {\n await this.tryCloseDialog(DialogResult.Ok);\n }\n }\n\n async tryCloseDialog(result: DialogResult) {\n let close = true;\n let pg = null;\n if(this.DialogContent.GetPageName){\n if(typeof this.DialogContent.GetPageName===\"function\"){\n const pgVal = await this.DialogContent.GetPageName();\n if(pgVal){\n pg = pgVal\n }\n }\n }\n if (this.DialogData && typeof this.DialogData.Handler === 'function' && this.DialogContent &&\n typeof this.DialogContent.GetDialogResult === 'function') {\n const dr = await this.DialogContent.GetDialogResult();\n if(pg!==undefined && pg!==null){\n close = this.DialogData.Handler(dr,pg)\n }\n else close = this.DialogData.Handler(dr);\n }\n if (close) {\n this.dialogRef.close(result);\n }\n }\n\n async onExecuteClick(button: DialogButton): Promise {\n let retVal = true;\n if (this.DialogContent && typeof this.DialogContent.OnDialogButtonClickAction === 'function') {\n retVal = await this.DialogContent.OnDialogButtonClickAction(button);\n }\n return retVal;\n }\n}\n\nexport interface DialogData {\n ContentType;\n InitArgs?;\n Handler?;\n Title?: string;\n Buttons?: DialogButton;\n Height?: number;\n Width?: number;\n HeightText?: string;\n WidthText?: string;\n FullScreen?: boolean;\n AutoFocus?: boolean;\n HideEmptyTitle?: boolean;\n}\n","import { Component } from '@angular/core';\nimport { TranslateFormatText } from '../../../helpers/array.helpers';\nimport { DialogButton } from '../../../models/enums/dialogbutton.enum';\nimport { MessageBoxButtons } from '../../../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../../../models/enums/messageboxicon.enum';\nimport { BaseDialog } from '../basedialog/base.dialog';\nimport { MessageBoxHelper } from '../messagebox/messagebox.dialog';\n\n@Component({\n selector: 'change-key-dialog',\n templateUrl: './change.key.dialog.html'\n})\nexport class ChangeKeyDialog {\n Result = '';\n ForbiddenKeys = [];\n CheckKey = false;\n PageName = \"\";\n ShowPageName: boolean = false;\n static ShowDialog(forbiddenKeys: string[], checkKey: boolean, handler, PageName: string = \"\", ShowPageName: boolean = false) {\n BaseDialog.ShowDialog({\n ContentType: ChangeKeyDialog,\n InitArgs: {\n ForbiddenKeys: forbiddenKeys,\n CheckKey: checkKey,\n PageName: PageName,\n ShowPageName: ShowPageName\n },\n Title: '@@ChangeKeyDialog',\n Handler: (x, pg) => {\n if (x && handler) {\n if (x && pg) {\n handler(x, pg);\n }\n else handler(x);\n }\n return true;\n }\n })\n }\n\n static ShowMessage(x) {\n if (typeof x === 'number') {\n let text: TranslateFormatText;\n let header: TranslateFormatText;\n switch (x) {\n case 1: // EmptyKey\n text = new TranslateFormatText('@@EmptyKeyText');\n header = new TranslateFormatText('@@EmptyKeyHeader');\n break;\n case 2: // ObjectNotFound\n text = new TranslateFormatText('@@ObjectNotFoundText');\n header = new TranslateFormatText('@@ObjectNotFoundHeader');\n break;\n case 3: // SameKey\n text = new TranslateFormatText('@@SameKeyText');\n header = new TranslateFormatText('@@SameKeyHeader');\n break;\n case 4: // NoChange\n text = new TranslateFormatText('@@NoChangeText');\n header = new TranslateFormatText('@@NoChangeHeader');\n break;\n case 5: // KeyExisting\n text = new TranslateFormatText('@@KeyAlreadyExistingText');\n header = new TranslateFormatText('@@KeyAlreadyExistingHeader');\n break;\n case 6: // IsLocked\n text = new TranslateFormatText('@@ObjectLockedText');\n header = new TranslateFormatText('@@ObjectLockedHeader');\n break;\n case 7: // IsCapsule\n text = new TranslateFormatText('@@CapsuleObjectText');\n header = new TranslateFormatText('@@CapsuleObjectHeader');\n break;\n\n case 8: // Empty page name\n text = new TranslateFormatText('@@EmptyPageName');\n header = new TranslateFormatText('@@EmptyPageHeader');\n break;\n default:\n return;\n }\n MessageBoxHelper.ShowDialog(text, header, MessageBoxButtons.Ok, MessageBoxIcon.Error);\n }\n }\n\n Initialize(data) {\n if (data) {\n if (Array.isArray(data.ForbiddenKeys)) {\n data.ForbiddenKeys.forEach(fk => {\n if (typeof fk === 'string') {\n this.ForbiddenKeys.push(fk.toLowerCase());\n }\n });\n }\n if (typeof data.CheckKey === 'boolean') {\n this.CheckKey = data.CheckKey;\n }\n if (typeof data.PageName === 'string') {\n this.PageName = data.PageName;\n }\n if (data?.ShowPageName !== undefined && data?.ShowPageName !== null) {\n this.ShowPageName = data.ShowPageName;\n }\n }\n }\n\n GetDialogResult() {\n return this.Result;\n }\n GetPageName() {\n return this.PageName;\n }\n OnDialogButtonClickAction(button) {\n if (button == DialogButton.Ok) {\n if (this.ShowPageName === true && this.PageName === \"\") {\n ChangeKeyDialog.ShowMessage(8);\n return false\n }\n if (this.Result) {\n const toLower = this.Result.toLowerCase();\n if (this.ForbiddenKeys.some(x => x == toLower)) {\n ChangeKeyDialog.ShowMessage(4);\n return false;\n }\n } else {\n ChangeKeyDialog.ShowMessage(1);\n return false;\n }\n }\n return true;\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { EnumHelper } from '../../helpers/enum.helper';\nimport { ResourceBase } from '../../models/enums/resourcebase.enum';\nimport { RelSourceService } from '../../services/relSource.service';\n\n@Component({\n selector: 'containerSelect-dialog',\n templateUrl: 'containerSelect.dialog.html',\n styleUrls: ['./containerSelect.dialog.css']\n})\nexport class ContainerSelectDialog implements OnInit {\n ResourceBaseTypes = [];\n ContainerTypes = [];\n count = 0;\n Query;\n _SearchValue = '';\n\n\n get SearchValue() {\n return this._SearchValue;\n }\n set SearchValue(val) {\n this._SearchValue = val;\n this.FilterContainer();\n }\n\n _ActualContainerType;\n get ActualContainerType() {\n return this._ActualContainerType;\n }\n set ActualContainerType(val) {\n this._ActualContainerType = val;\n this.FilterContainer();\n }\n\n _ActualResourceBaseEnumType;\n get ActualResourceBaseEnumType() {\n return this._ActualResourceBaseEnumType;\n }\n set ActualResourceBaseEnumType(val) {\n this._ActualResourceBaseEnumType = val;\n this.FilterContainer();\n }\n\n @Input()\n InitArgsQuery: any;\n\n Container = [];\n AllContainers = [];\n @Output() CloseClicked = new EventEmitter();\n\n constructor(private service: RelSourceService) {\n this.ResourceBaseTypes = EnumHelper.GetDropdownValues(ResourceBase);\n }\n\n close() { }\n\n ngOnInit(): void {\n if (this.InitArgsQuery && this.InitArgsQuery.Query) {\n this.service.GetAllContainerTypes(this.InitArgsQuery.Query.DataModelID).subscribe(r => {\n if (r) {\n this.ContainerTypes = r;\n }\n });\n this.service.GetRelContainer(this.InitArgsQuery.Query).subscribe(r => {\n if (r) {\n this.AllContainers = r;\n this.Container = r;\n }\n });\n }\n }\n\n Initialize(args) {\n if (args && args.Query) {\n this.Query = args.Query;\n }\n }\n\n GetDialogResult() {\n }\n\n FilterContainer() {\n let searchVal;\n if (this._SearchValue) {\n searchVal = this._SearchValue.toLowerCase();\n }\n this.Container = this.AllContainers.filter(cont =>\n (this._ActualResourceBaseEnumType == null || cont.ResourceBase == this._ActualResourceBaseEnumType.type) &&\n (this._ActualContainerType == null || cont.ContainerType == this._ActualContainerType.IdGuid) &&\n (!searchVal || cont.Caption.toLowerCase().indexOf(searchVal) !== -1));\n }\n\n dragStart(event, item) {\n event.dataTransfer.setData('container', JSON.stringify(item));\n event.dataTransfer.setData('allcontainer', JSON.stringify(this.AllContainers));\n }\n\n Close() {\n this.CloseClicked.emit();\n }\n}\n\n","import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { plainToClass } from 'class-transformer';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { DialogType } from '../../../models/enums/dialogtype.enum';\nimport { Layout } from '../../../models/layout.model';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MetaService } from '../../../services/meta.service';\nimport { NavigationService } from '../../../services/navigation.service';\n\n@Component({\n selector: 'content-dialog',\n templateUrl: 'content.dialog.html',\n styleUrls: ['./content.dialog.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ContentDialog implements OnInit, OnDestroy {\n \n DataSource;\n DialogData;\n LayoutElement;\n TempLayout;\n TempParameters;\n InternalChange = false;\n ParamSub;\n LayoutSub;\n constructor(dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private service: MetaService) {\n this.DialogData = data;\n dialogRef.disableClose = false;\n }\n //#region Layout\n LayoutValue;\n\n @Input()\n get Layout() {\n return this.LayoutValue;\n }\n set Layout(val) {\n this.LayoutValue = val;\n this.LayoutChange.emit(this.LayoutValue);\n }\n\n @Output() LayoutChange = new EventEmitter();\n //#endregion\n ngOnInit(): void {\n if (this.DialogData) {\n if (!this.DialogData.ActualSettings && this.DialogData.Type == DialogType.Content) {\n this.LayoutSub = LayoutService.SelectedLayout.subscribe(x => {\n if (!this.InternalChange) {\n this.TempLayout = x;\n }\n });\n this.ParamSub = NavigationService.Params.subscribe(x => {\n if (!this.InternalChange) {\n this.TempParameters = x;\n }\n });\n const params = {};\n if (this.DialogData.Parameters && Array.isArray(this.DialogData.Parameters)) {\n if (this.TempLayout instanceof Layout) {\n this.DialogData.Parameters.forEach((param) => {\n if (!param['Manual']) {\n var elem = LayoutHelper.getElementByName(this.TempLayout.Elements, param['Value']);\n if (elem && elem.Element) {\n params[param['Name']] = elem.Element.DataSource;\n }\n } else {\n params[param['Name']] = param['Value'];\n }\n });\n }\n }\n this.service.LoadPage(this.DialogData.URL).subscribe(result => {\n if (result) {\n this.LayoutElement = plainToClass(Layout, result);\n this.InternalChange = true;\n LayoutService.SelectedLayout.next(this.LayoutElement);\n NavigationService.Params.next(params);\n this.InternalChange = false;\n }\n });\n }\n if (this.DialogData.ActualSettings && this.DialogData.ActualSettings.Type == DialogType.Template) {\n if (this.DialogData.ActualSettings.Template) {\n this.service.LoadTemplate(this.DialogData.ActualSettings.Template).subscribe((result) => {\n if (result) {\n this.DataSource = null;\n this.LayoutElement = plainToClass(Layout, result);\n this.Layout = this.LayoutElement;\n this.LayoutElement.Elements[0].ElementSet.subscribe(() => {\n setTimeout(() => {\n this.LayoutElement.Elements[0].Element.DataSource = this.DialogData.ActualParameter;\n }, 100);\n });\n }\n });\n }\n }\n }\n }\n\n ngOnDestroy() {\n if (this.LayoutSub) {\n this.LayoutSub.unsubscribe();\n this.LayoutSub = null;\n LayoutService.SelectedLayout.next(this.TempLayout);\n }\n if (this.ParamSub) {\n this.ParamSub.unsubscribe();\n this.ParamSub = null;\n NavigationService.Params.next(this.TempParameters);\n }\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { TranslateFormatText } from '../../../helpers/array.helpers';\nimport { DatadescriptionData } from '../../../models/datadescription/datadescriptiondata.model';\nimport { DataDescriptionRelational } from '../../../models/datadescription/relational/datadescriptionrelational.model';\nimport { MessageBoxButtons } from '../../../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../../../models/enums/messageboxicon.enum';\nimport { MessageBoxResult } from '../../../models/enums/messageboxresult.enum';\nimport { OcDragItemType } from '../../../models/enums/oc.DragItemType';\nimport { DataModelService } from '../../../services/datamodel.service';\nimport { MessageBoxHelper } from '../messagebox/messagebox.dialog';\n\nexport class OCMPDragInfo {\n constructor(public DragType: OcDragItemType, public DragContent) {\n }\n}\n\n@Component({\n selector: 'datadescription-control',\n templateUrl: './datadescription.control.html',\n styleUrls: ['./datadescription.control.css']\n})\nexport class DatadescriptionControl implements OnInit {\n\n public static ObjectCreatorMPDragStart: Subject = new Subject();\n\n showContainerSelect = false;\n InitArgsQuery;\n @Output() ContentChanged = new EventEmitter();\n AllDataModels: any;\n DataModelID: any;\n showPreview = false;\n\n @Input()\n get SelectedDataModel() {\n return this.DataValue.DataModelID;\n }\n set SelectedDataModel(val) {\n //ToDo OC Abfrage if (this.checkchangeIsRelational())\n {\n this.DataValue.DataModelID = val;\n this.DataModelID = this.DataValue.DataModelID;\n this.DataDescriptionValue.DataModelID = val;\n }\n }\n\n @Input()\n get IsRelational() {\n return this.DataValue.IsRelational;\n }\n set IsRelational(val) {\n //ToDo OC Abfrage if (this.checkchangeIsRelational())\n {\n this.DataValue.IsRelational = val;\n this.DataDescription = this.DataValue.Datadescription;\n // this.DatadescriptionChange.emit(val);\n }\n }\n\n @Input()\n get IsAllXValues() {\n if (this.DataValue.Datadescription.XLevelNodes) {\n return this.DataValue.Datadescription.XLevelNodes.ShowAll;\n }\n return false;\n }\n set IsAllXValues(val) {\n if (this.DataValue.Datadescription.XLevelNodes) {\n this.DataValue.Datadescription.XLevelNodes.ShowAll = val;\n }\n }\n\n @Input()\n get IsAllYValues() {\n if (this.DataValue.Datadescription.YLevelNodes) {\n return this.DataValue.Datadescription.YLevelNodes.ShowAll;\n }\n return false;\n }\n set IsAllYValues(val) {\n if (this.DataValue.Datadescription.YLevelNodes) {\n this.DataValue.Datadescription.YLevelNodes.ShowAll = val;\n }\n }\n\n DataDescriptionValue: any = new DataDescriptionRelational();\n @Input()\n get DataDescription() {\n return this.DataDescriptionValue;\n }\n set DataDescription(val) {\n\n val.DataModelID = this.Data.DataModelID;\n this.DataDescriptionValue = val;\n this.Data.Datadescription = val;\n }\n\n //#region Data\n DataValue: DatadescriptionData = new DatadescriptionData();\n @Input()\n get Data() {\n return this.DataValue;\n }\n set Data(val) {\n if (val) {\n this.DataValue = val;\n val.Datadescription.DataModelID = val.DataModelID;\n this.DataDescription = val.Datadescription;\n this.DataModelID = val.DataModelID;\n this.IsRelational = val.IsRelational;\n this.DataChange.emit(this.DataValue);\n }\n }\n\n @Output() DataChange = new EventEmitter();\n //#endregion\n\n constructor(private dataModelService: DataModelService) {\n }\n\n ngOnInit(): void {\n this.dataModelService.GetModels().subscribe(models => {\n this.AllDataModels = models;\n });\n }\n\n async checkchangeIsRelational() {\n const retVal = await MessageBoxHelper.ShowDialog(new TranslateFormatText('@@Bisherige Einstellungen gehen verloren. Wollen Sie trotzdem ändern?'),\n new TranslateFormatText('@@Frage'), MessageBoxButtons.YesNoAbort, MessageBoxIcon.Question);\n if (retVal === MessageBoxResult.Yes) {\n return true;\n }\n else return false;\n }\n\n OnShowContainerSelect(ev) {\n this.InitArgsQuery = ev;\n this.showContainerSelect = true;\n }\n\n CloseSelectDialogClicked() {\n this.InitArgsQuery = null;\n this.showContainerSelect = false;\n }\n\n Test() {\n this.showPreview = !this.showPreview;\n }\n\n onContentChanged() {\n this.ContentChanged.emit(this.DataValue);\n }\n}\n","import { Component } from '@angular/core';\nimport { deserialize, serialize } from 'class-transformer';\nimport { DatadescriptionData } from '../../../models/datadescription/datadescriptiondata.model';\nimport { DataDescription } from '../../../models/datadescription/multi/datadescription.model';\nimport { DataDescriptionRelational } from '../../../models/datadescription/relational/datadescriptionrelational.model';\nimport { ObjectcreatorDataManager } from '../../objectcreator/helper/objectcreator.datamanager';\n\n@Component({\n selector: 'datadescription-edit-dialog',\n templateUrl: 'datadescription.edit.dialog.html',\n styleUrls: ['./datadescription.edit.dialog.css']\n})\nexport class DatadescriptionEditDialog {\n\n Data: DatadescriptionData = new DatadescriptionData();\n CloseOnCustomButton: boolean = true;\n CustomButtons = [{\n Caption: '@@Speichern'\n }];\n TemplatesLoaded = false;\n\n Initialize(args) {\n if (args) {\n if (args.Data) {\n const json = serialize(args.Data);\n this.Data = deserialize(DatadescriptionData, json);\n if (args.Data.IsRelational !== undefined) {\n this.Data.IsRelationalValue = args.Data.IsRelational;\n }\n if (args.Data.Datadescription) {\n const ddjson = serialize(args.Data.Datadescription);\n if (this.Data.IsRelationalValue) {\n this.Data.Datadescription = deserialize(DataDescriptionRelational, ddjson);\n } else {\n this.Data.Datadescription = deserialize(DataDescription, ddjson);\n }\n }\n }\n }\n }\n\n GetDialogResult() {\n ObjectcreatorDataManager.DialogClosing.next();\n return this.Data;\n }\n}\n","import { OnInit, Component, Inject, ComponentFactoryResolver, Output, Input, EventEmitter, ChangeDetectionStrategy } from \"@angular/core\";\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\nimport { DataService } from \"../../../services/data.service\";\n\n@Component({\n selector: 'definememberattributedialog',\n templateUrl: './definememberattribute.dialog.html',\n styleUrls: ['./definememberattribute.dialog.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class DefineMemberAttributeDialog implements OnInit {\n\n Data;\n Caption;\n //#region Dimensions\n DimensionsValue;\n\n @Input()\n get Dimensions() {\n return this.DimensionsValue;\n }\n set Dimensions(val) {\n this.DimensionsValue = val;\n this.DimensionsChange.emit(this.DimensionsValue);\n }\n\n @Output() DimensionsChange = new EventEmitter();\n //#endregion\n\n constructor(private dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private factoryResolver: ComponentFactoryResolver, private dataService: DataService) {\n this.Data = data.Data;\n dialogRef.disableClose = true;\n }\n\n ngOnInit(): void {\n this.dataService.GetList(\"dynamic\", \"GetDimensions\").subscribe((data) => { this.Dimensions = data; });\n }\n\n onNoClick() {\n this.dialogRef.close();\n }\n\n save() {\n this.dialogRef.close(true);\n }\n}\n","import { Component, Inject, AfterViewInit, ViewChild, ViewContainerRef, ComponentFactoryResolver, OnDestroy, ChangeDetectionStrategy } from \"@angular/core\";\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\nimport { DialogResult } from \"../../../models/enums/dialogresult.enum\";\nimport { Action } from \"../../../models/ribbon/action.model\";\nimport { DEPLOYMENTACTIONS_REGISTRY } from \"../../../registries/actions/actions.registry\";\nimport { MetaService } from \"../../../services/meta.service\";\n\n@Component({\n selector: 'deployment-action-dialog',\n templateUrl: 'deploymentaction.dialog.html',\n styleUrls: ['./deploymentaction.dialog.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DeploymentActionDialog implements AfterViewInit, OnDestroy{\n\n @ViewChild('dynamic', { read: ViewContainerRef }) viewContainerRef: ViewContainerRef;\n\n CustomButtons = [];\n DeploymentAction;\n DialogData;\n Action;\n Subscription;\n Component;\n\n constructor(private dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private factoryResolver: ComponentFactoryResolver, private metaService: MetaService) {\n if (data && data.Data && data.Data.InitArgs && data.Data.InitArgs.Data && data.Data.InitArgs.Data.ActionType) {\n this.DialogData = data.Data;\n if (DEPLOYMENTACTIONS_REGISTRY.has(data.Data.InitArgs.Data.ActionType)) {\n this.DeploymentAction = data.Data.InitArgs.Data;\n this.Action = DEPLOYMENTACTIONS_REGISTRY.get(data.Data.InitArgs.Data.ActionType);\n this.CustomButtons = this.Action.Buttons;\n if (this.Action.Prepare) {\n this.Action.Prepare(data.Data.InitArgs.Data);\n }\n }\n }\n }\n\n ngOnDestroy(): void {\n if (this.Subscription) {\n this.Subscription.unsubscribe();\n }\n }\n \n ngAfterViewInit(): void {\n if (this.viewContainerRef) {\n this.viewContainerRef.clear();\n if (this.Action) {\n let type = null;\n if (this.Action.Control) {\n type = this.Action.Control;\n }\n if (type) {\n const factory = this.factoryResolver.resolveComponentFactory(type);\n const comp = factory.create(this.viewContainerRef.parentInjector);\n this.viewContainerRef.insert(comp.hostView);\n this.Component = comp.instance;\n if (this.Component) {\n if (this.Action.PreparationDone) {\n this.Subscription = this.Action.PreparationDone.subscribe((value) => {\n if (value) {\n this.Action.Properties.forEach((prop) => {\n this.Component[prop.Key] = prop.Value\n })\n }\n })\n } else {\n this.Action.Properties.forEach((prop) => {\n this.Component[prop.Key] = prop.Value\n })\n }\n this.Component.DialogHandle = this;\n }\n }\n if (this.Action.Layout) {\n //Layout holen\n }\n }\n }\n }\n\n OnCustomButtonClicked(button) {\n if (button) {\n if (button.Execute) {\n button.Execute();\n }\n if (button.CloseOnClick) {\n if (button.CloseStatus == DialogResult.Ok) {\n this.DeploymentAction.Completed = true;\n this.metaService.AddOrUpdateDeploymentAction(this.DeploymentAction).subscribe(() => {\n if (this.DialogData.Handler) {\n this.DialogData.Handler(button.CloseStatus);\n }\n this.dialogRef.close(button.CloseStatus);\n });\n } else {\n if (this.DialogData.Handler) {\n this.DialogData.Handler(button.CloseStatus);\n }\n this.dialogRef.close(button.CloseStatus);\n }\n }\n }\n }\n}","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { DialogButton } from '../../../models/enums/dialogbutton.enum';\nimport { ABaseTreeNode } from '../../common/basetreecontrol/base.tree.control';\nimport { BaseDialog} from '../basedialog/base.dialog';\n\n@Component({\n selector: 'event-tree-dialog',\n templateUrl: 'event.tree.dialog.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EventTreeDialog {\n RootNodes = [];\n\n static ShowDialog(layout) {\n BaseDialog.ShowDialog({\n ContentType: EventTreeDialog,\n InitArgs: { Layout: layout },\n Title: '@@Event-Uebersicht',\n Buttons: DialogButton.Ok\n });\n }\n\n private static Sort(a, b) {\n const captionA = a.Caption.toLowerCase();\n const captionB = b.Caption.toLowerCase();\n if (captionA < captionB) {\n return -1;\n }\n if (captionA > captionB) {\n return 1;\n }\n return 0;\n }\n\n private static GetEvents(elem, data) {\n if (elem.Events) {\n elem.Events.forEach(x => {\n if (x.Handlers && x.Handlers.length > 0) {\n let list = data[x.EventID];\n if (!list) {\n list = [];\n data[x.EventID] = list;\n }\n list.push(elem.Name);\n }\n });\n }\n if (elem.Elements) {\n elem.Elements.forEach(x => {\n EventTreeDialog.GetEvents(x, data);\n });\n }\n }\n\n Initialize(args) {\n if (args && args.Layout) {\n const data = {};\n EventTreeDialog.GetEvents(args.Layout, data);\n const keys = Object.keys(data);\n const rootNodes = [];\n let id = 0;\n keys.forEach(k => {\n const node = new ABaseTreeNode(id++);\n node.Caption = k;\n node.HasChildren = true;\n node.Children = [];\n node.IsExpanded = true;\n data[k].forEach(ev => {\n const child = new ABaseTreeNode(id++);\n child.Caption = ev;\n node.Children.push(child);\n });\n node.Children.sort(EventTreeDialog.Sort);\n rootNodes.push(node);\n });\n rootNodes.sort(EventTreeDialog.Sort);\n this.RootNodes = rootNodes;\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { DialogButton } from '../../../models/enums/dialogbutton.enum';\nimport { BaseDialog } from '../basedialog/base.dialog';\n\n@Component({\n selector: 'layout.edit.dialog',\n templateUrl: './layout.edit.dialog.html'\n})\nexport class LayoutEditDialog {\n DoEdit = false;\n\n static ShowDialog(handler) {\n BaseDialog.ShowDialog({\n ContentType: LayoutEditDialog,\n Buttons: DialogButton.Ok,\n AutoFocus: false,\n Handler: (r) => {\n handler(r);\n return true;\n },\n Title: '@@EditLayout'\n });\n }\n\n GetDialogResult() {\n return this.DoEdit;\n }\n}\n","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\nimport { MatDialogConfig, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { TranslateFormatText } from '../../../helpers/array.helpers';\nimport { DialogHelper } from '../../../helpers/injector.helper';\nimport { MessageBoxButtons } from '../../../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../../../models/enums/messageboxicon.enum';\nimport { MessageBoxResult } from '../../../models/enums/messageboxresult.enum';\nimport { RTLHelper } from '../../../helpers/rtl.helper';\n\n@Component({\n selector: 'messagebox',\n templateUrl: 'messagebox.dialog.html',\n styleUrls: ['./messagebox.dialog.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MessageBox {\n\n DialogData;\n\n constructor(dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) {\n this.DialogData = data.Data;\n dialogRef.disableClose = data.Data && data.Data.Buttons !== MessageBoxButtons.None;\n }\n}\n\nexport class MessageBoxHelper {\n static async ShowDialog(message: TranslateFormatText, title?: TranslateFormatText, buttons?: MessageBoxButtons, icon?: MessageBoxIcon,\n width?: number, height?: number, customButtons?: MessageBoxCustomButton[]): Promise {\n const config = new MatDialogConfig();\n if (!title) {\n title = new TranslateFormatText('evidanza MaC');\n }\n config.data = {\n Data: {\n Message: message,\n Title: title,\n Buttons: (typeof buttons === 'number') ? buttons : MessageBoxButtons.OkCancel,\n Icon: icon || MessageBoxIcon.None,\n CustomButtons: customButtons || []\n }\n };\n if (typeof width === 'number') {\n config.width = width + 'px';\n } else {\n config.width = '400px';\n }\n if (typeof height === 'number') {\n config.height = height + 'px';\n }\n config.maxWidth = '80vw';\n config.maxHeight = '80vh';\n config.direction = RTLHelper.Direction == 'rtl' ? 'rtl' : 'ltr';\n const dialogRef = DialogHelper.DialogInstance.open(MessageBox, config);\n const retVal = await dialogRef.afterClosed().toPromise();\n return retVal;\n }\n}\n\nexport interface MessageBoxCustomButton {\n Caption: string;\n ID: number;\n}\n\n","import { ChangeDetectionStrategy, Component } from \"@angular/core\";\nimport { DiffEditorModel } from 'ngx-monaco-editor';\nimport { ThemeHelper } from '../../../helpers/theme.helpers';\nimport { DialogButton } from \"../../../models/enums/dialogbutton.enum\";\nimport { BaseDialog } from \"../basedialog/base.dialog\";\n\n@Component({\n selector: 'monaco-preview-dialog',\n templateUrl: './monaco.preview.dialog.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MonacoPreviewDialog {\n Document: DiffEditorModel = null;\n Original: DiffEditorModel = null;\n NoResult = false;\n\n editorOptions = {\n theme: 'vs-dark',\n readOnly: true\n };\n\n constructor() {\n }\n Initialize(args) {\n if (args) {\n if (args.Document && args.Original) {\n this.Document = {\n code: args.Document,\n language: 'json'\n };\n this.Original = {\n code: args.Original,\n language: 'json'\n };\n this.NoResult = false;\n } else {\n if (args.Document) {\n this.Document = args.Document;\n } else {\n this.NoResult = true;\n }\n }\n }\n\n if (ThemeHelper.AcitveTheme) {\n if (ThemeHelper.AcitveTheme.IsDarkTheme) {\n this.editorOptions.theme = 'vs-dark';\n } else {\n delete this.editorOptions.theme;\n }\n }\n }\n\n static ShowDialog(initArgs, title) {\n BaseDialog.ShowDialog({\n ContentType: MonacoPreviewDialog,\n InitArgs: initArgs,\n Title: title,\n Buttons: DialogButton.Ok,\n HeightText: '100vh',\n WidthText: '100vw'\n });\n }\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from '@angular/core';\nimport { serialize } from 'class-transformer';\nimport { DialogButton } from '../../../models/enums/dialogbutton.enum';\nimport { RequestOptions } from '../../../models/rest/requestoptions';\nimport { SelfServiceObjectService } from '../../../services/datamodel.service';\nimport { BaseDialog } from '../basedialog/base.dialog';\n\n@Component({\n selector: 'object-preview-dialog',\n templateUrl: './object.preview.dialog.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ObjectPreviewDialog {\n Result = '';\n Loading = true;\n editorOptions = {\n language: 'json',\n readOnly: true,\n scrollBeyondLastLine: false\n };\n\n static ShowDialog(initArgs, title) {\n BaseDialog.ShowDialog({\n ContentType: ObjectPreviewDialog,\n InitArgs: initArgs,\n Title: title,\n Buttons: DialogButton.Ok,\n HeightText: '100vh',\n WidthText: '100vw'\n });\n }\n\n static ShowContainerPreview(containerID, title) {\n ObjectPreviewDialog.ShowDialog({\n UseTable: true,\n ContainerTable: containerID\n }, title);\n }\n\n constructor(private preview: SelfServiceObjectService, private cdRef: ChangeDetectorRef) {\n }\n\n Initialize(args) {\n if (args) {\n if (args.UseTable) {\n let clone;\n if (args.Filter) {\n clone = JSON.parse(JSON.stringify(args.Filter));\n } else {\n clone = new RequestOptions();\n }\n clone.Top = 100;\n this.preview.ExecuteObjectQuery(args.ContainerTable, clone).subscribe((result) => {\n if (result && result.length > 0) {\n const list = [];\n result.forEach(r => {\n list.push(JSON.stringify(r, null, 4));\n });\n this.Result = list.join('\\n\\n\\t----------\\n\\n');\n }\n this.Loading = false;\n this.cdRef.detectChanges();\n });\n } else {\n if (args.Settings) {\n if (args.Settings.Fields) {\n const fieldList = [];\n args.Settings.Fields.forEach((field) => {\n const parsed = JSON.parse(field);\n fieldList.push(parsed);\n });\n args.Settings.Fields = fieldList;\n }\n if (!args.Settings.Name) {\n args.Settings.Name = '';\n }\n if (!args.Settings.Methodtype) {\n args.Settings.Methodtype = 0;\n }\n }\n this.preview.GetObjectPreview(args.DataSource, serialize(args.Settings)).subscribe((result) => {\n if (result) {\n const list = [];\n result.forEach(r => {\n list.push(JSON.stringify(r, null, 4));\n });\n this.Result = list.join(',\\n');\n }\n this.Loading = false;\n this.cdRef.detectChanges();\n });\n }\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { BaseDialog } from './basedialog/base.dialog';\n\n@Component({\n selector: 'app-relation-overview-dialog',\n templateUrl: './relation.overview.dialog.html',\n styleUrls: ['./relation.overview.dialog.css']\n})\nexport class RelationOverviewDialogComponent {\n\n InitArgs;\n\n static showDialog(container, relations, dataModel, handler) {\n BaseDialog.ShowDialog({\n ContentType: RelationOverviewDialogComponent,\n Title: 'Container',\n InitArgs: {\n Container: container,\n Relations: relations,\n DataModelID: dataModel\n },\n Handler: r => {\n if (r && handler) {\n handler(r);\n }\n return true;\n },\n HeightText: '100vh',\n WidthText: '100vw'\n });\n }\n\n Initialize(args) {\n if (args && args.Container && args.Relations) {\n this.InitArgs = {\n Container: args.Container.slice(),\n Relations: args.Relations.slice(),\n DataModelID: args.DataModelID\n };\n }\n }\n\n GetDialogResult() {\n return this.InitArgs;\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'reqeustname-dialog',\n templateUrl: './reqeustname.dialog.html',\n styleUrls: ['./reqeustname.dialog.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RequestNameDialog implements OnInit {\n Text = null;\n Placeholder = null;\n HasChanges = false;\n CustomButtons = [{\n Caption: '@@Speichern',\n ID: 0\n }, {\n Caption: '@@Abbrechen',\n ID: 1\n }];\n CloseOnCustomButton = true;\n result = null;\n constructor(private cdRef: ChangeDetectorRef) {\n }\n\n ngOnInit(): void { }\n\n Initialize(data) {\n if (data) {\n if (data.Text) {\n this.Text = data.Text;\n }\n if (data.Placeholder) {\n this.Placeholder = data.Placeholder;\n }\n }\n }\n\n GetDialogResult() {\n return this.result;\n }\n\n OnCustomButtonClicked(button) {\n if (button && button.ID === 0) {\n this.result = this.Text;\n } else {\n this.result = null;\n }\n return this.result;\n }\n}\n","import { OnInit, Component, Inject, ChangeDetectionStrategy } from \"@angular/core\";\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig } from \"@angular/material/dialog\";\nimport { DialogHelper } from \"../../../helpers/injector.helper\";\nimport { TranslateFormatText } from \"../../../helpers/array.helpers\";\n\n@Component({\n selector: 'template-dialog',\n templateUrl: 'template.dialog.html',\n styleUrls: ['./template.dialog.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TemplateDialog implements OnInit {\n\n DialogData;\n\n constructor(private dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) {\n this.DialogData = data;\n dialogRef.disableClose = true;\n }\n\n ngOnInit(): void {\n }\n close() {\n this.dialogRef.close();\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\n\n\n@Component({\n selector: 'app-tourguide.dialog',\n templateUrl: './tourguide.dialog.component.html',\n styleUrls: ['./tourguide.dialog.component.css']\n})\nexport class TourguideDialog {\n\n constructor(\n public ref: DynamicDialogRef,\n public config: DynamicDialogConfig\n ) {\nconsole.log(config);\n\n }\n\n close(): void {\n this.ref.close();\n }\n \n}\n\n","import { Component } from '@angular/core';\nimport { BaseDialog } from './basedialog/base.dialog';\n\n@Component({\n selector: 'translatedstring-dialog',\n templateUrl: './translatedstring.dialog.html'\n})\nexport class TranslatedStringDialogComponent {\n\n InitArgs;\n\n static showDialog(translatedString, handler) {\n BaseDialog.ShowDialog({\n ContentType: TranslatedStringDialogComponent,\n Title: 'Umbenennen',\n InitArgs: {\n TranslatedString: translatedString\n },\n Handler: r => {\n if (r && handler) {\n handler(r);\n }\n return true;\n }\n });\n }\n\n Initialize(args) {\n if (args && args.TranslatedString ) {\n this.InitArgs = {\n TranslatedString: args.TranslatedString\n };\n }\n }\n\n GetDialogResult() {\n return this.InitArgs;\n }\n}\n","import { OnInit, Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\nimport { StandardRequestBase } from '../../../services/request-base';\n\n@Component({\n selector: 'translation-control',\n templateUrl: './translation.control.html',\n styleUrls:['./translation.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TranslationControl implements OnInit {\n\n Languages = [];\n\n //#region TranslationEntry\n TranslationEntryValue;\n @Input()\n get TranslationEntry() {\n return this.TranslationEntryValue;\n }\n set TranslationEntry(val) {\n this.TranslationEntryValue = val;\n this.checkValues();\n this.TranslationEntryChange.emit(this.TranslationEntryValue);\n }\n @Output() TranslationEntryChange = new EventEmitter();\n //#endregion\n\n //#region DisableKey\n DisableKeyValue = true;\n @Input()\n get DisableKey() {\n return this.DisableKeyValue;\n }\n set DisableKey(val) {\n this.DisableKeyValue = val;\n this.DisableKeyChange.emit(this.DisableKeyValue);\n }\n @Output() DisableKeyChange = new EventEmitter();\n //#endregion\n\n @Output() TranslationChanged = new EventEmitter();\n\n constructor(private service: StandardRequestBase, private cdRef: ChangeDetectorRef) {\n }\n\n ngOnInit(): void {\n this.service.executeGet('config/api/config', 'GetSelectedLanguages').subscribe(languages => {\n if (languages) {\n const list = [];\n languages.forEach(x => {\n list.push({\n Caption: x.Caption,\n LCID: x.LCID,\n Value: ''\n });\n });\n this.Languages = list;\n this.checkValues();\n }\n });\n }\n\n checkValues() {\n const te = this.TranslationEntryValue;\n if (te && te.Translations) {\n this.Languages.forEach(lang => {\n const trans = te.Translations.find(x => x.LCID === lang.LCID);\n if (trans) {\n lang.Value = trans.Value;\n } else {\n lang.Value = '';\n }\n });\n } else {\n this.Languages.forEach(x => { x.Value = ''; });\n }\n this.cdRef.detectChanges();\n }\n\n languageChanged(lang) {\n const te = this.TranslationEntryValue;\n if (te) {\n if (te.Translations) {\n const trans = te.Translations.find(x => x.LCID === lang.LCID);\n if (trans) {\n trans.Value = lang.Value;\n trans.Changed = true;\n } else {\n te.Translations.push({ LCID: lang.LCID, Value: lang.Value, Changed: true });\n }\n } else {\n te.Translations = [{ LCID: lang.LCID, Value: lang.Value, Changed: true }];\n }\n this.onTranslationChanged();\n }\n }\n\n onTranslationChanged() {\n this.TranslationChanged.emit();\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { DialogButton } from '../../../models/enums/dialogbutton.enum';\nimport { TranslationService } from '../../../services/translation.service';\nimport { BaseDialog } from '../basedialog/base.dialog';\n\n@Component({\n selector: 'translation-dialog',\n templateUrl: './translation.dialog.html',\n styleUrls: ['./translation.dialog.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TranslationDialog implements OnInit {\n\n HasChanges = false;\n CustomButtons = [{\n Caption: '@@Speichern',\n ID: 0\n }, {\n Caption: '@@Abbrechen',\n ID: 1\n }];\n CloseOnCustomButton = true;\n Key;\n TranslationEntry;\n Loading = true;\n\n public static ShowDialog(key: string) {\n if (key) {\n BaseDialog.ShowDialog({\n ContentType: TranslationDialog,\n InitArgs: { Key: key },\n Title: '@@Uebersetzung pflegen',\n Buttons: DialogButton.None\n });\n }\n }\n\n constructor(private service: TranslationService, private cdRef: ChangeDetectorRef) {\n }\n\n ngOnInit(): void {\n if (this.Key) {\n this.service.GetTranslationsForKey(this.Key).subscribe(result => {\n this.TranslationEntry = result;\n this.Loading = false;\n this.cdRef.detectChanges();\n });\n } else {\n this.Loading = false;\n this.cdRef.detectChanges();\n }\n }\n\n Initialize(data) {\n if (data && data.Key) {\n this.Key = data.Key;\n }\n }\n\n OnCustomButtonClicked(button) {\n if (button && button.ID === 0) {\n if (this.HasChanges && this.TranslationEntry) {\n this.HasChanges = false;\n const saveVal = {\n Key: this.TranslationEntry.Key,\n CapsuleTag: this.TranslationEntry.CapsuleTag,\n Translations: []\n };\n if (this.TranslationEntry.Translations) {\n this.TranslationEntry.Translations.forEach(x => {\n if (x.Changed === true) {\n saveVal.Translations.push({\n LCID: x.LCID,\n Value: x.Value\n });\n }\n delete x.Changed;\n });\n }\n this.service.SaveTranslationForKey(saveVal).subscribe();\n }\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { BaseDialog } from '../basedialog/base.dialog';\nimport { WebHookService } from '../../../services/webhook.service';\nimport { NotificationHelper } from '../../../helpers/notification.helper';\nimport { DialogButton } from '../../../models/enums/dialogbutton.enum';\n\n@Component({\n selector: 'webhook-dialog',\n templateUrl: './webhook.dialog.html',\n styleUrls: ['./webhook.dialog.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WebHookDialog implements OnInit {\n\n result;\n _Name = \"\";\n @Input()\n get Name() {\n\n return this._Name;\n }\n set Name(val) {\n this._Name = val;\n }\n\n HasChanges = false;\n CustomButtons = [{\n Caption: '@@Speichern',\n ID: 0\n }, {\n Caption: '@@Abbrechen',\n ID: 1\n }];\n CloseOnCustomButton = true;\n Loading = true;\n\n public static ShowDialog(handler) {\n BaseDialog.ShowDialog({\n ContentType: WebHookDialog,\n InitArgs: null,\n Title: '@@Neuer Webhook anlegen',\n Buttons: DialogButton.None,\n Handler: handler\n });\n\n\n }\n\n\n GetDialogResult() {\n\n return this.result;\n }\n\n\n constructor(private service: WebHookService) {\n }\n\n ngOnInit(): void {\n }\n\n Initialize(data) {\n\n }\n\n\n async OnCustomButtonClicked(button) {\n this.result = null;\n if (button && button.ID === 0) {\n if (this.Name !== \"\") {\n const retVal = await this.service.SaveNew(this._Name).toPromise();\n if (retVal) {\n\n this.result = {};\n this.result['Key'] = retVal.AdditionalInfos[0];\n this.result['Name'] = retVal.Caption;\n this.result['SID'] = retVal.SID;\n\n\n NotificationHelper.Success('@@Webhookkey:' + this.result['Key'], '@@Webhooksetting has been successfully saved');\n }\n }\n }\n }\n\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { DialogButton } from '../../../models/enums/dialogbutton.enum';\nimport { MessageBoxResult } from '../../../models/enums/messageboxresult.enum';\nimport { MultiLayoutWorkflowChangeValue } from '../../../models/layout/layout.change.model';\nimport { LayoutService } from '../../../services/layout.service';\nimport { WF_REGISTRY } from '../../../services/workflow.service';\nimport { BaseDialog, DialogData } from '../basedialog/base.dialog';\n\nexport class WorkflowChangeDialogInitArgs {\n Info: string;\n WorkflowList: string[] = [];\n Question: string;\n ShowAbort: boolean;\n}\n\n@Component({\n selector: 'workflow-name-change-dialog',\n templateUrl: './workflow.name.change.dialog.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WorkflowNameChangeDialog {\n InitArgs: WorkflowChangeDialogInitArgs;\n CloseOnCustomButton = true;\n CustomButtons = [\n { Caption: '@@Ja', ID: MessageBoxResult.Yes },\n { Caption: '@@Nein', ID: MessageBoxResult.No }\n ];\n Result = MessageBoxResult.Abort;\n\n static CheckWorkflowChange(layout, oldName, newName): Promise {\n const retVal = new Promise((resolve, reject) => {\n if (layout && layout.Workflows && oldName !== newName) {\n const changedWorkflows = [];\n layout.Workflows.forEach(wf => {\n if (wf.Data && wf.Data.Modules) {\n const changedModules = [];\n wf.Data.Modules.forEach(mod => {\n if (mod.Module && mod.Settings) {\n const desc = WF_REGISTRY.get(mod.Module);\n if (desc && desc.SettingsTypeHelper) {\n const copy = JSON.parse(JSON.stringify(mod.Settings));\n const changed = desc.SettingsTypeHelper.changeSettingsOnElementNameChange(copy, oldName, newName);\n if (changed) {\n changedModules.push({\n Module: mod,\n ChangedSettings: copy\n });\n }\n }\n }\n });\n if (changedModules.length > 0) {\n changedWorkflows.push({\n Workflow: wf,\n ChangedModules: changedModules\n });\n }\n }\n });\n if (changedWorkflows.length > 0) {\n const initArgs = new WorkflowChangeDialogInitArgs();\n initArgs.Info = '@@Folgende Workflows sind von der Namensaenderung betroffen:';\n initArgs.Question = '@@Workflows abaendern?';\n changedWorkflows.forEach(x => {\n initArgs.WorkflowList.push(x.Workflow.Caption);\n });\n initArgs.ShowAbort = true;\n const args: DialogData = {\n ContentType: WorkflowNameChangeDialog,\n InitArgs: initArgs,\n Buttons: DialogButton.None,\n Handler: (r) => {\n if (r === MessageBoxResult.Yes) {\n const mlwcv = new MultiLayoutWorkflowChangeValue();\n mlwcv.LayoutID = layout.ID;\n changedWorkflows.forEach(wf => {\n wf.ChangedModules.forEach(mod => {\n if (mod.ChangedSettings) {\n mod.Module.Settings = mod.ChangedSettings;\n }\n });\n mlwcv.Workflows.push(JSON.stringify(wf.Workflow));\n });\n LayoutService.OnLayoutWorkflowsChanged(mlwcv);\n }\n resolve(r);\n return true;\n },\n Title: '@@Workflows abaendern?'\n };\n BaseDialog.ShowDialog(args);\n return;\n }\n }\n resolve(MessageBoxResult.Yes);\n });\n return retVal;\n }\n\n private static ReadLayoutStructure(layoutElement, parents, structure, templatePath) {\n const elemName = templatePath + layoutElement.Name;\n const structEntry = {\n Parents: parents,\n Variables: []\n };\n structure[elemName] = structEntry;\n if (layoutElement.Variables) {\n layoutElement.Variables.forEach(v => {\n structEntry.Variables.push(v.Name);\n });\n }\n if (layoutElement.Elements) {\n const newParents = [...parents, elemName];\n if (layoutElement.ElementType === 'template') {\n templatePath += layoutElement.Name + '.';\n }\n layoutElement.Elements.forEach(child => {\n WorkflowNameChangeDialog.ReadLayoutStructure(child, newParents, structure, templatePath);\n });\n }\n }\n\n private static FindParentVariable(layoutStructure, elemName, parentName, oldName): boolean {\n if (!layoutStructure.Structure) {\n layoutStructure.Structure = {};\n WorkflowNameChangeDialog.ReadLayoutStructure(layoutStructure.Layout, [], layoutStructure.Structure, '');\n }\n const elemStruct = layoutStructure.Structure[elemName];\n return elemStruct && elemStruct.Parents.some(x => {\n if (x === parentName) {\n const parentStuct = layoutStructure.Structure[x];\n return parentStuct && parentStuct.Variables.some(v => v === oldName);\n }\n return false;\n });\n }\n\n private static GetVariableChangeWorkflows(layout, elemName, oldName, newName) {\n const changedWorkflows = [];\n const lS = {\n Layout: layout\n };\n layout.Workflows.forEach(wf => {\n if (wf.Data && wf.Data.Modules) {\n const changedModules = [];\n wf.Data.Modules.forEach(mod => {\n if (mod.Settings) {\n if (mod.Module === 'readLayoutVariableModule') {\n if (mod.Settings.Variable && mod.Settings.Variable.Name === oldName) {\n if (mod.Settings.ElemName === elemName ||\n WorkflowNameChangeDialog.FindParentVariable(lS, mod.Settings.ElemName, elemName, oldName)) {\n const copy = JSON.parse(JSON.stringify(mod.Settings));\n copy.Variable.Name = newName;\n changedModules.push({\n Module: mod,\n ChangedSettings: copy\n });\n }\n }\n } else if (mod.Module === 'readMultiLayoutVariableModule') {\n if (mod.Settings.Variables && mod.Settings.Variables.length > 0) {\n const copy = JSON.parse(JSON.stringify(mod.Settings));\n let change = false;\n copy.Variables.forEach(v => {\n if (v.Variable === oldName) {\n if (v.ElemName === elemName ||\n WorkflowNameChangeDialog.FindParentVariable(lS, v.ElemName, elemName, oldName)) {\n v.Variable = newName;\n change = true;\n }\n }\n });\n if (change) {\n changedModules.push({\n Module: mod,\n ChangedSettings: copy\n });\n }\n }\n } else if (mod.Module === 'setLayoutVariableModule') {\n if (mod.Settings.Variables && mod.Settings.Variables.length > 0) {\n const copy = JSON.parse(JSON.stringify(mod.Settings));\n let change = false;\n let nameCorrect = false;\n copy.Variables.some(v => {\n if (v.Name === oldName) {\n if (!nameCorrect) {\n nameCorrect = copy.ElemName === elemName ||\n WorkflowNameChangeDialog.FindParentVariable(lS, copy.ElemName, elemName, oldName);\n if (!nameCorrect) {\n return true;\n }\n }\n v.Name = newName;\n change = true;\n }\n return false;\n });\n if (change) {\n changedModules.push({\n Module: mod,\n ChangedSettings: copy\n });\n }\n }\n } else if (mod.Module === 'setMultiLayoutVariableModule') {\n if (mod.Settings.Elements && mod.Settings.Elements.length > 0) {\n const copy = JSON.parse(JSON.stringify(mod.Settings));\n let change = false;\n copy.Elements.forEach(x => {\n let nameCorrect = false;\n x.Variables.some(v => {\n if (v.Name === oldName) {\n if (!nameCorrect) {\n nameCorrect = x.ElemName === elemName ||\n WorkflowNameChangeDialog.FindParentVariable(lS, x.ElemName, elemName, oldName);\n if (!nameCorrect) {\n return true;\n }\n }\n v.Name = newName;\n change = true;\n }\n return false;\n });\n });\n if (change) {\n changedModules.push({\n Module: mod,\n ChangedSettings: copy\n });\n }\n }\n }\n }\n });\n if (changedModules.length > 0) {\n changedWorkflows.push({\n Workflow: wf,\n ChangedModules: changedModules\n });\n }\n }\n });\n return changedWorkflows;\n }\n\n static CheckWorkflowChangeVariable(layout, elemName, oldName, newName): Promise {\n const retVal = new Promise((resolve, reject) => {\n if (layout && layout.Workflows && oldName !== newName) {\n const changedWorkflows = WorkflowNameChangeDialog.GetVariableChangeWorkflows(layout, elemName, oldName, newName);\n if (changedWorkflows.length > 0) {\n const initArgs = new WorkflowChangeDialogInitArgs();\n initArgs.Info = '@@Folgende Workflows sind von der Namensaenderung betroffen:';\n initArgs.Question = '@@Workflows abaendern?';\n changedWorkflows.forEach(x => {\n initArgs.WorkflowList.push(x.Workflow.Caption);\n });\n initArgs.ShowAbort = true;\n const args: DialogData = {\n ContentType: WorkflowNameChangeDialog,\n InitArgs: initArgs,\n Buttons: DialogButton.None,\n Handler: (r) => {\n if (r === MessageBoxResult.Yes) {\n const mlwcv = new MultiLayoutWorkflowChangeValue();\n mlwcv.LayoutID = layout.ID;\n changedWorkflows.forEach(wf => {\n wf.ChangedModules.forEach(mod => {\n if (mod.ChangedSettings) {\n mod.Module.Settings = mod.ChangedSettings;\n }\n });\n mlwcv.Workflows.push(JSON.stringify(wf.Workflow));\n });\n LayoutService.OnLayoutWorkflowsChanged(mlwcv);\n }\n resolve(r);\n return true;\n },\n Title: '@@Workflows abaendern?'\n };\n BaseDialog.ShowDialog(args);\n return;\n }\n }\n resolve(MessageBoxResult.Yes);\n });\n return retVal;\n }\n\n static CheckVariableDelete(layout, elemName, variableName): Promise {\n const retVal = new Promise((resolve, reject) => {\n if (layout && layout.Workflows) {\n const cw = WorkflowNameChangeDialog.GetVariableChangeWorkflows(layout, elemName, variableName, variableName);\n if (cw.length > 0) {\n const initArgs = new WorkflowChangeDialogInitArgs();\n initArgs.Info = '@@Folgende Workflows sind vom Loeschen der Variable betroffen:';\n initArgs.Question = '@@Variable trotzdem loeschen?';\n cw.forEach(x => {\n initArgs.WorkflowList.push(x.Workflow.Caption);\n });\n initArgs.ShowAbort = false;\n const args: DialogData = {\n ContentType: WorkflowNameChangeDialog,\n InitArgs: initArgs,\n Buttons: DialogButton.None,\n Handler: (r) => {\n resolve(r);\n return true;\n },\n Title: '@@Loeschen'\n };\n BaseDialog.ShowDialog(args);\n return;\n }\n }\n resolve(MessageBoxResult.Yes);\n });\n return retVal;\n }\n\n static CheckObjectDelete(layout, objectNames): Promise {\n const retVal = new Promise((resolve, reject) => {\n if (layout && layout.Workflows) {\n const changedWorkflows = [];\n layout.Workflows.forEach(wf => {\n if (wf.Data && wf.Data.Modules &&\n wf.Data.Modules.some(mod => {\n if (mod.Module && mod.Settings) {\n const desc = WF_REGISTRY.get(mod.Module);\n if (desc && desc.SettingsTypeHelper) {\n return objectNames.some(name =>\n desc.SettingsTypeHelper.changeSettingsOnElementNameChange(mod.Settings, name, name));\n }\n }\n return false;\n })) {\n changedWorkflows.push(wf.Caption);\n }\n });\n if (changedWorkflows.length > 0) {\n const initArgs = new WorkflowChangeDialogInitArgs();\n initArgs.Info = '@@Folgende Workflows sind vom Loeschen des Elements betroffen:';\n initArgs.Question = '@@Element trotzdem loeschen?';\n initArgs.WorkflowList = changedWorkflows;\n initArgs.ShowAbort = false;\n const args: DialogData = {\n ContentType: WorkflowNameChangeDialog,\n InitArgs: initArgs,\n Buttons: DialogButton.None,\n Handler: (r) => {\n resolve(r);\n return true;\n },\n Title: '@@Loeschen'\n };\n BaseDialog.ShowDialog(args);\n return;\n }\n }\n resolve(MessageBoxResult.Yes);\n });\n return retVal;\n }\n\n Initialize(args) {\n this.InitArgs = args;\n if (this.InitArgs && this.InitArgs.ShowAbort === true) {\n this.CustomButtons.push({ Caption: '@@Abbrechen', ID: MessageBoxResult.Abort });\n }\n }\n\n GetDialogResult() {\n return this.Result;\n }\n\n OnCustomButtonClicked(button) {\n if (button) {\n this.Result = button.ID;\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';\nimport { BaseDialog } from '../basedialog/base.dialog';\nimport { WorkflowService } from '../../../services/workflow.service';\nimport { WebsocketService } from '../../../services/websocket.service';\nimport { NotificationLevel } from '../../../models/enums/notificationlevel.enum';\nimport { interval } from 'rxjs';\nimport { DialogButton } from '../../../models/enums/dialogbutton.enum';\n\n// @dynamic\n@Component({\n selector: 'workflowdebug-dialog',\n templateUrl: './workflowdebug.dialog.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WorkflowDebugDialog implements OnInit {\n\n @ViewChild('editor') editor;\n\n HasChanges = false;\n CustomButtons = [{\n Caption: '@@Weiter',\n ID: 0\n }, {\n Caption: '@@Weiter bis Breakpoint',\n ID: 1\n }, {\n Caption: '@@Debug abbrechen',\n ID: 2\n }, {\n Caption: '@@Abbrechen',\n ID: 3\n }];\n CloseOnCustomButton = false;\n WorkflowStatus;\n Loading = true;\n editorOptions = {\n language: 'json'\n };\n Channel: string;\n DebugAliveSub;\n\n public static ShowDialog(channel: string) {\n return new Promise((resolve, reject) => {\n if (channel) {\n BaseDialog.ShowDialog({\n ContentType: WorkflowDebugDialog,\n InitArgs: { channel: channel, },\n Title: '@@Workflow debuggen',\n Buttons: DialogButton.None,\n HeightText: '100vh',\n WidthText: '100vw',\n Handler: (val) => {\n resolve(val);\n }\n });\n }\n });\n }\n\n constructor(private wfService: WorkflowService, private cdRef: ChangeDetectorRef) {\n }\n\n ngOnInit(): void {\n this.Loading = false;\n }\n\n Initialize(initargs) {\n if (initargs.channel) {\n this.Channel = initargs.channel;\n WebsocketService.WaitForWebSocketService().then(() => {\n this.DebugAliveSub = interval(5000).subscribe((val) => {\n this.wfService.DebugIsAlive(initargs.channel).subscribe();\n });\n const subScription = WebsocketService.MessageReceived.subscribe((response) => {\n const parsed = JSON.parse(response);\n if (parsed.Level === NotificationLevel.System &&\n parsed.Type === 'evidanza.App.Shared.Workflow.Data.WorkflowStatusInfoObject') {\n this.WorkflowStatus = parsed.Content;\n this.cdRef.detectChanges();\n if (this.editor?._editor) {\n setTimeout(() => { this.editor._editor.getAction('editor.action.formatDocument').run(); }, 300);\n }\n if (this.WorkflowStatus.Unsubscribe === true) {\n if (this.DebugAliveSub) {\n this.DebugAliveSub.unsubscribe();\n }\n subScription.unsubscribe();\n }\n }\n });\n });\n }\n }\n\n OnChanged(editor) {\n setTimeout(() => { editor.getAction('editor.action.formatDocument').run(); }, 300);\n }\n\n OnCustomButtonClicked(button) {\n if (button) {\n switch (button.ID) {\n case 0:\n this.wfService.NextWorkflowDebugStep(this.Channel, false).subscribe();\n break;\n case 1:\n this.wfService.NextWorkflowDebugStep(this.Channel, true).subscribe();\n break;\n case 2:\n this.wfService.CancelWorkflowDebug(this.Channel).subscribe();\n if (this.DebugAliveSub) {\n this.DebugAliveSub.unsubscribe();\n }\n break;\n case 3:\n this.wfService.CancelWorkflowDebug(this.Channel).subscribe();\n if (this.DebugAliveSub) {\n this.DebugAliveSub.unsubscribe();\n }\n if (this['BaseDialog']) {\n this['BaseDialog'].dialogRef.close(null);\n }\n break;\n }\n }\n }\n}\n","import { HttpEventType } from '@angular/common/http';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport ImageEditor from 'tui-image-editor';\nimport { CacheService } from '../../cache/cache.service';\nimport { TranslateFormatText } from '../../helpers/array.helpers';\nimport { MediaSource } from '../../models/datamodel/mediasource.model';\nimport { MessageBoxButtons } from '../../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../../models/enums/messageboxicon.enum';\nimport { MessageBoxResult } from '../../models/enums/messageboxresult.enum';\nimport { MediaService } from '../../services/media.service';\nimport { IOptions } from '../controls/imageeditor/imageeditor.models';\nimport { MessageBoxHelper } from '../dialogs/messagebox/messagebox.dialog';\n\n@Component({\n selector: 'evi-file-explorer',\n templateUrl: './fileexplorer.control.html',\n styleUrls: ['./fileexplorer.control.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FileExplorerControl implements OnInit {\n\n //#region MediaSource\n MediaSourceIDValue;\n SearchValue: string;\n @Input()\n get MediaSourceID() {\n return this.MediaSourceIDValue;\n }\n set MediaSourceID(val) {\n this.MediaSourceIDValue = val;\n this.MediaSourceIDChange.emit(this.MediaSourceIDValue);\n }\n\n @Output() MediaSourceIDChange = new EventEmitter();\n //#endregion\n\n //#region MediaSource\n SelectionValue;\n\n @Input()\n get Selection() {\n return this.SelectionValue;\n }\n set Selection(val) {\n this.SelectionValue = val;\n if (!val || (val && val.indexOf('.svg') > -1)) {\n this.Editable = false;\n } else {\n this.Editable = true;\n }\n this.SelectionChange.emit(this.SelectionValue);\n }\n\n @Output() SelectionChange = new EventEmitter();\n //#endregion\n\n @Output() FileUploaded = new EventEmitter();\n\n @Input()\n get FixedPath() {\n return this.Path;\n }\n set FixedPath(val) {\n if (Array.isArray(val)) {\n this.Path = val;\n this.HasFixedPath = true;\n } else {\n this.Path = ['./'];\n this.HasFixedPath = false;\n }\n }\n\n Items = [];\n originalItems=[];\n FolderName;\n Path = ['./'];\n HasFixedPath = false;\n MediaSource;\n FolderCreation = false;\n Uploading = false;\n UploadProgress = 0;\n Uploadindeterminate = false;\n UploadError = false;\n EditMode = false;\n Editable = true;\n EditorOptions: IOptions;\n Editor: ImageEditor;\n Loading = false;\n\n constructor(private mediaService: MediaService, private sanitizer: DomSanitizer, private iconRegistry: MatIconRegistry, private cdRef: ChangeDetectorRef) {\n }\n\n ngOnInit(): void {\n CacheService.ReadMediaSource(this.MediaSourceID).then((data) => {\n this.MediaSource = data;\n this.Refresh();\n });\n }\n\n //#region Folder\n CreateFolder() {\n this.mediaService.CreateFolder(this.MediaSourceID, this.createPath() + this.FolderName).subscribe((result) => { this.Refresh(); });\n this.FolderCreation = false;\n this.FolderName = null;\n }\n\n OpenFolderCreation() {\n this.FolderCreation = true;\n }\n CancelFolderCreation() {\n this.FolderCreation = false;\n }\n //#endregion\n ItemSelected(item) {\n this.Items.forEach((i) => {\n i.Selected = false;\n });\n if (item.IsDir) {\n this.FolderSelected(item);\n } else {\n item.Selected = true;\n\n this.EditorOptions = {\n includeUI: {\n loadImage: {\n path: 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7',\n name: 'Blank'\n }\n },\n cssMaxWidth: 1000, // Component default value: 1000\n cssMaxHeight: 800 // Component default value: 800\n };\n\n this.Selection = this.createPath() + item.Name;\n }\n }\n EditorLoaded(instance) {\n this.Editor = instance;\n const url = MediaSource.GetURL(this.MediaSource, this.Selection);\n this.Editor.loadImageFromURL(url, this.Selection).then(result => {\n this.Editor['ui'].resizeEditor({\n imageSize: {\n oldWidth: result.oldWidth,\n oldHeight: result.oldHeight,\n newWidth: result.newWidth,\n newHeight: result.newHeight\n }\n });\n }).catch(err => {\n console.error('Something went wrong:', err);\n });\n\n this.Editor.loadImageFromURL(url);\n }\n Edit() {\n this.EditMode = true;\n }\n CancelEdit() {\n this.EditMode = false;\n }\n\n convertDataUrlToBlob(dataUrl): Blob {\n const arr = dataUrl.split(',');\n const mime = arr[0].match(/:(.*?);/)[1];\n const bstr = atob(arr[1]);\n let n = bstr.length;\n const u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new Blob([u8arr], { type: mime });\n }\n\n AcceptEdit() {\n this.EditMode = false;\n const file = new File([this.convertDataUrlToBlob(this.Editor.toDataURL())], this.Selection);\n this.UploadChanged(file);\n }\n Delete() {\n if (this.Selection) {\n const text = new TranslateFormatText('@@Sind Sie sicher, dass Sie die Datei {0} loeschen moechten?');\n text.FormatParams.push(this.Selection);\n MessageBoxHelper.ShowDialog(text, new TranslateFormatText('@@Loeschen'),\n MessageBoxButtons.YesNo, MessageBoxIcon.Question).then(x => {\n if (x === MessageBoxResult.Yes) {\n this.mediaService.DeleteFile(this.MediaSourceID, this.SelectionValue).subscribe((result) => { this.Refresh(); });\n }\n });\n } else {\n const path = this.createPath();\n const text = new TranslateFormatText('@@Sind Sie sicher, dass Sie den Ordner {0} loeschen moechten?');\n text.FormatParams.push(path);\n MessageBoxHelper.ShowDialog(text, new TranslateFormatText('@@Loeschen'),\n MessageBoxButtons.YesNo, MessageBoxIcon.Question).then(x => {\n if (x === MessageBoxResult.Yes) {\n this.mediaService.DeleteFile(this.MediaSourceID, path).subscribe((result) => {\n this.Path = this.Path.slice(0, this.Path.length - 1);\n this.Refresh();\n });\n }\n });\n }\n }\n Upload(event) {\n this.UploadError = false;\n const uploadData = new FormData();\n const selectedFile = event.target.files[0];\n const path = this.createPath();\n uploadData.append(path + selectedFile.name, selectedFile, path + selectedFile.name);\n this.mediaService.UploadSpecific(this.MediaSourceID, uploadData).subscribe(e => {\n uploadData.forEach((value) => {\n switch (e.type) {\n case HttpEventType.Sent:\n this.Uploading = true;\n break;\n case HttpEventType.UploadProgress:\n this.UploadProgress = Math.round(100 * e.loaded / e.total);\n if (this.UploadProgress === 100) {\n this.Uploadindeterminate = true;\n this.Uploading = false;\n this.UploadProgress = 0;\n }\n break;\n case HttpEventType.Response:\n this.FileUploaded.emit(selectedFile.name);\n this.Refresh();\n break;\n default:\n this.UploadError = true;\n break;\n }\n });\n });\n }\n UploadChanged(file) {\n this.UploadError = false;\n const uploadData = new FormData();\n const path = this.createPath();\n uploadData.append(path + file.name, file, path + file.name);\n this.mediaService.UploadSpecific(this.MediaSourceID, uploadData).subscribe(event => {\n uploadData.forEach((value) => {\n switch (event.type) {\n case HttpEventType.Sent:\n this.Uploading = true;\n break;\n case HttpEventType.UploadProgress:\n this.UploadProgress = Math.round(100 * event.loaded / event.total);\n if (this.UploadProgress === 100) {\n this.Uploadindeterminate = true;\n this.Uploading = false;\n this.UploadProgress = 0;\n }\n break;\n case HttpEventType.Response:\n this.Refresh();\n break;\n default:\n this.UploadError = true;\n break;\n }\n });\n });\n }\n Refresh() {\n this.Loading = true;\n this.Uploadindeterminate = false;\n this.ResetSelection();\n const path = this.createPath();\n this.mediaService.ListObjects(this.MediaSourceID, path).subscribe((result) => {\n if (path && !this.HasFixedPath) {\n this.Items = [{ Name: '..', IsDir: true }];\n } else {\n this.Items = [];\n }\n if (result) {\n const msURL = MediaSource.GetURL(this.MediaSource);\n result.forEach((item) => {\n if (!item.IsDir && this.MediaSource.Private) {\n this.mediaService.LoadImage(this.MediaSource.SID, path + item.Name).subscribe((image) => {\n item.URL = image;\n this.cdRef.detectChanges();\n });\n } else {\n item.URL = msURL + '/' + path + item.Name + '?a=' + Math.random();\n }\n item.Type = item.Name.substring(item.Name.lastIndexOf('.') + 1).toLowerCase();\n item.IsImage = ['jpg', 'jpeg', 'bmp', 'png', 'gif', 'tiff', 'svg'].indexOf(item.Type) > -1; \n this.Items.push(item);\n });\n this.Items = this.Items.sort((x, y) => {\n return (x.IsDir === y.IsDir) ? 0 : x ? -1 : 1;\n });\n this.originalItems = [...this.Items];\n \n }\n this.Loading = false;\n this.cdRef.detectChanges();\n });\n }\n\n searchFilter()\n {\n if (this.SearchValue) {\n const toLower = this.SearchValue.toLowerCase();\n this.Items = this.Items.filter(x => x.Name.toLowerCase().indexOf(toLower) > -1);\n } else {\n this.Items = [...this.originalItems];\n }\n }\n\n FolderSelected(folder) {\n if (folder.Name === '..') {\n this.Path = this.Path.slice(0, this.Path.length - 1);\n } else {\n this.Path.push(folder.Name);\n }\n this.SearchValue=\"\";\n this.Refresh();\n }\n createPath() {\n let path = '';\n this.Path.forEach((folder) => {\n if (folder !== './') {\n path += folder;\n }\n });\n return path;\n }\n PathSelected(index) {\n this.Path = this.Path.slice(0, index + 1);\n this.Refresh();\n }\n ResetSelection() {\n this.Selection = null;\n }\n}\n","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'fileexplorer-dialog',\n templateUrl: 'fileexplorer.dialog.html',\n styleUrls: ['./fileexplorer.dialog.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FileExplorerDialog {\n MediaSourceID;\n Selection = null;\n ImageInstance;\n FixedPath;\n\n constructor(private dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) {\n if (data) {\n this.MediaSourceID = data.MediaSourceID;\n this.ImageInstance = data.ImageInstance;\n this.FixedPath = data.FixedPath;\n }\n }\n\n okClicked() {\n this.dialogRef.close(this.Selection);\n }\n\n cancelClicked() {\n this.dialogRef.close();\n }\n\n onFileUploaded(ev) {\n if (this.ImageInstance && typeof this.ImageInstance.onFileUploaded === 'function') {\n this.ImageInstance.onFileUploaded(ev);\n }\n }\n}\n","import {ChangeDetectorRef, Component, Inject, OnInit, Renderer2} from '@angular/core';\nimport {TemplateModel} from \"../../models/theme-template/template.model\";\nimport {AbstractControl, FormBuilder, FormGroup, Validators} from \"@angular/forms\";\nimport {MetaService} from \"../../services/meta.service\";\nimport {MatSnackBar} from \"@angular/material/snack-bar\";\nimport {MessageBoxHelper} from \"../dialogs/messagebox/messagebox.dialog\";\nimport {TranslateFormatText} from \"../../helpers/array.helpers\";\nimport {MessageBoxButtons} from \"../../models/enums/messageboxbuttons.enum\";\nimport {MessageBoxIcon} from \"../../models/enums/messageboxicon.enum\";\nimport {MessageBoxResult} from \"../../models/enums/messageboxresult.enum\";\nimport {NotificationHelper} from \"../../helpers/notification.helper\";\nimport {tap} from \"rxjs/operators\";\nimport {forkJoin, Observable} from \"rxjs\";\nimport {LayoutService} from \"../../services/layout.service\";\nimport {MobileConfigService} from \"../../services/mobile-config.service\";\nimport {DOCUMENT, PlatformLocation} from \"@angular/common\";\nimport { re } from 'mathjs';\n\n@Component({\n selector: 'lib-generate-mobile-app',\n templateUrl: './generate-mobile-app.component.html',\n styleUrls: ['./generate-mobile-app.component.css']\n})\nexport class GenerateMobileAppComponent implements OnInit {\n\n static GetSettingsEntry() {\n return {\n Caption: '@@Generate Mobile App',\n ID: 'generate-mobile-app',\n Icon: 'phonelink_setup',\n Index: 7,\n Parent: 'settings',\n Security: {\n Name: 'evidanza.App.Shared.Security.PageSettingsRight',\n Value: 2\n },\n Content: GenerateMobileAppComponent\n };\n }\n\n public files: any[] = [];\n public filesUrl: any[] = [];\n public iconUrl = '';\n public combinedUrl: any[] = [];\n toggleWindow = true;\n mandatoryFlag = false;\n showImageDialog = false;\n uploadedFiles: any[] = [];\n imageSrc: any;\n pagesCount: any;\n selectedThumbnail: any;\n selectedImages = [];\n themeTemplate: TemplateModel[] = [];\n mobileAppList = [];\n themeTemplateList: TemplateModel[] = [];\n Pages = [];\n appConfigurationForm;\n ImageURLs = [];\n config;\n SearchValue: string;\n thumbnailMaxSize = 150 * 1024; // max size of thubmnail in bytes\n primaryColor = \"#4b7bd6ff\";\n baseURL = '';\n domain = '';\n showAppLinks: boolean = false;\n appsVersion : string;\n generateLabel: string = \"Start Building\";\n\n\n constructor(private fb: FormBuilder, private service: MobileConfigService, private metaService: MetaService, private cdRef: ChangeDetectorRef, private _snackBar: MatSnackBar, private cdr: ChangeDetectorRef, private renderer: Renderer2, @Inject(DOCUMENT) private document: Document) {\n this.baseURL = document.location.protocol + '//' + document.location.hostname;\n const domain = this.getMainDomain(this.baseURL).replace(/[^a-zA-Z0-9.\\s]/g,'');\n this.domain = domain == 'localhost' ? 'com.localhost' : domain;\n }\n\n\n ngOnInit(): void {\n this.buildForm();\n this.GetMobileApp();\n this.primaryColor = getComputedStyle(document.documentElement).getPropertyValue('--primary-color');\n \n }\n\n\n buildForm() {\n this.appConfigurationForm = this.fb.group({\n Id: [null],\n AppIcon: [null, Validators.required],\n AppName: [null, [Validators.required, Validators.maxLength(30), Validators.pattern(/^[a-zA-Z0-9 ]*$/)]],\n Identifier: [`${this.domain}`, Validators.required],\n BaseUrl: [this.baseURL, [Validators.required]],\n Email: [null, [Validators.required, Validators.email]],\n KeyStoreFile: [null, Validators.required],\n KeyStorePassword: [null, Validators.required],\n Alias: [null, Validators.required],\n AliasPassword: [null, Validators.required],\n // IOSDevelopmentCertificate: [null, Validators.required],\n AppleIOSCertificate: [null, Validators.required],\n TeamId: [null, [Validators.required, Validators.maxLength(15), Validators.pattern(/^[a-zA-Z0-9 ]*$/)]],\n ProvisioningProfileName: [null, [Validators.required, Validators.maxLength(80)]],\n ProvisioningProfile: [null, [Validators.required]],\n UDID: [null],\n PrimaryColor: [this.primaryColor],\n BuildStatus: [\"NOT_STARTED\"],\n })\n }\n\n isValidExtension(file, allowed: string[]) {\n if (file) {\n const fileName = file.name.toLowerCase();\n const extension = fileName.split('.').pop();\n const isAllowed = allowed.includes('.' + extension);\n // console.log('isAllowed', isAllowed);\n // console.log('extension', extension);\n if(!isAllowed) {\n // this._snackBar.open(`Unsupported file type. Please upload a ${allowed} format`, 'Close', {\n // duration: 3000,\n // });\n NotificationHelper.Error(`Unsupported file type. Please upload a ${allowed} format`, '@@Error');\n }\n return isAllowed;\n }\n return true; // Default to true if no file is selected\n }\n\n setIdentifier(value) {\n const name = value.replace(/\\s/g, \"\");\n const Identifier = `${this.domain + '.' + name}`;\n this.appConfigurationForm.patchValue({\n Identifier\n })\n }\n\n onSearch() {\n let list = [];\n if (this.themeTemplate) {\n if (this.SearchValue) {\n const toLower = this.SearchValue.toLowerCase();\n list = this.themeTemplate.filter(x => x.Name.toLowerCase().indexOf(toLower) > -1);\n } else {\n list.push(...this.themeTemplate);\n }\n }\n this.themeTemplateList = list;\n }\n\n onCreate() {\n this.buildForm();\n this.mandatoryFlag = false;\n this.ToggleWindow();\n }\n\n onEdit(row) {\n this.ToggleWindow();\n // console.log('row update', row);\n this.iconUrl = `data:image/png;base64,${row.AppIcon}`;\n row.Id = 123;// dummy id;\n this.appConfigurationForm.patchValue(row);\n // console.log('row form data', this.appConfigurationForm.getRawValue());\n }\n\n onGenerate(row) {\n if (row.IOSAppLink && row.IOSAppLink.trim() !== '' && row.AndroidAppLink && row.AndroidAppLink.trim() !== '' ) {\n const params = {\n buttonType: \"YesNo\",\n title: \"Warning\",\n message: \"Generating a new mobile version will discard the previously generated version. Are you sure you want to proceed?\",\n data: row,\n }\n this.showDialogBox(params);\n }\n else{\n this.generateMobileAppFunction(row);\n }\n \n \n }\n\n\n GetMobileApp() {\n this.loading(true);\n this.mobileAppList = [];\n this.service.GetMobileApp().subscribe(res => {\n if (res && res?.Status != 0) {\n const list = [res];\n this.mobileAppList = list;\n if(list[0].IOSAppLink != \"\" && list[0].AndroidAppLink != \"\"){\n this.showAppLinks = true;\n this.appsVersion = list[0].Version;\n this.generateLabel = \"Re-build Apps\" ;\n }\n } else {\n this.mobileAppList = [];\n }\n this.loading(false);\n });\n }\n\n browseFile(event, field, extension) {\n const file = event.target.files[0];\n const isValid = this.isValidExtension(file, extension);\n if (isValid) {\n this.appConfigurationForm.patchValue({\n [field]: file\n })\n } else {\n this.appConfigurationForm.patchValue({\n [field]: null\n })\n }\n }\n\n async browseIcon(event, field, extension) {\n const file = event.target.files[0];\n const isValidExt = this.isValidExtension(file, extension);\n const isValidFile = await this.checkAspectRatioAndSize(file);\n if (isValidFile && isValidExt) {\n this.appConfigurationForm.patchValue({\n [field]: file\n });\n this.iconUrl = await this.getFileURL(file);\n this.cdr.detectChanges();\n } else {\n this.appConfigurationForm.patchValue({\n [field]: null\n });\n this.iconUrl = '';\n }\n this.getFileURL(file);\n }\n\n readURL(event: Event): void {\n const file = event.target['files'][0] ?? null;\n if (file['size'] > this.thumbnailMaxSize) {\n NotificationHelper.Error(\"Image size is too large. Please select an image that is 150 KB or smaller.\", '@@Error');\n return;\n }\n this.selectedThumbnail = file;\n if (this.selectedThumbnail) {\n const file = this.selectedThumbnail as File;\n const reader = new FileReader();\n reader.onload = e => {\n this.imageSrc = reader.result;\n // this.cdr.detectChanges();\n };\n reader.readAsDataURL(file);\n }\n }\n\n uploadFile(selectedFile, type) {\n if (selectedFile) {\n const prefix = this.appConfigurationForm.get('Name').value;\n const _object = {file: selectedFile, PathPrefix: prefix};\n return this.service.UploadImage(_object).pipe(\n tap(url => {\n if (type == 'Thumbnail') {\n this.appConfigurationForm.patchValue({\n ThumbnailURL: url.ImageURL\n\n });\n }\n if (type == 'pages') {\n this.ImageURLs = [...this.ImageURLs, url.ImageURL];\n }\n })\n )\n }\n return null;\n }\n\n generateMobileAppFunction (appData): void{\n this.loading(true);\n \n this.service.GenerateAppBuild().subscribe({\n next: (res) => {\n this.loading(false);\n NotificationHelper.Info(`Your build is currently underway. Please keep an eye on your inbox, including your spam folder, for updates at ${appData.Email}`, 'Build Underway');\n \n this.refresh();\n },\n error: error => {\n if(error.error.Error && error.error.Error != undefined){\n this.loading(false);\n // NotificationHelper.Error(error.error.Message, '@@Error');\n return;\n }\n }})\n }\n\n getInvalidFields(): string[] {\n const emptyFields = [];\n // Iterate over form controls and check if they are empty\n Object.keys(this.appConfigurationForm.controls).forEach(field => {\n const control = this.appConfigurationForm.get(field);\n if (control.invalid) {\n const formatField = field.replace(/([a-z])([A-Z])/g, '$1 $2')\n emptyFields.push(formatField);\n }\n });\n\n return emptyFields;\n }\n SaveAppInfo() {\n if (this.appConfigurationForm.get('AppName').hasError('pattern')) {\n NotificationHelper.Error(\"Special characters are not allowed in App Name\", '@@Error');\n return;\n }\n if (!this.appConfigurationForm.valid) {\n const invalidFields = this.getInvalidFields();\n if(invalidFields.length > 1) {\n NotificationHelper.Error(`Please fill out the fields: ${invalidFields.join(', ')}.`, '@@Error');\n }\n else {\n NotificationHelper.Error(`Please fill out the field: ${invalidFields.join(', ')}.`, '@@Error');\n }\n // NotificationHelper.Error(\"Please fill out mandatory fields\", '@@Error');\n return;\n }\n const data = this.appConfigurationForm.getRawValue();\n // create form data object\n const formData = new FormData()\n formData.append('AppIcon', data['AppIcon']);\n formData.append('AppName', data['AppName']);\n formData.append('Identifier', data['Identifier']);\n formData.append('BaseUrl', data['BaseUrl']);\n formData.append('Email', data['Email']);\n formData.append('KeyStoreFile', data['KeyStoreFile']);\n formData.append('KeyStorePassword', data['KeyStorePassword'].trim());\n formData.append('Alias', data['Alias'].trim());\n formData.append('AliasPassword', data['AliasPassword'].trim());\n formData.append('IOSDevelopmentCertificate', data['IOSDevelopmentCertificate']);\n formData.append('AppleIOSCertificate', data['AppleIOSCertificate']);\n formData.append('ProvisioningProfile', data['ProvisioningProfile']);\n formData.append('TeamId', data['TeamId'].trim());\n formData.append('ProvisioningProfileName', data['ProvisioningProfileName'].trim());\n formData.append('UDID', data['UDID']);\n formData.append('PrimaryColor', data['PrimaryColor']);\n this.loading(true)\n this.service.SaveAppInfo(formData).subscribe((res) => {\n this.loading(false);\n NotificationHelper.Success(\"App Info Saved Successfully\", '@@Success');\n this.refresh();\n })\n }\n\n UpdateAppInfo() {\n if (this.appConfigurationForm.get('AppName').hasError('pattern')) {\n NotificationHelper.Error(\"Special characters are not allowed in App Name\", '@@Error');\n return;\n }\n const _invalidFields = this.getInvalidFields();\n const checkFields = ['App Name', 'Email', 'Base Url', 'Team Id', 'Provisioning Profile Name'];\n const invalidFields = _invalidFields.filter(field => checkFields.includes(field));\n if(invalidFields && invalidFields.length > 0) {\n if(invalidFields.length > 1) {\n NotificationHelper.Error(`Please fill out the fields: ${invalidFields.join(', ')}.`, '@@Error');\n }\n else {\n NotificationHelper.Error(`Please fill out the field: ${invalidFields.join(', ')}.`, '@@Error');\n }\n return;\n }\n const data = this.appConfigurationForm.getRawValue();\n // console.log('data update', data);\n // create form data object\n\n const formData = new FormData()\n formData.append('AppName', data['AppName']);\n formData.append('Identifier', data['Identifier']);\n formData.append('BaseUrl', data['BaseUrl']);\n formData.append('Email', data['Email']);\n formData.append('Alias', data['Alias'].trim());\n formData.append('UDID', data['UDID']);\n formData.append('TeamId', data['TeamId'].trim());\n formData.append('ProvisioningProfileName', data['ProvisioningProfileName'].trim());\n if (data['AppIcon']) {\n formData.append('AppIcon', data['AppIcon']);\n }\n if (data['KeyStoreFile']) {\n formData.append('KeyStoreFile', data['KeyStoreFile']);\n }\n if (data['KeyStorePassword']) {\n formData.append('KeyStorePassword', data['KeyStorePassword'].trim());\n }\n if (data['AliasPassword']) {\n formData.append('AliasPassword', data['AliasPassword'].trim());\n }\n // if (data['IOSDevelopmentCertificate']) {\n // formData.append('IOSDevelopmentCertificate', data['IOSDevelopmentCertificate']);\n // }\n if (data['AppleIOSCertificate']) {\n formData.append('AppleIOSCertificate', data['AppleIOSCertificate']);\n }\n if (data['ProvisioningProfile']) {\n formData.append('ProvisioningProfile', data['ProvisioningProfile']);\n }\n this.loading(true)\n this.service.UpdateAppInfo(formData).subscribe((res) => {\n this.loading(false);\n NotificationHelper.Success(\"App Info Updated Successfully\", '@@Success');\n this.refresh();\n })\n }\n\n refresh() {\n this.GetMobileApp();\n this.toggleWindow = true;\n this.mandatoryFlag = false;\n }\n\n loading(value) {\n LayoutService.Loading.next(value);\n this.cdRef.detectChanges();\n }\n\n ToggleWindow() {\n this.toggleWindow = !this.toggleWindow;\n }\n\n onCancel() {\n this.appConfigurationForm.reset();\n this.markControlsAsUntouched(this.appConfigurationForm);\n this.ToggleWindow();\n }\n\n markControlsAsUntouched(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach(key => {\n formGroup.get(key).markAsPristine();\n formGroup.get(key).markAsUntouched();\n });\n }\n\n async getFileURL(file: any): Promise {\n return new Promise((resolve) => {\n const reader = new FileReader();\n reader.onload = (e: any) => {\n const fileURL = e.target.result;\n resolve(fileURL);\n };\n\n reader.readAsDataURL(file);\n });\n }\n\n // check aspect ration and size\n async checkAspectRatioAndSize(file): Promise {\n const maxSizeInBytes = 1024 * 1024; // 1 MB\n\n if (file.size > maxSizeInBytes) {\n // this._snackBar.open(\"Icon size is too large. Please select a smaller Icon\", 'Close', {\n // duration: 1000,\n // });\n NotificationHelper.Error(`Icon size is too large. Please select a smaller Icon`, '@@Error');\n return false;\n }\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = (e) => {\n const img = new Image();\n img.src = reader.result as string;\n img.onload = () => {\n if (!this.checkAspectRatio(img)) {\n // this._snackBar.open(\"Icon aspect ratio should 1024 * 1024\", 'Close', {\n // duration: 2000,\n // });\n NotificationHelper.Error(`Icon aspect ratio should 1024 * 1024`, '@@Error');\n resolve(false);\n } else {\n resolve(true);\n }\n };\n };\n\n reader.readAsDataURL(file);\n });\n }\n\n checkAspectRatio(img: HTMLImageElement): boolean {\n const aspectRatio = 1; // 1024 * 1024\n const imageAspectRatio = img.width / img.height;\n return Math.abs(imageAspectRatio - aspectRatio) <= 0.01;\n }\n\n getMainDomain(url: string): string {\n const hostname = new URL(url).hostname;\n const parts = hostname.split('.'); // split the hostname into parts using dot as a separator\n return parts.slice(-2).reverse().join('.'); // return the last two parts, which represent the main domain\n\n }\n\n showDialogBox(_params = {\n buttonType: \"\",\n title: \"\",\n message: \"\",\n data:\"\",\n }) {\n return new Promise(resolve => {\n MessageBoxHelper.ShowDialog(new TranslateFormatText(_params.message),\n new TranslateFormatText(_params.title), MessageBoxButtons[_params.buttonType], MessageBoxIcon[_params.title]).then(retVal => {\n if(retVal === MessageBoxResult.Yes){\n this.generateMobileAppFunction(_params.data);\n }\n if (retVal === MessageBoxResult.No || MessageBoxResult.Cancel) {\n return false;\n }\n });\n\n });\n\n \n }\n\n onDownload(downloadFile : string){\n const link = document.createElement('a');\n if(this.mobileAppList.length > 0){\n link.href = (downloadFile == \"android\") ? this.mobileAppList[0].AndroidAppLink : this.mobileAppList[0].IOSAppLink;\n link.setAttribute('download', \"\");\n link.click();\n }\n }\n \n\n}\n","import { ChangeDetectorRef, Component, ComponentFactoryResolver, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable, of } from 'rxjs';\nimport { FormControl } from '@angular/forms';\nimport { catchError, finalize, map, startWith, switchMap, tap } from 'rxjs/operators';\nimport { jwtDecode } from 'jwt-decode';\n\nimport config from '../../../assets/config.json';\nimport { TYPE_DICT, OpenAIDBInfo } from '../../models/datamodel/adbinfo.model';\nimport { DataModelService } from '../../services/datamodel.service';\nimport { DataSource } from '../../models/datamodel/datasource.model';\nimport { TranslatedString } from '../../models/translatedstring.model';\nimport { plainToClass } from 'class-transformer';\nimport { BaseListSettings, DeleteTexts, SaveTexts } from '../../settings/base.list.settings';\nimport { TranslateFormatText } from '../../helpers/array.helpers';\nimport { NotificationHelper } from '../../helpers/notification.helper';\nimport { LayoutService } from '../../services/layout.service';\nimport { DataSourceDetail } from '../../settings/datamodel/datasource/datasource.settings';\nimport { RestService } from '../../services/rest.service';\nimport { DataModel } from '../../models/datamodel/datamodel.model';\n\n@Component({\n selector: 'lib-integration',\n templateUrl: './integration.component.html',\n styleUrls: ['./integration.component.css'],\n})\nexport class IntegrationComponent extends BaseListSettings implements OnInit {\n FilteredDrivers = [];\n FilteredOtherDrivers = [];\n Drivers = [];\n OtherDrivers = [];\n dataModelList = [];\n datasourcesList = null;\n DATASOURCESlIST = [];\n SelectedDataModel;\n isShowDialog = false;\n SelectedDB;\n dataSource;\n searchValue = '';\n\n dataModeControl = new FormControl('');\n dataModelFilteredOptions: Observable;\n\n imageSource = '../../../assets/db/';\n\n dataSourceTypes = [\n '8c1b22e5-552a-4f6f-9e44-db57e61b3d2b',\n 'cb3a9b71-e35a-4fb6-84bd-6ae20d584d42',\n 'e5246d82-0716-4ac0-aef9-589a9d1a22b3',\n 'c88671c3-e258-41f0-8d68-38e011a0840c',\n '497f5f18-bac5-4f91-bfb6-d4d20cc0205d',\n 'd90798a2-6173-4083-b3d3-12f0c1d17b6c',\n '7c60db8d-2a8c-4154-b55f-a826c10b8dfc',\n 'd86bd6e7-fe80-4564-8029-68b9ee2c0142',\n '14215a44-ac8c-4646-8ad9-0af7a78b8d00',\n '181567f1-3587-456c-83cd-33289bdbd524',\n '79cffd9a-8f7c-4b37-bd29-0d8ed7f969de',\n 'f336a442-5c6c-4fd5-9b88-4e5d4dd35232',\n '152aaebb-d826-43c5-b0f7-5016ade5b498',\n '1c97b593-e4bd-43b5-9d87-d9cb86b9fc14',\n '5395c896-08f9-498a-b0a0-2dfbc0838b18',\n 'a113a278-21bd-4157-acc7-e327ebae3161',\n '8711e27d-dba8-4762-bee6-c209f622c980',\n 'b6aa8610-f3f4-4da4-9f7f-31c397dce938',\n ];\n defaultDataModel = { SID: '' };\n constructor(\n private translate: TranslateService,\n private dataService: DataModelService,\n private restService: RestService,\n protected factoryResolver: ComponentFactoryResolver,\n protected cdRef: ChangeDetectorRef,\n private router: Router\n ) {\n super(factoryResolver, cdRef);\n }\n\n ngOnInit(): void {\n this.getDrivers();\n this.getModels();\n this.getDataSources();\n\n this.dataModelFilteredOptions = this.dataModeControl.valueChanges.pipe(\n startWith(''),\n map((value) => this.dataModelFilter(value || ''))\n );\n }\n\n redirectToDefault() {\n let url;\n if (this.defaultDataModel.SID) {\n url = `/default/settings/data/dataModel/${this.defaultDataModel.SID}/datasources`;\n } else {\n url = '/default/settings/data/dataModel/dm-overview'\n }\n this.router.navigate([url])\n }\n onFocusFieldDataModel() {\n this.dataModeControl.setValue(this.dataModeControl.value || '');\n }\n\n loadData(data) {\n this.dataService.GetDataSource(data).subscribe((datasource) => {\n const ds = plainToClass(DataSource, datasource);\n this.setSelectedItem(ds);\n });\n this.ToggleWindow();\n this.cdRef.detectChanges();\n LayoutService.Loading.next(false);\n }\n\n onSearch() {\n this.FilteredDrivers = this.Drivers.filter((item) => item.Name.toLowerCase().includes(this.searchValue.toLowerCase()));\n this.FilteredOtherDrivers = this.OtherDrivers.filter((item) => item.Name.toLowerCase().includes(this.searchValue.toLowerCase()));\n this.datasourcesList = this.DATASOURCESlIST.filter((item) => item.Caption.toLowerCase().includes(this.searchValue.toLowerCase()));\n }\n\n dataModelFilter(value: any): any[] {\n const filterValue = typeof value == 'string' ? value.toLowerCase() : value['Caption'].toLowerCase();\n return this.dataModelList.filter((option) => option.Caption && option.Caption.toLowerCase().includes(filterValue));\n }\n\n displayModelValue(option): string {\n return option.Caption;\n }\n\n onSelectedModel(event) {\n this.SelectedDataModel = event.option.value;\n }\n\n getDataSources() {\n this.dataService.GetDataSourceInfos().subscribe((datasources) => {\n const filteredDataSource = datasources.filter((x) => this.dataSourceTypes.includes(x.DBId));\n // const sortedDataSource = filteredDataSource.sort((a, b) => {\n // return this.dataSourceTypes.indexOf(a.DBId) - this.dataSourceTypes.indexOf(b.DBId);\n // });\n this.DATASOURCESlIST = filteredDataSource;\n this.datasourcesList = filteredDataSource;\n this.cdRef.detectChanges();\n });\n }\n\n getDrivers() {\n this.dataService.GetSortedDrivers().subscribe((_drivers) => {\n if (_drivers) {\n // filter drivers according to user role\n let Drivers = [];\n let driversToAdd = _drivers;\n const userRole = JSON.parse(localStorage.getItem('user'))?.Roles;\n if (userRole && userRole.length > 0 && userRole[0] === config.FREE_USER_ID) {\n Drivers = _drivers.filter((driver) => driver.Name !== 'ROLAP' && TYPE_DICT.has(driver.DBInfoType));\n }\n else {\n Drivers = driversToAdd.filter((x) => TYPE_DICT.has(x.DBInfoType));\n }\n\n // filter and sort drivers\n const filteredDrivers = Drivers.filter((x) => this.dataSourceTypes.includes(x.Id));\n const sortedDrivers = filteredDrivers.sort((a, b) => {\n return this.dataSourceTypes.indexOf(a.Id) - this.dataSourceTypes.indexOf(b.Id);\n });\n const otherDrivers = Drivers.filter((x) => !this.dataSourceTypes.includes(x.Id));\n this.OtherDrivers = otherDrivers;\n this.FilteredOtherDrivers = otherDrivers;\n this.FilteredDrivers = sortedDrivers;\n this.Drivers = sortedDrivers;\n this.cdRef.detectChanges();\n }\n });\n }\n\n getModels() {\n this.dataService.GetModels().subscribe((data) => {\n this.dataModelList = data;\n this.getDefaultDataModel();\n this.InitArgs = data[0];\n // this.SelectedDataModel = data[0];\n this.cdRef.detectChanges();\n });\n }\n\n openDialog(db) {\n this.SelectedDB = db;\n this.dataSource = this.getNewItem();\n if (!this?.defaultDataModel?.SID) {\n LayoutService.Loading.next(true);\n const token = localStorage.getItem('token');\n const decodedToken = jwtDecode<{ unique_name: '' }>(token);\n const modelName = decodedToken?.unique_name?.toLowerCase() + '-workspace';\n const defaultDataModelPayload = new DataModel();\n defaultDataModelPayload.Name = `${modelName}-default-datamodel`;\n this.dataService\n .SaveModel(defaultDataModelPayload).subscribe(response => {\n LayoutService.Loading.next(false);\n this.getModels()\n this.isShowDialog = true;\n })\n }\n \n this.isShowDialog = true;\n }\n\n closeDialog() {\n this.isShowDialog = false;\n }\n\n getContentType() {\n return DataSourceDetail;\n }\n\n addDataModel(name) {\n if (!name) {\n NotificationHelper.Error('Name field is required', '@@Error');\n return;\n }\n const caption = new TranslatedString(name);\n const Description = new TranslatedString('');\n const data = new DataModel();\n data.Caption = caption;\n data.Description = Description;\n data.IsReadOnly = false;\n data.IsVisible = true;\n data.MaxSaveCombinations = 100000;\n data.Name = name;\n data.SelectTopRows = 1000;\n LayoutService.Loading.next(true);\n this.dataService.SaveModel(data).subscribe({\n next: (result) => {\n if (result) {\n NotificationHelper.Success(`@@DataModel ${result.Caption} saved successfully`, '@@Save');\n this.getModels();\n this.SelectedDataModel = result;\n }\n LayoutService.Loading.next(false);\n },\n error: () => {\n LayoutService.Loading.next(false);\n },\n });\n }\n\n getDefaultDataModel() {\n const token = localStorage.getItem('token');\n const decodedToken = jwtDecode<{ unique_name: '' }>(token);\n const modelName = decodedToken?.unique_name?.toLowerCase() + '-workspace-default-datamodel';\n this.defaultDataModel = this.dataModelList.find((dataModel) => dataModel.Caption.includes(modelName));\n }\n\n loadList(handler) {\n if (this.InitArgs) {\n this.dataService.GetDataSources(this.InitArgs.SID).subscribe((sources) => {\n const list = [];\n sources.forEach((source) => {\n list.push({\n Caption: source.Caption,\n ID: source.SID,\n IsCapsule: source.IsCapsule,\n IsOverridden: source.IsOverridden,\n });\n });\n handler(list);\n });\n }\n LayoutService.Loading.next(false);\n }\n\n // loadData(data) {\n // this.dataService.GetDataSource(data).subscribe((datasource) => {\n // const ds = plainToClass(DataSource, datasource);\n // this.setSelectedItem(ds);\n // });\n // }\n ShowAgents: boolean = true;\n\n getNewItem() {\n const ds = new DataSource();\n const name = 'DataSource_';\n let length = 1;\n if (this.ListItems.length > 0) {\n length = this.ListItems.length + 1;\n }\n ds.Name = name + length;\n ds.Caption = new TranslatedString(this.translate.instant('@@New data source'));\n if (this.InitArgs) {\n ds.DataModelID = this.InitArgs.SID;\n }\n\n ds.DBInfoType = this.SelectedDB.DBInfoType;\n this.ShowAgents = true;\n if (this.SelectedDB.DBInfoType == \"evidanza.Integrations.OpenAI.OpenAIDBInfo\") {\n this.ShowAgents = false;\n }\n return ds;\n }\n\n // getDeleteText(sel): DeleteTexts {\n // \tconst retVal = new DeleteTexts();\n // \tretVal.Question = new TranslateFormatText(\n // \t\t\"@@Sind Sie sicher, dass Sie die Datenquelle '{0}' loeschen moechten?\"\n // \t);\n // \tretVal.Question.FormatParams.push(sel.Caption);\n // \tretVal.Success = new TranslateFormatText(\n // \t\t\"@@Datenquelle '{0}' erfolgreich geloescht.\"\n // \t);\n // \tretVal.Success.FormatParams.push(sel.Caption);\n // \tretVal.Title = new TranslateFormatText('@@Datenquelle loeschen');\n // \treturn retVal;\n // }\n\n getSaveSuccessText(sel): SaveTexts {\n let caption = TranslatedString.GetTranslation(sel.Caption);\n if (!caption) {\n caption = sel.Name;\n }\n const retVal = new SaveTexts();\n retVal.Text = new TranslateFormatText(\"@@Datenquelle '{0}' erfolgreich gespeichert.\");\n retVal.Text.FormatParams.push(caption);\n retVal.Title = new TranslateFormatText('@@Datenquelle speichern');\n return retVal;\n }\n\n delete(data, handler) {\n this.dataService.DeleteSource(data).subscribe((res) => {\n handler(res);\n });\n }\n\n getDeleteText(sel): DeleteTexts {\n const retVal = new DeleteTexts();\n retVal.Question = new TranslateFormatText(\"@@Are you sure you want to delete data source '{0}'?\");\n retVal.Question.FormatParams.push(sel.Caption);\n retVal.Success = new TranslateFormatText(\"@@Data source '{0}' successfully deleted.\");\n retVal.Success.FormatParams.push(sel.Caption);\n retVal.Title = new TranslateFormatText('@@Delete data source');\n return retVal;\n }\n\n // \tgetSaveSuccessText(sel): SaveTexts {\n // \t\tlet caption = TranslatedString.GetTranslation(sel.Caption);\n // \t\tif (!caption) {\n // \t\t\t\tcaption = sel.Name;\n // \t\t}\n // \t\tconst retVal = new SaveTexts();\n // \t\tretVal.Text = new TranslateFormatText('@@Data source \\'{0}\\' saved successfully.');\n // \t\tretVal.Text.FormatParams.push(caption);\n // \t\tretVal.Title = new TranslateFormatText('@@Save data source');\n // \t\treturn retVal;\n // }\n\n // Function to validate if the object contains all properties of the class\n protected validateObjectProperties(obj, optionalProps = []) {\n for (let key in obj) {\n if (obj.hasOwnProperty(key) && (obj[key] === null || obj[key] === undefined)) {\n if (optionalProps.indexOf(key) < 0) return false; // If any property value is null or undefined, return false\n }\n }\n return true; // All properties have non-null values\n }\n\n saveInternal(item, handler) {\n if (item?.Name.trim() == '') {\n NotificationHelper.Error('Name field is required', '@@Error');\n LayoutService.Loading.next(false);\n return;\n }\n this.dataService.SaveDataSource(item).subscribe((result) => {\n if (result) {\n handler(result, result.SID, result.Caption);\n }\n });\n }\n\n handleNew(item, result) {\n item.SID = result.SID;\n item.Version = result.Version;\n item.InternalID = result.InternalID;\n }\n\n updateListItem(item, result) {\n item.IsCapsule = result.IsCapsule;\n item.IsOverridden = result.IsOverridden;\n }\n\n checkConnection() {\n this.dataSource.DataModelID = this.defaultDataModel.SID;\n this.cdRef.detectChanges();\n\n const item = this.dataSource;\n if(item?.DBInfoType==\"evidanza.Integrations.OpenAI.OpenAIDBInfo\"){\n if(!item?.DBInfo?.ApiKey){\n NotificationHelper.Error(\n\t\t\t\t\tnew TranslateFormatText('@@OpenAI API key required'),\n\t\t\t\t\t\"@@Error\"\n\t\t\t\t)\n return;\n }\n }\n LayoutService.Loading.next(true);\n this.dataService.CheckConnection(item).subscribe((x) => {\n if (x.Successfull) {\n NotificationHelper.Success('@@Successfully connected', '@@Success');\n } else {\n NotificationHelper.Error(x.Error, '@@Error');\n }\n LayoutService.Loading.next(false);\n });\n }\n\n onSaveClick() {\n const item = this.dataSource;\n if (!item.Name) {\n NotificationHelper.Error('Name field is required', '@@Error');\n return;\n }\n\n LayoutService.Loading.next(true);\n\n if (!this?.defaultDataModel?.SID) {\n const token = localStorage.getItem('token');\n const decodedToken = jwtDecode<{ unique_name: '' }>(token);\n const modelName = decodedToken?.unique_name?.toLowerCase() + '-workspace';\n const defaultDataModelPayload = new DataModel();\n defaultDataModelPayload.Name = `${modelName}-default-datamodel`;\n this.dataService\n .SaveModel(defaultDataModelPayload)\n .pipe(\n switchMap((response) => {\n if (response) {\n item.DataModelID = response.SID;\n return this.dataService.SaveDataSource(item);\n }\n }),\n tap((response) => {\n if (response) {\n this.closeDialog();\n this.cdRef.detectChanges();\n NotificationHelper.Success(`Data source ${item.Name} saved successfully `, '@@Success');\n }\n }),\n catchError((error) => {\n NotificationHelper.Error('@@Error', 'Failed to save Data Source.');\n return of(null);\n }),\n finalize(() => {\n this.getDataSources();\n LayoutService.Loading.next(false);\n })\n )\n .subscribe();\n return;\n }\n\n item.DataModelID = this.defaultDataModel.SID;\n this.dataService.SaveDataSource(item).subscribe((response) => {\n if (response) {\n this.closeDialog();\n this.cdRef.detectChanges();\n NotificationHelper.Success(`Data source ${item.Name} saved successfully `, '@@Success');\n this.getDataSources();\n LayoutService.Loading.next(false);\n }\n });\n }\n\n onSelectDataSource(item) {\n this.router.navigateByUrl(`default/settings/data/dataModel/${item.DataModelID}/datasources`);\n }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { GlobalEventHelper } from '../../../helpers/globalevent.helper';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { PermissionHelper } from '../../../helpers/permissions.helper';\nimport { VariableHelper } from '../../../helpers/variable.helper';\nimport { ContentType } from '../../../models/enums/contenttype.enum';\nimport { ViewType } from '../../../models/enums/viewtype.enum';\nimport { LayoutService } from '../../../services/layout.service';\n\n@Component({\n selector: 'baselayout',\n templateUrl: './base.layout.html',\n styleUrls: ['./base.layout.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BaseLayout implements OnInit, OnDestroy, AfterViewInit {\n\n _Layout;\n get Layout() {\n return this._Layout;\n }\n set Layout(value) {\n this._Layout = value;\n this.cdRef.detectChanges();\n }\n\n _BaseLayout;\n get BaseLayout() {\n return this._BaseLayout;\n }\n set BaseLayout(value) {\n this._BaseLayout = value;\n this.cdRef.detectChanges();\n }\n Subscriptions = {};\n Initialized = false;\n LayoutSet = false;\n EditOpen = false;\n\n ngAfterViewInit(): void {\n this.Initialized = true;\n this.cdRef.detectChanges();\n }\n\n ngOnDestroy(): void {\n const keys = Object.keys(this.Subscriptions);\n keys.forEach((key) => {\n this.Subscriptions[key].unsubscribe();\n });\n }\n constructor(public cdRef: ChangeDetectorRef) {}\n\n ngOnInit(): void {\n this.Subscriptions['BaseLayout'] = LayoutService.BaseLayout.subscribe(async(result) => {\n if (result) {\n this.BaseLayout = result;\n this.Layout = LayoutHelper.GetActiveResolution(this.BaseLayout);\n await VariableHelper.LoadVariables(this.Layout);\n GlobalEventHelper.InitBaseLayout(this.Layout);\n this.SetPermissionType(this.Layout);\n this.Layout.SetViewType(ViewType.View);\n PermissionHelper.GetContentPermissions('baselayout').then(() => {\n this.cdRef.detectChanges();\n });\n } else {\n this.Layout = null;\n }\n this.LayoutSet = true;\n this.cdRef.detectChanges();\n });\n this.Subscriptions['Impersonate'] = PermissionHelper.Impersonate.subscribe((roles) => {\n if (this.Layout) {\n PermissionHelper.GetContentPermissions('baselayout').then(() => {\n this.cdRef.detectChanges();\n });\n }\n });\n this.Subscriptions[\"LayoutEditDialog\"] = LayoutService.LayoutEditDialogOpen.subscribe((open) => {\n this.EditOpen = open;\n });\n\n this.Subscriptions['RootSize'] = LayoutService.RootSize.subscribe(async (size) => {\n if (!this.EditOpen && size && this.Layout && this.BaseLayout && this.BaseLayout.Resolutions) {\n this.Layout = LayoutHelper.GetActiveResolution(this.BaseLayout);\n\n await VariableHelper.LoadVariables(this.Layout);\n GlobalEventHelper.InitBaseLayout(this.Layout);\n if (!this.Layout.ElementType) {\n if (this.Layout.ContentType) {\n switch (this.Layout.ContentType) {\n case ContentType.Grid: this.Layout.ElementType = 'grid'; break;\n case ContentType.Flex: this.Layout.ElementType = 'flex'; break;\n case ContentType.Raster: this.Layout.ElementType = 'raster'; break;\n case ContentType.Canvas: this.Layout.ElementType = 'canvas'; break;\n }\n } else {\n this.Layout.ElementType = 'grid';\n }\n }\n this.SetPermissionType(this.Layout);\n this.Layout.SetViewType(ViewType.View);\n PermissionHelper.GetContentPermissions('baselayout').then(() => {\n this.cdRef.detectChanges();\n });\n }\n });\n }\n\n SetPermissionType(layout) {\n layout['PermissionType'] = 'baselayout';\n if (layout.Elements && layout.Elements.length > 0) {\n layout.Elements.forEach((item) => {\n this.SetPermissionType(item);\n });\n }\n }\n}\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject } from '@angular/core';\nimport { of } from 'rxjs';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { ListBoxThemeControl } from '../../../appbuilder/controls/listbox/listbox.theme.control';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { PrimeFlexSizes } from '../../../models/enums/primeflexsizes.enum';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { SettingsService } from '../../../services/settings.service';\nimport { IBaseComponent } from '../../controls/base.component';\n\n\n\n@Component({\n selector: 'evi-bootstrap-grid',\n templateUrl: './bootstrapgrid.layout.html',\n styleUrls: ['./bootstrapgrid.layout.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BootstrapGridLayout extends IBaseComponent {\n\n static Type: any = 'bootstrapgrid';\n static Default = {\n Editable: true,\n Type: 'bootstrapgrid'\n };\n\n ItemsValue;\n get Items() {\n return this.ItemsValue;\n }\n set Items(val) {\n this.ItemsValue = of(val);\n }\n dragType;\n dragItem;\n internalDrag = false;\n Rows=[]\n Dragging;\n\n constructor(private settingsService: SettingsService, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n }\n\n onLayoutElementSet() {\n if (this.LayoutElementValue.Elements) {\n this.LayoutElementValue.Elements.forEach((item) => {\n if (item.Row != null) {\n\n }\n })\n }\n this.Items = this.LayoutElementValue.Elements;\n this.cdRef.detectChanges();\n\n }\n onLayoutElementChanged() {\n this.Items = this.LayoutElementValue.Elements;\n this.cdRef.detectChanges();\n }\n ControlInitialized() {\n let init = false;\n if (init) {\n this.LayoutElement.ValuesChanged.next();\n }\n\n this.Subscriptions['DragStart'] = this.settingsService.DragStart.subscribe((item) => {\n if (this.LayoutElement.Selected) {\n this.dragItem = item.item;\n this.Dragging = true;\n }\n });\n this.Subscriptions['Delete'] = this.settingsService.Delete.subscribe((item) => {\n this.removeItem(item);\n });\n this.Subscriptions['DragType'] = LayoutService.DragType.subscribe((dragType) => {\n if (dragType === this.LayoutElement.ID) {\n this.dragType = dragType;\n } else {\n this.dragType = null;\n }\n });\n this.Subscriptions['viewtype'] = LayoutService.ViewType.subscribe((viewType) => {\n this.LayoutElement.ViewType = viewType;\n this.cdRef.detectChanges();\n });\n this.Subscriptions['selection'] = LayoutService.SelectionChanged.subscribe((value) => {\n this.cdRef.detectChanges();\n });\n }\n //#region DragHandling\n itemDrop(event, item) {\n let insert;\n insert = LayoutHelper.GetDroppedLayoutElement(this.dragItem);\n insert.Parent = this.LayoutElement;\n insert.ClassDefinitions = [{Column:3}];\n this.LayoutElement.Elements.push(insert);\n LayoutService.OnLayoutElementAdded({\n ElementContent: JSON.stringify(insert),\n Index: this.LayoutElementValue.Elements.length - 1,\n ParentID: this.LayoutElementValue.ID\n });\n this.cdRef.detectChanges();\n }\n //#endregion\n removeItem(item) {\n const index = this.LayoutElementValue.Elements.indexOf(item);\n if (index > -1) {\n this.LayoutElementValue.Elements.splice(index, 1);\n LayoutService.SelectedItem.next(null);\n LayoutService.OnLayoutElementRemoved({\n ElementID: item.ID,\n ElementName: item.Name ? item.Name : item.ID,\n ParentID: this.LayoutElementValue.ID\n });\n this.cdRef.detectChanges();\n }\n }\n itemSelected(item, event) {\n if (!item.Selected && !this.FromBaseLayout) {\n LayoutService.SelectedItems.next(null);\n LayoutService.SelectedItem.next(item);\n \n }\n }\n trackByID(index, item) {\n return item.ID;\n }\n cdkDrop(event: CdkDragDrop) {\n const item = this.LayoutElementValue.Elements[event.previousIndex];\n moveItemInArray(this.LayoutElementValue.Elements, event.previousIndex, event.currentIndex);\n LayoutService.OnLayoutElementMoved({\n ElementID: item.ID,\n Index: event.currentIndex,\n OldParentID: this.LayoutElementValue.ID,\n NewParentID: this.LayoutElementValue.ID\n });\n }\n}\nexport class BootstrapGridPanel extends BasePanel {\n static override SIDS = ['9c674571-fa72-4031-9204-6c0316f691a7']\n \n static InitPanel() {\n this.InitSelectedItem();\n PROPERTYGROUPS.push({\n SID: '9c674571-fa72-4031-9204-6c0316f691a7',\n ID: 'bootstrapgridposition',\n Caption: '@@GridPosition',\n Index: 105,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['1fr'],\n Rows: ['auto'],\n CheckVisibility: (item) => {\n return item && item.Parent && item.Parent.ElementType == 'bootstrapgrid';\n }\n });\n PROPERTIES.push({\n ID: \"ClassDefinitions\",\n Parent: \"bootstrapgridposition\",\n Content: new ComponentPortal(ListBoxThemeControl),\n Properties: [\n {\n ID: \"Column\",\n Parent: \"bootstrapgridposition\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Column\",\n InitArgs: {\n InputType: \"number\",\n Minimum: 1,\n Maximum: 12\n }\n }, {\n ID: \"ColumnOffset\",\n Parent: \"bootstrapgridposition\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@ColumnOffset\",\n InitArgs: {\n InputType: \"number\",\n Minimum: 1,\n Maximum: 12\n }\n }, {\n ID: \"ResponsiveSize\",\n Parent: \"bootstrapgridposition\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@ResponsiveSize\",\n InitArgs: {\n EnumSource: PrimeFlexSizes\n }\n }\n ],\n InitArgs: {\n GenerateNewItem: () => {\n const item:any = {};\n item.Column = 3;\n return item;\n },\n GetCaption: (item, index) => {\n return item.Column\n }\n }\n });\n }\n}","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { IPageInfo } from 'ngx-virtual-scroller';\nimport { of, Subject } from 'rxjs';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { ListBoxThemeControl } from '../../../appbuilder/controls/listbox/listbox.theme.control';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { FilterHelper } from '../../../helpers/filter.helper';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { FlexContentAlignment, FlexItemAlignment } from '../../../models/enums/alignment.enum';\nimport { ContentType } from '../../../models/enums/contenttype.enum';\nimport { Orientation } from '../../../models/enums/orientation.enum';\nimport { PrimeFlexSizes } from '../../../models/enums/primeflexsizes.enum';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ViewType } from '../../../models/enums/viewtype.enum';\nimport { LayoutElement } from '../../../models/layoutelement.model';\nimport { DataService } from '../../../services/data.service';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { SettingsService } from '../../../services/settings.service';\nimport { IBaseComponent } from '../../controls/base.component';\n\n@Component({\n selector: 'evi-bootstraprepeat',\n templateUrl: './bootstraprepeat.layout.html',\n styleUrls: ['./bootstraprepeat.layout.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BootstrapRepeatLayout extends IBaseComponent {\n\n static Type: any = 'bootstraprepeat';\n static Default = {\n Editable: true,\n Type: 'bootstraprepeat'\n };\n DisableAutoLoad = false;\n _Items;\n _Items$;\n _RawItems;\n @Input()\n public get Items() {\n return this._Items;\n }\n public set Items(val) {\n this._RawItems = val;\n this._Items = of(val);\n if (this.ItemsChange) {\n this.ItemsChange.emit(this._Items);\n }\n this.RefreshCount += 1;\n }\n @Output()\n public ItemsChange = new EventEmitter();\n\n RepeatElements;\n RepeatElements$;\n //#region DataSource\n @Input()\n get DataSource() {\n return this.DataSourceValue;\n }\n set DataSource(val) {\n this.DataSourceValue = val;\n if (this.DataBindingProperties && this.DataBindingProperties.IsDataBinding && !this.DataBindingProperties.IsShared) {\n this.updateRepeatElements();\n }\n this.DataSourceChange.emit(this.DataSourceValue);\n this.cdRef.detectChanges();\n }\n\n @Output() DataSourceChange = new EventEmitter();\n //#endregion\n DataBindingProperties;\n RepeatDataSource;\n constructor(private dataService: DataService, private settingsService: SettingsService,\n cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n }\n onInit() {\n this.ControlInitialized();\n this.setInitialized();\n }\n\n onLayoutElementSet() {\n if (this.LayoutElementValue && (!this.LayoutElementValue.Elements || this.LayoutElementValue.Elements.length == 0)) {\n let layout = new LayoutElement()\n layout.ElementType = 'grid'\n layout.ContentType = ContentType.Grid\n this.LayoutElementValue.Elements = [layout]\n }\n if (this.RepeatDataSource) {\n this.RepeatDataSource.pageLength = this.LayoutElementValue.PageSize ? this.LayoutElementValue.PageSize : 100;\n }\n this.Items = this.LayoutElementValue.Elements;\n this.updateRepeatElements();\n }\n onLayoutElementChanged() {\n if (this.LayoutElementValue && (!this.LayoutElementValue.Elements || this.LayoutElementValue.Elements.length == 0)) {\n let layout = new LayoutElement()\n layout.ElementType = 'grid'\n layout.ContentType = ContentType.Grid\n this.LayoutElementValue.Elements = [layout]\n }\n if (this.RepeatDataSource) {\n this.RepeatDataSource.pageLength = this.LayoutElementValue.PageSize ? this.LayoutElementValue.PageSize : 100;\n }\n this.Items = this.LayoutElementValue.Elements;\n this.updateRepeatElements();\n }\n\n ControlInitialized() {\n this.cdRef.detectChanges();\n this.DisableAutoLoad = this.LayoutElementValue.DisableAutoLoad;\n \n this.Subscriptions['DataSourceChange'] = this.DataSourceChange.subscribe(x => {\n this.updateRepeatElements();\n });\n this.Subscriptions[\"ViewType\"] = LayoutService.ViewType.subscribe(x => {\n if (x == ViewType.View) {\n this.updateRepeatElements();\n }\n });\n this.Subscriptions['selection'] = LayoutService.SelectionChanged.subscribe((value) => {\n this.cdRef.detectChanges();\n });\n this.Subscriptions['Values'] = this.LayoutElementValue.ValuesChanged.subscribe((Property) => {\n this.cdRef.detectChanges();\n });\n MetaHelper.FindDataBindingProperties(this.Layout, this.LayoutElementValue).then(result => {\n if (result) {\n this.DataBindingProperties = result;\n if (result.IsDataBinding) {\n if (result.IsShared) {\n // console.log('shared');\n // this.listDataSource = new SharedDataBindingSource(this, result.Table, this.dataService, this.DisableAutoLoad);\n } else {\n this.updateRepeatElements();\n }\n } else {\n this.RepeatDataSource = new DataSourceRepeatSource(this, result.Table, this.dataService);\n this.RepeatDataSource.pageLength = this.LayoutElementValue.PageSize ? this.LayoutElementValue.PageSize : 100;\n if (!this.DisableAutoLoad) {\n this.RepeatDataSource.LoadData();\n }\n this.DisableAutoLoad = false;\n }\n } else {\n // this.listDataSource = new SimpleDataSource(this, { Fields: [] });\n }\n if (this.RepeatDataSource) {\n this.RepeatDataSource.Loading.subscribe((status) => {\n if (!status) {\n this.DataSourceValue = this.RepeatDataSource.DataSource;\n this.updateRepeatElements();\n }\n });\n }\n });\n }\n\n updateRepeatElements() {\n const repeatElements = [];\n if (Array.isArray(this.DataSourceValue) && Array.isArray(this._RawItems)) {\n const json = JSON.stringify(this._RawItems);\n this.DataSourceValue.forEach((entry, index) => {\n const elements = [];\n const arrayCopy = JSON.parse(json);\n arrayCopy.forEach(item => {\n const copy = plainToClass(LayoutElement, item);\n copy['Parent'] = this.LayoutElementValue;\n elements.push(copy);\n });\n repeatElements.push({\n Data: entry,\n Index: index,\n Elements: elements,\n ClassDefinitions: this.LayoutElement.ClassDefinitions\n });\n });\n }\n this.RepeatElements$ = of(repeatElements);\n this.RepeatElements = repeatElements;\n this.RefreshCount += 1;\n this.cdRef.detectChanges();\n }\n ExecuteRefresh() {\n if (this.DataBindingProperties) {\n if (this.DataBindingProperties.IsDataBinding) {\n if (this.DataBindingProperties.IsShared) {\n // this.listDataSource = new SharedDataBindingSource(this, result.Table, this.dataService, this.DisableAutoLoad);\n } else {\n this.updateRepeatElements();\n }\n } else {\n if (!this.RepeatDataSource) {\n this.RepeatDataSource = new DataSourceRepeatSource(this, this.DataBindingProperties.Table, this.dataService);\n }\n this.RepeatDataSource.pageLength = this.LayoutElementValue.PageSize ? this.LayoutElementValue.PageSize : 100;\n this.RepeatDataSource.onFilterChanged();\n }\n }\n if (this.RepeatDataSource) {\n this.RepeatDataSource.Loading.subscribe((status) => {\n if (!status) {\n this.DataSourceValue = this.RepeatDataSource.DataSource;\n this.updateRepeatElements();\n }\n });\n }\n }\n onScroll(event: IPageInfo) {\n if (this.RepeatDataSource && this.RepeatDataSource.initialized) {\n if (event.endIndex !== this.RepeatDataSource.DataSource.length - 1) return;\n if (this.RepeatDataSource) {\n this.RepeatDataSource.onScroll();\n }\n }\n }\n itemSelected(item, event) {\n if (!item.Selected) {\n LayoutService.SelectedItems.next(null);\n LayoutService.SelectedItem.next(item);\n }\n }\n}\n\nexport class DataSourceRepeatSource {\n DataSourceID;\n DataSource: any[] = [];\n\n Loading: Subject = new Subject();\n DataSourceElement;\n pageIndex = 0;\n pageLength = 100;\n loaded = false;\n initialized = false;\n\n constructor(component: BootstrapRepeatLayout, table, private dataService: DataService) {\n this.DataSourceID = table.SID;\n this.DataSourceElement = MetaHelper.FindValidParent(component.Layout, component.LayoutElement);\n }\n\n onFilterChanged() {\n this.pageIndex = 0;\n this.loaded = false;\n this.DataSource = [];\n this.LoadData();\n }\n\n onScroll() {\n this.LoadData();\n }\n\n LoadData() {\n if (!this.loaded && this.DataSourceID) {\n this.Loading.next(true);\n const filter = FilterHelper.PrepareFilter(this.DataSourceElement);\n filter.StartRow = this.pageIndex * this.pageLength;\n filter.EndRow = filter.StartRow + this.pageLength;\n this.dataService.SearchObjects('dynamicdata', this.DataSourceID, filter).subscribe((data) => {\n this.initialized = true;\n this.pageIndex += 1;\n if (data && data.length > 0) {\n this.DataSource = [...this.DataSource, ...data];\n } else {\n this.loaded = true;\n }\n this.Loading.next(false);\n });\n }\n }\n}\nexport class BootstrapRepeatPanel extends BasePanel {\n static override SIDS = ['a3e5be2b-ec03-4877-ad94-939b5b5c6e4e']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'a3e5be2b-ec03-4877-ad94-939b5b5c6e4e',\n ID: 'bootstraprepeat',\n Caption: '@@BootstrapRepeat',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'bootstraprepeat';\n }\n });\n PROPERTIES.push({\n ID: \"DisableAutoLoad\",\n Parent: \"bootstraprepeat\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@DisableAutoLoad\"\n }\n });\n PROPERTIES.push({\n ID: \"PageSize\",\n Parent: \"bootstraprepeat\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@PageSize\",\n InitArgs: {\n InputType: \"number\",\n Minimum: 1\n }\n });\n PROPERTIES.push({\n ID: \"ChildContentType\",\n Parent: \"bootstraprepeat\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@ContentType\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: ContentType,\n Action: (ev) => {\n ev.SelectedItem.Elements[0].ElementType = ContentType[ev.DataSource].toLowerCase();\n }\n }\n });\n PROPERTIES.push({\n ID: \"ClassDefinitions\",\n Parent: \"bootstraprepeat\",\n Content: new ComponentPortal(ListBoxThemeControl),\n Properties: [\n {\n ID: \"Column\",\n Parent: \"bootstraprepeat\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Column\",\n InitArgs: {\n InputType: \"number\",\n Minimum: 1,\n Maximum: 12\n }\n }, {\n ID: \"ColumnOffset\",\n Parent: \"bootstraprepeat\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@ColumnOffset\",\n InitArgs: {\n InputType: \"number\",\n Minimum: 1,\n Maximum: 12\n }\n }, {\n ID: \"ResponsiveSize\",\n Parent: \"bootstraprepeat\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@ResponsiveSize\",\n InitArgs: {\n EnumSource: PrimeFlexSizes\n }\n }\n ],\n InitArgs: {\n GenerateNewItem: () => {\n const item: any = {};\n item.Column = 3;\n return item;\n },\n GetCaption: (item, index) => {\n return item.Column\n }\n }\n });\n \n }\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { of } from 'rxjs';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { LayoutService } from '../../../services/layout.service';\nimport { SettingsService } from '../../../services/settings.service';\nimport { IBaseComponent } from '../../controls/base.component';\n\n@Component({\n selector: 'evi-canvas',\n templateUrl: './canvas.layout.html',\n styleUrls: ['./canvas.layout.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CanvasLayout extends IBaseComponent {\n\n static Type: any = 'canvas';\n static Default = {\n Editable: true,\n Type: 'canvas'\n };\n\n dragItem;\n _Items;\n Items$;\n @Input()\n public get Items() {\n return this._Items;\n }\n public set Items(val) {\n this._Items = val;\n this.Items$ = of(val);\n if (this.ItemsChange) {\n this.ItemsChange.emit(this._Items);\n }\n }\n @Output()\n public ItemsChange = new EventEmitter();\n\n dragType;\n\n constructor(private settingsService: SettingsService, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n }\n\n ControlInitialized() {\n this.Subscriptions['DragStart'] = this.settingsService.DragStart.subscribe((item) => {\n this.dragItem = item.item;\n });\n this.Subscriptions['Delete'] = this.settingsService.Delete.subscribe((item) => {\n this.removeItem(item);\n });\n this.Subscriptions['DragType'] = LayoutService.DragType.subscribe((dragType) => {\n if (dragType === this.LayoutElement.ID) {\n this.dragType = dragType;\n } else {\n this.dragType = null;\n }\n });\n this.Subscriptions['selection'] = LayoutService.SelectionChanged.subscribe((value) => {\n this.cdRef.detectChanges();\n });\n this.Subscriptions['Values'] = this.LayoutElementValue.ValuesChanged.subscribe((Property) => {\n this.cdRef.detectChanges();\n });\n }\n\n onLayoutElementSet() {\n this.Items = this.LayoutElementValue.Elements;\n this.cdRef.detectChanges();\n }\n onLayoutElementChanged() {\n this.Items = this.LayoutElementValue.Elements;\n this.cdRef.detectChanges();\n }\n itemDrop(event) {\n let insert;\n insert = LayoutHelper.GetDroppedLayoutElement(this.dragItem);\n insert.Parent = this.LayoutElement;\n this.LayoutElement.Elements.push(insert);\n event.currentTarget.style.backgroundColor = 'transparent';\n LayoutService.OnLayoutElementAdded({\n ElementContent: JSON.stringify(insert),\n Index: this.LayoutElementValue.Elements.length - 1,\n ParentID: this.LayoutElementValue.ID\n });\n this.cdRef.detectChanges();\n }\n\n removeItem(item) {\n const index = this.Items.indexOf(item);\n if (index > -1) {\n this.Items.splice(index, 1);\n LayoutService.SelectedItem.next(null);\n LayoutService.OnLayoutElementRemoved({\n ElementID: item.ID,\n ElementName: item.Name ? item.Name : item.ID,\n ParentID: this.LayoutElementValue.ID\n });\n }\n }\n\n itemSelected(item, event) {\n if (!item.Selected && !this.FromBaseLayout) {\n LayoutService.SelectedItems.next(null);\n LayoutService.SelectedItem.next(item);\n }\n }\n}","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, Component, ElementRef, ViewChild } from '@angular/core';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { ListBoxThemeControl } from '../../../appbuilder/controls/listbox/listbox.theme.control';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { UnitSelectionControl } from '../../../appbuilder/controls/unittypeselection/unitselection.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { LayoutUnit } from '../../../models/basic/layoutunit.model';\nimport { ExpandState } from '../../../models/enums/expandstate.enum';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { UnitType } from '../../../models/enums/unittype.enum';\nimport { ViewType } from '../../../models/enums/viewtype.enum';\nimport { LayoutElement } from '../../../models/layoutelement.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MediaService } from '../../../services/media.service';\nimport { IBaseComponent } from '../../controls/base.component';\n\n@Component({\n selector: 'evi-expansion-panel-layout',\n templateUrl: './expansion.panel.layout.html',\n styleUrls: ['./expansion.panel.layout.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ExpansionPanelLayout extends IBaseComponent {\n static Type: any = 'expansionpanel';\n static Default = { Type: 'expansionpanel' };\n\n Arrow = 'keyboard_arrow_right';\n ExpandState: ExpandState = ExpandState.Overlay;\n Hover = false;\n IconColStyle = {};\n ContentStyle = {};\n SelectedElement;\n @ViewChild('textCol', { read: ElementRef }) textCol: ElementRef;\n EditMode = false;\n\n ControlInitialized() {\n this.cdRef.detectChanges();\n if (this.LayoutElementValue.SelectedPanel) {\n const selected = this.LayoutElementValue.Elements.find(x => x.ID === this.LayoutElementValue.SelectedPanel);\n if (selected) {\n this.onItemClick(selected);\n } else {\n this.LayoutElementValue.SelectedPanel = null;\n }\n }\n if (!this.LayoutElementValue.ContentWidth) {\n const lu = new LayoutUnit();\n lu.Type = UnitType.Pixel;\n lu.Value = 200;\n this.LayoutElementValue.ContentWidth = lu;\n }\n this.Subscriptions['SelectedItem'] = LayoutService.SelectedItem.subscribe(x => {\n if (this.EditMode && this.LayoutElementValue.Elements.indexOf(x) > -1) {\n this.onItemClick(x);\n }\n });\n this.Subscriptions['EditMode'] = LayoutService.ViewType.subscribe(x => {\n this.EditMode = x === ViewType.Edit;\n this.checkContentWidth();\n });\n //this.Subscriptions['Values'] = this.LayoutElementValue.ValuesChanged.subscribe((Property) => {\n // this.LayoutElementValue.Elements.forEach((element) => {\n // if (element.Element) {\n // element.Element.cdRef.detectChanges();\n // }\n // })\n //});\n }\n\n checkContentWidth() {\n const contStyle = {};\n if (this.LayoutElementValue.ContentWidth) {\n contStyle['width'] = LayoutUnit.ToStyle(this.LayoutElementValue.ContentWidth);\n }\n this.ContentStyle = contStyle;\n }\n\n onLayoutElementChanged() {\n this.checkContentWidth();\n }\n\n onExpandClick() {\n if (this.LayoutElementValue.SelectedPanel) {\n this.LayoutElementValue.SelectedPanel = null;\n this.SelectedElement = null;\n this.ExpandState = ExpandState.None;\n this.updateArrow(false);\n this.setIconStyle(false);\n } else if (this.ExpandState === ExpandState.Expanded) {\n this.ExpandState = ExpandState.None;\n this.updateArrow(false);\n this.setIconStyle(false);\n } else {\n this.ExpandState = ExpandState.Expanded;\n this.updateArrow(true);\n this.setIconStyle(true);\n }\n }\n\n onMouseEnter() {\n this.Hover = true;\n if (this.ExpandState === ExpandState.None) {\n this.ExpandState = ExpandState.Overlay;\n }\n }\n\n updateArrow(expanded: boolean) {\n if (expanded) {\n this.Arrow = this.LayoutElementValue.ExpandToLeft ? 'keyboard_arrow_right' : 'keyboard_arrow_left';\n } else {\n this.Arrow = this.LayoutElementValue.ExpandToLeft ? 'keyboard_arrow_left' : 'keyboard_arrow_right';\n }\n }\n\n onItemClick(elem) {\n this.LayoutElementValue.SelectedPanel = elem.ID;\n this.SelectedElement = elem;\n this.ExpandState = ExpandState.None;\n this.Hover = false;\n this.updateArrow(true);\n this.setIconStyle(false);\n }\n\n setIconStyle(expanded: boolean) {\n const style = {};\n if (expanded && this.textCol) {\n if (this.LayoutElementValue.ExpandToLeft) {\n style['margin-left'] = this.textCol.nativeElement.offsetWidth + 'px';\n } else {\n style['margin-right'] = this.textCol.nativeElement.offsetWidth + 'px';\n }\n }\n this.IconColStyle = style;\n }\n}\n\nexport class ExpansionPanelPanel extends BasePanel {\n static override SIDS = ['27f1a96d-2efd-4505-950a-ff0eea1841fc']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'27f1a96d-2efd-4505-950a-ff0eea1841fc',\n ID: 'expansionpanel',\n Caption: '@@ExpansionPanel',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'expansionpanel';\n }\n });\n //#endregion\n PROPERTIES.push({\n ID: \"ContentWidth\",\n Parent: \"expansionpanel\",\n Content: new ComponentPortal(UnitSelectionControl),\n Type: LayoutUnit,\n Label: \"@@Contentwidth\",\n InitArgs: {\n Minimum: 0\n }\n });\n PROPERTIES.push({\n ID: \"ExpandToLeft\",\n Parent: \"expansionpanel\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Nach links aufklappen\"\n }\n });\n const ContentTypes = [\n { Caption: '@@Grid', Value: 'grid' },\n { Caption: '@@Raster', Value: 'raster' },\n { Caption: '@@Flex', Value: 'flex' },\n { Caption: '@@Canvas', Value: 'canvas' }\n ]\n MediaService.IconList.subscribe((icons) => {\n if (icons) {\n let Icons = [];\n icons.forEach((icon) => {\n Icons.push({ Value: icon })\n })\n PROPERTIES.push({\n ID: \"Elements\",\n Parent: \"expansionpanel\",\n Content: new ComponentPortal(ListBoxThemeControl),\n Label: \"@@Panels\",\n Properties: [\n {\n ID: \"Name\",\n Parent: \"expansionpanel\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Name\"\n },\n {\n ID: \"Caption\",\n Parent: \"expansionpanel\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Caption\"\n },\n {\n ID: \"ElementType\",\n Parent: \"expansionpanel\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@ContentType\",\n Column: 1,\n Row: 3,\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: ContentTypes,\n DisplayMemberPath: \"Caption\",\n ValueMemberPath: \"Value\"\n }\n },\n {\n ID: \"Icon\",\n Parent: \"expansionpanel\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Icon\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: Icons,\n DisplayMemberPath: 'Value',\n ValueMemberPath: 'Value',\n IconMemberPath: 'Value'\n }\n }\n ],\n InitArgs: {\n GenerateNewItem: () => {\n const le = new LayoutElement();\n le.ElementType = 'grid';\n le.Name = LayoutHelper.GetNextElementNameByPrefix(LayoutService.SelectedLayout.getValue(), 'panel');\n le.Caption = le.Name;\n return le;\n }\n }\n });\n }\n });\n }\n}","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { of } from 'rxjs';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { FlexContentAlignment, FlexItemAlignment } from '../../../models/enums/alignment.enum';\nimport { Orientation } from '../../../models/enums/orientation.enum';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { MenuTabLabelPosition } from '../../../models/menutab/menutab.property.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { SettingsService } from '../../../services/settings.service';\nimport { IBaseComponent } from '../../controls/base.component';\n\n@Component({\n selector: 'evi-flex',\n templateUrl: './flex.layout.html',\n styleUrls: ['./flex.layout.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FlexLayout extends IBaseComponent {\n\n static Type: any = 'flex';\n static Default = {\n Editable: true,\n Type: 'flex'\n };\n //#region Items\n _Items;\n _Items$;\n @Input()\n public get Items() {\n return this._Items;\n }\n public set Items(val) {\n this._Items = val;\n this._Items$ = of(val);\n if (this.ItemsChange) {\n this.ItemsChange.emit(this._Items);\n }\n }\n @Output()\n public ItemsChange = new EventEmitter();\n //#endregion\n //#region Orientation\n OrientationValue;\n @Input()\n public get Orientation() {\n if (this.LayoutElement) {\n return this.LayoutElement.Orientation;\n } else {\n return this.Orientation;\n }\n }\n public set Orientation(val) {\n if (this.LayoutElement) {\n this.LayoutElement.Orientation = val;\n if (this.OrientationChange) {\n this.OrientationChange.emit(this.LayoutElement.Orientation);\n }\n } else {\n this.OrientationValue = val;\n if (this.OrientationChange) {\n this.OrientationChange.emit(this.OrientationValue);\n }\n }\n }\n @Output()\n public OrientationChange = new EventEmitter();\n //#endregion\n dragItem;\n dragType;\n ResizeTimer;\n constructor(private settingsService: SettingsService, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n }\n\n ControlInitialized() {\n this.cdRef.detectChanges();\n this.Subscriptions['DragStart'] = this.settingsService.DragStart.subscribe((item) => {\n this.dragItem = item.item;\n });\n this.Subscriptions['Delete'] = this.settingsService.Delete.subscribe((item) => {\n this.removeItem(item);\n });\n this.Subscriptions['DragType'] = LayoutService.DragType.subscribe((dragType) => {\n if (dragType === this.LayoutElement.ID) {\n this.dragType = dragType;\n } else {\n this.dragType = null;\n }\n });\n this.Subscriptions['selection'] = LayoutService.SelectionChanged.subscribe((value) => {\n this.cdRef.detectChanges();\n });\n this.Subscriptions['Values'] = this.LayoutElementValue.ValuesChanged.subscribe((Property) => {\n this.cdRef.detectChanges();\n });\n }\n\n onLayoutElementSet() {\n this.Items = this.LayoutElementValue.Elements;\n }\n onLayoutElementChanged() {\n this.Items = this.LayoutElementValue.Elements;\n }\n\n itemDrop(event) {\n let insert;\n insert = LayoutHelper.GetDroppedLayoutElement(this.dragItem);\n insert.Parent = this.LayoutElement;\n this.LayoutElement.Elements.push(insert);\n LayoutService.OnLayoutElementAdded({\n ElementContent: JSON.stringify(insert),\n Index: this.LayoutElementValue.Elements.length - 1,\n ParentID: this.LayoutElementValue.ID\n });\n event.currentTarget.style.backgroundColor = 'transparent';\n }\n\n removeItem(item) {\n const index = this.Items.indexOf(item);\n if (index > -1) {\n this.Items.splice(index, 1);\n LayoutService.SelectedItem.next(null);\n LayoutService.OnLayoutElementRemoved({\n ElementID: item.ID,\n ElementName: item.Name ? item.Name : item.ID,\n ParentID: this.LayoutElementValue.ID\n });\n }\n }\n\n itemSelected(item, event) {\n if (!item.Selected && !this.FromBaseLayout) {\n LayoutService.SelectedItems.next(null);\n LayoutService.SelectedItem.next(item);\n }\n }\n\n GetDropOrientation() {\n switch (this.LayoutElement.Orientation) {\n case Orientation.Horizontal:\n case Orientation.HorizontalReverse:\n case Orientation.HorizontalWrapping:\n case Orientation.HorizontalReverseWrapping:\n return 'horizontal';\n case Orientation.Vertical:\n case Orientation.VerticalReverse:\n case Orientation.VerticalWrapping:\n case Orientation.VerticalReverseWrapping:\n return 'vertical';\n }\n }\n cdkDrop(event: CdkDragDrop) {\n const item = this._Items[event.previousIndex];\n moveItemInArray(this._Items, event.previousIndex, event.currentIndex);\n LayoutService.OnLayoutElementMoved({\n ElementID: item.ID,\n Index: event.currentIndex,\n OldParentID: this.LayoutElementValue.ID,\n NewParentID: this.LayoutElementValue.ID\n });\n }\n\n trackByID(index, item) {\n return item.ID;\n }\n}\n\nexport class FlexPanel extends BasePanel{\n static override SIDS = ['7e4c7494-c70a-4344-b801-cc2731d43e31']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'7e4c7494-c70a-4344-b801-cc2731d43e31',\n ID: 'flex',\n Caption: '@@Flex',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'flex';\n }\n });\n \n PROPERTIES.push({\n ID: \"Orientation\",\n Parent: \"flex\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Orientation\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: Orientation\n }\n });\n PROPERTIES.push({\n ID: \"FlexAlignItems\",\n Parent: \"flex\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@AlignItems\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: FlexItemAlignment\n }\n });\n PROPERTIES.push({\n ID: \"FlexAlignContent\",\n Parent: \"flex\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@AlignContent\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: FlexContentAlignment\n }\n });\n }\n}","import { moveItemInArray } from '@angular/cdk/drag-drop';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject } from '@angular/core';\nimport { of } from 'rxjs';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { ListBoxThemeControl } from '../../../appbuilder/controls/listbox/listbox.theme.control';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { UnitSelectionControl } from '../../../appbuilder/controls/unittypeselection/unitselection.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { LayoutUnit } from '../../../models/basic/layoutunit.model';\nimport { Overflow } from '../../../models/enums/overflow.enum';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { UnitType } from '../../../models/enums/unittype.enum';\nimport { ViewType } from '../../../models/enums/viewtype.enum';\nimport { MultiPropertyChangeValue } from '../../../models/layout/layout.change.model';\nimport { LayoutBase } from '../../../models/layoutbase.model';\nimport { LayoutElement } from '../../../models/layoutelement.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { SettingsService } from '../../../services/settings.service';\nimport { IBaseComponent } from '../../controls/base.component';\n\n@Component({\n selector: 'evi-grid',\n templateUrl: './grid.layout.html',\n styleUrls: ['./grid.layout.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GridLayout extends IBaseComponent {\n\n static Type: any = 'grid';\n static Default = {\n Editable: true,\n Type: 'grid'\n };\n\n ItemsValue;\n get Items() {\n return this.ItemsValue;\n }\n set Items(val) {\n this.ItemsValue = of(val);\n }\n dragType;\n dragItem;\n EditItems;\n internalDrag = false;\n\n Dragging;\n\n constructor(private settingsService: SettingsService, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n }\n\n onLayoutElementSet() {\n if (this.LayoutElement.ViewType === ViewType.Edit) {\n this.InitStyles();\n }\n this.Items = this.LayoutElementValue.Elements;\n this.cdRef.detectChanges();\n\n }\n onLayoutElementChanged() {\n if (this.LayoutElement.ViewType === ViewType.Edit) {\n this.InitStyles();\n }\n this.Items = this.LayoutElementValue.Elements;\n this.cdRef.detectChanges();\n }\n ControlInitialized() {\n let init = false;\n if (!Array.isArray(this.LayoutElement.ColumnDefinitions) || this.LayoutElement.ColumnDefinitions.length === 0) {\n const col = new LayoutBase();\n col.Size = new LayoutUnit();\n col.Size.Value = 1;\n col.Size.Type = UnitType.fr;\n this.LayoutElement.ColumnDefinitions = [col];\n init = true;\n }\n if (!Array.isArray(this.LayoutElement.RowDefinitions) || this.LayoutElement.RowDefinitions.length === 0) {\n const row = new LayoutBase();\n row.Size = new LayoutUnit();\n row.Size.Value = 1;\n row.Size.Type = UnitType.fr;\n this.LayoutElement.RowDefinitions = [row];\n init = true;\n }\n if (init) {\n this.LayoutElement.ValuesChanged.next();\n }\n\n this.Subscriptions['DragStart'] = this.settingsService.DragStart.subscribe((item) => {\n if (this.LayoutElement.Selected) {\n this.dragItem = item.item;\n this.Dragging = true;\n }\n });\n this.Subscriptions['Delete'] = this.settingsService.Delete.subscribe((item) => {\n this.removeItem(item);\n });\n this.Subscriptions['DragType'] = LayoutService.DragType.subscribe((dragType) => {\n if (dragType === this.LayoutElement.ID) {\n this.dragType = dragType;\n } else {\n this.dragType = null;\n }\n });\n this.Subscriptions['viewtype'] = LayoutService.ViewType.subscribe((viewType) => {\n this.LayoutElement.ViewType = viewType;\n if (viewType === ViewType.Edit) {\n this.createEditItems();\n } else {\n this.EditItems = of([]);\n }\n this.cdRef.detectChanges();\n });\n this.Subscriptions['selection'] = LayoutService.SelectionChanged.subscribe((value) => {\n this.cdRef.detectChanges();\n });\n }\n\n\n //#region DragHandling\n itemDrop(event, item) {\n let insert;\n if (this.internalDrag) {\n insert = this.dragItem;\n this.dragItem.Column = item.Column;\n this.dragItem.Row = item.Row;\n this.dragItem.ColSpan = 1;\n this.dragItem.RowSpan = 1;\n } else {\n insert = LayoutHelper.GetDroppedLayoutElement(this.dragItem);\n insert.Column = item.Column;\n insert.Row = item.Row;\n insert.ColSpan = 1;\n insert.RowSpan = 1;\n insert.Parent = this.LayoutElement;\n this.LayoutElement.Elements.push(insert);\n }\n this.dragItem = null;\n this.internalDrag = false;\n this.Dragging = null;\n this.LayoutElement.ValuesChanged.next();\n if (this.internalDrag) {\n LayoutService.OnLayoutElementMoved({\n ElementID: insert.ID,\n Index: this.LayoutElementValue.Elements.indexOf(insert),\n NewParentID: this.LayoutElementValue.ID,\n OldParentID: this.LayoutElementValue.ID,\n });\n } else {\n LayoutService.OnLayoutElementAdded({\n ElementContent: JSON.stringify(insert),\n Index: this.LayoutElementValue.Elements.length - 1,\n ParentID: this.LayoutElementValue.ID\n });\n }\n this.cdRef.detectChanges();\n }\n dragStart(event, item) {\n this.dragItem = item;\n let col = item.Column;\n if (item.ColSpan) {\n col += item.ColSpan - 1;\n }\n this.Dragging = { Column: col, Row: item.Row };\n this.internalDrag = true;\n }\n dragEnd(event, item) {\n delete item.Dragging;\n this.internalDrag = false;\n this.Dragging = null;\n }\n onDragEnter(event, item) {\n event.currentTarget.style.border = '2px solid var(--appbuilder-primary-color)';\n }\n onDragLeave(event, item) {\n event.currentTarget.style.border = '1px solid black';\n }\n //#endregion\n removeItem(item) {\n const index = this.LayoutElementValue.Elements.indexOf(item);\n if (index > -1) {\n this.LayoutElementValue.Elements.splice(index, 1);\n LayoutService.SelectedItem.next(null);\n LayoutService.OnLayoutElementRemoved({\n ElementID: item.ID,\n ElementName: item.Name ? item.Name : item.ID,\n ParentID: this.LayoutElementValue.ID\n });\n this.cdRef.detectChanges();\n }\n }\n itemSelected(item, event) {\n if (!item.Selected && !this.FromBaseLayout) {\n LayoutService.SelectedItems.next(null);\n LayoutService.SelectedItem.next(item);\n \n }\n }\n trackByID(index, item) {\n return item.ID;\n }\n //#region Style\n InitStyles() {\n this.createEditItems();\n }\n createEditItems() {\n if (this.LayoutElement.ViewType === ViewType.Edit) {\n if (this.LayoutElement.RowDefinitions && this.LayoutElement.RowDefinitions.length > 0 &&\n this.LayoutElement.ColumnDefinitions && this.LayoutElement.ColumnDefinitions.length > 0) {\n const EditItems = [];\n for (let row = 1; row <= this.LayoutElement.RowDefinitions.length; row++) {\n for (let col = 1; col <= this.LayoutElement.ColumnDefinitions.length; col++) {\n const item = new LayoutElement();\n item.Column = col;\n item.Row = row;\n //item.SetViewType(ViewType.Edit);\n item.Editable = true;\n EditItems.push(item);\n }\n }\n this.EditItems = of(EditItems);\n }\n } else {\n this.EditItems = of([]);\n }\n this.cdRef.detectChanges();\n }\n //#endregion\n}\nexport class GridPanel extends BasePanel {\n static override SIDS = ['9232597e-f071-49fe-a98a-8cae8cae58b0', '604d23ec-332b-4dd1-8c4d-0e16ae7dadc9', '62cb22ea-9801-4ece-b37b-f8786db9981c']\n static override ElementType = 'grid'\n private static SendColChange(cols) {\n const keys = Object.keys(cols);\n if (keys.length > 0) {\n const mlpcv: MultiPropertyChangeValue[] = [];\n mlpcv.push({\n ElementIDs: [GridPanel.SelectedItem.ID],\n Properties: [{\n PropertyName: 'ColumnDefinitions',\n Value: GridPanel.SelectedItem.ColumnDefinitions\n }]\n });\n keys.forEach(k => {\n mlpcv.push({\n ElementIDs: cols[k],\n Properties: [{\n PropertyName: 'Column',\n Value: parseInt(k, 10)\n }]\n });\n });\n LayoutService.OnMultiLayoutPropertyChanged(mlpcv);\n GridPanel.SelectedItem.ValuesChanged.next();\n }\n }\n private static SendRowChange(rows) {\n const keys = Object.keys(rows);\n if (keys.length > 0) {\n const mlpcv: MultiPropertyChangeValue[] = [];\n mlpcv.push({\n ElementIDs: [GridPanel.SelectedItem.ID],\n Properties: [{\n PropertyName: 'RowDefinitions',\n Value: GridPanel.SelectedItem.RowDefinitions\n }]\n });\n keys.forEach(k => {\n mlpcv.push({\n ElementIDs: rows[k],\n Properties: [{\n PropertyName: 'Row',\n Value: parseInt(k, 10)\n }]\n });\n });\n LayoutService.OnMultiLayoutPropertyChanged(mlpcv);\n GridPanel.SelectedItem.ValuesChanged.next();\n }\n }\n\n private static GetColRowCaption(item, index) {\n let retVal = (index + 1).toString() + '. ';\n if (item && item.Size) {\n if (item.Size.Type == UnitType.Auto) {\n retVal += 'auto';\n } else if (item.Size.Type == UnitType.Rest) {\n retVal += 'rest';\n } else if (item.Size.Value != null) {\n switch (item.Size.Type) {\n case UnitType.em:\n retVal += item.Size.Value + 'em';\n break;\n case UnitType.Percent:\n retVal += item.Size.Value + '%';\n break;\n case UnitType.Pixel:\n retVal += item.Size.Value + ' Pixel';\n break;\n case UnitType.fr:\n retVal += item.Size.Value + 'fr';\n break;\n case UnitType.vw:\n retVal += item.Size.Value + 'vw';\n break;\n case UnitType.vh:\n retVal += item.Size.Value + 'vh';\n break;\n case UnitType.calc:\n retVal += 'calc(' + item.Size.Value + ')';\n break;\n }\n }\n }\n return retVal;\n }\n\n static InitPanel() {\n this.InitSelectedItem();\n PROPERTYGROUPS.push({\n SID: '9232597e-f071-49fe-a98a-8cae8cae58b0',\n ID: 'gridcolumns',\n Caption: '@@ColumnDefinitions',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto'],\n CheckOnChange: GenericMenuTab.CheckOnChange,\n CheckVisibility: (item) => {\n return item.ElementType == 'grid';\n }\n });\n PROPERTIES.push({\n ID: \"ColumnDefinitions\",\n Parent: \"gridcolumns\",\n Content: new ComponentPortal(ListBoxThemeControl),\n Properties: [\n {\n ID: \"Size\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(UnitSelectionControl),\n Label: \"@@Size\",\n InitArgs: {\n RemoveTypes:[]\n }\n }\n ],\n InitArgs: {\n GenerateNewItem: () => {\n const item = new LayoutBase();\n item.Size = new LayoutUnit();\n item.Size.Value = 1;\n item.Size.Type = UnitType.fr;\n return item;\n },\n GetCaption: (item, index) => {\n return GridPanel.GetColRowCaption(item, index);\n },\n DropEntry: (event, Component) => {\n if (event.previousIndex !== event.currentIndex) {\n if (GridPanel.SelectedItem && GridPanel.SelectedItem.ColumnDefinitions) {\n moveItemInArray(GridPanel.SelectedItem.ColumnDefinitions, event.previousIndex, event.currentIndex);\n const cols = {};\n if (GridPanel.SelectedItem.Elements) {\n GridPanel.SelectedItem.Elements.forEach(x => {\n let colVal;\n if (x.Column === event.previousIndex + 1) {\n x.Column = event.currentIndex + 1;\n colVal = '' + x.Column;\n } else if (event.currentIndex < event.previousIndex) {\n if (x.Column > event.currentIndex && x.Column <= event.previousIndex) {\n x.Column++;\n colVal = '' + x.Column;\n }\n } else {\n if (x.Column > event.previousIndex && x.Column <= event.currentIndex + 1) {\n x.Column--;\n colVal = '' + x.Column;\n }\n }\n if (colVal) {\n const list = cols[colVal];\n if (list) {\n list.push(x.ID);\n } else {\n cols[colVal] = [x.ID];\n }\n }\n });\n }\n GridPanel.SendColChange(cols);\n }\n }\n },\n RemoveItem: (entry) => {\n if (GridPanel.SelectedItem.ColumnDefinitions && GridPanel.SelectedItem.ColumnDefinitions.length > 1) {\n const colIndex = GridPanel.SelectedItem.ColumnDefinitions.indexOf(entry);\n if (colIndex > -1) {\n GridPanel.SelectedItem.ColumnDefinitions.splice(colIndex, 1);\n const length = GridPanel.SelectedItem.ColumnDefinitions.length;\n if (length > 0) {\n if (colIndex < length) {\n entry = GridPanel.SelectedItem.ColumnDefinitions[colIndex];\n } else {\n entry = GridPanel.SelectedItem.ColumnDefinitions[length - 1];\n }\n } else {\n entry = null;\n }\n const cols = {};\n if (GridPanel.SelectedItem.Elements) {\n GridPanel.SelectedItem.Elements.forEach(x => {\n let colVal;\n if (x.Column > colIndex + 1) {\n x.Column--;\n colVal = '' + x.Column;\n }\n if (x.Column > GridPanel.SelectedItem.ColumnDefinitions.length) {\n x.Column = GridPanel.SelectedItem.ColumnDefinitions.length;\n colVal = '' + x.Column;\n }\n if (colVal) {\n const list = cols[colVal];\n if (list) {\n list.push(x.ID);\n } else {\n cols[colVal] = [x.ID];\n }\n }\n });\n }\n GridPanel.SendColChange(cols);\n }\n }\n }\n }\n });\n PROPERTYGROUPS.push({\n SID: '604d23ec-332b-4dd1-8c4d-0e16ae7dadc9',\n ID: 'gridrows',\n Caption: '@@RowDefinitions',\n Index: 101,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'grid';\n }\n });\n PROPERTIES.push({\n ID: \"RowDefinitions\",\n Parent: \"gridrows\",\n Content: new ComponentPortal(ListBoxThemeControl),\n Properties: [\n {\n ID: \"Size\",\n Parent: \"InputGroup\",\n Content: new ComponentPortal(UnitSelectionControl),\n Label: \"@@Size\",\n InitArgs: {\n RemoveTypes: []\n }\n }\n ],\n InitArgs: {\n GenerateNewItem: () => {\n const item = new LayoutBase();\n item.Size = new LayoutUnit();\n item.Size.Value = 1;\n item.Size.Type = UnitType.fr;\n return item;\n },\n GetCaption: (item, index) => {\n return GridPanel.GetColRowCaption(item, index);\n },\n DropEntry: (event, Component) => {\n if (event.previousIndex !== event.currentIndex) {\n if (GridPanel.SelectedItem && GridPanel.SelectedItem.RowDefinitions) {\n moveItemInArray(this.SelectedItem.RowDefinitions, event.previousIndex, event.currentIndex);\n const rows = {};\n if (GridPanel.SelectedItem.Elements) {\n GridPanel.SelectedItem.Elements.forEach(x => {\n let rowVal;\n if (x.Row === event.previousIndex + 1) {\n x.Row = event.currentIndex + 1;\n rowVal = '' + x.Row;\n } else if (event.currentIndex < event.previousIndex) {\n if (x.Row > event.currentIndex && x.Row <= event.previousIndex) {\n x.Row++;\n rowVal = '' + x.Row;\n }\n } else {\n if (x.Row > event.previousIndex && x.Row <= event.currentIndex + 1) {\n x.Row--;\n rowVal = '' + x.Row;\n }\n }\n if (rowVal) {\n const list = rows[rowVal];\n if (list) {\n list.push(x.ID);\n } else {\n rows[rowVal] = [x.ID];\n }\n }\n });\n }\n GridPanel.SendRowChange(rows);\n }\n }\n },\n RemoveItem: (entry) => {\n if (GridPanel.SelectedItem.RowDefinitions && GridPanel.SelectedItem.RowDefinitions.length > 1) {\n const rowIndex = GridPanel.SelectedItem.RowDefinitions.indexOf(entry);\n if (rowIndex > -1) {\n GridPanel.SelectedItem.RowDefinitions.splice(rowIndex, 1);\n const length = GridPanel.SelectedItem.RowDefinitions.length;\n if (length > 0) {\n if (rowIndex < length) {\n entry = GridPanel.SelectedItem.RowDefinitions[rowIndex];\n } else {\n entry = GridPanel.SelectedItem.RowDefinitions[length - 1];\n }\n } else {\n entry = null;\n }\n const rows = {};\n if (GridPanel.SelectedItem.Elements) {\n GridPanel.SelectedItem.Elements.forEach(x => {\n let rowVal;\n if (x.Row > rowIndex + 1) {\n x.Row--;\n rowVal = '' + x.Row;\n }\n if (x.Row > GridPanel.SelectedItem.RowDefinitions.length) {\n x.Row = GridPanel.SelectedItem.RowDefinitions.length;\n rowVal = '' + x.Row;\n }\n if (rowVal) {\n const list = rows[rowVal];\n if (list) {\n list.push(x.ID);\n } else {\n rows[rowVal] = [x.ID];\n }\n }\n });\n }\n this.SendRowChange(rows);\n }\n }\n }\n }\n });\n PROPERTYGROUPS.push({\n SID: '62cb22ea-9801-4ece-b37b-f8786db9981c',\n ID: 'gridposition',\n Caption: '@@GridPosition',\n Index: 105,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['1fr','1fr'],\n Rows: ['auto'],\n CheckOnChange: GenericMenuTab.CheckOnChange,\n CheckVisibility: (item) => {\n return item && item.Parent && item.Parent.ElementType == 'grid';\n }\n });\n PROPERTIES.push({\n ID: \"Column\",\n Parent: \"gridposition\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Column\",\n InitArgs: {\n InputType: \"number\",\n Minimum:1\n }\n });\n PROPERTIES.push({\n ID: \"Row\",\n Parent: \"gridposition\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@Row\",\n InitArgs: {\n InputType: \"number\",\n Minimum: 1\n }\n });\n PROPERTIES.push({\n ID: \"ColSpan\",\n Parent: \"gridposition\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@ColSpan\",\n InitArgs: {\n InputType: \"number\",\n Minimum: 1\n }\n });\n PROPERTIES.push({\n ID: \"RowSpan\",\n Parent: \"gridposition\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@RowSpan\",\n InitArgs: {\n InputType: \"number\",\n Minimum: 1\n }\n });\n PROPERTIES.push({\n ID: \"CellOverflow\",\n Parent: \"gridposition\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@CellOverflow\",\n Column:1,\n ColSpan:2,\n InitArgs: {\n EnumSource: Overflow\n }\n });\n }\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { LayoutService } from '../../../services/layout.service';\nimport { SettingsService } from '../../../services/settings.service';\nimport { SideNavService } from '../../../services/sidenav.service';\nimport { IBaseComponent } from '../../controls/base.component';\n\n@Component({\n selector: 'evi-nav-layout',\n templateUrl: './navigation.layout.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NavigationLayout extends IBaseComponent {\n static Type: any = 'navicontrol';\n static Default = {\n Editable: true,\n Type: 'navicontrol'\n };\n\n NavigationItems = [];\n Instance;\n URL;\n dragType;\n dragItem;\n ContentItem;\n IsLayoutPage = false;\n\n private static BuildStructure(navList, url) {\n const retVal = [];\n if (navList) {\n navList.forEach(x => {\n if (x.IsVisible && !x.InVisible) {\n let icon = 'radio_button_unchecked';\n if (x.Icon) {\n icon = x.Icon;\n }\n if (x.Url) {\n retVal.push({\n Caption: x.Label,\n Selected: url === x.Url,\n Icon: icon,\n Url: x.Url\n });\n } else if (x.children && x.children.length > 0) {\n const children = NavigationLayout.BuildStructure(x.children, url);\n if (children.length > 0) {\n retVal.push({\n Caption: x.Label,\n Selected: children.some(y => y.Selected),\n Icon: icon,\n Children: children\n });\n }\n }\n }\n });\n }\n return retVal;\n }\n\n constructor(private router: Router, private settingsService: SettingsService, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.Instance = this;\n this.URL = router.url;\n this.Subscriptions['Router'] = router.events.subscribe(ev => {\n if (ev instanceof NavigationEnd) {\n this.URL = ev.url;\n this.checkNav(SideNavService.SelectedNavigation.getValue());\n }\n });\n this.Subscriptions['DragStart'] = this.settingsService.DragStart.subscribe((item) => {\n this.dragItem = item.item;\n });\n this.Subscriptions['Delete'] = this.settingsService.Delete.subscribe((item) => {\n this.removeItem(item);\n });\n }\n ControlInitialized() {\n this.Subscriptions['DragType'] = LayoutService.DragType.subscribe((dragType) => {\n if (dragType === this.LayoutElement.ID) {\n this.dragType = dragType;\n } else {\n this.dragType = null;\n }\n });\n }\n ngOnInit(): void {\n super.ngOnInit();\n this.checkNav(SideNavService.SelectedNavigation.getValue());\n this.Subscriptions['SelectedNavigation'] = SideNavService.SelectedNavigation.subscribe((nav) => { this.checkNav(nav); });\n }\n\n onLayoutElementSet() {\n if (this.LayoutElementValue && this.LayoutElementValue.Elements && this.LayoutElementValue.Elements.length > 0) {\n this.ContentItem = this.LayoutElementValue.Elements[0];\n } else {\n this.ContentItem = null;\n }\n }\n\n checkNav(nav) {\n if (this.URL === '/layout') {\n this.IsLayoutPage = true;\n } else {\n this.IsLayoutPage = false;\n if (nav) {\n this.NavigationItems = NavigationLayout.BuildStructure(nav.NavigationItems, this.URL);\n } else {\n this.NavigationItems = [];\n }\n }\n }\n\n OnNavClicked(nav) {\n if (nav && nav.Url) {\n this.router.navigateByUrl(nav.Url);\n }\n }\n\n itemSelected(item) {\n if (!item.Selected) {\n LayoutService.SelectedItem.next(item);\n }\n }\n\n removeItem(item) {\n if (this.LayoutElementValue && this.LayoutElementValue.Elements) {\n const index = this.LayoutElementValue.Elements.indexOf(item);\n if (index > -1) {\n this.LayoutElementValue.Elements.splice(index, 1);\n this.onLayoutElementSet();\n LayoutService.SelectedItem.next(null);\n LayoutService.OnLayoutElementRemoved({\n ElementID: item.ID,\n ElementName: item.Name ? item.Name : item.ID,\n ParentID: this.LayoutElementValue.ID\n });\n }\n }\n }\n\n itemDrop(ev) {\n if (this.LayoutElementValue) {\n if (!this.LayoutElementValue.Elements) {\n this.LayoutElementValue.Elements = [];\n }\n if (this.LayoutElementValue.Elements.length === 0) {\n let insert;\n insert = LayoutHelper.GetDroppedLayoutElement(this.dragItem);\n insert.Parent = this.LayoutElement;\n this.LayoutElement.Elements.push(insert);\n LayoutService.OnLayoutElementAdded({\n ElementContent: JSON.stringify(insert),\n Index: 0,\n ParentID: this.LayoutElementValue.ID\n });\n }\n }\n ev.currentTarget.style.backgroundColor = 'transparent';\n }\n}\n","import { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, KeyValueDiffers, Output, ViewEncapsulation } from '@angular/core';\nimport { CompactType, DisplayGrid, GridsterConfig, GridsterItem, GridType } from 'angular-gridster2';\nimport { BehaviorSubject } from 'rxjs';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ViewType } from '../../../models/enums/viewtype.enum';\nimport { Raster } from '../../../models/layout/raster.model';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { SettingsService } from '../../../services/settings.service';\nimport { IBaseComponent } from '../../controls/base.component';\n\n@Component({\n selector: 'evi-raster',\n templateUrl: './raster.layout.html',\n styleUrls: ['./raster.layout.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class RasterLayout extends IBaseComponent {\n\n static Type: any = 'raster';\n static Default: GridsterConfig = {\n Options: {\n gridType: GridType.Fit,\n maxCols: 30,\n minCols: 30,\n maxRows: 20,\n minRows: 20,\n minItemCols: 1,\n maxItemCols: 30,\n minItemRows: 1,\n maxItemRows: 20,\n outerMargin: false,\n margin: 0,\n compactType: CompactType.None,\n enableEmptyCellDrop: true,\n displayGrid: DisplayGrid.OnDragAndResize,\n pushItems: false,\n draggable: {\n enabled: true,\n ignoreContentClass: 'gridster-item-content',\n ignoreContent: true,\n dragHandleClass: 'drag-handler'\n },\n resizable: {\n enabled: false,\n handles: {\n s: true,\n e: true,\n n: true,\n w: true,\n se: true,\n ne: true,\n sw: true,\n nw: true\n }\n }\n }, Items: null, Editable: true, Type: 'raster'\n };\n\n TempOptions;\n dragItem;\n //#region Options\n @Input()\n get Options(): GridsterConfig {\n return this.LayoutElement.RasterOptions;\n }\n set Options(val: GridsterConfig) {\n if (val) {\n this.CheckLayoutElement();\n this.LayoutElement.RasterOptions = val;\n this.LayoutElement.RasertOptions.emptyCellDropCallback = this.emptyCellClick.bind(this);\n this.changedOptions();\n this.OptionsChange.emit(val);\n }\n }\n\n @Output() OptionsChange = new EventEmitter();\n //#endregion\n //#region Items\n ItemsValue: Array;\n\n @Input()\n get Items(): Array {\n return this.ItemsValue;\n }\n set Items(val: Array) {\n this.ItemsValue = val;\n this.ItemsChange.emit(this.ItemsValue);\n }\n\n @Output() ItemsChange = new EventEmitter>();\n //#endregion\n\n //#region Editable\n EditableValue: boolean;\n\n @Input()\n get Editable(): boolean {\n return this.EditableValue;\n }\n set Editable(val: boolean) {\n this.EditableValue = val;\n\n this.changedOptions();\n\n this.EditableChange.emit(this.EditableValue);\n }\n\n @Output() EditableChange = new EventEmitter();\n //#endregion\n differ;\n dragType;\n gridster;\n constructor(private settingsService: SettingsService, differs: KeyValueDiffers,\n cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.differ = differs.find([]).create();\n }\n\n ControlInitialized() {\n this.Subscriptions['DragStart'] = this.settingsService.DragStart.subscribe((item) => {\n this.dragItem = item.item;\n });\n this.Subscriptions['Delete'] = this.settingsService.Delete.subscribe((item) => {\n this.removeItem(item);\n });\n this.Subscriptions['DragType'] = LayoutService.DragType.subscribe((dragType) => {\n if (dragType === this.LayoutElement.ID) {\n this.dragType = dragType;\n } else {\n this.dragType = null;\n }\n });\n }\n Init = true;\n onLayoutElementSet() {\n this.Editable = this.LayoutElementValue.Editable;\n if (!this.LayoutElementValue['RasterOptions']) {\n this.LayoutElementValue['RasterOptions'] = JSON.parse(JSON.stringify(RasterLayout.Default.Options));\n }\n\n this.LayoutElementValue['RasterOptions'].initCallback = this.onGridInit.bind(this);\n this.Init = false;\n this.cdRef.detectChanges();\n if (this.LayoutElementValue.ValuesChanged) {\n this.Subscriptions['ValuesChanged'] = this.LayoutElementValue.ValuesChanged.subscribe((viewType) => {\n this.changedOptions();\n });\n }\n const sub = this.Subscriptions['Editable'];\n if (sub) {\n sub.unsubscribe();\n }\n this.Subscriptions['Editable'] = this.LayoutElement.EditableChanged.subscribe((value) => this.Editable = value);\n this.ItemsValue = this.LayoutElementValue.Elements;\n\n this.Subscriptions['ViewType'] = LayoutService.ViewType.subscribe((viewType) => {\n if (viewType === ViewType.Edit) {\n this.LayoutElementValue['RasterOptions'].pushItems = true;\n this.LayoutElementValue['RasterOptions'].draggable = {\n enabled: true,\n ignoreContentClass: 'gridster-item-content',\n ignoreContent: true,\n dragHandleClass: 'drag-handler'\n }\n this.LayoutElementValue['RasterOptions'].resizable.enabled = true;\n } else {\n this.LayoutElementValue['RasterOptions'].pushItems = this.LayoutElement['pushItems'] ? true : false;\n this.LayoutElementValue['RasterOptions'].draggable.enabled = this.LayoutElement['draggable'] ? true : false;\n this.LayoutElementValue['RasterOptions'].resizable.enabled = this.LayoutElement['resizable'] ? true : false;\n }\n this.changedOptions();\n });\n }\n\n // ngDoCheck() {\n // let valuesChanged = false;\n // // if (this.LayoutElement['RasterOptions']) {\n // // const changes = this.differ.diff(this.LayoutElement['RasterOptions']);\n // // if (changes) {\n // // valuesChanged = true;\n // // }\n // // }\n // if (valuesChanged) {\n // this.changedOptions();\n // }\n // }\n\n onGridInit(gridster) {\n this.gridster = gridster;\n }\n\n changedOptions() {\n const opt = this.LayoutElementValue['RasterOptions'];\n if (opt && opt.api && typeof opt.api.optionsChanged === 'function') {\n opt.api.optionsChanged();\n this.cdRef.detectChanges();\n }\n }\n\n removeItem(item) {\n const index = this.Items.indexOf(item);\n if (index > -1) {\n this.Items.splice(index, 1);\n LayoutService.SelectedItem.next(null);\n LayoutService.OnLayoutElementRemoved({\n ElementID: item.ID,\n ElementName: item.Name ? item.Name : item.ID,\n ParentID: this.LayoutElementValue.ID\n });\n this.cdRef.detectChanges();\n }\n }\n\n itemSelected(item, event) {\n if (!item.Selected && !this.FromBaseLayout) {\n LayoutService.SelectedItems.next(null);\n LayoutService.SelectedItem.next(item);\n }\n }\n emptyCellClick(event: MouseEvent, empty: GridsterItem): void {\n this.addItem(empty);\n }\n\n itemDrop(event) {\n const empty = this.gridster.emptyCell.getValidItemFromEvent(event);\n this.addItem(empty);\n }\n\n addItem(empty: GridsterItem) {\n let item;\n item = LayoutHelper.GetDroppedLayoutElement(this.dragItem);\n item.x = empty.x;\n item.y = empty.y;\n item.cols = 2;\n item.rows = 1;\n item.Parent = this.LayoutElement;\n this.Items.push(item);\n LayoutService.OnLayoutElementAdded({\n ElementContent: JSON.stringify(item),\n Index: this.LayoutElementValue.Elements.length - 1,\n ParentID: this.LayoutElementValue.ID\n });\n this.cdRef.detectChanges();\n }\n\n CheckLayoutElement() {\n if (!this.LayoutElement) {\n this.LayoutElement = new Raster();\n }\n }\n}\nexport class RasterPanel extends BasePanel {\n static override SIDS = ['49989bd2-f50d-4bc9-a2cc-2acc9ba0cb74']\n static override ElementType = 'raster'\n static DataSource: BehaviorSubject = new BehaviorSubject(null);\n static override SetSelectedItem(item) {\n if (item && item.ElementType == RasterPanel.ElementType) {\n if (!item.RasterOptions) {\n item.RasterOptions = JSON.parse(JSON.stringify(RasterLayout.Default.Options));\n }\n RasterPanel.DataSource.next(item.RasterOptions);\n }\n }\n static InitPanel() {\n this.InitSelectedItem()\n PROPERTYGROUPS.push({\n SID:'49989bd2-f50d-4bc9-a2cc-2acc9ba0cb74',\n ID: 'raster',\n Caption: '@@Raster',\n Index: 6,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto'],\n CheckVisibility: (item) => {\n return item.ElementType == RasterPanel.ElementType;\n }\n });\n //LayoutService.SelectedItem.subscribe((item) => {\n // if (item && item.ElementType == RasterPanel.ElementType) {\n // RasterPanel.SetSelectedItem(item);\n // }\n //});\n \n PROPERTIES.push({\n ID: \"maxCols\",\n Parent: \"raster\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@MaximumColumns\",\n DataSource: RasterPanel.DataSource,\n InitArgs: {\n InputType: \"number\",\n Minimum: 0\n }\n });\n PROPERTIES.push({\n ID: \"minCols\",\n Parent: \"raster\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@MinimumColumns\",\n DataSource: RasterPanel.DataSource,\n InitArgs: {\n InputType: \"number\",\n Minimum: 0\n }\n });\n PROPERTIES.push({\n ID: \"fixedColWidth\",\n Parent: \"raster\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@FixedColumnWidth\",\n DataSource: RasterPanel.DataSource,\n InitArgs: {\n InputType: \"number\",\n Minimum: 0\n }\n });\n PROPERTIES.push({\n ID: \"maxRows\",\n Parent: \"raster\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@MaximumRows\",\n DataSource: RasterPanel.DataSource,\n InitArgs: {\n InputType: \"number\",\n Minimum: 0\n }\n });\n PROPERTIES.push({\n ID: \"minRows\",\n Parent: \"raster\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@MinimumRows\",\n DataSource: RasterPanel.DataSource,\n InitArgs: {\n InputType: \"number\",\n Minimum: 0\n }\n });\n PROPERTIES.push({\n ID: \"fixedRowHeight\",\n Parent: \"raster\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@FixedRowHeight\",\n DataSource: RasterPanel.DataSource,\n InitArgs: {\n InputType: \"number\",\n Minimum: 0\n }\n });\n PROPERTIES.push({\n ID: \"maxItemCols\",\n Parent: \"raster\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@MaximumItemColumns\",\n DataSource: RasterPanel.DataSource,\n InitArgs: {\n InputType: \"number\",\n Minimum: 0\n }\n });\n PROPERTIES.push({\n ID: \"minItemCols\",\n Parent: \"raster\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@MinimumItemColumns\",\n DataSource: RasterPanel.DataSource,\n InitArgs: {\n InputType: \"number\",\n Minimum: 0\n }\n });\n PROPERTIES.push({\n ID: \"maxItemRows\",\n Parent: \"raster\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@MaximumItemRows\",\n DataSource: RasterPanel.DataSource,\n InitArgs: {\n InputType: \"number\",\n Minimum: 0\n }\n });\n PROPERTIES.push({\n ID: \"minItemRows\",\n Parent: \"raster\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@MinimumItemRows\",\n DataSource: RasterPanel.DataSource,\n InitArgs: {\n InputType: \"number\",\n Minimum: 0\n }\n });\n const GridTypes = [];\n const gtkeys = Object.keys(GridType);\n gtkeys.forEach((key) => {\n GridTypes.push({ value: key, type: GridType[key] });\n });\n PROPERTIES.push({\n ID: \"gridType\",\n Parent: \"raster\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Grid type\",\n DataSource: RasterPanel.DataSource,\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: GridTypes,\n DisplayMemberPath: \"value\",\n ValueMemberPath: \"type\"\n }\n })\n\n const DisplayGrids = [];\n const dgkeys = Object.keys(DisplayGrid);\n dgkeys.forEach((key) => {\n DisplayGrids.push({ value: key, type: DisplayGrid[key] });\n });\n PROPERTIES.push({\n ID: \"displayGrid\",\n Parent: \"raster\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@DisplayGrid\",\n DataSource: RasterPanel.DataSource,\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n ItemsSource: DisplayGrids,\n DisplayMemberPath: \"value\",\n ValueMemberPath: \"type\"\n }\n })\n\n\n\n PROPERTIES.push({\n ID: \"mobileBreakpoint\",\n Parent: \"raster\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@mobileBreakpoint\",\n DataSource: RasterPanel.DataSource,\n InitArgs: {\n InputType: \"number\",\n Minimum: 0\n }\n });\n PROPERTIES.push({\n ID: \"pushItems\",\n Parent: \"raster\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@PushItems\"\n }\n });\n PROPERTIES.push({\n ID: \"draggable\",\n Parent: \"raster\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Draggable\"\n }\n });\n PROPERTIES.push({\n ID: \"resizable\",\n Parent: \"raster\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@Resizable\"\n }\n });\n }\n}","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { IPageInfo } from 'ngx-virtual-scroller';\nimport { of, Subject } from 'rxjs';\nimport { CheckBoxThemeControl } from '../../../appbuilder/controls/checkbox/checkbox.control';\nimport { ComboboxThemeControl } from '../../../appbuilder/controls/combobox/combobox.theme.control';\nimport { TextboxThemeControl } from '../../../appbuilder/controls/textbox/textbox.theme.control';\nimport { GenericMenuTab } from '../../../appbuilder/menutabs/generic/generic.menu.tab';\nimport { BasePanel } from '../../../appbuilder/panels/base.panel';\nimport { FilterHelper } from '../../../helpers/filter.helper';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { FlexContentAlignment, FlexItemAlignment } from '../../../models/enums/alignment.enum';\nimport { Orientation } from '../../../models/enums/orientation.enum';\nimport { PropertyGroupDisplay } from '../../../models/enums/propertygroupdisplay.enum';\nimport { ViewType } from '../../../models/enums/viewtype.enum';\nimport { LayoutElement } from '../../../models/layoutelement.model';\nimport { DataService } from '../../../services/data.service';\nimport { PROPERTIES, PROPERTYGROUPS } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { SettingsService } from '../../../services/settings.service';\nimport { IBaseComponent } from '../../controls/base.component';\n\n@Component({\n selector: 'evi-repeat',\n templateUrl: './repeating.layout.html',\n styleUrls: ['./repeating.layout.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RepeatingLayout extends IBaseComponent {\n\n static Type: any = 'repeat';\n static Default = {\n Editable: true,\n Type: 'repeat'\n };\n DisableAutoLoad = false;\n _Items;\n _Items$;\n _RawItems;\n @Input()\n public get Items() {\n return this._Items;\n }\n public set Items(val) {\n this._RawItems = val;\n this._Items = of(val);\n if (this.ItemsChange) {\n this.ItemsChange.emit(this._Items);\n }\n this.RefreshCount += 1;\n }\n @Output()\n public ItemsChange = new EventEmitter();\n\n OrientationValue;\n @Input()\n public get Orientation() {\n if (this.LayoutElement) {\n return this.LayoutElement.Orientation;\n } else {\n return this.Orientation;\n }\n }\n public set Orientation(val) {\n if (this.LayoutElement) {\n this.LayoutElement.Orientation = val;\n if (this.OrientationChange) {\n this.OrientationChange.emit(this.LayoutElement.Orientation);\n }\n } else {\n this.OrientationValue = val;\n if (this.OrientationChange) {\n this.OrientationChange.emit(this.OrientationValue);\n }\n }\n this.cdRef.detectChanges();\n }\n @Output()\n public OrientationChange = new EventEmitter();\n\n differ;\n dragItem;\n dragType;\n RepeatElements;\n RepeatElements$;\n //#region DataSource\n @Input()\n get DataSource() {\n return this.DataSourceValue;\n }\n set DataSource(val) {\n this.DataSourceValue = val;\n if (this.DataBindingProperties && this.DataBindingProperties.IsDataBinding && !this.DataBindingProperties.IsShared) {\n this.updateRepeatElements();\n }\n this.DataSourceChange.emit(this.DataSourceValue);\n this.cdRef.detectChanges();\n }\n\n @Output() DataSourceChange = new EventEmitter();\n //#endregion\n DataBindingProperties;\n RepeatDataSource;\n\n _Horizontal = false;\n get Horizontal() {\n return this._Horizontal;\n }\n set Horizontal(value) {\n this._Horizontal = value;\n this.cdRef.detectChanges();\n }\n\n constructor(private dataService: DataService, private settingsService: SettingsService,\n cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n }\n onInit() {\n this.ControlInitialized();\n this.setInitialized();\n }\n\n onLayoutElementSet() {\n this.SetOrientation();\n if (this.RepeatDataSource) {\n this.RepeatDataSource.pageLength = this.LayoutElementValue.PageSize ? this.LayoutElementValue.PageSize : 100;\n }\n this.Items = this.LayoutElementValue.Elements;\n this.updateRepeatElements();\n }\n\n SetOrientation() {\n let result = false;\n switch (this.LayoutElementValue.Orientation) {\n case Orientation.VerticalWrapping:\n case Orientation.VerticalReverseWrapping:\n case Orientation.Horizontal: \n case Orientation.HorizontalReverse: result = true; break;\n\n case Orientation.HorizontalWrapping:\n case Orientation.HorizontalReverseWrapping:\n case Orientation.Vertical:\n case Orientation.VerticalReverse: result = false; break;\n }\n this.Horizontal = result;\n }\n\n onLayoutElementChanged() {\n this.SetOrientation();\n if (this.RepeatDataSource) {\n this.RepeatDataSource.pageLength = this.LayoutElementValue.PageSize ? this.LayoutElementValue.PageSize : 100;\n }\n this.Items = this.LayoutElementValue.Elements;\n this.updateRepeatElements();\n }\n\n ControlInitialized() {\n this.cdRef.detectChanges();\n this.DisableAutoLoad = this.LayoutElementValue.DisableAutoLoad;\n this.Subscriptions['DragStart'] = this.settingsService.DragStart.subscribe((item) => {\n this.dragItem = item.item;\n });\n this.Subscriptions['Delete'] = this.settingsService.Delete.subscribe((item) => {\n this.removeItem(item);\n });\n this.Subscriptions['DragType'] = LayoutService.DragType.subscribe((dragType) => {\n if (dragType === this.LayoutElement.ID) {\n this.dragType = dragType;\n } else {\n this.dragType = null;\n }\n });\n this.Subscriptions['DataSourceChange'] = this.DataSourceChange.subscribe(x => {\n this.updateRepeatElements();\n });\n this.Subscriptions[\"ViewType\"] = LayoutService.ViewType.subscribe(x => {\n if (x == ViewType.View) {\n this.updateRepeatElements();\n }\n });\n this.Subscriptions['selection'] = LayoutService.SelectionChanged.subscribe((value) => {\n this.cdRef.detectChanges();\n });\n this.Subscriptions['Values'] = this.LayoutElementValue.ValuesChanged.subscribe((Property) => {\n this.cdRef.detectChanges();\n });\n MetaHelper.FindDataBindingProperties(this.Layout, this.LayoutElementValue).then(result => {\n if (result) {\n this.DataBindingProperties = result;\n if (result.IsDataBinding) {\n if (result.IsShared) {\n // console.log('shared');\n // this.listDataSource = new SharedDataBindingSource(this, result.Table, this.dataService, this.DisableAutoLoad);\n } else {\n this.updateRepeatElements();\n }\n } else {\n this.RepeatDataSource = new DataSourceRepeatSource(this, result.Table, this.dataService);\n this.RepeatDataSource.pageLength = this.LayoutElementValue.PageSize ? this.LayoutElementValue.PageSize : 100;\n \n if (!this.DisableAutoLoad) {\n this.RepeatDataSource.LoadData();\n }\n this.DisableAutoLoad = false;\n }\n } else {\n // this.listDataSource = new SimpleDataSource(this, { Fields: [] });\n }\n if (this.RepeatDataSource) {\n this.RepeatDataSource.Loading.subscribe((status) => {\n if (!status) {\n this.DataSourceValue = this.RepeatDataSource.DataSource;\n this.updateRepeatElements();\n }\n });\n }\n });\n }\n\n updateRepeatElements() {\n const repeatElements = [];\n if (Array.isArray(this.DataSourceValue) && Array.isArray(this._RawItems)) {\n const json = JSON.stringify(this._RawItems);\n this.DataSourceValue.forEach((entry, index) => {\n const elements = [];\n const arrayCopy = JSON.parse(json);\n arrayCopy.forEach(item => {\n const copy = plainToClass(LayoutElement, item);\n copy['Parent'] = this.LayoutElementValue;\n elements.push(copy);\n });\n repeatElements.push({\n Data: entry,\n Index: index,\n Elements: elements,\n FlexFill: (elements && elements.length > 0) ? elements[0].FlexFill : null\n });\n });\n }\n this.RepeatElements$ = of(repeatElements);\n this.RepeatElements = repeatElements;\n this.RefreshCount += 1;\n this.cdRef.detectChanges();\n }\n onScroll(event: IPageInfo) {\n if (this.RepeatDataSource && this.RepeatDataSource.initialized) {\n if (event && event.endIndex !== this.RepeatDataSource.DataSource.length - 1) return;\n if (this.RepeatDataSource) {\n this.RepeatDataSource.onScroll();\n }\n }\n }\n ExecuteRefresh() {\n if (this.DataBindingProperties) {\n if (this.DataBindingProperties.IsDataBinding) {\n if (this.DataBindingProperties.IsShared) {\n // this.listDataSource = new SharedDataBindingSource(this, result.Table, this.dataService, this.DisableAutoLoad);\n } else {\n this.updateRepeatElements();\n }\n } else {\n if (!this.RepeatDataSource) {\n this.RepeatDataSource = new DataSourceRepeatSource(this, this.DataBindingProperties.Table, this.dataService);\n }\n this.RepeatDataSource.pageLength = this.LayoutElementValue.PageSize ? this.LayoutElementValue.PageSize : 100;\n this.RepeatDataSource.LoadData();\n }\n }\n if (this.RepeatDataSource) {\n this.RepeatDataSource.Loading.subscribe((status) => {\n if (!status) {\n this.DataSourceValue = this.RepeatDataSource.DataSource;\n this.updateRepeatElements();\n }\n });\n }\n }\n itemDrop(event) {\n let insert;\n insert = LayoutHelper.GetDroppedLayoutElement(this.dragItem);\n insert.Parent = this.LayoutElement;\n this.LayoutElement.Elements.push(insert);\n LayoutService.OnLayoutElementAdded({\n ElementContent: JSON.stringify(insert),\n Index: this.LayoutElementValue.Elements.length - 1,\n ParentID: this.LayoutElementValue.ID\n });\n event.currentTarget.style.backgroundColor = 'transparent';\n }\n\n removeItem(item) {\n const index = this.LayoutElement.Elements.indexOf(item);\n if (index > -1) {\n this.LayoutElement.Elements.splice(index, 1);\n LayoutService.SelectedItem.next(null);\n LayoutService.OnLayoutElementRemoved({\n ElementID: item.ID,\n ElementName: item.Name ? item.Name : item.ID,\n ParentID: this.LayoutElementValue.ID\n });\n }\n }\n\n itemSelected(item, event) {\n if (!item.Selected) {\n LayoutService.SelectedItems.next(null);\n LayoutService.SelectedItem.next(item);\n }\n }\n GetDropOrientation() {\n switch (this.LayoutElement.Orientation) {\n case Orientation.Horizontal:\n case Orientation.HorizontalReverse:\n case Orientation.HorizontalWrapping:\n case Orientation.HorizontalReverseWrapping: return 'horizontal';\n case Orientation.Vertical:\n case Orientation.VerticalReverse:\n case Orientation.VerticalWrapping:\n case Orientation.VerticalReverseWrapping: return 'vertiacal';\n }\n }\n cdkDrop(event: CdkDragDrop) {\n const item = this._Items[event.previousIndex];\n moveItemInArray(this._Items, event.previousIndex, event.currentIndex);\n LayoutService.OnLayoutElementMoved({\n ElementID: item.ID,\n Index: event.currentIndex,\n OldParentID: this.LayoutElementValue.ID,\n NewParentID: this.LayoutElementValue.ID\n });\n }\n\n GetClass(item, source) {\n if (item && source) {\n source.FlexFill = item.FlexFill;\n }\n if (item && item.FlexFill) {\n return 'forcefill';\n }\n if (source && source.FlexFill) {\n return 'forcefill';\n }\n }\n\n FirstTimeVisible = false;\n handleIntersection(visible: boolean) {\n if (visible && !this.FirstTimeVisible) {\n this.FirstTimeVisible = true;\n this.cdRef.detectChanges();\n }\n }\n}\n\nexport class DataSourceRepeatSource {\n DataSourceID;\n DataSource: any[] = [];\n\n Loading: Subject = new Subject();\n DataSourceElement;\n pageIndex = 0;\n pageLength = 100;\n loaded = false;\n initialized = false;\n\n constructor(component: RepeatingLayout, table, private dataService: DataService) {\n this.DataSourceID = table.SID;\n this.DataSourceElement = MetaHelper.FindValidParent(component.Layout, component.LayoutElement);\n }\n\n onFilterChanged() {\n this.pageIndex = 0;\n this.loaded = false;\n this.DataSource = [];\n this.LoadData();\n }\n\n onScroll() {\n this.LoadData();\n }\n\n LoadData() {\n if (!this.loaded && this.DataSourceID) {\n this.Loading.next(true);\n const filter = FilterHelper.PrepareFilter(this.DataSourceElement);\n filter.StartRow = this.pageIndex * this.pageLength;\n filter.EndRow = filter.StartRow + this.pageLength;\n this.dataService.SearchObjects('dynamicdata', this.DataSourceID, filter).subscribe((data) => {\n this.initialized = true;\n this.pageIndex += 1;\n if (data && data.length > 0) {\n this.DataSource = [...this.DataSource, ...data];\n } else {\n this.loaded = true;\n }\n this.Loading.next(false);\n });\n }\n }\n}\nexport class RepeatingPanel extends BasePanel {\n static override SIDS = ['a3e5be2b-ec03-4877-ad94-939b5b5c6e4e']\n static InitPanel() {\n PROPERTYGROUPS.push({\n SID:'a3e5be2b-ec03-4877-ad94-939b5b5c6e4e',\n ID: 'repeat',\n Caption: '@@Repeat',\n Index: 100,\n Content: GenericMenuTab,\n Display: PropertyGroupDisplay.Grid,\n Columns: ['100%'],\n Rows: ['auto'],\n CheckVisibility: (item) => {\n return item.ElementType == 'repeat';\n }\n });\n\n\n PROPERTIES.push({\n ID: \"Orientation\",\n Parent: \"repeat\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@Orientation\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: Orientation\n }\n });\n PROPERTIES.push({\n ID: \"FlexAlignItems\",\n Parent: \"repeat\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@AlignItems\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: FlexItemAlignment\n }\n });\n PROPERTIES.push({\n ID: \"FlexAlignContent\",\n Parent: \"repeat\",\n Content: new ComponentPortal(ComboboxThemeControl),\n Label: \"@@AlignContent\",\n InitArgs: {\n Placeholder: \"@@Select\",\n Multiple: false,\n EnumSource: FlexContentAlignment\n }\n });\n PROPERTIES.push({\n ID: \"DisableAutoLoad\",\n Parent: \"repeat\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@DisableAutoLoad\"\n }\n });\n PROPERTIES.push({\n ID: \"UseVirtualScroll\",\n Parent: \"repeat\",\n Content: new ComponentPortal(CheckBoxThemeControl),\n InitArgs: {\n Caption: \"@@UseVirtualScroll\"\n }\n });\n PROPERTIES.push({\n ID: \"PageSize\",\n Parent: \"repeat\",\n Content: new ComponentPortal(TextboxThemeControl),\n Label: \"@@PageSize\",\n InitArgs: {\n InputType: \"number\",\n Minimum: 1\n }\n });\n }\n}","import { Component, OnInit, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, Input } from '@angular/core';\nimport { LayoutUnit } from '../../../models/basic/layoutunit.model';\nimport { SideNav } from '../../../models/controls/sidenav.model';\nimport { SideNavMode } from '../../../models/enums/sidenavmode.enum';\nimport { SideNavPosition } from '../../../models/enums/sidenavposition.enum';\nimport { LayoutService } from '../../../services/layout.service';\nimport { SideNavService } from '../../../services/sidenav.service';\nimport { ABaseTreeNode, IDKeeper } from '../../common/basetreecontrol/base.tree.control';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'sidenav',\n templateUrl: './sidenav.layout.html',\n styleUrls: ['./sidenav.layout.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SideNavLayout implements OnInit, OnDestroy {\n opened: boolean;\n Subscriptions = {};\n RootNodes = [];\n Mode = SideNavMode[SideNavMode.over];\n Position = SideNavPosition[SideNavPosition.start];\n Style = {};\n @Input() shouldHideOverflow: boolean;\n private static BuildNodes(list, idKeeper: IDKeeper) {\n const retVal = [];\n if (list) {\n list.forEach(x => {\n if (!x.InVisible) {\n const node = new NaviNode(idKeeper.NextID);\n node.Caption = x.Label;\n node.ToolTip = x.Label;\n node.Icon = x.Icon;\n node.Url = x.Url;\n node.NodeId = x.Id;\n\n const childNodes = SideNavLayout.BuildNodes(x.children, idKeeper);\n if (childNodes && childNodes.length > 0) {\n node.HasChildren = true;\n node.Children = childNodes;\n }\n\n retVal.push(node);\n }\n });\n }\n return retVal;\n }\n\n constructor(private router: Router, public cdRef: ChangeDetectorRef) {\n }\n\n ngOnInit(): void {\n //#region Handle Subscriptions\n this.Subscriptions['Open'] = SideNavService.Open.subscribe(() => { this.opened = true; this.cdRef.detectChanges(); });\n this.Subscriptions['Close'] = SideNavService.Close.subscribe(() => { this.opened = false; this.cdRef.detectChanges(); });\n this.Subscriptions['Toggle'] = SideNavService.Toggle.subscribe(() => { this.opened = !this.opened; this.cdRef.detectChanges(); });\n this.Subscriptions['SelectedNavigation'] = SideNavService.SelectedNavigation.subscribe((nav) => {\n this.opened = false;\n if (nav) {\n this.RootNodes = SideNavLayout.BuildNodes(nav.NavigationItems, new IDKeeper());\n } else {\n this.RootNodes = [];\n }\n this.cdRef.detectChanges();\n });\n this.Subscriptions['BaseLayout'] = LayoutService.BaseLayout.subscribe((layout) => {\n if (layout) {\n let sideNav = layout['SideNav'];\n if (!sideNav) {\n sideNav = new SideNav();\n }\n this.Mode = SideNavMode[sideNav.Mode];\n this.Position = SideNavPosition[sideNav.Position];\n const style = {};\n if (sideNav.Width && sideNav.Width.Value) {\n style['width'] = LayoutUnit.ConvertFrom(sideNav.Width);\n }\n if (sideNav.Height && sideNav.Height.Value) {\n style['height'] = LayoutUnit.ConvertFrom(sideNav.Height);\n }\n this.Style = style;\n }\n this.cdRef.detectChanges();\n });\n //#endregion\n }\n\n ngOnDestroy(): void {\n const keys = Object.keys(this.Subscriptions);\n keys.forEach((key) => {\n if (this.Subscriptions[key].unsubscribe) {\n this.Subscriptions[key].unsubscribe();\n }\n });\n }\n\n NoContext(event: MouseEvent) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n nodeClicked(ev) {\n if (ev && ev.length > 0) {\n const first = ev[0];\n if (first.Url) {\n this.router.navigateByUrl(first.Url);\n SideNavService.Close.next(null);\n }\n }\n }\n}\n\nexport class NaviNode extends ABaseTreeNode {\n NodeId: string;\n Url: string;\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject } from '@angular/core';\nimport { UUID } from 'angular2-uuid';\nimport { plainToClass } from 'class-transformer';\nimport { ContentType } from '../../../models/enums/contenttype.enum';\nimport { ViewType } from '../../../models/enums/viewtype.enum';\nimport { Layout } from '../../../models/layout.model';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MetaService } from '../../../services/meta.service';\nimport { IBaseComponent } from '../../controls/base.component';\n\n@Component({\n selector: 'evi-template',\n templateUrl: './template.layout.html',\n styleUrls: ['./template.layout.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TemplateLayout extends IBaseComponent {\n static Type: any = 'template';\n static Default = {\n Editable: true,\n Type: 'template'\n };\n TemplateRootValue;\n get TemplateRoot() {\n return this.TemplateRootValue;\n }\n set TemplateRoot(val) {\n this.TemplateRootValue = val;\n if (this.TemplateRootValue) {\n this.TemplateRootValue.Parent = this.LayoutElementValue;\n }\n }\n InitFired = false;\n\n constructor(public cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data, private service: MetaService) {\n super(cdRef, data);\n }\n\n onLayoutElementSet() {\n this.TemplateRoot = null;\n const sub = this.Subscriptions['Editable'];\n if (sub) {\n sub.unsubscribe();\n }\n this.Subscriptions['Editable'] = this.LayoutElementValue.EditableChanged.subscribe((value) => {\n this.Editable = value;\n });\n this.Init()\n }\n onLayoutElementChanged() {\n this.Init();\n }\n private Init() {\n if (this.LayoutElementValue.ViewType == ViewType.Edit) {\n let parent = this.LayoutElementValue.Parent;\n while (parent) {\n if (parent.ElementType == TemplateLayout.Type && parent._Id == this.LayoutElementValue._Id) {\n return;\n }\n parent = parent.Parent;\n }\n }\n\n if (this.LayoutElementValue.LoadByReference) {\n this.service.LoadTemplate(this.LayoutElementValue._Id).subscribe((value) => {\n const data = plainToClass(Layout, value);\n data.Element = this;\n this.ChangeCopy(data);\n const elements = data['Elements'];\n if (elements && elements.length === 1) {\n this.TemplateRoot = elements[0];\n this.TemplateRoot.SetViewType(this.LayoutElementValue.ViewType);\n this.LayoutElementValue['Elements'] = elements;\n }\n const workflows = data['Workflows'];\n if (workflows) {\n this.LayoutElementValue['Workflows'] = workflows;\n }\n const variables = data['Variables'];\n if (variables) {\n this.LayoutElementValue['Variables'] = variables;\n }\n const events = data['CustomEvents'];\n if (events) {\n this.LayoutElementValue['CustomEvents'] = events;\n if (events.length > 0) {\n events.forEach((event) => {\n this.EventList.push(event.Name);\n });\n }\n this.fillEvents();\n }\n this.Layout = data;\n this.onLayoutSet(data); \n });\n } else {\n if (this.LayoutElementValue.Elements && this.LayoutElementValue.Elements.length === 1) {\n this.TemplateRoot = this.LayoutElementValue.Elements[0];\n }\n this.onLayoutSet(this.LayoutElementValue);\n }\n }\n private ChangeCopy(copy) {\n copy.ID = UUID.UUID();\n if (copy.Elements) {\n copy.Elements.forEach(x => this.ChangeCopy(x));\n }\n }\n onLayoutSet(layout) {\n if (this.TemplateRoot) {\n let type = '';\n switch (layout['ContentType']) {\n case ContentType.Grid: type = 'grid'; break;\n case ContentType.Flex: type = 'flex'; break;\n case ContentType.Raster: type = 'raster'; break;\n case ContentType.Canvas: type = 'canvas'; break;\n default: type = 'grid'; break;\n }\n this.TemplateRoot['ElementType'] = type;\n }\n if (this.Initialized) {\n this.ControlInitialized();\n }\n this.cdRef.detectChanges();\n }\n \n ControlInitialized() {\n if (this.TemplateRoot && !this.InitFired) {\n this.InitFired = true;\n\n const sub = this.TemplateRoot.Initialized.subscribe(x => {\n if (x === true) {\n this.setInitialized();\n \n }\n });\n }\n }\n\n itemSelected() {\n if (!this.TemplateRoot.Selected && !this.LayoutElementValue.LoadByReference) {\n LayoutService.SelectedItem.next(this.TemplateRoot);\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ComponentFactoryResolver, Inject, ViewChild, ViewContainerRef } from '@angular/core';\nimport { UUID } from 'angular2-uuid';\nimport { plainToClass } from 'class-transformer';\nimport { CacheService } from '../../../cache/cache.service';\nimport { ContentType } from '../../../models/enums/contenttype.enum';\nimport { Layout } from '../../../models/layout.model';\nimport { WIDGETREGISTRY } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { NavigationService } from '../../../services/navigation.service';\nimport { IBaseComponent } from '../../controls/base.component';\n\n@Component({\n selector: 'evi-widget',\n templateUrl: './widget.layout.html',\n styleUrls: ['./widget.layout.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WidgetLayout extends IBaseComponent {\n static Type: any = 'widget';\n static Default = {\n Editable: true,\n Type: 'widget',\n Layout: {\n Height: {Type: 0, Value: 350},\n Width: {Type: 0, Value: 500},\n }\n };\n\n @ViewChild('dynamic', { read: ViewContainerRef })\n private viewContainerRef: ViewContainerRef;\n private componentRef;\n\n constructor(private factoryResolver: ComponentFactoryResolver, cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n }\n\n WidgetRoot;\n NativeComponent;\n InitFired = false;\n Page = NavigationService.SelectedPage.getValue();\n OverlayStatus = false;\n\n onLayoutElementSet() {\n console.log('LayoutElementValue', this.LayoutElementValue);\n this.WidgetRoot = null;\n const sub = this.Subscriptions['Editable'];\n if (sub) {\n sub.unsubscribe();\n }\n this.Subscriptions['Editable'] = this.LayoutElementValue.EditableChanged.subscribe((value) => {\n this.Editable = value;\n });\n this.Subscriptions['Overlay'] = LayoutService.OverlayStatus.subscribe((value) => {\n this.OverlayStatus = value;\n });\n if (this.LayoutElementValue.NativeComponent != null) {\n if (WIDGETREGISTRY[this.LayoutElementValue.NativeComponent]) {\n this.viewContainerRef.clear();\n this.Initialized = true;\n const control = WIDGETREGISTRY[this.LayoutElementValue.NativeComponent].Control;\n const factory = this.factoryResolver.resolveComponentFactory(control);\n this.componentRef = this.viewContainerRef.createComponent(factory);\n if (this.LayoutElementValue.WidgetProperties) {\n if (this.componentRef && this.componentRef.instance) {\n let props = Object.keys(this.LayoutElementValue.WidgetProperties);\n props.forEach((prop) => {\n this.componentRef.instance[prop] = this.LayoutElementValue.WidgetProperties[prop];\n })\n }\n }\n if (WIDGETREGISTRY[this.LayoutElementValue.NativeComponent].Changes) {\n WIDGETREGISTRY[this.LayoutElementValue.NativeComponent].Changes.subscribe(() => {\n if (this.LayoutElementValue.WidgetProperties) {\n let props = Object.keys(this.LayoutElementValue.WidgetProperties);\n props.forEach((prop) => {\n this.componentRef.instance[prop] = this.LayoutElementValue.WidgetProperties[prop];\n });\n }\n });\n }\n\n\n this.componentRef.changeDetectorRef.detectChanges();\n }\n } else {\n if (this.LayoutValue == this.LayoutElementValue) {\n const elements = this.LayoutElementValue['Elements'];\n if (elements && elements.length === 1) {\n this.WidgetRoot = elements[0];\n this.WidgetRoot.SetViewType(this.LayoutElementValue.ViewType);\n }\n this.onLayoutSet(this.LayoutElementValue);\n } else {\n CacheService.ReadWidget(this.LayoutElementValue._Id).then((value) => {\n const data = plainToClass(Layout, value);\n this.onLayoutSet(data);\n const elements = data['Elements'];\n if (elements && elements.length === 1) {\n this.WidgetRoot = elements[0];\n this.WidgetRoot.SetViewType(this.LayoutElementValue.ViewType);\n this.LayoutElementValue['Elements'] = elements;\n }\n const workflows = data['Workflows'];\n if (workflows) {\n this.LayoutElementValue['Workflows'] = workflows;\n }\n const variables = data['Variables'];\n if (variables) {\n this.LayoutElementValue['Variables'] = variables;\n }\n const events = data['CustomEvents'];\n if (events) {\n this.LayoutElementValue['CustomEvents'] = events;\n if (events.length > 0) {\n events.forEach((event) => {\n this.EventList.push(event.Name);\n });\n }\n this.fillEvents();\n }\n this.onLayoutSet(data);\n });\n }\n }\n }\n private ChangeCopy(copy) {\n copy.ID = UUID.UUID();\n if (copy.Elements) {\n copy.Elements.forEach(x => this.ChangeCopy(x));\n }\n }\n onLayoutSet(layout) {\n if (this.WidgetRoot) {\n let type = '';\n switch (layout['ContentType']) {\n case ContentType.Grid: type = 'grid'; break;\n case ContentType.Flex: type = 'flex'; break;\n case ContentType.Raster: type = 'raster'; break;\n case ContentType.Canvas: type = 'canvas'; break;\n default: type = 'grid'; break;\n }\n this.WidgetRoot['ElementType'] = type;\n }\n if (this.Initialized) {\n this.ControlInitialized();\n }\n }\n\n ControlInitialized() {\n if (this.WidgetRoot && !this.InitFired) {\n this.InitFired = true;\n const sub = this.WidgetRoot.Initialized.subscribe(x => {\n if (x === true) {\n sub.unsubscribe();\n this.setInitialized();\n }\n });\n }\n }\n\n itemSelected() {\n if (this.WidgetRoot && !this.WidgetRoot.Selected && this.Page != 'widget') {\n LayoutService.SelectedItem.next(this.WidgetRoot);\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { UUID } from 'angular2-uuid';\nimport { ALayoutMenuTab } from '../../../appbuilder/common/menutabcontrol/menu.tab.control';\nimport { TranslateFormatText } from '../../../helpers/array.helpers';\nimport { DatadescriptionData } from '../../../models/datadescription/datadescriptiondata.model';\nimport { DatadescriptionDescription } from '../../../models/datadescription/dataDescriptionDescription.model';\nimport { DialogButton } from '../../../models/enums/dialogbutton.enum';\nimport { MessageBoxButtons } from '../../../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../../../models/enums/messageboxicon.enum';\nimport { MessageBoxResult } from '../../../models/enums/messageboxresult.enum';\nimport { LayoutService } from '../../../services/layout.service';\nimport { ABaseTreeNode, IDKeeper } from '../../common/basetreecontrol/base.tree.control';\nimport { BaseDialog } from '../../dialogs/basedialog/base.dialog';\nimport { DatadescriptionEditDialog } from '../../dialogs/datadescription/datadescription.edit.dialog';\nimport { MessageBoxHelper } from '../../dialogs/messagebox/messagebox.dialog';\n\n@Component({\n selector: 'Datadescription-menu-tab',\n templateUrl: './datadescription.menu.tab.html',\n styleUrls: ['./datadescription.menu.tab.css']\n})\nexport class DatadescriptionMenuTab extends ALayoutMenuTab {\n\n SelectedNode;\n RootNodes = [];\n IDKeeper = new IDKeeper();\n\n get DatadescriptionCaption() {\n if (this.SelectedNode && this.SelectedNode.Datadescription) {\n return this.SelectedNode.Datadescription.Caption;\n }\n return '';\n }\n set DatadescriptionCaption(val) {\n if (this.SelectedNode && this.SelectedNode.Datadescription && val !== this.SelectedNode.Datadescription.Caption) {\n this.SelectedNode.Datadescription.Caption = val;\n }\n }\n\n private static buildTreeRecursive(layout, nodeList, editable, idKeeper: IDKeeper) {\n if (layout.Elements) {\n layout.Elements.forEach(elem => {\n if (elem.ElementType === 'template') {\n const mainNode = new DatadescriptionNode(idKeeper.NextID);\n mainNode.Caption = elem.Name;\n mainNode.HasChildren = true;\n mainNode.Children = [];\n mainNode.editable = editable && elem.LoadByReference !== true;\n if (elem.Datadescriptions) {\n elem.Datadescriptions.forEach(wf => {\n const node = new DatadescriptionNode(idKeeper.NextID);\n node.Caption = wf.Caption;\n node.Datadescription = wf.Datadescription;\n node.editable = mainNode.editable;\n node.parentLayout = elem;\n mainNode.Children.push(node);\n });\n }\n nodeList.push(mainNode);\n DatadescriptionMenuTab.buildTreeRecursive(elem, mainNode.Children, mainNode.editable, idKeeper);\n } else {\n DatadescriptionMenuTab.buildTreeRecursive(elem, nodeList, editable, idKeeper);\n }\n });\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.buildTree();\n }\n\n buildTree() {\n const data = [];\n const layout = this.Layout;\n this.IDKeeper.reset();\n if (layout) {\n if (layout.Datadescriptions) {\n layout.Datadescriptions.forEach(wf => {\n const node = new DatadescriptionNode(this.IDKeeper.NextID);\n node.Caption = wf.Caption;\n node.Datadescription = wf;\n node.editable = true;\n node.parentLayout = layout;\n data.push(node);\n });\n }\n DatadescriptionMenuTab.buildTreeRecursive(layout, data, true, this.IDKeeper);\n }\n this.RootNodes = data;\n }\n\n onCaptionChanged() {\n if (this.SelectedNode && this.SelectedNode.Datadescription) {\n this.SelectedNode.Caption = this.SelectedNode.Datadescription.Caption;\n LayoutService.OnLayoutPropertyChanged(this.SelectedNode.parentLayout.ID, 'Datadescriptions',\n this.SelectedNode.parentLayout.Datadescriptions);\n this.cdRef.detectChanges();\n }\n }\n\n AddDatadescription() {\n const layout = this.Layout;\n if (layout) {\n const newDD = new DatadescriptionDescription();\n newDD.Caption = 'New Datadescription';\n newDD.ID = UUID.UUID();\n const node = new DatadescriptionNode(this.IDKeeper.NextID);\n node.Caption = newDD.Caption;\n node.Datadescription = newDD;\n node.editable = true;\n node.parentLayout = layout;\n this.showDialog(node, () => {\n if (!layout.Datadescriptions) {\n layout.Datadescriptions = [];\n }\n layout.Datadescriptions.push(newDD);\n const nodes = this.RootNodes.slice();\n nodes.splice(layout.Datadescriptions.length - 1, 0, node);\n this.RootNodes = nodes;\n this.SelectedNode = node;\n });\n }\n }\n\n AddCopyDatadescription() {\n const layout = this.Layout;\n const oldDD = this.SelectedNode.Datadescription;\n if (layout) {\n const newDD = new DatadescriptionDescription();\n newDD.Caption = oldDD.Caption + ' (Kopie)';\n newDD.ID = UUID.UUID();\n newDD['DataModelID'] = oldDD.DataModelID;\n newDD.Datadescription = oldDD.Datadescription;\n newDD.Datadescription['ID'] = UUID.UUID();\n newDD['IsRelational'] = oldDD.IsRelational;\n const node = new DatadescriptionNode(this.IDKeeper.NextID);\n node.Caption = newDD.Caption;\n node.Datadescription = newDD;\n node.editable = true;\n node.parentLayout = layout;\n this.showDialog(node, () => {\n if (!layout.Datadescriptions) {\n layout.Datadescriptions = [];\n }\n layout.Datadescriptions.push(newDD);\n const nodes = this.RootNodes.slice();\n nodes.splice(layout.Datadescriptions.length - 1, 0, node);\n this.RootNodes = nodes;\n this.SelectedNode = node;\n });\n\n }\n }\n\n EditDatadescription() {\n if (this.SelectedNode && this.SelectedNode.Datadescription && this.SelectedNode.editable) {\n this.showDialog(this.SelectedNode, null);\n }\n }\n\n async DeleteDatadescription() {\n const node = this.SelectedNode;\n if (node && node.Datadescription && node.editable) {\n const text = new TranslateFormatText('@@Sind Sie sicher, dass Sie den Datadescription {0} loeschen moechten?');\n text.FormatParams.push(node.Datadescription.Caption);\n const retVal = await MessageBoxHelper.ShowDialog(text, new TranslateFormatText('@@Datadescription loeschen'),\n MessageBoxButtons.YesNo, MessageBoxIcon.Question);\n if (retVal === MessageBoxResult.Yes) {\n node.parentLayout.Datadescriptions.splice(node.parentLayout.Datadescriptions.indexOf(node.Datadescription), 1);\n this.buildTree();\n this.SelectedNode = null;\n LayoutService.OnLayoutPropertyChanged(node.parentLayout.ID, 'Datadescriptions', node.parentLayout.Datadescriptions);\n }\n }\n }\n\n showDialog(node, handler) {\n if (node.Datadescription) {\n BaseDialog.ShowDialog({\n ContentType: DatadescriptionEditDialog,\n InitArgs: { Data: node.Datadescription, Layout: node.parentLayout },\n Title: node.Datadescription.Caption,\n Buttons: DialogButton.Cancel,\n Handler: (result) => {\n if (result instanceof DatadescriptionData) {\n node.Datadescription.Datadescription = result.Datadescription;\n node.Datadescription.DataModelID = result.DataModelID;\n node.Datadescription.IsRelational = result.IsRelational;\n if (typeof handler === 'function') {\n handler();\n }\n LayoutService.OnLayoutPropertyChanged(node.parentLayout.ID, 'Datadescriptions', node.parentLayout.Datadescriptions);\n }\n return true;\n },\n HeightText: '100vh',\n WidthText: '100vw',\n AutoFocus: false\n });\n }\n }\n}\n\nexport class DatadescriptionNode extends ABaseTreeNode {\n Datadescription;\n editable = false;\n parentLayout;\n}\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { MultiCacheService } from '../../../cache/multi/cache.service';\nimport { FilterElementSettings } from '../../../models/datadescription/multi/filter/filterElementSettings.model';\nimport { ABaseTreeNode } from '../../common/basetreecontrol/base.tree.control';\nimport { FilterTreeDialog } from '../../controls/filter/filter.tree.dialog';\nimport { BaseDialog } from '../../dialogs/basedialog/base.dialog';\n\n@Component({\n selector: 'conditional-filter-dialog',\n templateUrl: './conditional.filter.dialog.html',\n styleUrls: ['./conditional.filter.dialog.css']\n})\nexport class ConditionalFilterDialog implements OnInit {\n Initialized = false;\n DataModel;\n Dimension;\n Data: any = {};\n Cubes = [];\n Measures = [];\n TreeNodes = [];\n FilterItems = [];\n SystemVariables = [];\n\n private static GetDefaultSelectsText(item) {\n let count = 0;\n if (item && item.Defaults) {\n item.Defaults.forEach(ds => {\n count += ds.MemberIds ? ds.MemberIds.length : 0;\n });\n }\n return '[' + count + ']'\n }\n\n public static ShowDialog(data, dataModel, dimension, variables, handler) {\n BaseDialog.ShowDialog({\n ContentType: ConditionalFilterDialog,\n InitArgs: {\n Data: data,\n DataModel: dataModel,\n Dimension: dimension,\n Variables: variables\n },\n AutoFocus: false,\n Handler: (x) => {\n if (x) {\n handler(x);\n }\n return true;\n },\n Title: '@@Define conditional filter'\n });\n }\n\n constructor(private cdRef: ChangeDetectorRef) {\n }\n\n ngOnInit(): void {\n if (this.Data && this.Data.Filter) {\n const filterItems = [];\n this.Data.Filter.forEach(f => {\n filterItems.push({\n Data: f,\n Description: {\n Caption: '',\n DefaultSelectsText: '[0]',\n Levels: [],\n DataSource: null\n }\n });\n });\n this.FilterItems = filterItems;\n }\n if (this.DataModel && this.Dimension) {\n MultiCacheService.GetCubes(this.DataModel).then(cubes => {\n if (cubes) {\n const cubeList = [];\n cubes.forEach(cube => {\n if (cube.Dimensions && cube.Dimensions.some(dim => dim.ID === this.Dimension)) {\n const cubeEntry = {\n Caption: cube.Caption,\n ID: cube.ID,\n Measures: [],\n TreeNodes: [],\n };\n cube.Measures.forEach(m => {\n cubeEntry.Measures.push({\n Caption: m.Caption,\n ID: m.ID\n });\n });\n let id = 0;\n cube.Dimensions.forEach(dim => {\n //if (dim.ID !== this.Dimension && dim.Hierarchies && dim.Hierarchies.length > 0) {\n if (dim.Hierarchies && dim.Hierarchies.length > 0) {\n const node = new ABaseTreeNode(id++);\n node.Caption = dim.Caption;\n node.HasChildren = true;\n node.Children = [];\n node.Selectable = false;\n dim.Hierarchies.forEach(h => {\n const hNode = new FilterTreeNode(id++);\n hNode.Caption = h.Caption;\n hNode.DataSource = dim.DatasourceID;\n hNode.Dimension = dim.ID;\n hNode.Hierarchy = h.ID;\n h.Levels.forEach(l => hNode.Levels.push(l.ID));\n node.Children.push(hNode);\n const fi = this.FilterItems.find(x => x.Data.Hierarchy === h.ID && x.Data.Dimension === dim.ID);\n if (fi) {\n fi.Description.Caption = h.Caption;\n fi.Description.DefaultSelectsText = ConditionalFilterDialog.GetDefaultSelectsText(fi.Data);\n fi.Description.Levels = [...hNode.Levels];\n fi.Description.DataSource = dim.DatasourceID;\n }\n });\n cubeEntry.TreeNodes.push(node);\n }\n });\n cubeList.push(cubeEntry);\n }\n });\n this.Cubes = cubeList;\n if (cubeList.length === 1 && this.Data && !this.Data.Cube) {\n this.Data.Cube = cubeList[0].ID;\n }\n this.onCubeChanged();\n }\n this.Initialized = true;\n this.cdRef.detectChanges();\n });\n } else {\n this.Initialized = true;\n this.cdRef.detectChanges();\n }\n }\n\n Initialize(args) {\n if (args) {\n this.DataModel = args.DataModel;\n this.Dimension = args.Dimension;\n if (args.Data) {\n this.Data = args.Data;\n }\n if (args.Variables) {\n this.SystemVariables = args.Variables;\n }\n }\n }\n\n GetDialogResult() {\n if (this.Data) {\n const retVal = {\n Cube: this.Data.Cube,\n Measures: this.Data.Measures,\n Filter: []\n };\n this.FilterItems.forEach(fi => {\n if (fi.Data.Dimension && fi.Data.Hierarchy && (fi.Data.Formula || (fi.Data.Defaults && fi.Data.Defaults.length > 0))) {\n retVal.Filter.push(fi.Data);\n }\n });\n return retVal;\n }\n return null;\n }\n\n onCubeChanged() {\n if (this.Data && this.Data.Cube) {\n const cube = this.Cubes.find(x => x.ID === this.Data.Cube);\n if (cube) {\n this.Measures = cube.Measures;\n this.TreeNodes = cube.TreeNodes;\n return;\n }\n }\n this.Measures = [];\n this.TreeNodes = [];\n }\n\n addFilter() {\n this.FilterItems.push({\n Data: {\n Defaults: []\n },\n Description: {\n Caption: '',\n DefaultSelectsText: '[0]',\n Levels: []\n }\n });\n }\n\n onHierarchyChanged(filter, node) {\n if (filter && node) {\n filter.Data.Dimension = node.Dimension;\n filter.Data.Hierarchy = node.Hierarchy;\n filter.Data.Defaults = [];\n filter.Description.Caption = node.Caption;\n filter.Description.DefaultSelectsText = '[0]';\n filter.Description.Levels = [...node.Levels];\n filter.Description.DataSource = node.DatasourceID;\n }\n }\n\n showFilterTreeDialog(filterItem) {\n if (filterItem && filterItem.Data && filterItem.Data.Hierarchy) {\n const fes = new FilterElementSettings();\n fes.CodeDesc = 3;\n fes.DataSource = filterItem.Description.DataSource;\n fes.DataModel = this.DataModel;\n fes.Hierarchy = filterItem.Data.Hierarchy;\n fes.Levels = filterItem.Description.Levels;\n fes.MultiSelect = true;\n fes.Relational = false;\n fes.SavedSelection = filterItem.Data.Defaults;\n const args = {\n FilterElementSettingsValue: fes\n };\n FilterTreeDialog.ShowDialog(args, result => {\n if (result && result.FilterSelection) {\n filterItem.Data.Defaults = result.FilterSelection;\n filterItem.Description.DefaultSelectsText = ConditionalFilterDialog.GetDefaultSelectsText(filterItem.Data);\n }\n return true;\n });\n }\n }\n\n clearSelects(item) {\n if (item) {\n item.Defaults = [];\n item.DefaultSelectsText = '[0]';\n }\n }\n\n delete(index) {\n this.FilterItems.splice(index, 1);\n }\n}\n\nexport class FilterTreeNode extends ABaseTreeNode {\n DataSource;\n Dimension;\n Hierarchy;\n Levels = [];\n}\n","import { Component } from '@angular/core';\nimport { APropertyTab } from '../../../appbuilder/menutabs/properties/properties.menu.tab';\nimport { TranslationDialog } from '../../dialogs/translationdialog/translation.dialog';\n\n@Component({\n selector: 'filter-dropdown-menutab',\n templateUrl: './filter.dropdown.menu.tab.html'\n})\nexport class FilterDropdownMenuTab extends APropertyTab {\n translateCaption(key) {\n TranslationDialog.ShowDialog(key);\n }\n}\n","import { ChangeDetectorRef, Component } from '@angular/core';\nimport { APropertyTab } from '../../../appbuilder/menutabs/properties/properties.menu.tab';\nimport { MultiCacheService } from '../../../cache/multi/cache.service';\nimport { FilterHelper } from '../../../helpers/filter.helper';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { Comparer } from '../../../models/enums/comparer.enum';\nimport { RequestFilter } from '../../../models/rest/requestfilter';\nimport { RequestOptions } from '../../../models/rest/requestoptions';\nimport { DataModelService } from '../../../services/datamodel.service';\nimport { DynamicTimeSettingsService } from '../../../services/dynamictimesettings.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { RelSourceService } from '../../../services/relSource.service';\nimport { ConditionalFilterDialog } from './conditional.filter.dialog';\n\n@Component({\n selector: 'filtertree-menutab',\n templateUrl: './filtertree.menu.tab.html'\n})\nexport class FilterTreeMenuTab extends APropertyTab {\n\n AllDataModels = [];\n Tables = [];\n SelectedTable;\n Dimensions = [];\n Levels = [];\n SelectedDimension;\n SelectedHierarchy;\n Layout;\n DynamicTimePoints = [];\n\n constructor(private dataModelService: DataModelService, private relService: RelSourceService,\n private dtService: DynamicTimeSettingsService, cdRef: ChangeDetectorRef) {\n super(cdRef);\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.Subscriptions.push(LayoutService.SelectedLayout.subscribe((layout) => {\n this.Layout = LayoutHelper.GetActiveResolution(layout);\n }));\n this.dataModelService.GetModels().subscribe(models => {\n if (models) {\n this.AllDataModels = models;\n }\n });\n const filterCol = new RequestFilter();\n filterCol.Name = 'TimeType';\n filterCol.Operator = Comparer.In;\n filterCol.Value = [0, 2];\n const filter = RequestOptions.CleanRequestOptions();\n filter.Filters.push(filterCol);\n this.dtService.GetDynamicTimePointsFiltered(filter).subscribe(x => {\n if (x) {\n this.DynamicTimePoints = x;\n }\n });\n }\n\n onItemSet() {\n this.Dimensions = [];\n this.Levels = [];\n this.SelectedDimension = null;\n this.SelectedHierarchy = null;\n this.Tables = [];\n this.SelectedTable = null;\n const selected = this.SelectedItemValue;\n if (selected && selected.DataModel) {\n if (selected.Relational) {\n this.relService.GetRelContainer({ DataModelID: selected.DataModel }).subscribe(x => {\n if (x) {\n this.Tables = x;\n if (selected.Container) {\n this.SelectedTable = this.Tables.find(tab => tab.SID === selected.Container);\n }\n }\n });\n } else {\n MultiCacheService.GetDimensions(selected.DataModel).then(dimensions => {\n if (dimensions) {\n this.Dimensions = dimensions;\n const levels = [];\n if (selected.Hierarchy) {\n this.Dimensions.some(dim => {\n let dimFound = false;\n dim.Hierarchies.some(hier => {\n if (hier.ID === selected.Hierarchy) {\n dimFound = true;\n this.SelectedDimension = dim;\n this.SelectedHierarchy = hier;\n this.SelectedHierarchy.Levels.forEach(x => {\n levels.push({\n Caption: x.Caption,\n ID: x.ID,\n Selected: selected.Levels && selected.Levels.some(l => x.ID === l)\n });\n });\n return true;\n }\n return false;\n });\n return dimFound;\n });\n }\n this.Levels = levels;\n }\n });\n }\n }\n }\n\n dataModelChanged() {\n this.Dimensions = [];\n this.SelectedDimension = null;\n this.SelectedHierarchy = null;\n this.Levels = [];\n this.Tables = [];\n this.SelectedTable = null;\n const changeProps = ['DataModel'];\n if (this.SelectedItemValue) {\n if (this.SelectedItemValue.DataSource != null) {\n this.SelectedItemValue.DataSource = null;\n changeProps.push('DataSource');\n }\n if (this.SelectedItemValue.Container != null) {\n this.SelectedItemValue.Container = null;\n changeProps.push('Container');\n }\n if (this.SelectedItemValue.Field != null) {\n this.SelectedItemValue.Field = null;\n changeProps.push('Field');\n }\n if (this.SelectedItemValue.Hierarchy != null) {\n this.SelectedItemValue.Hierarchy = null;\n changeProps.push('Hierarchy');\n }\n if (!Array.isArray(this.SelectedItemValue.Levels) || this.SelectedItemValue.Levels.length > 0) {\n this.SelectedItemValue.Levels = [];\n changeProps.push('Levels');\n }\n if (this.SelectedItemValue.DataModel) {\n if (this.SelectedItemValue.Relational) {\n this.relService.GetRelContainer({ DataModelID: this.SelectedItemValue.DataModel }).subscribe(x => {\n if (x) {\n this.Tables = x;\n }\n });\n } else {\n MultiCacheService.GetDimensions(this.SelectedItemValue.DataModel).then(dimensions => {\n if (dimensions) {\n this.Dimensions = dimensions;\n }\n });\n }\n }\n }\n this.onStyleChanged(changeProps);\n }\n\n dimChanged() {\n this.SelectedHierarchy = null;\n this.Levels = [];\n if (this.SelectedItemValue) {\n const changeProps = [];\n if (this.SelectedItemValue.DataSource != null) {\n this.SelectedItemValue.DataSource = null;\n changeProps.push('DataSource');\n }\n if (this.SelectedItemValue.Hierarchy != null) {\n this.SelectedItemValue.Hierarchy = null;\n changeProps.push('Hierarchy');\n }\n if (!Array.isArray(this.SelectedItemValue.Levels) || this.SelectedItemValue.Levels.length > 0) {\n this.SelectedItemValue.Levels = [];\n changeProps.push('Levels');\n }\n this.onStyleChanged(changeProps);\n }\n }\n\n hierarchyChanged() {\n const levels = [];\n if (this.SelectedHierarchy) {\n if (this.SelectedItemValue) {\n const changeProps = [];\n if (this.SelectedHierarchy.Parent) {\n if (this.SelectedItemValue.DataSource != this.SelectedHierarchy.Parent.DatasourceID) {\n this.SelectedItemValue.DataSource = this.SelectedHierarchy.Parent.DatasourceID;\n changeProps.push('DataSource');\n }\n }\n if (this.SelectedItemValue.Hierarchy != this.SelectedHierarchy.ID) {\n this.SelectedItemValue.Hierarchy = this.SelectedHierarchy.ID;\n changeProps.push('Hierarchy');\n }\n if (!Array.isArray(this.SelectedItemValue.Levels) || this.SelectedItemValue.Levels.length > 0) {\n this.SelectedItemValue.Levels = [];\n changeProps.push('Levels');\n }\n this.onStyleChanged(changeProps);\n }\n this.SelectedHierarchy.Levels.forEach(x => {\n levels.push({\n Caption: x.Caption,\n ID: x.ID,\n Selected: false\n });\n });\n }\n this.Levels = levels;\n }\n\n levelChanged(lev) {\n if (this.SelectedItemValue && lev) {\n if (lev.Selected) {\n if (this.SelectedItemValue.Levels) {\n this.SelectedItemValue.Levels.push(lev.ID);\n } else {\n this.SelectedItemValue.Levels = [lev.ID];\n }\n this.onStyleChanged('Levels');\n } else if (this.SelectedItemValue.Levels) {\n const index = this.SelectedItemValue.Levels.indexOf(lev.ID);\n if (index > -1) {\n this.SelectedItemValue.Levels.splice(index, 1);\n this.onStyleChanged('Levels');\n }\n }\n }\n }\n\n tableChanged() {\n if (this.SelectedItemValue) {\n const changeProps = [];\n if (this.SelectedItemValue.Field != null) {\n this.SelectedItemValue.Field = null;\n changeProps.push('Field');\n }\n if (this.SelectedTable) {\n if (this.SelectedItemValue.Container != this.SelectedTable.SID) {\n this.SelectedItemValue.Container = this.SelectedTable.SID;\n changeProps.push('Container');\n }\n if (this.SelectedItemValue.DataSource != this.SelectedTable.DataSourceId) {\n this.SelectedItemValue.DataSource = this.SelectedTable.DataSourceId;\n changeProps.push('DataSource');\n }\n } else {\n if (this.SelectedItemValue.Container != null) {\n this.SelectedItemValue.Container = null;\n changeProps.push('Container');\n }\n if (this.SelectedItemValue.DataSource != null) {\n this.SelectedItemValue.DataSource = null;\n changeProps.push('DataSource');\n }\n }\n this.onStyleChanged(changeProps);\n }\n }\n\n relationalChanged() {\n this.onItemSet();\n this.onStyleChanged('Relational');\n }\n\n codeDescChanged() {\n if (this.SelectedItemValue) {\n if (this.SelectedItemValue.Element && typeof this.SelectedItemValue.Element.codeDescChanged === 'function') {\n this.SelectedItemValue.Element.codeDescChanged();\n }\n this.onStyleChanged('CodeDesc');\n }\n }\n\n editFilter() {\n const sel = this.SelectedItemValue;\n if (sel) {\n const variables = FilterHelper.GetVariables(this.Layout);\n ConditionalFilterDialog.ShowDialog(sel.ConditionalFilter, sel.DataModel, this.SelectedDimension.ID, variables, (x) => {\n sel.ConditionalFilter = x;\n this.onStyleChanged('ConditionalFilter');\n });\n }\n }\n\n clearFilter() {\n if (this.SelectedItemValue && this.SelectedItemValue.ConditionalFilter != null) {\n this.SelectedItemValue.ConditionalFilter = null;\n this.onStyleChanged('ConditionalFilter');\n }\n }\n}\n","import { ChangeDetectorRef, Component } from '@angular/core';\nimport { APropertyTab } from '../../../appbuilder/menutabs/properties/properties.menu.tab';\nimport { MultiCacheService } from '../../../cache/multi/cache.service';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { DimensionType } from '../../../models/enums';\nimport { Comparer } from '../../../models/enums/comparer.enum';\nimport { RequestFilter } from '../../../models/rest/requestfilter';\nimport { RequestOptions } from '../../../models/rest/requestoptions';\nimport { DataModelService } from '../../../services/datamodel.service';\nimport { DynamicTimeSettingsService } from '../../../services/dynamictimesettings.service';\nimport { LayoutService } from '../../../services/layout.service';\n\n@Component({\n selector: 'fromto-filter-menutab',\n templateUrl: './from.to.filter.menu.tab.html',\n styles: ['.mTop { margin-top: 10px; }']\n})\nexport class FromToFilterMenuTab extends APropertyTab {\n\n AllDataModels = [];\n DynamicTimePoints = [];\n Dimensions = [];\n SelectedDimension;\n SelectedHierarchy;\n SelectedLevel;\n Layout;\n\n constructor(private dataModelService: DataModelService, private dynService: DynamicTimeSettingsService, cdRef: ChangeDetectorRef) {\n super(cdRef);\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.Subscriptions.push(LayoutService.SelectedLayout.subscribe((layout) => {\n this.Layout = LayoutHelper.GetActiveResolution(layout);\n }));\n this.dataModelService.GetModels().subscribe(models => {\n if (models) {\n this.AllDataModels = models;\n this.cdRef.detectChanges();\n }\n });\n const filterCol = new RequestFilter();\n filterCol.Name = 'TimeType';\n filterCol.Operator = Comparer.In;\n filterCol.Value = [0, 2];\n const filter = RequestOptions.CleanRequestOptions();\n filter.Filters.push(filterCol);\n this.dynService.GetDynamicTimePointsFiltered(filter).subscribe(x => {\n if (x) {\n this.DynamicTimePoints = x;\n this.cdRef.detectChanges();\n }\n });\n }\n\n relationalChanged() {\n this.onItemSet();\n this.onStyleChanged('Relational');\n }\n\n onItemSet() {\n this.Dimensions = [];\n this.SelectedDimension = null;\n this.SelectedHierarchy = null;\n const selected = this.SelectedItemValue;\n if (selected && !selected.Relational && selected.DataModel) {\n MultiCacheService.GetDimensions(selected.DataModel).then(dimensions => {\n if (dimensions) {\n const timeDims = [];\n let dimFound = false;\n dimensions.forEach(dim => {\n if (dim.DimensionType === DimensionType.Time) {\n timeDims.push(dim);\n if (!dimFound && dim.Hierarchies && selected.Level) {\n dim.Hierarchies.some(hier => {\n if (hier.Levels && hier.Levels.some(l => l.ID === selected.Level)) {\n this.SelectedDimension = dim;\n this.SelectedHierarchy = hier;\n dimFound = true;\n }\n return dimFound;\n });\n }\n }\n });\n this.Dimensions = timeDims;\n }\n });\n }\n }\n\n dataModelChanged() {\n this.Dimensions = [];\n this.SelectedDimension = null;\n this.SelectedHierarchy = null;\n if (this.SelectedItemValue) {\n const changeProps = ['DataModel'];\n if (this.SelectedItemValue.Level != null) {\n this.SelectedItemValue.Level = null;\n changeProps.push('Level');\n }\n if (this.SelectedItemValue.LevelType != null) {\n this.SelectedItemValue.LevelType = null;\n changeProps.push('LevelType');\n }\n if (this.SelectedItemValue.DataModel) {\n MultiCacheService.GetDimensions(this.SelectedItemValue.DataModel).then(dimensions => {\n if (dimensions) {\n const timeDims = [];\n dimensions.forEach(dim => {\n if (dim.DimensionType === DimensionType.Time) {\n timeDims.push(dim);\n }\n });\n this.Dimensions = timeDims;\n }\n });\n }\n this.onStyleChanged(changeProps);\n }\n }\n\n dimChanged() {\n this.SelectedHierarchy = null;\n if (this.SelectedItemValue) {\n const changeProps = [];\n if (this.SelectedItemValue.Level != null) {\n this.SelectedItemValue.Level = null;\n changeProps.push('Level');\n }\n if (this.SelectedItemValue.LevelType != null) {\n this.SelectedItemValue.LevelType = null;\n changeProps.push('LevelType');\n }\n this.onStyleChanged(changeProps);\n }\n }\n\n hierarchyChanged() {\n if (this.SelectedItemValue) {\n const changeProps = [];\n if (this.SelectedItemValue.Level != null) {\n this.SelectedItemValue.Level = null;\n changeProps.push('Level');\n }\n if (this.SelectedItemValue.LevelType != null) {\n this.SelectedItemValue.LevelType = null;\n changeProps.push('LevelType');\n }\n this.onStyleChanged(changeProps);\n }\n }\n\n levelChanged() {\n if (this.SelectedItemValue) {\n const changeProps = ['Level'];\n let lt = null;\n if (this.SelectedItemValue.Level) {\n const lev = this.SelectedHierarchy.Levels.find(x => x.ID === this.SelectedItemValue.Level);\n if (lev) {\n lt = lev.LevelType;\n }\n }\n if (this.SelectedItemValue.LevelType != lt) {\n this.SelectedItemValue.LevelType = lt;\n changeProps.push('LevelType');\n }\n this.onStyleChanged(changeProps);\n }\n }\n}\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { MultiCacheService } from '../../../cache/multi/cache.service';\nimport { DatadescriptionData } from '../../../models/datadescription/datadescriptiondata.model';\nimport { LayoutService } from '../../../services/layout.service';\nimport { DatadescriptionControl } from '../../dialogs/datadescription/datadescription.control';\n\n@Component({\n selector: 'objectcreatorsource-multidimensional',\n templateUrl: './objectcreatorsource.multidim.html'\n})\nexport class ObjectCreatorSourceMultiDimensional implements OnInit {\n\n static DragEnd = new Subject();\n\n Subscriptions = [];\n SelectedItem;\n\n DataModelIDValue;\n @Input()\n get DataModelID() {\n return this.DataModelIDValue;\n }\n set DataModelID(val) {\n this.DataModelIDValue = val;\n }\n\n\n IsLevelTreeVisibleValue = true;\n\n @Input()\n get IsLevelTreeVisible() {\n return this.IsLevelTreeVisibleValue;\n }\n set IsLevelTreeVisible(val) {\n this.IsLevelTreeVisibleValue = val;\n }\n\n\n\n IsMeasureTreeVisibleValue = true;\n\n @Input()\n get IsMeasureTreeVisible() {\n return this.IsMeasureTreeVisibleValue;\n }\n set IsMeasureTreeVisible(val) {\n this.IsMeasureTreeVisibleValue = val;\n }\n\n IsSpecialTreeVisibleValue = true;\n\n @Input()\n get IsSpecialTreeVisible() {\n return this.IsSpecialTreeVisibleValue;\n }\n set IsSpecialTreeVisible(val) {\n this.IsSpecialTreeVisibleValue = val;\n }\n\n\n get SelectedCubesIds() {\n if (!this.DataDescriptionData.Datadescription.SelectedCubes) {\n this.DataDescriptionData.Datadescription.SelectedCubes = [];\n }\n return this.DataDescriptionData.Datadescription.SelectedCubes;\n }\n set SelectedCubeIds(val) {\n this.DataDescriptionData.Datadescription.SelectedCubes\n }\n\n DataDescriptionDataValue: DatadescriptionData;\n\n @Input()\n get DataDescriptionData() {\n return this.DataDescriptionDataValue;\n }\n set DataDescriptionData(val) {\n this.DataDescriptionDataValue = val;\n }\n\n @ViewChild('levelTree') levelTree; // Zugriff auf das TypeScript-Element\n // Im gegensatz dazu :!!!!!!!!!!!!!!!!!!!\n // @ViewChild('levelTree', { static: false, read: ElementRef }) levelTree: ElementRef // Zugriff auf das HTML elemt '.nativeElement'\n\n @ViewChild('measureTree') measureTree;\n @ViewChild('specialTree') specialTree;\n @ViewChild('cubePanel') cubePanel;\n @ViewChild('levelPanel') levelPanel;\n @ViewChild('measurePanel') measurePanel;\n @ViewChild('specialPanel') specialPanel;\n\n CubesValues = [];\n SelectedCubes = [];\n Dimensions: any[];\n Measures: any[];\n\n private async GetAllCubes() {\n if (!this.CubesValues || this.CubesValues.length < 1) {\n const r = await MultiCacheService.GetCubes(this.DataModelID);\n if (r) {\n const cubelist = [];\n r.forEach(c => {\n const cubeinfo = {\n Caption: c.Caption,\n ID: c.ID,\n Measures: c.Measures,\n Dimensions: c.Dimensions,\n Selected: this.SelectedCubesIds.includes(c.ID)\n };\n cubelist.push(cubeinfo);\n if (cubeinfo.Selected) {\n this.SelectedCubes.push(cubeinfo);\n }\n });\n cubelist.sort((a, b) => {\n const textA = (a && typeof a.Caption === 'string') ? a.Caption.toUpperCase() : '';\n const textB = (b && typeof b.Caption === 'string') ? b.Caption.toUpperCase() : '';\n return textA.localeCompare(textB);\n });\n this.CubesValues = cubelist;\n }\n\n if (this.SelectedCubes && this.SelectedCubes.length > 0) {\n if (this.IsLevelTreeVisible) {\n this.loadDimensions(this.SelectedCubes);\n // this.levelPanel.open();\n }\n if (this.IsMeasureTreeVisible) {\n this.measureTree.DbItems = this.SelectedCubes;\n this.measureTree.UpdateTreeSource(null);\n //if (!this.IsLevelTreeVisible) {\n // this.measurePanel.open();\n //}\n }\n }\n //else {\n // this.cubePanel.open();\n //}\n }\n if (this.IsSpecialTreeVisible) {\n this.specialTree.UpdateTreeSource(null);\n }\n return this.CubesValues;\n }\n\n ngOnInit(): void {\n this.GetAllCubes();\n \n this.Subscriptions.push(LayoutService.SelectedItem.subscribe((item) => {\n this.SelectedItem = item;\n }));\n }\n\n cubeSelectionChanged(event, cube) {\n if (cube.Selected) {\n this.SelectedCubes.push(cube);\n if (!this.SelectedCubesIds.includes(cube.ID)) {\n this.SelectedCubesIds.push(cube.ID);\n }\n this.cubePanel.close();\n if (this.IsLevelTreeVisible) {\n this.levelPanel.open();\n }\n else {\n {\n this.measurePanel.open();\n }\n }\n } else {\n let index = -1;\n this.SelectedCubes.some((ds) => {\n index++;\n if (ds.SID == cube.SID) {\n return true;\n }\n return false;\n });\n if (this.SelectedCubesIds.includes(cube.ID)) {\n this.SelectedCubesIds.splice(this.SelectedCubesIds.indexOf(cube.ID), 1);\n }\n this.SelectedCubes.splice(index, 1);\n }\n\n this.Dimensions = [];\n\n if (this.IsLevelTreeVisible) {\n this.loadDimensions(this.SelectedCubes);\n }\n if (this.IsMeasureTreeVisible) {\n this.measureTree.DbItems = this.SelectedCubes;\n this.measureTree.UpdateTreeSource(null);\n }\n }\n\n SelectedMeasureItem = null;\n selectionMeasureChange(item) {\n this.SelectedMeasureItem = item;\n }\n\n get SelectedMeasureCaption() {\n if (this.SelectedMeasureItem?.Caption) {\n return this.SelectedMeasureItem.Caption;\n }\n return \"\";\n }\n\n SelectedLevelItem = null;\n selectionLevelChange(item) {\n this.SelectedLevelItem = item;\n }\n\n get SelectedLevelCaption() {\n if (this.SelectedLevelItem?.Caption) {\n return this.SelectedLevelItem.Caption;\n }\n return \"\";\n }\n\n\n private loadDimensions(selectedCubes) {\n this.levelTree.DbItems = selectedCubes;\n this.levelTree.UpdateTreeSource(null);\n }\n\n dragEnd(ev) {\n ObjectCreatorSourceMultiDimensional.DragEnd.next(null);\n DatadescriptionControl.ObjectCreatorMPDragStart.next(null);\n }\n}\n","\nimport { FlatTreeControl } from '@angular/cdk/tree';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';\nimport { TranslateFormatText } from '../../../helpers/array.helpers';\nimport { RelSourceHelper } from '../../../helpers/relsource.helper';\nimport { DatadescriptionData } from '../../../models/datadescription/datadescriptiondata.model';\nimport { MessageBoxButtons } from '../../../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../../../models/enums/messageboxicon.enum';\nimport { ContainerSelectDialog } from '../../dialogs/containerSelect.dialog';\nimport { MessageBoxHelper } from '../../dialogs/messagebox/messagebox.dialog';\n\nexport class TreeNode {\n children: TreeNode[];\n type: any;\n Id: any;\n name: any;\n UniqueID: any;\n ContainerID: any;\n ContainerUniqueID: any;\n DataSourceID: any;\n expanded: boolean;\n}\n\n/** Flat node with expandable and level information */\nexport class TreeFlatNode {\n expandable: boolean;\n name: string;\n level: number;\n type: any;\n Id: any;\n}\n\n\n@Component({\n selector: 'objectcreatorsource-multipanel',\n templateUrl: './objectcreatorsource.multipanel.html'\n})\nexport class ObjectCreatorSourceMultiPanel implements OnInit {\n\n static Type: any = 'objectcreatorsource-multipanel';\n static Default = { Type: 'objectcreatorsource-multipanel' };\n\n ContainerSelectDialog: ContainerSelectDialog;\n\n Subscriptions = [];\n\n //@Input()\n //SelectedItem;\n\n DataDescriptionDataValue: DatadescriptionData;\n\n @Input()\n get DataDescriptionData() {\n return this.DataDescriptionDataValue;\n }\n set DataDescriptionData(val) {\n this.DataDescriptionDataValue = val;\n this.Containers = val.Datadescription.ContainersValue;\n }\n\n\n ngOnInit(): void {\n //this.Subscriptions.push(LayoutService.SelectedItem.subscribe((item) => {\n // this.SelectedItem = item;\n //}));\n }\n\n constructor() {\n\n }\n private _transformer = (node: TreeNode, level: number) => {\n return {\n expandable: !!node.children && node.children.length > 0,\n name: node.name,\n level: level,\n Id: node.Id\n };\n }\n\n treeControl = new FlatTreeControl(\n node => node.level, node => node.expandable);\n\n treeFlattener = new MatTreeFlattener(\n this._transformer, node => node.level, node => node.expandable, node => node.children);\n\n dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\n\n\n Columns = [\n {\n Name: 'Name',\n Label: '@@Label',\n Type: 'String',\n Editable: false\n },\n {\n Name: 'InVisible',\n Label: '@@InVisible',\n Type: 'Boolean',\n Editable: true\n },\n {\n Name: 'Disabled',\n Label: '',\n Type: 'Boolean',\n Editable: true\n }\n ];\n\n\n get DataModelID() {\n return this.DataDescriptionData.DataModelID;\n }\n MaxUniqueID = 1;\n GetNextUniqueID() {\n return this.MaxUniqueID++;\n }\n UsedRelations = [];\n AllContainers = [];\n Containers = [];\n TreeSource =\n [\n ];\n dragNode: any;\n /** Map from flat node to nested node. This helps us finding the nested node to be modified */\n flatNodeMap = new Map();\n NodeToFields: Map = new Map();\n\n async itemDrop(event) {\n\n let item = JSON.parse(event.dataTransfer.getData('container'));\n let allContainers = JSON.parse(event.dataTransfer.getData('allcontainer'));\n if (this.Containers.length == 0) {\n item.UniqueID = this.MaxUniqueID++;\n this.Containers.push(item);\n }\n else {\n item.UniqueID = this.MaxUniqueID + 1;\n const retVal = await RelSourceHelper.GetValidRelation(this.DataModelID, item, this.Containers, this.UsedRelations, allContainers);\n if (retVal && retVal.Container.length > 0) {\n retVal.Container.forEach(c => {\n if (this.MaxUniqueID < c.UniqueID) {\n this.MaxUniqueID = c.UniqueID;\n }\n this.Containers.push(c);\n });\n this.UsedRelations.push(...retVal.RelDefs);\n //ToDo OC\n //if (this.BaseSlide.SelectedReportObjects) {\n // this.BaseSlide.SelectedReportObjects.forEach((ro => {\n // ro.DataDescription.Relations = this.UsedRelations;\n // }));\n //}\n this.MaxUniqueID++;\n }\n else {\n const result = await MessageBoxHelper.ShowDialog(new TranslateFormatText(''), new TranslateFormatText('@@Hinzufuegen nicht moeglich, da keine weitere Verbindung mehr moeglich ist.'), MessageBoxButtons.Ok, MessageBoxIcon.Error);\n }\n }\n this.UpdateTreeSource(null);\n // this.buildTree(this.Containers, 0);\n }\n\n\n UpdateTreeSource(node) {\n if (this.Containers) {\n if (node === null) {\n this.TreeSource = [];\n for (let i = 0; i < this.Containers.length; i++) {\n if (this.Containers[i]) {\n let Node = new TreeNode();\n Node.name = this.Containers[i].Caption != null ? this.Containers[i].Caption : 'undefined';\n Node.Id = this.Containers[i].SID;\n Node.UniqueID = this.Containers[i].UniqueID;\n Node.DataSourceID = this.Containers[i].DataSourceId;\n Node.expanded = false;\n if (this.Containers[i].Fields) {\n //this.NodeToFields.set(Node.Id, this.Containers[i].Fields);\n // let children: any[];\n Node.children = [];\n for (let j = 0; j < this.Containers[i].Fields.length; j++) {\n let node = this.Containers[i];\n let field = new TreeNode();\n field.name = this.Containers[i].Fields[j].Caption != null ? this.Containers[i].Fields[j].Caption : 'undefined';\n if (!this.Containers[i].Fields[j].UniqueID) {\n this.Containers[i].Fields[j].UniqueID = this.MaxUniqueID++;\n }\n field.Id = this.Containers[i].Fields[j].ID;\n field.UniqueID = this.Containers[i].Fields[j].UniqueID;\n field.ContainerID = this.Containers[i].SID;\n field.ContainerUniqueID = this.Containers[i].UniqueID;\n field.DataSourceID = this.Containers[i].DataSourceId;\n field.expanded = false;\n this.NodeToFields.set(field.Id, [field]);\n Node.children.push(field);\n //children.push(field);\n }\n this.NodeToFields.set(Node.Id, Node.children);\n }\n this.TreeSource.push(Node);\n }\n }\n }\n\n\n\n this.dataSource.data = this.TreeSource;\n }\n }\n\n //dragStart(event, item) {\n // let fields = this.NodeToFields.get(item.Id);\n // if (fields) {\n // if (fields.length)\n // //let t = JSON.stringify('sdfsdfsdf');\n // event.dataTransfer.setData('fields', JSON.stringify(fields));\n // event.dataTransfer.setData('caption', 'sdfsdfsdf');\n // }\n //}\n\n\n\n hasChild = (_: number, node: TreeFlatNode) => node.expandable;\n\n onNodeDrop(event) {\n console.log('onNodeDrop');\n event.originalEvent.stopPropagation();\n event.originalEvent.preventDefault();\n return;\n }\n\n\n\n\n allowDrop(event) {\n event.preventDefault();\n event.dataTransfer.Move = event.dataTransfer.getData('container');\n }\n\n public dragOver(event: DragEvent) {\n //if (this.dragging) {\n event.preventDefault();\n // }\n };\n\n\n @Output() ShowContainerSelect = new EventEmitter();\n OnShowContainerSelect(ev) {\n this.ShowContainerSelect.emit(ev);\n }\n\n\n refreshReportObject() {\n //ToDo OC this.BaseSlide.RefreshSelectedReportObjects();\n\n }\n}\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { TranslateFormatText } from '../../../helpers/array.helpers';\nimport { RelSourceHelper } from '../../../helpers/relsource.helper';\nimport { DatadescriptionData } from '../../../models/datadescription/datadescriptiondata.model';\nimport { MessageBoxButtons } from '../../../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../../../models/enums/messageboxicon.enum';\nimport { OcDragItemType } from '../../../models/enums/oc.DragItemType';\nimport { TranslatedString } from '../../../models/translatedstring.model';\nimport { ABaseTreeNode } from '../../common/basetreecontrol/base.tree.control';\nimport { ContainerSelectDialog } from '../../dialogs/containerSelect.dialog';\nimport { DatadescriptionControl, OCMPDragInfo } from '../../dialogs/datadescription/datadescription.control';\nimport { MessageBoxHelper } from '../../dialogs/messagebox/messagebox.dialog';\n\nexport class TreeNodeRelational extends ABaseTreeNode {\n Type: any;\n FieldID: any;\n ContainerID: any;\n ContainerUniqueID: any;\n DataSourceID: any;\n TranslatedCaption: TranslatedString;\n}\n\n@Component({\n selector: 'objectcreatorsource-relational',\n templateUrl: './objectcreatorsource.relational.html'\n})\nexport class ObjectCreatorSourceRelational implements OnInit {\n\n static DragEnd = new Subject();\n\n DataDescriptionDataValue: DatadescriptionData;\n\n @Input()\n get DataDescriptionData() {\n return this.DataDescriptionDataValue;\n }\n set DataDescriptionData(val) {\n this.DataDescriptionDataValue = val;\n }\n\n ContainerSelectDialog: ContainerSelectDialog;\n\n get Containers() {\n\n if (this.DataDescriptionData.Datadescription) {\n if (!this.DataDescriptionData.Datadescription.ContainersValue) {\n this.DataDescriptionData.Datadescription.ContainersValue = [];\n }\n return this.DataDescriptionData.Datadescription.ContainersValue;\n }\n return [];\n }\n\n get DataModelID() {\n return this.DataDescriptionData.DataModelID;\n }\n\n MaxUniqueID = 1;\n UsedRelations = [];\n TreeSource = [];\n\n @Output() ShowContainerSelect = new EventEmitter();\n\n constructor(private cdRef: ChangeDetectorRef) {\n }\n\n addContainer() {\n this.ShowContainerSelect.emit({\n Query: {\n DataModelID: this.DataModelID\n }\n });\n }\n\n itemDrop(event) {\n const item = JSON.parse(event.dataTransfer.getData('container'));\n const allContainers = JSON.parse(event.dataTransfer.getData('allcontainer'));\n if (this.Containers.length == 0) {\n item.UniqueID = this.MaxUniqueID++;\n this.Containers.push(item);\n const dd = this.DataDescriptionData;\n if (dd.Datadescription) {\n dd.Datadescription.SetColumnsFilter();\n }\n this.UpdateTreeSource();\n } else {\n if (!this.Containers.some(x => x.SID === item.SID)) {\n item.UniqueID = this.MaxUniqueID + 1;\n RelSourceHelper.GetValidRelation(this.DataModelID, item, this.Containers, this.UsedRelations, allContainers).then(retVal => {\n if (retVal) {\n if (retVal.Container.length > 0) {\n retVal.Container.forEach(c => {\n if (this.MaxUniqueID < c.UniqueID) {\n this.MaxUniqueID = c.UniqueID;\n }\n this.Containers.push(c);\n });\n this.UsedRelations.push(...retVal.RelDefs);\n this.DataDescriptionData.Datadescription.Relations = this.UsedRelations;\n this.DataDescriptionData.Datadescription.SetColumnsFilter();\n this.MaxUniqueID++;\n this.UpdateTreeSource();\n }\n } else {\n MessageBoxHelper.ShowDialog(new TranslateFormatText('@@Hinzufuegen nicht moeglich, da keine weitere Verbindung mehr moeglich ist.'), new TranslateFormatText('@@Fehler'), MessageBoxButtons.Ok, MessageBoxIcon.Error);\n }\n });\n }\n }\n }\n\n UpdateTreeSource() {\n if (this.Containers) {\n const treeSource = [];\n this.Containers.forEach(cont => {\n if (cont) {\n const Node = new TreeNodeRelational(cont.UniqueID);\n Node.Caption = cont.Caption != null ? cont.Caption : 'undefined';\n Node.FieldID = cont.SID;\n Node.DataSourceID = cont.DataSourceId;\n Node.IsExpanded = false;\n Node.Draggable = true;\n if (cont.Fields) {\n Node.HasChildren = true;\n Node.Children = [];\n cont.Fields.forEach(f => {\n if (!f.UniqueID) {\n f.UniqueID = this.MaxUniqueID++;\n }\n const field = new TreeNodeRelational(f.UniqueID);\n field.Caption = f.Caption != null ? f.Caption : 'undefined';\n field.TranslatedCaption = new TranslatedString(field.Caption);\n field.FieldID = f.ID;\n field.ContainerID = cont.SID;\n field.ContainerUniqueID = cont.UniqueID;\n field.DataSourceID = cont.DataSourceId;\n field.Draggable = true;\n field.Type = f.FieldType;\n Node.Children.push(field);\n });\n }\n treeSource.push(Node);\n }\n });\n this.TreeSource = treeSource;\n this.cdRef.detectChanges();\n }\n }\n\n dragStart(event) {\n if (event && event.DragData && event.DragData.length > 0) {\n const item = event.DragData[0];\n if (item) {\n if (item.HasChildren) {\n DatadescriptionControl.ObjectCreatorMPDragStart.next(new OCMPDragInfo(OcDragItemType.Fields, item.Children));\n } else {\n DatadescriptionControl.ObjectCreatorMPDragStart.next(new OCMPDragInfo(OcDragItemType.Fields, [item]));\n }\n }\n }\n }\n\n dragEnd(ev) {\n ObjectCreatorSourceRelational.DragEnd.next(null);\n DatadescriptionControl.ObjectCreatorMPDragStart.next(null);\n }\n\n onNodeDrop(event) {\n console.log('onNodeDrop');\n event.originalEvent.stopPropagation();\n event.originalEvent.preventDefault();\n return;\n }\n\n allowDrop(event) {\n event.preventDefault();\n event.dataTransfer.Move = event.dataTransfer.getData('container');\n }\n\n ngOnInit() {\n this.UpdateTreeSource();\n }\n}\n","import { OnInit, Component, Input, TemplateRef, EventEmitter, Output } from \"@angular/core\";\nimport { ContainerSelectDialog } from \"../../dialogs/containerSelect.dialog\";\nimport { FlatTreeControl } from \"@angular/cdk/tree\";\nimport { MatTreeFlattener, MatTreeFlatDataSource } from \"@angular/material/tree\";\nimport { ObjectCreatorSourceMultiPanel } from \"./objectcreatorsource.multipanel\";\nimport { Subject } from \"rxjs\";\nimport { SpecialElementType } from \"../../../models/enums/specialElementType\";\nimport { ABaseTreeNode, IBaseTreeNode } from \"../../common/basetreecontrol/base.tree.control\";\n\n\nexport class TreeNodeSource extends ABaseTreeNode{\n SID: any;\n type: any;\n ParentID: any;\n DataSourceID: any;\n SpecialElementType: SpecialElementType = SpecialElementType.None;\n\n constructor(id: number, draggable =true) {\n super(id);\n super.Draggable = draggable;\n }\n\n\n\n}\n\n\n@Component({\n selector: 'objectcreatorsourcetreebase',\n templateUrl: './objectcreatorsourcetree.base.html',\n styleUrls: ['./objectcreatorsourcetree.css']\n})\nexport class ObjectCreatorSourceTreeBase {\n\n @Input() templateRef: TemplateRef;\n constructor() { }\n\n MultiPanelValue: ObjectCreatorSourceMultiPanel;\n\n static DragEnd = new Subject();\n\n @Input()\n get MultiPanel() {\n return this.MultiPanelValue;\n }\n set MultiPanel(val) {\n this.MultiPanelValue = val;\n }\n\n @Output() SelectedNodeChange = new EventEmitter();\n\n\n get BaseSlide() {\n return null;\n //ToDo OC return this.MultiPanel.BaseSlide;\n }\n\n ////#region Tree Container\n //private _transformer = (node: TreeNodeSource, level: number) => {\n // return {\n // expandable: !!node.children && node.children.length > 0,\n // name: node.name,\n // level: level,\n // Id: node.Id\n // };\n //}\n\n //treeControl = new FlatTreeControl(\n // node => node.level, node => node.expandable);\n\n //treeFlattener = new MatTreeFlattener(\n // this._transformer, node => node.level, node => node.expandable, node => node.children);\n\n //dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\n\n get DataModelID() {\n if (this.BaseSlide && this.BaseSlide.ReportLayout) {\n return this.BaseSlide.ReportLayout.DataModelID;\n }\n return \"\";\n }\n\n MaxUniqueID = 1;\n GetNextUniqueID() {\n return this.MaxUniqueID++;\n }\n\n\n\n\n\n DbItems = [];\n TreeSource =\n [\n ];\n\n\n SortTreeListAlphabetical(list: IBaseTreeNode[], recursiv: boolean) {\n if (list) {\n list.sort(function (a: IBaseTreeNode, b: IBaseTreeNode) {\n let textA = (a && typeof a.Caption === 'string') ? a.Caption.toUpperCase() : '';\n let textB = (b && typeof b.Caption === 'string') ? b.Caption.toUpperCase() : '';\n\n return textA.localeCompare(textB);\n });\n if (recursiv) {\n list.forEach(item => {\n let tnd: IBaseTreeNode = item;\n if (tnd && tnd.Children) {\n this.SortTreeListAlphabetical(tnd.Children, true);\n }\n });\n }\n }\n }\n\n dragNode: any;\n /** Map from flat node to nested node. This helps us finding the nested node to be modified */\n //flatNodeMap = new Map();\n NodeToDbItem: Map = new Map();\n\n\n UpdateTreeSource(node) {\n\n }\n\n dragStart(event) {\n //let fields = this.NodeToDbItem.get(item.Id);\n //if (fields) {\n // if (fields.length)\n // //let t = JSON.stringify(\"sdfsdfsdf\");\n // event.dataTransfer.setData(\"fields\", JSON.stringify(fields));\n // event.dataTransfer.setData(\"caption\", \"sdfsdfsdf\");\n\n //}\n }\n\n SelectedNode = null;\n selectionChange (event) {\n if (event) {\n this.SelectedNode = event;\n this.SelectedNodeChange.emit(this.SelectedNode);\n }\n }\n\n dragEnd(ev) {\n\n }\n}\n","import { Component } from '@angular/core';\nimport { LevelType } from '../../../models/enums';\nimport { OcDragItemType } from '../../../models/enums/oc.DragItemType';\nimport { DatadescriptionControl, OCMPDragInfo } from '../../dialogs/datadescription/datadescription.control';\nimport { ObjectCreatorSourceTreeBase, TreeNodeSource } from './objectcreatorsourcetree.base';\n\n@Component({\n selector: 'objectcreatorsourcetreebase-level',\n templateUrl: './objectcreatorsourcetree.base.html',\n styleUrls: ['./objectcreatorsourcetree.css']\n})\nexport class ObjectCreatorSourceTreeLevel extends ObjectCreatorSourceTreeBase {\n\n UpdateTreeSource(node) {\n this.TreeSource = [];\n if (this.DbItems && node == null) {\n let treeIdNumber = 0;\n this.DbItems.forEach(cubeDbItem => {\n const cubeNode = new TreeNodeSource(++treeIdNumber);\n this.NodeToDbItem.set(cubeDbItem.ID, cubeDbItem);\n cubeNode.Caption = cubeDbItem.Caption != null ? cubeDbItem.Caption : 'undefined';\n cubeNode.SID = cubeDbItem.ID;\n cubeNode.DataSourceID = cubeDbItem.DataSourceId;\n cubeNode.IsExpanded = false;\n cubeNode.Children = [];\n cubeNode.HasChildren = true;\n cubeNode.Icon = 'cube';\n this.TreeSource.push(cubeNode);\n cubeDbItem.Dimensions.forEach(dimDbItem => {\n const dimNode = new TreeNodeSource(++treeIdNumber);\n this.NodeToDbItem.set(dimDbItem.ID, dimDbItem);\n dimNode.Caption = dimDbItem.Caption != null ? dimDbItem.Caption : 'undefined';\n dimNode.SID = dimDbItem.ID;\n dimNode.DataSourceID = dimDbItem.DataSourceId;\n dimNode.IsExpanded = false;\n dimNode.HasChildren = true;\n dimNode.Children = [];\n dimNode.Icon = 'dimension';\n cubeNode.Children.push(dimNode);\n if (dimDbItem.Hierarchies) {\n dimDbItem.Hierarchies.forEach(hierarchy => {\n const hierNode = new TreeNodeSource(++treeIdNumber);\n this.NodeToDbItem.set(hierarchy.ID, hierarchy);\n hierNode.Caption = hierarchy.Caption != null ? hierarchy.Caption : 'undefined';\n hierNode.SID = hierarchy.ID;\n hierNode.DataSourceID = dimDbItem.DataSourceId;\n hierNode.IsExpanded = false;\n hierNode.Icon = 'attribute';\n hierNode.HasChildren = !hierarchy.IsAttributeHierarchy;\n\n if (hierarchy.Levels && !hierarchy.IsAttributeHierarchy) {\n hierNode.Children = [];\n hierNode.HasChildren = true;\n hierNode.Icon = 'hierarchy';\n hierarchy.Levels.forEach(level => {\n const levelNode = new TreeNodeSource(++treeIdNumber);\n this.NodeToDbItem.set(level.ID, level);\n levelNode.Caption = level.Caption != null ? level.Caption : 'undefined';\n levelNode.SID = level.ID;\n levelNode.DataSourceID = dimDbItem.DataSourceId;\n levelNode.IsExpanded = false;\n levelNode.HasChildren = false;\n levelNode.Icon = 'dimension';\n hierNode.Children.push(levelNode);\n });\n }\n if (hierNode.Children.length === 1) { // nur ein Kind\n dimNode.Children.push(hierNode.Children[0]);\n } else {\n dimNode.Children.push(hierNode);\n }\n });\n }\n });\n });\n this.SortTreeListAlphabetical(this.TreeSource, false);\n this.TreeSource.forEach(x => {\n if (x.Children) {\n this.SortTreeListAlphabetical(x.Children, false);\n x.Children.forEach(y => {\n if (y.Children) {\n this.SortTreeListAlphabetical(y.Children, false);\n }\n });\n }\n });\n }\n }\n\n dragStart(event) {\n if (event && event.DragData && event.DragData.length > 0) {\n const node = event.DragData[0];\n if (node) {\n const dbItem = this.NodeToDbItem.get(node.SID);\n const dropItems = this.GetAllDropItems(dbItem);\n if (dropItems && dropItems.length > 0) {\n const data = {\n DraggedID: node.SID,\n DropIDs: []\n };\n dropItems.forEach(item => {\n data.DropIDs.push(item.ID);\n });\n DatadescriptionControl.ObjectCreatorMPDragStart.next(new OCMPDragInfo(OcDragItemType.Level, data));\n \n }\n }\n }\n }\n\n GetAllDropItems(dbItem) {\n let dropItems = [];\n if (dbItem.Dimensions) {\n dbItem.Dimensions.forEach(dim => {\n const r = this.GetAllDropItems(dim);\n if (r) {\n dropItems.push(...r);\n }\n });\n } else {\n if (dbItem.Hierarchies || dbItem.Attributes) {\n if (dbItem.Hierarchies) {\n dbItem.Hierarchies.forEach(h => {\n let hierLevels = [];\n h.Levels.forEach(l => {\n hierLevels.push(l);\n });\n if (hierLevels.length > 1) {\n hierLevels = hierLevels.filter(x => x.LevelType !== LevelType.All);\n }\n hierLevels.forEach(hl => {\n if (!dropItems.find(di => di.ID === hl.ID)) {\n dropItems.push(hl);\n }\n });\n });\n }\n } else if (dbItem.Levels) {\n dbItem.Levels.forEach(l => {\n dropItems.push(l);\n });\n if (dropItems.length > 1) {\n dropItems = dropItems.filter(x => x.LevelType !== LevelType.All);\n }\n } else {\n dropItems.push(dbItem);\n }\n }\n return dropItems;\n }\n\n dragEnd(ev) {\n ObjectCreatorSourceTreeLevel.DragEnd.next(null);\n DatadescriptionControl.ObjectCreatorMPDragStart.next(null);\n }\n}\n","import { Component } from '@angular/core';\nimport { OcDragItemType } from '../../../models/enums/oc.DragItemType';\nimport { DatadescriptionControl, OCMPDragInfo } from '../../dialogs/datadescription/datadescription.control';\nimport { ObjectCreatorSourceTreeBase, TreeNodeSource } from './objectcreatorsourcetree.base';\n\n@Component({\n selector: 'objectcreatorsourcetreebase-measure',\n templateUrl: './objectcreatorsourcetree.base.html',\n styleUrls: ['./objectcreatorsourcetree.css']\n})\nexport class ObjectCreatorSourceTreeMeasure extends ObjectCreatorSourceTreeBase {\n\n UpdateTreeSource(node) {\n if (this.DbItems) {\n if (node == null) {\n this.TreeSource = [];\n const cubeNodes = new Map();\n const cubeItems = this.DbItems;\n for (let h = 0; h < cubeItems.length; h++) {\n const cubeDbItem = cubeItems[h];\n if (!cubeDbItem.UniqueID) {\n cubeDbItem.UniqueID = this.MaxUniqueID++;\n }\n const folderNodes = new Map();\n const measureNodesOnRoot: TreeNodeSource[] = [];\n\n const cubeNode = new TreeNodeSource(cubeDbItem.UniqueID);\n cubeNode.Children = [];\n cubeNode.HasChildren = true;\n cubeNode.Caption = cubeDbItem.Caption != null ? cubeDbItem.Caption : 'undefined';\n cubeNode.SID = cubeDbItem.ID;\n cubeNode.Icon = \"cube\";\n cubeNode.IsExpanded = false;\n cubeNodes.set(cubeDbItem.ID != null ? cubeDbItem.Caption : 'undefined', cubeNode);\n\n const measureItems = cubeItems[h].Measures;\n for (let i = 0; i < measureItems.length; i++) {\n if (measureItems[i]) {\n const dbItem = measureItems[i];\n if (!dbItem.UniqueID) {\n dbItem.UniqueID = this.MaxUniqueID++;\n }\n if (dbItem.Folder && !folderNodes.has(dbItem.Folder)) {\n const folderNode = new TreeNodeSource(dbItem.UniqueID);\n folderNode.Children = [];\n folderNode.HasChildren = true;\n folderNode.Caption = dbItem.Folder;\n folderNode.SID = dbItem.ID;\n folderNode.DataSourceID = measureItems[i].DataSourceId;\n folderNode.IsExpanded = false;\n folderNodes.set(dbItem.Folder, folderNode);\n }\n if (!measureItems[i].UniqueID) {\n measureItems[i].UniqueID = this.MaxUniqueID++;\n }\n const Node = new TreeNodeSource(measureItems[i].UniqueID);\n Node.Caption = measureItems[i].Caption != null ? measureItems[i].Caption : 'undefined';\n Node.SID = measureItems[i].ID;\n Node.DataSourceID = measureItems[i].DataSourceId;\n Node.IsExpanded = false;\n Node.Icon = \"bar_chart\";\n if (dbItem.Folder && !folderNodes.has(dbItem.Folder)) {\n let folderNode: TreeNodeSource;\n folderNode = folderNodes.get(dbItem.Folder);\n folderNode.Children.push(Node);\n }\n else {\n measureNodesOnRoot.push(Node);\n }\n }\n }\n\n if (folderNodes.size > 0) {\n cubeNode.HasChildren = true;\n const allFolderChildren = [];\n folderNodes.forEach((value: TreeNodeSource, key: string) => {\n if (value && value.HasChildren)\n allFolderChildren.push(value);\n });\n this.SortTreeListAlphabetical(allFolderChildren, true);\n cubeNode.Children.push(...allFolderChildren);\n }\n if (measureNodesOnRoot) {\n this.SortTreeListAlphabetical(measureNodesOnRoot, true);\n cubeNode.Children.push(...measureNodesOnRoot);\n }\n }\n if (cubeNodes.size > 0) {\n cubeNodes.forEach((value: TreeNodeSource, key: string) => {\n this.TreeSource.push(value);\n });\n this.SortTreeListAlphabetical(this.TreeSource, false);\n }\n }\n }\n }\n\n dragStart(event) {\n if (event && event.DragData && event.DragData.length > 0) {\n const dbItem = event.DragData[0];\n if (dbItem) {\n const idsToDrop = [];\n if (dbItem.Children) {\n dbItem.Children.forEach(c => {\n idsToDrop.push(c.SID);\n });\n } else {\n idsToDrop.push(dbItem.SID);\n }\n DatadescriptionControl.ObjectCreatorMPDragStart.next(new OCMPDragInfo(OcDragItemType.Measure, {\n DropIDs: idsToDrop\n }));\n }\n }\n }\n\n dragEnd(ev) {\n ObjectCreatorSourceTreeMeasure.DragEnd.next(null);\n DatadescriptionControl.ObjectCreatorMPDragStart.next(null);\n }\n}\n","import { Component } from '@angular/core';\nimport { UUID } from 'angular2-uuid';\nimport { TranslateHelper } from '../../../helpers/injector.helper';\nimport { OcDragItemType } from '../../../models/enums/oc.DragItemType';\nimport { SpecialElementType } from '../../../models/enums/specialElementType';\nimport { DatadescriptionControl, OCMPDragInfo } from '../../dialogs/datadescription/datadescription.control';\nimport { ObjectCreatorSourceTreeBase, TreeNodeSource } from './objectcreatorsourcetree.base';\n\n@Component({\n selector: 'objectcreatorsourcetreebase-special',\n templateUrl: './objectcreatorsourcetree.base.html',\n styleUrls: ['./objectcreatorsourcetree.css']\n})\nexport class ObjectCreatorSourceTreeSpecial extends ObjectCreatorSourceTreeBase {\n\n UpdateTreeSource(node) {\n\n this.TreeSource = [];\n\n const NodeCalculated = new TreeNodeSource(this.MaxUniqueID++);\n NodeCalculated.Caption = TranslateHelper.TranslatorInstance.instant(\"@@Berechneter Wert\");\n NodeCalculated.SID = UUID.UUID();\n NodeCalculated.Icon = \"calculate\";\n NodeCalculated.SpecialElementType = SpecialElementType.CalculatedElement;\n NodeCalculated.IsExpanded = false;\n this.TreeSource.push(NodeCalculated);\n\n const NodeEmpty = new TreeNodeSource(this.MaxUniqueID++);\n NodeEmpty.Caption = TranslateHelper.TranslatorInstance.instant(\"@@leeres Element\");\n NodeEmpty.Icon = \"border_clear\";\n NodeEmpty.SID = UUID.UUID();\n NodeEmpty.SpecialElementType = SpecialElementType.EmptyElement;\n NodeEmpty.IsExpanded = false;\n this.TreeSource.push(NodeEmpty);\n\n const NodeVariable = new TreeNodeSource(this.MaxUniqueID++);\n NodeVariable.Caption = TranslateHelper.TranslatorInstance.instant(\"@@Variablenelement\");\n NodeVariable.SID = UUID.UUID();\n NodeVariable.SpecialElementType = SpecialElementType.Variable;\n NodeVariable.Icon = \"globalvariable\";\n NodeVariable.IsExpanded = false;\n this.TreeSource.push(NodeVariable);\n }\n\n dragStart(event) {\n if (event && event.DragData && event.DragData.length > 0) {\n const dbItem = event.DragData[0];\n if (dbItem) {\n if (dbItem.SpecialElementType === SpecialElementType.Variable) {\n DatadescriptionControl.ObjectCreatorMPDragStart.next(new OCMPDragInfo(OcDragItemType.LevelAndMeasure, { SpecialElementType: dbItem.SpecialElementType }));\n } else {\n DatadescriptionControl.ObjectCreatorMPDragStart.next(new OCMPDragInfo(OcDragItemType.Measure, { SpecialElementType: dbItem.SpecialElementType }));\n }\n }\n }\n }\n\n dragEnd(ev) {\n DatadescriptionControl.ObjectCreatorMPDragStart.next(null);\n }\n}\n","import {\n AfterViewInit, ChangeDetectorRef, Component, ComponentFactoryResolver, EventEmitter, Input, Output, ViewChild, ViewContainerRef\n} from '@angular/core';\nimport { UUID } from 'angular2-uuid';\nimport { TranslateFormatText } from '../../../helpers/array.helpers';\nimport { TranslateHelper } from '../../../helpers/injector.helper';\nimport { TaskRegistry, TaskType } from '../../../helpers/task.registry';\nimport { MessageBoxButtons } from '../../../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../../../models/enums/messageboxicon.enum';\nimport { MessageBoxResult } from '../../../models/enums/messageboxresult.enum';\nimport { MessageBoxHelper } from '../../dialogs/messagebox/messagebox.dialog';\nimport { NewTaskDialog } from '../../taskpanels/new.task.dialog';\n\n@Component({\n selector: 'datatask-panel',\n templateUrl: './datatask.panel.html',\n styles: [\n '.taskCaption { font-size: 18px; margin-bottom: 10px; }',\n '.listPanel { margin-left: 5px; margin-right: 5px; }',\n '.listPanel .settingsList { width: 250px; margin-right: 0px; }'\n ]\n})\nexport class DataTaskPanel implements AfterViewInit {\n AllListItems = [];\n ListItems = [];\n selectedNode;\n ActiveStyle = {};\n SelectedTaskCaption = '';\n Initialized = false;\n\n TaskListValue = [];\n @Input()\n get TaskList() {\n return this.TaskListValue;\n }\n set TaskList(val) {\n this.TaskListValue = val;\n this.TaskListChange.emit(val);\n this.updateTaskList();\n }\n @Output() TaskListChange = new EventEmitter();\n\n DataDescriptionValue;\n @Input()\n get DataDescription() {\n return this.DataDescriptionValue;\n }\n set DataDescription(val) {\n this.DataDescriptionValue = val;\n this.DataDescriptionChange.emit(val);\n }\n @Output() DataDescriptionChange = new EventEmitter();\n\n @ViewChild('dynamic', { read: ViewContainerRef }) viewContainerRef: ViewContainerRef;\n\n _SearchValue;\n get SearchValue() {\n return this._SearchValue;\n }\n set SearchValue(val) {\n this._SearchValue = val;\n this.FilterList();\n }\n\n constructor(private factoryResolver: ComponentFactoryResolver, private cdRef: ChangeDetectorRef) {\n }\n\n ngAfterViewInit(): void {\n this.Initialized = true;\n this.updateTaskList();\n }\n\n updateTaskList() {\n if (this.Initialized) {\n const list = [];\n if (this.TaskListValue) {\n this.TaskListValue.forEach((task, i) => {\n const item = {\n Caption: 'Missing TaskType',\n ID: i,\n Tooltip: ''\n };\n if (typeof task.ID === 'undefined') {\n task.ID = UUID.UUID();\n }\n item.Tooltip = item.Caption;\n if (task.TaskType) {\n item.Caption = task.TaskType;\n const desc = TaskRegistry.get(task.TaskType);\n if (desc && desc.SettingsHelper) {\n item.Caption = desc.SettingsHelper.getCaption(task, this.DataDescriptionValue);\n if (task.MeasureUniqueID) {\n // item.Tooltip = new Promise((resolve, reject) => {\n // const tooltip =\n desc.SettingsHelper.Gettooltip(task, this.DataDescriptionValue).then(tooltip => {\n item.Tooltip = (!tooltip || tooltip == '') ? item.Caption : tooltip;\n if (task.TaskType) {\n item.Tooltip += ' #' + task.TaskType;\n if (task.Formula) {\n item.Tooltip += ' #' + task.Formula;\n }\n if (task.IsActive) {\n item.Tooltip += ' #' + TranslateHelper.TranslatorInstance.instant('@@Aktiv: ');\n }\n else {\n item.Tooltip += ' #' + TranslateHelper.TranslatorInstance.instant('@@Inaktiv: ');\n }\n }\n });\n }\n }\n }\n list.push(item);\n });\n }\n this.AllListItems = list;\n this.FilterList();\n this.setSelectedItem(null);\n }\n }\n\n FilterList() {\n this.ListItems = this.AllListItems.filter(item =>\n (!this._SearchValue || item.Caption.toString().search(this._SearchValue) !== -1));\n }\n\n onItemClick(selection) {\n if (this.selectedNode !== selection) {\n this.selectedNode = selection;\n let task = null;\n if (selection && this.TaskListValue) {\n task = this.TaskListValue[selection.ID];\n }\n this.setSelectedItem(task);\n }\n }\n\n addItem() {\n NewTaskDialog.ShowDialog(TaskType.DataTask, null, (r) => {\n const task = {\n TaskType: r,\n IsActive: true,\n ID: UUID.UUID()\n };\n const item = {\n Caption: r,\n ID: this.TaskListValue.length\n };\n this.TaskListValue.push(task);\n const desc = TaskRegistry.get(r);\n if (desc && desc.SettingsHelper) {\n item.Caption = desc.SettingsHelper.getCaption(task, this.DataDescriptionValue);\n }\n this.AllListItems.push(item);\n this.SearchValue = null;\n this.FilterList();\n this.selectedNode = item;\n this.setSelectedItem(task);\n this.cdRef.detectChanges();\n });\n }\n\n copyItem() {\n if (this.selectedNode) {\n const oldTask = this.TaskListValue[this.selectedNode.ID];\n const task = JSON.parse(JSON.stringify(oldTask));\n const item = {\n Caption: this.selectedNode.Caption,\n ID: this.TaskListValue.length\n };\n this.TaskListValue.push(task);\n this.AllListItems.push(item);\n this.FilterList();\n this.selectedNode = item;\n this.setSelectedItem(task);\n this.cdRef.detectChanges();\n }\n }\n\n setSelectedItem(item) {\n let caption = '';\n const activeStyle = {};\n if (this.viewContainerRef) {\n this.viewContainerRef.clear();\n if (item && item.TaskType) {\n const desc = TaskRegistry.get(item.TaskType);\n if (desc) {\n caption = desc.Caption;\n const factory = this.factoryResolver.resolveComponentFactory(desc.SettingsControl);\n const component: any = this.viewContainerRef.createComponent(factory).instance;\n component.DataDescription = this.DataDescriptionValue;\n component.Settings = item;\n if (item.IsActive === false) {\n activeStyle['opacity'] = '0.5';\n }\n }\n }\n } else if (item && item.IsActive === false) {\n activeStyle['opacity'] = '0.5';\n }\n this.ActiveStyle = activeStyle;\n this.SelectedTaskCaption = caption;\n }\n\n deleteAllItems() {\n if (this.TaskListValue) {\n if (this.TaskListValue.length > 0) {\n const text = new TranslateFormatText('@@Sind Sie sicher, dass Sie alle Tasks loeschen moechten?');\n MessageBoxHelper.ShowDialog(text, new TranslateFormatText('@@Task loeschen'),\n MessageBoxButtons.YesNo, MessageBoxIcon.Question).then(retVal => {\n if (retVal === MessageBoxResult.Yes) {\n this.TaskListValue = [];\n this.ListItems = [];\n this.AllListItems = [];\n this.cdRef.detectChanges();\n }\n });\n }\n }\n }\n\n deleteItem() {\n const sel = this.selectedNode;\n if (sel) {\n const text = new TranslateFormatText('@@Sind Sie sicher, dass Sie den Task \\'{0}\\' loeschen moechten?');\n text.FormatParams.push(sel.Caption);\n MessageBoxHelper.ShowDialog(text, new TranslateFormatText('@@Task loeschen'),\n MessageBoxButtons.YesNo, MessageBoxIcon.Question).then(retVal => {\n if (retVal === MessageBoxResult.Yes) {\n this.selectedNode = null;\n this.setSelectedItem(null);\n this.TaskListValue.splice(sel.ID, 1);\n this.AllListItems.splice(sel.ID, 1);\n for (let i = sel.ID; i < this.AllListItems.length; i++) {\n this.AllListItems[i].ID--;\n }\n this.FilterList();\n this.cdRef.detectChanges();\n }\n });\n }\n }\n\n refreshList(selectedNode = null, task = null) {\n this.FilterList();\n this.selectedNode = selectedNode;\n this.setSelectedItem(task);\n }\n\n moveUp() {\n if (this.selectedNode && this.selectedNode.ID > 0 && this.TaskListValue && this.TaskListValue.length > 0) {\n const task = this.TaskListValue.splice(this.selectedNode.ID, 1)[0];\n this.TaskListValue.splice(0, 0, task);\n this.AllListItems.splice(this.selectedNode.ID, 1);\n this.AllListItems.splice(0, 0, this.selectedNode);\n this.AllListItems.forEach((x, i) => { x.ID = i; });\n this.refreshList(this.selectedNode, task);\n }\n }\n\n moveOneUp() {\n if (this.selectedNode && this.selectedNode.ID > 0 && this.TaskListValue && this.TaskListValue.length > 0) {\n const task = this.TaskListValue.splice(this.selectedNode.ID, 1)[0];\n this.TaskListValue.splice(this.selectedNode.ID - 1, 0, task);\n this.AllListItems.splice(this.selectedNode.ID, 1);\n this.AllListItems.splice(this.selectedNode.ID - 1, 0, this.selectedNode);\n this.AllListItems.forEach((x, i) => { x.ID = i; });\n this.refreshList(this.selectedNode, task);\n }\n }\n\n moveOneDown() {\n if (this.selectedNode && this.TaskListValue && this.TaskListValue.length > 0 &&\n this.selectedNode.ID < this.TaskListValue.length - 1) {\n const task = this.TaskListValue.splice(this.selectedNode.ID, 1)[0];\n this.TaskListValue.splice(this.selectedNode.ID + 1, 0, task);\n this.AllListItems.splice(this.selectedNode.ID, 1);\n this.AllListItems.splice(this.selectedNode.ID + 1, 0, this.selectedNode);\n this.AllListItems.forEach((x, i) => { x.ID = i; });\n this.refreshList(this.selectedNode, task);\n }\n }\n\n moveDown() {\n if (this.selectedNode && this.TaskListValue && this.TaskListValue.length > 0 &&\n this.selectedNode.ID < this.TaskListValue.length - 1) {\n const task = this.TaskListValue.splice(this.selectedNode.ID, 1)[0];\n this.TaskListValue.push(task);\n this.AllListItems.splice(this.selectedNode.ID, 1);\n this.AllListItems.push(this.selectedNode);\n this.AllListItems.forEach((x, i) => { x.ID = i; });\n this.refreshList(this.selectedNode, task);\n }\n }\n\n setActive() {\n const activeStyle = {};\n if (this.selectedNode && this.TaskListValue) {\n const task = this.TaskListValue[this.selectedNode.ID];\n if (task.IsActive === false) {\n task.IsActive = true;\n } else {\n task.IsActive = false;\n activeStyle['opacity'] = '0.5';\n }\n }\n this.ActiveStyle = activeStyle;\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { MultiCacheService } from '../../../cache/multi/cache.service';\nimport { FilterHelper } from '../../../helpers/filter.helper';\nimport { DataDescription } from '../../../models/datadescription/multi/datadescription.model';\nimport { FilterElementSettings } from '../../../models/datadescription/multi/filter/filterElementSettings.model';\nimport { FilterMultidimensional } from '../../../models/datadescription/multi/filter/filterMultidimensional.model';\nimport { OcDragItemType } from '../../../models/enums/oc.DragItemType';\nimport { LayoutService } from '../../../services/layout.service';\nimport { FilterTreeDialog } from '../../controls/filter/filter.tree.dialog';\nimport { DatadescriptionControl } from '../../dialogs/datadescription/datadescription.control';\n\n@Component({\n selector: 'filterpanelcontrol',\n templateUrl: './filterpanel.control.html',\n styleUrls: ['./filterpanel.control.css']\n})\nexport class FilterPanelControl implements OnInit, OnDestroy {\n\n SystemVariables = [];\n DraggedHierarchy = null;\n\n DataDescriptionValue: DataDescription;\n @Input()\n get DataDescription() {\n return this.DataDescriptionValue;\n }\n set DataDescription(value) {\n this.DataDescriptionValue = value;\n }\n\n filterItemsValue: FilterMultidimensional[] = [];\n @Input()\n get FilterItems() {\n return this.filterItemsValue;\n }\n set FilterItems(value) {\n if (Array.isArray(value)) {\n value.forEach(x => {\n FilterPanelControl.SetDefaultSelectsText(x);\n });\n this.filterItemsValue = value;\n } else {\n this.filterItemsValue = [];\n }\n }\n @Output() FilterItemsChange = new EventEmitter();\n\n Subscription;\n\n private static SetDefaultSelectsText(item: FilterMultidimensional) {\n if (item) {\n item.DefaultSelectsText = '[';\n if (item.Defaults) {\n let count = 0;\n item.Defaults.forEach(ds => {\n count += ds.MemberIds ? ds.MemberIds.length : 0;\n });\n item.DefaultSelectsText += count.toString();\n } else {\n item.DefaultSelectsText += '0';\n }\n item.DefaultSelectsText += ']';\n }\n }\n\n ngOnInit(): void {\n this.SystemVariables = FilterHelper.GetVariables(LayoutService.SelectedLayout.getValue());\n this.Subscription = DatadescriptionControl.ObjectCreatorMPDragStart.subscribe(x => {\n this.DraggedHierarchy = null;\n if (x && x.DragType === OcDragItemType.Level && x.DragContent) {\n MultiCacheService.GetHierarchy(x.DragContent.DraggedID, this.DataDescription.DataModelID).then(y => {\n this.DraggedHierarchy = y;\n });\n }\n });\n }\n\n ngOnDestroy(): void {\n if (this.Subscription) {\n this.Subscription.unsubscribe();\n }\n }\n\n delete(index) {\n this.FilterItems.splice(index, 1);\n }\n\n showFilterTreeDialog(item) {\n const FilterElementSettingsValue = new FilterElementSettings();\n FilterElementSettingsValue.CodeDesc = 3;\n FilterElementSettingsValue.DataSource = item.DatasourceID;\n FilterElementSettingsValue.DataModel = this.DataDescription.DataModelID;\n FilterElementSettingsValue.Hierarchy = item.Hierarchy;\n FilterElementSettingsValue.Levels = item.Levels;\n FilterElementSettingsValue.MultiSelect = true;\n FilterElementSettingsValue.Relational = false;\n FilterElementSettingsValue.FilterItems = this.FilterItems;\n FilterElementSettingsValue.SavedSelection = item.Defaults;\n const args = {\n FilterElementSettingsValue\n };\n FilterTreeDialog.ShowDialog(args, result => {\n if (result && result.FilterSelection) {\n item.Defaults = result.FilterSelection;\n FilterPanelControl.SetDefaultSelectsText(item);\n }\n return true;\n });\n }\n\n clearSelects(item) {\n if (item) {\n item.Defaults = [];\n item.DefaultSelectsText = '[0]';\n }\n }\n\n itemDrop(event) {\n if (this.DraggedHierarchy && !this.FilterItems.some(x => x.Hierarchy === this.DraggedHierarchy.ID)) {\n const filterItem = new FilterMultidimensional();\n filterItem.Hierarchy = this.DraggedHierarchy.ID;\n filterItem.Levels = [];\n this.DraggedHierarchy.Levels.forEach(l => {\n filterItem.Levels.push(l.ID);\n });\n filterItem.Dimension = this.DraggedHierarchy.Parent.ID;\n filterItem.Caption = this.DraggedHierarchy.Caption;\n filterItem.DatasourceID = this.DraggedHierarchy.Parent.DatasourceID;\n this.FilterItems.push(filterItem);\n this.DraggedHierarchy = null;\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { TaskRegistry } from '../../../helpers/task.registry';\nimport { DialogButton } from '../../../models/enums/dialogbutton.enum';\nimport { BaseDialog } from '../../dialogs/basedialog/base.dialog';\n\n@Component({\n selector: 'delete-task-dialog',\n templateUrl: './delete.task.dialog.html',\n styles: ['.imageDiv { margin: 10px 0px 10px 10px; }', '.textDiv { margin: 11px; }']\n})\nexport class DeleteTaskDialog {\n\n InitArgs;\n Text;\n CustomButtons = [\n { Caption: '@@Tasks loeschen', ID: 1 },\n { Caption: '@@Tasks inaktiv setzen', ID: 2 }\n ];\n CloseOnCustomButton = true;\n Result;\n \n static CheckTasks(dataDescription, uniqueID, isMeasure) {\n const captionList = [];\n (isMeasure ? dataDescription.Tasks.filter(x => x.MeasureUniqueID === uniqueID) :\n dataDescription.Tasks.filter(x => x.LevelUniqueID === uniqueID)).forEach(t => {\n let caption = t.TaskType;\n const desc = TaskRegistry.get(t.TaskType);\n if (desc && desc.SettingsHelper) {\n caption = desc.SettingsHelper.getCaption(t, dataDescription);\n }\n captionList.push(caption);\n });\n if (captionList.length > 0) {\n BaseDialog.ShowDialog({\n ContentType: DeleteTaskDialog,\n InitArgs: {\n CaptionList: captionList,\n Tasks: dataDescription.Tasks.slice(),\n ID: uniqueID,\n IsMeasure: isMeasure\n },\n Buttons: DialogButton.None,\n Title: '@@Tasks loeschen oder inaktiv setzen',\n Handler: (r) => {\n if (r) {\n dataDescription.Tasks = r;\n }\n return true;\n }\n });\n }\n }\n\n Initialize(args) {\n if (args) {\n this.InitArgs = args;\n this.Text = args.IsMeasure ? '@@Die folgenden Tasks sind vom Loeschen der Werte betroffen:' :\n '@@Die folgenden Tasks sind vom Loeschen der Level betroffen:';\n }\n }\n\n GetDialogResult() {\n return this.Result;\n }\n\n OnCustomButtonClicked(but) {\n if (this.InitArgs && this.InitArgs.Tasks) {\n switch (but.ID) {\n case 1: // Loeschen\n if (this.InitArgs.IsMeasure) {\n this.Result = this.InitArgs.Tasks.filter(x => x.MeasureUniqueID !== this.InitArgs.ID);\n } else {\n this.Result = this.InitArgs.Tasks.filter(x => x.LevelUniqueID !== this.InitArgs.ID);\n }\n break;\n case 2: // Inaktiv\n if (this.InitArgs.IsMeasure) {\n this.InitArgs.Tasks.forEach(x => {\n if (x.MeasureUniqueID === this.InitArgs.ID) {\n x.IsActive = false;\n }\n });\n } else {\n this.InitArgs.Tasks.forEach(x => {\n if (x.LevelUniqueID === this.InitArgs.ID) {\n x.IsActive = false;\n }\n });\n }\n this.Result = this.InitArgs.Tasks;\n break;\n }\n }\n }\n}\n","import { moveItemInArray } from '@angular/cdk/drag-drop';\nimport { UUID } from 'angular2-uuid';\nimport { Subject } from 'rxjs';\nimport { MultiCacheService } from '../../../cache/multi/cache.service';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { TranslateHelper } from '../../../helpers/injector.helper';\nimport { DataDescription, HeterogenArea, Tuple } from '../../../models/datadescription/multi/datadescription.model';\nimport { LevelNode } from '../../../models/datadescription/multi/levelnode.model';\nimport { MeasureInfo } from '../../../models/datadescription/multi/measureinfo.model';\nimport { DialogButton } from '../../../models/enums/dialogbutton.enum';\nimport { OcDragItemType } from '../../../models/enums/oc.DragItemType';\nimport { VisibilityType } from '../../../models/enums/oc.enum';\nimport { AxisType } from '../../../models/enums/query.enum';\nimport { SpecialElementType } from '../../../models/enums/specialElementType';\nimport { BaseDialog } from '../../dialogs/basedialog/base.dialog';\nimport { TranslatedStringDialogComponent } from '../../dialogs/translatedstring.dialog';\nimport { DataDescriptionHelper } from '../../query/ddhelper.query';\nimport { DeleteTaskDialog } from './delete.task.dialog';\nimport { ReplaceElementDialog } from './replace.element.dialog';\n\nexport class ObjectcreatorDataManager {\n\n DataDescription: DataDescription\n\n public static AxisChanged: Subject = new Subject();\n\n public static AreaChanged: Subject = new Subject();\n\n public static MeasureChanged: Subject = new Subject();\n\n public static MeasureVariablesChanged: Subject = new Subject();\n\n public static LevelVariablesChanged: Subject = new Subject();\n\n public static TasksChanged = new Subject();\n\n public static FieldsChanged = new Subject();\n\n public static DialogClosing = new Subject();\n\n async Gettooltip(item: any): Promise {\n return ObjectcreatorDataManager.Gettooltip(item, this.DataDescription);\n }\n\n public static async Gettooltip(item: any, DataDescription: DataDescription): Promise {\n let tooltip = '';\n if (item instanceof MeasureInfo) {\n const measure = item as MeasureInfo;\n const mDB = await MultiCacheService.GetMeasure(measure.Measure, DataDescription.DataModelID);\n if (mDB) {\n const measureCube = mDB?.Cube?.Name ? mDB.Cube.Name : '';\n const measureFolder = mDB?.Folder ? ' > ' + mDB.Folder : '';\n const measureName = mDB?.Name ? ' > ' + mDB.Name : '';\n\n\n tooltip = measureCube + measureFolder + measureName + ' #' + mDB.Caption;\n if (measure.VisibilityType) {\n const vTypes = EnumHelper.GetDropdownValues(VisibilityType);\n let res = vTypes.find(x => x.type == measure.VisibilityType);\n const visibilityText = res?.value ? res.value : '';\n\n tooltip += ' #' + visibilityText;\n }\n if (measure.Details.FunctionOffset.OffsetLevel) {\n const levelDB = await MultiCacheService.GetLevel(measure.Details.FunctionOffset.OffsetLevel, DataDescription.DataModelID);\n if (levelDB) {\n tooltip += ' #' + TranslateHelper.TranslatorInstance.instant('@@Periodenreferenzierung: ') + levelDB.Caption + \" \" + measure.Details.FunctionOffset.OffsetValue.toString();\n }\n }\n if (measure.Details.ContainsAnyReferencing) {\n tooltip += ' #' + TranslateHelper.TranslatorInstance.instant('@@enthaelt Referenzierungen');\n }\n if (measure.Details.FunctionAccumulation) {\n tooltip += ' #' + measure.Details.FunctionAccumulation.toString();\n }\n }\n else {\n const specialelementTypes = EnumHelper.GetDropdownValues(SpecialElementType);\n let res = specialelementTypes.find(x => x.type == measure.SpecialElementType);\n const seText = res?.value ? res.value : '';\n\n tooltip = measure.Caption.toString() + \" - \" + seText;\n }\n\n }\n else if (item instanceof LevelNode) {\n const levelNode = item as LevelNode;\n const levelDB = await MultiCacheService.GetLevel(levelNode.Level, DataDescription.DataModelID);\n\n if (levelDB) {\n\n const levelName = levelDB?.Name ? ' > ' + levelDB.Name : '';\n const hierDBName = levelDB?.Parent?.Name ? ' > ' + levelDB.Parent.Name : '';\n const dimDBName = levelDB?.Parent?.Parent?.Name ? levelDB.Parent.Parent.Name : '';\n\n\n\n tooltip = dimDBName + hierDBName + levelName + ' #' + levelDB.Caption;\n if (levelDB.LevelType) {\n tooltip += ' #' + levelDB.LevelType.toString();\n }\n\n if (item.Hidden) {\n tooltip += ' #' + TranslateHelper.TranslatorInstance.instant('@@Sichtbar');\n }\n else {\n tooltip += ' #' + TranslateHelper.TranslatorInstance.instant('@@Ausgeblendet');\n }\n }\n\n }\n return tooltip;\n }\n\n\n\n constructor(dd: DataDescription) {\n this.DataDescription = dd;\n }\n\n GetNextUniqueID() {\n return DataDescriptionHelper.GetNextUniqueID(this.DataDescription);\n }\n\n AddHeterogenArea(axisType: AxisType, uniqueIDBefore: number, addBefore: boolean = false) {\n if (this.DataDescription) {\n const newHA = new HeterogenArea();\n newHA.UniqueID = DataDescriptionHelper.GetNextUniqueID(this.DataDescription);\n const axis = this.DataDescription.LevelNodes.find(ln => ln.AxisType === axisType);\n if (axis) {\n for (let i = 0; i < axis.Areas.length; i++) {\n const heterogenArea = axis.Areas[i];\n if (heterogenArea.UniqueID === uniqueIDBefore) {\n if (addBefore) {\n axis.Areas.splice(i, 0, newHA);\n } else {\n axis.Areas.splice(i + 1, 0, newHA);\n }\n ObjectcreatorDataManager.AxisChanged.next(axisType);\n break;\n }\n }\n }\n }\n }\n\n MoveHeterogenAreaUp(axisType: AxisType, heterogenAreaID: number) {\n if (this.DataDescription) {\n const axis = this.DataDescription.LevelNodes.find(ln => ln.AxisType === axisType);\n if (axis) {\n for (let i = 0; i < axis.Areas.length; i++) {\n const heterogenArea = axis.Areas[i];\n if (heterogenArea.UniqueID === heterogenAreaID) {\n if (i < axis.Areas.length - 1) {\n axis.Areas.splice(i, 1);\n axis.Areas.splice(i - 1, 0, heterogenArea);\n }\n ObjectcreatorDataManager.AxisChanged.next(axisType);\n break;\n }\n }\n }\n }\n }\n\n MoveHeterogenAreaDown(axisType: AxisType, heterogenAreaID: number) {\n if (this.DataDescription) {\n const axis = this.DataDescription.LevelNodes.find(ln => ln.AxisType === axisType);\n if (axis) {\n for (let i = 0; i < axis.Areas.length; i++) {\n const heterogenArea = axis.Areas[i];\n if (heterogenArea.UniqueID === heterogenAreaID) {\n if (i < axis.Areas.length - 1) {\n axis.Areas.splice(i, 1);\n axis.Areas.splice(i + 1, 0, heterogenArea);\n }\n ObjectcreatorDataManager.AxisChanged.next(axisType);\n break;\n }\n }\n }\n }\n }\n\n DeleteHeterogenArea(axisType: AxisType, heterogenAreaID: number) {\n if (this.DataDescription) {\n var axis = this.DataDescription.LevelNodes.find(ln => ln.AxisType === axisType);\n if (axis) {\n for (let i = 0; i < axis.Areas.length; i++) {\n let heterogenArea = axis.Areas[i];\n if (heterogenArea.UniqueID === heterogenAreaID) {\n axis.Areas.splice(i, 1);\n ObjectcreatorDataManager.AxisChanged.next(axisType);\n break;\n }\n }\n }\n }\n }\n\n MoveAllMeasuresToHeterogenArea(heterogenAreaID: number) {\n if (this.DataDescription) {\n let ha: HeterogenArea = null;\n let axisType = AxisType.None;\n let allmeasures: MeasureInfo[] = []\n this.DataDescription.LevelNodes.forEach(axis => {\n axis.Areas.forEach(area => {\n if (area.UniqueID == heterogenAreaID) {\n ha = area;\n axisType = axis.AxisType;\n }\n allmeasures.push(...area.Measures);\n area.Measures.splice(0, area.Measures.length);\n });\n });\n if (ha != null) {\n ha.Measures = allmeasures;\n ObjectcreatorDataManager.AxisChanged.next(axisType);\n }\n }\n }\n\n\n GetAllVariableMeasures(): MeasureInfo[] {\n let allmeasures: MeasureInfo[] = []\n\n let multiDa\n if (this.DataDescription) {\n this.DataDescription.LevelNodes.forEach(axis => {\n axis.Areas.forEach(area => {\n area.Measures.forEach(measure => {\n if (measure.SpecialElementType == SpecialElementType.Variable) {\n allmeasures.push(measure);\n }\n });\n });\n });\n }\n return allmeasures;\n }\n\n GetAllVariablelevels(): LevelNode[] {\n let allLevels: LevelNode[] = []\n if (this.DataDescription) {\n this.DataDescription.LevelNodes.forEach(axis => {\n axis.Areas.forEach(area => {\n area.Tuples.forEach(tuple => {\n tuple.Levels.forEach(level => {\n if (level.SpecialElementType == SpecialElementType.Variable) {\n allLevels.push(level);\n }\n });\n });\n });\n });\n }\n return allLevels;\n }\n\n\n MoveDBHeterogenAreaElements(info: HeterogenAreaItemSelectedInfo, previousIndex: number, moveIndex: number) {\n if (info != null && this.DataDescription != null && (info.NewDestinationHeterogenAreaID !== info.HeterogenAreaID || previousIndex != moveIndex)) {\n let ha: HeterogenArea = DataDescriptionHelper.FindAreaByID(this.DataDescription, info.HeterogenAreaID);\n if (ha != null) {\n if (info.DropAreaType == OcDragItemType.Level) {\n let index = -1;\n let moveLevel = null;\n for (let i = 0; i < ha.Tuples.length; i++) {\n let tuple = ha.Tuples[i];\n for (let j = 0; j < tuple.Levels.length; j++) {\n let level = tuple.Levels[j];\n index++;\n if (index == previousIndex) {\n moveLevel = level;\n tuple.Levels.splice(j, 1);\n //Leeres Tupel löschen\n if (tuple.Levels.length == 0) {\n ha.Tuples.splice(i, 1);\n }\n break;\n }\n }\n if (moveLevel !== null) {\n break;\n }\n }\n\n if (moveLevel != null) {\n //an neue Position setzen\n index = -1;\n if (info.NewDestinationHeterogenAreaID != info.HeterogenAreaID) {\n ha = DataDescriptionHelper.FindAreaByID(this.DataDescription, info.NewDestinationHeterogenAreaID);\n }\n let moveFinished = false;\n for (let i = 0; i < ha.Tuples.length; i++) {\n let tuple = ha.Tuples[i];\n for (let j = 0; j < tuple.Levels.length; j++) {\n index++;\n if (index === moveIndex) {\n\n let newTuple = new Tuple();\n newTuple.Levels.push(moveLevel);\n ha.Tuples.splice(index, 0, newTuple);\n moveFinished = true;\n break;\n }\n }\n if (moveFinished) {\n //ObjectcreatorDataManager.AreaChanged.next(info);\n break;\n }\n }\n if (!moveFinished && index + 1 === moveIndex) { //am Schluss\n\n let newTuple = new Tuple();\n newTuple.Levels.push(moveLevel);\n ha.Tuples.push(newTuple);\n moveFinished = true;\n //ObjectcreatorDataManager.AreaChanged.next(info);\n }\n\n\n }\n }\n else if (info.DropAreaType == OcDragItemType.Measure) {\n if (info.NewDestinationHeterogenAreaID != info.HeterogenAreaID) {\n let newHa = DataDescriptionHelper.FindAreaByID(this.DataDescription, info.NewDestinationHeterogenAreaID);\n let oldHa = DataDescriptionHelper.FindAreaByID(this.DataDescription, info.HeterogenAreaID);\n let moveMeasure = oldHa.Measures[previousIndex];\n oldHa.Measures.splice(previousIndex, 1);\n newHa.Measures.splice(moveIndex, 0, moveMeasure);\n }\n else //gleiche DataArea\n {\n moveItemInArray(ha.Measures, previousIndex, moveIndex);\n // ObjectcreatorDataManager.AreaChanged.next(info);\n }\n }\n ObjectcreatorDataManager.AreaChanged.next(info);\n }\n }\n }\n\n RenameDBHeterogenAreaElements(info: HeterogenAreaItemSelectedInfo) {\n if (info != null && info.SelectedItems.length == 1 && this.DataDescription != null) {\n let ha: HeterogenArea = DataDescriptionHelper.FindAreaByID(this.DataDescription, info.HeterogenAreaID);\n if (ha != null) {\n if (info.DropAreaType == OcDragItemType.Level) {\n let li = DataDescriptionHelper.FindLevelNodeByID(this.DataDescription, info.SelectedItems[0].UniqueID)\n TranslatedStringDialogComponent.showDialog(li.Caption, () => {\n\n ObjectcreatorDataManager.AreaChanged.next(info);\n if (li.SpecialElementType === SpecialElementType.Variable) {\n ObjectcreatorDataManager.LevelVariablesChanged.next(null);\n }\n });\n\n\n }\n else if (info.DropAreaType == OcDragItemType.Measure) {\n let measureInfo = DataDescriptionHelper.FindMeasureByID(this.DataDescription, info.SelectedItems[0].UniqueID)\n TranslatedStringDialogComponent.showDialog(measureInfo.Caption, () => {\n\n ObjectcreatorDataManager.AreaChanged.next(info);\n if (measureInfo.SpecialElementType === SpecialElementType.Variable) {\n ObjectcreatorDataManager.MeasureVariablesChanged.next(null);\n }\n\n ObjectcreatorDataManager.MeasureChanged.next(null);\n });\n\n }\n }\n }\n }\n\n\n HiddenDBHeterogenAreaElements(info: HeterogenAreaItemSelectedInfo) {\n if (info != null && info.SelectedItems.length == 1 && this.DataDescription != null) {\n let ha: HeterogenArea = DataDescriptionHelper.FindAreaByID(this.DataDescription, info.HeterogenAreaID);\n if (ha != null) {\n if (info.DropAreaType == OcDragItemType.Level) {\n const li = DataDescriptionHelper.FindLevelNodeByID(this.DataDescription, info.SelectedItems[0].UniqueID)\n\n li.Hidden = !li.Hidden;\n\n }\n else if (info.DropAreaType == OcDragItemType.Measure) {\n let measureInfo = DataDescriptionHelper.FindMeasureByID(this.DataDescription, info.SelectedItems[0].UniqueID)\n if (measureInfo.VisibilityType === VisibilityType.NonVisibleDefault || measureInfo.VisibilityType === VisibilityType.NonVisibleForce) {\n measureInfo.VisibilityType = VisibilityType.VisibleDefault;\n }\n else if (!measureInfo.VisibilityType || measureInfo.VisibilityType === VisibilityType.VisibleDefault || measureInfo.VisibilityType === VisibilityType.VisibleForce) {\n measureInfo.VisibilityType = VisibilityType.NonVisibleDefault\n }\n }\n ObjectcreatorDataManager.AreaChanged.next(info);\n }\n }\n }\n\n DeleteDBHeterogenAreaElements(info: HeterogenAreaItemSelectedInfo) {\n if (info != null && info.SelectedItems.length > 0 && this.DataDescription != null) {\n let ha: HeterogenArea = DataDescriptionHelper.FindAreaByID(this.DataDescription, info.HeterogenAreaID);\n if (ha != null) {\n if (info.DropAreaType == OcDragItemType.Level) {\n info.SelectedItems.forEach(selItem => {\n for (let i = 0; i < ha.Tuples.length; i++) {\n let tuple = ha.Tuples[i];\n let levelNode = tuple.Levels.find(x => x.UniqueID == selItem.UniqueID);\n if (levelNode) {\n let levelNodeIndex = tuple.Levels.indexOf(levelNode);\n tuple.Levels.splice(levelNodeIndex, 1);\n //Leeres Tupel löschen\n if (tuple.Levels.length == 0) {\n ha.Tuples.splice(i, 1);\n }\n if (levelNode.SpecialElementType == SpecialElementType.Variable) {\n ObjectcreatorDataManager.LevelVariablesChanged.next(null);\n }\n DeleteTaskDialog.CheckTasks(this.DataDescription, selItem.UniqueID, false);\n break;\n }\n }\n });\n }\n else if (info.DropAreaType == OcDragItemType.Measure) {\n info.SelectedItems.forEach(selItem => {\n let mi: MeasureInfo = ha.Measures.find(x => x.UniqueID == selItem.UniqueID);\n if (mi != null) {\n let index = ha.Measures.indexOf(mi);\n ha.Measures.splice(index, 1);\n ObjectcreatorDataManager.MeasureChanged.next(null);\n if (mi.SpecialElementType == SpecialElementType.Variable) {\n ObjectcreatorDataManager.MeasureVariablesChanged.next(null);\n }\n DeleteTaskDialog.CheckTasks(this.DataDescription, selItem.UniqueID, true);\n }\n });\n }\n ObjectcreatorDataManager.AreaChanged.next(info);\n }\n }\n }\n\n async ReplaceDBHeterogenAreaElement(info: HeterogenAreaItemSelectedInfo) {\n if (info != null && info.SelectedItems.length > 0 && this.DataDescription != null) {\n let ha: HeterogenArea = DataDescriptionHelper.FindAreaByID(this.DataDescription, info.HeterogenAreaID);\n if (ha != null && info.SelectedItems.length > 0) {\n ObjectcreatorDataManager.ReplaceElementChoose(this.DataDescription, info);\n }\n }\n }\n\n static ReplaceElementChoose(dataDescription, info) {\n const isMeasure = info.DropAreaType === OcDragItemType.Measure\n const uniqueID = info.SelectedItems[0].UniqueID;\n BaseDialog.ShowDialog({\n ContentType: ReplaceElementDialog,\n Height: 600,\n Width: 600,\n InitArgs: {\n DataDescription: dataDescription,\n ID: uniqueID,\n IsMeasure: isMeasure\n },\n Buttons: DialogButton.None,\n Title: isMeasure ? '@@Wert zum Austausch waehlen' : '@@Level zum Austausch waehlen',\n Handler: (r) => {\n if (r) {\n dataDescription = r;\n ObjectcreatorDataManager.AreaChanged.next(info);\n }\n return true;\n }\n });\n }\n\n //#region Tuples\n BuildDBTupel(info: HeterogenAreaItemSelectedInfo) {\n if (info != null && info.SelectedItems.length > 0 && this.DataDescription != null) {\n let ha: HeterogenArea = DataDescriptionHelper.FindAreaByID(this.DataDescription, info.HeterogenAreaID);\n if (ha != null) {\n let tupleCurrent: Tuple = null;\n let tupelFirstNode: LevelNode = null;\n let indexTuple = 0;\n\n\n for (let i = 0; i < ha.Tuples.length; i++)//each(var tuple in ha.Tuples)\n {\n let tuple: Tuple = ha.Tuples[i];\n if (tuple.Levels != null) {\n let ln: LevelNode = tuple.Levels.find(x => x.UniqueID == info.SelectedItems[0].UniqueID);\n //falls Level schon in HA enthalten ist index anpassen und bereits vorhandenes Element löschen\n if (ln != null) {\n tupelFirstNode = ln;\n indexTuple = i;//ha.Tuples.indexOf(tuple);\n tupleCurrent = tuple;\n //tuple.Levels.splice(tuple.Levels.indexOf(ln), 1);\n //if (tuple.Levels.length === 0) {\n // tupleCurrent = tuple;\n //}\n //else {\n // tupleCurrent = new Tuple();\n // ha.Tuples.splice(indexTuple + 1, 0, tupleCurrent);\n //}\n break;\n }\n }\n }\n if (tupleCurrent != null) {\n //tupleCurrent.Levels = [];\n\n //if (tupelFirstNode != null) {\n // tupleCurrent.Levels.push(tupelFirstNode);\n //}\n\n if (info.SelectedItems.length > 1) {\n\n info.SelectedItems.forEach(selItem => {\n if (tupelFirstNode != null && tupelFirstNode.UniqueID != selItem.UniqueID) {\n var ln = DataDescriptionHelper.FindLevelNodeByID(this.DataDescription, selItem.UniqueID, true);\n if (ln !== null) {\n tupleCurrent.Levels.push(ln);\n }\n }\n });\n }\n else { //momentan geht er immer hierher\n if (ha.Tuples.length > indexTuple) {\n const tupeltoConnect = ha.Tuples[indexTuple + 1];\n\n for (let i = 0; i < tupeltoConnect.Levels.length; i++) {\n const levelnode = tupeltoConnect.Levels[i];\n tupeltoConnect.Levels.splice(0, 1);\n tupleCurrent.Levels.push(levelnode);\n }\n ha.Tuples.splice(indexTuple + 1, 1);\n }\n }\n }\n ObjectcreatorDataManager.AreaChanged.next(info);\n }\n }\n }\n\n ResolveTupels(info: HeterogenAreaItemSelectedInfo) {\n if (info != null && info.SelectedItems.length > 0 && this.DataDescription != null) {\n let ha: HeterogenArea = DataDescriptionHelper.FindAreaByID(this.DataDescription, info.HeterogenAreaID);\n if (ha != null) {\n info.SelectedItems.forEach(item => {\n for (let i = 0; i < ha.Tuples.length; i++)//each(var tuple in ha.Tuples)\n {\n let tuple = ha.Tuples[i];\n if (tuple.Levels != null) {\n var ln = tuple.Levels.find(x => x.UniqueID == item.UniqueID);\n\n if (ln != null) {\n if (tuple.Levels.length > 1) {\n let insertIndex = ha.Tuples.indexOf(tuple);\n ha.Tuples.splice(insertIndex, 1);//(tuple);\n for (let j = 0; j < tuple.Levels.length; j++)//each(var level in tuple.Levels)\n {\n let level = tuple.Levels[j];\n let newTuple = new Tuple();\n newTuple.Levels.push(level);\n ha.Tuples.splice(insertIndex++, 0, newTuple);\n }\n }\n }\n }\n }\n });\n ObjectcreatorDataManager.AreaChanged.next(info);\n }\n }\n }\n // #endregion\n\n AddTask(task) {\n this.DataDescription.Tasks.push(task);\n ObjectcreatorDataManager.TasksChanged.next(null);\n }\n}\n\nexport class HeterogenAreaItemBasicInfo {\n AreaID: number;\n\n UniqueID: number;\n\n MDBaseInternalID: number;\n\n ItemType: OcDragItemType;\n\n IsSpecialElement: boolean\n\n IsCalculated: boolean;\n IsEmptyElement: boolean\n}\n\n\nexport class HeterogenAreaItemSelectedInfo {\n HeterogenAreaID: number;\n\n NewDestinationHeterogenAreaIDValue: number = -1;\n get NewDestinationHeterogenAreaID() {\n return this.NewDestinationHeterogenAreaIDValue === -1 ? this.HeterogenAreaID : this.NewDestinationHeterogenAreaIDValue;\n }\n\n AxisType: AxisType;\n\n NewDestinationAxisType: AxisType;\n\n DropAreaType: OcDragItemType;\n /// \n ///Index der HA in der Achse\n /// \n IndexInsideAxis: number;\n\n /// \n ///HA is in der Achse im ersten Index\n /// \n HA_IsFirstIndex: boolean;\n\n HAElementDBID: UUID\n\n AxisContainsMeasures: boolean;\n\n /// \n ///HA is in der Achse im letzten Index\n /// \n HA_IsLastIndex: boolean;\n\n SelectedItems: HeterogenAreaItemBasicInfo[] = [];\n\n}\n","import { Component, Input, ViewChild } from '@angular/core';\nimport { DatadescriptionData } from '../../../models/datadescription/datadescriptiondata.model';\nimport { ObjectCreatorSourceMultiDimensional } from '../../multipanels/objectcreatorsource/objectcreatorsource.multidim';\nimport { DataDescriptionHelper } from '../../query/ddhelper.query';\n\n@Component({\n selector: 'replace-element-dialog',\n templateUrl: './replace.element.dialog.html',\n styles: ['.imageDiv { margin: 10px 0px 10px 10px; }', '.textDiv { margin: 11px; }']\n})\nexport class ReplaceElementDialog {\n\n InitArgs;\n Text;\n CustomButtons = [\n { Caption: '@@Austauschen', ID: 1 },\n { Caption: '@@Abbrechen', ID: 2 }\n ];\n CloseOnCustomButton = true;\n Result;\n\n\n @ViewChild('sourceControl') sourceControl: ObjectCreatorSourceMultiDimensional;\n\n\n\n get DataModelID() {\n return this.DataDescriptionData.DataModelID;\n }\n\n\n get SelectedLevel() {\n return this.sourceControl?.SelectedLevelItem?.Caption ? this.sourceControl.SelectedLevelItem.Caption : \"\";\n }\n\n get SelectedMeasure() {\n return this.sourceControl?.SelectedMeasureItem?.Caption ? this.sourceControl.SelectedMeasureItem.Caption : \"\";\n }\n\n DataDescriptionDataValue: DatadescriptionData;\n @Input()\n get DataDescriptionData() {\n return this.DataDescriptionDataValue;\n }\n set DataDescriptionData(val) {\n this.DataDescriptionDataValue = val;\n }\n\n Initialize(args) {\n if (args) {\n this.InitArgs = args;\n let ddd= new DatadescriptionData();\n ddd.Datadescription = this.InitArgs.DataDescription;\n ddd.DataModelID = ddd.Datadescription.DataModelID;\n this.DataDescriptionData = ddd;\n\n }\n }\n\n GetDialogResult() {\n return this.InitArgs.DataDescription;\n }\n\n async OnCustomButtonClicked(but) {\n if (this.InitArgs && this.InitArgs.DataDescription) {\n switch (but.ID) {\n\n\n case 1: // Austauschen\n if (this.InitArgs.IsMeasure) {\n\n await DataDescriptionHelper.ReplaceMeasureByID(this.InitArgs.DataDescription, this.InitArgs.ID, this.sourceControl.SelectedMeasureItem.SID);\n }\n else {\n await DataDescriptionHelper.ReplaceLevelNodeByID(this.InitArgs.DataDescription, this.InitArgs.ID, this.sourceControl.SelectedLevelItem.SID);\n\n }\n this.Result = this.InitArgs.DataDescription;\n break;\n case 2: // abbrechen\n\n this.Result = this.InitArgs.DataDescription;\n break;\n \n }\n }\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { MultiCacheService } from '../../../cache/multi/cache.service';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { DataDescription, HeterogenArea } from '../../../models/datadescription/multi/datadescription.model';\nimport { MeasureFunctionAccumulation, MeasureFunctionOffset, MeasureInfo } from '../../../models/datadescription/multi/measureinfo.model';\nimport { Aggregation, DimensionType, LevelType } from '../../../models/enums';\nimport { VisibilityType } from '../../../models/enums/oc.enum';\nimport { AxisType } from '../../../models/enums/query.enum';\nimport { SpecialElementType } from '../../../models/enums/specialElementType';\nimport { DynamicTimeRange } from '../../../models/time/dynamictimerange.model';\nimport { TimeRangeReference } from '../../../models/time/timerangereference.model';\nimport { DataDescriptionHelper } from '../../query/ddhelper.query';\nimport { ObjectcreatorDataManager } from '../helper/objectcreator.datamanager';\n\n@Component({\n selector: 'measuredefinitions',\n templateUrl: './measuredef.control.html',\n styleUrls: ['./measuredef.control.css']\n})\nexport class MeasureDefinitionsControl implements OnInit, OnDestroy {\n\n VisibilityTypes = [];\n ASFunctionTypes = [];\n DataDescriptionValue: DataDescription;\n SelectedMeasure: MeasureInfo;\n SelectedAreaID = -1;\n Areas = [];\n timeLevels: any[];\n\n MeasureToArea = new Map();\n\n get ReferencingSelects() {\n if (!this.SelectedMeasure.Details.ReferencingSelects) {\n this.SelectedMeasure.Details.ReferencingSelects = [];\n }\n return this.SelectedMeasure.Details.ReferencingSelects;\n }\n\n get FunctionOffset() {\n if (!this.SelectedMeasure.Details.FunctionOffset) {\n this.SelectedMeasure.Details.FunctionOffset = new MeasureFunctionOffset();\n }\n return this.SelectedMeasure.Details.FunctionOffset;\n }\n\n get FunctionAccumulation() {\n if (!this.SelectedMeasure.Details.FunctionAccumulation) {\n this.SelectedMeasure.Details.FunctionAccumulation = new MeasureFunctionAccumulation();\n }\n return this.SelectedMeasure.Details.FunctionAccumulation;\n }\n\n get MeasureDynamicTimeReferencing() {\n if (!this.SelectedMeasure.Details.MeasureDynamicTimeReferencing) {\n this.SelectedMeasure.Details.MeasureDynamicTimeReferencing = new DynamicTimeRange();\n }\n return this.SelectedMeasure.Details.MeasureDynamicTimeReferencing;\n }\n\n get TimeRangeReference() {\n if (!this.SelectedMeasure.Details.TimeRangeReference) {\n this.SelectedMeasure.Details.TimeRangeReference = new TimeRangeReference();\n }\n return this.SelectedMeasure.Details.TimeRangeReference;\n }\n\n @Input()\n get DataDescription() {\n return this.DataDescriptionValue;\n }\n set DataDescription(value) {\n this.DataDescriptionValue = value;\n if (this.DataDescriptionValue && this.DataDescriptionValue.Filter) {\n this.AllMeasures = this.DataDescriptionValue.MeasureInfos;\n }\n this.GetMeasuresAndAreas();\n }\n\n _SearchValue;\n get SearchValue() {\n return this._SearchValue;\n }\n set SearchValue(val) {\n this._SearchValue = val;\n this.FilterList();\n }\n\n AllMeasuresValue: MeasureInfo[] = [];\n MeasureItems: MeasureInfo[] = [];\n\n @Input()\n get AllMeasures() {\n return this.AllMeasuresValue;\n }\n set AllMeasures(value) {\n this.AllMeasuresValue = [];\n this._SearchValue = '';\n if (Array.isArray(value)) {\n this.AllMeasuresValue = value;\n }\n\n this.MeasureItems = this.AllMeasuresValue;\n }\n MCSub;\n constructor() {\n this.AllMeasures = [];\n this.VisibilityTypes = EnumHelper.GetDropdownValues(VisibilityType);\n this.ASFunctionTypes = EnumHelper.GetDropdownValues(Aggregation);\n }\n ngOnDestroy(): void {\n if (this.MCSub) {\n this.MCSub.unsubscribe();\n }\n }\n ngOnInit(): void {\n this.MCSub = ObjectcreatorDataManager.MeasureChanged.subscribe(() => {\n this.AllMeasures = null;\n this.Areas = [];\n window.setTimeout(() => {\n this.GetMeasuresAndAreas();\n }, 50);\n });\n }\n\n GetMeasuresAndAreas() {\n const measureinfos = [];\n let index = 0;\n this.DataDescription.XLevelNodes.Areas.forEach(a => {\n if (a.Measures && a.Measures.length > 0) {\n const areaInfo = { Caption: a.Caption ? a.Caption.toString() : null, UniqueID: a.UniqueID };\n if (!areaInfo.Caption) {\n areaInfo.Caption = 'X - ' + index;\n }\n this.Areas.push(areaInfo);\n a.Measures.forEach(mi => {\n ObjectcreatorDataManager.Gettooltip(mi, this.DataDescription).then(tt => {\n mi[\"Tooltip\"] = tt;\n\n });\n measureinfos.push(mi);\n this.MeasureToArea.set(mi.UniqueID, a.UniqueID);\n });\n }\n index++;\n });\n if (measureinfos.length === 0) {\n index = 0;\n this.DataDescription.YLevelNodes.Areas.forEach(a => {\n if (a.Measures && a.Measures.length > 0) {\n const areaInfo = { Caption: a.Caption ? a.Caption.toString() : null, UniqueID: a.UniqueID };\n if (!areaInfo.Caption) {\n areaInfo.Caption = 'Y - ' + index;\n }\n this.Areas.push(areaInfo);\n a.Measures.forEach(mi => {\n \n measureinfos.push(mi);\n this.MeasureToArea.set(mi.UniqueID, a.UniqueID);\n });\n }\n });\n }\n this.AllMeasures = measureinfos;\n }\n\n async measureSelected(item) {\n this.SelectedMeasure = item;\n this.timeLevels = await this.GetOffsetLevels();\n }\n\n AreaFilterChanged() {\n this.FilterList();\n }\n\n FilterList() {\n let allMeasures = this.AllMeasures;\n if (this.SelectedAreaID >= 0) {\n allMeasures = allMeasures.filter(item => this.MeasureToArea.get(item.UniqueID) === this.SelectedAreaID);\n }\n this.MeasureItems = allMeasures.filter(item =>\n (!this._SearchValue || this._SearchValue === '' || item.Caption.toString().search(this._SearchValue) !== -1));\n }\n\n async GetOffsetLevels(): Promise {\n const retVal = [];\n // Zur Nutzung des Period-Tags PP bei berechneten Measures zulassen (Ticket 8276)\n if (this.SelectedMeasure != null || this.SelectedMeasure.SpecialElementType === SpecialElementType.CalculatedElement) {\n const area: HeterogenArea = DataDescriptionHelper.FindAreaByMeasureID(this.DataDescription, this.SelectedMeasure.UniqueID);\n if (area != null) {\n const levels = DataDescriptionHelper.GetLevels(area);\n const otherAxis = this.DataDescription.ShowMeasureOnAxis === AxisType.X_Axis ?\n this.DataDescription.YLevelNodes : this.DataDescription.XLevelNodes;\n levels.push(...DataDescriptionHelper.GetAllNodes(otherAxis));\n for (let i = 0; i < levels.length; i++) {\n const cubeLevel = await MultiCacheService.GetLevel(levels[i].Level, this.DataDescription.DataModelID);\n if (cubeLevel && cubeLevel.Parent && cubeLevel.Parent.Parent &&\n cubeLevel.Parent.Parent.DimensionType === DimensionType.Time) {\n cubeLevel.Parent.Levels.forEach(l => {\n if (l.LevelType !== LevelType.All) {\n retVal.push({ Caption: l.Caption, Value: l.ID });\n }\n });\n break;\n }\n }\n }\n }\n return retVal;\n }\n\n onContextMenu(event: MouseEvent, dditem: any) {\n event.preventDefault();\n event['OcDragItem'] = dditem;\n event['DropArea'] = this;\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { MultiCacheService } from '../../../../../cache/multi/cache.service';\nimport { Level } from '../../../../../cache/multi/models/database.model';\nimport { FilterHelper } from '../../../../../helpers/filter.helper';\nimport { DataDescription } from '../../../../../models/datadescription/multi/datadescription.model';\nimport { MeasureInfo } from '../../../../../models/datadescription/multi/measureinfo.model';\nimport { DimensionType } from '../../../../../models/enums';\nimport { OcDragItemType } from '../../../../../models/enums/oc.DragItemType';\nimport { DynamicTimeRange } from '../../../../../models/time/dynamictimerange.model';\nimport { DynamicTimeSettingsService } from '../../../../../services/dynamictimesettings.service';\nimport { LayoutService } from '../../../../../services/layout.service';\nimport { DatadescriptionControl } from '../../../../dialogs/datadescription/datadescription.control';\n\n@Component({\n selector: 'dynamictimereferenceControl',\n templateUrl: './dynamictimereference.control.html',\n styleUrls: ['./dynamictimereference.control.css']\n})\nexport class DynamicTimeReferenceControl implements OnInit, OnDestroy {\n\n DynamicTimePoints = [];\n\n DataDescriptionValue: DataDescription;\n MeasureDynamicTimeReferencing: DynamicTimeRange;\n MeasureDynamicTimeReferencingLevelValue: Level;\n\n SelectedMeasureValue: MeasureInfo;\n Variables: any[];\n @Input()\n get SelectedMeasure() {\n return this.SelectedMeasureValue;\n }\n set SelectedMeasure(value) {\n let mdtr;\n this.SelectedMeasureValue = value;\n this.MeasureDynamicTimeReferencingLevelValue = null;\n if (this.SelectedMeasureValue && this.SelectedMeasureValue.Details) {\n if (!this.SelectedMeasureValue.Details.MeasureDynamicTimeReferencing) {\n this.SelectedMeasure.Details.MeasureDynamicTimeReferencing = new DynamicTimeRange();\n }\n mdtr = this.SelectedMeasureValue.Details.MeasureDynamicTimeReferencing;\n MultiCacheService.GetLevel(mdtr.LevelID, this.DataDescription.DataModelID).then(level => {\n if (level) {\n mdtr.LevelID = level.ID;\n mdtr.HierarchyID = level.Parent.ID;\n this.MeasureDynamicTimeReferencingLevelValue = level;\n }\n });\n }\n this.MeasureDynamicTimeReferencing = mdtr;\n }\n\n @Input()\n get DataDescription() {\n return this.DataDescriptionValue;\n }\n set DataDescription(value) {\n this.DataDescriptionValue = value;\n }\n\n Subscription;\n DraggedLevel;\n\n constructor(private service: DynamicTimeSettingsService) {\n }\n\n ngOnInit(): void {\n this.service.GetDynamicTimePoints().subscribe(r => {\n if (r) {\n this.DynamicTimePoints = r;\n }\n });\n this.Variables = FilterHelper.GetVariables(LayoutService.SelectedLayout.getValue());\n this.Subscription = DatadescriptionControl.ObjectCreatorMPDragStart.subscribe((state) => {\n this.DraggedLevel = null;\n if (state && state.DragType === OcDragItemType.Level && state.DragContent) {\n MultiCacheService.GetLevel(state.DragContent.DraggedID, this.DataDescription.DataModelID).then(level => {\n if (level && level.Parent.Parent.DimensionType === DimensionType.Time) {\n this.DraggedLevel = level;\n }\n });\n }\n });\n }\n\n ngOnDestroy(): void {\n if (this.Subscription) {\n this.Subscription.unsubscribe();\n }\n }\n\n itemDrop(event) {\n if (this.DraggedLevel) {\n this.MeasureDynamicTimeReferencing.LevelID = this.DraggedLevel.ID;\n this.MeasureDynamicTimeReferencing.HierarchyID = this.DraggedLevel.Parent.ID;\n this.MeasureDynamicTimeReferencingLevelValue = this.DraggedLevel;\n }\n }\n\n deleteLevelID() {\n if (this.MeasureDynamicTimeReferencing) {\n this.MeasureDynamicTimeReferencing.LevelID = undefined;\n this.MeasureDynamicTimeReferencing.HierarchyID = undefined;\n }\n this.MeasureDynamicTimeReferencingLevelValue = null;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { MultiCacheService } from '../../../../../cache/multi/cache.service';\nimport { DataDescription } from '../../../../../models/datadescription/multi/datadescription.model';\nimport { MeasureInfo } from '../../../../../models/datadescription/multi/measureinfo.model';\nimport { OcDragItemType } from '../../../../../models/enums/oc.DragItemType';\nimport { Select } from '../../../../../models/selects/select.model';\nimport { DatadescriptionControl } from '../../../../dialogs/datadescription/datadescription.control';\n\n@Component({\n selector: 'elementReferenceControl',\n templateUrl: './elementreference.control.html',\n styleUrls: ['./elementreference.control.css']\n})\nexport class ElementReferenceControl {\n\n SelectedMeasureValue: MeasureInfo;\n @Input()\n get SelectedMeasure() {\n return this.SelectedMeasureValue;\n }\n set SelectedMeasure(value) {\n this.SelectedMeasureValue = value;\n if (value) {\n if (!this.SelectedMeasureValue.Details.ReferencingSelects) {\n this.SelectedMeasureValue.Details.ReferencingSelects = [];\n }\n this.ElementRefs = this.SelectedMeasureValue.Details.ReferencingSelects;\n }\n }\n\n DataDescriptionValue: DataDescription;\n @Input()\n get DataDescription() {\n return this.DataDescriptionValue;\n }\n set DataDescription(value) {\n this.DataDescriptionValue = value;\n }\n\n elementRefsValue;\n @Input()\n get ElementRefs() {\n return this.elementRefsValue;\n }\n set ElementRefs(value) {\n if (Array.isArray(value)) {\n this.elementRefsValue = value;\n } else {\n this.elementRefsValue = [];\n }\n }\n\n Subscriptions = [];\n FilterItems;\n DraggedHierarchy;\n\n constructor() {\n this.Subscriptions.push(DatadescriptionControl.ObjectCreatorMPDragStart.subscribe(x => {\n this.DraggedHierarchy = null;\n if (x && x.DragType === OcDragItemType.Level && x.DragContent) {\n MultiCacheService.GetHierarchy(x.DragContent.DraggedID, this.DataDescription.DataModelID).then(y => {\n this.DraggedHierarchy = y;\n });\n }\n }));\n }\n\n ngOnDestroy(): void {\n this.Subscriptions.forEach(x => x.unsubscribe());\n }\n\n delete(item) {\n }\n\n deleteAll() {\n }\n\n async itemDrop(event) {\n if (this.DraggedHierarchy) {\n const select = new Select();\n select.Hierarchy = this.DraggedHierarchy.ID;\n }\n }\n\n onContextMenu(event: MouseEvent, dditem: any) {\n event.preventDefault();\n event['OcDragItem'] = dditem;\n event['DropArea'] = this;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { InjectorHelper } from '../../../../../helpers/injector.helper';\nimport { DataDescription } from '../../../../../models/datadescription/multi/datadescription.model';\nimport { MeasureInfo } from '../../../../../models/datadescription/multi/measureinfo.model';\nimport { MultiReportingService } from '../../../../../services/reporting.service';\nimport { MultidimensionalTreeLogic } from '../../../../controls/filter/filter.tree.control';\n\n@Component({\n selector: 'elementrefence-tree',\n templateUrl: './elementreference.tree.html'\n})\nexport class ElementeReferenceTree {\n \n Logic;\n RootNodes = [];\n ReferenceSelects = [];\n\n DataDescriptionValue: DataDescription;\n @Input()\n get DataDescription() {\n return this.DataDescriptionValue;\n }\n set DataDescription(value) {\n this.DataDescriptionValue = value;\n \n }\n\n MeasureValue: MeasureInfo;\n\n @Input()\n get Measure() {\n return this.MeasureValue;\n }\n set Measure(value) {\n \n this.MeasureValue = value;\n if (this.MeasureValue && this.MeasureValue.Details && this.MeasureValue.Details.ReferencingSelects) {\n this.ReferenceSelects = this.MeasureValue.Details.ReferencingSelects;\n }\n }\n \n\n //constructor(private relService: ReportingService, private service: MultiReportingService) {\n // this.EventList.push('selectionChanged');\n // }\n\n ControlInitialized() {\n this.InitLogic();\n }\n\n InitLogic() {\n this.Logic = null;\n this.RootNodes = [];\n this.ReferenceSelects = [];\n \n this.Logic = new MultidimensionalTreeLogic(InjectorHelper.InjectorInstance.get(MultiReportingService));\n this.Logic.initialize(this).then(x => {\n if (x) {\n this.RootNodes = x;\n }\n });\n }\n\n onLayoutElementChanged() {\n this.InitLogic();\n }\n\n onSingleSelect(ev) {\n //if (!this.LayoutElementValue.MultiSelect) {\n // this.FilterSelection.splice(0);\n // if (ev && ev.length > 0) {\n // if (this.LayoutElementValue.Relational) {\n // this.FilterSelection.push(ev[0].Caption);\n // } else {\n // const first = ev[0];\n // this.FilterSelection.push({\n // LevelId: first.LevelID,\n // MemberIds: [first.MemberID]\n // });\n // }\n // }\n // this.fireSelect();\n //}\n }\n\n onMultiSelect(ev, node) {\n //if (ev) {\n // if (this.LayoutElementValue.Relational) {\n // if (ev.checked) {\n // this.FilterSelection.push(node.Caption);\n // this.fireSelect();\n // } else {\n // const index = this.FilterSelection.indexOf(node.Caption);\n // if (index > -1) {\n // this.FilterSelection.splice(index, 1);\n // this.fireSelect();\n // }\n // }\n // } else {\n // let levItem = this.FilterSelection.find(x => x.LevelId === node.LevelID);\n // if (ev.checked) {\n // if (!levItem) {\n // levItem = {\n // LevelId: node.LevelID,\n // MemberIds: []\n // };\n // this.FilterSelection.push(levItem);\n // }\n // levItem.MemberIds.push(node.MemberID);\n // this.fireSelect();\n // } else {\n // if (levItem && levItem.MemberIds) {\n // const index = levItem.MemberIds.indexOf(node.MemberID);\n // if (index > -1) {\n // levItem.MemberIds.splice(index, 1);\n // this.fireSelect();\n // }\n // }\n // }\n // }\n //}\n }\n\n //fireSelect() {\n // this.triggerEvent('selectionChanged', [...this.FilterSelection]);\n //}\n\n //codeDescChanged() {\n // if (this.LayoutElementValue && !this.LayoutElementValue.Relational) {\n // FilterTreeControl.updateCaption(this.RootNodes, this.LayoutElementValue.CodeDesc);\n // }\n //}\n}\n\n//export class MultidimensionalTreeLogic implements ITreeLogic {\n\n// Datasource;\n// LevelList;\n// CodeDesc = 0;\n// private _IdKeeper = new IDKeeper();\n\n// constructor(private service: MultiReportingService) {\n// }\n\n// initialize(layout): Promise {\n// const promise = new Promise((resolve, reject) => {\n// if (layout && layout.DataModel && layout.DataSource && layout.Hierarchy && layout.Levels) {\n// this.Datasource = layout.DataSource;\n// if (typeof layout.CodeDesc === 'number') {\n// this.CodeDesc = layout.CodeDesc;\n// }\n// MultiCacheService.GetHierarchy(layout.Hierarchy, layout.DataModel).then(hier => {\n// if (hier) {\n// const levels = [];\n// hier.Levels.forEach(l => {\n// if (layout.Levels.some(ll => ll === l.ID)) {\n// levels.push(l);\n// }\n// });\n// this.LevelList = levels;\n// if (levels.length > 0) {\n// this.loadChildren(new MultiTreeNode(-1)).then(children => {\n// resolve(children);\n// });\n// } else {\n// resolve([]);\n// }\n// } else {\n// resolve([]);\n// }\n// }, () => { resolve([]); });\n// } else {\n// resolve([]);\n// }\n// });\n// return promise;\n// }\n\n// loadChildren(node: IBaseTreeNode): Promise {\n// const promise = new Promise((resolve, reject) => {\n// if (node instanceof MultiTreeNode) {\n// if (node.Index > -1 && node.Index < this.LevelList.length) {\n// const nodeLevel = this.LevelList[node.Index];\n// this.service.GetMembers(this.Datasource, nodeLevel.ID, node.MemberID).subscribe(members => {\n// const retVal = [];\n// if (members) {\n// const nextIndex = node.Index + 1;\n// const hasChildren = nextIndex < this.LevelList.length;\n// members.forEach(m => {\n// const memberNode = new MultiTreeNode(this._IdKeeper.NextID);\n// memberNode.MemberKey = m.Key;\n// memberNode.LevelID = nodeLevel.ID;\n// memberNode.MemberCaption = m.Caption;\n// memberNode.updateCaption(this.CodeDesc);\n// memberNode.MemberID = m.ID;\n// memberNode.Index = nextIndex;\n// memberNode.HasChildren = hasChildren;\n// retVal.push(memberNode);\n// });\n// }\n// resolve(retVal);\n// });\n// } else {\n// resolve([]);\n// }\n// } else {\n// resolve([]);\n// }\n// });\n// return promise;\n// }\n//}\n\n//export class MultiTreeNode extends ABaseTreeNode {\n// Index = 0;\n// MemberKey = '';\n// MemberCaption = '';\n// LevelID = '00000000-0000-0000-0000-000000000000';\n// MemberID = '00000000-0000-0000-0000-000000000000';\n\n// updateCaption(codeDesc) {\n// if (codeDesc === 1) { // Code\n// this.Caption = this.MemberKey;\n// } else if (codeDesc === 3) { // Code & Description\n// this.Caption = this.MemberKey + ' ' + this.MemberCaption;\n// } else {\n// this.Caption = this.MemberCaption;\n// }\n// }\n//}\n","import { DataDescription } from \"../../../../../models/datadescription/multi/datadescription.model\";\nimport { Input, Component } from \"@angular/core\";\nimport { MeasureInfo, MeasureFunctionParentReferencing } from \"../../../../../models/datadescription/multi/measureinfo.model\";\n\n\n\n@Component({\n selector: 'parentreferenceControl',\n templateUrl: './parentreference.control.html',\n styleUrls: ['./parentreference.control.css']\n})\nexport class ParentReferenceControl {\n\n\n DataDescriptionValue: DataDescription;\n MeasureFunctionParentReferencing: MeasureFunctionParentReferencing;\n\n @Input()\n get SelectedMeasure() {\n return this.SelectedMeasureValue;\n }\n set SelectedMeasure(value) {\n this.SelectedMeasureValue = value;\n if (this.SelectedMeasureValue && this.SelectedMeasureValue.Details) {\n if (!this.SelectedMeasureValue.Details.FunctionParentReferencing) {\n this.SelectedMeasure.Details.FunctionParentReferencing = new MeasureFunctionParentReferencing();\n }\n this.MeasureFunctionParentReferencing = this.SelectedMeasureValue.Details.FunctionParentReferencing;\n }\n }\n\n\n @Input()\n get DataDescription() {\n return this.DataDescriptionValue;\n }\n set DataDescription(value) {\n this.DataDescriptionValue = value;\n\n }\n\n SelectedMeasureValue: MeasureInfo;\n\n \n\n async allDimensionChanged(item) {\n }\n}","import { AfterViewInit, Component, Input } from '@angular/core';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { Aggregation } from '../../../models/enums';\nimport { VisibilityType } from '../../../models/enums/oc.enum';\nimport { TranslatedString } from '../../../models/translatedstring.model';\nimport { ObjectcreatorDataManager } from '../helper/objectcreator.datamanager';\n\n@Component({\n selector: 'measuredefinitionsrel',\n templateUrl: './measuredef.rel.control.html'\n})\nexport class MeasureDefinitionRelationalControl implements AfterViewInit {\n AllColumns = [];\n FilteredColumns = [];\n SelectedColumn;\n VisibilityTypes;\n ASFunctionTypes;\n\n _SearchValue: string;\n get SearchValue() {\n return this._SearchValue;\n }\n set SearchValue(val) {\n this._SearchValue = val;\n this.FilterList();\n }\n\n @Input()\n DataDescription: any;\n\n constructor() {\n this.VisibilityTypes = EnumHelper.GetDropdownValues(VisibilityType);\n this.ASFunctionTypes = EnumHelper.GetDropdownValues(Aggregation);\n }\n\n ngAfterViewInit(): void {\n ObjectcreatorDataManager.FieldsChanged.subscribe(() => {\n this.UpdateFields();\n });\n this.UpdateFields();\n }\n\n UpdateFields() {\n const allColumns = [];\n if (this.DataDescription && this.DataDescription.Fields) {\n this.DataDescription.Fields.forEach(x => {\n let caption = TranslatedString.GetTranslation(x.TranslatedCaption);\n if (!caption) {\n caption = x.Caption;\n }\n allColumns.push({\n ID: x.ID,\n Caption: caption\n });\n });\n }\n this.AllColumns = allColumns;\n this.SelectedColumn = null;\n this.FilterList();\n }\n\n FilterList() {\n if (this._SearchValue) {\n const toLower = this._SearchValue.toLowerCase();\n this.AllColumns = this.AllColumns.filter(x => x.LowerCaption.indexOf(toLower) > -1);\n } else {\n this.FilteredColumns = [...this.AllColumns];\n }\n }\n\n columnSelected(item) {\n if (this.DataDescription && this.DataDescription.Fields) {\n this.SelectedColumn = this.DataDescription.Fields.find(x => x.ID == item);\n } else {\n this.SelectedColumn = null;\n }\n }\n}\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { TranslateHelper } from '../../../helpers/injector.helper';\nimport { Axis, DataDescription, HeterogenArea } from \"../../../models/datadescription/multi/datadescription.model\";\nimport { AxisType } from '../../../models/enums/query.enum';\nimport { TranslatedString } from '../../../models/translatedstring.model';\nimport { ObjectcreatorDataManager } from '../helper/objectcreator.datamanager';\n\n@Component({\n selector: 'axiscontrol',\n templateUrl: './axis.control.html',\n styleUrls: ['./axis.control.css']\n})\nexport class AxisControl implements OnInit, OnDestroy {\n\n Subscriptions = [];\n\n @Input()\n OrientationHA = 'horizontal';\n\n @Input()\n DataDescription: DataDescription;\n\n @Input()\n ObjectcreatorDataManager: ObjectcreatorDataManager;\n\n @Input()\n AxisCaption = 'Achse';\n\n AreaList = [];\n AxisDDValue: Axis;\n @Input()\n get AxisDD() {\n return this.AxisDDValue;\n }\n set AxisDD(value) {\n this.AxisDDValue = value;\n this.AreaList = [];\n window.setTimeout(() => {\n const list = [];\n if (value && value.Areas) {\n value.Areas.forEach((area, i) => {\n let caption = TranslatedString.GetTranslation(area.Caption);\n if (!caption) {\n caption = TranslateHelper.TranslatorInstance.instant('@@Bereich') + ' ' + (i + 1);\n }\n list.push({\n Caption: caption,\n Area: area\n });\n });\n }\n this.AreaList = list;\n this.cdRef.detectChanges();\n }, 50);\n this.AxisDDChange.emit(value);\n }\n @Output() AxisDDChange = new EventEmitter();\n\n get AxisType(): AxisType {\n return this.AxisDD.AxisType;\n }\n\n get IsMeasureOnAxis(): boolean {\n if (this.DataDescription) {\n const axistype = this.DataDescription.ShowMeasureOnAxis;\n return axistype === this.AxisType;\n }\n return false;\n }\n\n constructor(private cdRef: ChangeDetectorRef) {\n }\n\n ngOnInit(): void {\n this.Subscriptions.push(ObjectcreatorDataManager.AxisChanged.subscribe(axisType => {\n if (this.AxisType === axisType) {\n if (axisType === AxisType.X_Axis) {\n this.AxisDD = this.ObjectcreatorDataManager.DataDescription.XLevelNodes;\n } else if (axisType === AxisType.Y_Axis) {\n this.AxisDD = this.ObjectcreatorDataManager.DataDescription.YLevelNodes;\n }\n }\n }));\n }\n\n ngOnDestroy(): void {\n this.Subscriptions.forEach(x => x.unsubscribe());\n }\n\n onContextMenu(event: MouseEvent, ha: HeterogenArea) {\n event.preventDefault();\n event['AreaID'] = ha.UniqueID;\n }\n}\n","import { AfterViewInit, Component, ComponentFactoryResolver, Input, OnDestroy, OnInit } from '@angular/core';\nimport { HeterogenArea } from '../../../models/datadescription/multi/datadescription.model';\nimport { AxisType } from '../../../models/enums/query.enum';\nimport { ObjectcreatorDataManager } from '../helper/objectcreator.datamanager';\n\n@Component({\n selector: 'heterogenArea',\n templateUrl: './heterogenArea.control.html',\n styleUrls: ['./heterogenArea.control.css']\n})\nexport class HeterogenAreaControl implements OnInit, AfterViewInit, OnDestroy {\n\n Subscriptions = [];\n\n\n @Input()\n ObjectcreatorDataManager: ObjectcreatorDataManager; \n\n @Input()\n IsMeasuresOnAxis: boolean = false;\n\n @Input()\n AxisType: AxisType = AxisType.None;\n \n HeterogenAreaValue: HeterogenArea;\n @Input()\n get HeterogenArea() {\n return this.HeterogenAreaValue;\n }\n set HeterogenArea(value) {\n this.HeterogenAreaValue = value;\n }\n\n\n ngAfterViewInit(): void {\n }\n\n ngOnInit(): void {\n //this.Subscriptions.push(ObjectcreatorDataManager.AreaChanged.subscribe(haInfo => {\n // let areaId = haInfo.HeterogenAreaID;\n // if (this.HeterogenArea.UniqueID == areaId) {\n // var area = DataDescriptionHelper.FindAreaByID(this.ObjectcreatorDataManager.DataDescription, areaId);\n // this.HeterogenArea = area;\n // }\n //}));\n }\n\n\n ngOnDestroy(): void {\n this.Subscriptions.forEach(x => x.unsubscribe());\n }\n \n constructor(private factoryResolver: ComponentFactoryResolver) {\n \n }\n\n onDropAreaDropingLevel(event) {\n //var dropAreaItems = event.OcItems;\n //var index = event.Index;\n //var toDropItems = event.Items;\n\n //for (var i = 0; i < dropAreaItems.length; i++) {\n // let item = dropAreaItems[i];\n // dropAreaItems.splice(index, 0, item);\n //}\n \n }\n\n onDropAreaDropingMeasure(event) {\n var dropAreaItems = event.OcItems;\n var index = event.Index;\n var toDropItems = event.Items;\n\n \n //dropAreaItems.splice(index, 1);\n }\n\n onContextMenu(event: MouseEvent, areaItemType: any) {\n event.preventDefault();\n event['AreaItemType'] = areaItemType;\n }\n\n\n\n\n}\n\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { MultiCacheService } from '../../../cache/multi/cache.service';\nimport { HeterogenArea, Tuple } from '../../../models/datadescription/multi/datadescription.model';\nimport { LevelNode } from '../../../models/datadescription/multi/levelnode.model';\nimport { MeasureInfo } from '../../../models/datadescription/multi/measureinfo.model';\nimport { OcDragItemType } from '../../../models/enums/oc.DragItemType';\nimport { VisibilityType } from '../../../models/enums/oc.enum';\nimport { AxisType } from '../../../models/enums/query.enum';\nimport { SpecialElementType } from '../../../models/enums/specialElementType';\nimport { TranslatedString } from '../../../models/translatedstring.model';\nimport { TranslatedStringDialogComponent } from '../../dialogs/translatedstring.dialog';\nimport { DataDescriptionHelper } from '../../query/ddhelper.query';\nimport { CalculateTaskPanel } from '../../taskpanels/calculate/calculate.task.panel';\nimport { HeterogenAreaItemSelectedInfo, ObjectcreatorDataManager } from '../helper/objectcreator.datamanager';\nimport { LevelOCItem } from '../objectcreator.droparea';\n\n@Component({\n selector: 'heterogenSubArea',\n templateUrl: './heterogenSubArea.control.html',\n styleUrls: ['./heterogenSubArea.control.css']\n})\nexport class HeterogenSubAreaControl implements OnInit, OnDestroy {\n\n Subscriptions = [];\n\n @Input()\n ObjectcreatorDataManager: ObjectcreatorDataManager;\n\n @Input()\n IsMeasureArea = false;\n\n @Input()\n AreaUniqueID: number;\n\n @Input()\n AxisType: AxisType = AxisType.None;\n\n @Input()\n OcDragItemType: OcDragItemType;\n\n @Output() DropAreaDroping = new EventEmitter();\n\n haSubAreaItemsValue = [];\n\n @Input()\n get haSubAreaItems() {\n return this.haSubAreaItemsValue;\n }\n set haSubAreaItems(value) {\n this.objectCreatorItems = [];\n this.haSubAreaItemsValue = [];\n this.haSubAreaItemsValue = value;\n\n if (this.ObjectcreatorDataManager) {\n this.GetOCItems();\n }\n }\n\n GetOCItems() {\n this.objectCreatorItems = [];\n if (Array.isArray(this.haSubAreaItemsValue)) {\n if (this.OcDragItemType === OcDragItemType.Level) {\n const tuples = this.haSubAreaItemsValue as Tuple[];\n tuples.forEach(tuple => {\n if (tuple.Levels) {\n const tupleLevellength = tuple.Levels.length;\n tuple.Levels.forEach((level, k) => {\n const item: LevelOCItem = new LevelOCItem();\n item.Level = level.Level;\n item.UniqueID = level.UniqueID;\n item.Caption = level.Caption.toString();\n item.IsStartTupelLevel = tupleLevellength > 1 && k === 0;\n item.IsEndTupelLevel = tupleLevellength > 1 && k === tupleLevellength - 1;\n item.IsMultiTupelLevel = tupleLevellength > 1;\n item.IsHidden = level.Hidden;\n this.ObjectcreatorDataManager.Gettooltip(level).then(tt => {\n item.Tooltip = tt;\n });\n this.objectCreatorItems.push(item);\n });\n }\n });\n } else if (this.OcDragItemType === OcDragItemType.Measure) {\n\n const measures = this.haSubAreaItemsValue as MeasureInfo[];\n measures.forEach(m => {\n const item: LevelOCItem = new LevelOCItem();\n item.UniqueID = m.UniqueID;\n item.Caption = m.Caption.toString();\n item.IsHidden = m.VisibilityType == VisibilityType.NonVisibleDefault || m.VisibilityType == VisibilityType.NonVisibleForce;\n this.ObjectcreatorDataManager.Gettooltip(m).then(tt => {\n item.Tooltip = tt;\n\n });\n this.objectCreatorItems.push(item);\n });\n }\n\n }\n }\n\n objectCreatorItemsValue = [];\n\n @Input()\n get objectCreatorItems() {\n return this.objectCreatorItemsValue;\n }\n set objectCreatorItems(value) {\n this.objectCreatorItemsValue = value;\n }\n\n ngOnInit(): void {\n this.GetOCItems();\n this.Subscriptions.push(ObjectcreatorDataManager.AreaChanged.subscribe(haInfo => {\n const areaId = haInfo.HeterogenAreaID;\n if (this.AreaUniqueID === areaId) {\n const area: HeterogenArea = DataDescriptionHelper.FindAreaByID(this.ObjectcreatorDataManager.DataDescription, areaId);\n if (haInfo.DropAreaType === OcDragItemType.Level && this.OcDragItemType === OcDragItemType.Level) {\n this.haSubAreaItems = area.Tuples;\n //this.GetOCItems();\n } else if (haInfo.DropAreaType === OcDragItemType.Measure && this.OcDragItemType === OcDragItemType.Measure) {\n this.haSubAreaItems = area.Measures;\n // this.GetOCItems();\n }\n \n }\n }));\n }\n\n\n \n\n ngOnDestroy(): void {\n this.Subscriptions.forEach(x => x.unsubscribe());\n }\n\n async onDropAreaDropingElements(event) {\n // verschiebung innerhalb\n if (event) {\n if (typeof event.previousIndex === 'number' && typeof event.currentIndex === 'number') {\n if (event.item ) { // zwischen den droplists (Achse, Areas...)\n if (this.OcDragItemType === event.dropAreaType && (event.dropAreaType === event.item.OcDragItemType)) {\n const selInfo = new HeterogenAreaItemSelectedInfo();\n selInfo.NewDestinationHeterogenAreaIDValue = this.AreaUniqueID;\n selInfo.HeterogenAreaID = event.item.AreaUniqueID;\n selInfo.DropAreaType = this.OcDragItemType;\n selInfo.AxisType = event.item.AxisType;\n selInfo.NewDestinationAxisType = this.AxisType;\n\n this.ObjectcreatorDataManager.MoveDBHeterogenAreaElements(selInfo, event.previousIndex, event.currentIndex);\n this.haSubAreaItems = this.haSubAreaItems;\n }\n } else { // innerhalb einer Droplist\n if (this.haSubAreaItems.length > 1) {\n const selInfo = new HeterogenAreaItemSelectedInfo();\n selInfo.HeterogenAreaID = this.AreaUniqueID;\n selInfo.DropAreaType = this.OcDragItemType;\n this.ObjectcreatorDataManager.MoveDBHeterogenAreaElements(selInfo, event.previousIndex, event.currentIndex);\n }\n }\n }\n else {\n const index = event.Index;\n const toDropItemIds = event.Items;\n\n if (toDropItemIds && toDropItemIds.length > 0) {\n for (let i = 0; i < toDropItemIds.length; i++) {\n const dropID = toDropItemIds[i];\n\n if (this.OcDragItemType === OcDragItemType.Level) {\n const levelDB = await MultiCacheService.GetLevel(dropID, this.ObjectcreatorDataManager.DataDescription.DataModelID);\n if (levelDB) {\n const levelnode = new LevelNode();\n levelnode.Axis = AxisType.X_Axis;\n levelnode.Level = dropID;\n levelnode.HierarchieID = levelDB.Parent.ID;\n levelnode.DimensionID = levelDB.Parent.Parent.ID;\n levelnode.UniqueID = this.ObjectcreatorDataManager.GetNextUniqueID();\n levelnode.Caption = new TranslatedString(levelDB.Caption);\n const tuple = new Tuple();\n tuple.Levels.push(levelnode);\n this.haSubAreaItems.splice(index, 0, tuple);\n }\n } else if (this.OcDragItemType === OcDragItemType.Measure) {\n const mDB = await MultiCacheService.GetMeasure(dropID, this.ObjectcreatorDataManager.DataDescription.DataModelID);\n if (mDB) {\n const measureInfo = new MeasureInfo();\n measureInfo.UniqueID = this.ObjectcreatorDataManager.GetNextUniqueID();\n measureInfo.Measure = mDB.ID;\n measureInfo.Caption = new TranslatedString(mDB.Caption);\n measureInfo.Cube = mDB.Cube.ID;\n this.haSubAreaItems.splice(index, 0, measureInfo);\n ObjectcreatorDataManager.MeasureChanged.next(null);\n }\n }\n }\n this.haSubAreaItems = this.haSubAreaItems;\n this.DropAreaDroping.next(event);\n } else if (!toDropItemIds && event.SpecialElement) {\n const itemInfo = this.OcDragItemType === OcDragItemType.Measure ? new MeasureInfo() : new LevelNode();\n itemInfo.UniqueID = this.ObjectcreatorDataManager.GetNextUniqueID();\n if (event.SpecialElement === SpecialElementType.CalculatedElement && this.OcDragItemType === OcDragItemType.Measure) {\n itemInfo.Caption = new TranslatedString('Calculated');\n const task = CalculateTaskPanel.GetNewTask(itemInfo.UniqueID);\n this.ObjectcreatorDataManager.AddTask(task);\n } else {\n if (event.SpecialElement === SpecialElementType.EmptyElement && this.OcDragItemType === OcDragItemType.Measure) {\n itemInfo.Caption = new TranslatedString('Empty');\n } else if (event.SpecialElement === SpecialElementType.Variable) {\n itemInfo.Caption = new TranslatedString('Variable');\n }\n }\n await TranslatedStringDialogComponent.showDialog(itemInfo.Caption, () => {\n itemInfo.SpecialElementType = event.SpecialElement;\n if (this.OcDragItemType === OcDragItemType.Level) {\n const tuple = new Tuple();\n tuple.Levels.push(itemInfo as LevelNode);\n this.haSubAreaItems.splice(index, 0, tuple);\n this.haSubAreaItems = this.haSubAreaItems;\n ObjectcreatorDataManager.LevelVariablesChanged.next(null);\n } else { // Measure\n this.haSubAreaItems.splice(index, 0, itemInfo);\n this.haSubAreaItems = this.haSubAreaItems;\n ObjectcreatorDataManager.MeasureVariablesChanged.next(null);\n }\n this.DropAreaDroping.next(event);\n });\n }\n }\n }\n }\n}\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { UUID } from 'angular2-uuid';\nimport { OcDragItemType } from '../../models/enums/oc.DragItemType';\nimport { AxisType } from '../../models/enums/query.enum';\nimport { TranslatedString } from '../../models/translatedstring.model';\nimport { DatadescriptionControl, OCMPDragInfo } from '../dialogs/datadescription/datadescription.control';\nimport { ObjectCreatorSourceMultiDimensional } from '../multipanels/objectcreatorsource/objectcreatorsource.multidim';\nimport { ObjectCreatorSourceRelational } from '../multipanels/objectcreatorsource/objectcreatorsource.relational';\nimport { HeterogenAreaItemBasicInfo, HeterogenAreaItemSelectedInfo, ObjectcreatorDataManager } from './helper/objectcreator.datamanager';\n\n@Component({\n selector: 'objectcreatorDroparea',\n templateUrl: './objectcreator.droparea.html',\n styleUrls: ['./objectcreator.droparea.css']\n})\nexport class ObjectCreatorDropAreaCtrl implements OnInit, OnDestroy {\n\n ObjectcreatorDataManagerValue: ObjectcreatorDataManager;\n @Input()\n get ObjectcreatorDataManager() {\n return this.ObjectcreatorDataManagerValue;\n }\n set ObjectcreatorDataManager(value) {\n this.ObjectcreatorDataManagerValue = value;\n }\n\n Header;\n\n contextMenuValue: MatMenuTrigger;\n @Input()\n get contextMenu() {\n return this.contextMenuValue;\n }\n set contextMenu(value) {\n this.contextMenuValue = value;\n }\n\n @Input()\n OcDragItemType: OcDragItemType;\n\n @Input()\n AxisType: AxisType = AxisType.None;\n\n @Input()\n AreaUniqueID: number;\n\n objectCreatorItemsValue = [];\n\n @Input()\n get objectCreatorItems() {\n return this.objectCreatorItemsValue;\n }\n set objectCreatorItems(value) {\n this.objectCreatorItemsValue = [];\n if (Array.isArray(value)) {\n this.objectCreatorItemsValue = value;\n }\n }\n\n dropareaInfoValue: DropAreaDraggingInfo;\n get dropareaInfo() {\n if (!this.dropareaInfoValue) {\n this.dropareaInfoValue = new DropAreaDraggingInfo();\n this.dropareaInfoValue.AreaUniqueID = this.AreaUniqueID;\n this.dropareaInfoValue.AxisType = this.AxisType;\n this.dropareaInfoValue.objectCreatorItemsValue = this.objectCreatorItems;\n this.dropareaInfoValue.OcDragItemType = this.OcDragItemType;\n }\n return this.dropareaInfoValue;\n }\n\n Subscriptions = [];\n\n @Input()\n IsRelational: boolean;\n\n @Output() DropAreaDroping = new EventEmitter();\n\n //#region Caption\n @Input()\n get Caption() {\n return \"\";\n }\n set Caption(val) {\n }\n //#region DataDescription\n @Input()\n DataDescription: any;\n\n DragInfo: OCMPDragInfo;\n DropClass = '';\n\n itemGhost = { Caption: \"hier einfuegen\", ID: -666, index: -1 };\n\n constructor() {\n this.objectCreatorItems = [this.itemGhost];\n }\n\n ngOnDestroy(): void {\n this.Subscriptions.forEach(x => x.unsubscribe());\n }\n\n itemGhostindexSetFinished = false;\n\n ngOnInit(): void {\n this.Subscriptions.push(DatadescriptionControl.ObjectCreatorMPDragStart.subscribe((state) => {\n this.DragInfo = state;\n if (state && (state.DragType === this.OcDragItemType || state.DragType === OcDragItemType.LevelAndMeasure)) {\n this.DropClass = 'FieldsDrop';\n } else {\n this.DropClass = '';\n }\n if (!this.itemGhostindexSetFinished &&this.itemGhost.index < 0) {\n this.itemGhost.index = this.objectCreatorItems.length;\n }\n this.itemGhostindexSetFinished = false;\n }));\n this.Subscriptions.push(ObjectCreatorSourceRelational.DragEnd.subscribe(() => {\n this.dragend(null);\n }));\n this.Subscriptions.push(ObjectCreatorSourceMultiDimensional.DragEnd.subscribe(() => {\n this.dragend(null);\n }));\n this.fillDragItems();\n }\n\n fillDragItems() {\n if (this.IsRelational && this.DataDescription && this.DataDescription.Fields) {\n const newList = [];\n this.DataDescription.Fields.forEach(x => {\n let caption = TranslatedString.GetTranslation(x.TranslatedCaption);\n if (!caption) {\n caption = x.Caption;\n }\n newList.push({\n ID: x.ID,\n Caption: caption\n });\n });\n this.objectCreatorItems = newList;\n }\n }\n\n drop(event: CdkDragDrop) {\n const eventProperty = {\n previousIndex: event.previousIndex,\n currentIndex: event.currentIndex,\n areaID : this.AreaUniqueID,\n dropAreaType: this.OcDragItemType,\n axisType: this.AxisType,\n item :null\n };\n\n if (event.container !== event.previousContainer) {\n eventProperty.item = event.previousContainer.data;\n }\n this.DropAreaDroping.next(eventProperty);\n if (this.IsRelational && this.DataDescription && this.DataDescription.Fields) {\n if (event.previousIndex >= 0 && event.previousIndex < this.DataDescription.Fields.length &&\n event.currentIndex >= 0 && event.currentIndex < this.DataDescription.Fields.length) {\n const item = this.DataDescription.Fields.splice(event.previousIndex, 1)[0];\n this.DataDescription.Fields.splice(event.currentIndex, 0, item);\n this.fillDragItems();\n }\n }\n }\n\n delete(item) {\n if (this.IsRelational) {\n let index;\n if (item && this.DataDescription && this.DataDescription.Fields && this.DataDescription.Fields.some((x, i) => {\n if (x.ID == item.ID) {\n index = i;\n }\n })) {\n this.DataDescription.Fields.splice(index, 1);\n this.fillDragItems();\n }\n } else {\n const selInfo = new HeterogenAreaItemSelectedInfo();\n const areaID = this.AreaUniqueID;\n selInfo.HeterogenAreaID = areaID;\n selInfo.DropAreaType = this.OcDragItemType;\n const haBasicInfo = new HeterogenAreaItemBasicInfo();\n haBasicInfo.AreaID = areaID;\n haBasicInfo.UniqueID = item.UniqueID;\n selInfo.SelectedItems.push(haBasicInfo);\n this.ObjectcreatorDataManager.DeleteDBHeterogenAreaElements(selInfo);\n }\n }\n\n deleteAll() {\n if (this.IsRelational && this.DataDescription) {\n this.DataDescription.Fields = [];\n this.fillDragItems();\n }\n }\n\n itemDrop(event) {\n const itemghostindex = this.itemGhost.index;\n this.itemGhostindexSetFinished = true;\n // console.log(itemghostindex);\n const index = itemghostindex >= 0 ? itemghostindex : this.objectCreatorItems.length;\n //console.log(index);\n const dragInfo = this.DragInfo;\n this.dragend(null);\n if (dragInfo && dragInfo.DragContent) {\n this.itemGhost.index = -1;\n if (typeof dragInfo.DragContent === 'object' && typeof dragInfo.DragContent.SpecialElementType === 'number') { // SpecialElement\n this.DropAreaDroping.next({\n SpecialElement: dragInfo.DragContent.SpecialElementType,\n Index: index\n });\n } else {\n if (this.OcDragItemType === OcDragItemType.Fields) {\n if (dragInfo.DragType === OcDragItemType.Fields && this.DataDescription) {\n const newItems = [];\n dragInfo.DragContent.forEach((item, i) => {\n newItems.push({\n ID: item.ID,\n Caption: item.Caption,\n TranslatedCaption: item.TranslatedCaption,\n FieldID: item.FieldID,\n ContainerID: item.ContainerID,\n ContainerUniqueID: item.ContainerUniqueID,\n DataSourceID: item.DataSourceID,\n Type: item.Type\n });\n });\n if (this.DataDescription.Fields) {\n this.DataDescription.Fields.splice(index, 0, ...newItems);\n } else {\n this.DataDescription.Fields = newItems;\n }\n this.fillDragItems();\n this.itemGhost.index = this.objectCreatorItems.length;\n }\n } else {\n this.DropAreaDroping.next({\n Items: dragInfo.DragContent.DropIDs,\n Index: index\n });\n }\n }\n }\n }\n\n public dragStart(index) {\n if (this.objectCreatorItems.some(x => x.ID === -666)) {\n const oldIndex = this.itemGhost.index;\n if (oldIndex != index) {\n this.itemGhost.index = index;\n moveItemInArray(this.objectCreatorItems, oldIndex, this.itemGhost.index);\n }\n } else {\n this.itemGhost.index = index;\n this.objectCreatorItems.splice(index, 0, this.itemGhost);\n }\n }\n\n public dragend(event: DragEvent) {\n this.DragInfo = null;\n this.objectCreatorItems.some((x, i) => {\n if (x.ID === -666) {\n this.objectCreatorItems.splice(i, 1);\n return true;\n }\n return false;\n });\n this.itemGhost.index = -1;\n }\n\n onContextMenu(event: MouseEvent, dditem: any) {\n event.preventDefault();\n event['OcDragItem'] = dditem;\n event['DropArea'] = this;\n }\n}\n\nexport class LevelOCItem {\n Level: UUID;\n UniqueID: number;\n Caption: string;\n IsStartTupelLevel: boolean;\n IsEndTupelLevel: boolean;\n IsMultiTupelLevel: boolean;\n\n Tooltip: string;\n IsHidden: boolean;\n}\n\nexport class DropAreaDraggingInfo {\n\n OcDragItemType: OcDragItemType;\n\n AxisType: AxisType = AxisType.None;\n\n AreaUniqueID: number;\n\n objectCreatorItemsValue = [];\n}\n","import { AfterViewInit, Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { deserialize, serialize } from 'class-transformer';\nimport { Subject, Subscription } from 'rxjs';\nimport { DataDescription, HeterogenArea } from '../../models/datadescription/multi/datadescription.model';\nimport { AxisType } from '../../models/enums/query.enum';\nimport { RequestFilter } from '../../models/rest/requestfilter';\nimport { AdvancedFilterComponent } from '../controls/advancedfilter/advancedfilter.component';\nimport { DataTaskPanel } from './datataskpanel/datatask.panel';\nimport { FilterPanelControl } from './filter/filterpanel.control';\nimport { HeterogenAreaItemBasicInfo, HeterogenAreaItemSelectedInfo, ObjectcreatorDataManager } from './helper/objectcreator.datamanager';\nimport { MeasureDefinitionsControl } from './measuredefinition/measuredef.control';\n\n@Component({\n selector: 'objectcreatorMaincontrol',\n templateUrl: './objectcreator.maincontrol.html',\n styleUrls: ['./objectcreator.maincontrol.css']\n})\nexport class ObjectCreatorMainCtrl implements OnInit, AfterViewInit, OnDestroy {\n \n @ViewChild('dropAreaX') dropArea;\n @ViewChild('dropAreaY') dropAreaY;\n @ViewChild('dropAreaMeasure') dropAreaMeasure;\n @ViewChild('advancedFilter') advancedFilter: AdvancedFilterComponent;\n @ViewChild('measuredefinition') measuredefinition: MeasureDefinitionsControl;\n @ViewChild('filterControl') filterControl: FilterPanelControl;\n @ViewChild('taskOverview') taskOverview: DataTaskPanel;\n @ViewChild(MatMenuTrigger) contextMenu: MatMenuTrigger;\n\n contextMenuPosition = { x: '0px', y: '0px' };\n\n ObjectcreatorDataManager: ObjectcreatorDataManager;\n OCManagerSub: Subscription;\n OCManagerDialogClosingSub: Subscription;\n\n filter: any[] = [];\n\n variable: any[] = [\n { \"ID\": 0, \"Caption\": \"Available\" },\n { \"ID\": 1, \"Caption\": \"Ready\" },\n { \"ID\": 2, \"Caption\": \"Started\" }\n ];\n\n Definition = null;\n SystemVariables = [];\n\n\n @Input()\n IsRelational: boolean;\n RelFieldFilter: any[] = [];\n\n DataDescriptionValue: any;\n\n @Input()\n get DataDescription() {\n if (this.DataDescriptionValue instanceof DataDescription) {\n if (this.DataDescriptionValue.XLevelNodes.Areas.length < 1) {\n const ha = new HeterogenArea();\n ha.UniqueID = this.ObjectcreatorDataManager.GetNextUniqueID();\n this.DataDescriptionValue.XLevelNodes.Areas.push(ha);\n }\n if (this.DataDescriptionValue.YLevelNodes.Areas.length < 1) {\n const ha = new HeterogenArea();\n ha.UniqueID = this.ObjectcreatorDataManager.GetNextUniqueID();\n this.DataDescriptionValue.YLevelNodes.Areas.push(ha);\n }\n }\n return this.DataDescriptionValue;\n }\n set DataDescription(value) {\n if (value) {\n if (!(this.DataDescriptionValue instanceof DataDescription) &&\n (value instanceof DataDescription || value.XLevelNodes)) {\n const json = serialize(value);\n value = deserialize(DataDescription, json);\n this.clearOCSub();\n this.ObjectcreatorDataManager = new ObjectcreatorDataManager(value as DataDescription);\n this.OCManagerSub = ObjectcreatorDataManager.TasksChanged.subscribe(() => {\n if (this.taskOverview) {\n this.taskOverview.updateTaskList();\n }\n });\n\n this.DataDescriptionValue = value;\n this.DataDescriptionChange.emit(value); \n } else {\n this.DataDescriptionValue = value;\n this.DataDescriptionChange.emit(value);\n }\n }\n }\n @Output() DataDescriptionChange = new EventEmitter();\n\n public static ObjectCreatorMPDragStart: Subject = new Subject();\n\n //BaseSlideValue: BaseSlidePage;\n //@Input()\n //get BaseSlide() {\n // return this.BaseSlideValue;\n\n //}\n //set BaseSlide(value) {\n // this.BaseSlideValue = value;\n // this.SystemVariables.push(...this.BaseSlideValue.ReportLayout.Variables);\n //}\n\n ReportObjectValue: any;\n @Input()\n get ReportObject() {\n return this.ReportObjectValue;\n\n }\n set ReportObject(value) {\n this.ReportObjectValue = value;\n }\n\n\n get RelationDefinition() {\n if (!this.Definition || this.Definition.Container != this.DataDescriptionValue.Containers || this.Definition.Relations != this.DataDescriptionValue.Relations) {\n const def = {\n Container: this.DataDescriptionValue.Containers,\n Relations: this.DataDescriptionValue.Relations,\n MaxID: 0,\n DataModelID: this.DataDescriptionValue.DataModell\n };\n this.Definition = def;\n }\n return this.Definition;\n }\n\n clearOCSub() {\n if (this.OCManagerSub) {\n this.OCManagerSub.unsubscribe();\n this.OCManagerSub = null;\n }\n }\n\n private EditWhereFilter() {\n const advancedFilter = this.advancedFilter.GetActualFilter();\n if (advancedFilter && advancedFilter.AdditionalInfos) {\n advancedFilter['FieldID'] = advancedFilter.AdditionalInfos.FieldID;\n advancedFilter['ContainerID'] = advancedFilter.AdditionalInfos.ContainerID;\n advancedFilter['FieldUniqueID'] = advancedFilter.AdditionalInfos.FieldUniqueID;\n advancedFilter['ContainerUniqueID'] = advancedFilter.AdditionalInfos.ContainerUniqueID;\n }\n if (advancedFilter && advancedFilter.Filters) {\n ObjectCreatorMainCtrl.SetFilterIds(advancedFilter.Filters);\n }\n this.DataDescriptionValue.WhereFilter = advancedFilter;\n }\n\n private static SetFilterIds(filters: RequestFilter[]) {\n if (filters && filters.length > 0) {\n for (let i = 0; i < filters.length; i++) {\n let filter = filters[i];\n if (filter.AdditionalInfos) {\n filter['FieldUniqueID'] = filter.AdditionalInfos.FieldUniqueID;\n filter['ContainerUniqueID'] = filter.AdditionalInfos.ContainerUniqueID;\n filter['FieldID'] = filter.AdditionalInfos.FieldID;\n filter['ContainerID'] = filter.AdditionalInfos.ContainerID;\n }\n if (filter.Filters) {\n ObjectCreatorMainCtrl.SetFilterIds(filter.Filters);\n }\n }\n }\n }\n\n onDropAreaFieldsItemsChange(any) {\n ObjectcreatorDataManager.FieldsChanged.next();\n //if (this.IsRelational) {\n // this.DataDescription.Fields = any;\n //}\n }\n\n onDropAreaMeasureItemsChange(any) {\n //if (this.IsRelational) {\n // this.DataDescription.Fields = any;\n //}\n }\n\n onDropAreaXItemsChange(any) {\n //if (this.IsRelational) {\n // this.DataDescription.Fields = any;\n //}\n }\n\n onDropAreaYItemsChange(any) {\n //if (this.IsRelational) {\n // this.DataDescription.Fields = any;\n //}\n }\n\n ngOnInit(): void {\n this.OCManagerDialogClosingSub = ObjectcreatorDataManager.DialogClosing.subscribe(() => {\n if (this.DataDescriptionValue && this.IsRelational) {\n this.EditWhereFilter();\n }\n });\n }\n\n ngAfterViewInit(): void {\n if (this.DataDescriptionValue && this.DataDescriptionValue.WhereFilter) {\n this.advancedFilter.SetFilter(this.DataDescriptionValue.WhereFilter);\n }\n }\n\n ngOnDestroy(): void {\n this.OCManagerDialogClosingSub.unsubscribe();\n this.clearOCSub();\n }\n\n onContextMenuAxis(event: MouseEvent, axisType: AxisType) {\n event.preventDefault();\n event['AxisType'] = axisType;\n }\n\n onContextMenu(event: MouseEvent, prop: any) {\n event.preventDefault();\n this.contextMenuPosition.x = event.clientX + 'px';\n this.contextMenuPosition.y = event.clientY + 'px';\n this.contextMenu.menuData = new Array<{ key: string, value: any }>();\n\n if (event['OcDragItem'] !== undefined) {\n this.contextMenu.menuData.push({ key: 'OcDragItem', value: event['OcDragItem'] });\n }\n if (event['AreaItemType'] !== undefined) {\n this.contextMenu.menuData.push({ key: 'AreaItemType', value: event['AreaItemType'] });\n }\n if (event['AreaID'] !== undefined) {\n this.contextMenu.menuData.push({ key: 'AreaID', value: event['AreaID'] });\n }\n if (event['AxisType'] !== undefined) {\n this.contextMenu.menuData.push({ key: 'AxisType', value: event['AxisType'] });\n }\n if (event['DropArea'] !== undefined) {\n this.contextMenu.menuData.push({ key: 'DropArea', value: event['DropArea'] });\n }\n this.SetVisibleContextMenuItems(this.contextMenu.menuData);\n if (this.menuItems && this.menuItems.length > 0) {\n this.contextMenu.openMenu();\n }\n\n }\n\n SetVisibleContextMenuItems(data: Array<{ key: string, value: any }>) {\n this.menuItems = new Array<{ text: string, actionId: number, check: string }>();\n if (this.IsRelational) {\n this.menuItemsRelational.forEach(x => {\n if (this.CheckShowContextMenuItem(x.check)) {\n this.menuItems.push(x);\n }\n });\n }\n else {\n this.menuItemsMultidimensional.forEach(x => {\n if (this.CheckShowContextMenuItem(x.check)) {\n this.menuItems.push(x);\n }\n });\n }\n }\n\n CheckShowContextMenuItem(checkKey: string) {\n return this.contextMenu && this.contextMenu.menuData && this.contextMenu.menuData.findIndex(x => x.key == checkKey) >= 0;\n }\n\n onMatMenuClosed() {\n this.contextMenu.menuData = new Array<{ key: string, value: any }>();\n }\n\n menuItems: Array<{ text: string, actionId: number, check: string }>;\n\n menuItemsMultidimensional: Array<{ text: string, actionId: number, check: string }> = [\n { text: \"@@Add area behind\", actionId: 1, check: \"AreaID\" },\n { text: \"@@Add area before\", actionId: 2, check: \"AreaID\" },\n { text: \"@@Delete area\", actionId: 3, check: \"AreaID\" },\n { text: \"@@Combine tuples\", actionId: 4, check: \"OcDragItem\" },\n { text: \"@@Resolve combined tuples\", actionId: 5, check: \"OcDragItem\" },\n { text: \"@@Delete item\", actionId: 6, check: \"OcDragItem\" },\n { text: \"@@Show/hide item\", actionId: 10, check: \"OcDragItem\" },\n { text: \"@@Rename item\", actionId: 8, check: \"OcDragItem\" },\n { text: \"@@Replace item\", actionId: 11, check: \"OcDragItem\" },\n { text: \"@@Move all measures to this area\", actionId: 7, check: \"AreaItemType\" }\n ];\n\n menuItemsRelational: Array<{ text: string, actionId: number, check: string }> = [\n { text: \"@@Delete field\", actionId: 21, check: \"OcDragItem\" },\n { text: \"@@Delete all fields\", actionId: 22, check: \"OcDragItem\" }\n ];\n\n onContextMenuAction(id: number) {\n if (this.IsRelational) {\n switch (id) {\n case 21: //Item löschen\n let cmData1: Array<{ key: string, value: any }> = this.contextMenu.menuData;\n if (cmData1) {\n let item = cmData1.find(x => x.key == \"OcDragItem\");\n let dropArea = cmData1.find(x => x.key == \"DropArea\");\n if (item && item.value && dropArea && dropArea.value) {\n dropArea.value.delete(item.value);\n }\n }\n break;\n case 22: //alle Item löschen\n let cmData2: Array<{ key: string, value: any }> = this.contextMenu.menuData;\n if (cmData2) {\n let item = cmData2.find(x => x.key == \"OcDragItem\");\n let dropArea = cmData2.find(x => x.key == \"DropArea\");\n if (item && item.value && dropArea && dropArea.value) {\n dropArea.value.deleteAll(item.value);\n }\n }\n break;\n default:\n }\n }\n else {\n\n switch (id) {\n case 1: //\"Area dahinter hinzufügen\"\n let cmData1: Array<{ key: string, value: any }> = this.contextMenu.menuData;\n if (cmData1) {\n let axisTypeKV = cmData1.find(x => x.key == \"AxisType\");\n let areaIDKV = cmData1.find(x => x.key == \"AreaID\");\n if (axisTypeKV && areaIDKV) {\n this.ObjectcreatorDataManager.AddHeterogenArea(axisTypeKV.value, areaIDKV.value, false);\n }\n }\n break;\n case 2://\"Area davor hinzufügen\"\n let cmData2: Array<{ key: string, value: any }> = this.contextMenu.menuData;\n if (cmData2) {\n let axisTypeKV = cmData2.find(x => x.key == \"AxisType\");\n let areaIDKV = cmData2.find(x => x.key == \"AreaID\");\n if (axisTypeKV && areaIDKV) {\n this.ObjectcreatorDataManager.AddHeterogenArea(axisTypeKV.value, areaIDKV.value, true);\n }\n }\n break;\n case 3:// \"Area entfernen\"\n let cmData3: Array<{ key: string, value: any }> = this.contextMenu.menuData;\n if (cmData3) {\n let axisTypeKV = cmData3.find(x => x.key == \"AxisType\");\n let areaIDKV = cmData3.find(x => x.key == \"AreaID\");\n if (axisTypeKV && areaIDKV) {\n this.ObjectcreatorDataManager.DeleteHeterogenArea(axisTypeKV.value, areaIDKV.value);\n }\n }\n break;\n case 4:\n let selInfo: HeterogenAreaItemSelectedInfo = this.GetSelectedInfoMultidimensional();\n this.ObjectcreatorDataManager.BuildDBTupel(selInfo);\n break;\n case 5:\n let selInfo2: HeterogenAreaItemSelectedInfo = this.GetSelectedInfoMultidimensional();\n this.ObjectcreatorDataManager.ResolveTupels(selInfo2);\n break;\n case 6:\n let selInfo3: HeterogenAreaItemSelectedInfo = this.GetSelectedInfoMultidimensional();\n this.ObjectcreatorDataManager.DeleteDBHeterogenAreaElements(selInfo3);\n break;\n case 7:// \"Area entfernen\"\n let cmData7: Array<{ key: string, value: any }> = this.contextMenu.menuData;\n if (cmData7) {\n let axisTypeKV = cmData7.find(x => x.key === \"AxisType\");\n let areaIDKV = cmData7.find(x => x.key === \"AreaID\");\n if (axisTypeKV && areaIDKV) {\n this.ObjectcreatorDataManager.MoveAllMeasuresToHeterogenArea(areaIDKV.value);\n }\n }\n break;\n case 8:\n let selInfo4: HeterogenAreaItemSelectedInfo = this.GetSelectedInfoMultidimensional();\n this.ObjectcreatorDataManager.RenameDBHeterogenAreaElements(selInfo4);\n break;\n case 10:\n let selInfo10: HeterogenAreaItemSelectedInfo = this.GetSelectedInfoMultidimensional();\n this.ObjectcreatorDataManager.HiddenDBHeterogenAreaElements(selInfo10);\n break;\n case 11:\n let selInfo11: HeterogenAreaItemSelectedInfo = this.GetSelectedInfoMultidimensional();\n this.ObjectcreatorDataManager.ReplaceDBHeterogenAreaElement(selInfo11);\n break;\n\n default:\n }\n }\n }\n\n\n\n GetSelectedInfoMultidimensional() {\n let selInfo: HeterogenAreaItemSelectedInfo = null;\n let cmData: Array<{ key: string, value: any }> = this.contextMenu.menuData;\n if (cmData) {\n let areaIDKV = cmData.find(x => x.key == \"AreaID\");\n let OcDragItemKV = cmData.find(x => x.key == \"OcDragItem\");\n let itemTypeKV = cmData.find(x => x.key == \"AreaItemType\");\n if (areaIDKV && areaIDKV.value !== undefined && OcDragItemKV && OcDragItemKV.value && itemTypeKV.value !== undefined) {\n selInfo = new HeterogenAreaItemSelectedInfo();\n let areaID = areaIDKV.value;\n let dragItem = OcDragItemKV.value;\n let itemType = itemTypeKV.value;\n selInfo.HeterogenAreaID = areaIDKV.value;\n selInfo.DropAreaType = itemType;\n let haBasicInfo: HeterogenAreaItemBasicInfo = new HeterogenAreaItemBasicInfo();\n haBasicInfo.AreaID = areaIDKV.value;\n haBasicInfo.UniqueID = dragItem.UniqueID;\n selInfo.SelectedItems.push(haBasicInfo);\n }\n }\n return selInfo;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { DataDescription } from '../../../models/datadescription/multi/datadescription.model';\nimport { LevelNode } from '../../../models/datadescription/multi/levelnode.model';\nimport { MeasureInfo } from '../../../models/datadescription/multi/measureinfo.model';\nimport { VisibilityType } from '../../../models/enums/oc.enum';\nimport { ObjectcreatorDataManager } from '../helper/objectcreator.datamanager';\n\n@Component({\n selector: 'multidimvariable-control',\n templateUrl: './multidimvariable.control.html',\n styleUrls: ['./multidimvariable.control.css']\n})\nexport class MultidimensionalVariablenItemControl implements OnInit {\n\n EditItemTypeLevelValue: boolean = false;\n\n VisibilityTypes = [];\n DataDescriptionValue: DataDescription;\n SelectedItem: any;\n ObjectcreatorDataManagerValue: ObjectcreatorDataManager;\n VariablenItems = [];\n\n get EditItemTypeLevel() {\n return this.EditItemTypeLevelValue;\n }\n set EditItemTypeLevel(value) {\n if (this.EditItemTypeLevel != value) {\n this.EditItemTypeLevelValue = value;\n if (value) {\n this.VariablenItems = this.FilteredVariablenLevels;\n }\n else {\n this.VariablenItems = this.FilteredVariablenMeasures;\n }\n if (this.ObjectcreatorDataManager) {\n this.AllVariablenLevels = this.ObjectcreatorDataManagerValue.GetAllVariablelevels();\n this.AllVariablenMeasures = this.ObjectcreatorDataManagerValue.GetAllVariableMeasures();\n }\n }\n }\n\n\n @Input()\n get DataDescription() {\n return this.DataDescriptionValue;\n }\n set DataDescription(value) {\n this.DataDescriptionValue = value;\n }\n\n\n @Input()\n get ObjectcreatorDataManager() {\n return this.ObjectcreatorDataManagerValue;\n }\n set ObjectcreatorDataManager(value) {\n this.ObjectcreatorDataManagerValue = value;\n\n }\n\n _SearchValue;\n\n\n get SearchValue() {\n return this._SearchValue;\n }\n set SearchValue(val) {\n this._SearchValue = val;\n this.FilterList();\n }\n\n\n AllVariablenLevelsValue: LevelNode[] = [];\n FilteredVariablenLevels: LevelNode[] = [];\n @Input()\n get AllVariablenLevels() {\n return this.AllVariablenLevelsValue;\n }\n set AllVariablenLevels(value) {\n this.AllVariablenLevelsValue = [];\n this._SearchValue == '';\n if (Array.isArray(value)) {\n this.AllVariablenLevelsValue = value;\n }\n this.FilteredVariablenLevels = this.AllVariablenLevelsValue;\n }\n\n AllVariablenMeasuresValue: MeasureInfo[] = [];\n FilteredVariablenMeasures: MeasureInfo[] = [];\n @Input()\n get AllVariablenMeasures() {\n return this.AllVariablenMeasuresValue;\n }\n set AllVariablenMeasures(value) {\n this.AllVariablenMeasuresValue = [];\n this._SearchValue == '';\n if (Array.isArray(value)) {\n this.AllVariablenMeasuresValue = value;\n }\n this.FilteredVariablenMeasures = value;\n }\n\n\n\n constructor() {\n this.VisibilityTypes = EnumHelper.GetDropdownValues(VisibilityType);\n }\n ngOnInit(): void {\n if (this.ObjectcreatorDataManager) {\n this.AllVariablenLevels = this.ObjectcreatorDataManagerValue.GetAllVariablelevels();\n this.AllVariablenMeasures = this.ObjectcreatorDataManagerValue.GetAllVariableMeasures();\n this.VariablenItems = this.EditItemTypeLevelValue ? this.AllVariablenLevels : this.AllVariablenMeasures;\n ObjectcreatorDataManager.MeasureVariablesChanged.subscribe(() => {\n this.AllVariablenMeasures = this.ObjectcreatorDataManagerValue.GetAllVariableMeasures();\n if (this.EditItemTypeLevel == false) {\n this.VariablenItems = null;\n window.setTimeout(() => {\n this.VariablenItems = this.AllVariablenMeasures;\n }, 50);\n }\n });\n ObjectcreatorDataManager.LevelVariablesChanged.subscribe(() => {\n this.AllVariablenLevels = this.ObjectcreatorDataManagerValue.GetAllVariablelevels();\n if (this.EditItemTypeLevel) {\n this.VariablenItems = null;\n window.setTimeout(() => {\n this.VariablenItems = this.AllVariablenLevels;\n }, 50);\n }\n });\n }\n }\n\n async itemSelected(item) {\n this.SelectedItem = item;\n }\n\n FilterList() {\n\n this.FilteredVariablenMeasures = this.AllVariablenMeasures.filter(item =>\n (!this._SearchValue || this._SearchValue == '' || item.Caption.toString().search(this._SearchValue) !== -1));\n\n this.FilteredVariablenLevels = this.AllVariablenLevels.filter(item =>\n (!this._SearchValue || this._SearchValue == '' || item.Caption.toString().search(this._SearchValue) !== -1));\n }\n\n\n\n\n\n onContextMenu(event: MouseEvent, dditem: any) {\n event.preventDefault();\n event['OcDragItem'] = dditem;\n event['DropArea'] = this;\n }\n}\n","import { Component } from '@angular/core';\nimport {Router} from \"@angular/router\";\n@Component({\n selector: 'lib-access-denied',\n styleUrls:['./403-page.component.css'],\n templateUrl:'./403-page.component.html'\n})\n\nexport class AccessDeniedPage {\n\n constructor(private router: Router) {\n }\n goBack() {\n this.router.navigate(['/default/settings']);\n }\n}\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'not-found',\n styleUrls:['not-found404.page.css'],\n templateUrl: 'not-found404.page.html'\n})\n\nexport class NotFound404Page {\n\n constructor(private router: Router) {\n }\n goBack() {\n this.router.navigate(['default/settings/dashboard']);\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { Meta } from '@angular/platform-browser';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { plainToClass } from 'class-transformer';\nimport { CacheService } from '../../cache/cache.service';\nimport { GlobalEventHelper } from '../../helpers/globalevent.helper';\nimport { LayoutHelper } from '../../helpers/layout.helper';\nimport { PageEditClient } from '../../helpers/page.edit.client';\nimport { PermissionHelper } from '../../helpers/permissions.helper';\nimport { VariableHelper } from '../../helpers/variable.helper';\nimport { ContentType } from '../../models/enums/contenttype.enum';\nimport { ViewType } from '../../models/enums/viewtype.enum';\nimport { Layout } from '../../models/layout.model';\nimport { LayoutEditService } from '../../models/layout/layout.edit.client';\nimport { Registry } from '../../script/modules/registry.script';\nimport { LayoutService } from '../../services/layout.service';\nimport { MetaService } from '../../services/meta.service';\nimport { NavigationService } from '../../services/navigation.service';\nimport { ScriptLibraryService } from '../../services/scriptlibrary.service';\nimport { SideNavService } from '../../services/sidenav.service';\n\n@Component({\n selector: 'contentpage',\n templateUrl: './content.page.html',\n styleUrls: ['./content.page.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ContentPage implements OnInit, OnDestroy {\n ErrorPage = false;\n PermissionPage = false;\n\n ShowContentValue = false;\n get ShowContent() {\n return this.ShowContentValue;\n }\n set ShowContent(value) {\n this.ShowContentValue = value;\n }\n Component;\n Subscriptions = {};\n LayoutElement;\n NavigationNode;\n Initialized = false;\n Destroyed = false;\n CheckoutUser;\n Url;\n ActualPageEditClient: PageEditClient;\n\n constructor(private translate: TranslateService, private metaService: MetaService,\n private router: Router, private cdRef: ChangeDetectorRef, private meta: Meta, script: ScriptLibraryService) {\n Registry.initializeRegistry(script);\n }\n ngOnInit(): void {\n LayoutService.DragType.next('content');\n this.Subscriptions['KeyEvent'] = LayoutService.KeyPress.subscribe(x => {\n if (x.key === 'F2' && !LayoutService.LayoutEditMode.getValue()) {\n if (PermissionHelper.GetAppBuilderPermission() && PermissionHelper.EditPermission.getValue()) {\n const viewType = LayoutService.ViewType.getValue();\n if (viewType === ViewType.Edit) {\n if (this.ActualPageEditClient) {\n this.ActualPageEditClient.checkForSave().then(() => {\n LayoutService.ViewType.next(ViewType.View);\n });\n } else {\n LayoutService.ViewType.next(ViewType.View);\n }\n } else {\n LayoutService.ViewType.next(ViewType.Edit);\n LayoutService.SelectedItem.next(this.LayoutElement);\n if (this.NavigationNode && !this.ActualPageEditClient) {\n const le = this.LayoutElement;\n this.metaService.CanEditPage(this.NavigationNode.Url).subscribe(x => {\n this.ActualPageEditClient = new PageEditClient(le, {\n CanEditInfo: x\n }, this.metaService);\n LayoutEditService.SetNext(this.ActualPageEditClient, false);\n });\n }\n }\n }\n }\n });\n this.Subscriptions['PopState'] = NavigationService.OnPopState.subscribe(() => {\n if (this.Component && this.Component.DisableNavigation) {\n if (this.Component.DisableNavigationText) {\n NavigationService.DisableBack.next(this.Component.DisableNavigationText);\n } else {\n NavigationService.DisableBack.next(this.translate.instant('@@Website verlassen?'));\n }\n }\n });\n NavigationService.SelectedPage.next('content');\n this.Subscriptions['ViewType'] = LayoutService.ViewType.subscribe(viewType => {\n if (this.Component) {\n this.Component.Editable = viewType !== ViewType.View;\n this.Component.SetViewType(viewType); \n }\n });\n this.Subscriptions['RootSize'] = LayoutService.RootSize.subscribe(async (size) => {\n if (this.LayoutElement && this.LayoutElement.Resolutions) {\n let temp = LayoutHelper.GetActiveResolution(this.LayoutElement);\n if (temp != this.Component) {\n this.Component = temp\n await VariableHelper.LoadVariables(this.Component);\n GlobalEventHelper.InitGlobalEvents(this.Component);\n if (!this.Component.ElementType) {\n if (this.Component.ContentType) {\n switch (this.Component.ContentType) {\n case ContentType.Grid: this.Component.ElementType = 'grid'; break;\n case ContentType.Flex: this.Component.ElementType = 'flex'; break;\n case ContentType.Raster: this.Component.ElementType = 'raster'; break;\n case ContentType.Canvas: this.Component.ElementType = 'canvas'; break;\n }\n } else {\n this.Component.ElementType = 'grid';\n }\n }\n PermissionHelper.GetContentPermissions(this.LayoutElement._key).then(() => {\n if (this.Component && this.Component.DisableNavigation) {\n LayoutService.PreventBrowserClose.next(true);\n }\n this.LayoutElement.Editable = false;\n this.LayoutElement.SetViewType(LayoutService.ViewType.getValue());\n LayoutService.SelectedItem.next(this.Component);\n LayoutService.SelectedLayout.next(this.LayoutElement);\n this.ShowContent = true;\n PermissionHelper.EditPermission.next(true);\n this.cdRef.detectChanges();\n });\n }\n }\n });\n this.Subscriptions['LayoutPermissions'] = PermissionHelper.ActiveNavigationPermissions.subscribe(() => {\n if (this.Initialized) {\n const contentShown = this.ShowContent;\n this.checkPermission();\n if (contentShown && !this.ShowContent && LayoutService.ViewType.getValue() === ViewType.Edit) {\n LayoutService.ViewType.next(ViewType.View);\n this.cdRef.detectChanges();\n }\n }\n });\n this.Subscriptions['ContentPermissions'] = PermissionHelper.ContentPermissionChanged.subscribe((key) => {\n if (this.LayoutElement && this.LayoutElement._key === key) {\n PermissionHelper.GetContentPermissions(this.LayoutElement._key).then(() => {\n this.cdRef.detectChanges();\n });\n }\n });\n this.Subscriptions['Impersonate'] = PermissionHelper.Impersonate.subscribe((roles) => {\n if (this.LayoutElement) {\n PermissionHelper.GetContentPermissions(this.LayoutElement._key).then(() => {\n this.cdRef.detectChanges();\n });\n }\n });\n this.Subscriptions['Url'] = SideNavService.InternalURL.subscribe((url) => {\n if (url != this.Url) {\n this.Url = url;\n this.refreshAndQuit();\n }\n });\n this.Initialized = true;\n }\n\n ngOnDestroy(): void {\n LayoutService.PreventBrowserClose.next(false);\n this.Destroyed = true;\n const keys = Object.keys(this.Subscriptions);\n keys.forEach((key) => {\n if (this.Subscriptions[key].unsubscribe) {\n this.Subscriptions[key].unsubscribe();\n }\n });\n if (this.Component && this.Component.MetaTags) {\n this.ActiveMetaTags.forEach((tag) => {\n this.meta.removeTag(tag);\n });\n }\n }\n\n checkPermission() {\n if (this.Destroyed) {\n this.ErrorPage = false;\n this.PermissionPage = false;\n this.ShowContent = false;\n PermissionHelper.EditPermission.next(false);\n } else if (this.NavigationNode) {\n const naviperm = PermissionHelper.ActiveNavigationPermissions.getValue();\n if (naviperm && naviperm[this.NavigationNode._Id] === true) {\n this.ErrorPage = false;\n this.PermissionPage = true;\n this.ShowContent = false;\n PermissionHelper.EditPermission.next(false);\n } else {\n this.ErrorPage = false;\n this.PermissionPage = false;\n this.ShowContent = true;\n PermissionHelper.EditPermission.next(true);\n }\n } else {\n this.ErrorPage = true;\n this.PermissionPage = false;\n this.ShowContent = false;\n PermissionHelper.EditPermission.next(false);\n }\n this.cdRef.detectChanges();\n }\n ActiveMetaTags = null;\n getLayout() {\n this.Component = null;\n this.cdRef.detectChanges();\n this.checkPermission();\n if (this.ShowContent) {\n this.metaService.LoadPage(this.NavigationNode.Url).subscribe((result) => {\n this.updateLayout(result);\n });\n }\n }\n\n //#region ILayoutChangeClient\n //checkForChangedLayout() {\n // return new Promise(resolve => {\n // if (this.NavigationNode) {\n // CacheService.ContainsLayout(this.NavigationNode.Url).then(contains => {\n // if (contains) {\n // resolve();\n // } else {\n // NotificationHelper.Info('@@RefreshPage', '@@RefreshPageHeader');\n // CacheService.ReadLayout(this.NavigationNode.Url).then(layout => {\n // this.updateLayout(layout);\n // resolve();\n // });\n // }\n // });\n // } else {\n // resolve();\n // }\n // });\n //}\n\n updateLayout(layoutElement) {\n this.setLayoutElement(layoutElement).then(() => {\n PermissionHelper.GetContentPermissions(this.LayoutElement._key).then(() => {\n this.Component = LayoutHelper.GetActiveResolution(this.LayoutElement);\n if (this.Component && this.Component.DisableNavigation) {\n LayoutService.PreventBrowserClose.next(true);\n }\n if (this.Component.MetaTags) {\n let list = [];\n this.Component.MetaTags.forEach((tag) => {\n let item = { name: tag.Key, content: tag.Value };\n this.meta.updateTag(item);\n list.push(item);\n });\n this.ActiveMetaTags = list;\n }\n this.LayoutElement.Editable = false;\n this.LayoutElement.SetViewType(ViewType.View);\n LayoutService.SelectedItem.next(this.LayoutElement);\n LayoutService.SelectedLayout.next(this.LayoutElement);\n this.ShowContent = true;\n PermissionHelper.EditPermission.next(true);\n this.cdRef.detectChanges();\n });\n });\n }\n\n private setLayoutElement(result) {\n return new Promise(resolve => {\n if (result) {\n this.LayoutElement = plainToClass(Layout, result);\n let layout = LayoutHelper.GetActiveResolution(this.LayoutElement);\n switch (this.LayoutElement.ContentType) {\n case ContentType.Grid: layout.ElementType = 'grid'; break;\n case ContentType.Flex: layout.ElementType = 'flex'; break;\n case ContentType.Raster: layout.ElementType = 'raster'; break;\n case ContentType.Canvas: layout.ElementType = 'canvas'; break;\n }\n VariableHelper.LoadVariables(layout).then(() => {\n GlobalEventHelper.InitGlobalEvents(layout);\n resolve(null);\n });\n } else {\n this.LayoutElement = new Layout();\n this.LayoutElement.ElementType = 'grid';\n resolve(null);\n }\n });\n }\n\n detectChanges() {\n this.cdRef.detectChanges();\n }\n\n refreshAndQuit() {\n if (LayoutService.ViewType.getValue() === ViewType.Edit) {\n LayoutService.ViewType.next(ViewType.View);\n }\n if (this.Component && this.Component.MetaTags) {\n this.ActiveMetaTags.forEach((tag) => {\n this.meta.removeTag(\"name='\" + tag.name + \"'\");\n });\n }\n this.Component = null;\n LayoutService.PreventBrowserClose.next(false);\n this.LayoutElement = null;\n this.NavigationNode = null;\n this.ActualPageEditClient = null;\n LayoutEditService.CloseAll().then(() => {\n const navStruct = SideNavService.SelectedNavigationStructure.getValue();\n if (navStruct) {\n const url = this.Url;\n if (url) {\n if (SideNavService.IsSystemURL(url)) {\n this.getLayout();\n } else {\n CacheService.ReadNavigation(navStruct).then(navList => {\n if (navList) {\n const toLower = url.toLowerCase();\n this.NavigationNode = navList.find(ni => ni.Url && ni.Url.toLowerCase() === toLower);\n if (this.NavigationNode) {\n this.getLayout();\n } else {\n this.metaService.LoadNavigationStructurePropertyByKey(navStruct, 'LandingPage').subscribe(lp => {\n if (typeof lp === 'string' && lp.toLowerCase() === toLower) {\n this.NavigationNode = {\n _Id: 'landingpage',\n Url: lp\n };\n }\n this.getLayout();\n });\n }\n } else {\n this.getLayout();\n }\n });\n }\n } else {\n this.metaService.LoadNavigationStructurePropertyByKey(navStruct, 'LandingPage').subscribe(lp => {\n if (typeof lp === 'string') {\n this.router.navigateByUrl(navStruct + lp);\n } else {\n this.getLayout();\n }\n });\n }\n } else {\n this.getLayout();\n }\n });\n }\n //#endregion\n}\n","import { Component } from '@angular/core';\n@Component({\n selector: 'not-permitted',\n template: ''\n})\n\nexport class PermissionDeniedPage { }\n","import {OnInit, Component, ChangeDetectionStrategy} from '@angular/core';\nimport {NavigationService} from '../../services/navigation.service';\nimport {PermissionHelper} from '../../helpers/permissions.helper';\nimport {GitHelper} from '../../helpers/git.helper';\nimport {LayoutService} from '../../services/layout.service';\nimport {ViewType} from '../../models/enums/viewtype.enum';\n\n@Component({\n selector: 'settings-page',\n templateUrl: './settings.page.html',\n styleUrls: ['./settings.page.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SettingsPage implements OnInit {\n\n Instance;\n NavigationItems;\n SelectedComponent;\n ModelNav;\n RoleNav;\n Style = {\n padding: '10px'\n };\n\n constructor() {\n this.Instance = this;\n this.NavigationItems = SETTINGS_LIST;\n }\n\n ngOnInit(): void {\n NavigationService.SelectedPage.next('settings');\n LayoutService.ViewType.next(ViewType.Edit);\n LayoutService.ViewType.next(ViewType.View);\n PermissionHelper.EditPermission.next(false);\n }\n\n SetComponent(nav, comp) {\n this.SelectedComponent = comp;\n if (nav && typeof nav.UpdateFunction === 'function') {\n nav.UpdateFunction(nav);\n\n }\n }\n\n async CheckComponent() {\n if (this.SelectedComponent) {\n if (typeof this.SelectedComponent.checkHasChanges === 'function') {\n return await this.SelectedComponent.checkHasChanges();\n }\n }\n return true;\n }\n}\n\n\nexport const SETTINGS_LIST: SettingsEntry[] = [\n {\n Caption: '@@Layout',\n ID: 'layout',\n Icon: '_SYSTEM_LAYOUT',\n Index: 1,\n Parent: '',\n Security: {\n Name: 'evidanza.App.Shared.Security.LayoutRight',\n Value: 1\n },\n Children: []\n },\n {\n Caption: '@@Data',\n ID: 'data',\n Icon: '_SYSTEM_DATA',\n Index: 2,\n Parent: '',\n Security: {\n Name: 'evidanza.App.Shared.Security.DataRight',\n Value: 1\n },\n Children: []\n },\n {\n Caption: '@@Benutzerverwaltung',\n ID: 'userCont',\n Icon: '_SYSTEM_USER_MANAGEMENT',\n Index: 3,\n Parent: '',\n Security: {\n Name: 'evidanza.App.Shared.Security.UsermanagementRight',\n Value: 1\n },\n Children: []\n },\n {\n Caption: '@@CorporateIdentity',\n ID: 'ci',\n Icon: '_SYSTEM_CORP_IDENTITY',\n Index: 4,\n Parent: '',\n Security: {\n Name: 'evidanza.App.Shared.Security.CorporateIdentityRight',\n Value: 1\n },\n Children: []\n },\n {\n Caption: '@@Einstellungen',\n ID: 'settings',\n Icon: '_SYSTEM_SETTINGS',\n Index: 5,\n Parent: '',\n Security: {\n Name: 'evidanza.App.Shared.Security.PageSettingsRight',\n Value: 1\n },\n Children: []\n },\n {\n Caption: '@@About',\n ID: 'about',\n Icon: '_SYSTEM_ABOUT',\n Index: 6,\n Parent: '',\n Security: {\n Name: 'evidanza.App.Shared.Security.AboutRight',\n Value: 1\n },\n Children: []\n }\n];\n\nexport interface SettingsEntry {\n Caption: string;\n ID: string;\n Icon: string;\n Index: number;\n Parent: string;\n Security?: SettingsEntrySecurity;\n Content?;\n Children?;\n UpdateFunction?;\n}\n\nexport class SettingsEntrySecurity {\n Name: string;\n Value: number;\n}","import { AExecutionManipulation } from './a.execution.manipulation';\nimport { MultiResult } from '../../../models/datadescription/multi/multiresult.model';\nimport { UUID } from 'angular2-uuid';\nimport { WhereDef, WhereSelects } from '../../../models/datadescription/multi/querydef.model';\nimport { MultiResultHelper } from '../../../helpers/multiresult.helper';\n\nexport class ReloadExecutionManipulation extends AExecutionManipulation {\n\n private static SetTupleDepth(areas, depth) {\n if (areas) {\n areas.forEach(area => {\n if (area && area.Tuples) {\n area.Tuples.splice(depth);\n }\n });\n }\n }\n\n private static FindLevelNode(area, id) {\n let retVal = null;\n if (area && area.Tuples) {\n area.Tuples.some(t => {\n if (t && t.Levels) {\n return t.Levels.some(l => {\n if (l && l.UniqueID === id) {\n retVal = l;\n return true;\n }\n return false;\n });\n }\n return false;\n });\n }\n return retVal;\n }\n\n BeforeSplit() {\n // TODO: Zoom???\n const dd = this.Context.DataDescriptionClone;\n if (dd && dd.YLevelNodes && dd.PowerGrid === true) {\n const loadOnDemandFrom = typeof this.Context.LoadOnDemandFromLevel === 'number' ? this.Context.LoadOnDemandFromLevel : 0;\n const loadOnDemandTo = typeof this.Context.LoadOnDemandToLevel === 'number' ? this.Context.LoadOnDemandToLevel : 0;\n let tupleY;\n if (this.Context.ReloadInfo) {\n tupleY = this.Context.ReloadInfo.ReloadTupleY;\n }\n if (tupleY) {\n const tupleArea = dd.YLevelNodes.Areas.find(area => {\n return area && area.Tuples && area.Tuples.some(t => {\n return t && t.Levels && t.Levels.some(l => l.UniqueID === tupleY.UniqueID);\n });\n });\n if (tupleArea) {\n const tuples = [];\n const nextDepth = tupleY.Depth + 1;\n if (tupleArea.Tuples.length > nextDepth) {\n if (loadOnDemandTo === nextDepth) { // Wenn nachladen bis zu aufgeklappter Ebene definiert ist\n if (loadOnDemandFrom === 0) { // und nachladen ab nicht definiert ist\n for (let i = loadOnDemandTo; i < tupleArea.Tuples.length; i++) { // alle Ebenen ab aufgeklappter Ebene laden\n tuples.push(tupleArea.Tuples[i]);\n }\n dd.PowerGrid = false;\n } else if (loadOnDemandFrom > loadOnDemandTo + 2) { // und nachladen ab größer nachladen bis + 2 definiert ist\n // alle Ebenen ab aufgeklappter Ebene bis eins vor nachladen ab laden\n for (let i = loadOnDemandTo; i < tupleArea.Tuples.length && i < loadOnDemandFrom - 1; i++) {\n tuples.push(tupleArea.Tuples[i]);\n }\n dd.PowerGrid = false;\n } else {\n tuples.push(tupleArea.Tuples[nextDepth]); // sonst nur nächste Ebene laden\n }\n } else if (loadOnDemandTo === 0 && loadOnDemandFrom > tupleY.Depth + 3) {\n // Wenn nachladen bis nicht definiert ist und nachladen ab größer TupelTiefe + 3 definiert ist\n // alle Ebenen ab aufgeklappter Ebene bis eins vor nachladen ab laden\n for (let i = nextDepth; i < tupleArea.Tuples.Count && i < loadOnDemandFrom - 1; i++) {\n tuples.push(tupleArea.Tuples[i]);\n }\n dd.PowerGrid = false;\n } else { // sonst nur nächste Ebene laden\n tuples.push(tupleArea.Tuples[nextDepth]);\n }\n }\n tupleArea.Tuples = tuples;\n dd.YLevelNodes.Areas = [tupleArea];\n } else {\n dd.YLevelNodes.Areas = [];\n }\n } else {\n let tupleDepth = 1;\n // Wenn nachladen bis nicht definiert ist und nachladen ab größer 2 definiert ist\n if (loadOnDemandTo === 0 && loadOnDemandFrom > 2) {\n // alle Tupel bis Ebene vor nachladen ab laden\n tupleDepth = loadOnDemandFrom - 1;\n dd.PowerGrid = false;\n }\n ReloadExecutionManipulation.SetTupleDepth(dd.YLevelNodes.Areas, tupleDepth);\n }\n }\n }\n\n BeforeExecute() {\n if (this.Context.QueryDefinitions && this.Context.DataDescriptionClone &&\n this.Context.DataDescriptionOriginal && this.Context.ReloadInfo) {\n const defs = new Map();\n let tupleY = this.Context.ReloadInfo.ReloadTupleY;\n if (tupleY) {\n const tupleArea = this.Context.DataDescriptionOriginal.YLevelNodes.Areas.find(area => {\n return area && area.Tuples && area.Tuples.some(t => {\n return t && t.Levels && t.Levels.some(l => l.UniqueID === tupleY.UniqueID);\n });\n });\n if (tupleArea) {\n while (tupleY) {\n const ln = ReloadExecutionManipulation.FindLevelNode(tupleArea, tupleY.UniqueID);\n if (ln) {\n let def = defs.get(ln.HierarchieID);\n if (def) {\n let levFixed = def.FixedMemberIds.find(x => x.LevelId === ln.Level);\n if (levFixed) {\n if (levFixed.MemberIds.indexOf(tupleY.MemberId) < 0) {\n levFixed.MemberIds.push(tupleY.MemberId);\n }\n } else {\n levFixed = new WhereSelects();\n levFixed.LevelId = ln.Level;\n levFixed.MemberIds = [tupleY.MemberId];\n def.FixedMemberIds.push(levFixed);\n }\n } else {\n def = new WhereDef();\n def.DimensionId = ln.DimensionID;\n def.HierarchyId = ln.HierarchieID;\n const levFixed = new WhereSelects();\n levFixed.LevelId = ln.Level;\n levFixed.MemberIds = [tupleY.MemberId];\n def.FixedMemberIds = [levFixed];\n defs.set(ln.HierarchieID, def);\n }\n }\n tupleY = tupleY.Parent;\n }\n }\n }\n if (defs.size > 0) {\n // -> gewichten ???\n this.Context.QueryDefinitions.forEach(qd => {\n // Cube-Abhängigkeit???\n defs.forEach((def, key) => {\n const copy = JSON.parse(JSON.stringify(def));\n if (!qd.Where.some((x, i) => {\n if (x.HierarchyId === key) {\n qd.Where.splice(i, 1, copy);\n return true;\n }\n return false;\n })) {\n qd.Where.push(copy);\n }\n });\n });\n }\n }\n }\n\n AfterExecute(result: MultiResult) {\n }\n}\n","import { MultiResult } from '../../../models/datadescription/multi/multiresult.model';\n\nexport abstract class AExecutionManipulation {\n Context;\n\n abstract BeforeSplit();\n abstract BeforeExecute();\n abstract AfterExecute(result: MultiResult);\n\n Clear() {\n this.Context = null;\n }\n}\n","import { Axis } from '../../../models/datadescription/multi/datadescription.model';\nimport { AxisNode, MultiResult } from '../../../models/datadescription/multi/multiresult.model';\nimport { MemberType } from '../../../models/enums/query.enum';\nimport { TranslatedString } from '../../../models/translatedstring.model';\nimport { DataDescriptionHelper } from '../ddhelper.query';\nimport { AExecutionManipulation } from './a.execution.manipulation';\n\nexport class AllElementRenamingManipulation extends AExecutionManipulation {\n\n private static RenameNodes(nodes: AxisNode[], ddAxis: Axis, cache: Map) {\n if (nodes && ddAxis) {\n nodes.forEach(node => {\n if (node.Type === MemberType.All) {\n if (cache.has(node.UniqueID)) {\n node.Caption = cache.get(node.UniqueID);\n } else {\n let caption = node.Caption;\n const levelNode = DataDescriptionHelper.FindLevelNodeByIDInternal(ddAxis, node.UniqueID);\n if (levelNode && levelNode.Caption) {\n caption = TranslatedString.GetTranslation(levelNode.Caption);\n }\n node.Caption = caption;\n cache.set(node.UniqueID, caption);\n }\n }\n AllElementRenamingManipulation.RenameNodes(node.Children, ddAxis, cache);\n });\n }\n }\n\n BeforeSplit() {\n }\n BeforeExecute() {\n }\n AfterExecute(result: MultiResult) {\n if (result && this.Context) {\n const dd = this.Context.DataDescriptionClone;\n if (dd) {\n if (result.XAxis) {\n AllElementRenamingManipulation.RenameNodes(result.XAxis.Nodes, dd.XLevelNodes, new Map());\n }\n if (result.YAxis) {\n AllElementRenamingManipulation.RenameNodes(result.YAxis.Nodes, dd.YLevelNodes, new Map());\n }\n }\n }\n }\n}\n","import { MultiCacheService } from '../../../cache/multi/cache.service';\nimport { DateHelper } from '../../../helpers/date.helper';\nimport { InjectorHelper } from '../../../helpers/injector.helper';\nimport { FilterMultidimensional } from '../../../models/datadescription/multi/filter/filterMultidimensional.model';\nimport { MultiResult } from '../../../models/datadescription/multi/multiresult.model';\nimport { WhereSelects } from '../../../models/datadescription/multi/querydef.model';\nimport { DynamicTimeSettingsService } from '../../../services/dynamictimesettings.service';\nimport { AExecutionManipulation } from './a.execution.manipulation';\n\nexport class DynamicTimeMeasureReferencingManipulation extends AExecutionManipulation {\n async BeforeSplit() {\n if (this.Context && this.Context.DataDescriptionClone && this.Context.DataDescriptionClone.MeasureInfos) {\n let variables = {};\n if (this.Context.Variables) {\n variables = this.Context.Variables;\n }\n for (let i = 0; i < this.Context.DataDescriptionClone.MeasureInfos.length; i++) {\n const measure = this.Context.DataDescriptionClone.MeasureInfos[i];\n // Nur richtige Measures mit Dynamischer-Zeitreferenzierung überprüfen\n if (measure.Details && measure.Details.MeasureDynamicTimeReferencing\n && measure.Details.MeasureDynamicTimeReferencing.LevelID && measure.Measure) {\n const level = await MultiCacheService.GetLevel(measure.Details.MeasureDynamicTimeReferencing.LevelID,\n this.Context.DataDescriptionClone.DataModelID);\n if (level) {\n\n let startDateCalculated: Date;\n let endDateCalculated: Date;\n if (measure.Details.MeasureDynamicTimeReferencing.DynamicStartTime) {\n const query = {\n Start: measure.Details.MeasureDynamicTimeReferencing.DynamicStartTime,\n End: measure.Details.MeasureDynamicTimeReferencing.DynamicEndTime,\n Filter: null\n };\n if (measure.Details.MeasureDynamicTimeReferencing.FilterVariable) {\n const varValue = variables[measure.Details.MeasureDynamicTimeReferencing.FilterVariable];\n if (Array.isArray(varValue) && varValue.length > 0) {\n query.Filter = varValue[0];\n }\n }\n const service = InjectorHelper.InjectorInstance.get(DynamicTimeSettingsService);\n const queryResult = await service.ExecuteTimeQuery(query).toPromise();\n if (queryResult && queryResult.Start && queryResult.End) {\n startDateCalculated = new Date(queryResult.Start);\n endDateCalculated = new Date(queryResult.End);\n }\n } else if (measure.Details.MeasureDynamicTimeReferencing.DynamicEndTime) {\n const query = {\n Start: measure.Details.MeasureDynamicTimeReferencing.DynamicEndTime,\n Filter: null\n };\n if (measure.Details.MeasureDynamicTimeReferencing.FilterVariable) {\n const varValue = variables[measure.Details.MeasureDynamicTimeReferencing.FilterVariable];\n if (Array.isArray(varValue) && varValue.length > 0) {\n query.Filter = varValue[0];\n }\n }\n const service = InjectorHelper.InjectorInstance.get(DynamicTimeSettingsService);\n const queryResult = await service.ExecuteTimeQuery(query).toPromise();\n if (queryResult && queryResult.Start) {\n endDateCalculated = new Date(queryResult.Start);\n }\n }\n if (startDateCalculated || endDateCalculated) {\n measure.Details.ReferencingSelects.some(ref => {\n if (ref.IsDynamicTimeRef) {\n const index = measure.Details.ReferencingSelects.indexOf(ref);\n if (index > -1) {\n measure.Details.ReferencingSelects.splice(index, 1);\n }\n return true;\n }\n return false;\n });\n\n const refSelect = new FilterMultidimensional();\n refSelect.Hierarchy = level.Parent.ID;\n refSelect.Dimension = level.Parent.Parent.ID;\n refSelect['IsDynamicTimeRef'] = true;\n const selectWhere = new WhereSelects();\n selectWhere.LevelId = level.ID;\n if (startDateCalculated) {\n selectWhere.Start = DateHelper.GetSerializeString(startDateCalculated);\n }\n if (endDateCalculated) {\n selectWhere.End = DateHelper.GetSerializeString(endDateCalculated);\n }\n refSelect.Defaults.push(selectWhere);\n measure.Details.ReferencingSelects.push(refSelect);\n }\n }\n }\n }\n }\n }\n\n async BeforeExecute() {\n }\n\n async AfterExecute(result: MultiResult) {\n }\n}\n","import { UUID } from 'angular2-uuid';\nimport { CacheService } from '../../../cache/cache.service';\nimport { MultiCacheService } from '../../../cache/multi/cache.service';\nimport { FilterHelper } from '../../../helpers/filter.helper';\nimport { FormulaNodeCalculator } from '../../../models/calculation/formula.node.calculator';\nimport { MultiResult } from '../../../models/datadescription/multi/multiresult.model';\nimport { WhereDef, WhereSelects } from '../../../models/datadescription/multi/querydef.model';\nimport { AExecutionManipulation } from './a.execution.manipulation';\n\nexport class MasterChildManipulation extends AExecutionManipulation {\n BeforeSplit() {\n }\n async BeforeExecute() {\n if (this.Context && this.Context.BaseReportObject &&\n this.Context.BaseReportObject.LayoutElement && this.Context.QueryDefinitions) {\n const variables = this.Context.BaseReportObject.LayoutElement.MasterChildVariables;\n if (variables) {\n const nameMap = new Map();\n const layout = this.Context.BaseReportObject.Layout;\n const defs = new Map();\n let global;\n for (let i = 0; i < variables.length; i++) {\n const v = variables[i];\n let variable;\n if (v.IsGlobal) {\n if (!global) {\n global = await CacheService.RefreshGlobalVariableValues();\n }\n variable = global.find(x => x.Name === v.Variable);\n } else {\n let mapEntry = nameMap.get(v.ElemName);\n if (!mapEntry) {\n mapEntry = FilterHelper.GetVariableList(v.ElemName, layout);\n nameMap.set(v.ElemName, mapEntry);\n }\n if (mapEntry.ElemFound) {\n variable = mapEntry.Variables.find(x => x.Name === v.VariableName);\n }\n }\n if (variable) {\n const vat = FormulaNodeCalculator.GetVariableValue(variable, false).Value;\n if (Array.isArray(vat)) {\n for (let j = 0; j < vat.length; j++) {\n const ws: WhereSelects = vat[j];\n const level = await MultiCacheService.GetLevel(ws.LevelId, this.Context.DataDescriptionClone.DataModelID);\n let def = defs.get(level.Parent.ID);\n if (def) {\n const levFixed = def.FixedMemberIds.find(x => x.LevelId === ws.LevelId);\n if (levFixed) {\n // TODO: Was wenn Start End???\n ws.MemberIds.forEach(x => {\n if (levFixed.MemberIds.indexOf(x) < 0) {\n levFixed.MemberIds.push(x);\n }\n });\n } else {\n def.FixedMemberIds.push(ws);\n }\n } else {\n def = new WhereDef();\n def.DimensionId = level.Parent.Parent.ID;\n def.HierarchyId = level.Parent.ID;\n def.FixedMemberIds = [ws];\n defs.set(level.Parent.ID, def);\n }\n }\n }\n }\n }\n if (defs.size > 0) {\n // -> gewichten ???\n this.Context.QueryDefinitions.forEach(qd => {\n // Cube-Abhängigkeit???\n defs.forEach((def, key) => {\n const copy = JSON.parse(JSON.stringify(def));\n if (!qd.Where.some((x, i) => {\n if (x.HierarchyId === key) {\n qd.Where.splice(i, 1, copy);\n return true;\n }\n return false;\n })) {\n qd.Where.push(copy);\n }\n });\n });\n }\n }\n }\n }\n AfterExecute(result: MultiResult) {\n }\n}\n","import { DataDescription } from '../../../models/datadescription/multi/datadescription.model';\nimport { MultiResult } from '../../../models/datadescription/multi/multiresult.model';\nimport { VisibilityType } from '../../../models/enums/oc.enum';\nimport { PageStatus } from '../../../models/page.status';\nimport { AExecutionManipulation } from './a.execution.manipulation';\n\nexport class ViewManipulation extends AExecutionManipulation {\n async BeforeSplit() {\n if (this.Context && this.Context.BaseReportObject && this.Context.BaseReportObject.LayoutElement) {\n const query = this.Context.BaseReportObject.LayoutElement.Query;\n if (query) {\n const state = PageStatus.ActualState.getValue();\n if (state && state.ViewInfos) {\n const vi = state.ViewInfos.find(x => x.QueryID === query);\n if (vi && vi.Entries) {\n const dd: DataDescription = this.Context.DataDescriptionClone;\n if (dd) {\n const levelMap = new Map();\n const measures = [];\n [dd.XLevelNodes, dd.YLevelNodes].forEach(axis => {\n axis.Areas.forEach(area => {\n area.Tuples.forEach(t => {\n t.Levels.forEach(l => {\n levelMap.set(l.UniqueID, VisibilityType.None);\n });\n });\n area.Measures.forEach(m => {\n measures.push(m);\n });\n });\n });\n vi.Entries.forEach(entry => {\n if (entry.Settings && entry.Settings.length > 0) {\n if (entry.ObjectIDs && entry.ObjectIDs.length > 0 &&\n !entry.ObjectIDs.some(x => x === this.Context.BaseReportObject.LayoutElement.ID)) {\n return;\n }\n entry.Settings.forEach(setting => {\n if (setting.VisibleState !== VisibilityType.None) {\n if (levelMap.has(setting.ElementID)) {\n const val = levelMap.get(setting.ElementID);\n if (val !== VisibilityType.NonVisibleForce && val !== VisibilityType.VisibleForce) {\n levelMap.set(setting.ElementID, setting.VisibleState);\n }\n } else {\n const measure = measures.find(x => x.UniqueID === setting.ElementID);\n if (measure && measure.VisibilityType !== VisibilityType.NonVisibleForce &&\n measure.VisibilityType !== VisibilityType.VisibleForce) {\n measure.VisibilityType = setting.VisibleState;\n }\n }\n }\n });\n }\n });\n const hiddenLevels = [];\n [dd.XLevelNodes, dd.YLevelNodes].forEach(axis => {\n axis.Areas.forEach(area => {\n for (let i = area.Tuples.length - 1; i >= 0; i--) {\n const t = area.Tuples[i];\n for (let j = t.Levels.length - 1; j >= 0; j--) {\n const id = t.Levels[j].UniqueID;\n const v = levelMap.get(id);\n if (v === VisibilityType.NonVisibleDefault || v === VisibilityType.NonVisibleForce) {\n t.Levels.splice(j, 1);\n hiddenLevels.push(id);\n }\n }\n if (t.Levels.length === 0) {\n area.Tuples.splice(i, 1);\n }\n }\n });\n });\n this.Context.HiddenLevels = hiddenLevels;\n }\n }\n }\n }\n }\n }\n async BeforeExecute() {\n }\n async AfterExecute(result: MultiResult) {\n }\n}\n","import { UUID } from 'angular2-uuid';\nimport { MultiCacheService } from '../../cache/multi/cache.service';\nimport { Axis, DataDescription, DynamicElement, HeterogenArea } from '../../models/datadescription/multi/datadescription.model';\nimport { LevelNode } from '../../models/datadescription/multi/levelnode.model';\nimport { MeasureInfo } from '../../models/datadescription/multi/measureinfo.model';\nimport { AxisType } from '../../models/enums/query.enum';\nimport { SpecialElementType } from '../../models/enums/specialElementType';\nimport { TranslatedString } from '../../models/translatedstring.model';\n\nexport class DataDescriptionHelper {\n\n static GetAllNodes(axis: Axis): LevelNode[] {\n const result = [];\n axis.Areas.forEach(a => {\n result.push(...DataDescriptionHelper.GetLevels(a));\n });\n return result;\n }\n\n static FindNodeById(axis: Axis, uniqueid: number): LevelNode {\n let levelnode = null;\n axis.Areas.some(a => {\n return a.Tuples.some(t => {\n return t.Levels.some(l => {\n if (l.UniqueID === uniqueid) {\n levelnode = l;\n return true;\n }\n return false;\n });\n });\n });\n return levelnode;\n }\n\n static GetLevels(value: HeterogenArea): LevelNode[] {\n const result = [];\n value.Tuples.forEach(t => {\n result.push(...t.Levels);\n });\n return result;\n }\n\n static GetValidDynamicRowElements(dd: DataDescription): DynamicElement[] {\n const elements = [];\n if (dd.DynamicRowElements.length > 0) {\n elements.push(...dd.DynamicRowElements.filter(x => x.Active && x.Parent != null && x.Formula != null));\n }\n return elements;\n }\n\n static GetMeasureAxis(dd: DataDescription): Axis {\n if (dd.YLevelNodes.Areas.some(a => a.Measures && a.Measures.length > 0)) {\n return dd.YLevelNodes;\n } else {\n return dd.XLevelNodes;\n }\n }\n\n static HasLevelsOnAxis(dd: DataDescription, axistype: AxisType): boolean {\n if (axistype === AxisType.X_Axis) {\n return dd.XLevelNodes.Areas.some(a => a.Tuples && a.Tuples.some(t => t.Levels && t.Levels.length > 0));\n } else {\n return dd.YLevelNodes.Areas.some(a => a.Tuples && a.Tuples.some(t => t.Levels && t.Levels.length > 0));\n }\n }\n\n static GetAllAreas(dd: DataDescription): HeterogenArea[] {\n const areas = [];\n areas.push(...dd.XLevelNodes.Areas);\n areas.push(...dd.YLevelNodes.Areas);\n return areas;\n }\n\n static GetAllMeasureInfos(dd: DataDescription, axis?: AxisType): MeasureInfo[] {\n const measureinfos = [];\n if (axis == null) {\n dd.XLevelNodes.Areas.forEach(a => {\n measureinfos.push(...a.Measures);\n });\n if (measureinfos.length === 0) {\n dd.YLevelNodes.Areas.forEach(a => {\n measureinfos.push(...a.Measures);\n });\n }\n } else if (axis === AxisType.X_Axis) {\n dd.XLevelNodes.Areas.forEach(a => {\n measureinfos.push(...a.Measures);\n });\n } else {\n dd.YLevelNodes.Areas.forEach(a => {\n measureinfos.push(...a.Measures);\n });\n }\n return measureinfos;\n }\n\n static GetAllLevelNodesFlat(dd: DataDescription, axis?: AxisType): LevelNode[] {\n const levelnodes = [];\n if (axis == null) {\n levelnodes.push(...DataDescriptionHelper.GetAllNodes(dd.XLevelNodes));\n levelnodes.push(...DataDescriptionHelper.GetAllNodes(dd.YLevelNodes));\n } else if (axis === AxisType.X_Axis) {\n levelnodes.push(...DataDescriptionHelper.GetAllNodes(dd.XLevelNodes));\n } else if(axis === AxisType.Y_Axis) {\n levelnodes.push(...DataDescriptionHelper.GetAllNodes(dd.YLevelNodes));\n }\n return levelnodes;\n }\n\n static GetNodeFromUniqueID(dd: DataDescription, uniqueid: number): LevelNode {\n let levelNode = DataDescriptionHelper.FindNodeById(dd.XLevelNodes, uniqueid);\n if (levelNode == null) {\n levelNode = DataDescriptionHelper.FindNodeById(dd.YLevelNodes, uniqueid);\n }\n return levelNode;\n }\n\n static GetNextUniqueID(dd: DataDescription): number {\n return DataDescriptionHelper.GetMaxUniqueID(dd) + 1;\n }\n\n static GetMaxUniqueID(dd: DataDescription): number {\n let result = -1;\n result = DataDescriptionHelper.GetMax(dd.XLevelNodes, result);\n result = DataDescriptionHelper.GetMax(dd.YLevelNodes, result);\n return result;\n }\n\n private static GetMax(axis: Axis, result: number): number {\n axis.Areas.forEach(area => {\n result = Math.max(result, area.UniqueID);\n DataDescriptionHelper.GetLevels(area).forEach(level => {\n result = Math.max(result, level.UniqueID);\n });\n area.Measures.forEach(measure => {\n result = Math.max(result, measure.UniqueID);\n });\n });\n return result;\n }\n\n static FindAxisByAreaID(dd: DataDescription, id: number): Axis {\n let axis = this.FindAxisOrAreaByAreaIDInternal(dd.XLevelNodes, id, true);\n if (axis == null) {\n axis = this.FindAxisOrAreaByAreaIDInternal(dd.YLevelNodes, id, true);\n }\n return axis;\n }\n private static FindAxisOrAreaByAreaIDInternal(axis: Axis, id: number, findaxis: boolean): any {\n let result = null;\n axis.Areas.some(area => {\n if (area.UniqueID === id) {\n if (findaxis) {\n result = axis;\n } else {\n result = area;\n }\n return true;\n }\n return false;\n });\n return result;\n }\n\n static FindAreaByID(dd: DataDescription, id: number): HeterogenArea {\n let area = this.FindAxisOrAreaByAreaIDInternal(dd.XLevelNodes, id, false);\n if (area == null) {\n area = this.FindAxisOrAreaByAreaIDInternal(dd.YLevelNodes, id, false);\n }\n return area;\n }\n\n static async ReplaceLevelNodeByID(dd: DataDescription, id: number, replaceID?: UUID): Promise {\n let levelnode = DataDescriptionHelper.FindLevelNodeByID(dd, id);\n if (levelnode && replaceID) {\n await MultiCacheService.GetLevel(replaceID, dd.DataModelID).then(levelDB => {\n if (levelDB) {\n levelnode.Level = replaceID;\n levelnode.HierarchieID = levelDB.Parent.ID; \n levelnode.DimensionID = levelDB.Parent.Parent.ID;\n levelnode.Caption = new TranslatedString(levelDB.Caption);\n }\n });\n }\n return levelnode;\n }\n static FindLevelNodeByID(dd: DataDescription, id: number, remove?: boolean): LevelNode {\n let levelnode = this.FindLevelNodeByIDInternal(dd.XLevelNodes, id, remove);\n if (levelnode == null) {\n levelnode = this.FindLevelNodeByIDInternal(dd.YLevelNodes, id, remove);\n }\n return levelnode;\n \n }\n\n static FindLevelNodeByIDInternal(axis: Axis, id: number, remove?: boolean): LevelNode {\n let levelnode = null;\n axis.Areas.some(area => {\n return area.Tuples.some(tuple => {\n return tuple.Levels.some((l, i) => {\n if (l.UniqueID === id) {\n levelnode = l;\n if (remove === true) {\n tuple.Levels.splice(i, 1);\n }\n return true;\n }\n return false;\n });\n });\n });\n return levelnode;\n }\n\n static async ReplaceMeasureByID(dd: DataDescription, id: number, replaceID?: UUID): Promise {\n let measureInfo = DataDescriptionHelper.FindMeasureByID(dd, id);\n if (measureInfo && replaceID) {\n await MultiCacheService.GetMeasure(replaceID, dd.DataModelID).then(mDB => {\n if (mDB) {\n measureInfo.Measure = mDB.ID;\n measureInfo.Caption = new TranslatedString(mDB.Caption);\n measureInfo.Cube = mDB.Cube.ID;\n measureInfo.SpecialElementType = SpecialElementType.None;\n\n //const newM = new MeasureInfo();\n //measureInfo.QueryAttribute = false;\n //measureInfo.Attribute = newM.Attribute;\n //measureInfo.AttributeHierarchy = newM.Attribute;\n //measureInfo.Details = new MeasureInfoDetails();\n //Variable = '';\n }\n });\n }\n return measureInfo;\n }\n\n static FindMeasureByID(dd: DataDescription, id: number, remove?: boolean): MeasureInfo {\n \n\n let measureinfo = this.FindMeasureByIDInternal(dd.XLevelNodes, id, remove);\n if (measureinfo == null) {\n measureinfo = this.FindMeasureByIDInternal(dd.YLevelNodes, id, remove);\n }\n return measureinfo;\n }\n\n private static FindMeasureByIDInternal(axis: Axis, id: number, remove?: boolean): MeasureInfo {\n let measureinfo = null;\n axis.Areas.some(area => {\n return area.Measures.some((m, i) => {\n if (m.UniqueID === id) {\n measureinfo = m;\n if (remove) {\n area.Measures.splice(i, 1);\n }\n return true;\n }\n return false;\n });\n });\n return measureinfo;\n }\n\n static FindAreaByMeasureID(dd: DataDescription, id: number): HeterogenArea {\n let area = dd.XLevelNodes.Areas.find(area => area.Measures && area.Measures.some(m => m.UniqueID === id));\n if (area == null) {\n area = dd.YLevelNodes.Areas.find(area => area.Measures && area.Measures.some(m => m.UniqueID === id));\n }\n return area;\n }\n\n static FindAreaByLevelID(dd: DataDescription, id: number): HeterogenArea {\n let area =\n dd.XLevelNodes.Areas.find(area => area.Tuples && area.Tuples.some(t => t.Levels && t.Levels.some(l => l.UniqueID === id)));\n if (area == null) {\n area =\n dd.YLevelNodes.Areas.find(area => area.Tuples && area.Tuples.some(t => t.Levels && t.Levels.some(l => l.UniqueID === id)));\n }\n return area;\n }\n\n\n}\n","import { FilterHelper } from '../../helpers/filter.helper';\nimport { InjectorHelper } from '../../helpers/injector.helper';\nimport { NotificationHelper } from '../../helpers/notification.helper';\nimport { TaskRegistry } from '../../helpers/task.registry';\nimport { FormulaNodeCalculator } from '../../models/calculation/formula.node.calculator';\nimport { DataDescription } from '../../models/datadescription/multi/datadescription.model';\nimport { AxisNode, MultiResult } from '../../models/datadescription/multi/multiresult.model';\nimport { QueryDef } from '../../models/datadescription/multi/querydef.model';\nimport { AxisType } from '../../models/enums/query.enum';\nimport { PageStatus } from '../../models/page.status';\nimport { ITaskExecuter } from '../../models/tasks/atask.model';\nimport { StandardRequestBase } from '../../services/request-base';\nimport { DataDescriptionHelper } from './ddhelper.query';\nimport { AExecutionManipulation } from './Manipulations/a.execution.manipulation';\nimport { AllElementRenamingManipulation } from './Manipulations/all.element.renaming.manipulation';\nimport { DynamicTimeMeasureReferencingManipulation } from './Manipulations/dynamic.time.measure.referencing.manipulation';\nimport { MasterChildManipulation } from './Manipulations/master.child.manipulation';\nimport { ReloadExecutionManipulation } from './Manipulations/ReloadExecutionManipulation';\nimport { ViewManipulation } from './Manipulations/view.manipulation';\nimport { Merger } from './merger.query';\nimport { QueryHelper } from './queryhelper.query';\n\nexport class QueryExecuter {\n\n Manipulations: AExecutionManipulation[] = [\n new ViewManipulation(),\n new DynamicTimeMeasureReferencingManipulation(),\n new MasterChildManipulation(),\n new AllElementRenamingManipulation(),\n new ReloadExecutionManipulation()\n ];\n\n constructor(private dataDescription: DataDescription, private queryID) {\n }\n\n /// \n /// Executes the query and returns the resulting flat matrix.\n /// \n /// The execution context for the query.\n /// The flat matrix that was created out of the query.\n async execute(context, executeTasks: boolean): Promise {\n // let matrix: FlatMatrix = null;\n\n // if (!MultiCacheService.GetIsInitialized(this.DataDescription.DataModell)) {\n // await MultiCacheService.RefreshMultiCache(this.DataDescription.DataModell);\n // }\n context.Variables = {};\n const reportObject = context.BaseReportObject;\n\n if (reportObject) {\n if (reportObject.CheckForEmptyHeterogenAreas) {\n for (let i = 0; i < this.dataDescription.LevelNodes.length; i++) {\n const ln = this.dataDescription.LevelNodes[i];\n let hasNoLevelArea = false;\n let hasLevelArea = false;\n if (ln.Areas.some(a => {\n const lc = a.LevelCount;\n if (lc === 0) {\n hasNoLevelArea = true;\n } else {\n hasLevelArea = true;\n }\n return hasNoLevelArea && hasLevelArea;\n })) {\n const warn = '@@Es koennen keine heterogenen Bereiche mit und ohne Levels auf einer Achse gemischt werden.';\n NotificationHelper.Warn(warn, '@@Achtung');\n break;\n }\n }\n }\n if (reportObject.LayoutElement) {\n const variableList = FilterHelper.GetVariables(reportObject.LayoutElement);\n variableList.forEach(x => {\n const vat = FormulaNodeCalculator.GetVariableValue(x, false).Value;\n if (typeof vat !== 'undefined' && vat !== null) {\n context.Variables[x.Name] = vat;\n }\n });\n }\n }\n\n if (await QueryHelper.CheckFlatLevelCount(this.dataDescription)) {\n NotificationHelper.Warn('Mindestens eines der verbundenen Level ist nicht in allen verwendeten Cubes vorhanden. Dies kann zu doppelten oder fehlenden Zeilen/Spalten fuehren.', 'Achtung');\n }\n\n const ddclone = this.dataDescription.clone();\n ddclone.PowerGridDepth = this.dataDescription.PowerGridDepth;\n\n // #warning EffectiveUserName muss noch gesetzt werden\n // ddclone.EffectiveUserName = ???\n // INetSession session = BIS.Base.Session.Context.State.GetValue();\n // if (ddclone.EffectiveUserName == null && session.EffictiveUsername != null) {\n // ddclone.EffectiveUserName = session.EffictiveUsername;\n // }\n\n context.DataDescriptionOriginal = this.dataDescription;\n context.DataDescriptionClone = ddclone;\n\n for (let i = 0; i < this.Manipulations.length; i++) {\n this.Manipulations[i].Context = context;\n await this.Manipulations[i].BeforeSplit();\n }\n\n //const start1 = new Date().getTime();\n const definitions: QueryDef[] = [];\n if (ddclone.XLevelNodes.HasAreas) {\n for (let i = 0; i < ddclone.XLevelNodes.Areas.length; i++) {\n if (ddclone.YLevelNodes.HasAreas) {\n for (let j = 0; j < ddclone.YLevelNodes.Areas.length; j++) {\n const defs = await QueryHelper.GetQueryDef(ddclone, ddclone.XLevelNodes.Areas[i], ddclone.YLevelNodes.Areas[j]);\n definitions.push(...defs);\n }\n } else {\n const defs = await QueryHelper.GetQueryDef(ddclone, ddclone.XLevelNodes.Areas[i], null);\n definitions.push(...defs);\n }\n }\n } else if (ddclone.YLevelNodes.HasAreas) {\n for (let k = 0; k < ddclone.YLevelNodes.Areas.length; k++) {\n const defs = await QueryHelper.GetQueryDef(ddclone, null, ddclone.YLevelNodes.Areas[k]);\n definitions.push(...defs);\n }\n }\n //const end1 = new Date().getTime();\n //console.log('b: ' + (end1 - start1));\n // Prüfen, ob es auf X oder Y eine Description mit kompletter Achse in einem heterogenen Bereich gibt\n // und diese nach vorne stellen um Merger - Reihenfolge positiv zu beeinflussen\n let yfullDescription;\n let xfullDescription;\n\n definitions.forEach(d => {\n d.Variables = Object.assign({}, context.Variables);\n const xAxisDef = d.Axis.find(x => x.Type === AxisType.X_Axis);\n const yAxisDef = d.Axis.find(x => x.Type === AxisType.Y_Axis);\n if (!yfullDescription && yAxisDef) {\n const lc = ddclone.YLevelNodes.Areas.find(x => x.UniqueID === d.HeterogenPosition.get(AxisType.Y_Axis)).LevelCount;\n if (yAxisDef.Levels.length === lc) {\n yfullDescription = d;\n }\n }\n if (!xfullDescription && xAxisDef) {\n const lc = ddclone.XLevelNodes.Areas.find(x => x.UniqueID === d.HeterogenPosition.get(AxisType.X_Axis)).LevelCount;\n if (xAxisDef.Levels.length === lc) {\n xfullDescription = d;\n }\n }\n });\n\n if (xfullDescription) {\n definitions.splice(definitions.indexOf(xfullDescription), 1);\n definitions.unshift(xfullDescription);\n }\n\n if (yfullDescription) {\n definitions.splice(definitions.indexOf(yfullDescription), 1);\n definitions.unshift(yfullDescription);\n }\n\n context.QueryDefinitions = definitions;\n\n for (let i = 0; i < this.Manipulations.length; i++) {\n await this.Manipulations[i].BeforeExecute();\n }\n\n const results: Promise[] = [];\n const service = InjectorHelper.InjectorInstance.get(StandardRequestBase);\n for (let i = 0; i < definitions.length; i++) {\n\n results.push(this.ExecuteQuery(definitions[i], service));\n }\n\n //let start = new Date().getTime();\n\n await Promise.all(results)\n .then(res => res.forEach(mr => {\n const definition = definitions.find(d => d.ID === mr.ID);\n if (definition) {\n let count = 0;\n if (mr.XAxis.Nodes.length > 0) {\n count++;\n }\n if (mr.YAxis.Nodes.length > 0) {\n count++;\n }\n if (mr.Measures.Nodes.length > 0) {\n count++;\n }\n if (count === 0) {\n return;\n }\n if (count === 1) {\n if (mr.Cells.length === 0) {\n return;\n }\n if (mr.Cells.length === 1) {\n const first = mr.Cells[0];\n if (first.length === 0) {\n return;\n }\n if (first.length === 1) {\n const sec = first[0];\n if (sec.every(x => x == null)) {\n return;\n }\n }\n }\n }\n\n\n definition.MultiResult = mr;\n definition.MultiResult.XAxis.Nodes.forEach(x => {\n this.SetAxisNodeParents(x);\n });\n definition.MultiResult.YAxis.Nodes.forEach(y => {\n this.SetAxisNodeParents(y);\n });\n definition.MultiResult.Measures.Nodes.forEach(m => {\n this.SetAxisNodeParents(m);\n });\n }\n }))\n .catch(reason => console.log(reason));\n //let end = new Date().getTime();\n //console.log('Network: ' + (end - start));\n //start = new Date().getTime();\n const mergeResult = Merger.Merge(ddclone, definitions);\n //end = new Date().getTime();\n //console.log('Merger: ' + (end - start));\n\n for (let i = 0; i < this.Manipulations.length; i++) {\n await this.Manipulations[i].AfterExecute(mergeResult);\n this.Manipulations[i].Clear();\n }\n\n if (executeTasks) {\n //start = new Date().getTime();\n await this.ExecuteTasks(context, mergeResult);\n //end = new Date().getTime();\n //console.log('Tasks: ' + (end - start));\n }\n\n return mergeResult;\n // if (!mr || QueryHelper.IsEmptyMultiResult(mr)) {\n // matrix = new FlatMatrix();\n // matrix.IsEmpty = true;\n // matrix.IsEmptyQuery = true;\n // } else {\n // // #warning Manipulations -> BeforeFlat();\n\n // let axis = [...mr.Measures.Nodes];\n // mr.Measures.Nodes = [];\n // ddclone.MeasureInfos.forEach(mi => {\n // const axisnode = axis.find(x => x.UniqueID == mi.UniqueID);\n // if (axisnode) {\n // mr.Measures.Nodes.push(axisnode);\n // }\n // });\n\n // matrix = await FlatConverter.Convert(mr, ddclone);\n // matrix.IsEmptyQuery = matrix.Cells.length == 0;\n\n // // #warning MaxColumnCount muss noch geladen werden (Config aus dem Backstage)\n // if (this.CalcColumnCount(mr, ddclone) > 2000) {\n // throw new Error('Die Abfrage erzeugte zu viele Elemente auf der X-Achse.\n // Bitte schränken Sie die Abfrage entsprechend ein.');\n // }\n // }\n }\n\n /// \n /// Executes the default, data and format tasks on the specified flat matrix.\n /// \n private async ExecuteTasks(context: any, matrix: MultiResult) {\n\n // First all default tasks need to run\n // This does not include format tasks usually\n // TODO: DefaultTasks\n if (context.BaseReportObject && context.BaseReportObject.LayoutElement) {\n // Task aktive/inaktiv Status holen \n // Kann durch WF verändert worden sein\n const pageState = PageStatus.ActualState.getValue();\n \n for (let i = 0; i < context.DataDescriptionClone.Tasks.length; i++) {\n await this.ExecuteTask(context.DataDescriptionClone.Tasks[i], context, matrix, context.BaseReportObject.LayoutElement.ID);\n }\n\n if (context.BaseReportObject.LayoutElement.DataTasks) {\n for (let i = 0; i < context.BaseReportObject.LayoutElement.DataTasks.length; i++) {\n const task = context.BaseReportObject.LayoutElement.DataTasks[i];\n if (task && task.QueryID === this.queryID) {\n await this.ExecuteTask(task, context, matrix, context.BaseReportObject.LayoutElement.ID);\n }\n }\n }\n }\n }\n\n private async ExecuteTask(settings, context: any, matrix: MultiResult, objectID) {\n if (settings && settings.TaskType && PageStatus.GetTaskActiveStatus(settings, objectID)) {\n const desc = TaskRegistry.get(settings.TaskType);\n if (desc && desc.Executer) {\n const executer: ITaskExecuter = new desc.Executer();\n await executer.Init(settings, matrix, context.DataDescriptionClone, context);\n // TODO: IsValid\n await executer.Execute();\n }\n }\n }\n\n CalcColumnCount(matrix: MultiResult, ddclone: DataDescription): number {\n const columncountmodel = { columncount: 0 };\n this.CalcColumnCountInternal(matrix.XAxis.Nodes, columncountmodel);\n const visibleMeasures = DataDescriptionHelper.GetAllMeasureInfos(ddclone, ddclone.ShowMeasureOnAxis).filter(x => x.IsVisible);\n if (visibleMeasures && visibleMeasures.length > 0) {\n columncountmodel.columncount = columncountmodel.columncount * visibleMeasures.length;\n }\n return columncountmodel.columncount;\n }\n CalcColumnCountInternal(children: AxisNode[], countModel: { columncount: number; }) {\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.Children.length === 0) {\n countModel.columncount++;\n } else {\n this.CalcColumnCountInternal(node.Children, countModel);\n }\n }\n }\n SetAxisNodeParents(parent: AxisNode) {\n parent.Children.forEach(child => {\n child.Parent = parent;\n this.SetAxisNodeParents(child);\n });\n }\n\n private async ExecuteQuery(def: QueryDef, service: StandardRequestBase): Promise {\n return service.executePost(def, 'api/queryengine/multi', 'ExecuteQuery', 'dataModelId=' + def.DataModell).toPromise();\n }\n}\n","import { DataDescription, HeterogenArea } from '../../models/datadescription/multi/datadescription.model';\nimport { LevelNode } from '../../models/datadescription/multi/levelnode.model';\nimport { Axis, AxisNode, DummyInfo, MultiNode, MultiResult } from '../../models/datadescription/multi/multiresult.model';\nimport { QueryDef } from '../../models/datadescription/multi/querydef.model';\nimport { AxisType, MemberType } from '../../models/enums/query.enum';\nimport { DataDescriptionHelper } from './ddhelper.query';\nimport { QueryHelper } from './queryhelper.query';\n\nexport class Merger {\n static Merge(dd: DataDescription, results: QueryDef[]): MultiResult {\n let retVal: MultiResult;\n\n if (results.length > 0) {\n if (results.length === 1) {\n retVal = results[0].MultiResult;\n } else {\n const resultmerge1: QueryDef[] = [];\n const measuremergelist = Merger.GetMeasureMergeList(results);\n for (let i = 0; i < measuremergelist.length; i++) {\n const item = measuremergelist[i];\n if (item.length > 1) {\n resultmerge1.push(Merger.Merge4D(item, dd));\n } else {\n resultmerge1.push(item[0]);\n }\n }\n\n if (resultmerge1.length > 0) {\n if (resultmerge1.length === 1) {\n retVal = resultmerge1[0].MultiResult;\n } else {\n // MergePositions f�r zweiten Merge clearen und neu setzen lassen\n resultmerge1.forEach(rm => {\n rm.MultiResult.Measures.Nodes.forEach(m => Merger.ResetMergePositions(m));\n rm.MultiResult.XAxis.Nodes.forEach(m => Merger.ResetMergePositions(m));\n rm.MultiResult.YAxis.Nodes.forEach(m => Merger.ResetMergePositions(m));\n });\n\n retVal = Merger.Merge3D(resultmerge1, dd);\n }\n }\n }\n }\n\n if (retVal) {\n if (!QueryHelper.IsEmptyMultiResult(retVal)) {\n\n if (retVal.XAxis.Nodes.length === 0) {\n let areaID = 0;\n if (dd.XLevelNodes && dd.XLevelNodes.Areas && dd.XLevelNodes.Areas.length > 0) {\n areaID = dd.XLevelNodes.Areas[0].UniqueID;\n }\n Merger.AddDummyNode(retVal.XAxis, [0], 0, areaID);\n }\n Merger.SetLastChild(retVal.XAxis.Nodes);\n if (retVal.YAxis.Nodes.length === 0) {\n let areaID = 0;\n if (dd.YLevelNodes && dd.YLevelNodes.Areas && dd.YLevelNodes.Areas.length > 0) {\n areaID = dd.XLevelNodes.Areas[0].UniqueID;\n }\n Merger.AddDummyNode(retVal.YAxis, [0], 0, areaID);\n }\n Merger.SetLastChild(retVal.YAxis.Nodes);\n const measureaxis = DataDescriptionHelper.GetMeasureAxis(dd);\n let index = 0;\n measureaxis.Areas.forEach(a => {\n a.Measures.forEach(mi => {\n if (!retVal.Measures.Nodes.some(x => x.UniqueID === mi.UniqueID)) {\n let an = new AxisNode({\n UniqueID: mi.UniqueID,\n Position: retVal.Measures.ElementCount++,\n Axis: AxisType.Measure,\n Depth: 0,\n Caption: mi.ToStringWithNewLine(),\n Key: mi.Key,\n Measure: true,\n Type: MemberType.Measure\n });\n retVal.Measures.Nodes.splice(index, 0, an);\n }\n index++;\n });\n });\n }\n }\n return retVal;\n }\n\n private static ResetMergePositions(node: AxisNode) {\n if (node) {\n if (node.MergePositions) {\n node.MergePositions.clear();\n }\n if (node.Children) {\n node.Children.forEach(child => Merger.ResetMergePositions(child));\n }\n }\n }\n\n private static SetLastChild(nodes: AxisNode[]) {\n if (nodes && nodes.length > 0) {\n nodes.forEach(n => {\n n.IsLastChild = false;\n Merger.SetLastChild(n.Children);\n });\n nodes[nodes.length - 1].IsLastChild = true;\n }\n }\n\n private static Merge3D(results: QueryDef[], dd: DataDescription): MultiResult {\n\n let multiResult = new MultiResult();\n\n for (var i = 0; i < results.length; i++) {\n results[i].Index = i;\n }\n\n //X_Axis\n multiResult.XAxis = Merger.MergeAxis3D(results, AxisType.X_Axis, dd.XLevelNodes, dd.PowerGrid);\n //Y_Axis\n multiResult.YAxis = Merger.MergeAxis3D(results, AxisType.Y_Axis, dd.YLevelNodes, dd.PowerGrid);\n\n //Measure_Axis\n multiResult.Measures = Merger.MergeMeasure(results);\n\n let xnodes = Merger.GetAllNodes(multiResult.XAxis.Nodes, results.length);\n let ynodes = Merger.GetAllNodes(multiResult.YAxis.Nodes, results.length);\n let mnodes = Merger.GetAllNodes(multiResult.Measures.Nodes, results.length);\n\n xnodes.forEach(xnode => {\n ynodes.forEach(ynode => {\n mnodes.forEach(mnode => {\n Merger.SetValues(multiResult, results, xnode, ynode, mnode);\n });\n });\n });\n\n return multiResult;\n }\n\n private static Merge4D(results: QueryDef[], dd: DataDescription): QueryDef {\n let res = new QueryDef();\n res.MultiResult = new MultiResult();\n\n for (var i = 0; i < results.length; i++) {\n results[i].Index = i;\n }\n\n //X_Axis\n res.MultiResult.XAxis = Merger.MergeAxis4D(results, AxisType.X_Axis, dd.XLevelNodes.Areas.find(x => x.UniqueID == results[0].HeterogenPosition.get(AxisType.X_Axis)), dd.PowerGrid, { Position: 0, UseOldPosition: false });\n\n //Y_Axis\n res.MultiResult.YAxis = Merger.MergeAxis4D(results, AxisType.Y_Axis, dd.YLevelNodes.Areas.find(x => x.UniqueID == results[0].HeterogenPosition.get(AxisType.Y_Axis)), dd.PowerGrid, { Position: 0, UseOldPosition: false });\n\n //Measure_Axis\n res.MultiResult.Measures = Merger.MergeMeasure(results);\n\n let xnodes = Merger.GetAllNodes(res.MultiResult.XAxis.Nodes, results.length);\n let ynodes = Merger.GetAllNodes(res.MultiResult.YAxis.Nodes, results.length);\n let mnodes = Merger.GetAllNodes(res.MultiResult.Measures.Nodes, results.length);\n\n xnodes.forEach(xnode => {\n ynodes.forEach(ynode => {\n mnodes.forEach(mnode => {\n Merger.SetValues(res.MultiResult, results, xnode, ynode, mnode);\n });\n });\n });\n\n res.HeterogenPosition = results[0].HeterogenPosition;\n res.MeasureOnAxis = results[0].MeasureOnAxis;\n return res;\n }\n private static SetValues(multiresult: MultiResult, results: QueryDef[], xnode: AxisNode, ynode: AxisNode, mnode: AxisNode) {\n ynode.MergePositions.forEach((yValue, yKey) => {\n if (xnode.MergePositions.has(yKey) && mnode.MergePositions.has(yKey)) {\n const xValue = xnode.MergePositions.get(yKey);\n const mValue = mnode.MergePositions.get(yKey);\n const mn: MultiNode = QueryHelper.GetNodeFromMultiResult(results[yKey].MultiResult, xValue, yValue, mValue);\n if (mn) {\n QueryHelper.SetNodeInMultiResult(multiresult, xnode.Position, ynode.Position, mnode.Position, mn);\n }\n }\n });\n }\n\n private static GetAllNodes(nodes: AxisNode[], results: number) {\n let retVal: AxisNode[] = [];\n if (nodes && nodes.length > 0) {\n nodes.forEach(n => {\n retVal.push(n);\n retVal.push(...Merger.GetAllNodes(n.Children, null));\n });\n } else if (results) {\n let an = new AxisNode();\n an.Position = 0;\n for (var i = 0; i < results; i++) {\n an.MergePositions.set(i, 0);\n }\n retVal.push(an);\n }\n return retVal;\n }\n\n private static MergeMeasure(results: QueryDef[]): Axis {\n const measureaxis = new Axis({\n Type: AxisType.Measure\n });\n let poscounter = 0;\n for (var i = 0; i < results.length; i++) {\n results[i].MultiResult.Measures.Nodes.forEach(m => {\n if (measureaxis.Nodes.length == 0) {\n measureaxis.Nodes.push(Merger.CloneNode(m, null, i, 0, poscounter++));\n } else {\n let searchednode = measureaxis.Nodes.find(x => x.UniqueID == m.UniqueID);\n if (searchednode) {\n if (!searchednode.MergePositions) {\n searchednode.MergePositions = new Map();\n }\n searchednode.MergePositions.set(i, m.Position);\n } else {\n measureaxis.Nodes.push(Merger.CloneNode(m, null, i, 0, poscounter++));\n }\n }\n });\n }\n measureaxis.ElementCount = poscounter;\n return measureaxis;\n }\n\n private static GetPositions(defs: QueryDef[], axistype: AxisType): Map {\n const positions = new Map();\n defs.forEach(d => {\n const pos = d.HeterogenPosition.get(axistype);\n let resList = positions.get(pos);\n if (resList) {\n resList.push(d);\n } else {\n positions.set(pos, [d]);\n }\n });\n return positions;\n }\n\n private static MergeAxis3D(results: QueryDef[], axistype: AxisType, levelnodes: import('../../models/datadescription/multi/datadescription.model').Axis, powergrid: boolean): Axis {\n const retVal = new Axis();\n retVal.Type = axistype;\n const pcCount = {\n Position: 0,\n UseOldPosition: false\n }\n Merger.GetPositions(results, axistype).forEach((list, pos) => {\n const result = Merger.MergeAxis4D(list, axistype, levelnodes.Areas.find(x => x.UniqueID == pos), powergrid, pcCount);\n Merger.AddChildNodes(retVal, result.Nodes);\n });\n retVal.ElementCount = pcCount.Position;\n return retVal;\n }\n\n private static AddChildNodes(retVal: Axis, nodes: AxisNode[]) {\n if (retVal.Nodes.length == 0) {\n retVal.Nodes.push(...nodes);\n } else {\n nodes.forEach(an => {\n if (an.UniqueID === -1) {\n retVal.Nodes.push(an);\n } else {\n let searchednode = retVal.Nodes.find(x => x.MemberId == an.MemberId && x.UniqueID == an.UniqueID);\n if (searchednode) {\n Merger.AddChildNodesInternal(searchednode, an.Children);\n } else {\n retVal.Nodes.push(an);\n }\n }\n });\n }\n }\n private static AddChildNodesInternal(node: AxisNode, children: AxisNode[]) {\n children.forEach(child => {\n let searchednode = node.ChildrenDict.get(AxisNode.GetSearchChildrenKey(child));\n if (searchednode) {\n Merger.AddChildNodesInternal(searchednode, child.Children);\n } else {\n node.addChild(child);\n }\n });\n\n node.Children.forEach(an => {\n an.Parent = node;\n });\n }\n\n private static MergeAxis4D(results: QueryDef[], axistype: AxisType, area: HeterogenArea, powergrid: boolean, poscount: { Position: number, UseOldPosition: boolean }): Axis {\n let retVal = new Axis();\n if (area) {\n const levels = DataDescriptionHelper.GetLevels(area);\n if (levels.length == 0) {\n const mergePosList = [];\n results.forEach(x => {\n mergePosList.push(x.Index);\n });\n Merger.AddDummyNode(retVal, mergePosList, poscount.Position++, area.UniqueID);\n } else {\n let left = axistype == AxisType.X_Axis ? results[0].MultiResult.XAxis : results[0].MultiResult.YAxis;\n if (results.length > 1) {\n for (var i = 1; i < results.length; i++) {\n let right = axistype == AxisType.X_Axis ? results[i].MultiResult.XAxis : results[i].MultiResult.YAxis;\n let leftLevelOrder: number[] = [];\n Merger.GetLevelOrder(left.Nodes, leftLevelOrder);\n let rightLevelOrder: number[] = [];\n Merger.GetLevelOrder(right.Nodes, rightLevelOrder);\n left = Merger.MergeNodes(left, leftLevelOrder, right, rightLevelOrder, levels, results[0].Index, results[i].Index, poscount, powergrid, i == 1);\n }\n } else {\n let leftLevelOrder: number[] = [];\n Merger.GetLevelOrder(left.Nodes, leftLevelOrder);\n left = Merger.MergeNodes(left, leftLevelOrder, null, null, levels, results[0].Index, 0, poscount, powergrid, true);\n }\n retVal = left;\n }\n }\n retVal.Type = axistype;\n retVal.ElementCount = poscount.Position;\n return retVal;\n }\n private static GetLevelOrder(nodes: AxisNode[], levelorder: number[]) {\n if (nodes.length > 0) {\n levelorder.push(nodes[0].UniqueID);\n Merger.GetLevelOrder(nodes[0].Children, levelorder);\n }\n }\n\n private static MergeNodes(left: Axis, leftlevelorder: number[], right: Axis, rightlevelorder: number[], levels: LevelNode[], leftpos: number, rightpos: number, poscount: { Position: number, UseOldPosition: boolean }, powergrid: boolean, first: boolean): Axis {\n const retVal = new Axis();\n let lastLeftNodes: AxisNode[];\n let lastRightNodes: AxisNode[];\n for (var i = 0; i < levels.length; i++) {\n let level = levels[i];\n let leftaxisnodes = Merger.GetAxisNodes(level.UniqueID, left.Nodes)\n let rightaxisnodes;\n if (right) {\n rightaxisnodes = Merger.GetAxisNodes(level.UniqueID, right.Nodes)\n }\n if (leftaxisnodes.length > 0) {\n lastLeftNodes = leftaxisnodes;\n if (!first) {\n poscount.UseOldPosition = true;\n }\n for (var k = 0; k < leftaxisnodes.length; k++) {\n let newAxisnodes = Merger.AddNode(retVal, leftaxisnodes[k], level, leftlevelorder, levels, 0, 0, leftpos, poscount, powergrid);\n if (newAxisnodes && newAxisnodes.length > 0 && rightaxisnodes && rightaxisnodes.length == 0) {\n newAxisnodes.forEach(newAxisnode => {\n if (!newAxisnode.MergePositions) {\n newAxisnode.MergePositions = new Map();\n }\n if (!newAxisnode.MergePositions.has(rightpos)) {\n let pos = 0;\n if (lastRightNodes && lastRightNodes.length > 0) {\n let parent = newAxisnode.Parent;\n while (parent) {\n let parentAxisNode = lastRightNodes.find(x => x.MemberId == parent.MemberId);\n if (parentAxisNode) {\n pos = parentAxisNode.Position;\n break;\n }\n parent = parent.Parent;\n }\n }\n newAxisnode.MergePositions.set(rightpos, pos);\n }\n });\n }\n }\n poscount.UseOldPosition = false;\n }\n if (rightaxisnodes && rightaxisnodes.length > 0) {\n lastRightNodes = rightaxisnodes;\n for (var k = 0; k < rightaxisnodes.length; k++) {\n let newAxisnodes = Merger.AddNode(retVal, rightaxisnodes[k], level, rightlevelorder, levels, 0, 0, rightpos, poscount, powergrid);\n if (newAxisnodes && newAxisnodes.length > 0 && leftaxisnodes.length == 0) {\n newAxisnodes.forEach(newAxisnode => {\n if (!newAxisnode.MergePositions) {\n newAxisnode.MergePositions = new Map();\n }\n if (!newAxisnode.MergePositions.has(leftpos)) {\n let pos = 0;\n if (lastLeftNodes && lastLeftNodes.length > 0) {\n let parent = newAxisnode.Parent;\n while (parent) {\n let parentAxisNode = lastLeftNodes.find(x => x.MemberId == parent.MemberId);\n if (parentAxisNode) {\n pos = parentAxisNode.Position;\n break;\n }\n parent = parent.Parent;\n }\n }\n newAxisnode.MergePositions.set(leftpos, pos);\n }\n });\n }\n }\n }\n }\n return retVal;\n }\n private static AddDummyNode(retVal: Axis, mergePosList: number[], poscounter: number, areaID: number) {\n const dummy = new AxisNode({\n Position: poscounter,\n Axis: retVal.Type,\n Depth: 0,\n Caption: 'Dummy',\n Key: '0',\n Measure: false\n });\n dummy.DummyInfo = new DummyInfo();\n dummy.DummyInfo.AreaID = areaID;\n mergePosList.forEach(mergePos => {\n dummy.MergePositions.set(mergePos, 0);\n });\n retVal.Nodes.push(dummy);\n }\n private static AddNode(axis: Axis, ln: AxisNode, searchedLevel: LevelNode, levelorder: number[], targetLevel: LevelNode[], targetdepth: number, depth: number, pos: number, poscounter: { Position: number, UseOldPosition: boolean }, powergrid: boolean): AxisNode[] {\n let parents = Merger.GetParents(ln);\n let newAxisNodes = [];\n if (parents.length == 0) {\n if (axis.Nodes.length == 0) {\n let newAxisNode = Merger.CloneNode(ln, null, pos, 0, poscounter.UseOldPosition ? ln.Position : poscounter.Position++)\n axis.Nodes.push(newAxisNode);\n newAxisNodes.push(newAxisNode);\n } else {\n let searchednode = axis.Nodes.find(x => x.MemberId == ln.MemberId);\n if (searchednode) {\n if (!searchednode.MergePositions) {\n searchednode.MergePositions = new Map();\n searchednode.MergePositions.set(pos, ln.Position);\n } else if (!searchednode.MergePositions.has(pos)) {\n searchednode.MergePositions.set(pos, ln.Position);\n }\n } else {\n let newAxisNode = Merger.CloneNode(ln, null, pos, 0, poscounter.UseOldPosition ? ln.Position : poscounter.Position++)\n axis.Nodes.push(newAxisNode);\n newAxisNodes.push(newAxisNode);\n }\n }\n } else {\n if (targetLevel[targetdepth].UniqueID == levelorder[depth]) {\n for (var i = 0; i < axis.Nodes.length; i++) {\n let child = axis.Nodes[i];\n if (AxisNode.GetSearchChildrenKey(child) == AxisNode.GetSearchChildrenKey(parents[depth])) {\n newAxisNodes.push(...Merger.AddNodeInternal(child, parents, ln, depth + 1, searchedLevel, levelorder, targetLevel, targetdepth + 1, pos, poscounter, powergrid));\n }\n\n }\n } else {\n for (var i = 0; i < axis.Nodes.length; i++) {\n let child = axis.Nodes[i];\n newAxisNodes.push(...Merger.AddNodeInternal(child, parents, ln, depth, searchedLevel, levelorder, targetLevel, targetdepth + 1, pos, poscounter, powergrid));\n }\n }\n }\n return newAxisNodes;\n }\n private static AddNodeInternal(an: AxisNode, parents: AxisNode[], ln: AxisNode, depth: number, searchedLevel: LevelNode, levelorder: number[], targetLevel: LevelNode[], targetdepth: number, pos: number, poscounter: { Position: number, UseOldPosition: boolean }, powergrid: boolean): AxisNode[] {\n let newAxisNodes = [];\n if (searchedLevel == null || searchedLevel.UniqueID === ((powergrid && an.Axis == AxisType.Y_Axis) ? levelorder[depth] : targetLevel[targetdepth].UniqueID)) {\n if (an.Children.length == 0) {\n let newAxisNode = Merger.CloneNode(ln, an, pos, targetdepth, poscounter.UseOldPosition ? ln.Position : poscounter.Position++);\n an.addChild(newAxisNode)\n newAxisNodes.push(newAxisNode);\n } else {\n let searchednode = an.ChildrenDict.get(AxisNode.GetSearchChildrenKey(ln));\n if (searchednode) {\n if (!searchednode.MergePositions) {\n searchednode.MergePositions = new Map();\n searchednode.MergePositions.set(pos, ln.Position);\n } else if (!searchednode.MergePositions.has(pos)) {\n searchednode.MergePositions.set(pos, ln.Position);\n }\n } else {\n let newAxisNode = Merger.CloneNode(ln, an, pos, targetdepth, poscounter.UseOldPosition ? ln.Position : poscounter.Position++);\n an.addChild(newAxisNode)\n newAxisNodes.push(newAxisNode);\n }\n }\n } else {\n if (targetLevel[targetdepth].UniqueID == levelorder[depth]) {\n for (var i = 0; i < an.Children.length; i++) {\n let child = an.Children[i];\n if (AxisNode.GetSearchChildrenKey(child) == AxisNode.GetSearchChildrenKey(parents[depth])) {\n newAxisNodes.push(...Merger.AddNodeInternal(child, parents, ln, depth + 1, searchedLevel, levelorder, targetLevel, targetdepth + 1, pos, poscounter, powergrid));\n }\n\n }\n } else {\n for (var i = 0; i < an.Children.length; i++) {\n let child = an.Children[i];\n newAxisNodes.push(...Merger.AddNodeInternal(child, parents, ln, depth, searchedLevel, levelorder, targetLevel, targetdepth + 1, pos, poscounter, powergrid));\n }\n }\n }\n return newAxisNodes;\n }\n\n private static CloneNode(node: AxisNode, parent: AxisNode, hpos: number, depth: number, pos: number) {\n const retVal = new AxisNode();\n\n retVal.Axis = node.Axis;\n retVal.Caption = node.Caption;\n retVal.Key = node.Key;\n retVal.Children = [];\n if (node.MergePositions) {\n node.MergePositions.forEach((v, k) => {\n retVal.MergePositions.set(k, v);\n });\n }\n if (!retVal.MergePositions.has(hpos)) {\n retVal.MergePositions.set(hpos, node.Position);\n }\n retVal.Parent = parent;\n retVal.Depth = depth;\n retVal.MemberId = node.MemberId;\n retVal.IsCalculated = node.IsCalculated;\n retVal.UnaryOp = node.UnaryOp;\n retVal.Position = pos;\n retVal.UniqueID = node.UniqueID;\n retVal.SearchChildrenKeyInternal = node.SearchChildrenKeyInternal;\n retVal.Type = node.Type;\n return retVal;\n }\n\n private static GetParents(ln: AxisNode): AxisNode[] {\n let retVal = [];\n while (ln.Parent) {\n retVal.push(ln.Parent);\n ln = ln.Parent;\n }\n retVal.reverse();\n\n return retVal;\n }\n private static GetAxisNodes(levelUniqueID: number, axisnodes: AxisNode[]): AxisNode[] {\n let retVal: AxisNode[] = [];\n if (axisnodes.length > 0) {\n if (axisnodes[0].UniqueID == levelUniqueID) {\n retVal.push(...axisnodes);\n } else {\n axisnodes.forEach(x => {\n retVal.push(...Merger.GetAxisNodes(levelUniqueID, x.Children))\n });\n }\n }\n return retVal;\n }\n\n private static GetMeasureMergeList(results: QueryDef[]): QueryDef[][] {\n\n let tmp = new Map();\n results.forEach(r => {\n if (r.MultiResult) {\n let key = Merger.GetPositionKey(r.HeterogenPosition.get(AxisType.X_Axis)) + '_'\n + Merger.GetPositionKey(r.HeterogenPosition.get(AxisType.Y_Axis)) + '_'\n + Merger.GetPositionKey(r.HeterogenPosition.get(AxisType.Measure));\n let defs = tmp.get(key);\n if (!defs) {\n defs = [];\n }\n defs.push(r);\n tmp.set(key, defs);\n }\n });\n\n let retVal: QueryDef[][] = [];\n tmp.forEach(value => {\n retVal.push(value);\n });\n\n return retVal;\n }\n private static GetPositionKey(pos: number): string {\n return typeof pos === 'number' ? pos.toString() : '';\n }\n}\n","import { UUID } from 'angular2-uuid';\nimport { MultiCacheService } from '../../cache/multi/cache.service';\nimport { Cube, Level } from '../../cache/multi/models/database.model';\nimport { NotificationHelper } from '../../helpers/notification.helper';\nimport { Axis, DataDescription, HeterogenArea } from '../../models/datadescription/multi/datadescription.model';\nimport { MeasureInfo } from '../../models/datadescription/multi/measureinfo.model';\nimport {\n AxisDef, DynamicElementDef, LevelDef, MeasureDef, OffsetDef, QueryDef, WhereDef, WhereOptions\n} from '../../models/datadescription/multi/querydef.model';\nimport { AxisType, MeasureAccumulation } from '../../models/enums/query.enum';\nimport { TranslatedString } from '../../models/translatedstring.model';\nimport { DataDescriptionHelper } from './ddhelper.query';\n\nexport class QueryHelper {\n\n static async CheckFlatLevelCount(datadescription: DataDescription): Promise {\n // #warning check ob Designmodus fehlt\n const dmID = datadescription.DataModelID;\n let retVal = false;\n let measureaxis: Axis = null;\n let otheraxis: Axis = null;\n if (datadescription.ShowMeasureOnAxis === AxisType.X_Axis) {\n measureaxis = datadescription.XLevelNodes;\n otheraxis = datadescription.YLevelNodes;\n } else {\n measureaxis = datadescription.YLevelNodes;\n otheraxis = datadescription.XLevelNodes;\n }\n if (measureaxis) {\n const cubes: UUID[] = [];\n measureaxis.Areas.forEach(a => {\n a.Measures.forEach(mi => {\n if (mi.Cube && !cubes.some(x => x === mi.Cube)) {\n cubes.push(mi.Cube);\n }\n });\n });\n if (cubes.length > 1) {\n for (let i = 0; i < measureaxis.Areas.length; i++) {\n const a = measureaxis.Areas[i];\n const areacubes: UUID[] = [];\n a.Measures.forEach(mi => {\n if (mi.Cube && !areacubes.some(x => x === mi.Cube)) {\n areacubes.push(mi.Cube);\n }\n });\n if (areacubes.length > 1) {\n for (let j = 0; j < a.Tuples.length; j++) {\n const t = a.Tuples[j];\n if (t.Levels.length > 1) {\n for (let k = 0; k < t.Levels.length; k++) {\n const l = t.Levels[k];\n const level: Level = await MultiCacheService.GetLevel(l.Level, dmID);\n let cube: Cube = await MultiCacheService.GetCube(areacubes[0], dmID);\n const firstcubefound = Cube.HasLevel(cube, level);\n for (let m = 1; m < areacubes.length; m++) {\n cube = await MultiCacheService.GetCube(areacubes[m], dmID);\n const nextcubefound = Cube.HasLevel(cube, level);\n if (nextcubefound !== firstcubefound) {\n retVal = true;\n break;\n }\n }\n if (retVal) {\n break;\n }\n }\n if (retVal) {\n break;\n }\n }\n }\n if (retVal) {\n break;\n }\n }\n }\n if (!retVal) {\n for (let i = 0; i < otheraxis.Areas.length; i++) {\n const a = otheraxis.Areas[i];\n for (let j = 0; j < a.Tuples.length; j++) {\n const t = a.Tuples[j];\n if (t.Levels.length > 1) {\n for (let k = 0; k < t.Levels.length; k++) {\n const l = t.Levels[k];\n const level: Level = await MultiCacheService.GetLevel(l.Level, dmID);\n let cube: Cube = await MultiCacheService.GetCube(cubes[0], dmID);\n const firstcubefound = Cube.HasLevel(cube, level);\n for (let m = 1; m < cubes.length; m++) {\n cube = await MultiCacheService.GetCube(cubes[m], dmID);\n const nextcubefound = Cube.HasLevel(cube, level);\n if (nextcubefound !== firstcubefound) {\n retVal = true;\n break;\n }\n }\n if (retVal) {\n break;\n }\n }\n if (retVal) {\n break;\n }\n }\n }\n if (retVal) {\n break;\n }\n }\n }\n }\n }\n\n return retVal;\n }\n\n static async GetQueryDef(ddclone: DataDescription, xarea: HeterogenArea, yarea: HeterogenArea): Promise {\n\n await MultiCacheService.AwaitIsInitialized(ddclone.DataModelID);\n\n const definitions: QueryDef[] = [];\n\n const cubemeasures = QueryHelper.GetCubeMeasures(ddclone.ShowMeasureOnAxis === AxisType.X_Axis ? xarea.Measures : yarea.Measures);\n\n for (let i = 0; i < cubemeasures.length; i++) {\n const cms = cubemeasures[i];\n const definition = new QueryDef();\n definition.EffectiveUserName = ddclone.EffectiveUserName;\n definition.Cube = await MultiCacheService.GetCube(cms.Cube, ddclone.DataModelID);\n definition.ID = UUID.UUID();\n definition.DataModell = ddclone.DataModelID;\n definition.AutomatedSolveOrder = ddclone.AdvancedSettings.AutomatedSolveOrder;\n definition.MeasureOnAxis = ddclone.ShowMeasureOnAxis;\n\n const dres = DataDescriptionHelper.GetValidDynamicRowElements(ddclone);\n for (let j = 0; j < dres.length; j++) {\n const dre = dres[j];\n const de = new DynamicElementDef();\n de.Code = dre.Code;\n de.Description = dre.Description;\n de.Formula = dre.Formula;\n de.Parent = dre.Parent;\n de.Level = await MultiCacheService.GetLevel(dre.Level, ddclone.DataModelID);\n if (de.Level) {\n de.Hierarchy = de.Level.Parent;\n }\n definition.DynamicElements.push(de);\n }\n\n await QueryHelper.FillDefinition(ddclone, xarea, cms, definition, AxisType.X_Axis);\n await QueryHelper.FillDefinition(ddclone, yarea, cms, definition, AxisType.Y_Axis);\n\n if (ddclone.Filter) {\n ddclone.Filter.forEach(f => {\n const options = new WhereOptions();\n options.IsOptional = true;\n const wd = new WhereDef();\n wd.DimensionId = f.Dimension;\n wd.HierarchyId = f.Hierarchy;\n wd.Formula = f.Formula;\n wd.Options = options;\n wd.Defaults = f.Defaults;\n definition.Where.push(wd);\n });\n }\n\n definitions.push(definition);\n }\n\n return definitions;\n }\n static async FillDefinition(ddclone: DataDescription, area: HeterogenArea, cms: any, definition: QueryDef, axis: AxisType) {\n if (area) {\n if (area.Measures.length > 0) {\n await QueryHelper.SetMeasures(cms.MeasureInfos, definition, ddclone.DataModelID);\n const axisdef = new AxisDef();\n axisdef.AreaID = area.UniqueID;\n axisdef.Type = AxisType.Measure;\n axisdef.TopCount = ddclone.TopCount;\n axisdef.HasMeasures = true;\n axisdef.ShowAll = true;\n definition.Axis.push(axisdef);\n definition.HeterogenPosition.set(AxisType.Measure, area.UniqueID);\n }\n if (area.LevelCount > 0) {\n await QueryHelper.BuildAxisDef(area, definition, ddclone, axis);\n }\n definition.HeterogenPosition.set(axis, area.UniqueID);\n }\n }\n\n static async BuildAxisDef(area: HeterogenArea, definition: QueryDef, ddclone: DataDescription, axis: AxisType): Promise {\n let found = false;\n const axisdef = new AxisDef();\n axisdef.AreaID = area.UniqueID;\n axisdef.Type = axis;\n axisdef.TopCount = ddclone.TopCount;\n axisdef.HasMeasures = false; // area.Measures.length > 0;\n if (axis === AxisType.X_Axis) {\n axisdef.ShowAll = ddclone.XLevelNodes.ShowAll;\n } else if (axis === AxisType.Y_Axis) {\n axisdef.ShowAll = ddclone.YLevelNodes.ShowAll;\n }\n let count = 0;\n for (let i = 0; i < area.Tuples.length; i++) {\n for (let j = 0; j < area.Tuples[i].Levels.length; j++) {\n const levelnode = area.Tuples[i].Levels[j];\n const level: Level = await MultiCacheService.GetLevel(levelnode.Level, ddclone.DataModelID);\n if (level) {\n if (Cube.HasLevel(definition.Cube, level)) {\n const leveldef = new LevelDef();\n leveldef.Attributes = [...levelnode.Attributes];\n leveldef.Depth = count++;\n leveldef.Level = level;\n leveldef.Hierarchy = level.Parent;\n leveldef.Dimension = level.Parent.Parent;\n leveldef.UniqueID = levelnode.UniqueID;\n if (ddclone.MeasureInfos.find(m => m.Details.FunctionOffset &&\n m.Details.FunctionOffset.OffsetLevel && m.Details.FunctionOffset.OffsetValue !== 0)) {\n leveldef.TupleIndex = leveldef.Depth;\n } else {\n leveldef.TupleIndex = i;\n }\n axisdef.Levels.push(leveldef);\n found = true;\n }\n }\n else {\n NotificationHelper.Error(levelnode.Caption + \",ID: \" + levelnode.Level + \", DimensionID: \" + levelnode.DimensionID + \", HierarchyID: \" + levelnode.HierarchieID + \" nicht gefunden\", \"@@Level nicht gefunden\");\n }\n }\n }\n\n if (found) {\n definition.Axis.push(axisdef);\n }\n\n return found;\n }\n\n static async SetMeasures(measureInfos: MeasureInfo[], definition: QueryDef, dmID: any) {\n for (let i = 0; i < measureInfos.length; i++) {\n const mis = measureInfos[i];\n const mi = new MeasureDef();\n mi.Attribute = mis.Attribute;\n mi.AttributeHierarchy = await MultiCacheService.GetHierarchy(mis.AttributeHierarchy, dmID);\n mi.Caption = TranslatedString.GetTranslation(mis.Caption);\n\n if (mis.Details.FunctionAccumulation) {\n if (mis.Details.FunctionAccumulation.UseMTD) {\n mi.FunctionAccumulation = MeasureAccumulation.MTD;\n } else if (mis.Details.FunctionAccumulation.UseYTD) {\n mi.FunctionAccumulation = MeasureAccumulation.YTD;\n } else if (mis.Details.FunctionAccumulation.UseWTD) {\n mi.FunctionAccumulation = MeasureAccumulation.WTD;\n }\n }\n\n if (mis.Details.FunctionOffset && mis.Details.FunctionOffset.OffsetLevel && mis.Details.FunctionOffset.OffsetValue !== 0) {\n mi.FunctionOffset = new OffsetDef();\n mi.FunctionOffset.Level = await MultiCacheService.GetLevel(mis.Details.FunctionOffset.OffsetLevel, dmID);\n if (mi.FunctionOffset.Level) {\n mi.FunctionOffset.Hierarchy = mi.FunctionOffset.Level.Parent;\n }\n mi.FunctionOffset.Counter = mis.Details.FunctionOffset.OffsetValue;\n }\n\n if (mis.Details.FunctionParentReferencing && mis.Details.FunctionParentReferencing.PRHierarchy) {\n mi.FunctionParentReferencing = new OffsetDef();\n mi.FunctionParentReferencing.Hierarchy =\n await MultiCacheService.GetHierarchy(mis.Details.FunctionParentReferencing.PRHierarchy, dmID);\n mi.FunctionParentReferencing.Counter = mis.Details.FunctionParentReferencing.PRValue;\n }\n\n if (mis.Details.ReferencingSelects) {\n mis.Details.ReferencingSelects.forEach(f => {\n if (f.Formula || (f.Defaults && f.Defaults.length > 0)) {\n const options = new WhereOptions();\n options.IsOptional = true;\n const wd = new WhereDef();\n wd.DimensionId = f.Dimension;\n wd.HierarchyId = f.Hierarchy;\n wd.Formula = f.Formula;\n wd.Defaults = f.Defaults;\n wd.Options = options;\n mi.ReferenceWhere.push(wd);\n }\n });\n }\n\n if (mis.Details.TimeRangeReference && mis.Details.TimeRangeReference.Level) {\n mi.TimeRangeReference = new OffsetDef();\n mi.TimeRangeReference.Counter = mis.Details.TimeRangeReference.Counter;\n mi.TimeRangeReference.Level = await MultiCacheService.GetLevel(mis.Details.TimeRangeReference.Level, dmID);\n if (mi.TimeRangeReference.Level) {\n mi.TimeRangeReference.Hierarchy = mi.TimeRangeReference.Level.Parent;\n }\n }\n\n if (typeof mis.Aggregation === 'number') {\n mi.ASFunctionType = mis.Aggregation;\n }\n\n mi.Measure = await MultiCacheService.GetMeasure(mis.Measure, dmID);\n mi.QueryAttribute = mis.QueryAttribute;\n mi.UniqueID = mis.UniqueID;\n\n definition.Measures.push(mi);\n }\n }\n\n static GetCubeMeasures(measures: MeasureInfo[]): any[] {\n const cubemeasures = [];\n\n measures.forEach(mi => {\n if (!mi.SpecialElementType && mi.Measure && mi.Cube) {\n const cmd = cubemeasures.find(x => x.Cube === mi.Cube);\n if (!cmd) {\n const newcmd = {\n Cube: mi.Cube,\n MeasureInfos: []\n };\n newcmd.MeasureInfos.push(mi);\n cubemeasures.push(newcmd);\n } else {\n cmd.MeasureInfos.push(mi);\n }\n }\n });\n\n return cubemeasures;\n }\n\n static IsEmptyMultiResult(multiresult): boolean {\n return multiresult.XAxis.ElementCount === 0 && multiresult.YAxis.ElementCount === 0 && multiresult.Measures.ElementCount === 0;\n }\n\n static GetNodeFromMultiResult(result, x, y, m) {\n const xcells = result.Cells[x];\n if (xcells) {\n const ycells = xcells[y];\n if (ycells) {\n return ycells[m];\n }\n }\n }\n\n static SetNodeInMultiResult(result, x, y, m, node) {\n let xcells = result.Cells[x];\n if (!xcells) {\n xcells = [];\n result.Cells[x] = xcells;\n }\n let ycells = xcells[y];\n if (!ycells) {\n ycells = [];\n xcells[y] = ycells;\n }\n const cloned = JSON.parse(JSON.stringify(node));\n ycells[m] = cloned;\n cloned.X = x;\n cloned.Y = y;\n cloned.M = m;\n }\n}\n","import { Component } from '@angular/core';\nimport { ChartDataSource } from '../../../models/datasource/chart.datasource';\nimport { MultidimensionalChartDataSource } from '../../../models/datasource/chart.multidimensional.datasource';\nimport { RelationalChartDataSource } from '../../../models/datasource/chart.relational.datasource';\nimport { AxisTextPosition } from '../../../models/enums/axistextposition.enum';\nimport { IBaseComponent } from '../../controls/base.component';\n\n@Component({\n selector: 'chart-reportobject',\n templateUrl: './chart.reportobject.html',\n styleUrls: ['./chart.reportobject.css']\n})\nexport class ChartReportObject extends IBaseComponent {\n static Type = 'chartreportObject';\n static Default = {\n Caption: 'Charts', Type: 'chartreportObject', Layout:\n { vAxisTextPosition: AxisTextPosition.out, hAxisTextPosition: AxisTextPosition.out }\n };\n\n Loading = true;\n PageInitialized = false;\n DisableAutoLoad = false;\n EmptyQuery = false;\n //#region Data\n Source: ChartDataSource;\n ChartData = [];\n ChartSettings;\n Data;\n //#endregion\n\n ControlInitialized() {\n if (this.LayoutElementValue) {\n this.DisableAutoLoad = this.LayoutElementValue.DisableAutoLoad;\n }\n if (this.LayoutValue && this.LayoutValue.Initialized) {\n this.Subscriptions['pageInitialized'] = this.LayoutValue.Initialized.subscribe((x) => {\n if (x) {\n this.PageInitialized = true;\n this.InitializeDataSource();\n }\n });\n }\n }\n\n ChartPropChanged(prop) {\n try {\n if (this.Source && this.LayoutElementValue.ChartSettings) {\n this.Source.UpdateChart(this.LayoutElementValue.ChartSettings);\n }\n } catch (ex) {\n console.error(ex);\n }\n }\n\n onLayoutElementSet() {\n let data;\n if (this.LayoutElementValue && this.LayoutElementValue.Query && this.Layout &&\n this.Layout.Datadescriptions && this.Layout.Datadescriptions.length > 0) {\n data = this.Layout.Datadescriptions.find((dd) => dd.ID === this.LayoutElementValue.Query);\n }\n this.Data = data;\n this.InitializeDataSource();\n }\n\n onLayoutElementChanged() {\n if (this.LayoutElementValue && this.Data && this.LayoutElementValue.Query != this.Data.ID) {\n setTimeout(() => { this.onLayoutElementSet(); }, 10);\n } else {\n setTimeout(() => { this.InitializeDataSource(); }, 10);\n }\n }\n\n OnDataBindingChanged() {\n if (this.LayoutElementValue && this.LayoutElementValue.ChartSettings) {\n this.LayoutElementValue.ChartSettings.Series = [];\n }\n super.OnDataBindingChanged();\n }\n\n InitializeDataSource() {\n const loadingSub = this.Subscriptions['DSLoading'];\n if (loadingSub) {\n loadingSub.unsubscribe();\n delete this.Subscriptions['DSLoading'];\n }\n const dataSub = this.Subscriptions['DSData'];\n if (dataSub) {\n dataSub.unsubscribe();\n delete this.Subscriptions['DSData'];\n }\n if (this.Data && this.PageInitialized) {\n this.Source = this.Data.IsRelational ? new RelationalChartDataSource(this) : new MultidimensionalChartDataSource(this);\n this.Subscriptions['DSLoading'] = this.Source.Loading.subscribe((res) => {\n this.Loading = res;\n this.cdRef.detectChanges();\n });\n this.Subscriptions['DSData'] = this.Source.Data.subscribe((res) => {\n if (res && res.Data && res.Settings) {\n console.log('Chart Data', res)\n this.ChartData = res.Data;\n this.ChartSettings = res.Settings;\n this.EmptyQuery = false;\n } else {\n this.ChartData = null;\n this.ChartSettings = null;\n this.EmptyQuery = true;\n }\n this.cdRef.detectChanges();\n });\n if (this.DisableAutoLoad) {\n this.DisableAutoLoad = false;\n } else {\n this.ExecuteRefresh();\n }\n } else {\n this.Source = null;\n this.ChartData = null;\n this.ChartSettings = null;\n }\n }\n\n ExecuteRefresh() {\n if (this.Source && this.LayoutElementValue.ChartSettings) {\n this.Source.Refresh(this.LayoutElementValue.ChartSettings);\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { BehaviorSubject } from 'rxjs';\nimport { MultiCacheService } from '../../../cache/multi/cache.service';\nimport { DataDescription } from '../../../models/datadescription/multi/datadescription.model';\nimport { PlanningTableDataSource } from '../../../models/datasource/table.planning.datasource';\nimport { TableStyle } from '../../../models/enums/tablestyle.enum';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MultiReportingService } from '../../../services/reporting.service';\nimport { IBaseComponent } from '../../controls/base.component';\n\n@Component({\n selector: 'evi-macplanning',\n templateUrl: './planning.reportobject.html',\n styleUrls: ['./planning.reportobject.css'],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class MacPlanningControl extends IBaseComponent {\n\n static Type: any = 'planningreportObject';\n static Default = { Type: 'planningreportObject' };\n //#region Properties\n initialized = false;\n ViewInitialized = false;\n PageInitialized = false;\n //#region Data\n Source: PlanningTableDataSource;\n //#region DataDescription\n DataDescriptionsValue;\n\n @Input()\n get DataDescriptions() {\n return this.DataDescriptionsValue;\n }\n set DataDescriptions(val) {\n this.DataDescriptionsValue = val;\n this.InitializeDataSource();\n this.DataDescriptionsChange.emit(this.DataDescriptionsValue);\n }\n\n @Output() DataDescriptionsChange = new EventEmitter();\n //#endregion\n Descriptions = {};\n //#region Data\n DataValue;\n\n @Input()\n get Data() {\n return this.DataValue;\n }\n set Data(val) {\n this.DataValue = val;\n const DataDescriptions = {};\n if (val && val.length > 0) {\n val.forEach((data) => {\n if (!data.IsRelational && data.Datadescription) {\n DataDescriptions[data.ID] = plainToClass(DataDescription, data.Datadescription);\n DataDescriptions[data.ID].Caption = data.Caption;\n if (!this.Descriptions[data.ID]) {\n this.Descriptions[data.ID] = {\n X: {},\n Y: {}\n };\n }\n this.FillAxis(DataDescriptions[data.ID].XLevelNodes, data, this.Descriptions[data.ID].X);\n this.FillAxis(DataDescriptions[data.ID].YLevelNodes, data, this.Descriptions[data.ID].Y);\n }\n })\n }\n this.DataDescriptions = DataDescriptions;\n this.DataChange.emit(this.DataValue);\n }\n\n @Output() DataChange = new EventEmitter();\n //#endregion\n //#endregion\n\n //#region RowsExpandable\n RowsExpandableValue: boolean;\n\n @Input()\n get RowsExpandable() {\n if (this.LayoutElement) {\n return this.LayoutElement.RowsExpandable;\n } else {\n return this.RowsExpandableValue;\n }\n }\n set RowsExpandable(val) {\n if (this.LayoutElement) {\n this.LayoutElement.RowsExpandable = val;\n this.RowsExpandableChange.emit(this.LayoutElement.RowsExpandable);\n } else {\n this.RowsExpandableValue = val;\n this.RowsExpandableChange.emit(this.RowsExpandableValue);\n }\n }\n\n @Output() RowsExpandableChange = new EventEmitter();\n //#endregion\n //#region ColumnsExpandable\n ColumnsExpandableValue: boolean;\n\n @Input()\n get ColumnsExpandable() {\n if (this.LayoutElement) {\n return this.LayoutElement.ColumnsExpandable;\n } else {\n return this.ColumnsExpandableValue;\n }\n }\n set ColumnsExpandable(val) {\n if (this.LayoutElement) {\n this.LayoutElement.ColumnsExpandable = val;\n this.ColumnsExpandableChange.emit(this.LayoutElement.ColumnsExpandable);\n } else {\n this.ColumnsExpandableValue = val;\n this.ColumnsExpandableChange.emit(this.ColumnsExpandableValue);\n }\n }\n\n @Output() ColumnsExpandableChange = new EventEmitter();\n //#endregion\n\n //#region Rows\n RowsValue;\n @Input()\n get Rows() {\n return this.RowsValue;\n }\n set Rows(val) {\n this.RowsValue = val;\n this.RowsChange.emit(this.RowsValue);\n }\n @Output() RowsChange = new EventEmitter();\n //#endregion\n\n //#region Columns\n ColumnsValue;\n @Input()\n get Columns() {\n return this.ColumnsValue;\n }\n set Columns(val) {\n this.ColumnsValue = val;\n this.CreateColumns();\n this.ColumnsChange.emit(this.ColumnsValue);\n }\n @Output() ColumnsChange = new EventEmitter();\n\n FixedColumnsLeftValue;\n @Input()\n get FixedColumnsLeft() {\n if (this.LayoutElementValue) {\n return this.LayoutElementValue.FixedColumnsLeft;\n } else {\n return this.FixedColumnsLeftValue;\n }\n }\n set FixedColumnsLeft(val) {\n if (this.LayoutElementValue) {\n this.LayoutElementValue.FixedColumnsLeft = val;\n this.FixedColumnsRightChange.emit(this.LayoutElementValue.FixedColumnsLeft);\n } else {\n this.FixedColumnsLeftValue = val;\n this.FixedColumnsLeftChange.emit(this.FixedColumnsLeftValue);\n }\n this.CreateColumns();\n }\n @Output() FixedColumnsLeftChange = new EventEmitter();\n\n FixedColumnsRightValue;\n @Input()\n get FixedColumnsRight() {\n if (this.LayoutElementValue) {\n return this.LayoutElementValue.FixedColumnsRight;\n } else {\n return this.FixedColumnsRightValue;\n }\n }\n set FixedColumnsRight(val) {\n if (this.LayoutElementValue) {\n this.LayoutElementValue.FixedColumnsRight = val;\n this.FixedColumnsRightChange.emit(this.LayoutElementValue.FixedColumnsRight);\n } else {\n this.FixedColumnsRightValue = val;\n this.FixedColumnsRightChange.emit(this.FixedColumnsRightValue);\n }\n this.CreateColumns();\n }\n @Output() FixedColumnsRightChange = new EventEmitter();\n //#endregion\n\n ActiveCell = new BehaviorSubject(null);\n get Cell() {\n let retVal = null;\n if (this.LayoutElementValue && this.CellSelection && Array.isArray(this.CellSelection) && this.CellSelection.length == 1) {\n if (this.LayoutElementValue.CellDescriptions && this.LayoutElementValue.CellDescriptions[this.SelectedSheet.Name] &&\n this.LayoutElementValue.CellDescriptions[this.SelectedSheet.Name][this.CellSelection[0].RowIndex] &&\n this.LayoutElementValue.CellDescriptions[this.SelectedSheet.Name][this.CellSelection[0].RowIndex][this.CellSelection[0].ColumnName]) {\n retVal = JSON.parse(JSON.stringify(this.LayoutElementValue.CellDescriptions[this.SelectedSheet.Name][this.CellSelection[0].RowIndex][this.CellSelection[0].ColumnName]));\n if (retVal.UseReference && retVal.Reference.UseFullReference) {\n let area = this.GetSelectedArea(retVal.Reference.X);\n if (area) {\n let level = this.GetSelectedLevel(area);\n if (level) {\n retVal.XArea = parseInt(area.AreaID);\n retVal.XLevel = level.LevelID;\n retVal.XMember = level.MemberID;\n if (area.MeasureID != null) {\n retVal.Measure = area.MeasureID\n }\n }\n }\n \n\n area = this.GetSelectedArea(retVal.Reference.Y);\n if (area) {\n let level = this.GetSelectedLevel(area);\n if (level) {\n retVal.YArea = parseInt(area.AreaID);\n retVal.YLevel = level.LevelID;\n retVal.YMember = level.MemberID;\n }\n }\n \n \n if (area.MeasureID != null) {\n retVal.Measure = area.MeasureID\n }\n\n }\n }\n }\n return retVal;\n }\n GetSelectedArea(Axis) {\n let areas = Object.keys(Axis);\n for (let i = 0; i < areas.length; i++) {\n let area = Axis[areas[i]];\n if (area.Selected == true) {\n return area;\n }\n }\n return null;\n }\n GetSelectedLevel(Area) {\n let levels = Object.keys(Area.Levels);\n for (let i = 0; i < levels.length; i++) {\n let level = Area.Levels[levels[i]];\n if (level.MemberID != null) {\n return level;\n }\n }\n return null;\n }\n\n CellStyles = {};\n RowSelection = [];\n CellSelection = [];\n HasChanges = false;\n SelectedSheet;\n ChangedValues = [];\n DataTable;\n //#endregion\n\n //#region LifeCycle\n constructor(private cdref: ChangeDetectorRef, private multiService: MultiReportingService, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdref, data);\n this.EventList.push('RowSelectionChanged');\n this.EventList.push('CellSelectionChanged');\n this.EventList.push('ValueChanged');\n this.EventList.push('OnFocus');\n this.EventList.push('Click');\n this.EventList.push('DoubleClick');\n }\n\n TableInitialized(element) {\n this.DataTable = element;\n }\n\n CreateColumns() {\n \n }\n\n onLayoutElementSet() {\n this.initialized = false;\n if (this.LayoutElement && this.LayoutElement.Queries && this.Layout && this.Layout.Datadescriptions) {\n let list = [];\n this.LayoutElement.Queries.forEach((q) => {\n const dd = this.Layout.Datadescriptions.find((value) => {\n return q === value.ID;\n });\n if (dd) {\n list.push(dd);\n }\n });\n this.Data = list;\n }\n }\n\n onLayoutElementChanged() {\n this.initialized = false;\n setTimeout(() => { this.InitializeDataSource(); }, 10);\n }\n\n ControlInitialized() {\n if (this.LayoutValue && this.LayoutValue.Initialized) {\n this.Subscriptions['pageInitialized'] = this.LayoutValue.Initialized.subscribe((x) => {\n if (x) {\n this.PageInitialized = true;\n this.InitializeDataSource();\n }\n });\n }\n }\n\n InitializeDataSource() {\n if (this.LayoutElementValue.Sheets && this.LayoutElementValue.Sheets.length > 0) {\n this.SelectedSheet = this.LayoutElementValue.Sheets[0];\n }\n const initSub = this.Subscriptions['Initialized'];\n if (initSub) {\n initSub.unsubscribe();\n delete this.Subscriptions['Initialized'];\n }\n const colSub = this.Subscriptions['columns'];\n if (colSub) {\n colSub.unsubscribe();\n delete this.Subscriptions['columns'];\n }\n const rowsSub = this.Subscriptions['Rows'];\n if (rowsSub) {\n rowsSub.unsubscribe();\n delete this.Subscriptions['Rows'];\n }\n const styleSub = this.Subscriptions['cellStyles'];\n if (styleSub) {\n styleSub.unsubscribe();\n delete this.Subscriptions['cellStyles'];\n }\n\n const source = new PlanningTableDataSource(this);\n this.Source = source;\n this.Source.ActiveSheet = this.SelectedSheet;\n this.Subscriptions['Initialized'] = this.Source.Initialized.subscribe((res) => {\n this.initialized = res;\n });\n this.Subscriptions['columns'] = source.Columns.subscribe((res) => {\n let cols = res;\n if (this.LayoutElementValue.Columns && this.LayoutElementValue.Sheets) {\n this.LayoutElementValue.Sheets.forEach((sheet) => {\n if (cols[sheet.Name] && this.LayoutElementValue.Columns[sheet.Name]) {\n cols[sheet.Name].forEach((col) => {\n if (col.Width) {\n let layoutcol = this.LayoutElementValue.Columns[sheet.Name].find((value) => { return col.Name == value.Name && col.Width.Value !== value.CalculatedWidth });\n if (layoutcol) {\n if (layoutcol.CalculatedWidth) {\n col.Width.Value = layoutcol.CalculatedWidth;\n }\n }\n }\n });\n }\n });\n }\n this.LayoutElementValue.Columns = cols;\n this.Columns = cols;\n });\n this.Subscriptions['Rows'] = source.Data.subscribe((res) => {\n this.Rows = res;\n if (res) {\n if (this.DataTable && this.DataTable.DataSourceValuesChanged) {\n this.DataTable.DataSourceValuesChanged.next(res);\n }\n this.cdref.detectChanges();\n }\n });\n this.Subscriptions['cellStyles'] = this.Source.CellStyles.subscribe((res) => {\n this.CellStyles = res;\n });\n this.Source.Refresh();\n }\n\n OnDataBindingChanged() {\n window.setTimeout(() => {\n this.onLayoutElementSet();\n }, 200);\n }\n\n ngAfterViewInit(): void {\n this.ViewInitialized = true;\n this.cdref.detectChanges();\n super.ngAfterViewInit();\n }\n //#endregion\n //#region Actions\n clicked() {\n this.triggerEvent('OnFocus', this.DataSource);\n this.triggerEvent('Click', this);\n }\n doubleClicked() {\n this.triggerEvent('DoubleClick', this);\n }\n RowSelectionChanged(item) {\n this.RowSelection = item;\n this.triggerEvent('RowSelectionChanged', item);\n }\n CellSelectionChanged(item) {\n if (item && item.length > 0) {\n item.forEach((cell) => {\n cell.Sheet = this.SelectedSheet.Name\n });\n }\n this.CellSelection = item;\n this.ActiveCell.next(item);\n this.triggerEvent('CellSelectionChanged', item);\n }\n CopySelectionChanged(item) {\n this.Source.CellCopy(item);\n }\n \n ValueChanged(item) {\n this.HasChanges = true;\n item.Sheet = this.SelectedSheet.Name;\n this.ChangedValues.push(item);\n this.triggerEvent('ValueChanged', item);\n }\n SortChanged(sort) {\n this.Source.Refresh();\n }\n FilterChanged(filter) {\n this.Source.Refresh();\n }\n ExecuteRefresh() {\n if (this.Source) {\n this.Source.Refresh();\n }\n }\n RefreshCalculations() {\n if (this.Source) {\n this.Source.RefreshCalculations();\n }\n }\n RefreshStyles() {\n if (this.Source) {\n this.Source.RefreshStyles();\n }\n }\n SelectSheet(item) {\n this.SelectedSheet = null;\n setTimeout(() => {\n this.SelectedSheet = item;\n this.Source.ActiveSheet = this.SelectedSheet;\n this.RefreshCalculations();\n }, 100);\n }\n ColumnResized(column) {\n if (column.CalculatedWidth != null) {\n column.Width.Value = column.CalculatedWidth;\n }\n }\n KeyPress(event: KeyboardEvent) {\n event.stopPropagation();\n if (event.key.toLowerCase() == 'delete') {\n if (this.CellSelection && this.CellSelection.length > 0 && this.Rows) {\n let edit = false;\n this.CellSelection.forEach((cell) => {\n if (this.Rows[cell.Sheet] && this.Rows[cell.Sheet][cell.RowIndex] && this.Rows[cell.Sheet][cell.RowIndex].cols && this.Rows[cell.Sheet][cell.RowIndex].cols[cell.ColumnName] && this.Rows[cell.Sheet][cell.RowIndex].cols[cell.ColumnName].edit) {\n edit = true;\n }\n })\n if (!edit) {\n this.CellSelection.forEach((cell) => {\n if (this.LayoutElementValue && this.LayoutElementValue.CellDescriptions && this.LayoutElementValue.CellDescriptions[cell.Sheet] && this.LayoutElementValue.CellDescriptions[cell.Sheet][cell.RowIndex]) {\n delete this.LayoutElementValue.CellDescriptions[cell.Sheet][cell.RowIndex][cell.ColumnName];\n }\n if (this.Rows[cell.Sheet] && this.Rows[cell.Sheet][cell.RowIndex] && this.Rows[cell.Sheet][cell.RowIndex].cols && this.Rows[cell.Sheet][cell.RowIndex].cols[cell.ColumnName]) {\n this.Rows[cell.Sheet][cell.RowIndex].data[cell.ColumnName] = \"\";\n this.Rows[cell.Sheet][cell.RowIndex].internal[cell.ColumnName] = null;\n }\n })\n }\n if (this.Source) {\n this.Source.RefreshCalculations();\n }\n }\n }\n } \n //#endregion\n\n GetSelectedCoordinates() {\n if (this.Source) {\n if (this.LayoutElement.TableStyle === TableStyle.DataTable) {\n return this.Source.GetSelectedCoordinatesFromRowSelection(this.RowSelection);\n } else {\n return this.Source.GetSelectedCoordinatesFromCellSelection(this.CellSelection);\n }\n }\n return [];\n }\n\n Save() {\n this.Source.SaveChanges(this.ChangedValues);\n this.HasChanges = false;\n this.ChangedValues = [];\n }\n\n FillAxis(Node, Data, ReferenceAxis) {\n for (let i = 0; i < Node.Areas.length; i++) {\n let area = {\n Caption: 'Area ' + i,\n ID: i + '',\n Levels: {},\n Measures: {}\n }\n if (!ReferenceAxis[area.ID]) {\n Node.Areas[i].Tuples.forEach((tuple) => {\n tuple.Levels.forEach(async (level) => {\n let lev = {\n Caption: level.Caption.DefaultValue,\n Value: level.UniqueID,\n ID: level.Level,\n Members: {}\n }\n if (!area.Levels[lev.Value]) {\n const cubeLevel = await MultiCacheService.GetLevel(level.Level, Data.DataModelID);\n if (cubeLevel) {\n this.multiService.GetMembers(cubeLevel.Parent.Parent.DatasourceID, level.Level, null, null).subscribe(members => {\n if (members) {\n members.forEach(m => {\n lev.Members[m.ID] = m;\n });\n }\n });\n }\n area.Levels[lev.Value] = lev;\n }\n });\n })\n Node.Areas[i].Measures.forEach((measure) => {\n area.Measures[measure.UniqueID] = measure;\n })\n ReferenceAxis[area.ID] = area;\n }\n \n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { RTLHelper } from '../../../helpers/rtl.helper';\nimport { DataDescription } from '../../../models/datadescription/multi/datadescription.model';\nimport { TableDataSource } from '../../../models/datasource/chart.datasource';\nimport { MultiDimensionalTableDataSource } from '../../../models/datasource/table.multidimensional.datasource';\nimport { RelationalTableDataSource } from '../../../models/datasource/table.relational.datasource';\nimport { AxisType } from '../../../models/enums/query.enum';\nimport { TableStyle } from '../../../models/enums/tablestyle.enum';\nimport { ReportTableColumnSettings, ReportTableSettings } from '../../../models/reportobjects/reporttablesettings.model';\nimport { LayoutService } from '../../../services/layout.service';\nimport { IBaseComponent } from '../../controls/base.component';\n\n@Component({\n selector: 'evi-mactable',\n templateUrl: './table.reportobject.html',\n styleUrls: ['./table.reportobject.css'],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class MacTableControl extends IBaseComponent {\n\n static Type: any = 'tablereportObject';\n static Default = { Type: 'tablereportObject' };\n //#region Properties\n initialized = false;\n ViewInitialized = false;\n PageInitialized = false;\n DisableAutoLoad = false;\n EmptyQuery = false;\n //#region Data\n Source: TableDataSource;\n FixedRows;\n //#region DataDescription\n DataDescriptionValue;\n @Input()\n get DataDescription() {\n return this.DataDescriptionValue;\n }\n set DataDescription(val) {\n this.DataDescriptionValue = val;\n if (!this.DataValue.IsRelational) {\n this.DataDescriptionValue = plainToClass(DataDescription, this.DataDescription);\n }\n this.InitializeDataSource();\n this.DataDescriptionChange.emit(this.DataDescriptionValue);\n }\n\n @Output() DataDescriptionChange = new EventEmitter();\n //#endregion\n //#region Data\n DataValue;\n\n @Input()\n get Data() {\n return this.DataValue;\n }\n set Data(val) {\n this.DataValue = val;\n if (val && val.Datadescription) {\n this.DataDescription = val.Datadescription;\n }\n this.DataChange.emit(this.DataValue);\n }\n\n @Output() DataChange = new EventEmitter();\n //#endregion\n //#endregion\n\n //#region ColumnsExpandable\n get ColumnsExpandable() {\n if (this.LayoutElementValue && this.LayoutElementValue.TableSettings) {\n return this.LayoutElementValue.TableSettings.Pivot === true;\n }\n return false;\n }\n //#endregion\n\n get LineHeight() {\n if (this.LayoutElementValue && this.LayoutElementValue.TableSettings &&\n this.LayoutElementValue.TableSettings.FixColumnHeight === true) {\n return this.LayoutElementValue.TableSettings.FixColumnHeightValue;\n }\n return null;\n }\n\n //#region IsPreview\n IsPreviewValue = false;\n @Input()\n get IsPreview() {\n return this.IsPreviewValue;\n }\n set IsPreview(val) {\n this.IsPreviewValue = val;\n this.IsPreviewChange.emit(this.IsPreviewValue);\n }\n @Output() IsPreviewChange = new EventEmitter();\n //#endregion\n\n get ShowHeader() {\n if (this.LayoutElementValue && this.LayoutElementValue.TableSettings) {\n return this.LayoutElementValue.TableSettings.HideDescriptionColumnHeader !== true;\n } else {\n return true;\n }\n }\n get IgnoreHover() {\n if (this.LayoutElementValue && this.LayoutElementValue.TableSettings) {\n return this.LayoutElementValue.TableSettings.IgnoreHover == true;\n } else {\n return false;\n }\n }\n CellStyles = {};\n RowSelection = [];\n CellSelection = [];\n Columns;\n IsRtl = false;\n //#endregion\n\n //#region LifeCycle\n constructor(private cdref: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdref, data);\n // this.EventList.push('RowSelectionChanged');\n this.EventList.push('CellSelectionChanged');\n this.EventList.push('ValueChanged');\n this.EventList.push('OnFocus');\n this.EventList.push('Click');\n this.EventList.push('DoubleClick');\n this.IsRtl = RTLHelper.Direction === 'rtl';\n this.Subscriptions['RTL'] = RTLHelper.DirectionChanged.subscribe((dir) => {\n this.IsRtl = dir === 'rtl';\n });\n }\n\n onLayoutElementSet() {\n this.initialized = false;\n if (this.LayoutElement && this.LayoutElement.Query && this.Layout && this.Layout.Datadescriptions) {\n this.Layout.Datadescriptions.some((dd) => {\n if (dd.ID === this.LayoutElement.Query) {\n this.Data = dd;\n return true;\n }\n return false;\n });\n }\n }\n\n onLayoutElementChanged() {\n this.initialized = false;\n setTimeout(() => { this.InitializeDataSource(); }, 10);\n }\n\n ControlInitialized() {\n if (this.LayoutElementValue) {\n this.DisableAutoLoad = this.LayoutElementValue.DisableAutoLoad;\n }\n if (this.LayoutValue && this.LayoutValue.Initialized) {\n this.Subscriptions['pageInitialized'] = this.LayoutValue.Initialized.subscribe((x) => {\n if (x) {\n this.PageInitialized = true;\n this.InitializeDataSource();\n }\n });\n }\n }\n\n InitializeDataSource() {\n const initSub = this.Subscriptions['Initialized'];\n if (initSub) {\n initSub.unsubscribe();\n delete this.Subscriptions['Initialized'];\n }\n const pdSub = this.Subscriptions['PagedData'];\n if (pdSub) {\n pdSub.unsubscribe();\n delete this.Subscriptions['PagedData'];\n }\n const colSub = this.Subscriptions['columns'];\n if (colSub) {\n colSub.unsubscribe();\n delete this.Subscriptions['columns'];\n }\n const styleSub = this.Subscriptions['cellStyles'];\n if (styleSub) {\n styleSub.unsubscribe();\n delete this.Subscriptions['cellStyles'];\n }\n const fixedSub = this.Subscriptions['fixedRows'];\n if (fixedSub) {\n fixedSub.unsubscribe();\n delete this.Subscriptions['fixedRows'];\n }\n if (this.DataValue && (this.PageInitialized || this.IsPreviewValue)) {\n if (this.DataValue.IsRelational) {\n this.Source = new RelationalTableDataSource(this);\n } else {\n this.DataDescription.DataModelID = this.DataValue.DataModelID;\n this.Source = new MultiDimensionalTableDataSource(this);\n }\n this.Subscriptions['columns'] = this.Source.Columns.subscribe((res) => {\n this.Columns = res;\n this.cdRef.detectChanges();\n });\n this.Subscriptions['fixedRows'] = this.Source.FixedRows.subscribe((res) => {\n this.FixedRows = res;\n });\n this.Subscriptions['cellStyles'] = this.Source.CellStyles.subscribe((res) => {\n this.CellStyles = res;\n });\n this.Subscriptions['Initialized'] = this.Source.Initialized.subscribe((res) => {\n if (res != this.initialized) {\n this.initialized = res;\n this.cdRef.detectChanges();\n }\n });\n this.Subscriptions['PagedData'] = this.Source.PagedData.subscribe((res) => {\n if (res && res.length > 0) {\n this.EmptyQuery = false;\n } else {\n this.EmptyQuery = true;\n }\n });\n if (this.DisableAutoLoad) {\n this.DisableAutoLoad = false;\n } else {\n this.Source.Refresh();\n }\n }\n }\n\n OnDataBindingChanged() {\n window.setTimeout(() => {\n this.onLayoutElementSet();\n }, 200);\n }\n\n ngAfterViewInit(): void {\n this.ViewInitialized = true;\n this.cdref.detectChanges();\n super.ngAfterViewInit();\n }\n //#endregion\n //#region Actions\n clicked() {\n this.triggerEvent('OnFocus', this.DataSource);\n this.triggerEvent('Click', this);\n }\n doubleClicked() {\n this.triggerEvent('DoubleClick', this);\n }\n RowSelectionChanged(item) {\n this.RowSelection = item;\n this.triggerEvent('RowSelectionChanged', item);\n }\n CellSelectionChanged(item) {\n this.CellSelection = item;\n this.triggerEvent('CellSelectionChanged', item);\n }\n ValueChanged(item) {\n this.triggerEvent('ValueChanged', item);\n }\n SortChanged(sort) {\n this.ExecuteRefresh();\n }\n FilterChanged(filter) {\n this.ExecuteRefresh();\n }\n ExecuteRefresh() {\n if (this.Source) {\n this.Source.Refresh();\n }\n }\n onColumnExpanded(col) {\n if (col && this.LayoutElementValue && this.Columns && this.DataValue && !this.DataValue.IsRelational) {\n if (!this.LayoutElementValue.TableSettings) {\n this.LayoutElementValue.TableSettings = new ReportTableSettings();\n }\n if (!this.LayoutElementValue.TableSettings.ColumnSettings) {\n this.LayoutElementValue.TableSettings.ColumnSettings = new ReportTableColumnSettings();\n }\n const colSettings = this.LayoutElementValue.TableSettings.ColumnSettings;\n if (col.Name.startsWith('descColumn_')) { // Beschreibungsspalte\n colSettings.DescriptionColumnsWidths = [];\n this.Columns.some(c => {\n if (c.Name.startsWith('descColumn_')) {\n colSettings.DescriptionColumnsWidths.push(c.CalculatedWidth);\n return false;\n }\n return true;\n });\n } else {\n let update = false;\n const leaves = MultiDimensionalTableDataSource.GetFixedChildrenLeaves(col);\n if (this.DataDescriptionValue && this.DataDescriptionValue.ShowMeasureOnAxis === AxisType.X_Axis) {\n if (!colSettings.MeasuresWidths) {\n colSettings.MeasuresWidths = {};\n }\n leaves.forEach(l => {\n const id = l['MeasureUniqueID'];\n if (typeof id === 'number') {\n colSettings.MeasuresWidths[id] = l['CalculatedWidth'];\n update = true;\n }\n });\n } else {\n colSettings.NonMeasureWidth = leaves[0]['CalculatedWidth'];\n update = true;\n }\n if (update) {\n const noDesc = [];\n this.Columns.forEach(c => {\n if (!c.Name.startsWith('descColumn_')) {\n noDesc.push(c);\n }\n });\n let colWidth = 100;\n if (this.LayoutElementValue.TableSettings.FixColumnWidth) {\n colWidth = this.LayoutElementValue.TableSettings.FixColumnWidthValue;\n }\n MultiDimensionalTableDataSource.SetWidthOnLeaves(noDesc, colWidth, colSettings);\n }\n }\n }\n }\n //#endregion\n\n GetSelectedCoordinates() {\n if (this.Source) {\n if (this.LayoutElement.TableStyle === TableStyle.DataTable) {\n return this.Source.GetSelectedCoordinatesFromRowSelection(this.RowSelection);\n } else {\n return this.Source.GetSelectedCoordinatesFromCellSelection(this.CellSelection);\n }\n }\n return [];\n }\n\n IgnoreIntersect = false;\n BeforeScreenShot() {\n this.IgnoreIntersect = true;\n this.cdref.detectChanges();\n }\n AfterScreenShot() {\n this.IgnoreIntersect = false;\n this.cdref.detectChanges();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { deserialize, serialize } from 'class-transformer';\nimport { AxisTick, ChartTextStyle, ContinuousAxisSettings, GridLineSettings } from '../../../models/controls/chart.model';\nimport { AxisTextPosition } from '../../../models/enums/axistextposition.enum';\nimport { Color } from '../../../models/style/color.model';\nimport { MediaService } from '../../../services/media.service';\n\n@Component({\n selector: 'chartsreportobject-axis-menu-tab',\n templateUrl: './axis.menu.tab.html'\n})\nexport class AxisMenuTab {\n ActualSettings = new AxisDefinition();\n\n //#region AxisSettings\n AxisSettingsValue: ContinuousAxisSettings;\n\n @Input()\n get AxisSettings() {\n return this.AxisSettingsValue;\n }\n set AxisSettings(val) {\n this.AxisSettingsValue = val;\n this.ActualSettings = AxisDefinition.GetAxisDefinition(this.AxisSettingsValue);\n this.AxisSettingsChange.emit(this.AxisSettingsValue);\n }\n\n @Output() AxisSettingsChange = new EventEmitter();\n //#endregion\n\n //#region IsValueAxis\n IsValueAxisValue = false;\n\n @Input()\n get IsValueAxis() {\n return this.IsValueAxisValue;\n }\n set IsValueAxis(val) {\n this.IsValueAxisValue = val;\n this.IsValueAxisChange.emit(this.IsValueAxisValue);\n }\n\n @Output() IsValueAxisChange = new EventEmitter();\n //#endregion\n\n fontFamilies = [];\n fontSizes = [8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72];\n formats = ['decimal', 'scientific', 'currency', 'percent', 'short', 'long'];\n @Output() OptionChanged = new EventEmitter();\n\n constructor() {\n MediaService.GetFontList().forEach(x => {\n this.fontFamilies.push({\n Name: x,\n Style: {\n 'font-family': x\n }\n });\n });\n }\n\n onOptionChanged(prop: string) {\n this.OptionChanged.emit(prop);\n }\n\n showTextChanged() {\n if (this.ActualSettings && this.AxisSettingsValue) {\n this.AxisSettingsValue.TextPosition = this.ActualSettings.ShowText ? AxisTextPosition.out : AxisTextPosition.none;\n this.onOptionChanged('TextPosition');\n }\n }\n\n showGridLinesChanged() {\n if (this.ActualSettings && this.AxisSettingsValue) {\n if (this.ActualSettings.ShowGridLines) {\n if (this.AxisSettingsValue.GridLines) {\n this.AxisSettingsValue.GridLines.Count = -1;\n this.onOptionChanged('ShowGridLines');\n }\n } else {\n if (!this.AxisSettingsValue.GridLines) {\n this.AxisSettingsValue.GridLines = new GridLineSettings();\n }\n this.AxisSettingsValue.GridLines.Count = 0;\n this.onOptionChanged('ShowGridLines');\n }\n }\n }\n\n showMinorGridLinesChanged() {\n if (this.ActualSettings && this.AxisSettingsValue) {\n if (this.ActualSettings.ShowMinorGridLines) {\n if (this.AxisSettingsValue.MinorGridLines) {\n this.AxisSettingsValue.MinorGridLines.Count = -1;\n this.onOptionChanged('ShowMinorGridLines');\n }\n } else {\n if (!this.AxisSettingsValue.MinorGridLines) {\n this.AxisSettingsValue.MinorGridLines = new GridLineSettings();\n }\n this.AxisSettingsValue.MinorGridLines.Count = 0;\n this.onOptionChanged('ShowMinorGridLines');\n }\n }\n }\n\n fontNameChanged() {\n if (this.ActualSettings && this.AxisSettingsValue) {\n if (!this.AxisSettingsValue.TextStyle) {\n this.AxisSettingsValue.TextStyle = new ChartTextStyle();\n }\n this.AxisSettingsValue.TextStyle.FontName = this.ActualSettings.TextStyle.FontName;\n this.onOptionChanged('FontName');\n }\n }\n\n fontSizeChanged() {\n if (this.ActualSettings && this.AxisSettingsValue) {\n if (!this.AxisSettingsValue.TextStyle) {\n this.AxisSettingsValue.TextStyle = new ChartTextStyle();\n }\n this.AxisSettingsValue.TextStyle.FontSize = this.ActualSettings.TextStyle.FontSize;\n this.onOptionChanged('FontSize');\n }\n }\n\n onBoldChanged() {\n if (this.ActualSettings) {\n this.ActualSettings.TextStyle.Bold = !this.ActualSettings.TextStyle.Bold;\n if (this.AxisSettingsValue) {\n if (!this.AxisSettingsValue.TextStyle) {\n this.AxisSettingsValue.TextStyle = new ChartTextStyle();\n }\n this.AxisSettingsValue.TextStyle.Bold = this.ActualSettings.TextStyle.Bold;\n this.onOptionChanged('Bold');\n }\n }\n }\n\n onItalicChanged() {\n if (this.ActualSettings) {\n this.ActualSettings.TextStyle.Italic = !this.ActualSettings.TextStyle.Italic;\n if (this.AxisSettingsValue) {\n if (!this.AxisSettingsValue.TextStyle) {\n this.AxisSettingsValue.TextStyle = new ChartTextStyle();\n }\n this.AxisSettingsValue.TextStyle.Italic = this.ActualSettings.TextStyle.Italic;\n this.onOptionChanged('Italic');\n }\n }\n }\n\n onColorChanged(color: Color) {\n if (this.ActualSettings) {\n this.ActualSettings.FontColor = color;\n if (color) {\n const hex = Color.HexFromColor(color);\n this.ActualSettings.ColorStyle = {\n fill: hex\n };\n if (this.AxisSettingsValue) {\n if (!this.AxisSettingsValue.TextStyle) {\n this.AxisSettingsValue.TextStyle = new ChartTextStyle();\n }\n this.AxisSettingsValue.TextStyle.Color = hex;\n this.onOptionChanged('FontColor');\n }\n } else if (this.AxisSettingsValue && this.AxisSettingsValue.TextStyle) {\n this.AxisSettingsValue.TextStyle.Color = null;\n this.onOptionChanged('FontColor');\n }\n }\n }\n\n clearFont() {\n if (this.ActualSettings) {\n this.ActualSettings.TextStyle = new ChartTextStyle();\n this.ActualSettings.FontColor = null;\n this.ActualSettings.ColorStyle = null;\n if (this.AxisSettingsValue) {\n this.AxisSettingsValue.TextStyle = null;\n this.onOptionChanged('TextStyle');\n }\n }\n }\n\n onMinChanged() {\n if (this.ActualSettings && this.AxisSettingsValue) {\n if (!this.AxisSettingsValue.MinValue) {\n this.AxisSettingsValue.MinValue = new AxisTick();\n }\n this.AxisSettingsValue.MinValue.Value = this.ActualSettings.MinValue;\n this.onOptionChanged('MinValue');\n }\n }\n\n autoMinChanged() {\n if (this.ActualSettings && this.AxisSettingsValue) {\n if (this.ActualSettings.AutoMin) {\n this.AxisSettingsValue.MinValue = null;\n } else {\n this.AxisSettingsValue.MinValue = new AxisTick();\n this.AxisSettingsValue.MinValue.Value = this.ActualSettings.MinValue;\n }\n this.onOptionChanged('MinValue');\n }\n }\n\n onMaxChanged() {\n if (this.ActualSettings && this.AxisSettingsValue) {\n if (!this.AxisSettingsValue.MaxValue) {\n this.AxisSettingsValue.MaxValue = new AxisTick();\n }\n this.AxisSettingsValue.MaxValue.Value = this.ActualSettings.MaxValue;\n this.onOptionChanged('MaxValue');\n }\n }\n\n autoMaxChanged() {\n if (this.ActualSettings && this.AxisSettingsValue) {\n if (this.ActualSettings.AutoMax) {\n this.AxisSettingsValue.MaxValue = null;\n } else {\n this.AxisSettingsValue.MaxValue = new AxisTick();\n this.AxisSettingsValue.MaxValue.Value = this.ActualSettings.MaxValue;\n }\n this.onOptionChanged('MaxValue');\n }\n }\n}\n\nexport class AxisDefinition {\n ShowText = false;\n ShowGridLines = false;\n ShowMinorGridLines = false;\n TextStyle = new ChartTextStyle();\n FontColor: Color;\n ColorStyle;\n MinValue = 0;\n AutoMin = true;\n MaxValue = 0;\n AutoMax = true;\n\n static GetAxisDefinition(axisSettings: ContinuousAxisSettings): AxisDefinition {\n const retVal = new AxisDefinition();\n if (axisSettings) {\n retVal.ShowText = axisSettings.TextPosition !== AxisTextPosition.none;\n retVal.ShowGridLines = !axisSettings.GridLines || axisSettings.GridLines.Count !== 0;\n retVal.ShowMinorGridLines = !axisSettings.MinorGridLines || axisSettings.MinorGridLines.Count !== 0;\n if (axisSettings.TextStyle) {\n retVal.TextStyle = deserialize(ChartTextStyle, serialize(axisSettings.TextStyle));\n if (axisSettings.TextStyle.Color) {\n retVal.FontColor = Color.FromHex(axisSettings.TextStyle.Color);\n retVal.ColorStyle = {\n fill: axisSettings.TextStyle.Color\n };\n }\n }\n if (axisSettings.MinValue) {\n retVal.AutoMin = false;\n retVal.MinValue = axisSettings.MinValue.Value;\n }\n if (axisSettings.MaxValue) {\n retVal.AutoMax = false;\n retVal.MaxValue = axisSettings.MaxValue.Value;\n }\n }\n return retVal;\n }\n}\n","import { moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { APropertyTab } from '../../../appbuilder/menutabs/properties/properties.menu.tab';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport {\n AnnotationChartSettings, AxisSettings, BubbleChartSettings, CalendarChartSettings, ChartSettings, ColorAxisValue,\n ColorRangeValue, ContinuousAxisSettings, GeoChartSettings, HeatMapChartSettings, LegendSettings, SeriesSettings\n} from '../../../models/controls/chart.model';\nimport { LevelNode } from '../../../models/datadescription/multi/levelnode.model';\nimport { MeasureInfo } from '../../../models/datadescription/multi/measureinfo.model';\nimport { ChartGeoResolution, ChartStackType } from '../../../models/enums/chartcurvetype.enum';\nimport { ChartLegendPosition } from '../../../models/enums/chartlegendposition.enum';\nimport { ChartType } from '../../../models/enums/charttype.enum';\nimport { SeriesType } from '../../../models/enums/seriestype.enum';\nimport { Color } from '../../../models/style/color.model';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MetaService } from '../../../services/meta.service';\n\n@Component({\n selector: 'chartsreportobject-menu-tab',\n templateUrl: './chart.menu.tab.html',\n styleUrls: ['./chart.menu.tab.css']\n})\nexport class ChartReportObjectMenuTab implements OnInit, OnDestroy {\n\n Subscriptions = [];\n DataBindingChangedSubscription;\n\n get LegendPosition(): ChartLegendPosition {\n if (this.ChartSettingsValue && this.ChartSettingsValue.Legend) {\n return this.ChartSettingsValue.Legend.Position;\n }\n return ChartLegendPosition.right;\n }\n set LegendPosition(val: ChartLegendPosition) {\n if (this.ChartSettingsValue) {\n if (!this.ChartSettingsValue.Legend) {\n this.ChartSettingsValue.Legend = new LegendSettings();\n }\n this.ChartSettingsValue.Legend.Position = val;\n }\n }\n\n get MaxBubbleSize(): number {\n if (this.ChartSettingsValue && this.ChartSettingsValue.BubbleSettings && typeof this.ChartSettingsValue.BubbleSettings.MaxBubbleSize == 'number') {\n return this.ChartSettingsValue.BubbleSettings.MaxBubbleSize;\n }\n return 30;\n }\n set MaxBubbleSize(val: number) {\n if (this.ChartSettingsValue && this.ChartSettingsValue.BubbleSettings) {\n this.ChartSettingsValue.BubbleSettings.MaxBubbleSize = val;\n }\n }\n get MinBubbleSize(): number {\n if (this.ChartSettingsValue && this.ChartSettingsValue.BubbleSettings && typeof this.ChartSettingsValue.BubbleSettings.MinBubbleSize == 'number') {\n return this.ChartSettingsValue.BubbleSettings.MinBubbleSize;\n }\n return 5;\n }\n set MinBubbleSize(val: number) {\n if (this.ChartSettingsValue && this.ChartSettingsValue.BubbleSettings) {\n this.ChartSettingsValue.BubbleSettings.MinBubbleSize = val;\n }\n }\n\n //#region SelectedItem\n SelectedItemValue;\n\n @Input()\n get SelectedItem() {\n return this.SelectedItemValue;\n }\n set SelectedItem(val) {\n this.SelectedItemValue = val;\n this.ReadQueries();\n this.SelectedItemChange.emit(this.SelectedItemValue);\n }\n\n @Output() SelectedItemChange = new EventEmitter();\n //#endregion\n\n ChartSettingsValue: ChartSettings = ChartSettings.GetDefault();\n Layout;\n DefaultAxisColumns = [];\n NumericColumns = [];\n TextColumns = [];\n DateColumns = [];\n SeriesAdditionalAxisMapping = [];\n charttypes;\n resolutions;\n AxisIsDateColumn = false;\n Data;\n ChartPalettes = [];\n\n DefaultChartStackType;\n\n private static CheckPropList(col: SeriesSettings, list: { Prop: string, List: any[] }[]) {\n if (col && list) {\n list.forEach(x => {\n const colName = col[x.Prop];\n if (colName && !x.List.some(y => y.Name === colName)) {\n col[x.Prop] = null;\n }\n });\n }\n }\n\n constructor(private service: MetaService) {\n const ct = [];\n [ChartType.AreaChart, ChartType.BarChart, ChartType.BubbleChart, ChartType.ColumnChart, ChartType.ComboChart,\n ChartType.CandlestickChart, ChartType.DonutChart, ChartType.Histogram, ChartType.LineChart, ChartType.PieChart,\n ChartType.ScatterChart, ChartType.SteppedAreaChart, ChartType.Gauge, ChartType.radar, ChartType.polarArea,\n ChartType.radialBar, ChartType.heatmap].forEach(x => {\n ct.push({ type: ChartType[ChartType[x]], value: ChartType[x] });\n });\n this.charttypes = ct;\n this.resolutions = EnumHelper.GetDropdownValues(ChartGeoResolution);\n this.DefaultChartStackType = EnumHelper.GetDropdownValues(ChartStackType);\n }\n\n ngOnInit(): void {\n this.Subscriptions.push(LayoutService.SelectedItem.subscribe((item) => {\n if (this.DataBindingChangedSubscription != null) {\n this.DataBindingChangedSubscription.unsubscribe();\n this.DataBindingChangedSubscription = null;\n }\n this.SelectedItem = item;\n if (this.SelectedItemValue.DataBindingChanged) {\n this.DataBindingChangedSubscription = this.SelectedItemValue.DataBindingChanged.subscribe((Property) => {\n this.ReadQueries();\n });\n }\n this.onItemSet();\n }));\n this.Subscriptions.push(LayoutService.SelectedLayout.subscribe((layout) => {\n this.Layout = LayoutHelper.GetActiveResolution(layout);\n this.ReadQueries();\n }));\n this.service.ReadPaletteInfos().subscribe(x => {\n if (x) {\n this.ChartPalettes = x;\n }\n });\n }\n\n ngOnDestroy() {\n this.Subscriptions.forEach(x => { x.unsubscribe(); });\n }\n\n UsePaletteForSingleSeriesChanged() {\n if (this.SelectedItemValue && this.SelectedItemValue.ValuesChanged) {\n this.SelectedItemValue.ValuesChanged.next('UsePaletteForSingleSeries');\n }\n }\n\n ReadQueries() {\n let data;\n if (this.Layout && this.Layout.Datadescriptions && this.Layout.Datadescriptions.length > 0 &&\n this.SelectedItem && this.SelectedItem.Query) {\n data = this.Layout.Datadescriptions.find(x => x.ID === this.SelectedItem.Query);\n }\n this.Data = data;\n this.CreateColumns();\n }\n\n CreateColumns() {\n const defCols = [];\n const numCols = [];\n const textCols = [];\n const dateCols = [];\n const axisMappings = [];\n if (this.Data && this.Data.Datadescription) {\n if (this.Data.IsRelational) {\n if (this.Data.Datadescription.Fields && this.Data.Datadescription.Fields.length > 0) {\n this.Data.Datadescription.Fields.forEach((column) => {\n const col = {\n Caption: column.Caption,\n Name: '' + column.ID\n };\n if (!column.Type || column.Type === 'System.Double' || column.Type === 'System.Int16' ||\n column.Type === 'System.Int32' || column.Type === 'System.Int64' || column.Type === 'System.Decimal') {\n numCols.push(col);\n defCols.push(col);\n } else if (column.Type === 'System.String') {\n textCols.push(col);\n defCols.push(col);\n } else if (column.Type === 'System.DateTime') {\n dateCols.push(col);\n defCols.push(col);\n }\n });\n }\n } else {\n let found = false;\n if (this.Data.Datadescription.YLevelNodes && this.Data.Datadescription.YLevelNodes.Areas) {\n let seriesMap = {};\n if (this.SelectedItemValue && this.SelectedItemValue.AdditionalAxisMapping) {\n const list = this.SelectedItemValue.AdditionalAxisMapping[this.Data.ID];\n if (list) {\n seriesMap = list;\n }\n }\n this.Data.Datadescription.YLevelNodes.Areas.forEach(area => {\n const captions = [];\n let lnID = '-1';\n if (area.Tuples && area.Tuples.length > 0) {\n area.Tuples.some(t => {\n if (t.Levels && t.Levels.length > 0) {\n t.Levels.forEach(l => {\n const lev = plainToClass(LevelNode, l);\n captions.push(lev.toString());\n lnID = '' + lev.UniqueID;\n });\n return true;\n }\n return false;\n });\n }\n if (area.Measures && area.Measures.length > 0) {\n found = true;\n area.Measures.forEach(m => {\n const mi = plainToClass(MeasureInfo, m);\n // Hier vielleicht noch auf Measure-Typ pr�fen\n numCols.push({\n Caption: mi.toString(),\n Name: '' + mi.UniqueID\n });\n const amKey = lnID + '_' + mi.UniqueID;\n axisMappings.push({\n Caption: [...captions, mi.Caption].join(' - '),\n Key: amKey,\n Selected: seriesMap[amKey] === true\n });\n });\n } else if (captions.length > 0) {\n const amKey = lnID + '_';\n axisMappings.push({\n Caption: [...captions].join(' - '),\n Key: amKey,\n Selected: seriesMap[amKey] === true\n });\n }\n });\n }\n if (!found && this.Data.Datadescription.XLevelNodes && this.Data.Datadescription.XLevelNodes.Areas) {\n this.Data.Datadescription.XLevelNodes.Areas.forEach(area => {\n if (area.Measures && area.Measures.length > 0) {\n found = true;\n area.Measures.forEach(m => {\n const mi = plainToClass(MeasureInfo, m);\n // Hier vielleicht noch auf Measure-Typ pr�fen\n numCols.push({\n Caption: mi.toString(),\n Name: '' + mi.UniqueID\n });\n });\n }\n });\n }\n }\n }\n this.DefaultAxisColumns = defCols;\n this.NumericColumns = numCols;\n this.TextColumns = textCols;\n this.DateColumns = dateCols;\n this.SeriesAdditionalAxisMapping = axisMappings;\n this.updateChartType();\n }\n\n onItemSet() {\n if (this.SelectedItem) {\n this.ReadQueries();\n if (!this.SelectedItem.FormatTasks) {\n this.SelectedItem.FormatTasks = [];\n }\n if (!this.SelectedItem.DataTasks) {\n this.SelectedItem.DataTasks = [];\n }\n if (this.SelectedItem.ChartSettings) {\n this.SelectedItem.ChartSettings = plainToClass(ChartSettings, this.SelectedItem.ChartSettings);\n } else {\n this.SelectedItem.ChartSettings = ChartSettings.GetDefault();\n }\n this.ChartSettingsValue = this.SelectedItem.ChartSettings;\n } else {\n this.ChartSettingsValue = ChartSettings.GetDefault();\n }\n if (!this.ChartSettingsValue.LabelAxis) {\n this.ChartSettingsValue.LabelAxis = new AxisSettings();\n }\n if (this.ChartSettingsValue.ValueAxes) {\n while (this.ChartSettingsValue.ValueAxes.length < 2) {\n this.ChartSettingsValue.ValueAxes.push(new ContinuousAxisSettings());\n }\n } else {\n this.ChartSettingsValue.ValueAxes = [new ContinuousAxisSettings(), new ContinuousAxisSettings()];\n }\n this.updateChartType();\n }\n\n axisMappingChanged(item) {\n if (item && this.SelectedItemValue && this.Data) {\n if (item.Selected) {\n let list;\n if (this.SelectedItemValue.AdditionalAxisMapping) {\n list = this.SelectedItemValue.AdditionalAxisMapping[this.Data.ID];\n if (!list) {\n list = {};\n this.SelectedItemValue.AdditionalAxisMapping[this.Data.ID] = list;\n }\n } else {\n list = {};\n this.SelectedItemValue.AdditionalAxisMapping = {};\n this.SelectedItemValue.AdditionalAxisMapping[this.Data.ID] = list\n }\n list[item.Key] = true;\n this.optionChanged('TargetAxis');\n } else {\n if (this.SelectedItemValue.AdditionalAxisMapping) {\n const list = this.SelectedItemValue.AdditionalAxisMapping[this.Data.ID];\n if (list) {\n delete list[item.Key];\n this.optionChanged('TargetAxis');\n }\n }\n }\n }\n }\n\n updateChartType() {\n if (this.Data) {\n const axisColumn = this.ChartSettingsValue['AxisColumn'];\n switch (this.ChartSettingsValue.ChartType) {\n case ChartType.AnnotationChart:\n if (!this.ChartSettingsValue.AnnotationSettings) {\n this.ChartSettingsValue.AnnotationSettings = new AnnotationChartSettings();\n }\n if (axisColumn) {\n ChartReportObjectMenuTab.CheckPropList(axisColumn, [{ Prop: 'ColumnName', List: this.DateColumns }]);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n if (this.ChartSettingsValue.Series) {\n this.ChartSettingsValue.Series.forEach(col => {\n ChartReportObjectMenuTab.CheckPropList(col, [\n { Prop: 'ColumnName', List: this.NumericColumns },\n { Prop: 'AnnotationTitleColumn', List: this.TextColumns },\n { Prop: 'AnnotationTextColumn', List: this.TextColumns },\n ]);\n });\n }\n break;\n case ChartType.AreaChart:\n case ChartType.Bar:\n case ChartType.BarChart:\n case ChartType.ColumnChart:\n case ChartType.Line:\n case ChartType.LineChart:\n case ChartType.ScatterChart:\n if (axisColumn) {\n ChartReportObjectMenuTab.CheckPropList(axisColumn, [{ Prop: 'ColumnName', List: this.DefaultAxisColumns }]);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n this.checkAxisDateColumn();\n if (this.ChartSettingsValue.Series) {\n this.ChartSettingsValue.Series.forEach(col => {\n ChartReportObjectMenuTab.CheckPropList(col, [{ Prop: 'ColumnName', List: this.NumericColumns }]);\n });\n }\n break;\n case ChartType.Histogram:\n if (axisColumn) {\n ChartReportObjectMenuTab.CheckPropList(axisColumn, [{ Prop: 'ColumnName', List: this.TextColumns }]);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n if (this.ChartSettingsValue.Series) {\n this.ChartSettingsValue.Series.forEach(col => {\n ChartReportObjectMenuTab.CheckPropList(col, [{ Prop: 'ColumnName', List: this.NumericColumns }]);\n });\n }\n break;\n case ChartType.polarArea:\n case ChartType.radar:\n if (axisColumn) {\n ChartReportObjectMenuTab.CheckPropList(axisColumn, [{ Prop: 'ColumnName', List: this.DefaultAxisColumns }]);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n if (this.ChartSettingsValue.Series) {\n this.ChartSettingsValue.Series.forEach(col => {\n ChartReportObjectMenuTab.CheckPropList(col, [{ Prop: 'ColumnName', List: this.NumericColumns }]);\n });\n }\n break;\n case ChartType.heatmap:\n if (!this.ChartSettingsValue.HeatMapSettings) {\n this.ChartSettingsValue.HeatMapSettings = new HeatMapChartSettings();\n }\n if (axisColumn) {\n ChartReportObjectMenuTab.CheckPropList(axisColumn, [{ Prop: 'ColumnName', List: this.DefaultAxisColumns }]);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n if (this.ChartSettingsValue.Series) {\n this.ChartSettingsValue.Series.forEach(col => {\n ChartReportObjectMenuTab.CheckPropList(col, [{ Prop: 'ColumnName', List: this.NumericColumns }]);\n });\n }\n break;\n break;\n case ChartType.ComboChart:\n if (axisColumn) {\n ChartReportObjectMenuTab.CheckPropList(axisColumn, [{ Prop: 'ColumnName', List: this.DefaultAxisColumns }]);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n this.checkAxisDateColumn();\n if (this.ChartSettingsValue.Series) {\n this.ChartSettingsValue.Series.forEach(col => {\n if (col.Type === SeriesType.candlesticks) {\n ChartReportObjectMenuTab.CheckPropList(col, [\n { Prop: 'Minimum', List: this.NumericColumns },\n { Prop: 'Initial', List: this.NumericColumns },\n { Prop: 'Final', List: this.NumericColumns },\n { Prop: 'Maximum', List: this.NumericColumns }\n ]);\n } else {\n ChartReportObjectMenuTab.CheckPropList(col, [{ Prop: 'ColumnName', List: this.NumericColumns }]);\n }\n });\n }\n break;\n case ChartType.BubbleChart:\n if (!this.ChartSettingsValue.BubbleSettings) {\n this.ChartSettingsValue.BubbleSettings = new BubbleChartSettings();\n }\n if (axisColumn) {\n ChartReportObjectMenuTab.CheckPropList(axisColumn, []);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n if (this.ChartSettingsValue.Series && this.ChartSettingsValue.Series.length > 0) {\n ChartReportObjectMenuTab.CheckPropList(this.ChartSettingsValue.Series[0], [\n { Prop: 'IDColumn', List: this.TextColumns },\n { Prop: 'XValue', List: this.NumericColumns },\n { Prop: 'YValue', List: this.NumericColumns },\n { Prop: 'Radius', List: this.NumericColumns },\n { Prop: 'Grouping', List: this.NumericColumns.concat(this.TextColumns) }\n ]);\n } else {\n this.ChartSettingsValue.Series = [new SeriesSettings()];\n }\n break;\n case ChartType.PieChart:\n case ChartType.DonutChart:\n case ChartType.Gauge:\n case ChartType.radialBar:\n if (axisColumn) {\n ChartReportObjectMenuTab.CheckPropList(axisColumn, [{ Prop: 'ColumnName', List: this.TextColumns }]);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n if (this.ChartSettingsValue.Series && this.ChartSettingsValue.Series.length > 0) {\n ChartReportObjectMenuTab.CheckPropList(this.ChartSettingsValue.Series[0],\n [{ Prop: 'ColumnName', List: this.NumericColumns }]);\n } else {\n this.ChartSettingsValue.Series = [new SeriesSettings()];\n }\n break;\n case ChartType.GeoChart:\n if (!this.ChartSettingsValue.GeoSettings) {\n this.ChartSettingsValue.GeoSettings = new GeoChartSettings();\n }\n if (axisColumn) {\n ChartReportObjectMenuTab.CheckPropList(axisColumn, [{ Prop: 'ColumnName', List: this.TextColumns }]);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n if (this.ChartSettingsValue.Series && this.ChartSettingsValue.Series.length > 0) {\n ChartReportObjectMenuTab.CheckPropList(this.ChartSettingsValue.Series[0],\n [{ Prop: 'ColumnName', List: this.NumericColumns }]);\n } else {\n this.ChartSettingsValue.Series = [new SeriesSettings()];\n }\n break;\n case ChartType.Map:\n if (axisColumn) {\n ChartReportObjectMenuTab.CheckPropList(axisColumn, [{ Prop: 'ColumnName', List: this.TextColumns }]);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n if (this.ChartSettingsValue.Series && this.ChartSettingsValue.Series.length > 0) {\n ChartReportObjectMenuTab.CheckPropList(this.ChartSettingsValue.Series[0],\n [{ Prop: 'ColumnName', List: this.DefaultAxisColumns }]);\n } else {\n this.ChartSettingsValue.Series = [new SeriesSettings()];\n }\n break;\n case ChartType.SteppedAreaChart:\n if (axisColumn) {\n ChartReportObjectMenuTab.CheckPropList(axisColumn, [{ Prop: 'ColumnName', List: this.TextColumns }]);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n if (this.ChartSettingsValue.Series) {\n this.ChartSettingsValue.Series.forEach(col => {\n ChartReportObjectMenuTab.CheckPropList(col, [{ Prop: 'ColumnName', List: this.NumericColumns }]);\n });\n }\n break;\n case ChartType.WordTree:\n if (this.ChartSettingsValue.Series && this.ChartSettingsValue.Series.length > 0) {\n ChartReportObjectMenuTab.CheckPropList(this.ChartSettingsValue.Series[0], [\n { Prop: 'IDColumn', List: this.DefaultAxisColumns },\n { Prop: 'LabelColumn', List: this.TextColumns },\n { Prop: 'ParentID', List: this.DefaultAxisColumns },\n { Prop: 'ColumnName', List: this.NumericColumns }\n ]);\n } else {\n this.ChartSettingsValue.Series = [new SeriesSettings()];\n }\n break;\n case ChartType.OrgChart:\n if (this.ChartSettingsValue.Series && this.ChartSettingsValue.Series.length > 0) {\n ChartReportObjectMenuTab.CheckPropList(this.ChartSettingsValue.Series[0], [\n { Prop: 'IDColumn', List: this.DefaultAxisColumns },\n { Prop: 'ParentID', List: this.DefaultAxisColumns },\n { Prop: 'Description', List: this.DefaultAxisColumns }\n ]);\n } else {\n this.ChartSettingsValue.Series = [new SeriesSettings()];\n }\n break;\n case ChartType.TreeMap:\n if (this.ChartSettingsValue.Series && this.ChartSettingsValue.Series.length > 0) {\n ChartReportObjectMenuTab.CheckPropList(this.ChartSettingsValue.Series[0], [\n { Prop: 'IDColumn', List: this.DefaultAxisColumns },\n { Prop: 'ParentID', List: this.DefaultAxisColumns },\n { Prop: 'ColumnName', List: this.NumericColumns },\n { Prop: 'ColorValue', List: this.NumericColumns }\n ]);\n } else {\n this.ChartSettingsValue.Series = [new SeriesSettings()];\n }\n break;\n case ChartType.Calendar:\n if (!this.ChartSettingsValue.CalendarSettings) {\n this.ChartSettingsValue.CalendarSettings = new CalendarChartSettings();\n }\n if (axisColumn) {\n ChartReportObjectMenuTab.CheckPropList(axisColumn, [{ Prop: 'ColumnName', List: this.DateColumns }]);\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n if (this.ChartSettingsValue.Series && this.ChartSettingsValue.Series.length > 0) {\n ChartReportObjectMenuTab.CheckPropList(this.ChartSettingsValue.Series[0], [\n { Prop: 'ColumnName', List: this.NumericColumns }\n ]);\n } else {\n this.ChartSettingsValue.Series = [new SeriesSettings()];\n }\n\n if (this.ChartSettingsValue.Series) {\n this.ChartSettingsValue.Series.forEach(col => {\n ChartReportObjectMenuTab.CheckPropList(col, [{ Prop: 'ColumnName', List: this.NumericColumns }]);\n });\n }\n break;\n case ChartType.Gantt:\n if (this.ChartSettingsValue.Series && this.ChartSettingsValue.Series.length > 0) {\n ChartReportObjectMenuTab.CheckPropList(this.ChartSettingsValue.Series[0], [\n { Prop: 'TaskID', List: this.TextColumns },\n { Prop: 'TaskName', List: this.TextColumns },\n { Prop: 'Grouping', List: this.TextColumns },\n { Prop: 'StartValue', List: this.DateColumns },\n { Prop: 'EndValue', List: this.DateColumns },\n { Prop: 'Duration', List: this.NumericColumns },\n { Prop: 'Completed', List: this.NumericColumns },\n { Prop: 'Dependency', List: this.TextColumns }\n ]);\n } else {\n this.ChartSettingsValue.Series = [new SeriesSettings()];\n }\n break;\n case ChartType.Timeline:\n if (this.ChartSettingsValue.Series && this.ChartSettingsValue.Series.length > 0) {\n const concatList = this.DateColumns.concat(this.NumericColumns);\n ChartReportObjectMenuTab.CheckPropList(this.ChartSettingsValue.Series[0], [\n { Prop: 'ColumnName', List: this.TextColumns },\n { Prop: 'StartValue', List: concatList },\n { Prop: 'EndValue', List: concatList },\n { Prop: 'LabelColumn', List: this.TextColumns }\n ]);\n } else {\n this.ChartSettingsValue.Series = [new SeriesSettings()];\n }\n break;\n case ChartType.CandlestickChart:\n if (axisColumn) {\n const colName = axisColumn.ColumnName;\n if (colName && !this.DefaultAxisColumns.some(x => x.Name === colName)) {\n axisColumn.ColumnName = null;\n }\n } else {\n this.ChartSettingsValue['AxisColumn'] = {};\n }\n this.checkAxisDateColumn();\n if (this.ChartSettingsValue.Series) {\n this.ChartSettingsValue.Series.forEach(col => {\n ChartReportObjectMenuTab.CheckPropList(col, [\n { Prop: 'Minimum', List: this.NumericColumns },\n { Prop: 'Initial', List: this.NumericColumns },\n { Prop: 'Final', List: this.NumericColumns },\n { Prop: 'Maximum', List: this.NumericColumns }\n ]);\n });\n }\n break;\n }\n }\n }\n\n optionChanged(prop: string) {\n if (this.SelectedItemValue && this.SelectedItemValue.Element && typeof this.SelectedItemValue.Element.ChartPropChanged === 'function') {\n this.SelectedItemValue.Element.ChartPropChanged(prop);\n }\n }\n\n onChartTypeChanged() {\n this.updateChartType();\n this.optionChanged('ChartType');\n }\n\n addSeriesColumn() {\n if (this.ChartSettingsValue.Series) {\n this.ChartSettingsValue.Series.push(new SeriesSettings());\n } else {\n this.ChartSettingsValue.Series = [new SeriesSettings()];\n }\n }\n\n deleteSeriesColumn(i) {\n if (this.ChartSettingsValue.Series) {\n this.ChartSettingsValue.Series.splice(i, 1);\n this.optionChanged('Series');\n }\n }\n\n onDefaultAxisChanged() {\n if (this.ChartSettingsValue) {\n const axisCol = this.ChartSettingsValue['AxisColumn'];\n const colName = axisCol.ColumnName;\n const col = this.DefaultAxisColumns.find(x => x.Name === colName);\n if (col) {\n if (!this.ChartSettingsValue.LabelAxis) {\n this.ChartSettingsValue.LabelAxis = new AxisSettings();\n }\n this.ChartSettingsValue.LabelAxis.Title = col.TranslatedCaption;\n }\n this.checkAxisDateColumn();\n }\n this.optionChanged('AxisColumn');\n }\n\n addColor(list) {\n if (list) {\n list.push(new ColorAxisValue());\n }\n }\n\n getColor(series) {\n if (series && typeof series.Color === 'string') {\n return Color.FromHex(series.Color);\n }\n return new Color();\n }\n\n changeColor(series: SeriesSettings) {\n if (series) {\n const changedColor = series['ChangedColor'];\n if (changedColor) {\n series.Color = Color.HexFromColor(changedColor);\n this.optionChanged('Series.Color');\n delete series['ChangedColor'];\n }\n }\n }\n\n clearColor(series: SeriesSettings) {\n if (series) {\n series.Color = null;\n this.optionChanged('Series.Color');\n }\n }\n\n addColorRange() {\n if (this.ChartSettingsValue && this.ChartSettingsValue.HeatMapSettings) {\n if (this.ChartSettingsValue.HeatMapSettings.ColorValues) {\n this.ChartSettingsValue.HeatMapSettings.ColorValues.push(new ColorRangeValue());\n } else {\n this.ChartSettingsValue.HeatMapSettings.ColorValues = [new ColorRangeValue()];\n }\n }\n }\n\n deleteColorRange(i) {\n if (this.ChartSettingsValue && this.ChartSettingsValue.HeatMapSettings && this.ChartSettingsValue.HeatMapSettings.ColorValues) {\n this.ChartSettingsValue.HeatMapSettings.ColorValues.splice(i, 1);\n this.optionChanged('HeatMapSettings.ColorValues');\n }\n }\n\n checkAxisDateColumn() {\n const axisColumn = this.ChartSettingsValue['AxisColumn'];\n this.AxisIsDateColumn = axisColumn && axisColumn.ColumnName &&\n this.DateColumns.concat(this.NumericColumns).some(x => x.Name === axisColumn.ColumnName);\n }\n\n addPaletteColor() {\n if (this.ChartSettingsValue) {\n if (this.ChartSettingsValue.SeriesColors) {\n this.ChartSettingsValue.SeriesColors.push('#000000');\n } else {\n this.ChartSettingsValue.SeriesColors = ['#000000'];\n }\n this.optionChanged('SeriesColors');\n }\n }\n clearPalette() {\n if (this.ChartSettingsValue) {\n this.ChartSettingsValue.SeriesColors = [];\n this.optionChanged('SeriesColors');\n }\n }\n DropPaletteEntry(event) {\n if (this.ChartSettingsValue && this.ChartSettingsValue.SeriesColors && event.previousIndex !== event.currentIndex) {\n moveItemInArray(this.ChartSettingsValue.SeriesColors, event.previousIndex, event.currentIndex);\n this.optionChanged('SeriesColors');\n }\n }\n paletteColorChanged(event, i) {\n if (this.ChartSettingsValue && this.ChartSettingsValue.SeriesColors && i < this.ChartSettingsValue.SeriesColors.length) {\n if (event == null) {\n this.ChartSettingsValue.SeriesColors.splice(i, 1);\n } else {\n this.ChartSettingsValue.SeriesColors.splice(i, 1, Color.HexFromColor(event, true));\n }\n this.optionChanged('SeriesColors');\n }\n }\n getPaletteColor(col) {\n return Color.FromHex(col);\n }\n}\n\n@Component({\n selector: 'chartsreportobject-property-menu-tab',\n template: ''\n})\nexport class ChartPropertyMenuTab extends APropertyTab {\n static CheckVisible(): boolean {\n const selected = LayoutService.SelectedItem.getValue();\n if (selected && selected.ElementType === 'chartreportObject') {\n return true;\n }\n return false;\n }\n}\n","import { Component, ContentChild, Directive, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { SeriesSettings, TrendLineSettings } from '../../../models/controls/chart.model';\nimport { ChartTrendlineType } from '../../../models/enums/chartcurvetype.enum';\nimport { SeriesType } from '../../../models/enums/seriestype.enum';\nimport { Color } from '../../../models/style/color.model';\n\n@Directive({\n selector: '[seriesColumnsContent]'\n})\nexport class SeriesColumnsContentDirective { }\n\n@Component({\n selector: 'seriesreportobject-menu-control',\n templateUrl: './series.menu.control.html',\n styleUrls: ['./series.menu.control.css']\n})\nexport class SeriesReportObjectMenuControl {\n\n ColorValue: Color;\n ChangedColor: Color;\n SeriesTypes;\n TrendLineTypes;\n TrendLineType = -1;\n\n //#region Series\n SeriesValue: SeriesSettings;\n\n @Input()\n get Series() {\n return this.SeriesValue;\n }\n set Series(val) {\n this.SeriesValue = val;\n this.TrendLineType = -1;\n if (val) {\n this.ColorValue = Color.FromHex(val.Color);\n if (val.TrendLine && typeof val.TrendLine.Type === 'number') {\n this.TrendLineType = val.TrendLine.Type;\n }\n } else {\n this.ColorValue = new Color();\n }\n this.SeriesChange.emit(this.SeriesValue);\n }\n\n @Output() SeriesChange = new EventEmitter();\n //#endregion\n\n //#region PlaceHolder\n PlaceHolderValue;\n\n @Input()\n get PlaceHolder() {\n return this.PlaceHolderValue;\n }\n set PlaceHolder(val) {\n this.PlaceHolderValue = val;\n this.PlaceHolderChange.emit(this.PlaceHolderValue);\n }\n\n @Output() PlaceHolderChange = new EventEmitter();\n //#endregion\n\n //#region Columns\n ColumnsValue;\n\n @Input()\n get Columns() {\n return this.ColumnsValue;\n }\n set Columns(val) {\n this.ColumnsValue = val;\n this.ColumnsChange.emit(this.ColumnsValue);\n }\n\n @Output() ColumnsChange = new EventEmitter();\n //#endregion\n\n //#region Columns\n LabelColumnsValue;\n\n @Input()\n get LabelColumns() {\n return this.LabelColumnsValue;\n }\n set LabelColumns(val) {\n this.LabelColumnsValue = val;\n this.LabelColumnsChange.emit(this.LabelColumnsValue);\n }\n\n @Output() LabelColumnsChange = new EventEmitter();\n //#endregion\n\n //#region ShowColor\n ShowColorValue = false;\n\n @Input()\n get ShowColor() {\n return this.ShowColorValue;\n }\n set ShowColor(val) {\n this.ShowColorValue = val;\n this.ShowColorChange.emit(this.ShowColorValue);\n }\n\n @Output() ShowColorChange = new EventEmitter();\n //#endregion\n\n //#region ShowType\n ShowTypeValue = false;\n\n @Input()\n get ShowType() {\n return this.ShowTypeValue;\n }\n set ShowType(val) {\n this.ShowTypeValue = val;\n this.ShowTypeChange.emit(this.ShowTypeValue);\n }\n\n @Output() ShowTypeChange = new EventEmitter();\n //#endregion\n\n //#region ShowTrendline\n ShowTrendlineValue = false;\n\n @Input()\n get ShowTrendline() {\n return this.ShowTrendlineValue;\n }\n set ShowTrendline(val) {\n this.ShowTrendlineValue = val;\n this.ShowTrendlineChange.emit(this.ShowTrendlineValue);\n }\n\n @Output() ShowTrendlineChange = new EventEmitter();\n //#endregion\n\n //#region ShowDelete\n ShowDeleteValue = true;\n\n @Input()\n get ShowDelete() {\n return this.ShowDeleteValue;\n }\n set ShowDelete(val) {\n this.ShowDeleteValue = val;\n this.ShowDeleteChange.emit(this.ShowDeleteValue);\n }\n\n @Output() ShowDeleteChange = new EventEmitter();\n //#endregion\n\n //#region MultipleAxis\n MultipleAxisValue = false;\n\n @Input()\n get MultipleAxis() {\n return this.MultipleAxisValue;\n }\n set MultipleAxis(val) {\n this.MultipleAxisValue = val;\n this.MultipleAxisChange.emit(this.MultipleAxisValue);\n }\n\n @Output() MultipleAxisChange = new EventEmitter();\n\n get SeriesOnSecondAxis() {\n return this.SeriesValue && this.SeriesValue.TargetAxis == 1;\n }\n set SeriesOnSecondAxis(val) {\n if (this.SeriesValue) {\n this.SeriesValue.TargetAxis = val ? 1 : 0;\n }\n }\n //#endregion\n\n @Output() SeriesOptionChanged = new EventEmitter();\n @Output() SeriesDeleted = new EventEmitter();\n\n @ContentChild(SeriesColumnsContentDirective, { read: TemplateRef }) seriesColumnsContentTemplate;\n\n constructor() {\n this.SeriesTypes = EnumHelper.GetDropdownValues(SeriesType);\n this.TrendLineTypes = EnumHelper.GetDropdownValues(ChartTrendlineType);\n }\n\n optionChanged(val: string) {\n this.SeriesOptionChanged.emit(val);\n }\n\n delete() {\n this.SeriesDeleted.emit();\n }\n\n colorChanged(color) {\n if (color instanceof Color) {\n this.ChangedColor = color;\n }\n }\n\n changeColor() {\n if (this.ChangedColor instanceof Color) {\n this.ColorValue = this.ChangedColor;\n this.ChangedColor = null;\n if (this.SeriesValue) {\n this.SeriesValue.Color = Color.HexFromColor(this.ColorValue);\n this.optionChanged('Series.Color');\n }\n }\n }\n\n clearColor() {\n this.ColorValue = null;\n this.ChangedColor = null;\n if (this.SeriesValue) {\n this.SeriesValue.Color = null;\n this.optionChanged('Series.Color');\n }\n }\n\n setTrendLine(ev) {\n if (this.Series) {\n if (ev && typeof ev.value === 'number' && ev.value >= 0) {\n if (!this.Series.TrendLine) {\n this.Series.TrendLine = new TrendLineSettings();\n }\n this.Series.TrendLine.Type = ev.value;\n } else {\n this.Series.TrendLine = null;\n }\n this.optionChanged('Series.Trendline');\n }\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { MultiCacheService } from '../../../cache/multi/cache.service';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { PlanType } from '../../../models/enums/plantype.enum';\nimport { CellReferenceArea, CellReferenceLevel } from '../../../models/planning/cell.reference.model';\nimport { MultiReportingService } from '../../../services/reporting.service';\n\n@Component({\n selector: 'macplanning-active-cell-menu-tab',\n templateUrl: './activecell.menu.tab.html'\n})\nexport class MacPlanningActiveCellMenuTab implements OnDestroy {\n\n //#region SelectedItem\n SelectedItemValue;\n\n @Input()\n get SelectedItem() {\n return this.SelectedItemValue;\n }\n set SelectedItem(val) {\n this.SelectedItemValue = val;\n if (this.SelectedItem && this.SelectedItem.Element) {\n if (this.SelectedItem.Element.ActiveCell) {\n this.Subscriptions['ActiveCell'] = this.SelectedItem.Element.ActiveCell.subscribe((item) => {\n this.ActiveCell = item;\n });\n }\n }\n this.SelectedItemChange.emit(this.SelectedItemValue);\n }\n\n @Output() SelectedItemChange = new EventEmitter();\n //#endregion\n ActiveCellValue;\n get ActiveCell() {\n return this.ActiveCellValue;\n }\n set ActiveCell(val) {\n if (val && Array.isArray(val) && val.length == 1) {\n if (this.ActiveCellValue) {\n if (this.SelectedItemValue.CellDescriptions && this.SelectedItemValue.CellDescriptions[this.ActiveCell.Sheet] && this.SelectedItemValue.CellDescriptions[this.ActiveCell.Sheet][this.ActiveCell.RowIndex] && this.SelectedItemValue.CellDescriptions[this.ActiveCell.Sheet][this.ActiveCell.RowIndex][this.ActiveCell.ColumnName]) {\n let cell = this.SelectedItemValue.CellDescriptions[this.ActiveCell.Sheet][this.ActiveCell.RowIndex][this.ActiveCell.ColumnName];\n if (!(cell.ViewFormula || cell.EditFormula || cell.UseReference)) {\n delete this.SelectedItemValue.CellDescriptions[this.ActiveCell.Sheet][this.ActiveCell.RowIndex][this.ActiveCell.ColumnName];\n if (Object.keys(this.SelectedItemValue.CellDescriptions[this.ActiveCell.Sheet][this.ActiveCell.RowIndex]).length == 0) {\n delete this.SelectedItemValue.CellDescriptions[this.ActiveCell.Sheet][this.ActiveCell.RowIndex];\n }\n }\n }\n }\n this.ActiveCellValue = val[0];\n if (this.SelectedItemValue && this.ActiveCell) {\n if (!this.SelectedItemValue.CellDescriptions) {\n this.SelectedItemValue.CellDescriptions = {};\n }\n if (!this.SelectedItemValue.CellDescriptions[this.ActiveCell.Sheet]) {\n this.SelectedItemValue.CellDescriptions[this.ActiveCell.Sheet] = {};\n }\n if (!this.SelectedItemValue.CellDescriptions[this.ActiveCell.Sheet][this.ActiveCell.RowIndex]) {\n this.SelectedItemValue.CellDescriptions[this.ActiveCell.Sheet][this.ActiveCell.RowIndex] = {};\n }\n if (!this.SelectedItemValue.CellDescriptions[this.ActiveCell.Sheet][this.ActiveCell.RowIndex][this.ActiveCell.ColumnName]) {\n this.SelectedItemValue.CellDescriptions[this.ActiveCell.Sheet][this.ActiveCell.RowIndex][this.ActiveCell.ColumnName] = {};\n }\n if (!this.SelectedItemValue.CellDescriptions[this.ActiveCell.Sheet][this.ActiveCell.RowIndex][this.ActiveCell.ColumnName].Reference) {\n this.SelectedItemValue.CellDescriptions[this.ActiveCell.Sheet][this.ActiveCell.RowIndex][this.ActiveCell.ColumnName].Reference = {\n X: {},\n Y: {}\n }\n }\n }\n if (this.Cell.Reference.UseLevel) {\n this.ReferenceType = 'level';\n }\n if (this.Cell.Reference.UseMeasure) {\n this.ReferenceType = 'measure';\n }\n if (this.Cell.Reference.UseFullReference) {\n this.ReferenceType = 'full';\n }\n \n this.ReferenceTypeChanged();\n let cells = [];\n let rows = Object.keys(this.SelectedItemValue.CellDescriptions[this.ActiveCell.Sheet]);\n rows.forEach((row) => {\n let columns = Object.keys(this.SelectedItemValue.CellDescriptions[this.ActiveCell.Sheet][row]);\n columns.forEach((column) => {\n if (this.ActiveCell.RowIndex != row || this.ActiveCell.ColumnName != column) {\n cells.push({\n Name: column + (parseInt(row) + 1)\n });\n }\n })\n })\n this.UsedCells = cells.sort((a, b) => {\n if (a.Name < b.Name) {\n return -1;\n }\n if (a.Name > b.Name) {\n return 1;\n }\n if (a.Name < b.Name) {\n return 0;\n }\n });\n this.SetSelectedData();\n } else {\n this.ActiveCellValue = null;\n }\n }\n ReferenceType;\n UsedCells;\n Members;\n Subscriptions = {};\n PlanTypes;\n get Variables() {\n let items = [];\n if (this.SelectedItemValue.CellDescriptions[this.ActiveCell.Sheet][this.ActiveCell.RowIndex][this.ActiveCell.ColumnName].References) {\n items.push(...this.SelectedItemValue.CellDescriptions[this.ActiveCell.Sheet][this.ActiveCell.RowIndex][this.ActiveCell.ColumnName].References);\n }\n if (this.SelectedItem.References) {\n items.push(...this.SelectedItem.References);\n }\n let sheets = []\n if (this.SelectedItemValue.Sheets) {\n this.SelectedItemValue.Sheets.forEach((sheet) => {\n if (sheet.Name !== this.ActiveCell.Sheet) {\n let item = {\n Name: sheet.Name,\n Children: [\n\n ]\n }\n let cells = [];\n let rows = Object.keys(this.SelectedItemValue.CellDescriptions[sheet.Name]);\n rows.forEach((row) => {\n let columns = Object.keys(this.SelectedItemValue.CellDescriptions[sheet.Name][row]);\n columns.forEach((column) => {\n if (!(sheet.Name == this.ActiveCell.Sheet && this.ActiveCell.RowIndex == row && this.ActiveCell.ColumnName == column)) {\n cells.push({\n Name: sheet.Name + '.' + column + (parseInt(row) + 1)\n });\n }\n })\n })\n item.Children = cells;\n sheets.push(item);\n }\n });\n }\n return [{\n Name: 'References',\n Children: [...items]\n }, {\n Name: \"Cells\",\n Children: this.UsedCells\n }, {\n Name: \"Sheets\",\n Children: sheets\n }];\n }\n constructor(private multiService: MultiReportingService) {\n this.PlanTypes = EnumHelper.GetDropdownValues(PlanType);\n } \n\n ngOnDestroy(): void {\n const keys = Object.keys(this.Subscriptions);\n keys.forEach((key) => {\n this.Subscriptions[key].unsubscribe();\n });\n }\n\n SettingsChanged() {\n this.SelectedItem.ValuesChanged.next();\n }\n SelectedData;\n get Reference() {\n return this.SelectedItemValue.CellDescriptions[this.ActiveCell.Sheet][this.ActiveCell.RowIndex][this.ActiveCell.ColumnName].Reference;\n };\n get Data() {\n return this.SelectedItem.Element.DataValue;\n }\n get Cell() {\n return this.SelectedItemValue.CellDescriptions[this.ActiveCell.Sheet][this.ActiveCell.RowIndex][this.ActiveCell.ColumnName];\n }\n Description;\n Axis = ['X', 'Y'];\n Areas = null;\n async SetSelectedData() {\n this.Description = {\n X: [],\n Y: []\n }\n this.SelectedData = null;\n if (this.Reference.DataDescriptionID) {\n this.SelectedData = this.Data.find((value) => { return this.Reference.DataDescriptionID == value.ID });\n if (this.SelectedData.IsRelational) {\n\n } else {\n if (!this.Reference.X) {\n this.Reference.X = {};\n }\n if (!this.Reference.Y) {\n this.Reference.Y = {};\n }\n this.FillAxis(this.SelectedData.Datadescription.XLevelNodes, this.Description.X, this.Reference.X);\n this.FillAxis(this.SelectedData.Datadescription.YLevelNodes, this.Description.Y, this.Reference.Y);\n this.AxisSelected();\n }\n }\n }\n ReferenceTypeChanged() {\n this.Cell.Reference.UseLevel = false;\n this.Cell.Reference.UseMeasure = false;\n this.Cell.Reference.UseFullReference = false;\n if (this.ReferenceType == 'level') {\n this.Cell.Reference.UseLevel = true;\n }\n if (this.ReferenceType == 'measure') {\n this.Cell.Reference.UseMeasure = true;\n }\n if (this.ReferenceType == 'full') {\n this.Cell.Reference.UseFullReference = true;\n }\n }\n DataDescriptionSelected() {\n this.Reference.X = {};\n this.Reference.Y = {};\n this.SetSelectedData();\n this.CheckRefresh();\n }\n AxisSelected() {\n if (this.Cell.Reference.Axis) {\n this.Areas = Object.keys(this.Description[this.Cell.Reference.Axis]);\n }\n this.CheckRefresh();\n }\n MeasureSelected(Measures) {\n this.Cell.Reference.MeasureCaption = null;\n if (Measures) {\n let measure = Measures.find((value) => {\n return value.Value == this.Cell.Reference.Measure;\n });\n if (measure) {\n this.Cell.Reference.MeasureCaption = measure.Caption;\n }\n }\n this.CheckRefresh();\n }\n LevelSelected(Levels) {\n this.Cell.Reference.LevelID = null;\n if (Levels) {\n let level = Levels.find((value) => {\n return value.ID == this.Cell.Reference.Level;\n });\n if (level) {\n this.Cell.Reference.LevelID = level.Value;\n }\n }\n this.CheckRefresh();\n }\n \n FillAxis(Node, Axis, ReferenceAxis) {\n if (!ReferenceAxis) {\n ReferenceAxis = {};\n }\n for (let i = 0; i < Node.Areas.length; i++) {\n let area = {\n Caption: 'Area ' + i,\n ID: i + '',\n Levels: [],\n Measures: []\n }\n if (!ReferenceAxis[area.ID]) {\n let refArea = new CellReferenceArea();\n refArea.AreaID = area.ID;\n refArea.Levels = {};\n if (i == 0) {\n refArea.Selected = true;\n }\n ReferenceAxis[area.ID] = refArea;\n }\n let ll = {};\n Node.Areas[i].Tuples.forEach((tuple) => {\n tuple.Levels.forEach(async (level) => {\n let lev = {\n Caption: level.Caption.DefaultValue,\n Value: level.UniqueID,\n ID: level.Level,\n Members: []\n }\n if (!ReferenceAxis[area.ID].Levels[lev.ID]) {\n let refLevel = new CellReferenceLevel();\n refLevel.LevelID = lev.Value;\n ll[lev.ID] = refLevel;\n } else {\n ll[lev.ID] = ReferenceAxis[area.ID].Levels[lev.ID];\n }\n const cubeLevel = await MultiCacheService.GetLevel(level.Level, this.SelectedData.DataModelID);\n if (cubeLevel) {\n this.multiService.GetMembers(cubeLevel.Parent.Parent.DatasourceID, level.Level, null, null).subscribe(members => {\n const memberList = [];\n if (members) {\n members.forEach(m => {\n memberList.push({\n Caption: m.Caption,\n Value: m.ID\n });\n });\n }\n if (!this.Members) {\n this.Members = {};\n }\n this.Members[level.Level] = memberList;\n });\n }\n area.Levels.push(lev);\n });\n })\n ReferenceAxis[area.ID].Levels = ll;\n Node.Areas[i].Measures.forEach((measure) => {\n area.Measures.push({\n Caption: measure.Caption.DefaultValue,\n Value: measure.UniqueID,\n ID: measure.Measure\n })\n })\n Axis.push(area);\n }\n }\n\n CheckRefresh() {\n let retVal = false;\n if (this.Cell.ViewFormula) {\n retVal = true;\n }\n if (this.Cell.UseReference) {\n if (this.Cell.Reference.UseLevel &&\n this.Cell.Reference.DataDescriptionID != null &&\n this.Cell.Reference.Axis != null &&\n this.Cell.Reference.Area != null &&\n this.Cell.Reference.Level != null &&\n this.Cell.Reference.MemberIndex != null) {\n retVal = true;\n }\n if (this.Cell.Reference.UseMeasure &&\n this.Cell.Reference.DataDescriptionID != null &&\n this.Cell.Reference.Axis != null &&\n this.Cell.Reference.Area != null &&\n this.Cell.Reference.Measure != null &&\n this.Cell.Reference.XLevel != null &&\n this.Cell.Reference.YLevel != null) {\n retVal = true;\n }\n if (this.Cell.Reference.UseFullReference) {\n retVal = true;\n }\n }\n if (retVal) {\n this.SelectedItemValue.Element.RefreshCalculations();\n }\n }\n}","import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { LayoutService } from '../../../services/layout.service';\n\n@Component({\n selector: 'macplanning-format-menu-tab',\n templateUrl: './planning.format.menu.tab.html'\n})\nexport class MacPlanningFormatMenuTab implements OnDestroy {\n\n //#region SelectedItem\n SelectedItemValue;\n\n @Input()\n get SelectedItem() {\n return this.SelectedItemValue;\n }\n set SelectedItem(val) {\n this.SelectedItemValue = val;\n if (this.SelectedItemValue && this.SelectedItemValue.TableSize == null) {\n this.SelectedItemValue.TableSize = {\n Columns: 26,\n Rows: 100\n };\n }\n this.SelectedItemChange.emit(this.SelectedItemValue);\n }\n\n @Output() SelectedItemChange = new EventEmitter();\n //#endregion\n\n //#region Layout\n LayoutValue;\n\n @Input()\n get Layout() {\n return this.LayoutValue;\n }\n set Layout(val) {\n this.LayoutValue = val;\n this.LayoutChange.emit(this.LayoutValue);\n }\n\n @Output() LayoutChange = new EventEmitter();\n //#endregion\n Subscriptions = {};\n constructor() {\n this.Subscriptions['Layout'] = LayoutService.SelectedLayout.subscribe((layout) => {\n this.Layout = layout;\n });\n }\n\n ngOnDestroy(): void {\n const keys = Object.keys(this.Subscriptions);\n keys.forEach((key) => {\n this.Subscriptions[key].unsubscribe();\n });\n }\n\n SettingsChanged() {\n this.SelectedItem.ValuesChanged.next();\n }\n}\n","import { Component } from '@angular/core';\nimport { APropertyTab } from '../../../appbuilder/menutabs/properties/properties.menu.tab';\nimport { LayoutService } from '../../../services/layout.service';\n\n@Component({\n selector: 'macplanning-property-menu-tab',\n templateUrl: './planning.menu.tab.html'\n})\nexport class MacPlanningPropertyMenuTab extends APropertyTab {\n IsMultidimensional = false;\n Layout;\n\n static CheckVisible(): boolean {\n const selected = LayoutService.SelectedItem.getValue();\n if (selected && selected.ElementType === 'planningreportObject') {\n return true;\n }\n return false;\n }\n\n ngOnInit() {\n this.Subscriptions.push(LayoutService.SelectedLayout.subscribe((layout) => {\n this.Layout = layout;\n }));\n super.ngOnInit();\n }\n\n onItemSet() {\n let multi = false;\n if (this.SelectedItem) {\n if (!this.SelectedItem.FormatTasks) {\n this.SelectedItem.FormatTasks = [];\n }\n if (!this.SelectedItem.DataTasks) {\n this.SelectedItem.DataTasks = [];\n }\n if (this.SelectedItem.Query && this.Layout && this.Layout.Datadescriptions) {\n const dataDesc = this.Layout.Datadescriptions.find(x => x.ID === this.SelectedItem.Query);\n if (dataDesc) {\n multi = !dataDesc.IsRelational;\n }\n }\n }\n this.IsMultidimensional = multi;\n }\n\n TasksChanged() {\n this.SelectedItem.Element.RefreshStyles();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'macplanning-references-menu-tab',\n templateUrl: './references.menu.tab.html'\n})\nexport class MacPlanningReferencesMenuTab {\n\n //#region SelectedItem\n SelectedItemValue;\n\n @Input()\n get SelectedItem() {\n return this.SelectedItemValue;\n }\n set SelectedItem(val) {\n this.SelectedItemValue = val;\n if (!this.SelectedItemValue.References) {\n this.SelectedItemValue.References = [];\n }\n this.SelectedItemChange.emit(this.SelectedItemValue);\n }\n\n @Output() SelectedItemChange = new EventEmitter();\n //#endregion\n\n SettingsChanged() {\n this.SelectedItem.ValuesChanged.next();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'macplanning-table-sheets-menu-tab',\n templateUrl: './sheets.menu.tab.html',\n styleUrls: ['./sheets.menu.tab.css']\n})\nexport class MacPlanningSheetsMenuTab {\n\n //#region SelectedItem\n SelectedItemValue;\n\n @Input()\n get SelectedItem() {\n return this.SelectedItemValue;\n }\n set SelectedItem(val) {\n this.SelectedItemValue = val;\n if (this.SelectedItemValue && this.SelectedItemValue.Sheets == null) {\n this.SelectedItemValue.Sheets = [{\n Name: 'Sheet 1',\n TableSize: {\n Columns: 26,\n Rows: 100,\n LineHeight: 25\n }\n }];\n }\n this.SelectedItemChange.emit(this.SelectedItemValue);\n }\n\n @Output() SelectedItemChange = new EventEmitter();\n //#endregion\n SelectedSheet;\n\n SettingsChanged() {\n this.SelectedItem.ValuesChanged.next();\n }\n\n Add() {\n const item = {\n Name: 'NewSheet',\n TableSize: {\n Columns: 26,\n Rows: 100,\n LineHeight: 25\n }\n };\n this.SelectedItemValue.Sheets.push(item);\n this.SelectedSheet = item;\n }\n\n Remove() {\n this.SelectedItemValue.Sheets.splice(this.SelectedItemValue.Sheets.indexOf(this.SelectedSheet), 1);\n this.SelectedSheet = null;\n }\n SelectItem(ref) {\n this.SelectedSheet = ref;\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'macplanning-table-size-menu-tab',\n templateUrl: './size.menu.tab.html'\n})\nexport class MacPlanningSizeMenuTab {\n\n //#region SelectedItem\n SelectedItemValue;\n\n @Input()\n get SelectedItem() {\n return this.SelectedItemValue;\n }\n set SelectedItem(val) {\n this.SelectedItemValue = val;\n if (this.SelectedItemValue && this.SelectedItemValue.TableSize == null) {\n this.SelectedItemValue.TableSize = {\n Columns: 26,\n Rows: 100\n };\n }\n this.SelectedItemChange.emit(this.SelectedItemValue);\n }\n\n @Output() SelectedItemChange = new EventEmitter();\n //#endregion\n\n SettingsChanged() {\n this.SelectedItem.ValuesChanged.next();\n }\n}\n","import { Component } from '@angular/core';\nimport { ALayoutMenuTab } from '../../../appbuilder/common/menutabcontrol/menu.tab.control';\n\n@Component({\n selector: 'queries-select-menu-tab',\n templateUrl: './queries.menu.tab.html',\n styleUrls: ['./queries.menu.tab.css']\n})\nexport class QueriesSelectMenuTab extends ALayoutMenuTab {\n Queries = [];\n\n onLayoutSet() {\n let queries = [];\n if (this.Layout && this.Layout.Datadescriptions) {\n queries = this.Layout.Datadescriptions;\n }\n this.Queries = queries;\n }\n\n queryChanged() {\n if (this.SelectedItemValue) {\n if (this.SelectedItemValue.Element && typeof this.SelectedItemValue.Element.OnDataBindingChanged === 'function') {\n this.SelectedItemValue.Element.OnDataBindingChanged();\n }\n this.onStyleChanged('Queries');\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { ALayoutMenuTab } from '../../../appbuilder/common/menutabcontrol/menu.tab.control';\n\n@Component({\n selector: 'queryselect-menu-tab',\n templateUrl: './query.menu.tab.html',\n styleUrls: ['./query.menu.tab.css']\n})\nexport class QuerySelectMenuTab extends ALayoutMenuTab {\n Queries = [];\n\n onLayoutSet() {\n let queries = [];\n if (this.Layout && this.Layout.Datadescriptions) {\n queries = this.Layout.Datadescriptions;\n }\n this.Queries = queries;\n }\n\n queryChanged() {\n if (this.SelectedItemValue) {\n if (this.SelectedItemValue.Element && typeof this.SelectedItemValue.Element.OnDataBindingChanged === 'function') {\n this.SelectedItemValue.Element.OnDataBindingChanged();\n }\n this.onStyleChanged('Query');\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { ATableMenuTab } from './mactable.menu.tab';\n\n@Component({\n selector: 'mactable-expand-menu-tab',\n templateUrl: './expand.menu.tab.html'\n})\nexport class MacTableExpandMenuTab extends ATableMenuTab {\n}\n","import { Component } from '@angular/core';\nimport { ATableMenuTab } from './mactable.menu.tab';\n\n@Component({\n selector: 'mactable-fix-menu-tab',\n templateUrl: './fix.menu.tab.html'\n})\nexport class MacTableFixMenuTab extends ATableMenuTab {\n}\n","import { Component } from '@angular/core';\nimport { MenuKeyDownHelper } from '../../../helpers/clickstoppropagation.directive';\nimport { Gradient } from '../../../models/style/gradient.model';\nimport { ATableMenuTab } from './mactable.menu.tab';\n\n@Component({\n selector: 'mactable-format-menu-tab',\n templateUrl: './format.menu.tab.html'\n})\nexport class MacTableFormatMenuTab extends ATableMenuTab {\n FirstColor = {};\n SecondColor = {};\n\n private static GetColorPreviewStyle() {\n return {\n 'height': '20px',\n 'width': '20px',\n 'border-radius': '5px',\n 'border': '1px solid lightgray'\n };\n }\n\n OnItemSet() {\n this.FirstColor = MacTableFormatMenuTab.GetColorPreviewStyle();\n this.SecondColor = MacTableFormatMenuTab.GetColorPreviewStyle();\n if (this.SelectedItemValue && this.SelectedItemValue.TableSettings) {\n Object.assign(this.FirstColor, Gradient.getStyleObject(this.SelectedItemValue.TableSettings.FirstAlternatingColor));\n Object.assign(this.SecondColor, Gradient.getStyleObject(this.SelectedItemValue.TableSettings.SecondAlternatingColor));\n }\n }\n\n onMenuClosed(gradient, first) {\n if (this.SelectedItemValue && this.SelectedItemValue.TableSettings) {\n const color = Object.assign(MacTableFormatMenuTab.GetColorPreviewStyle(), Gradient.getStyleObject(gradient));\n if (first) {\n this.SelectedItemValue.TableSettings.FirstAlternatingColor = gradient;\n this.FirstColor = color;\n this.SettingsChanged('FirstAlternatingColor');\n } else {\n this.SelectedItemValue.TableSettings.SecondAlternatingColor = gradient;\n this.SecondColor = color;\n this.SettingsChanged('SecondAlternatingColor');\n }\n }\n }\n\n menuKeyDown(ev) {\n MenuKeyDownHelper.onKeyDown(ev);\n }\n}\n","import { Component, Directive, EventEmitter, Input, Output } from '@angular/core';\nimport { APropertyTab } from '../../../appbuilder/menutabs/properties/properties.menu.tab';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { ReportTableSettings } from '../../../models/reportobjects/reporttablesettings.model';\nimport { LayoutService } from '../../../services/layout.service';\n\n@Component({\n selector: 'mactable-property-menu-tab',\n templateUrl: './mactable.menu.tab.html'\n})\nexport class MacTablePropertyMenuTab extends APropertyTab {\n IsMultidimensional = false;\n Layout;\n\n static CheckVisible(): boolean {\n const selected = LayoutService.SelectedItem.getValue();\n if (selected && selected.ElementType === 'tablereportObject') {\n return true;\n }\n return false;\n }\n\n ngOnInit() {\n this.Subscriptions.push(LayoutService.SelectedLayout.subscribe((layout) => {\n this.Layout = LayoutHelper.GetActiveResolution(layout);\n }));\n super.ngOnInit();\n }\n\n onItemSet() {\n let multi = false;\n if (this.SelectedItem) {\n if (!this.SelectedItem.FormatTasks) {\n this.SelectedItem.FormatTasks = [];\n }\n if (!this.SelectedItem.DataTasks) {\n this.SelectedItem.DataTasks = [];\n }\n if (this.SelectedItem.Query && this.Layout && this.Layout.Datadescriptions) {\n const dataDesc = this.Layout.Datadescriptions.find(x => x.ID === this.SelectedItem.Query);\n if (dataDesc) {\n multi = !dataDesc.IsRelational;\n }\n }\n }\n this.IsMultidimensional = multi;\n }\n}\n\n@Directive()\nexport abstract class ATableMenuTab {\n //#region SelectedItem\n SelectedItemValue;\n\n @Input()\n get SelectedItem() {\n return this.SelectedItemValue;\n }\n set SelectedItem(val) {\n this.SelectedItemValue = val;\n if (this.SelectedItemValue && this.SelectedItemValue.TableSettings == null) {\n this.SelectedItemValue.TableSettings = new ReportTableSettings();\n if (this.SelectedItemValue.ValuesChanged) {\n this.SelectedItem.ValuesChanged.next('TableSettings');\n }\n }\n this.OnItemSet();\n this.SelectedItemChange.emit(this.SelectedItemValue);\n }\n\n @Output() SelectedItemChange = new EventEmitter();\n //#endregion\n\n //#region IsMultidimensional\n IsMultidimensionalValue;\n\n @Input()\n get IsMultidimensional() {\n return this.IsMultidimensionalValue;\n }\n set IsMultidimensional(val) {\n this.IsMultidimensionalValue = val;\n this.IsMultidimensionalChange.emit(this.IsMultidimensionalValue);\n }\n @Output() IsMultidimensionalChange = new EventEmitter();\n //#endregion\n\n SettingsChanged(prop: string) {\n const sel = this.SelectedItemValue;\n if (sel && sel.ValuesChanged) {\n sel.ValuesChanged.next();\n LayoutService.OnLayoutPropertyChanged(sel.ID, 'TableSettings.' + prop, sel.TableSettings[prop]);\n }\n }\n\n OnItemSet() {\n }\n}\n","import { Component } from '@angular/core';\nimport { ATableMenuTab } from './mactable.menu.tab';\n\n@Component({\n selector: 'mactable-size-menu-tab',\n templateUrl: './size.menu.tab.html'\n})\nexport class MacTableSizeMenuTab extends ATableMenuTab {\n}\n","import { Component } from '@angular/core';\nimport { ATableMenuTab } from './mactable.menu.tab';\n\n@Component({\n selector: 'mactable-sum-menu-tab',\n templateUrl: './sum.menu.tab.html'\n})\nexport class MacTableSumMenuTab extends ATableMenuTab {\n}\n","import { IBaseComponent } from '../../controls/base.component';\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'datasource-settings-component',\n templateUrl: './datasource.static.control.html'\n})\nexport class DataSourceStaticControl extends IBaseComponent {\n static Type: any = 'datasource';\n static Default = { Type: 'datasource', DataSource: '6c95bd3a-acf4-4054-8773-25f0ac15d37d' };\n ControlInitialized() {\n }\n}\n","import { ChangeDetectorRef, Component, Inject, Input } from '@angular/core';\nimport { LayoutService } from '../../../services/layout.service';\nimport { IBaseComponent } from '../../controls/base.component';\nimport { WorkflowEditOptions } from '../../../workflow/workflow.control';\n\n@Component({\n selector: 'workflow-settings-component',\n templateUrl: './workflow.static.control.html'\n})\nexport class WorkflowStaticControl extends IBaseComponent {\n static Type: any = 'workflow';\n static Default = { Type: 'workflow' };\n\n ShowControl = true;\n\n //#region EditOptions\n EditOptions = new WorkflowEditOptions();\n //#endregion\n\n @Input()\n get DataSource() {\n return this.DataSourceValue;\n }\n set DataSource(val) {\n if (val !== this.DataSourceValue) {\n this.ShowControl = false;\n this.DataSourceValue = val;\n window.setTimeout(() => {\n this.ShowControl = true;\n }, 100);\n this.DataSourceChange.emit(this.DataSourceValue);\n }\n }\n\n constructor(cdRef: ChangeDetectorRef, @Inject(LayoutService.CONTAINER_DATA) public data) {\n super(cdRef, data);\n this.EditOptions.IsService = true;\n }\n onLayoutElementSet() {\n this.Subscriptions['ValuesChanged'] = this.LayoutElementValue.ValuesChanged.subscribe(() => {\n this.ControlInitialized();\n });\n }\n onLayoutElementChanged() {\n this.ControlInitialized();\n }\n\n ControlInitialized() {\n if (this.LayoutElement) {\n const EditOptions = new WorkflowEditOptions();\n EditOptions.IsService = this.LayoutElement.IsService ? true : false;\n EditOptions.IsTemplate = this.LayoutElement.IsTemplate ? true : false;\n this.EditOptions = EditOptions;\n setTimeout(() => {\n this.cdRef.detectChanges();\n }, 200);\n this.cdRef.detectChanges();\n }\n }\n}\n","import { Directive, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { UUID } from 'angular2-uuid';\nimport { MultiCacheService } from '../../cache/multi/cache.service';\nimport { TranslateHelper } from '../../helpers/injector.helper';\nimport { ATaskSettingsHelper } from '../../helpers/task.registry';\nimport { TranslatedString } from '../../models/translatedstring.model';\nimport { DataDescriptionHelper } from '../query/ddhelper.query';\n\n@Directive()\nexport abstract class ATaskPanel {\n\n levelUniqueToUUID: Map = new Map();\n measureUniqueToUUID: Map = new Map();\n\n DataDescriptionValue;\n @Input()\n get DataDescription() {\n return this.DataDescriptionValue;\n }\n set DataDescription(val) {\n this.DataDescriptionValue = val;\n this.DataDescriptionChange.emit(val);\n }\n\n @Output() DataDescriptionChange = new EventEmitter();\n\n SettingsValue;\n @Input()\n get Settings() {\n return this.SettingsValue;\n }\n set Settings(val) {\n this.SettingsValue = val;\n this.OnSettingsSet();\n this.SettingsChange.emit(val);\n }\n\n @Output() SettingsChange = new EventEmitter();\n\n LayoutElementValue;\n @Input()\n get LayoutElement() {\n return this.LayoutElementValue;\n }\n set LayoutElement(val) {\n this.LayoutElementValue = val;\n this.LayoutElementChange.emit(val);\n }\n\n @Output() LayoutElementChange = new EventEmitter();\n\n OnSettingsSet() {\n }\n\n}\n\n@Directive()\nexport abstract class ALevelPanel extends ATaskPanel implements OnInit {\n\n Levels = [];\n\n ngOnInit(): void {\n const levels = [{\n Caption: TranslateHelper.TranslatorInstance.instant('@@Keine Auswahl'),\n Value: null\n }];\n if (this.DataDescription) {\n if (this.DataDescription.XLevelNodes && this.DataDescription.XLevelNodes.Areas) {\n this.DataDescription.XLevelNodes.Areas.forEach(area => {\n if (area.Tuples) {\n area.Tuples.forEach(tuple => {\n if (tuple.Levels) {\n tuple.Levels.forEach(lev => {\n levels.push({\n Caption: lev.toString(),\n Value: lev.UniqueID\n });\n this.levelUniqueToUUID.set(lev.UniqueID, lev.Level);\n });\n }\n });\n }\n });\n }\n if (this.DataDescription.YLevelNodes && this.DataDescription.YLevelNodes.Areas) {\n this.DataDescription.YLevelNodes.Areas.forEach(area => {\n if (area.Tuples) {\n area.Tuples.forEach(tuple => {\n if (tuple.Levels) {\n tuple.Levels.forEach(lev => {\n levels.push({\n Caption: lev.toString(),\n Value: lev.UniqueID\n });\n this.levelUniqueToUUID.set(lev.UniqueID, lev.Level);\n });\n }\n });\n }\n });\n }\n }\n this.Levels = levels;\n }\n}\n\n@Directive()\nexport abstract class AMeasurePanel extends ATaskPanel implements OnInit {\n\n Measures = [];\n\n ngOnInit(): void {\n const measures = [{\n Caption: TranslateHelper.TranslatorInstance.instant('@@Keine Auswahl'),\n Value: null\n }];\n if (this.DataDescription) {\n if (this.DataDescription.XLevelNodes && this.DataDescription.XLevelNodes.Areas) {\n this.DataDescription.XLevelNodes.Areas.forEach(area => {\n if (area.Measures) {\n area.Measures.forEach(m => {\n measures.push({\n Caption: m.toString(),\n Value: m.UniqueID\n });\n this.measureUniqueToUUID.set(m.UniqueID, m.Measure);\n });\n }\n });\n }\n if (this.DataDescription.YLevelNodes && this.DataDescription.YLevelNodes.Areas) {\n this.DataDescription.YLevelNodes.Areas.forEach(area => {\n if (area.Measures) {\n area.Measures.forEach(m => {\n measures.push({\n Caption: m.toString(),\n Value: m.UniqueID\n });\n });\n }\n });\n }\n }\n this.Measures = measures;\n }\n}\n\n@Directive()\nexport abstract class ALevelMeasurePanel extends ATaskPanel implements OnInit {\n\n Measures = [];\n Levels = [];\n\n\n ngOnInit(): void {\n //cumulateTask setzt hier vorher schon \"Keine Auswahl\" als Element\n const levels = this.Levels;\n const measures = [];\n\n if (this.DataDescription) {\n if (this.DataDescription.XLevelNodes && this.DataDescription.XLevelNodes.Areas) {\n this.DataDescription.XLevelNodes.Areas.forEach(area => {\n if (area.Tuples) {\n area.Tuples.forEach(tuple => {\n if (tuple.Levels) {\n tuple.Levels.forEach(lev => {\n levels.push({\n Caption: lev.toString(),\n Value: lev.UniqueID\n });\n this.levelUniqueToUUID.set(lev.UniqueID, lev.Level);\n });\n }\n });\n }\n if (area.Measures) {\n area.Measures.forEach(m => {\n measures.push({\n Caption: m.toString(),\n Value: m.UniqueID\n });\n this.measureUniqueToUUID.set(m.UniqueID, m.Measure);\n });\n }\n });\n }\n if (this.DataDescription.YLevelNodes && this.DataDescription.YLevelNodes.Areas) {\n this.DataDescription.YLevelNodes.Areas.forEach(area => {\n if (area.Tuples) {\n area.Tuples.forEach(tuple => {\n if (tuple.Levels) {\n tuple.Levels.forEach(lev => {\n levels.push({\n Caption: lev.toString(),\n Value: lev.UniqueID\n });\n this.levelUniqueToUUID.set(lev.UniqueID, lev.Level);\n });\n }\n });\n }\n if (area.Measures) {\n area.Measures.forEach(m => {\n measures.push({\n Caption: m.toString(),\n Value: m.UniqueID\n });\n this.measureUniqueToUUID.set(m.UniqueID, m.Measure);\n });\n }\n });\n }\n }\n this.Levels = levels;\n if (this.Levels.length > 0 && !this.Settings.LevelUniqueID) {\n this.Settings.LevelUniqueID = this.Levels[0].Value;\n }\n this.Measures = measures;\n if (this.Measures.length > 0 && !this.Settings.MeasureUniqueID) {\n this.Settings.MeasureUniqueID = this.Measures[0].Value;\n }\n }\n}\n\nexport abstract class ALevelTaskSettingsHelper extends ATaskSettingsHelper {\n getCaption(task: any, dd: any) {\n if (task && task.LevelUniqueID && dd) {\n const levelNode = DataDescriptionHelper.FindLevelNodeByID(dd, task.LevelUniqueID);\n if (levelNode) {\n return TranslatedString.GetTranslation(levelNode.Caption);\n }\n }\n return '';\n }\n\n\n async Gettooltip(task: any, dd: any) {\n let tooltip = '';\n if (task && dd) {\n const levelNode = DataDescriptionHelper.FindLevelNodeByID(dd, task.LevelUniqueID);\n \n if (levelNode?.Level) {\n const levelDB = await MultiCacheService.GetLevel(levelNode.Level, dd.DataModelID);\n\n if (levelDB) {\n\n const levelName = levelDB ? ' > ' + levelDB.Name : '';\n const hierDBName = levelDB.Parent?.Name ? ' > ' + levelDB.Parent.Name : '';\n const dimDBName = levelDB.Parent?.Parent?.Name ? levelDB.Parent.Parent.Name : '';\n\n\n\n tooltip += TranslateHelper.TranslatorInstance.instant(\"@@Level: \") + dimDBName + hierDBName + levelName + ' #' + levelDB.Caption;\n\n }\n\n }\n return tooltip;\n\n }\n }\n}\n\nexport abstract class AMeasureTaskSettingsHelper extends ATaskSettingsHelper {\n getCaption(task: any, dd: any) {\n if (task && task.MeasureUniqueID && dd) {\n const measureInfo = DataDescriptionHelper.FindMeasureByID(dd, task.MeasureUniqueID);\n if (measureInfo) {\n return TranslatedString.GetTranslation(measureInfo.Caption);\n }\n }\n return '';\n }\n\n async Gettooltip(task: any, dd: any) {\n let tooltip = '';\n if (task && task.MeasureUniqueID && dd) {\n const measure = DataDescriptionHelper.FindMeasureByID(dd, task.MeasureUniqueID);\n\n if (measure?.Measure) {\n const mDB = await MultiCacheService.GetMeasure(measure.Measure, dd.DataModelID);\n const measureCube = mDB.Cube?.Name ? mDB.Cube.Name : '';\n const measureFolder = mDB.Folder ? ' > ' + mDB.Folder : '';\n const measureName = mDB.Name ? ' > ' + mDB.Name : '';\n\n\n tooltip += TranslateHelper.TranslatorInstance.instant(\"@@Measure: \") + measureCube + measureFolder + measureName + ' #' + mDB.Caption;\n\n }\n }\n return tooltip;\n }\n}\n\nexport abstract class ALevelMeasureTaskSettingsHelper extends ATaskSettingsHelper {\n getCaption(task: any, dd: any) {\n if (task && dd) {\n let measureInfo;\n let levelNode;\n if (task.MeasureUniqueID) {\n measureInfo = DataDescriptionHelper.FindMeasureByID(dd, task.MeasureUniqueID);\n }\n if (task.LevelUniqueID) {\n levelNode = DataDescriptionHelper.FindLevelNodeByID(dd, task.LevelUniqueID);\n }\n if (measureInfo) {\n if (levelNode) {\n return TranslatedString.GetTranslation(measureInfo.Caption) + ' - ' +\n TranslatedString.GetTranslation(levelNode.Caption);\n } else {\n return TranslatedString.GetTranslation(measureInfo.Caption);\n }\n } else if (levelNode) {\n return TranslatedString.GetTranslation(levelNode.Caption);\n }\n }\n return '';\n }\n\n async Gettooltip(task: any, dd: any) {\n let tooltip = '';\n if (task && dd) {\n const levelNode = DataDescriptionHelper.FindLevelNodeByID(dd, task.LevelUniqueID);\n \n if (levelNode?.Level ) {\n const levelDB = await MultiCacheService.GetLevel(levelNode.Level, dd.DataModelID);\n\n if (levelDB) {\n\n const levelName = levelDB ? ' > ' + levelDB.Name : '';\n const hierDBName = levelDB.Parent?.Name ? ' > ' + levelDB.Parent.Name : '';\n const dimDBName = levelDB.Parent?.Parent?.Name ? levelDB.Parent.Parent.Name : '';\n\n\n\n tooltip += TranslateHelper.TranslatorInstance.instant(\"@@Level: \") + dimDBName + hierDBName + levelName + ' #' + levelDB.Caption +\"# \";\n \n }\n\n }\n\n const measure = DataDescriptionHelper.FindMeasureByID(dd, task.MeasureUniqueID);\n\n if (measure?.Measure) {\n const mDB = await MultiCacheService.GetMeasure(measure.Measure, dd.DataModelID);\n const measureCube = mDB.Cube?.Name ? mDB.Cube.Name : '';\n const measureFolder = mDB.Folder ? ' > ' + mDB.Folder : '';\n const measureName = mDB.Name ? ' > ' + mDB.Name : '';\n\n\n tooltip += TranslateHelper.TranslatorInstance.instant(\"@@Measure: \" ) + measureCube + measureFolder + measureName + ' #' + mDB.Caption;\n\n }\n return tooltip;\n\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { TranslateHelper } from '../../../helpers/injector.helper';\nimport { TaskRegistryEntry, TaskType } from '../../../helpers/task.registry';\nimport { NonClickableVariablesNodeInformation, VariablesNodeInformation } from '../../../models/basic/formulaEditor.model';\nimport { FormulaGroupEnum } from '../../../models/enums/formulagroupenum.enum';\nimport { FormulaInputMode } from '../../../models/enums/formulainputmode.enum';\nimport { CalculateTaskExecuter } from '../../../models/tasks/datatasks/calculate.model';\nimport { StandardRequestBase } from '../../../services/request-base';\nimport { AMeasureTaskSettingsHelper, ATaskPanel } from '../a.task.panel';\n\n@Component({\n selector: 'calculate-task-panel',\n templateUrl: './calculate.task.panel.html'\n})\nexport class CalculateTaskPanel extends ATaskPanel implements OnInit {\n\n Variables;\n Operations = [];\n InputMode: FormulaInputMode = FormulaInputMode.AliasKey;\n\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = CalculateTaskExecuter.TaskID;\n reg.Caption = '@@Berechneter Wert';\n reg.SettingsControl = CalculateTaskPanel;\n reg.SettingsHelper = new CalculateSettingsHelper();\n reg.Executer = CalculateTaskExecuter;\n reg.TaskType = TaskType.DataTask;\n return reg;\n }\n\n static GetNewTask(measureID) {\n return {\n TaskType: CalculateTaskExecuter.TaskID,\n IsActive: true,\n MeasureUniqueID: measureID,\n IgnoreNotVisibleMeasures: false\n };\n }\n\n constructor(private service: StandardRequestBase) {\n super();\n }\n\n ngOnInit(): void {\n const query = {\n Group: FormulaGroupEnum.All\n };\n this.service.executePost(query, 'api/formula', 'GetFormulaInfos').subscribe(result => this.Operations = result);\n if (this.SettingsValue) {\n CalculateTaskExecuter.GetMeasuresAndLevelsForCalcTask(this.DataDescriptionValue,\n this.SettingsValue.MeasureUniqueID).then(result => {\n if (result) {\n const variables = [];\n\n const measureNode = new NonClickableVariablesNodeInformation();\n measureNode.Name = '@@Werte';\n measureNode.Expand = true;\n variables.push(measureNode);\n\n result.Measures.forEach(m => {\n const vni = new VariablesNodeInformation();\n if (m.AreaCaption) {\n vni.Name = m.AreaCaption + ' / ' + m.Measure.toString();\n } else {\n vni.Name = m.Measure.toString();\n }\n vni.VariableID = vni.AliasKey = 'M' + m.Measure.UniqueID;\n measureNode.Children.push(vni);\n });\n\n const levelNode = new NonClickableVariablesNodeInformation();\n levelNode.Name = '@@Level';\n variables.push(levelNode);\n\n result.Levels.forEach(l => {\n const vni = new VariablesNodeInformation();\n vni.Name = l.toString();\n vni.VariableID = vni.AliasKey = 'L' + l.UniqueID;\n levelNode.Children.push(vni);\n });\n\n this.Variables = variables;\n }\n });\n }\n }\n}\n\nexport class CalculateSettingsHelper extends AMeasureTaskSettingsHelper {\n getCaption(task: any, dd: any) {\n const caption = super.getCaption(task, dd);\n if (caption) {\n return caption ;\n }\n return TranslateHelper.TranslatorInstance.instant('@@Berechneter Wert');\n }\n}\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { MultiCacheService } from '../../../../cache/multi/cache.service';\nimport { TranslateHelper } from '../../../../helpers/injector.helper';\nimport { ATaskSettingsHelper, TaskRegistryEntry, TaskType } from '../../../../helpers/task.registry';\nimport { SeriesSettings } from '../../../../models/controls/chart.model';\nimport { ChartType } from '../../../../models/enums/charttype.enum';\nimport { AxisType } from '../../../../models/enums/query.enum';\nimport { BubbleSeriesFormattingTaskExecuter } from '../../../../models/tasks/chartformattasks/bubble.series.formatting.task';\nimport { TaskHelper } from '../../../../models/tasks/task.helper';\nimport { MultiReportingService } from '../../../../services/reporting.service';\nimport { ConditionalSeriesFormattingPanel } from '../conditional.series.formatting.panel';\n\n@Component({\n selector: 'bubble-series-formatting-task-panel',\n templateUrl: './bubble.series.formatting.panel.html'\n})\nexport class BubbleSeriesFormattingPanel extends ConditionalSeriesFormattingPanel implements OnInit {\n static TaskID = 'bubbleseriesformatting';\n Members;\n Measures = [];\n\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = BubbleSeriesFormattingPanel.TaskID;\n reg.Caption = '@@Bubble';\n reg.SettingsControl = BubbleSeriesFormattingPanel;\n reg.SettingsHelper = new BubbleSeriesFormattingTaskSettingsHelper();\n reg.Executer = BubbleSeriesFormattingTaskExecuter;\n reg.TaskType = TaskType.FormatTask;\n return reg;\n }\n\n constructor(private service: MultiReportingService, private cdRef: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit(): void {\n if (this.DataDescriptionValue) {\n let rMeasureID;\n if (this.LayoutElement && this.LayoutElement.ChartSettings && this.LayoutElement.ChartSettings.Series &&\n this.LayoutElement.ChartSettings.Series.length > 0) {\n const first = this.LayoutElement.ChartSettings.Series[0];\n if (first) {\n rMeasureID = first['Radius'];\n }\n }\n let area;\n const measureList = [];\n if (this.DataDescriptionValue.ShowMeasureOnAxis == AxisType.X_Axis) {\n if (this.DataDescriptionValue.XLevelNodes && this.DataDescriptionValue.XLevelNodes.Areas) {\n this.DataDescriptionValue.XLevelNodes.Areas.forEach(x => {\n if (x.Measures) {\n x.Measures.forEach(m => {\n if ('' + m.UniqueID == rMeasureID) {\n area = x;\n }\n measureList.push({\n Caption: m.toString(),\n Value: m.UniqueID\n });\n });\n }\n });\n }\n } else {\n if (this.DataDescriptionValue.YLevelNodes && this.DataDescriptionValue.YLevelNodes.Areas) {\n this.DataDescriptionValue.YLevelNodes.Areas.forEach(x => {\n if (x.Measures) {\n x.Measures.forEach(m => {\n if ('' + m.UniqueID == rMeasureID) {\n area = x;\n }\n measureList.push({\n Caption: m.toString(),\n Value: m.UniqueID\n });\n });\n }\n });\n }\n }\n this.Measures = measureList;\n if (area && area.Tuples && area.Tuples.length > 0 && this.DataDescriptionValue.DataModelID) {\n const firstTuple = area.Tuples[0];\n if (firstTuple && firstTuple.Levels && firstTuple.Levels.length > 0) {\n const level = firstTuple.Levels[firstTuple.Levels.length - 1].Level;\n MultiCacheService.GetLevel(level, this.DataDescriptionValue.DataModelID).then(l => {\n this.service.GetMembers(l.Parent.Parent.DatasourceID, level, null, null).subscribe(result => {\n const list = [];\n if (result) {\n result.forEach(m => {\n list.push({\n Caption: m.Caption,\n Value: m.ID\n });\n });\n }\n this.Members = list;\n this.cdRef.detectChanges();\n });\n });\n }\n }\n } \n }\n\n OnSettingsSet() {\n if (this.SettingsValue && !this.SettingsValue.Style) {\n this.SettingsValue.Style = new SeriesSettings();\n }\n }\n}\n\nexport class BubbleSeriesFormattingTaskSettingsHelper extends ATaskSettingsHelper {\n canExecute(reportObject: any): boolean {\n if (TaskHelper.IsChartObject(reportObject) && reportObject.LayoutElement.ChartSettings) {\n return reportObject.LayoutElement.ChartSettings.ChartType == ChartType.BubbleChart;\n }\n return false;\n }\n getCaption(task: any, dd: any) {\n return TranslateHelper.TranslatorInstance.instant('@@Bubble');\n }\n}\n","import { Directive } from '@angular/core';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { ConditionOperator } from '../../../models/enums/conditionoperator.enum';\nimport { ChartConditionFormatStyle } from '../../../models/tasks/conditional.model';\nimport { ATaskPanel } from '../a.task.panel';\n\n@Directive()\nexport abstract class ConditionalSeriesFormattingPanel extends ATaskPanel {\n selectedNode;\n CompareTypes;\n\n constructor() {\n super();\n this.CompareTypes = EnumHelper.GetDropdownValues(ConditionOperator);\n }\n\n useCondChange(ev) {\n if (ev && ev.checked && this.SettingsValue) {\n if (!this.SettingsValue.Conditions || this.SettingsValue.Conditions.length === 0) {\n this.SettingsValue.Conditions = [new ChartConditionFormatStyle()];\n }\n }\n }\n\n onItemClick(selection) {\n if (this.selectedNode !== selection) {\n this.selectedNode = selection;\n }\n }\n\n getCaption(cond) {\n let retVal = '';\n if (cond && cond.Condition) {\n retVal = ConditionOperator[cond.Condition.ConditionOperator];\n if (cond.Condition.ConditionOperator !== ConditionOperator.IsNull &&\n cond.Condition.ConditionOperator !== ConditionOperator.NotNull &&\n typeof cond.Condition.Value1 === 'number') {\n retVal += ' ' + cond.Condition.Value1;\n if ((cond.Condition.ConditionOperator === ConditionOperator.Between ||\n cond.Condition.ConditionOperator === ConditionOperator.NotBetween) &&\n typeof cond.Condition.Value2 === 'number') {\n retVal += ' & ' + cond.Condition.Value2;\n }\n }\n }\n return retVal;\n }\n\n addItem() {\n if (this.SettingsValue) {\n const cond = new ChartConditionFormatStyle();\n if (this.SettingsValue.Conditions) {\n this.SettingsValue.Conditions.push(cond);\n } else {\n this.SettingsValue.Conditions = [cond];\n }\n this.selectedNode = cond;\n }\n }\n\n deleteItem() {\n if (this.selectedNode && this.SettingsValue && this.SettingsValue.Conditions && this.SettingsValue.Conditions.length > 1) {\n const index = this.SettingsValue.Conditions.indexOf(this.selectedNode);\n if (index > 0) {\n this.SettingsValue.Conditions.splice(index, 1);\n this.selectedNode = this.SettingsValue.Conditions[0];\n }\n }\n }\n\n moveUp() {\n if (this.selectedNode && this.SettingsValue && this.SettingsValue.Conditions) {\n const index = this.SettingsValue.Conditions.indexOf(this.selectedNode);\n if (index > 0) {\n this.SettingsValue.Conditions.splice(index, 1);\n this.SettingsValue.Conditions.splice(0, 0, this.selectedNode);\n }\n }\n }\n\n moveOneUp() {\n if (this.selectedNode && this.SettingsValue && this.SettingsValue.Conditions) {\n const index = this.SettingsValue.Conditions.indexOf(this.selectedNode);\n if (index > 0) {\n this.SettingsValue.Conditions.splice(index, 1);\n this.SettingsValue.Conditions.splice(index - 1, 0, this.selectedNode);\n }\n }\n }\n\n moveOneDown() {\n if (this.selectedNode && this.SettingsValue && this.SettingsValue.Conditions) {\n const index = this.SettingsValue.Conditions.indexOf(this.selectedNode);\n if (index > -1 && index < this.SettingsValue.Conditions.length - 1) {\n this.SettingsValue.Conditions.splice(index, 1);\n this.SettingsValue.Conditions.splice(index + 1, 0, this.selectedNode);\n }\n }\n }\n\n moveDown() {\n if (this.selectedNode && this.SettingsValue && this.SettingsValue.Conditions) {\n const index = this.SettingsValue.Conditions.indexOf(this.selectedNode);\n if (index > -1 && index < this.SettingsValue.Conditions.length - 1) {\n this.SettingsValue.Conditions.splice(index, 1);\n this.SettingsValue.Conditions.push(this.selectedNode);\n }\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { MultiCacheService } from '../../../../cache/multi/cache.service';\nimport { TranslateHelper } from '../../../../helpers/injector.helper';\nimport { ATaskSettingsHelper, TaskRegistryEntry, TaskType } from '../../../../helpers/task.registry';\nimport { SeriesSettings } from '../../../../models/controls/chart.model';\nimport { ChartType } from '../../../../models/enums/charttype.enum';\nimport { AxisType } from '../../../../models/enums/query.enum';\nimport { ChartSeriesFormattingTaskExecuter } from '../../../../models/tasks/chartformattasks/chart.series.formatting.task';\nimport { TaskHelper } from '../../../../models/tasks/task.helper';\nimport { MultiReportingService } from '../../../../services/reporting.service';\nimport { ConditionalSeriesFormattingPanel } from '../conditional.series.formatting.panel';\n\n@Component({\n selector: 'chart-series-formatting-task-panel',\n templateUrl: './chart.series.formatting.panel.html'\n})\nexport class ChartSeriesFormattingPanel extends ConditionalSeriesFormattingPanel implements OnInit {\n static TaskID = 'chartseriesformatting';\n Series = [];\n SelectedSeries;\n Members = [];\n Axis = [];\n SelectedAxis;\n AxisMembers = [];\n Measures = [];\n MemberMap = new Map();\n ChartType = ChartType.ColumnChart;\n MeasuresOnSeries = false;\n\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = ChartSeriesFormattingPanel.TaskID;\n reg.Caption = '@@Reihe';\n reg.SettingsControl = ChartSeriesFormattingPanel;\n reg.SettingsHelper = new ChartSeriesFormattingTaskSettingsHelper();\n reg.Executer = ChartSeriesFormattingTaskExecuter;\n reg.TaskType = TaskType.FormatTask;\n return reg;\n }\n\n static getAxisNodes(axis, levelDict, measureList) {\n const retVal = [];\n if (axis && axis.Areas) {\n axis.Areas.forEach(area => {\n if (area.Tuples && area.Tuples.length > 0) {\n if (area.Measures && area.Measures.length > 0) {\n area.Tuples.forEach(tuple => {\n if (tuple.Levels && tuple.Levels.length > 0) {\n const captions = [];\n tuple.Levels.forEach(lev => {\n captions.push(lev.toString());\n });\n const lastLevel = tuple.Levels[tuple.Levels.length - 1];\n levelDict.set(lastLevel.UniqueID, lastLevel.Level);\n retVal.push({\n Caption: [...captions, TranslateHelper.TranslatorInstance.instant('@@Alle Werte')].join(' - '),\n LevelID: lastLevel.UniqueID,\n MeasureID: null\n });\n area.Measures.forEach(m => {\n retVal.push({\n Caption: [...captions, m.toString()].join(' - '),\n LevelID: lastLevel.UniqueID,\n MeasureID: m.UniqueID\n });\n });\n }\n });\n area.Measures.forEach(m => {\n measureList.push({\n Caption: m.toString(),\n Value: m.UniqueID\n });\n });\n } else {\n area.Tuples.forEach(tuple => {\n if (tuple.Levels && tuple.Levels.length > 0) {\n const captions = [];\n tuple.Levels.forEach(lev => {\n captions.push(lev.toString());\n });\n const lastLevel = tuple.Levels[tuple.Levels.length - 1];\n levelDict.set(lastLevel.UniqueID, lastLevel.Level);\n retVal.push({\n Caption: captions.join(' - '),\n LevelID: lastLevel.UniqueID,\n MeasureID: null\n });\n }\n });\n }\n } else if (area.Measures) {\n area.Measures.forEach(m => {\n retVal.push({\n Caption: m.toString(),\n LevelID: null,\n MeasureID: m.UniqueID\n });\n measureList.push({\n Caption: m.toString(),\n Value: m.UniqueID\n });\n });\n }\n });\n }\n return retVal;\n }\n\n constructor(private service: MultiReportingService) {\n super();\n }\n\n ngOnInit(): void {\n if (this.LayoutElementValue && this.LayoutElementValue.ChartSettings &&\n typeof this.LayoutElementValue.ChartSettings.ChartType === 'number') {\n this.ChartType = this.LayoutElementValue.ChartSettings.ChartType;\n }\n if (this.DataDescription) {\n this.Series = ChartSeriesFormattingPanel.getAxisNodes(this.DataDescription.YLevelNodes, this.levelUniqueToUUID, this.Measures);\n this.Axis = ChartSeriesFormattingPanel.getAxisNodes(this.DataDescription.XLevelNodes, this.levelUniqueToUUID, this.Measures);\n this.MeasuresOnSeries = this.DataDescription.ShowMeasureOnAxis === AxisType.Y_Axis;\n if (this.SettingsValue) {\n let mID = null;\n let oppM = null;\n if (this.SettingsValue.MeasureUniqueID) {\n if (this.MeasuresOnSeries) {\n mID = this.SettingsValue.MeasureUniqueID;\n } else {\n oppM = this.SettingsValue.MeasureUniqueID;\n }\n }\n if (this.SettingsValue.LevelUniqueID) {\n this.SelectedSeries = this.Series.find(x => x.LevelID === this.SettingsValue.LevelUniqueID && x.MeasureID === mID);\n this.loadMembers(this.levelUniqueToUUID.get(this.SettingsValue.LevelUniqueID), (m) => {\n this.Members = m;\n });\n } else if (mID) {\n this.SelectedSeries = this.Series.find(x => x.LevelID === null && x.MeasureID === mID);\n }\n if (this.SettingsValue.OppositeLevel) {\n this.SelectedAxis = this.Axis.find(x => x.LevelID === this.SettingsValue.OppositeLevel && x.MeasureID === oppM);\n this.loadMembers(this.levelUniqueToUUID.get(this.SettingsValue.OppositeLevel), (m) => {\n this.AxisMembers = m;\n });\n } else if (oppM) {\n this.SelectedAxis = this.Axis.find(x => x.LevelID === null && x.MeasureID === oppM);\n }\n }\n }\n }\n\n onSeriesChanged(isSeries) {\n if (this.SettingsValue) {\n if (isSeries) {\n if (this.SelectedSeries) {\n if (this.MeasuresOnSeries && this.SelectedSeries.MeasureID !== this.SettingsValue.MeasureUniqueID) {\n this.SettingsValue.MeasureUniqueID = this.SelectedSeries.MeasureID;\n }\n if (this.SelectedSeries.LevelID !== this.SettingsValue.LevelUniqueID) {\n this.SettingsValue.LevelUniqueID = this.SelectedSeries.LevelID;\n this.SettingsValue.LevelMember = null;\n this.loadMembers(this.levelUniqueToUUID.get(this.SettingsValue.LevelUniqueID), (m) => {\n this.Members = m;\n });\n }\n } else {\n if (this.MeasuresOnSeries) {\n this.SettingsValue.MeasureUniqueID = -1;\n }\n this.SettingsValue.LevelUniqueID = -1;\n this.SettingsValue.LevelMember = null;\n this.Members = [];\n }\n } else {\n if (this.SelectedAxis) {\n if (!this.MeasuresOnSeries && this.SelectedAxis.MeasureID !== this.SettingsValue.MeasureUniqueID) {\n this.SettingsValue.MeasureUniqueID = this.SelectedAxis.MeasureID;\n }\n if (this.SelectedAxis.LevelID !== this.SettingsValue.OppositeLevel) {\n this.SettingsValue.OppositeLevel = this.SelectedAxis.LevelID;\n this.SettingsValue.OppositeMember = null;\n this.loadMembers(this.levelUniqueToUUID.get(this.SettingsValue.OppositeLevel), (m) => {\n this.AxisMembers = m;\n });\n }\n } else {\n if (!this.MeasuresOnSeries) {\n this.SettingsValue.MeasureUniqueID = -1;\n }\n this.SettingsValue.OppositeLevel = -1;\n this.SettingsValue.OppositeMember = null;\n this.AxisMembers = [];\n }\n }\n }\n }\n\n loadMembers(level, memberAction) {\n if (level) {\n const members = this.MemberMap.get(level);\n if (members) {\n memberAction(members);\n } else {\n const list = [];\n if (this.DataDescriptionValue && this.DataDescriptionValue.DataModelID) {\n MultiCacheService.GetLevel(level, this.DataDescriptionValue.DataModelID).then(l => {\n this.service.GetMembers(l.Parent.Parent.DatasourceID, level, null, null).subscribe(result => {\n if (result) {\n result.forEach(m => {\n list.push({\n Caption: m.Caption,\n Value: m.ID\n });\n });\n }\n this.MemberMap.set(level, list);\n memberAction(list);\n });\n });\n } else {\n this.MemberMap.set(level, list);\n memberAction(list);\n }\n }\n } else {\n memberAction([]);\n }\n }\n\n OnSettingsSet() {\n if (this.SettingsValue) {\n if (!this.SettingsValue.Style) {\n this.SettingsValue.Style = new SeriesSettings();\n }\n }\n }\n}\n\nexport class ChartSeriesFormattingTaskSettingsHelper extends ATaskSettingsHelper {\n canExecute(reportObject: any): boolean {\n if (TaskHelper.IsChartObject(reportObject) && reportObject.LayoutElement.ChartSettings) {\n switch (reportObject.LayoutElement.ChartSettings.ChartType) {\n case ChartType.AreaChart:\n case ChartType.BarChart:\n case ChartType.ColumnChart:\n case ChartType.ComboChart:\n case ChartType.LineChart:\n case ChartType.ScatterChart:\n case ChartType.SteppedAreaChart:\n return true;\n }\n }\n return false;\n }\n getCaption(task: any, dd: any) {\n return TranslateHelper.TranslatorInstance.instant('@@Reihenformatierung');\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { TranslateHelper } from '../../../../helpers/injector.helper';\nimport { ATaskSettingsHelper, TaskRegistryEntry, TaskType } from '../../../../helpers/task.registry';\nimport { ChartType } from '../../../../models/enums/charttype.enum';\nimport { AxisType } from '../../../../models/enums/query.enum';\nimport { ChartSeriesLabelTaskExecuter } from '../../../../models/tasks/chartformattasks/chart.series.label.task';\nimport { TaskHelper } from '../../../../models/tasks/task.helper';\nimport { ATaskPanel } from '../../a.task.panel';\nimport { ChartSeriesFormattingPanel } from './chart.series.formatting.panel';\n\n@Component({\n selector: 'chart-series-label-task-panel',\n templateUrl: './chart.series.label.panel.html'\n})\nexport class ChartSeriesLabelPanel extends ATaskPanel implements OnInit {\n static TaskID = 'chartserieslabel';\n Series = [];\n Measures = [];\n MeasuresOnSeries = false;\n SelectedSeries;\n\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = ChartSeriesLabelPanel.TaskID;\n reg.Caption = '@@Reihenbeschriftung';\n reg.SettingsControl = ChartSeriesLabelPanel;\n reg.SettingsHelper = new ChartSeriesLabelTaskSettingsHelper();\n reg.Executer = ChartSeriesLabelTaskExecuter;\n reg.TaskType = TaskType.FormatTask;\n return reg;\n }\n\n ngOnInit(): void {\n if (this.DataDescription) {\n this.Series = ChartSeriesFormattingPanel.getAxisNodes(this.DataDescription.YLevelNodes, this.levelUniqueToUUID, this.Measures);\n this.Series.splice(0, 0, {\n Caption: TranslateHelper.TranslatorInstance.instant('@@Alle'),\n LevelID: -1,\n MeasureID: -1\n });\n this.MeasuresOnSeries = this.DataDescription.ShowMeasureOnAxis === AxisType.Y_Axis;\n if (this.SettingsValue) {\n let mID = this.MeasuresOnSeries ? this.SettingsValue.MeasureUniqueID : null;\n if (this.SettingsValue.LevelUniqueID) {\n this.SelectedSeries = this.Series.find(x => x.LevelID === this.SettingsValue.LevelUniqueID && x.MeasureID === mID);\n } else if (mID) {\n this.SelectedSeries = this.Series.find(x => x.LevelID === null && x.MeasureID === mID);\n }\n }\n }\n }\n\n onSeriesChanged() {\n if (this.SettingsValue) {\n if (this.SelectedSeries) {\n if (this.MeasuresOnSeries && this.SelectedSeries.MeasureID !== this.SettingsValue.MeasureUniqueID) {\n this.SettingsValue.MeasureUniqueID = this.SelectedSeries.MeasureID;\n }\n if (this.SelectedSeries.LevelID !== this.SettingsValue.LevelUniqueID) {\n this.SettingsValue.LevelUniqueID = this.SelectedSeries.LevelID;\n }\n } else {\n this.SettingsValue.MeasureUniqueID = null;\n this.SettingsValue.LevelUniqueID = null;\n }\n }\n }\n}\n\nexport class ChartSeriesLabelTaskSettingsHelper extends ATaskSettingsHelper {\n canExecute(reportObject: any): boolean {\n if (TaskHelper.IsChartObject(reportObject) && reportObject.LayoutElement.ChartSettings) {\n switch (reportObject.LayoutElement.ChartSettings.ChartType) {\n case ChartType.AreaChart:\n case ChartType.BarChart:\n case ChartType.ColumnChart:\n case ChartType.ComboChart:\n case ChartType.LineChart:\n case ChartType.ScatterChart:\n case ChartType.SteppedAreaChart:\n return true;\n }\n }\n return false;\n }\n getCaption(task: any, dd: any) {\n return TranslateHelper.TranslatorInstance.instant('@@Reihenbeschriftung');\n }\n}","import { Component } from '@angular/core';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { TranslateHelper } from '../../../helpers/injector.helper';\nimport { TaskRegistryEntry, TaskType } from '../../../helpers/task.registry';\nimport { CodeDesc } from '../../../models/enums/query.enum';\nimport { CodeDescriptionTaskExecuter } from '../../../models/tasks/datatasks/codedescription.model';\nimport { ALevelMeasurePanel, ALevelTaskSettingsHelper } from '../a.task.panel';\n\n@Component({\n selector: 'codedescription-task-panel',\n templateUrl: './codedescription.task.panel.html'\n})\nexport class CodeDescriptionTaskPanel extends ALevelMeasurePanel {\n DisplayTypes: any[];\n\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = 'codedescription';\n reg.Caption = '@@Anzeige';\n reg.SettingsControl = CodeDescriptionTaskPanel;\n reg.SettingsHelper = new CodeDescriptionSettingsHelper();\n reg.Executer = CodeDescriptionTaskExecuter;\n reg.TaskType = TaskType.DataTask;\n return reg;\n }\n\n constructor() {\n super();\n this.DisplayTypes = EnumHelper.GetDropdownValues(CodeDesc).filter(x => x.type != CodeDesc.Attribute);;\n }\n}\n\nexport class CodeDescriptionSettingsHelper extends ALevelTaskSettingsHelper {\n getCaption(task: any, dd: any) {\n const caption = super.getCaption(task, dd);\n if (caption) {\n return caption + \" - \" + TranslateHelper.TranslatorInstance.instant('@@Anzeige');\n }\n return TranslateHelper.TranslatorInstance.instant('@@Anzeige');\n }\n}\n","import { Component } from '@angular/core';\nimport { TranslateHelper } from '../../../helpers/injector.helper';\nimport { TaskRegistryEntry, TaskType } from '../../../helpers/task.registry';\nimport { CumulateTaskExecuter } from '../../../models/tasks/datatasks/cumulate.model';\nimport { ALevelMeasurePanel, AMeasureTaskSettingsHelper } from '../a.task.panel';\n\n@Component({\n selector: 'cumulate-task-panel',\n templateUrl: './cumulate.task.panel.html'\n})\nexport class CumulateTaskPanel extends ALevelMeasurePanel {\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = CumulateTaskExecuter.TaskID;\n reg.Caption = '@@Kumulieren';\n reg.SettingsControl = CumulateTaskPanel;\n reg.SettingsHelper = new CumulateSettingsHelper();\n reg.Executer = CumulateTaskExecuter;\n reg.TaskType = TaskType.DataTask;\n return reg;\n }\n\n ngOnInit(): void {\n this.Levels.push({\n Caption: TranslateHelper.TranslatorInstance.instant('@@Keine Auswahl'),\n Value: -1\n });\n super.ngOnInit();\n\n }\n}\n\nexport class CumulateSettingsHelper extends AMeasureTaskSettingsHelper {\n getCaption(task: any, dd: any) {\n const caption = super.getCaption(task, dd);\n if (caption) {\n return caption + \" - \" + TranslateHelper.TranslatorInstance.instant('@@Kumulieren');\n }\n return TranslateHelper.TranslatorInstance.instant('@@Kumulieren');\n }\n}\n","import { Component } from '@angular/core';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { TranslateHelper } from '../../../helpers/injector.helper';\nimport { TaskRegistryEntry, TaskType } from '../../../helpers/task.registry';\nimport { SortType, TaskAxisLevel } from '../../../models/enums/sortType.enum';\nimport { DataSortTaskExecuter } from '../../../models/tasks/datatasks/datasort.model';\nimport { ALevelMeasurePanel, ALevelMeasureTaskSettingsHelper } from '../a.task.panel';\n\n@Component({\n selector: 'dataSort-task-panel',\n templateUrl: './dataSort.task.panel.html'\n})\nexport class DataSortTaskPanel extends ALevelMeasurePanel {\n SortTypes: any[];\n\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = 'dataSort';\n reg.Caption = '@@Sortieren';\n reg.SettingsControl = DataSortTaskPanel;\n reg.SettingsHelper = new DataSortSettingsHelper();\n reg.Executer = DataSortTaskExecuter;\n reg.TaskType = TaskType.DataTask;\n return reg;\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n if (this.Levels?.length > 1) {\n this.Levels.push({\n Caption: TranslateHelper.TranslatorInstance.instant('@@Ueber alle X-Level'),\n Value: TaskAxisLevel.XAxis\n });\n this.Levels.push({\n Caption: TranslateHelper.TranslatorInstance.instant('@@Ueber alle Y-Level'),\n Value: TaskAxisLevel.YAxis\n });\n }\n }\n\n\n constructor() {\n super();\n this.SortTypes = EnumHelper.GetDropdownValues(SortType).filter(x => x.type != SortType.Attribute);\n }\n}\n\nexport class DataSortSettingsHelper extends ALevelMeasureTaskSettingsHelper {\n getCaption(task: any, dd: any) {\n const caption = super.getCaption(task, dd);\n if (caption) {\n return caption + \" - \" + TranslateHelper.TranslatorInstance.instant('@@Sortieren');\n }\n return TranslateHelper.TranslatorInstance.instant('@@Sortieren');\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { TranslateHelper } from '../../../helpers/injector.helper';\nimport { TaskRegistryEntry, TaskType } from '../../../helpers/task.registry';\nimport { NonClickableVariablesNodeInformation, VariablesNodeInformation } from '../../../models/basic/formulaEditor.model';\nimport { FormulaGroupEnum } from '../../../models/enums/formulagroupenum.enum';\nimport { FormulaInputMode } from '../../../models/enums/formulainputmode.enum';\nimport { EditTaskExecuter } from '../../../models/tasks/datatasks/edit.model';\nimport { StandardRequestBase } from '../../../services/request-base';\nimport { ALevelMeasurePanel, ALevelMeasureTaskSettingsHelper } from '../a.task.panel';\n\n@Component({\n selector: 'edit-task-panel',\n templateUrl: './edit.task.panel.html'\n})\nexport class EditTaskPanel extends ALevelMeasurePanel implements OnInit {\n\n Variables;\n Operations = [];\n InputMode: FormulaInputMode = FormulaInputMode.AliasKey;\n\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = EditTaskExecuter.TaskID;\n reg.Caption = '@@Editieren';\n reg.SettingsControl = EditTaskPanel;\n reg.SettingsHelper = new EditSettingsHelper();\n reg.Executer = EditTaskExecuter;\n reg.TaskType = TaskType.DataTask;\n return reg;\n }\n\n \n\n constructor(private service: StandardRequestBase) {\n super();\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n const query = {\n Group: FormulaGroupEnum.All\n };\n this.service.executePost(query, 'api/formula', 'GetFormulaInfos').subscribe(result => this.Operations = result);\n this.updateVariables();\n }\n\n updateVariables() {\n if (this.SettingsValue) {\n const uniqueID = typeof this.SettingsValue.MeasureUniqueID === 'number' ?\n this.SettingsValue.MeasureUniqueID : this.SettingsValue.LevelUniqueID;\n EditTaskExecuter.GetMeasuresAndLevelsForCalcTask(this.DataDescriptionValue, uniqueID).then(result => {\n if (result) {\n const variables = [];\n\n const measureNode = new NonClickableVariablesNodeInformation();\n measureNode.Name = '@@Werte';\n measureNode.Expand = true;\n variables.push(measureNode);\n\n result.Measures.forEach(m => {\n const vni = new VariablesNodeInformation();\n if (m.AreaCaption) {\n vni.Name = m.AreaCaption + ' / ' + m.Measure.toString();\n } else {\n vni.Name = m.Measure.toString();\n }\n vni.VariableID = vni.AliasKey = 'M' + m.Measure.UniqueID;\n measureNode.Children.push(vni);\n });\n\n const levelNode = new NonClickableVariablesNodeInformation();\n levelNode.Name = '@@Level';\n variables.push(levelNode);\n\n result.Levels.forEach(l => {\n const vni = new VariablesNodeInformation();\n vni.Name = l.toString();\n vni.VariableID = vni.AliasKey = 'L' + l.UniqueID;\n levelNode.Children.push(vni);\n });\n\n this.Variables = variables;\n }\n });\n }\n }\n\n onMeasureChanged() {\n if (this.Settings.MeasureUniqueID && this.Settings.LevelUniqueID) {\n this.Settings.LevelUniqueID = null;\n }\n this.updateVariables();\n }\n onLevelChanged() {\n if (this.Settings.LevelUniqueID && this.Settings.MeasureUniqueID) {\n this.Settings.MeasureUniqueID = null;\n }\n this.updateVariables();\n }\n}\n\nexport class EditSettingsHelper extends ALevelMeasureTaskSettingsHelper {\n getCaption(task: any, dd: any) {\n const caption = super.getCaption(task, dd);\n if (caption) {\n return caption ;\n }\n return TranslateHelper.TranslatorInstance.instant('@@Editieren');\n }\n}\n","import { Component } from '@angular/core';\nimport { EnumHelper } from '../../../helpers/enum.helper';\nimport { TranslateHelper } from '../../../helpers/injector.helper';\nimport { TaskRegistryEntry, TaskType } from '../../../helpers/task.registry';\nimport { ConditionOperator } from '../../../models/enums/conditionoperator.enum';\nimport { FilterTaskExecuter } from '../../../models/tasks/datatasks/filter.model';\nimport { ALevelMeasurePanel, ALevelMeasureTaskSettingsHelper } from '../a.task.panel';\n\n@Component({\n selector: 'filter-task-panel',\n templateUrl: './filter.task.panel.html'\n})\nexport class FilterTaskPanel extends ALevelMeasurePanel {\n CompareTypes;\n OppositeLevels = [];\n\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = 'filter';\n reg.Caption = '@@Filter';\n reg.SettingsControl = FilterTaskPanel;\n reg.SettingsHelper = new FilterSettingsHelper();\n reg.Executer = FilterTaskExecuter;\n reg.TaskType = TaskType.DataTask;\n return reg;\n }\n\n constructor() {\n super();\n this.CompareTypes = EnumHelper.GetDropdownValues(ConditionOperator);\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.Levels.push({\n Caption: TranslateHelper.TranslatorInstance.instant('@@Ueber alle X-Level'),\n Value: -1\n });\n this.Levels.push({\n Caption: TranslateHelper.TranslatorInstance.instant('@@Ueber alle Y-Level'),\n Value: -2\n });\n }\n\n onLevelChanged() {\n const opposite = [];\n if (this.SettingsValue && this.SettingsValue.LevelUniqueID && this.DataDescriptionValue) {\n opposite.push({\n Caption: 'All',\n Value: -1\n });\n if (this.DataDescriptionValue.XLevelNodes.Areas.some(a => a.Tuples.some(t =>\n t.Levels.some(l => l.UniqueID === this.SettingsValue.LevelUniqueID)))) {\n this.DataDescription.YLevelNodes.Areas.forEach(area => {\n if (area.Tuples) {\n area.Tuples.forEach(tuple => {\n if (tuple.Levels) {\n tuple.Levels.forEach(lev => {\n opposite.push({\n Caption: lev.toString(),\n Value: lev.UniqueID\n });\n });\n }\n });\n }\n });\n opposite.push({\n Caption: TranslateHelper.TranslatorInstance.instant('@@Ueber alle Y-Level'),\n Value: -2\n });\n } else {\n this.DataDescription.XLevelNodes.Areas.forEach(area => {\n if (area.Tuples) {\n area.Tuples.forEach(tuple => {\n if (tuple.Levels) {\n tuple.Levels.forEach(lev => {\n opposite.push({\n Caption: lev.toString(),\n Value: lev.UniqueID\n });\n });\n }\n });\n }\n });\n opposite.push({\n Caption: TranslateHelper.TranslatorInstance.instant('@@Ueber alle X-Level'),\n Value: -2\n });\n }\n }\n this.OppositeLevels = opposite;\n }\n\n OnSettingsSet() {\n this.onLevelChanged();\n }\n}\n\nexport class FilterSettingsHelper extends ALevelMeasureTaskSettingsHelper {\n getCaption(task: any, dd: any) {\n const caption = super.getCaption(task, dd);\n if (caption) {\n return caption + \" - \" + TranslateHelper.TranslatorInstance.instant('@@Filter');\n }\n return TranslateHelper.TranslatorInstance.instant('@@Filter');\n }\n}\n","import { Component } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { TranslateHelper } from '../../../../helpers/injector.helper';\nimport { TaskRegistryEntry, TaskType } from '../../../../helpers/task.registry';\nimport { CellStyle } from '../../../../models/styling/cell.style';\nimport { TaskHelper } from '../../../../models/tasks/task.helper';\nimport { ALevelPanel, ALevelTaskSettingsHelper } from '../../a.task.panel';\n\n@Component({\n selector: 'columndescriptionheader-formatting-task-panel',\n templateUrl: './columndescriptionheader.formatting.task.panel.html'\n})\nexport class ColumndescriptionheaderFormattingTaskPanel extends ALevelPanel {\n\n ColumnIndex: number;\n\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = 'columndescriptionheaderformattingtask';\n reg.Caption = '@@Beschreibungsspaltenkopf';\n reg.SettingsControl = ColumndescriptionheaderFormattingTaskPanel;\n reg.SettingsHelper = new ColumndescriptionheaderFormattingTaskSettingsHelper();\n reg.TaskType = TaskType.FormatTask;\n return reg;\n }\n\n OnSettingsSet() {\n if (this.SettingsValue) {\n if (this.SettingsValue.Style) {\n if (!(this.SettingsValue.Style instanceof CellStyle)) {\n this.SettingsValue.Style = plainToClass(CellStyle, this.SettingsValue.Style);\n }\n } else {\n this.SettingsValue.Style = new CellStyle();\n }\n }\n }\n}\n\nexport class ColumndescriptionheaderFormattingTaskSettingsHelper extends ALevelTaskSettingsHelper {\n canExecute(reportObject: any): boolean {\n return TaskHelper.IsTableObject(reportObject);\n }\n getCaption(task: any, dd: any) {\n const caption = super.getCaption(task, dd);\n if (caption) {\n return caption + ' - ' + TranslateHelper.TranslatorInstance.instant('@@Beschreibungsspaltenformatierung');\n }\n return TranslateHelper.TranslatorInstance.instant('@@Beschreibungsspaltenformatierung');\n }\n}\n","import { ChangeDetectorRef, Directive, EventEmitter, Input, Output } from '@angular/core';\nimport { MultiCacheService } from '../../../../cache/multi/cache.service';\nimport { MessageBoxHelper } from '../../../../components/dialogs/messagebox/messagebox.dialog';\nimport { TranslateFormatText } from '../../../../helpers/array.helpers';\nimport { EnumHelper } from '../../../../helpers/enum.helper';\nimport { ConditionOperator } from '../../../../models/enums/conditionoperator.enum';\nimport { MessageBoxButtons } from '../../../../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../../../../models/enums/messageboxicon.enum';\nimport { MessageBoxResult } from '../../../../models/enums/messageboxresult.enum';\nimport { ConditionFormattingStyle } from '../../../../models/tasks/conditional.model';\nimport { ConditionalLevelTaskExecuter } from '../../../../models/tasks/formattasks/conditionallevel.formatting.task';\nimport { ConditionalMeasureTaskExecuter } from '../../../../models/tasks/formattasks/conditionalmeasure.formatting.task';\nimport { MultiReportingService } from '../../../../services/reporting.service';\nimport { ALevelMeasurePanel } from '../../a.task.panel';\n\n@Directive()\nexport abstract class AConditionalFormattingTaskPanel extends ALevelMeasurePanel {\n\n StyleVal: any;\n CompareTypes: any[];\n ActualCondition: any;\n\n ListItems = [];\n selectedNode;\n\n // TaskList\n TaskListConditionalValue = [];\n @Input()\n get TaskListConditional() {\n return this.TaskListConditionalValue;\n }\n set TaskListConditional(val) {\n this.TaskListConditionalValue = val;\n this.TaskListConditionalValueChange.emit(val);\n }\n\n @Output() TaskListConditionalValueChange = new EventEmitter(); \n\n Levelmembers = [];\n\n constructor(public service: MultiReportingService, public cdRef: ChangeDetectorRef) {\n super();\n this.CompareTypes = EnumHelper.GetDropdownValues(ConditionOperator);\n }\n\n async LevelChanged(levelItem) {\n this.Levelmembers = [];\n const levelID = this.levelUniqueToUUID.get(levelItem.value);\n const cubeLevel = await MultiCacheService.GetLevel(levelID, this.DataDescription.DataModelID);\n if (cubeLevel) {\n this.service.GetMembers(cubeLevel.Parent.Parent.DatasourceID, levelID, null, null).subscribe(members => {\n const memberList = [];\n if (members) {\n members.forEach(m => {\n memberList.push({\n Caption: m.Caption,\n Value: m.ID\n });\n });\n }\n this.Levelmembers = memberList;\n });\n }\n }\n\n OnSettingsSet() {\n if (this.SettingsValue) {\n if (!this.SettingsValue.ConditionFormatingStyles) {\n this.SettingsValue.ConditionFormatingStyles = [];\n }\n\n this.LevelChanged({ value: this.SettingsValue.LevelUniqueID });\n // this.StyleVal = StyleMerger.GetStyleObject(this.SettingsValue.Style);\n }\n this.TaskListConditionalValue = this.SettingsValue.ConditionFormatingStyles;\n this.updateTaskList(true);\n }\n\n IsConditionalMeasureTask() {\n return this.SettingsValue.TaskType === ConditionalMeasureTaskExecuter.TaskID;\n }\n\n IsConditionalLevelTask() {\n return this.SettingsValue.TaskType === ConditionalLevelTaskExecuter.TaskID;\n }\n\n updateTaskList(selectFirst = false) {\n if (this.TaskListConditionalValue.length === 0) {\n this.addItem();\n } else {\n\n this.ListItems = [];\n this.TaskListConditionalValue.forEach((task, i) => {\n const item = {\n Caption: this.CompareTypes.find(x => x.type === task.Condition.ConditionOperator).value,\n ID: this.ListItems.length\n };\n item.Caption += task.Condition.Value1 ? ' ' + task.Condition.Value1 : '';\n item.Caption += task.Condition.Value2 ? ' ' + task.Condition.Value2 : '';\n this.ListItems.push(item);\n });\n const selectItem = selectFirst ? this.TaskListConditionalValue[0] : null;\n this.setSelectedItem(selectItem);\n }\n }\n\n async onItemClick(selection) {\n if (this.selectedNode !== selection) {\n this.selectedNode = selection;\n let task = null;\n if (selection && this.TaskListConditionalValue) {\n task = this.TaskListConditionalValue[selection.ID];\n this.LevelChanged({ value: task.Condition.LevelUniqueID });\n }\n this.setSelectedItem(task);\n }\n }\n\n addItem() {\n if (this.TaskListConditionalValue.length > 0) {\n this.updateTaskList(false);\n }\n this.Levelmembers = [];\n const cond = new ConditionFormattingStyle();\n\n const item = {\n Caption: this.CompareTypes.find(x => x.type === cond.Condition.ConditionOperator).value,\n ID: this.ListItems.length\n };\n item.Caption += cond.Condition.Value1 ? ' ' + cond.Condition.Value1 : '';\n item.Caption += cond.Condition.Value2 ? ' ' + cond.Condition.Value2 : '';\n\n this.ListItems.push(item);\n this.TaskListConditionalValue.push(cond);\n this.selectedNode = item;\n this.setSelectedItem(cond);\n }\n\n setSelectedItem(item) {\n this.ActualCondition = item;\n if (this.ActualCondition) {\n this.StyleVal = this.ActualCondition.Style;\n }\n }\n\n async deleteItem() {\n const sel = this.selectedNode;\n if (sel) {\n const text = new TranslateFormatText('@@Sind Sie sicher, dass Sie den Task \\'{0}\\' loeschen moechten?');\n text.FormatParams.push(sel.Caption);\n const retVal = await MessageBoxHelper.ShowDialog(text, new TranslateFormatText('@@Task loeschen'),\n MessageBoxButtons.YesNo, MessageBoxIcon.Question);\n if (retVal === MessageBoxResult.Yes) {\n\n if (this.TaskListConditionalValue) {\n this.TaskListConditionalValue.splice(sel.ID, 1);\n }\n this.ListItems.splice(sel.ID, 1);\n\n this.selectedNode = null;\n const selectItem = this.TaskListConditionalValue.length > 0 ? this.TaskListConditionalValue[0] : null;\n this.setSelectedItem(selectItem);\n this.cdRef.detectChanges();\n }\n }\n }\n\n moveUp() {\n if (this.selectedNode && this.selectedNode.ID > 0 && this.TaskListConditionalValue && this.TaskListConditionalValue.length > 0) {\n const task = this.TaskListConditionalValue.splice(this.selectedNode.ID, 1)[0];\n this.TaskListConditionalValue.splice(0, 0, task);\n this.ListItems.splice(this.selectedNode.ID, 1);\n this.ListItems.splice(0, 0, this.selectedNode);\n this.ListItems.forEach((x, i) => { x.ID = i; });\n }\n }\n\n moveOneUp() {\n if (this.selectedNode && this.selectedNode.ID > 0 && this.TaskListConditionalValue && this.TaskListConditionalValue.length > 0) {\n const task = this.TaskListConditionalValue.splice(this.selectedNode.ID, 1)[0];\n this.TaskListConditionalValue.splice(this.selectedNode.ID - 1, 0, task);\n this.ListItems.splice(this.selectedNode.ID, 1);\n this.ListItems.splice(this.selectedNode.ID - 1, 0, this.selectedNode);\n this.ListItems.forEach((x, i) => { x.ID = i; });\n }\n }\n\n moveOneDown() {\n if (this.selectedNode && this.TaskListConditionalValue && this.TaskListConditionalValue.length > 0 &&\n this.selectedNode.ID < this.TaskListConditionalValue.length - 1) {\n const task = this.TaskListConditionalValue.splice(this.selectedNode.ID, 1)[0];\n this.TaskListConditionalValue.splice(this.selectedNode.ID + 1, 0, task);\n this.ListItems.splice(this.selectedNode.ID, 1);\n this.ListItems.splice(this.selectedNode.ID + 1, 0, this.selectedNode);\n this.ListItems.forEach((x, i) => { x.ID = i; });\n }\n }\n\n moveDown() {\n if (this.selectedNode && this.TaskListConditionalValue && this.TaskListConditionalValue.length > 0 &&\n this.selectedNode.ID < this.TaskListConditionalValue.length - 1) {\n const task = this.TaskListConditionalValue.splice(this.selectedNode.ID, 1)[0];\n this.TaskListConditionalValue.push(task);\n this.ListItems.splice(this.selectedNode.ID, 1);\n this.ListItems.push(this.selectedNode);\n this.ListItems.forEach((x, i) => { x.ID = i; });\n }\n }\n}\n","import { ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { TranslateHelper } from '../../../../helpers/injector.helper';\nimport { TaskRegistryEntry, TaskType } from '../../../../helpers/task.registry';\nimport { ConditionalLevelTaskExecuter } from '../../../../models/tasks/formattasks/conditionallevel.formatting.task';\nimport { TaskHelper } from '../../../../models/tasks/task.helper';\nimport { MultiReportingService } from '../../../../services/reporting.service';\nimport { ALevelMeasureTaskSettingsHelper } from '../../a.task.panel';\nimport { AConditionalFormattingTaskPanel } from './aconditional.formatting.task.panel';\n\n@Component({\n selector: 'conditional-formatting-task-panel',\n templateUrl: './conditional.formatting.task.panel.html'\n})\nexport class LevelConditionalFormattingTaskPanel extends AConditionalFormattingTaskPanel {\n\n StyleVal = {};\n \n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = ConditionalLevelTaskExecuter.TaskID;\n reg.Caption = '@@Bedingte Levelformatierung';\n reg.SettingsControl = LevelConditionalFormattingTaskPanel;\n reg.SettingsHelper = new LevelConditionalTaskSettingsHelper();\n reg.Executer = ConditionalLevelTaskExecuter;\n reg.TaskType = TaskType.FormatTask;\n return reg;\n }\n\n constructor(public service: MultiReportingService, public cdRef: ChangeDetectorRef) {\n super(service, cdRef);\n }\n\n TaskTypeIDValue = ConditionalLevelTaskExecuter.TaskID;\n @Input()\n get TaskTypeID() {\n return this.TaskTypeIDValue;\n }\n set TaskTypeID(val) {\n this.TaskTypeIDValue = val;\n }\n}\n\nexport class LevelConditionalTaskSettingsHelper extends ALevelMeasureTaskSettingsHelper {\n canExecute(reportObject: any): boolean {\n return TaskHelper.IsTableObject(reportObject);\n }\n getCaption(task: any, dd: any) {\n let caption = super.getCaption(task, dd);\n if (caption) {\n caption += '-' + TranslateHelper.TranslatorInstance.instant('@@Bedingt');\n return caption;\n }\n return TranslateHelper.TranslatorInstance.instant('@@Bedingte Levelformatierung');\n }\n}\n","import { ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { TranslateHelper } from '../../../../helpers/injector.helper';\nimport { TaskRegistryEntry, TaskType } from '../../../../helpers/task.registry';\nimport { ConditionalMeasureTaskExecuter } from '../../../../models/tasks/formattasks/conditionalmeasure.formatting.task';\nimport { TaskHelper } from '../../../../models/tasks/task.helper';\nimport { MultiReportingService } from '../../../../services/reporting.service';\nimport { AMeasureTaskSettingsHelper } from '../../a.task.panel';\nimport { AConditionalFormattingTaskPanel } from './aconditional.formatting.task.panel';\n\n@Component({\n selector: 'conditional-formatting-task-panel',\n templateUrl: './conditional.formatting.task.panel.html'\n})\nexport class MeasureConditionalFormattingTaskPanel extends AConditionalFormattingTaskPanel {\n StyleVal = {};\n \n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = ConditionalMeasureTaskExecuter.TaskID;\n reg.Caption = '@@Bedingte Wertformatierung';\n reg.SettingsControl = MeasureConditionalFormattingTaskPanel;\n reg.SettingsHelper = new MeasureConditionalTaskSettingsHelper();\n reg.Executer = ConditionalMeasureTaskExecuter;\n reg.TaskType = TaskType.FormatTask;\n return reg;\n }\n\n TaskTypeIDValue = ConditionalMeasureTaskExecuter.TaskID;\n @Input()\n get TaskTypeID() {\n return this.TaskTypeIDValue;\n }\n set TaskTypeID(val) {\n this.TaskTypeIDValue = val;\n }\n\n constructor(public service: MultiReportingService, public cdRef: ChangeDetectorRef) {\n super(service, cdRef);\n }\n}\n\nexport class MeasureConditionalTaskSettingsHelper extends AMeasureTaskSettingsHelper {\n canExecute(reportObject: any): boolean {\n return TaskHelper.IsTableObject(reportObject);\n }\n getCaption(task: any, dd: any) {\n let caption = super.getCaption(task, dd);\n if (caption) {\n caption += '-' + TranslateHelper.TranslatorInstance.instant('@@Bedingt');\n return caption;\n }\n return TranslateHelper.TranslatorInstance.instant('@@Bedingte Wertformatierung');\n }\n}\n","import { Component } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { TranslateHelper } from '../../../../helpers/injector.helper';\nimport { TaskRegistryEntry, TaskType } from '../../../../helpers/task.registry';\nimport { CellStyle } from '../../../../models/styling/cell.style';\nimport { LevelFormattingTaskExecuter } from '../../../../models/tasks/formattasks/level.formatting.task';\nimport { TaskHelper } from '../../../../models/tasks/task.helper';\nimport { ALevelPanel, ALevelTaskSettingsHelper } from '../../a.task.panel';\n\n@Component({\n selector: 'level-formatting-task-panel',\n templateUrl: './level.formatting.task.panel.html'\n})\nexport class LevelFormattingTaskPanel extends ALevelPanel {\n\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = LevelFormattingTaskExecuter.TaskID;\n reg.Caption = '@@Level';\n reg.SettingsControl = LevelFormattingTaskPanel;\n reg.SettingsHelper = new LevelFormattingTaskSettingsHelper();\n reg.Executer = LevelFormattingTaskExecuter;\n reg.TaskType = TaskType.FormatTask;\n return reg;\n }\n\n OnSettingsSet() {\n if (this.SettingsValue) {\n if (this.SettingsValue.Style) {\n if (!(this.SettingsValue.Style instanceof CellStyle)) {\n this.SettingsValue.Style = plainToClass(CellStyle, this.SettingsValue.Style);\n }\n } else {\n this.SettingsValue.Style = new CellStyle();\n }\n }\n } \n}\n\nexport class LevelFormattingTaskSettingsHelper extends ALevelTaskSettingsHelper {\n canExecute(reportObject: any): boolean {\n return TaskHelper.IsTableObject(reportObject);\n }\n getCaption(task: any, dd: any) {\n const caption = super.getCaption(task, dd);\n if (caption) {\n return caption + \" - \" + TranslateHelper.TranslatorInstance.instant('@@Levelformatierung');\n }\n return TranslateHelper.TranslatorInstance.instant('@@Levelformatierung');\n }\n}\n","import { Component } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { TranslateHelper } from '../../../../helpers/injector.helper';\nimport { TaskRegistryEntry, TaskType } from '../../../../helpers/task.registry';\nimport { CellStyle } from '../../../../models/styling/cell.style';\nimport { LevelHeaderFormattingTaskExecuter } from '../../../../models/tasks/formattasks/levelheader.formatting.task';\nimport { TaskHelper } from '../../../../models/tasks/task.helper';\nimport { ALevelPanel, ALevelTaskSettingsHelper } from '../../a.task.panel';\n\n@Component({\n selector: 'levelheader-formatting-task-panel',\n templateUrl: './levelheader.formatting.task.panel.html'\n})\nexport class LevelHeaderFormattingTaskPanel extends ALevelPanel {\n\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = LevelHeaderFormattingTaskExecuter.TaskID;\n reg.Caption = '@@Levelkopf';\n reg.SettingsControl = LevelHeaderFormattingTaskPanel;\n reg.SettingsHelper = new LevelHeaderFormattingTaskSettingsHelper();\n reg.Executer = LevelHeaderFormattingTaskExecuter;\n reg.TaskType = TaskType.FormatTask;\n return reg;\n }\n\n OnSettingsSet() {\n if (this.SettingsValue) {\n if (this.SettingsValue.Style) {\n if (!(this.SettingsValue.Style instanceof CellStyle)) {\n this.SettingsValue.Style = plainToClass(CellStyle, this.SettingsValue.Style);\n }\n } else {\n this.SettingsValue.Style = new CellStyle();\n }\n }\n } \n}\n\nexport class LevelHeaderFormattingTaskSettingsHelper extends ALevelTaskSettingsHelper {\n canExecute(reportObject: any): boolean {\n return TaskHelper.IsTableObject(reportObject);\n }\n getCaption(task: any, dd: any) {\n const caption = super.getCaption(task, dd);\n if (caption) {\n return caption + \" - \" + TranslateHelper.TranslatorInstance.instant('@@Levelkopfformatierung');\n }\n return TranslateHelper.TranslatorInstance.instant('@@Levelkopfformatierung');\n }\n}\n","import { Component } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { TranslateHelper } from '../../../../helpers/injector.helper';\nimport { TaskRegistryEntry, TaskType } from '../../../../helpers/task.registry';\nimport { CellStyle } from '../../../../models/styling/cell.style';\nimport { MeasureTaskExecuter } from '../../../../models/tasks/formattasks/measure.formatting.task';\nimport { TaskHelper } from '../../../../models/tasks/task.helper';\nimport { AMeasurePanel, AMeasureTaskSettingsHelper } from '../../a.task.panel';\n\n@Component({\n selector: 'measure-formatting-task-panel',\n templateUrl: './measure.formatting.task.panel.html'\n})\nexport class MeasureFormattingTaskPanel extends AMeasurePanel {\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = MeasureTaskExecuter.TaskID;\n reg.Caption = '@@Wert';\n reg.SettingsControl = MeasureFormattingTaskPanel;\n reg.SettingsHelper = new MeasureFormattingTaskSettingsHelper();\n reg.Executer = MeasureTaskExecuter;\n reg.TaskType = TaskType.FormatTask;\n return reg;\n }\n\n OnSettingsSet() {\n if (this.SettingsValue) {\n if (this.SettingsValue.Style) {\n if (!(this.SettingsValue.Style instanceof CellStyle)) {\n this.SettingsValue.Style = plainToClass(CellStyle, this.SettingsValue.Style);\n }\n } else {\n this.SettingsValue.Style = new CellStyle();\n }\n }\n }\n\n}\n\nexport class MeasureFormattingTaskSettingsHelper extends AMeasureTaskSettingsHelper {\n canExecute(reportObject: any): boolean {\n return TaskHelper.IsTableObject(reportObject);\n }\n getCaption(task: any, dd: any) {\n const caption = super.getCaption(task, dd);\n if (caption) {\n return caption + \" - \" + TranslateHelper.TranslatorInstance.instant('@@Wertformatierung');\n }\n return TranslateHelper.TranslatorInstance.instant('@@Wertformatierung');\n }\n}\n","import { Component } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { TranslateHelper } from '../../../../helpers/injector.helper';\nimport { TaskRegistryEntry, TaskType } from '../../../../helpers/task.registry';\nimport { CellStyle } from '../../../../models/styling/cell.style';\nimport { MeasureHeaderTaskExecuter } from '../../../../models/tasks/formattasks/measureheader.formatting.task';\nimport { TaskHelper } from '../../../../models/tasks/task.helper';\nimport { AMeasurePanel, AMeasureTaskSettingsHelper } from '../../a.task.panel';\n\n@Component({\n selector: 'measureheader-formatting-task-panel',\n templateUrl: './measureheader.formatting.task.panel.html'\n})\nexport class MeasureHeaderFormattingTaskPanel extends AMeasurePanel {\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = MeasureHeaderTaskExecuter.TaskID;\n reg.Caption = '@@Wertkopf';\n reg.SettingsControl = MeasureHeaderFormattingTaskPanel;\n reg.SettingsHelper = new MeasureHeaderFormattingTaskSettingsHelper();\n reg.Executer = MeasureHeaderTaskExecuter;\n reg.TaskType = TaskType.FormatTask;\n return reg;\n }\n\n OnSettingsSet() {\n if (this.SettingsValue) {\n if (this.SettingsValue.Style) {\n if (!(this.SettingsValue.Style instanceof CellStyle)) {\n this.SettingsValue.Style = plainToClass(CellStyle, this.SettingsValue.Style);\n }\n } else {\n this.SettingsValue.Style = new CellStyle();\n }\n }\n }\n\n}\n\nexport class MeasureHeaderFormattingTaskSettingsHelper extends AMeasureTaskSettingsHelper {\n canExecute(reportObject: any): boolean {\n return TaskHelper.IsTableObject(reportObject);\n }\n getCaption(task: any, dd: any) {\n const caption = super.getCaption(task, dd);\n if (caption) {\n return caption + \" - \" + TranslateHelper.TranslatorInstance.instant('@@Wertkopfformatierung');\n }\n return TranslateHelper.TranslatorInstance.instant('@@Wertkopfformatierung');\n }\n}\n","import { Component } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { TranslateHelper } from '../../../../helpers/injector.helper';\nimport { ATaskSettingsHelper, TaskRegistryEntry, TaskType } from '../../../../helpers/task.registry';\nimport { CellStyle } from '../../../../models/styling/cell.style';\nimport { SumFormattingTaskExecuter } from '../../../../models/tasks/formattasks/sum.formatting.task';\nimport { TaskHelper } from '../../../../models/tasks/task.helper';\nimport { ATaskPanel } from '../../a.task.panel';\n\n@Component({\n selector: 'sum-formatting-task-panel',\n templateUrl: './sum.formatting.task.panel.html'\n})\nexport class SumFormattingTaskPanel extends ATaskPanel {\n\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = SumFormattingTaskExecuter.TaskID;\n reg.Caption = '@@Summe';\n reg.SettingsControl = SumFormattingTaskPanel;\n reg.SettingsHelper = new SumFormattingTaskSettingsHelper();\n reg.Executer = SumFormattingTaskExecuter;\n reg.TaskType = TaskType.FormatTask;\n return reg;\n }\n\n OnSettingsSet() {\n if (this.SettingsValue) {\n if (this.SettingsValue.Style) {\n if (!(this.SettingsValue.Style instanceof CellStyle)) {\n this.SettingsValue.Style = plainToClass(CellStyle, this.SettingsValue.Style);\n }\n } else {\n this.SettingsValue.Style = new CellStyle();\n }\n }\n } \n}\n\nexport class SumFormattingTaskSettingsHelper extends ATaskSettingsHelper {\n canExecute(reportObject: any): boolean {\n return TaskHelper.IsTableObject(reportObject);\n }\n getCaption(task: any, dd: any) {\n return TranslateHelper.TranslatorInstance.instant('@@Summenformatierung');\n }\n}\n","import { Component } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { TranslateHelper } from '../../../../helpers/injector.helper';\nimport { ATaskSettingsHelper, TaskRegistryEntry, TaskType } from '../../../../helpers/task.registry';\nimport { CellStyle } from '../../../../models/styling/cell.style';\nimport { SumXLevelFormattingTaskExecuter } from '../../../../models/tasks/formattasks/sum.xlevel.formatting.task';\nimport { TaskHelper } from '../../../../models/tasks/task.helper';\nimport { ATaskPanel } from '../../a.task.panel';\n\n@Component({\n selector: 'sum-xlevel-formatting-task-panel',\n templateUrl: './sum.formatting.task.panel.html'\n})\nexport class SumXLevelFormattingTaskPanel extends ATaskPanel {\n\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = SumXLevelFormattingTaskExecuter.TaskID;\n reg.Caption = '@@Summe X-Level';\n reg.SettingsControl = SumXLevelFormattingTaskPanel;\n reg.SettingsHelper = new SumXLevelFormattingTaskSettingsHelper();\n reg.Executer = SumXLevelFormattingTaskExecuter;\n reg.TaskType = TaskType.FormatTask;\n return reg;\n }\n\n OnSettingsSet() {\n if (this.SettingsValue) {\n if (this.SettingsValue.Style) {\n if (!(this.SettingsValue.Style instanceof CellStyle)) {\n this.SettingsValue.Style = plainToClass(CellStyle, this.SettingsValue.Style);\n }\n } else {\n this.SettingsValue.Style = new CellStyle();\n }\n }\n } \n}\n\nexport class SumXLevelFormattingTaskSettingsHelper extends ATaskSettingsHelper {\n canExecute(reportObject: any): boolean {\n return TaskHelper.IsTableObject(reportObject);\n }\n getCaption(task: any, dd: any) {\n return TranslateHelper.TranslatorInstance.instant('@@Summenformatierung X-level');\n }\n}\n","import { Component } from '@angular/core';\nimport { TranslateFormatText } from '../../helpers/array.helpers';\nimport { TaskRegistry, TaskType } from '../../helpers/task.registry';\nimport { DialogButton } from '../../models/enums/dialogbutton.enum';\nimport { MessageBoxButtons } from '../../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../../models/enums/messageboxicon.enum';\nimport { CalculateTaskExecuter } from '../../models/tasks/datatasks/calculate.model';\nimport { BaseDialog } from '../dialogs/basedialog/base.dialog';\nimport { MessageBoxHelper } from '../dialogs/messagebox/messagebox.dialog';\n\n@Component({\n selector: 'new-task-dialog',\n templateUrl: './new.task.dialog.html'\n})\nexport class NewTaskDialog {\n AllTasks = [];\n SelectedTask;\n IgnoreList = [CalculateTaskExecuter.TaskID];\n\n static ShowDialog(taskType: TaskType, reportObject, handler) {\n BaseDialog.ShowDialog({\n ContentType: NewTaskDialog,\n InitArgs: {\n TaskType: taskType,\n ReportObject: reportObject\n },\n Title: '@@Neuer Task',\n Handler: (r) => {\n if (r && handler) {\n handler(r);\n }\n return true;\n }\n });\n }\n\n Initialize(args) {\n if (args) {\n const taskList = [];\n TaskRegistry.forEach(v => {\n if (v.TaskType === args.TaskType && !this.IgnoreList.some(x => x === v.ID) &&\n (!args.ReportObject || (v.SettingsHelper && v.SettingsHelper.canExecute(args.ReportObject)))) {\n taskList.push({\n Caption: v.Caption,\n Value: v.ID\n });\n }\n });\n this.AllTasks = taskList;\n }\n }\n\n GetDialogResult() {\n return this.SelectedTask;\n }\n\n OnDialogButtonClickAction(button) {\n if (button === DialogButton.Ok) {\n if (!this.SelectedTask) {\n MessageBoxHelper.ShowDialog(new TranslateFormatText('@@Neuer Task'),\n new TranslateFormatText('@@Bitte waehlen Sie einen Task aus.'),\n MessageBoxButtons.Ok, MessageBoxIcon.Information);\n return false;\n }\n }\n return true;\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { MessageBoxHelper } from '../../../../components/dialogs/messagebox/messagebox.dialog';\nimport { TranslateFormatText } from '../../../../helpers/array.helpers';\nimport { EnumHelper } from '../../../../helpers/enum.helper';\nimport { TranslateHelper } from '../../../../helpers/injector.helper';\nimport { ATaskSettingsHelper, TaskRegistryEntry, TaskType } from '../../../../helpers/task.registry';\nimport { ConditionOperator } from '../../../../models/enums/conditionoperator.enum';\nimport { MessageBoxButtons } from '../../../../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../../../../models/enums/messageboxicon.enum';\nimport { MessageBoxResult } from '../../../../models/enums/messageboxresult.enum';\nimport { CellStyle } from '../../../../models/styling/cell.style';\nimport { ConditionFormattingStyle } from '../../../../models/tasks/conditional.model';\nimport { PlanningCellFormattingTaskExecuter } from '../../../../models/tasks/planning/cell.formatting.task';\nimport { TaskHelper } from '../../../../models/tasks/task.helper';\nimport { ATaskPanel } from '../../a.task.panel';\n\n@Component({\n selector: 'cell-planning-task-panel',\n templateUrl: './cell.planning.task.panel.html'\n})\nexport class CellPlanningTaskPanel extends ATaskPanel {\n\n StyleVal: any;\n CompareTypes: any[];\n ActualCondition: any;\n ListItems = [];\n selectedNode;\n\n //#region TaskListConditionalValue\n TaskListConditionalValue = [];\n @Input()\n get TaskListConditional() {\n return this.TaskListConditionalValue;\n }\n set TaskListConditional(val) {\n this.TaskListConditionalValue = val;\n this.TaskListConditionalValueChange.emit(val);\n }\n\n @Output() TaskListConditionalValueChange = new EventEmitter();\n //#endregion\n\n constructor() {\n super();\n this.CompareTypes = EnumHelper.GetDropdownValues(ConditionOperator);\n }\n\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = PlanningCellFormattingTaskExecuter.TaskID;\n reg.Caption = '@@Cell';\n reg.SettingsControl = CellPlanningTaskPanel;\n reg.SettingsHelper = new ContentPlanningTaskSettingsHelper();\n reg.Executer = PlanningCellFormattingTaskExecuter;\n reg.TaskType = TaskType.FormatTask;\n return reg;\n }\n\n OnSettingsSet() {\n if (this.SettingsValue) {\n if (this.SettingsValue.Style) {\n if (!(this.SettingsValue.Style instanceof CellStyle)) {\n this.SettingsValue.Style = plainToClass(CellStyle, this.SettingsValue.Style);\n }\n } else {\n this.SettingsValue.Style = new CellStyle();\n }\n if (!this.SettingsValue.ConditionFormatingStyles) {\n this.SettingsValue.ConditionFormatingStyles = [];\n }\n this.TaskListConditionalValue = this.SettingsValue.ConditionFormatingStyles;\n this.updateTaskList(true);\n }\n } \n\n async onItemClick(selection) {\n if (this.selectedNode !== selection) {\n this.selectedNode = selection;\n let task = null;\n if (selection && this.TaskListConditionalValue) {\n task = this.TaskListConditionalValue[selection.ID];\n }\n this.setSelectedItem(task);\n }\n }\n\n addItem() {\n if (this.TaskListConditionalValue.length > 0) {\n this.updateTaskList(false);\n }\n const cond = new ConditionFormattingStyle();\n\n const item = {\n Caption: this.CompareTypes.find(x => x.type === cond.Condition.ConditionOperator).value,\n ID: this.ListItems.length\n };\n item.Caption += cond.Condition.Value1 ? ' ' + cond.Condition.Value1 : '';\n item.Caption += cond.Condition.Value2 ? ' ' + cond.Condition.Value2 : '';\n\n this.ListItems.push(item);\n this.TaskListConditionalValue.push(cond);\n this.selectedNode = item;\n this.setSelectedItem(cond);\n }\n\n updateTaskList(selectFirst = false) {\n if (this.TaskListConditionalValue.length === 0) {\n this.addItem();\n } else {\n\n this.ListItems = [];\n this.TaskListConditionalValue.forEach((task, i) => {\n const item = {\n Caption: this.CompareTypes.find(x => x.type === task.Condition.ConditionOperator).value,\n ID: this.ListItems.length\n };\n item.Caption += task.Condition.Value1 ? ' ' + task.Condition.Value1 : '';\n item.Caption += task.Condition.Value2 ? ' ' + task.Condition.Value2 : '';\n this.ListItems.push(item);\n });\n const selectItem = selectFirst ? this.TaskListConditionalValue[0] : null;\n this.setSelectedItem(selectItem);\n }\n }\n\n setSelectedItem(item) {\n this.ActualCondition = item;\n if (this.ActualCondition) {\n this.StyleVal = this.ActualCondition.Style;\n }\n }\n\n\n async deleteItem() {\n const sel = this.selectedNode;\n if (sel) {\n const text = new TranslateFormatText('@@Sind Sie sicher, dass Sie den Task \\'{0}\\' loeschen moechten?');\n text.FormatParams.push(sel.Caption);\n const retVal = await MessageBoxHelper.ShowDialog(text, new TranslateFormatText('@@Task loeschen'),\n MessageBoxButtons.YesNo, MessageBoxIcon.Question);\n if (retVal === MessageBoxResult.Yes) {\n\n if (this.TaskListConditionalValue) {\n this.TaskListConditionalValue.splice(sel.ID, 1);\n }\n this.ListItems.splice(sel.ID, 1);\n\n this.selectedNode = null;\n const selectItem = this.TaskListConditionalValue.length > 0 ? this.TaskListConditionalValue[0] : null;\n this.setSelectedItem(selectItem);\n }\n }\n }\n\n moveUp() {\n if (this.selectedNode && this.selectedNode.ID > 0 && this.TaskListConditionalValue && this.TaskListConditionalValue.length > 0) {\n const task = this.TaskListConditionalValue.splice(this.selectedNode.ID, 1)[0];\n this.TaskListConditionalValue.splice(0, 0, task);\n this.ListItems.splice(this.selectedNode.ID, 1);\n this.ListItems.splice(0, 0, this.selectedNode);\n this.ListItems.forEach((x, i) => { x.ID = i; });\n }\n }\n\n moveOneUp() {\n if (this.selectedNode && this.selectedNode.ID > 0 && this.TaskListConditionalValue && this.TaskListConditionalValue.length > 0) {\n const task = this.TaskListConditionalValue.splice(this.selectedNode.ID, 1)[0];\n this.TaskListConditionalValue.splice(this.selectedNode.ID - 1, 0, task);\n this.ListItems.splice(this.selectedNode.ID, 1);\n this.ListItems.splice(this.selectedNode.ID - 1, 0, this.selectedNode);\n this.ListItems.forEach((x, i) => { x.ID = i; });\n }\n }\n\n moveOneDown() {\n if (this.selectedNode && this.TaskListConditionalValue && this.TaskListConditionalValue.length > 0 &&\n this.selectedNode.ID < this.TaskListConditionalValue.length - 1) {\n const task = this.TaskListConditionalValue.splice(this.selectedNode.ID, 1)[0];\n this.TaskListConditionalValue.splice(this.selectedNode.ID + 1, 0, task);\n this.ListItems.splice(this.selectedNode.ID, 1);\n this.ListItems.splice(this.selectedNode.ID + 1, 0, this.selectedNode);\n this.ListItems.forEach((x, i) => { x.ID = i; });\n }\n }\n\n moveDown() {\n if (this.selectedNode && this.TaskListConditionalValue && this.TaskListConditionalValue.length > 0 &&\n this.selectedNode.ID < this.TaskListConditionalValue.length - 1) {\n const task = this.TaskListConditionalValue.splice(this.selectedNode.ID, 1)[0];\n this.TaskListConditionalValue.push(task);\n this.ListItems.splice(this.selectedNode.ID, 1);\n this.ListItems.push(this.selectedNode);\n this.ListItems.forEach((x, i) => { x.ID = i; });\n }\n }\n}\n\nexport class ContentPlanningTaskSettingsHelper extends ATaskSettingsHelper {\n canExecute(reportObject: any): boolean {\n return TaskHelper.IsPlanningObject(reportObject);\n }\n getCaption(task: any, dd: any) {\n if (task && (task.StartCell || task.EndCell)) {\n return task.StartCell + ':' + task.EndCell;\n }\n return TranslateHelper.TranslatorInstance.instant('@@Contentformatierung');\n }\n}\n","import { Component } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { TranslateHelper } from '../../../../helpers/injector.helper';\nimport { ATaskSettingsHelper, TaskRegistryEntry, TaskType } from '../../../../helpers/task.registry';\nimport { CellStyle } from '../../../../models/styling/cell.style';\nimport { PlanningContentFormattingTaskExecuter } from '../../../../models/tasks/planning/content.formatting.task';\nimport { TaskHelper } from '../../../../models/tasks/task.helper';\nimport { ATaskPanel } from '../../a.task.panel';\n\n@Component({\n selector: 'content-planning-task-panel',\n templateUrl: './content.planning.task.panel.html'\n})\nexport class ContentPlanningTaskPanel extends ATaskPanel {\n\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = PlanningContentFormattingTaskExecuter.TaskID;\n reg.Caption = '@@Content';\n reg.SettingsControl = ContentPlanningTaskPanel;\n reg.SettingsHelper = new ContentPlanningTaskSettingsHelper();\n reg.Executer = PlanningContentFormattingTaskExecuter;\n reg.TaskType = TaskType.FormatTask;\n return reg;\n }\n\n OnSettingsSet() {\n if (this.SettingsValue) {\n if (this.SettingsValue.Style) {\n if (!(this.SettingsValue.Style instanceof CellStyle)) {\n this.SettingsValue.Style = plainToClass(CellStyle, this.SettingsValue.Style);\n }\n } else {\n this.SettingsValue.Style = new CellStyle();\n }\n }\n } \n}\n\nexport class ContentPlanningTaskSettingsHelper extends ATaskSettingsHelper {\n canExecute(reportObject: any): boolean {\n return TaskHelper.IsPlanningObject(reportObject);\n }\n getCaption(task: any, dd: any) {\n return TranslateHelper.TranslatorInstance.instant('@@Contentformatierung');\n }\n}\n","import { Component } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { TranslateHelper } from '../../../../helpers/injector.helper';\nimport { ATaskSettingsHelper, TaskRegistryEntry, TaskType } from '../../../../helpers/task.registry';\nimport { CellStyle } from '../../../../models/styling/cell.style';\nimport { PlanningHeaderFormattingTaskExecuter } from '../../../../models/tasks/planning/header.formatting.task';\nimport { TaskHelper } from '../../../../models/tasks/task.helper';\nimport { ATaskPanel } from '../../a.task.panel';\n\n@Component({\n selector: 'header-planning-task-panel',\n templateUrl: './header.planning.task.panel.html'\n})\nexport class HeaderPlanningTaskPanel extends ATaskPanel {\n\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = PlanningHeaderFormattingTaskExecuter.TaskID;\n reg.Caption = '@@Header';\n reg.SettingsControl = HeaderPlanningTaskPanel;\n reg.SettingsHelper = new HeaderPlanningTaskSettingsHelper();\n reg.Executer = PlanningHeaderFormattingTaskExecuter;\n reg.TaskType = TaskType.FormatTask;\n return reg;\n }\n\n OnSettingsSet() {\n if (this.SettingsValue) {\n if (this.SettingsValue.Style) {\n if (!(this.SettingsValue.Style instanceof CellStyle)) {\n this.SettingsValue.Style = plainToClass(CellStyle, this.SettingsValue.Style);\n }\n } else {\n this.SettingsValue.Style = new CellStyle();\n }\n }\n } \n}\n\nexport class HeaderPlanningTaskSettingsHelper extends ATaskSettingsHelper {\n canExecute(reportObject: any): boolean {\n return TaskHelper.IsPlanningObject(reportObject);\n }\n getCaption(task: any, dd: any) {\n return TranslateHelper.TranslatorInstance.instant('@@Headerformatierung');\n }\n}\n","import { Component } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { TranslateHelper } from '../../../../helpers/injector.helper';\nimport { ATaskSettingsHelper, TaskRegistryEntry, TaskType } from '../../../../helpers/task.registry';\nimport { CellStyle } from '../../../../models/styling/cell.style';\nimport { PlanningRowDescFormattingTaskExecuter } from '../../../../models/tasks/planning/rowdesc.formatting.task';\nimport { TaskHelper } from '../../../../models/tasks/task.helper';\nimport { ATaskPanel } from '../../a.task.panel';\n\n@Component({\n selector: 'rowdesc-planning-task-panel',\n templateUrl: './rowdesc.planning.task.panel.html'\n})\nexport class RowDescPlanningTaskPanel extends ATaskPanel {\n\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = PlanningRowDescFormattingTaskExecuter.TaskID;\n reg.Caption = '@@RowDesc';\n reg.SettingsControl = RowDescPlanningTaskPanel;\n reg.SettingsHelper = new HeaderPlanningTaskSettingsHelper();\n reg.Executer = PlanningRowDescFormattingTaskExecuter;\n reg.TaskType = TaskType.FormatTask;\n return reg;\n }\n\n OnSettingsSet() {\n if (this.SettingsValue) {\n if (this.SettingsValue.Style) {\n if (!(this.SettingsValue.Style instanceof CellStyle)) {\n this.SettingsValue.Style = plainToClass(CellStyle, this.SettingsValue.Style);\n }\n } else {\n this.SettingsValue.Style = new CellStyle();\n }\n }\n } \n}\n\nexport class HeaderPlanningTaskSettingsHelper extends ATaskSettingsHelper {\n canExecute(reportObject: any): boolean {\n return TaskHelper.IsPlanningObject(reportObject);\n }\n getCaption(task: any, dd: any) {\n return TranslateHelper.TranslatorInstance.instant('@@Rowdescformatierung');\n }\n}\n","import { Component } from '@angular/core';\nimport { TranslateHelper } from '../../../helpers/injector.helper';\nimport { TaskRegistryEntry, TaskType } from '../../../helpers/task.registry';\nimport { PreviousLevelExecuter } from '../../../models/tasks/datatasks/previous.level.model';\nimport { AMeasurePanel, AMeasureTaskSettingsHelper } from '../a.task.panel';\n\n@Component({\n selector: 'previous-level-task-panel',\n templateUrl: './previous.level.task.panel.html'\n})\nexport class PreviousLevelTaskPanel extends AMeasurePanel {\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = PreviousLevelExecuter.TaskID;\n reg.Caption = '@@Levelsumme';\n reg.SettingsControl = PreviousLevelTaskPanel;\n reg.SettingsHelper = new PreviousLevelSettingsHelper();\n reg.Executer = PreviousLevelExecuter;\n reg.TaskType = TaskType.DataTask;\n return reg;\n }\n}\n\nexport class PreviousLevelSettingsHelper extends AMeasureTaskSettingsHelper {\n getCaption(task: any, dd: any) {\n const caption = super.getCaption(task, dd);\n if (caption) {\n return caption + \" - \" + TranslateHelper.TranslatorInstance.instant('@@Levelsumme');\n }\n return TranslateHelper.TranslatorInstance.instant('@@Levelsumme');\n }\n}\n","import { Component } from '@angular/core';\nimport { TranslateHelper } from '../../../helpers/injector.helper';\nimport { TaskRegistryEntry, TaskType } from '../../../helpers/task.registry';\nimport { RankTaskExecuter } from '../../../models/tasks/datatasks/rank.model';\nimport { ALevelMeasurePanel, ALevelMeasureTaskSettingsHelper } from '../a.task.panel';\n\n@Component({\n selector: 'rank-task-panel',\n templateUrl: './rank.task.panel.html'\n})\nexport class RankTaskPanel extends ALevelMeasurePanel {\n CompareTypes: any[];\n\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = 'rank';\n reg.Caption = '@@Rang';\n reg.SettingsControl = RankTaskPanel;\n reg.SettingsHelper = new RankSettingsHelper();\n reg.Executer = RankTaskExecuter;\n reg.TaskType = TaskType.DataTask;\n return reg;\n }\n}\n\nexport class RankSettingsHelper extends ALevelMeasureTaskSettingsHelper {\n getCaption(task: any, dd: any) {\n const caption = super.getCaption(task, dd);\n if (caption) {\n return caption + \" - \" + TranslateHelper.TranslatorInstance.instant('@@Rang');\n }\n return TranslateHelper.TranslatorInstance.instant('@@Rang');\n }\n}\n","import {\n AfterViewInit, ChangeDetectorRef, Component, ComponentFactoryResolver,\n EventEmitter, Input, Output, Renderer2, ViewChild, ViewContainerRef\n} from '@angular/core';\nimport { UUID } from 'angular2-uuid';\nimport { plainToClass } from 'class-transformer';\nimport { TranslateFormatText } from '../../helpers/array.helpers';\nimport { TranslateHelper } from '../../helpers/injector.helper';\nimport { TaskRegistry, TaskType } from '../../helpers/task.registry';\nimport { DataDescription } from '../../models/datadescription/multi/datadescription.model';\nimport { MessageBoxButtons } from '../../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../../models/enums/messageboxicon.enum';\nimport { MessageBoxResult } from '../../models/enums/messageboxresult.enum';\nimport { BaseDialog } from '../dialogs/basedialog/base.dialog';\nimport { MessageBoxHelper } from '../dialogs/messagebox/messagebox.dialog';\nimport { NewTaskDialog } from './new.task.dialog';\n\n@Component({\n selector: 'task-overview',\n templateUrl: './task.overview.html',\n styles: ['.settingsList { height: 390px }']\n})\nexport class TaskOverview implements AfterViewInit {\n\n AllListItems = [];\n ListItems = [];\n selectedNode;\n ActiveStyle = {};\n DataDescription;\n Initialized = false;\n\n _SearchValue;\n get SearchValue() {\n return this._SearchValue;\n }\n set SearchValue(val) {\n this._SearchValue = val;\n this.FilterList();\n }\n\n LayoutValue;\n @Input()\n get Layout() {\n return this.LayoutValue;\n }\n set Layout(val) {\n if (val != this.LayoutValue) {\n this.LayoutValue = val;\n this.InitData();\n this.LayoutChange.emit(val);\n }\n }\n @Output() LayoutChange = new EventEmitter();\n\n LayoutElementValue;\n @Input()\n get LayoutElement() {\n return this.LayoutElementValue;\n }\n set LayoutElement(val) {\n if (val != this.LayoutElementValue) {\n this.LayoutElementValue = val;\n this.InitData();\n this.LayoutElementChange.emit(val);\n }\n }\n @Output() LayoutElementChange = new EventEmitter();\n\n TaskTypeValue = TaskType.DataTask;\n @Input()\n get TaskType() {\n return this.TaskTypeValue;\n }\n set TaskType(val) {\n if (val != this.TaskTypeValue) {\n this.TaskTypeValue = val;\n this.InitData();\n this.TaskTypeChange.emit(val);\n }\n }\n @Output() TaskTypeChange = new EventEmitter();\n\n @Output() TasksChanged = new EventEmitter();\n\n constructor(private cdRef: ChangeDetectorRef) {\n }\n\n ngAfterViewInit(): void {\n this.Initialized = true;\n this.InitData();\n }\n\n InitData() {\n this.selectedNode = null;\n if (this.Initialized) {\n if (this.LayoutValue && this.LayoutValue.Datadescriptions && this.LayoutElementValue && this.LayoutElementValue.Query) {\n const data = this.LayoutValue.Datadescriptions.find((dd) => dd.ID === this.LayoutElementValue.Query);\n if (data) {\n this.DataDescription = plainToClass(DataDescription, data.Datadescription);\n }\n }\n const taskList = this.getTaskList();\n if (taskList) {\n const list = this.getTaskListItems(taskList);\n this.AllListItems = list;\n this.FilterList();\n }\n }\n }\n\n FilterList() {\n this.ListItems = this.AllListItems.filter(item =>\n (!this._SearchValue || this._SearchValue == '' || item.Caption.toString().search(this._SearchValue) !== -1));\n }\n\n getTaskListItems(taskList):any [] {\n const list = [];\n taskList.forEach(task => {\n if (task.TaskType) {\n if (typeof task.ID === 'undefined') {\n task.ID = UUID.UUID();\n }\n const desc = TaskRegistry.get(task.TaskType);\n if (desc) {\n if (this.LayoutElementValue && task.QueryID !== this.LayoutElementValue.Query) {\n return;\n }\n const item = {\n Caption: task.TaskType,\n Task: task,\n Tooltip: task.TaskType\n };\n if (desc.SettingsHelper) {\n if (!desc.SettingsHelper.canExecute({ LayoutElement: this.LayoutElementValue })) {\n return;\n }\n item.Caption = desc.SettingsHelper.getCaption(task, this.DataDescription);\n desc.SettingsHelper.Gettooltip(task, this.DataDescription).then((result) => {\n const tooltip = result;\n item.Tooltip = (!tooltip || tooltip === '') ? item.Caption : tooltip;\n });\n }\n list.push(item);\n }\n }\n });\n return list;\n }\n\n getTaskList() {\n if (this.LayoutElementValue) {\n if (this.TaskTypeValue === TaskType.DataTask) {\n if (!this.LayoutElementValue.DataTasks) {\n this.LayoutElementValue.DataTasks = [];\n }\n return this.LayoutElementValue.DataTasks;\n } else {\n if (!this.LayoutElementValue.FormatTasks) {\n this.LayoutElementValue.FormatTasks = [];\n }\n return this.LayoutElementValue.FormatTasks;\n }\n }\n return null;\n }\n\n onItemClick(selection) {\n if (this.selectedNode !== selection) {\n this.selectedNode = selection;\n let task = null;\n if (selection) {\n task = selection.Task;\n }\n this.setSelectedItem(task);\n }\n }\n\n addItem() {\n const taskList = this.getTaskList();\n if (taskList) {\n NewTaskDialog.ShowDialog(this.TaskTypeValue, { LayoutElement: this.LayoutElementValue }, (r) => {\n const task = {\n TaskType: r,\n IsActive: true,\n QueryID: this.LayoutElementValue.Query,\n ID: UUID.UUID()\n };\n const item = {\n Caption: r,\n Task: task\n };\n const desc = TaskRegistry.get(r);\n if (desc && desc.SettingsHelper) {\n item.Caption = desc.SettingsHelper.getCaption(task, this.DataDescription);\n }\n this.editItemInternal(item, taskList).then(x => {\n if (x) {\n this.AllListItems.push(item);\n this.SearchValue = null;\n this.FilterList();\n this.selectedNode = item;\n this.setSelectedItem(task);\n this.cdRef.detectChanges();\n }\n });\n });\n }\n }\n\n copyItem() {\n if (this.selectedNode) {\n const taskList = this.getTaskList();\n if (taskList) {\n const task = JSON.parse(JSON.stringify(this.selectedNode.Task));\n const item = {\n Caption: this.selectedNode.Caption,\n Task: task\n };\n taskList.push(task);\n this.AllListItems.push(item);\n this.FilterList();\n this.selectedNode = item;\n this.setSelectedItem(task);\n this.editItemInternal(item, taskList).then(x => {\n if (!x) {\n this.TasksChanged.emit(true);\n }\n });\n }\n }\n }\n\n setSelectedItem(item) {\n const activeStyle = {};\n if (item && item.IsActive === false) {\n activeStyle['opacity'] = '0.5';\n }\n this.ActiveStyle = activeStyle;\n }\n\n editItem() {\n const sel = this.selectedNode;\n const taskList = this.getTaskList();\n this.editItemInternal(sel, taskList);\n }\n\n editItemInternal(sel, taskList) {\n return new Promise(resolve => {\n if (sel && taskList && (this.DataDescription || this.LayoutElementValue.ElementType == 'planningreportObject')) {\n TaskEditDialog.ShowDialog(sel.Task, this.DataDescription, this.LayoutElementValue, (result) => {\n if (result) {\n const index = taskList.indexOf(sel.Task);\n if (index > -1) {\n taskList.splice(index, 1, result);\n } else {\n taskList.push(result);\n }\n sel.Task = result;\n const desc = TaskRegistry.get(result.TaskType);\n if (desc && desc.SettingsHelper) {\n sel.Caption = desc.SettingsHelper.getCaption(result, this.DataDescription);\n }\n this.TasksChanged.emit(true);\n resolve(true);\n } else {\n resolve(false);\n }\n });\n } else {\n resolve(false);\n }\n }); \n }\n\n deleteItem() {\n if (this.selectedNode) {\n const selIndex = this.ListItems.indexOf(this.selectedNode);\n const selIndex2 = this.AllListItems.indexOf(this.selectedNode);\n if (selIndex >= 0) {\n const taskList = this.getTaskList();\n if (taskList) {\n const index = taskList.indexOf(this.selectedNode.Task);\n if (index > -1) {\n const text = new TranslateFormatText('@@Sind Sie sicher, dass Sie den Task \\'{0}\\' loeschen moechten?');\n text.FormatParams.push(this.selectedNode.Caption);\n MessageBoxHelper.ShowDialog(text, new TranslateFormatText('@@Task loeschen'),\n MessageBoxButtons.YesNo, MessageBoxIcon.Question).then(retVal => {\n if (retVal === MessageBoxResult.Yes) {\n this.selectedNode = null;\n taskList.splice(index, 1);\n this.ListItems.splice(selIndex, 1);\n this.AllListItems.splice(selIndex2, 1);\n this.TasksChanged.emit(true);\n }\n });\n }\n }\n }\n }\n }\n\n\n deleteAllItems() {\n let taskList = this.getTaskList();\n if (taskList) {\n if (taskList.length > 0) {\n const text = TranslateHelper.TranslatorInstance.instant('@@Sind Sie sicher, dass Sie alle Tasks loeschen moechten?');\n MessageBoxHelper.ShowDialog(text, new TranslateFormatText('@@Task loeschen'),\n MessageBoxButtons.YesNo, MessageBoxIcon.Question).then(retVal => {\n if (retVal === MessageBoxResult.Yes) {\n taskList = [];\n this.ListItems = [];\n this.AllListItems = [];\n this.TasksChanged.emit(true);\n }\n });\n }\n }\n }\n moveUp() {\n if (this.selectedNode) {\n const selIndex = this.ListItems.indexOf(this.selectedNode);\n const selIndex2 = this.AllListItems.indexOf(this.selectedNode);\n if (selIndex2 > 0) {\n const taskList = this.getTaskList();\n if (taskList) {\n const index = taskList.indexOf(this.selectedNode.Task);\n if (index > -1) {\n taskList.splice(index, 1);\n taskList.splice(0, 0, this.selectedNode.Task);\n this.ListItems.splice(selIndex, 1);\n this.ListItems.splice(0, 0, this.selectedNode);\n this.AllListItems.splice(selIndex2, 1);\n this.AllListItems.splice(0, 0, this.selectedNode);\n\n this.SearchValue = null;\n this.FilterList();\n this.setSelectedItem(this.selectedNode.Task);\n this.TasksChanged.emit(true);\n }\n }\n }\n \n }\n }\n\n moveOneUp() {\n if (this.selectedNode) {\n const selIndex = this.ListItems.indexOf(this.selectedNode);\n const selIndex2 = this.AllListItems.indexOf(this.selectedNode);\n if (selIndex > 0) {\n const taskList = this.getTaskList();\n if (taskList) {\n const index = taskList.indexOf(this.selectedNode.Task);\n const indexBefore = taskList.indexOf(this.ListItems[selIndex - 1].Task);\n if (index > -1 && indexBefore > -1) {\n taskList.splice(index, 1);\n taskList.splice(indexBefore, 0, this.selectedNode.Task);\n this.ListItems.splice(selIndex, 1);\n this.ListItems.splice(selIndex - 1, 0, this.selectedNode);\n this.AllListItems.splice(selIndex2, 1);\n this.AllListItems.splice(selIndex2 - 1, 0, this.selectedNode);\n this.TasksChanged.emit(true);\n }\n }\n }\n }\n }\n\n moveOneDown() {\n if (this.selectedNode) {\n const selIndex = this.ListItems.indexOf(this.selectedNode);\n const selIndex2 = this.AllListItems.indexOf(this.selectedNode);\n if (selIndex > -1 && selIndex < this.ListItems.length - 1) {\n const taskList = this.getTaskList();\n if (taskList) {\n const index = taskList.indexOf(this.selectedNode.Task);\n const indexAfter = taskList.indexOf(this.ListItems[selIndex + 1].Task);\n if (index > -1 && indexAfter > index) {\n taskList.splice(index, 1);\n taskList.splice(indexAfter, 0, this.selectedNode.Task);\n this.ListItems.splice(selIndex, 1);\n this.ListItems.splice(selIndex + 1, 0, this.selectedNode);\n this.AllListItems.splice(selIndex2, 1);\n this.AllListItems.splice(selIndex2 + 1, 0, this.selectedNode);\n this.TasksChanged.emit(true);\n }\n }\n }\n }\n }\n\n moveDown() {\n if (this.selectedNode) {\n const selIndex = this.ListItems.indexOf(this.selectedNode);\n const selIndex2 = this.AllListItems.indexOf(this.selectedNode);\n if (selIndex > -1 && selIndex < this.ListItems.length - 1) {\n const taskList = this.getTaskList();\n if (taskList) {\n const index = taskList.indexOf(this.selectedNode.Task);\n if (index > -1) {\n taskList.splice(index, 1);\n taskList.push(this.selectedNode.Task);\n this.ListItems.splice(selIndex, 1);\n this.ListItems.push(this.selectedNode);\n this.AllListItems.splice(selIndex2, 1);\n this.AllListItems.push(this.selectedNode);\n this.SearchValue = null;\n this.FilterList();\n this.setSelectedItem(this.selectedNode.Task);\n this.TasksChanged.emit(true);\n }\n }\n }\n }\n }\n\n setActive() {\n const activeStyle = {};\n if (this.selectedNode) {\n if (this.selectedNode.Task.IsActive === false) {\n this.selectedNode.Task.IsActive = true;\n } else {\n this.selectedNode.Task.IsActive = false;\n activeStyle['opacity'] = '0.5';\n }\n }\n this.ActiveStyle = activeStyle;\n }\n}\n\n@Component({\n selector: 'task-edit-dialog',\n template: '
'\n})\nexport class TaskEditDialog implements AfterViewInit {\n Task;\n DataDescription;\n LayoutElement;\n @ViewChild('dynamic', { read: ViewContainerRef }) viewContainerRef: ViewContainerRef;\n\n static ShowDialog(task, dd, le, handler) {\n BaseDialog.ShowDialog({\n ContentType: TaskEditDialog,\n InitArgs: {\n Task: task,\n DataDescription: dd,\n LayoutElement: le\n },\n Handler: (r) => {\n if (handler) {\n handler(r);\n }\n return true;\n },\n Title: '@@Task bearbeiten'\n });\n }\n\n constructor(private factoryResolver: ComponentFactoryResolver, private cdRef: ChangeDetectorRef, private renderer: Renderer2) {\n }\n\n Initialize(args) {\n if (args) {\n this.DataDescription = args.DataDescription;\n this.LayoutElement = args.LayoutElement;\n if (args.Task) {\n const json = JSON.stringify(args.Task);\n this.Task = JSON.parse(json);\n }\n }\n }\n\n GetDialogResult() {\n return this.Task;\n }\n\n ngAfterViewInit(): void {\n if (this.viewContainerRef) {\n this.viewContainerRef.clear();\n if (this.Task && this.Task.TaskType) {\n const desc = TaskRegistry.get(this.Task.TaskType);\n if (desc) {\n const factory = this.factoryResolver.resolveComponentFactory(desc.SettingsControl);\n const compRef = this.viewContainerRef.createComponent(factory);\n const component: any = compRef.instance;\n component.DataDescription = this.DataDescription;\n component.LayoutElement = this.LayoutElement;\n component.Settings = this.Task;\n this.renderer.addClass(compRef.location.nativeElement, 'full');\n }\n }\n }\n this.cdRef.detectChanges();\n }\n}\n","import { Component } from '@angular/core';\nimport { TranslateHelper } from '../../../helpers/injector.helper';\nimport { TaskRegistryEntry, TaskType } from '../../../helpers/task.registry';\nimport { TopDownTaskExecuter } from '../../../models/tasks/datatasks/topdown.model';\nimport { ALevelMeasurePanel, ALevelMeasureTaskSettingsHelper } from '../a.task.panel';\n\n@Component({\n selector: 'topdown-task-panel',\n templateUrl: './topdown.task.panel.html'\n})\nexport class TopDownTaskPanel extends ALevelMeasurePanel {\n CompareTypes: any[];\n\n static GetRegistry(): TaskRegistryEntry {\n const reg = new TaskRegistryEntry();\n reg.ID = 'topdown';\n reg.Caption = '@@Top-Down';\n reg.SettingsControl = TopDownTaskPanel;\n reg.SettingsHelper = new TopDownSettingsHelper();\n reg.Executer = TopDownTaskExecuter;\n reg.TaskType = TaskType.DataTask;\n return reg;\n }\n}\n\nexport class TopDownSettingsHelper extends ALevelMeasureTaskSettingsHelper {\n getCaption(task: any, dd: any) {\n const caption = super.getCaption(task, dd);\n if (caption) {\n return caption + \" - \" + TranslateHelper.TranslatorInstance.instant('@@TopDown');\n }\n return TranslateHelper.TranslatorInstance.instant('@@TopDown');\n }\n}\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { Comparer } from \"../../../models/enums/comparer.enum\";\nimport { DialogButton } from \"../../../models/enums/dialogbutton.enum\";\nimport { DialogResult } from \"../../../models/enums/dialogresult.enum\";\nimport { RequestFilter } from \"../../../models/rest/requestfilter\";\nimport { RequestOptions } from \"../../../models/rest/requestoptions\";\nimport { MetaService } from \"../../../services/meta.service\";\nimport { BaseDialog } from \"../../dialogs/basedialog/base.dialog\";\nimport { DeploymentActionDialog } from \"../../dialogs/deploymentaction/deploymentaction.dialog\";\n\n@Component({\n selector: 'actions-widget',\n templateUrl: './actions.widget.html',\n styleUrls: ['./actions.widget.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ActionsWidget implements OnInit, OnDestroy {\n\n Actions;\n\n constructor(private service: MetaService) {\n }\n ngOnInit(): void {\n this.Refresh();\n }\n ngOnDestroy(): void {\n \n }\n\n Refresh() {\n let options = new RequestOptions();\n options.Filters = [];\n let filter = new RequestFilter();\n filter.Name = 'Completed';\n filter.Operator = Comparer.Equal;\n filter.Value = false;\n options.Filters.push(filter);\n\n this.service.ReadDeploymentActions(options).subscribe((result) => {\n this.Actions = result;\n })\n }\n StartTask(action) {\n BaseDialog.ShowDialog({\n ContentType: DeploymentActionDialog,\n InitArgs: { Data: action },\n Title: action.Name,\n Buttons: DialogButton.None,\n Handler: (result) => {\n if (result == DialogResult.Ok) {\n this.Refresh();\n }\n return true;\n },\n HeightText: '100vh',\n WidthText: '100vw',\n AutoFocus: false\n });\n }\n}\n","import { moveItemInArray } from '@angular/cdk/drag-drop';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\nimport { MatDialogConfig, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { UUID } from 'angular2-uuid';\nimport { plainToClass } from 'class-transformer';\nimport { TranslateFormatText } from '../../../helpers/array.helpers';\nimport { DialogHelper } from '../../../helpers/injector.helper';\nimport { LayoutHelper } from '../../../helpers/layout.helper';\nimport { MetaHelper } from '../../../helpers/meta.helper';\nimport { MessageBoxButtons } from '../../../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../../../models/enums/messageboxicon.enum';\nimport { Layout } from '../../../models/layout.model';\nimport { LayoutElement } from '../../../models/layoutelement.model';\nimport { DataService } from '../../../services/data.service';\nimport { DataModelService } from '../../../services/datamodel.service';\nimport { PROPERTYGROUPS, PROPERTYPANELS, REGISTRY } from '../../../services/dynamic.component.service';\nimport { LayoutService } from '../../../services/layout.service';\nimport { MetaService } from '../../../services/meta.service';\nimport { SideNavService } from '../../../services/sidenav.service';\nimport { MessageBoxHelper } from '../../dialogs/messagebox/messagebox.dialog';\nimport { LayoutUnit } from '../../../models/basic/layoutunit.model';\nimport { UnitType } from '../../../models/enums/unittype.enum';\n\nexport class LayoutWizardInitArgs {\n Page: any;\n CheckURL = false;\n ShowCancel = false;\n}\n\n@Component({\n selector: 'layout-wizard-dialog',\n templateUrl: './layout.wizard.dialog.html',\n styleUrls: ['./layout.wizard.dialog.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutWizardDialog {\n\n SelectedAction = 'empty';\n Pages;\n SelectedPage;\n Models;\n DynamicTables;\n\n ListLayout;\n ListBox;\n\n TableLayout;\n Table;\n\n ActLayout;\n\n TableProperties;\n FlatTableProperties;\n Entries;\n Details;\n\n Page;\n CheckURL = false;\n ShowCancel = false;\n\n static ShowDialog(page: LayoutWizardInitArgs, handler?) {\n\n const config = new MatDialogConfig();\n config.data = page;\n config.width = '800px';\n const diaRef = DialogHelper.DialogInstance.open(LayoutWizardDialog, config);\n if (handler) {\n diaRef.afterClosed().subscribe(x => {\n handler(x);\n });\n }\n }\n\n constructor(private dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: LayoutWizardInitArgs,\n private service: MetaService, private dataModelService: DataModelService, private dataService: DataService) {\n dialogRef.disableClose = true;\n this.Page = data.Page;\n this.CheckURL = data.CheckURL;\n this.ShowCancel = data.ShowCancel;\n }\n\n cancel() {\n this.dialogRef.close(null);\n }\n\n tryClose(layout) {\n if (this.CheckURL) {\n if (this.Page.URL) {\n LayoutHelper.checkURL(this.Page);\n if (SideNavService.IsSystemURL(this.Page.URL)) {\n const text = new TranslateFormatText('@@Die angegebene URL gleicht einer System-URL. Bitte aendern Sie die URL.');\n const title = new TranslateFormatText('@@Ungueltige URL');\n MessageBoxHelper.ShowDialog(text, title, MessageBoxButtons.Ok, MessageBoxIcon.Information);\n } else {\n this.service.GetAllPages().subscribe(pages => {\n const toLower = this.Page.URL.toLowerCase();\n if (pages && pages.some(p => p.URL.toLowerCase() === toLower)) {\n const text = '@@Es existiert bereits eine Seite zu der angegebenen URL. Bitte aendern Sie die URL.';\n const tText = new TranslateFormatText(text);\n const title = new TranslateFormatText('@@Ungueltige URL');\n MessageBoxHelper.ShowDialog(tText, title, MessageBoxButtons.Ok, MessageBoxIcon.Information);\n } else {\n this.Page.Layout = layout;\n this.dialogRef.close(this.Page);\n }\n });\n }\n } else {\n const text = new TranslateFormatText('@@Bitte vergeben Sie eine URL.');\n const title = new TranslateFormatText('@@Ungueltige URL');\n MessageBoxHelper.ShowDialog(text, title, MessageBoxButtons.Ok, MessageBoxIcon.Information);\n }\n } else {\n this.Page.Layout = layout;\n this.dialogRef.close(this.Page);\n }\n }\n\n onActionChanged() {\n switch (this.SelectedAction) {\n case 'copy':\n if (!this.Pages) {\n this.service.GetAllPages().subscribe(r => {\n if (r) {\n r.forEach(x => {\n x.Caption += ' (' + x.URL + ')';\n });\n r.sort((a, b) => {\n if (a.Caption < b.Caption) {\n return -1;\n }\n if (a.Caption > b.Caption) {\n return 1;\n }\n return 0;\n });\n this.Pages = r;\n }\n });\n }\n break;\n case 'listdetail':\n if (!this.ListLayout) {\n this.ListLayout = plainToClass(Layout, this.GetListLayout());\n this.ListBox = this.ListLayout.Elements[1];\n }\n this.ActLayout = this.ListLayout;\n if (!this.Models) {\n this.dataModelService.GetModels().subscribe(models => {\n this.Models = models;\n });\n }\n break;\n case 'tabledetail':\n if (!this.TableLayout) {\n this.TableLayout = plainToClass(Layout, this.GetTableLayout());\n this.Table = this.TableLayout.Elements[0].Elements[1];\n }\n this.ActLayout = this.TableLayout;\n if (!this.Models) {\n this.dataModelService.GetModels().subscribe(models => {\n this.Models = models;\n });\n }\n break;\n }\n LayoutWizardDialog.setParents(this.ActLayout);\n }\n\n private static setParents(layout) {\n if (layout && layout.Elements) {\n layout.Elements.forEach(child => {\n child.Parent = layout;\n LayoutWizardDialog.setParents(child);\n });\n }\n }\n\n checkTableProps() {\n this.TableProperties = null;\n this.FlatTableProperties = null;\n this.Entries = null;\n this.Details = null;\n this.DynamicTables = null;\n if (this.ActLayout && this.ActLayout.DataModelID) {\n this.dataService.GetItem('dynamic', 'GetTablesByDataModel', this.ActLayout.DataModelID).subscribe((data) => {\n if (data) {\n this.DynamicTables = data;\n if (this.ActLayout.DataSource && data.some(x => x.SID === this.ActLayout.DataSource)) {\n this.DataSourceSelected();\n }\n }\n });\n }\n }\n\n DataSourceType = 2;\n dstype = [\n { Caption: 'None', Value: null },\n { Caption: 'Static', Value: 0 },\n { Caption: 'Container', Value: 1 },\n { Caption: 'Dynamic', Value: 2 },\n ]\n\n DataSourceTypeSelected(event) {\n const type = event.value;\n if(type == 0) {\n this.dataService.GetList('dynamic', 'GetAllStaticTables').subscribe((data) => {\n });\n }\n if(type == 1 || type == 2) {\n this.dataModelService.GetModels().subscribe(models => {\n this.Models = models;\n });\n }\n\n\n }\n\n DataModelSelected() {\n this.TableProperties = null;\n this.FlatTableProperties = null;\n this.Entries = null;\n this.Details = null;\n if (this.ActLayout && this.ActLayout.DataModelID) {\n if(this.DataSourceType == 2) {\n this.dataService.GetItem('dynamic', 'GetTablesByDataModel', this.ActLayout.DataModelID).subscribe((data) => {\n this.DynamicTables = data;\n });\n }\n else {\n this.dataService.GetItem('dynamic', 'GetNonCCOContainersByDataModel', this.ActLayout.DataModelID).subscribe((data) => {\n this.DynamicTables = data;\n });\n }\n }\n }\n\n DataSourceSelected() {\n const item = this.SelectedAction === 'listdetail' ? this.ListBox : this.Table;\n MetaHelper.FindTableProperties(this.ActLayout, item).then((result) => {\n if (result) {\n this.TableProperties = result;\n this.Entries = {};\n this.Details = {};\n for (let i = 0; i < result.Fields.length; i++) {\n const column = result.Fields[i];\n const retVal = {\n Visible: true,\n ValidControls: MetaHelper.GetValidControls(column),\n Position: i + 1,\n Expanded: false,\n Key: column.ID\n };\n this.Entries[column.ID] = retVal;\n this.Details[column.ID] = new LayoutElement();\n this.Details[column.ID].Editable = true;\n this.Details[column.ID].DataSource = column.ID;\n this.Details[column.ID].Name = column.TranslatedCaption;\n this.Details[column.ID].Placeholder = column.TranslatedCaption;\n this.Details[column.ID].DataSourceID = column.AdvancedType !== '00000000-0000-0000-0000-000000000000' ?\n column.AdvancedType : column.Type;\n if (column.Type === '876cf188-243b-49ed-91ab-b2cf27216a30') {\n this.Details[column.ID].IsEnum = true;\n } else {\n delete this.Details[column.ID].IsEnum;\n }\n if (column.IsList) {\n this.Details[column.ID].Multiple = true;\n } else {\n this.Details[column.ID].Multiple = false;\n }\n if (column.IsShared && !column.IsReverse) {\n if (!this.Details[column.ID].ValueMemberPath) {\n if (column.KeyColumns && column.KeyColumns.length > 0) {\n if (column.KeyColumns.length === 1) {\n this.Details[column.ID].ValueMemberPath = column.KeyColumns[0];\n }\n } else {\n this.Details[column.ID].ValueMemberPath = '_Id';\n }\n }\n } else {\n this.Details[column.ID].ValueMemberPath = null;\n }\n this.Details[column.ID].IsReverse = column.IsReverse;\n }\n }\n });\n MetaHelper.FindFlatTableProperties(this.ActLayout, item).then((result) => {\n if (result) {\n this.FlatTableProperties = result;\n }\n });\n }\n\n elementTypeChanged(id) {\n if (this.Details && this.Entries) {\n const layout = this.Details[id];\n const entry = this.Entries[id];\n if (entry) {\n entry.GenericSettings = null;\n entry.ElementType = null;\n if (layout && layout.ElementType) {\n entry.ElementType = layout.ElementType;\n const compReg = REGISTRY[layout.ElementType];\n if (compReg && compReg.Panel) {\n if (PROPERTYPANELS && PROPERTYPANELS.indexOf(compReg.Panel) == -1) {\n PROPERTYPANELS.push(compReg.Panel);\n compReg.Panel.InitPanel();\n LayoutService.PropertyPanelsChanged.next(null);\n }\n const panel = PROPERTYGROUPS.find((val) => compReg.Panel.SIDS && compReg.Panel.SIDS.indexOf(val.SID) > -1);\n if (panel) {\n const item: any = {\n SID: panel.SID ? panel.SID : UUID.UUID(),\n ID: panel.ID,\n Caption: panel.Caption,\n Visible: false,\n PropertyGroup: panel,\n Index: panel.Index,\n Badge: panel.Badge,\n BadgeSub: panel.BadgeSub\n };\n if (panel.Content) {\n item.Content = new ComponentPortal(panel.Content);\n item.Visible = true;\n }\n if (typeof panel.CheckOnChange === 'function') {\n item.CheckOnChange = panel.CheckOnChange;\n }\n entry.GenericSettings = item;\n entry.ElementType = null;\n }\n }\n }\n }\n }\n }\n\n onFieldDrop(ev) {\n if (ev && this.TableProperties) {\n if (ev.currentIndex !== ev.previousIndex) {\n moveItemInArray(this.TableProperties.Fields, ev.previousIndex, ev.currentIndex);\n this.TableProperties.Fields.forEach((x, i) => {\n this.Entries[x.ID].Position = i + 1;\n });\n }\n }\n }\n\n okClick() {\n switch (this.SelectedAction) {\n case 'empty':\n const layout = new Layout();\n layout['ElementType'] = 'grid';\n layout['Name'] = 'Base';\n this.tryClose(layout);\n break;\n case 'copy':\n if (this.SelectedPage) {\n this.service.LoadPage(this.SelectedPage).subscribe(r => {\n if (r) {\n delete r['_Id'];\n this.tryClose(r);\n } else {\n const text = new TranslateFormatText('@@Layout mit URL {0} konnte nicht gefunden werden.');\n text.FormatParams.push(this.SelectedPage);\n MessageBoxHelper.ShowDialog(text, new TranslateFormatText('@@Fehler'),\n MessageBoxButtons.Ok, MessageBoxIcon.Error);\n }\n });\n } else {\n MessageBoxHelper.ShowDialog(new TranslateFormatText('@@Bitte waehlen Sie eine Seite zum Kopieren aus.'),\n new TranslateFormatText('@@Seite kopieren'), MessageBoxButtons.Ok, MessageBoxIcon.Information);\n }\n break;\n case 'listdetail':\n if (this.ListLayout) {\n if (this.ListLayout.DataModelID && this.ListLayout.DataSource) {\n if (this.Entries) {\n const keys = Object.keys(this.Entries);\n const toSort = [];\n keys.forEach((key) => {\n const val = this.Entries[key];\n if (val.Visible) {\n toSort.push(val);\n }\n });\n const res = toSort.sort((a, b) => a.Position > b.Position ? 1 : -1);\n res.forEach((col) => {\n const detail = this.Details[col['Key']];\n if (detail.ElementType) {\n if (detail.ElementType === 'combobox') {\n const height = new LayoutUnit();\n height.Type = UnitType.Pixel;\n height.Value = 40;\n detail.Height = height;\n }\n this.ListLayout.Elements[2].Elements[1].Elements.push(detail);\n }\n });\n }\n this.tryClose(this.ListLayout);\n } else {\n MessageBoxHelper.ShowDialog(new TranslateFormatText('@@Bitte waehlen Sie einen Container aus.'),\n new TranslateFormatText('@@ListDetail'), MessageBoxButtons.Ok, MessageBoxIcon.Information);\n }\n }\n break;\n case 'tabledetail':\n if (this.TableLayout) {\n if (this.TableLayout.DataModelID && this.TableLayout.DataSource) {\n if (this.Table && this.FlatTableProperties && this.FlatTableProperties.Columns) {\n if (!this.Table.Columns) {\n this.Table.Columns = [];\n }\n if (!this.Table.Columns.some(x => x.Name == '_Id')) {\n const idCol = this.FlatTableProperties.Columns.find(x => x.Name == '_Id');\n if (idCol) {\n idCol['Caption'] = idCol['Name'];\n idCol['IsVisible'] = false;\n idCol['FetchData'] = true;\n this.Table.Columns.splice(0, 0, idCol);\n }\n }\n }\n if (this.Entries) {\n const keys = Object.keys(this.Entries);\n const toSort = [];\n keys.forEach((key) => {\n const val = this.Entries[key];\n if (val.Visible) {\n toSort.push(val);\n }\n });\n const res = toSort.sort((a, b) => a.Position > b.Position ? 1 : -1);\n res.forEach((col) => {\n const detail = this.Details[col['Key']];\n if (detail.ElementType) {\n if (detail.ElementType === 'combobox') {\n const height = new LayoutUnit();\n height.Type = UnitType.Pixel;\n height.Value = 40;\n detail.Height = height;\n }\n this.TableLayout.Elements[1].Elements[1].Elements.push(detail);\n }\n });\n }\n this.tryClose(this.TableLayout);\n } else {\n MessageBoxHelper.ShowDialog(new TranslateFormatText('@@Bitte waehlen Sie einen Container aus.'),\n new TranslateFormatText('@@TableDetail'), MessageBoxButtons.Ok, MessageBoxIcon.Information);\n }\n }\n break;\n }\n }\n GetListLayout() {\n return {\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [{\n 'Handlers': [],\n 'EventID': 'OnInit'\n }, {\n 'Handlers': [],\n 'EventID': 'OnDestroy'\n }\n ],\n 'Elements': [{\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [{\n 'Handlers': [],\n 'EventID': 'OnInit'\n }, {\n 'Handlers': [],\n 'EventID': 'OnDestroy'\n }\n ],\n 'Elements': [{\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [{\n 'Handlers': [{\n 'ActionType': 0,\n 'Action': '20c0d4ed-4f3d-606c-cf15-111ee2462890'\n }\n ],\n 'EventID': 'click'\n }\n ],\n 'Elements': [],\n 'ElementType': 'button',\n '_Editable': true,\n 'ID': 'dcec2872-28ab-3bc0-73b8-1b12fd4dfe30',\n 'Width': {},\n 'Height': {},\n 'Margin': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Padding': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Name': 'Add',\n 'Caption': 'Add',\n 'ButtonType': 'mat-icon-button',\n 'Icon': 'add'\n }\n ],\n '_ColSpan': 1,\n '_RowSpan': 1,\n 'ElementType': 'flex',\n '_Editable': true,\n 'ID': 'dce48bdb-3646-9c2a-d3e8-7222e3e55ba9',\n 'Width': {},\n 'Height': {},\n 'Margin': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Padding': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Orientation': 0,\n 'Name': 'listAction'\n }, {\n 'Visible': true,\n '_Column': 1,\n '_Row': 2,\n 'Events': [{\n 'Handlers': [{\n 'ActionType': 0,\n 'Action': '64b9bfd7-9f52-a45d-745e-f0033b8764e3'\n }\n ],\n 'EventID': 'selectionchanged'\n }, {\n 'Handlers': [],\n 'EventID': 'OnFocus'\n }\n ],\n 'Elements': [],\n '_ColSpan': 1,\n '_RowSpan': 1,\n 'ElementType': 'listbox',\n 'ID': '46270580-5a2c-0a34-0532-3f1c6149149f',\n 'Width': {\n 'Value': 398,\n 'Type': 0\n },\n 'Height': {},\n 'Margin': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Padding': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Name': 'List',\n 'Order': 0,\n 'Border': {\n 'LeftBorder': {\n 'Thickness': {\n 'Value': 1,\n 'Type': 0\n },\n 'Style': 0\n },\n 'TopBorder': {\n 'Thickness': {\n 'Value': 1,\n 'Type': 0\n },\n 'Style': 0\n },\n 'RightBorder': {\n 'Thickness': {\n 'Value': 1,\n 'Type': 0\n },\n 'Style': 0\n },\n 'BottomBorder': {\n 'Thickness': {\n 'Value': 1,\n 'Type': 0\n },\n 'Style': 0\n }\n }\n }, {\n 'Visible': false,\n '_Column': 2,\n '_Row': 2,\n 'Events': [{\n 'Handlers': [],\n 'EventID': 'OnInit'\n }, {\n 'Handlers': [],\n 'EventID': 'OnDestroy'\n }\n ],\n 'Elements': [{\n 'Visible': true,\n '_Column': 1,\n '_Row': 2,\n 'Events': [{\n 'Handlers': [],\n 'EventID': 'OnInit'\n }, {\n 'Handlers': [],\n 'EventID': 'OnDestroy'\n }\n ],\n 'Elements': [{\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [{\n 'Handlers': [{\n 'ActionType': 0,\n 'Action': '8dd55b0b-025a-055c-cbde-e56bc9d4d7bf'\n }\n ],\n 'EventID': 'click'\n }\n ],\n 'Elements': [],\n 'ElementType': 'button',\n '_Editable': true,\n 'ID': '399f1075-a49a-3e31-60d7-1af5b669101f',\n 'Width': {},\n 'Height': {},\n 'Margin': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Padding': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Name': 'Delete',\n 'ButtonType': 'mat-raised-button',\n 'Caption': 'Delete'\n }, {\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [{\n 'Handlers': [{\n 'ActionType': 0,\n 'Action': 'a3905fb9-5d63-afd9-1bcf-b38adb82daf2'\n }\n ],\n 'EventID': 'click'\n }\n ],\n 'Elements': [],\n 'ElementType': 'button',\n '_Editable': true,\n 'ID': '30fa6d94-11e3-aaad-7bc5-62b32dfbddeb',\n 'Width': {},\n 'Height': {},\n 'Margin': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Padding': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Name': 'Save',\n 'Caption': 'Save',\n 'ButtonType': 'mat-raised-button'\n }, {\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [{\n 'Handlers': [{\n 'ActionType': 0,\n 'Action': 'f1de230d-618d-f800-a950-cc601184c7e6'\n }\n ],\n 'EventID': 'click'\n }\n ],\n 'Elements': [],\n 'ElementType': 'button',\n '_Editable': true,\n 'ID': '1350632a-1cd4-01a5-d4a2-9092aaa2f2f1',\n 'Width': {},\n 'Height': {},\n 'Margin': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Padding': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Name': 'Cancel',\n 'Caption': 'Cancel',\n 'ButtonType': 'mat-raised-button'\n }\n ],\n '_ColSpan': 1,\n '_RowSpan': 1,\n 'ElementType': 'flex',\n '_Editable': true,\n 'ID': 'cc59a603-b0c9-41a6-64ee-93b979e018bc',\n 'Width': {},\n 'Height': {},\n 'Margin': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Padding': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Orientation': 0,\n 'Name': 'Actions'\n }, {\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [{\n 'Handlers': [],\n 'EventID': 'OnInit'\n }, {\n 'Handlers': [],\n 'EventID': 'OnDestroy'\n }\n ],\n 'Elements': [],\n '_ColSpan': 1,\n '_RowSpan': 1,\n 'ElementType': 'flex',\n '_Editable': true,\n 'ID': '3b9813b2-da60-016f-4fa7-8611a2a71971',\n 'Width': {},\n 'Height': {},\n 'Margin': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Padding': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Name': 'Data',\n 'Orientation': 1,\n 'Scrollable': true,\n }\n ],\n '_ColSpan': 1,\n '_RowSpan': 1,\n 'ElementType': 'grid',\n '_Editable': true,\n 'ID': '5774a459-3667-b4c1-402c-f83dd62d4116',\n 'ColumnDefinitions': [{\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [],\n 'Size': {\n 'Type': 1,\n 'Value': 100\n }\n }\n ],\n 'RowDefinitions': [{\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [],\n 'Size': {\n 'Type': 5,\n 'Value': 1\n }\n }, {\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [],\n 'Size': {\n 'Value': 50,\n 'Type': 0\n }\n }\n ],\n 'Width': {},\n 'Height': {},\n 'Margin': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Padding': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Name': 'Detail'\n }\n ],\n 'Resolutions': [],\n 'Workflows': [{\n 'Caption': 'Add',\n 'ID': '20c0d4ed-4f3d-606c-cf15-111ee2462890',\n 'Data': {\n 'Modules': [{\n 'Expressions': [],\n 'ID': 0,\n 'XPos': 267,\n 'YPos': 255,\n 'Module': 'AddDataWFModule',\n 'Settings': {\n 'ElemName': 'Data'\n }\n }, {\n 'Expressions': [],\n 'ID': 1,\n 'XPos': 362,\n 'YPos': 494,\n 'Module': 'setMultiStyleWFModule',\n 'Settings': {\n 'Styles': [{\n 'Elements': [{\n 'ElemName': 'Detail'\n }],\n 'Layout': {\n 'Visible': true\n }\n }]\n }\n }\n ],\n 'Connectors': [{\n 'EntryOption': 0,\n 'EntryModule': 1,\n 'ExitModule': 0,\n 'ExitOption': 0\n }\n ]\n }\n }, {\n 'Caption': 'StartVisibility',\n 'ID': 'f1de230d-618d-f800-a950-cc601184c7e6',\n 'Data': {\n 'Modules': [{\n 'Expressions': [],\n 'ID': 0,\n 'XPos': 362,\n 'YPos': 296,\n 'Module': 'removeMultiStyleWFModule',\n 'Settings': {\n 'Elements': [{\n 'ElemName': 'Detail'\n }]\n }\n }\n ],\n 'Connectors': []\n }\n }, {\n 'Caption': 'Save',\n 'ID': 'a3905fb9-5d63-afd9-1bcf-b38adb82daf2',\n 'Data': {\n 'Modules': [{\n 'Expressions': [],\n 'ID': 0,\n 'XPos': 240,\n 'YPos': 340,\n 'Module': 'SaveDataWFModule',\n 'Settings': {\n 'ElemName': 'Data'\n }\n }, {\n 'Expressions': [],\n 'ID': 2,\n 'XPos': 261,\n 'YPos': 538,\n 'Module': 'RefreshWFModule',\n 'Settings': {\n 'ElemName': 'List'\n }\n }\n ],\n 'Connectors': [{\n 'EntryOption': 0,\n 'EntryModule': 2,\n 'ExitModule': 0,\n 'ExitOption': 2\n }\n ]\n }\n }, {\n 'Caption': 'Delete',\n 'ID': '8dd55b0b-025a-055c-cbde-e56bc9d4d7bf',\n 'Data': {\n 'Modules': [{\n 'Expressions': [],\n 'ID': 0,\n 'XPos': 499,\n 'YPos': 192,\n 'Module': 'DeleteDataWFWFModule',\n 'Settings': {\n 'ElemName': 'Data'\n }\n }, {\n 'Expressions': [],\n 'ID': 1,\n 'XPos': 522,\n 'YPos': 363,\n 'Module': 'RefreshWFModule',\n 'Settings': {\n 'ElemName': 'List'\n }\n }, {\n 'Expressions': [],\n 'ID': 2,\n 'XPos': 575,\n 'YPos': 556,\n 'Module': 'removeMultiStyleWFModule',\n 'Settings': {\n 'Elements': [{\n 'ElemName': 'Detail'\n }]\n }\n }\n ],\n 'Connectors': [{\n 'EntryOption': 0,\n 'EntryModule': 1,\n 'ExitModule': 0,\n 'ExitOption': 0\n }, {\n 'EntryOption': 0,\n 'EntryModule': 2,\n 'ExitModule': 1,\n 'ExitOption': 0\n }\n ]\n }\n }, {\n 'Caption': 'SetValue',\n 'ID': '64b9bfd7-9f52-a45d-745e-f0033b8764e3',\n 'Data': {\n 'Modules': [{\n 'Expressions': [],\n 'ID': 0,\n 'XPos': 367,\n 'YPos': 124,\n 'Module': 'setMultiElemValueWFModule',\n 'Settings': {\n 'Elements': [{\n 'ElemName': 'Data',\n 'GetFromState': true\n }]\n }\n }, {\n 'Expressions': [],\n 'ID': 1,\n 'XPos': 490,\n 'YPos': 363,\n 'Module': 'setMultiStyleWFModule',\n 'Settings': {\n 'Styles': [{\n 'Elements': [{\n 'ElemName': 'Detail'\n }],\n 'Layout': {\n 'Visible': true\n }\n }]\n }\n }\n ],\n 'Connectors': [{\n 'EntryOption': 0,\n 'EntryModule': 1,\n 'ExitModule': 0,\n 'ExitOption': 0\n }\n ]\n }\n }\n ],\n 'ID': 'b70ec9c0-4b6c-7268-0a9a-24417314ec1a',\n 'ElementType': 'grid',\n '_Editable': true,\n 'ColumnDefinitions': [{\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [],\n 'Size': {\n 'Type': 0,\n 'Value': 400\n }\n }, {\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [],\n 'Size': {\n 'Type': 5,\n 'Value': 1\n }\n }\n ],\n 'RowDefinitions': [{\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [],\n 'Size': {\n 'Type': 0,\n 'Value': 50\n }\n }, {\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [],\n 'Size': {\n 'Type': 5,\n 'Value': 1\n }\n }\n ],\n 'Width': {},\n 'Height': {},\n 'Margin': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Padding': {\n 'Left': {\n 'Type': 0,\n 'Value': 20\n },\n 'Right': {\n 'Type': 0,\n 'Value': 20\n },\n 'Top': {\n 'Type': 0,\n 'Value': 20\n },\n 'Bottom': {\n 'Type': 0,\n 'Value': 20\n }\n },\n 'Name': 'Base',\n 'DataFilter': {\n 'Filters': [],\n 'Sort': [{\n 'Name': 'Nachname',\n 'Order': 0\n }\n ],\n 'Columns': [],\n 'StartRow': 0,\n 'EndRow': 100\n }\n };\n }\n GetTableLayout() {\n return {\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [{\n 'Handlers': [],\n 'EventID': 'OnInit'\n }, {\n 'Handlers': [],\n 'EventID': 'OnDestroy'\n }\n ],\n 'Elements': [{\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [{\n 'Handlers': [],\n 'EventID': 'OnInit'\n }, {\n 'Handlers': [],\n 'EventID': 'OnDestroy'\n }\n ],\n 'Elements': [{\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [{\n 'Handlers': [],\n 'EventID': 'OnInit'\n }, {\n 'Handlers': [],\n 'EventID': 'OnDestroy'\n }\n ],\n 'Elements': [{\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [{\n 'Handlers': [{\n 'ActionType': 0,\n 'Action': '7061fbf0-0135-8330-7b74-b5fdcd4d3d72'\n }\n ],\n 'EventID': 'click'\n }\n ],\n 'Elements': [],\n 'ElementType': 'button',\n '_Editable': true,\n 'ID': '6accca19-fc0f-b0cd-0071-6151be9054c8',\n 'Width': {},\n 'Height': {},\n 'Margin': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Padding': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Name': 'Add',\n 'Caption': 'Add',\n 'ButtonType': 'mat-icon-button',\n 'Icon': 'add'\n }\n ],\n '_ColSpan': 1,\n '_RowSpan': 1,\n 'ElementType': 'flex',\n '_Editable': true,\n 'ID': '43f00c67-d5b2-cd93-43f2-6c041766a02d',\n 'Width': {},\n 'Height': {},\n 'Margin': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Padding': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Orientation': 0,\n 'Name': 'listAction'\n }, {\n 'Visible': true,\n '_Column': 1,\n '_Row': 2,\n 'Events': [{\n 'Handlers': [{\n 'ActionType': 0,\n 'Action': 'ea4791c1-33cb-b604-2b73-1bbe68673c8e'\n }\n ],\n 'EventID': 'SelectionChanged'\n }, {\n 'Handlers': [],\n 'EventID': 'OnFocus'\n }\n ],\n 'Elements': [],\n '_ColSpan': 1,\n '_RowSpan': 1,\n 'ElementType': 'datatable',\n 'ID': '1f263113-a68d-18b0-94c3-5bad4341a3f1',\n 'Width': {},\n 'Height': {},\n 'Margin': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Padding': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Columns': [],\n 'Name': 'Table',\n 'PagingType': 0,\n 'SelectMode': 0\n }\n ],\n 'ElementType': 'grid',\n '_Editable': true,\n 'ID': '359a6595-4290-2c98-ec7f-176999753a62',\n 'ColumnDefinitions': [{\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [],\n 'Size': {\n 'Type': 1,\n 'Value': 100\n }\n }\n ],\n 'RowDefinitions': [{\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [],\n 'Size': {\n 'Type': 0,\n 'Value': 50\n }\n }, {\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [],\n 'Size': {\n 'Type': 5,\n 'Value': 1\n }\n }\n ],\n 'Width': {},\n 'Height': {},\n 'Margin': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Padding': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Name': 'List',\n 'FlexFill': true\n }, {\n 'Visible': false,\n '_Column': 1,\n '_Row': 1,\n 'Events': [{\n 'Handlers': [],\n 'EventID': 'OnInit'\n }, {\n 'Handlers': [],\n 'EventID': 'OnDestroy'\n }\n ],\n 'Elements': [{\n 'Visible': true,\n '_Column': 1,\n '_Row': 2,\n 'Events': [{\n 'Handlers': [],\n 'EventID': 'OnInit'\n }, {\n 'Handlers': [],\n 'EventID': 'OnDestroy'\n }\n ],\n 'Elements': [{\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [{\n 'Handlers': [{\n 'ActionType': 0,\n 'Action': '0f6a5d74-9312-7060-b492-2d34debc47b6'\n }\n ],\n 'EventID': 'click'\n }\n ],\n 'Elements': [],\n 'ElementType': 'button',\n '_Editable': true,\n 'ID': '6117df21-9fd7-06ea-fda6-711f0fc57326',\n 'Width': {},\n 'Height': {},\n 'Margin': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Padding': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Name': 'Delete',\n 'Caption': 'Delete',\n 'ButtonType': 'mat-raised-button'\n }, {\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [{\n 'Handlers': [{\n 'ActionType': 0,\n 'Action': '209ea2dd-1bf5-a940-695f-57def88360ee'\n }\n ],\n 'EventID': 'click'\n }\n ],\n 'Elements': [],\n 'ElementType': 'button',\n '_Editable': true,\n 'ID': '95faaa0c-fa66-9380-ef67-22310d47d2e8',\n 'Width': {},\n 'Height': {},\n 'Margin': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Padding': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Name': 'Save',\n 'Caption': 'Save',\n 'ButtonType': 'mat-raised-button'\n }, {\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [{\n 'Handlers': [{\n 'ActionType': 0,\n 'Action': 'd5ad4779-bfd4-1bc4-9c0c-2f646ae5d013'\n }\n ],\n 'EventID': 'click'\n }\n ],\n 'Elements': [],\n 'ElementType': 'button',\n '_Editable': true,\n 'ID': 'c87f03a8-63c8-e4b7-2dbf-d28538054134',\n 'Width': {},\n 'Height': {},\n 'Margin': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Padding': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Name': 'Cancel',\n 'Caption': 'Cancel',\n 'ButtonType': 'mat-raised-button'\n }\n ],\n '_ColSpan': 1,\n '_RowSpan': 1,\n 'ElementType': 'flex',\n '_Editable': true,\n 'ID': 'a48f051b-1608-421c-a0f0-2776548bf6d1',\n 'Width': {},\n 'Height': {},\n 'Margin': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Padding': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Orientation': 0,\n 'Name': 'Actions'\n }, {\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [{\n 'Handlers': [],\n 'EventID': 'OnInit'\n }, {\n 'Handlers': [],\n 'EventID': 'OnDestroy'\n }\n ],\n 'Elements': [],\n '_ColSpan': 1,\n '_RowSpan': 1,\n 'ElementType': 'flex',\n '_Editable': true,\n 'ID': 'cdd52d28-337a-5b27-507b-90b83023dc08',\n 'Width': {},\n 'Height': {},\n 'Margin': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Padding': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Orientation': 1,\n 'Name': 'Data',\n 'Scrollable': true\n }\n ],\n 'ElementType': 'grid',\n '_Editable': true,\n 'ID': 'bd877cfc-e8c0-fda4-287e-b9f6576a190b',\n 'ColumnDefinitions': [{\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [],\n 'Size': {\n 'Type': 1,\n 'Value': 100\n }\n }\n ],\n 'RowDefinitions': [{\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [],\n 'Size': {\n 'Type': 5,\n 'Value': 1\n }\n }, {\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [],\n 'Size': {\n 'Value': 50,\n 'Type': 0\n }\n }\n ],\n 'Width': {\n 'Value': 500,\n 'Type': 0\n },\n 'Height': {},\n 'Margin': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Padding': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Name': 'Detail'\n }\n ],\n 'Resolutions': [],\n 'Workflows': [{\n 'Caption': 'StartVisibility',\n 'ID': 'd5ad4779-bfd4-1bc4-9c0c-2f646ae5d013',\n 'Data': {\n 'Modules': [{\n 'Expressions': [],\n 'ID': 0,\n 'XPos': 308,\n 'YPos': 227,\n 'Module': 'removeMultiStyleWFModule',\n 'Settings': {\n 'Elements': [{\n 'ElemName': 'Detail'\n }]\n }\n }\n ],\n 'Connectors': []\n }\n }, {\n 'Caption': 'Add',\n 'ID': '7061fbf0-0135-8330-7b74-b5fdcd4d3d72',\n 'Data': {\n 'Modules': [{\n 'Expressions': [],\n 'ID': 0,\n 'XPos': 352,\n 'YPos': 306,\n 'Module': 'AddDataWFModule',\n 'Settings': {\n 'ElemName': 'Data'\n }\n }, {\n 'Expressions': [],\n 'ID': 1,\n 'XPos': 356,\n 'YPos': 496,\n 'Module': 'setMultiStyleWFModule',\n 'Settings': {\n 'Styles': [{\n 'Elements': [{\n 'ElemName': 'Detail'\n }],\n 'Layout': {\n 'Visible': true\n }\n }]\n }\n }\n ],\n 'Connectors': [{\n 'EntryOption': 0,\n 'EntryModule': 1,\n 'ExitModule': 0,\n 'ExitOption': 0\n }\n ]\n }\n }, {\n 'Caption': 'Delete',\n 'ID': '0f6a5d74-9312-7060-b492-2d34debc47b6',\n 'Data': {\n 'Modules': [{\n 'Expressions': [],\n 'ID': 0,\n 'XPos': 191,\n 'YPos': 46,\n 'Module': 'DeleteDataWFWFModule',\n 'Settings': {\n 'ElemName': 'Data'\n }\n }, {\n 'Expressions': [],\n 'ID': 1,\n 'XPos': 238,\n 'YPos': 247,\n 'Module': 'RefreshWFModule',\n 'Settings': {\n 'ElemName': 'Table'\n }\n }, {\n 'Expressions': [],\n 'ID': 2,\n 'XPos': 541,\n 'YPos': 392,\n 'Module': 'removeMultiStyleWFModule',\n 'Settings': {\n 'Elements': [{\n 'ElemName': 'Detail'\n }]\n }\n }\n ],\n 'Connectors': [{\n 'EntryOption': 0,\n 'EntryModule': 1,\n 'ExitModule': 0,\n 'ExitOption': 0\n }, {\n 'EntryOption': 0,\n 'EntryModule': 2,\n 'ExitModule': 1,\n 'ExitOption': 0\n }\n ]\n }\n }, {\n 'Caption': 'Save',\n 'ID': '209ea2dd-1bf5-a940-695f-57def88360ee',\n 'Data': {\n 'Modules': [{\n 'Expressions': [],\n 'ID': 0,\n 'XPos': 301,\n 'YPos': 98,\n 'Module': 'SaveDataWFModule',\n 'Settings': {\n 'ElemName': 'Data'\n }\n }, {\n 'Expressions': [],\n 'ID': 1,\n 'XPos': 242,\n 'YPos': 275,\n 'Module': 'RefreshWFModule',\n 'Settings': {\n 'ElemName': 'Table'\n }\n }\n ],\n 'Connectors': [{\n 'EntryOption': 0,\n 'EntryModule': 1,\n 'ExitModule': 0,\n 'ExitOption': 2\n }\n ]\n }\n }, {\n 'Caption': 'SetData',\n 'ID': 'ea4791c1-33cb-b604-2b73-1bbe68673c8e',\n 'Data': {\n 'Modules': [{\n 'Expressions': [],\n 'ID': 0,\n 'XPos': 8,\n 'YPos': 1178,\n 'Module': 'setMultiElemValueWFModule',\n 'Settings': {\n 'Elements': [{\n 'ElemName': 'Data',\n 'GetFromState': true\n }]\n }\n }, {\n 'Expressions': [],\n 'ID': 1,\n 'XPos': 8,\n 'YPos': 1328,\n 'Module': 'setMultiStyleWFModule',\n 'Settings': {\n 'Styles': [{\n 'Elements': [{\n 'ElemName': 'Detail'\n }],\n 'Layout': {\n 'Visible': true\n }\n }]\n }\n }, {\n 'Expressions': [],\n 'ID': 3,\n 'XPos': 466,\n 'YPos': 582,\n 'Module': 'getlistitemcalcWFModule',\n 'Settings': {\n 'IndexType': 0\n }\n }, {\n 'Expressions': [],\n 'ID': 4,\n 'XPos': 464,\n 'YPos': 726,\n 'Module': 'readMultiPropertyModule',\n 'Settings': {\n 'Properties': [{\n 'PropName': '_Id',\n 'UseForState': true\n }]\n }\n }, {\n 'Expressions': [],\n 'ID': 5,\n 'XPos': 466,\n 'YPos': 872,\n 'Module': 'ReadDataWFDataWFWFModule',\n 'Settings': {\n 'SourceName': 'Table',\n 'DestinationName': 'Data',\n 'Filter': {\n 'ConcatOperator': 0,\n 'Filters': [{\n 'Name': '_Id',\n 'Value': '$Value',\n 'Operator': 0\n }\n ]\n },\n 'UseWorkflowValue': true\n }\n }, {\n 'Expressions': [],\n 'ID': 6,\n 'XPos': 9,\n 'YPos': 1031,\n 'Module': 'getlistitemcalcWFModule',\n 'Settings': {\n 'IndexType': 0\n }\n }, {\n 'Expressions': [],\n 'ID': 7,\n 'XPos': 824,\n 'YPos': 34,\n 'Module': 'setStatusWFModule',\n 'Settings': {\n 'StatusKey': 'Selection',\n 'KeepActualParam': true\n }\n }, {\n 'Expressions': [],\n 'ID': 8,\n 'XPos': 988,\n 'YPos': 30,\n 'Module': 'getlistcountWFModule',\n 'Settings': {}\n }, {\n 'Expressions': [],\n 'ID': 9,\n 'XPos': 990,\n 'YPos': 166,\n 'Module': 'setStatusWFModule',\n 'Settings': {\n 'StatusKey': 'Count',\n 'KeepActualParam': true\n }\n }, {\n 'Expressions': [],\n 'ID': 10,\n 'XPos': 992,\n 'YPos': 312,\n 'Module': 'conditionWFModule',\n 'Settings': {\n 'DataType': 2,\n 'Settings': {\n 'Operator': 1,\n 'Value1': 1,\n 'Value2': 0\n }\n }\n }, {\n 'Expressions': [],\n 'ID': 11,\n 'XPos': 466,\n 'YPos': 448,\n 'Module': 'getStatusWFModule',\n 'Settings': {\n 'StatusKey': 'Selection'\n }\n }, {\n 'Expressions': [],\n 'ID': 12,\n 'XPos': 1704,\n 'YPos': 470,\n 'Module': 'removeMultiStyleWFModule',\n 'Settings': {\n 'Elements': [{\n 'ElemName': 'Detail'\n }]\n }\n }, {\n 'Expressions': [],\n 'ID': 13,\n 'XPos': 712,\n 'YPos': 1030,\n 'Module': 'showMessageBoxWFModule',\n 'Settings': {\n 'Text': '\"Dieser Eintrag wurde nicht gefunden\"',\n 'Title': '\"Meldung\"',\n 'Icon': 1,\n 'Buttons': 1\n }\n }\n ],\n 'Connectors': [{\n 'EntryOption': 0,\n 'EntryModule': 1,\n 'ExitModule': 0,\n 'ExitOption': 0\n }, {\n 'EntryOption': 0,\n 'EntryModule': 4,\n 'ExitModule': 3,\n 'ExitOption': 0\n }, {\n 'EntryOption': 0,\n 'EntryModule': 5,\n 'ExitModule': 4,\n 'ExitOption': 0\n }, {\n 'EntryOption': 0,\n 'EntryModule': 6,\n 'ExitModule': 5,\n 'ExitOption': 0\n }, {\n 'EntryOption': 0,\n 'EntryModule': 0,\n 'ExitModule': 6,\n 'ExitOption': 0\n }, {\n 'EntryOption': 0,\n 'EntryModule': 8,\n 'ExitModule': 7,\n 'ExitOption': 0\n }, {\n 'EntryOption': 0,\n 'EntryModule': 9,\n 'ExitModule': 8,\n 'ExitOption': 0\n }, {\n 'EntryOption': 0,\n 'EntryModule': 10,\n 'ExitModule': 9,\n 'ExitOption': 0\n }, {\n 'EntryOption': 0,\n 'EntryModule': 11,\n 'ExitModule': 10,\n 'ExitOption': 0\n }, {\n 'EntryOption': 0,\n 'EntryModule': 3,\n 'ExitModule': 11,\n 'ExitOption': 0\n }, {\n 'EntryOption': 0,\n 'EntryModule': 12,\n 'ExitModule': 10,\n 'ExitOption': 1\n }, {\n 'EntryOption': 0,\n 'EntryModule': 13,\n 'ExitModule': 5,\n 'ExitOption': 1\n }\n ]\n }\n }\n ],\n 'ID': '849bbfd5-64dc-bc4e-251d-6b706cbda67f',\n 'ElementType': 'flex',\n '_Editable': true,\n 'ColumnDefinitions': [{\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [],\n 'Size': {\n 'Type': 1,\n 'Value': 100\n }\n }\n ],\n 'RowDefinitions': [{\n 'Visible': true,\n '_Column': 1,\n '_Row': 1,\n 'Events': [],\n 'Size': {\n 'Type': 1,\n 'Value': 100\n }\n }\n ],\n 'Width': {},\n 'Height': {\n 'Value': 100,\n 'Type': 1\n },\n 'Margin': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'Padding': {\n 'Left': {},\n 'Right': {},\n 'Top': {},\n 'Bottom': {}\n },\n 'DataFilter': {\n 'Filters': [],\n 'Sort': [{\n 'Name': 'Name',\n 'Order': 0\n }\n ],\n 'Columns': [],\n 'StartRow': 0,\n 'EndRow': 100\n },\n 'Name': 'Base',\n 'ContentType': 2,\n 'Orientation': 0,\n 'FlexFill': true,\n '_deleteddate': '',\n '_deletedby': ''\n };\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { WorkflowDebugHelper } from '../helpers/workflow.debug.helper';\n\n@Component({\n selector: 'debug-window',\n templateUrl: './debug.window.html',\n styleUrls: ['./debug.window.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DebugWindow implements OnInit {\n Active = false;\n Fullscreen = false;\n dragPosition;\n SelectedIndex = 0;\n\n private static DebugVisible = new BehaviorSubject(false);\n\n static SwitchDebug() {\n const visible = DebugWindow.DebugVisible.getValue();\n DebugWindow.DebugVisible.next(!visible);\n }\n\n constructor(private cdRef: ChangeDetectorRef) {\n WorkflowDebugHelper.DebugState.subscribe(x => {\n if (x.Type === 'WorkflowState') {\n this.SelectedIndex = 1;\n this.Active = true;\n this.cdRef.detectChanges();\n }\n });\n }\n\n ngOnInit(): void {\n this.dragPosition = {\n x: Math.max(0, window.innerWidth - 610),\n y: 10\n };\n DebugWindow.DebugVisible.subscribe(x => {\n this.Active = x;\n this.cdRef.detectChanges();\n });\n }\n\n switchFullScreen() {\n this.Fullscreen = !this.Fullscreen;\n this.cdRef.detectChanges();\n }\n\n close() {\n DebugWindow.DebugVisible.next(false);\n }\n}\n","import { AfterViewInit, ChangeDetectorRef, Component, Inject, InjectionToken, Input } from '@angular/core';\nimport { ScriptParser } from '../../script/modules/parser.script';\nimport { ConnectorService } from '../../services/connector.service';\nimport { ScriptLibraryService } from '../../services/scriptlibrary.service';\ndeclare var monaco: any;\n\n@Component({\n selector: 'debug-script-breakpoint-control',\n templateUrl: './debug.script.breakpoint.control.html',\n styleUrls: ['./debug.script.breakpoint.control.css']\n})\nexport class DebugScriptBreakpointControl implements AfterViewInit { \n editorOptions = {\n automaticLayout: true,\n language: 'typescript',\n readOnly: true,\n glyphMargin: true,\n scrollBeyondLastLine: false\n };\n editor;\n PossibleBreakpoints = {};\n\n get ActualScript() {\n if (this.ExternalScriptValue) {\n const loaded = this.LoadedScripts[this.ExternalScriptValue];\n if (loaded) {\n return loaded.Script;\n }\n return '';\n } else {\n return this.ScriptValue;\n }\n }\n\n //#region Script\n ScriptValue;\n @Input()\n get Script() {\n return this.ScriptValue;\n }\n set Script(val) {\n if (val != this.ScriptValue) {\n this.ScriptValue = val;\n this.PossibleBreakpoints = this.getPossibleBreakpoints(val);\n }\n }\n //#endregion\n\n //#region ExternalScript\n LoadedScripts = {};\n ExternalScriptValue;\n @Input()\n get ExternalScript() {\n return this.ExternalScriptValue;\n }\n set ExternalScript(val) {\n let isConnector = false;\n if (typeof val === 'object' && val.ScriptLibraryID) {\n if (typeof val.IsConnectorScript === 'boolean') {\n isConnector = val.IsConnectorScript\n }\n val = val.ScriptLibraryID;\n }\n if (val != this.ExternalScriptValue) {\n if (val) {\n let loadedEntry = this.LoadedScripts[val];\n if (loadedEntry) {\n this.ExternalScriptValue = val;\n } else {\n if (isConnector) {\n this.conService.GetScript(val).subscribe(x => {\n loadedEntry = {\n Script: '',\n PossibleBreakpoints: {}\n };\n if (x && x.Script) {\n loadedEntry.Script = x.Script.Text;\n loadedEntry.PossibleBreakpoints = this.getPossibleBreakpoints(x.Script.Text);\n }\n this.LoadedScripts[val] = loadedEntry;\n this.ExternalScriptValue = val;\n this.cdRef.detectChanges();\n });\n } else {\n this.service.LoadByID(val).subscribe(x => {\n loadedEntry = {\n Script: '',\n PossibleBreakpoints: {}\n };\n if (x) {\n loadedEntry.Script = x.Text;\n loadedEntry.PossibleBreakpoints = this.getPossibleBreakpoints(x.Text);\n }\n this.LoadedScripts[val] = loadedEntry;\n this.ExternalScriptValue = val;\n this.cdRef.detectChanges();\n });\n }\n }\n } else {\n this.ExternalScriptValue = val;\n }\n }\n }\n //#endregion\n\n //#region Breakpoints\n BreakpointsValue = [];\n @Input()\n get Breakpoints() {\n return this.BreakpointsValue;\n }\n set Breakpoints(val) {\n if (Array.isArray(val)) {\n this.BreakpointsValue = val;\n } else {\n this.BreakpointsValue = [];\n }\n this.updateBreakpoints(false);\n }\n //#endregion\n\n //#region ActualLine\n ActualLineValue = -1;\n @Input()\n get ActualLine() {\n return this.ActualLineValue;\n }\n set ActualLine(val) {\n if (typeof val === 'number') {\n this.ActualLineValue = val;\n } else {\n this.ActualLineValue = -1;\n }\n this.updateBreakpoints(true);\n }\n //#endregion\n\n OldDecorations = [];\n\n constructor(private service: ScriptLibraryService, private conService: ConnectorService, private cdRef: ChangeDetectorRef) {\n }\n\n ngAfterViewInit(): void {\n this.SizeChanged();\n this.updateBreakpoints(true);\n }\n\n init(editor) {\n this.editor = editor;\n this.editor.onMouseDown((e) => {\n if (e.target && (e.target.type === 2 || e.target.type === 3) && e.target.range) {\n const lineNumber = e.target.range.startLineNumber;\n if (typeof lineNumber === 'number') {\n if (this.ExternalScriptValue) {\n let index;\n if (this.BreakpointsValue.some((x, i) => {\n if (this.ExternalScriptValue === x.LibraryID && x.LineNumber === lineNumber) {\n index = i;\n return true;\n }\n return false;\n })) {\n this.BreakpointsValue.splice(index, 1);\n this.updateBreakpoints(false);\n } else {\n const loaded = this.LoadedScripts[this.ExternalScriptValue];\n if (loaded && loaded.PossibleBreakpoints[lineNumber] === true) {\n this.BreakpointsValue.push({\n LineNumber: lineNumber,\n LibraryID: this.ExternalScriptValue\n });\n this.updateBreakpoints(false);\n }\n }\n } else {\n let index;\n if (this.BreakpointsValue.some((x, i) => {\n if (!x.LibraryID && x.LineNumber === lineNumber) {\n index = i;\n return true;\n }\n return false;\n })) {\n this.BreakpointsValue.splice(index, 1);\n this.updateBreakpoints(false);\n } else {\n if (this.PossibleBreakpoints[lineNumber] === true) {\n this.BreakpointsValue.push({\n LineNumber: lineNumber\n });\n this.updateBreakpoints(false);\n }\n }\n }\n }\n }\n });\n setTimeout(() => {\n this.updateBreakpoints(true);\n }, 100);\n }\n\n SizeChanged() {\n setTimeout(() => {\n if (this.editor) {\n this.editor.layout();\n }\n }, 100);\n }\n\n updateBreakpoints(setPos: boolean) {\n if (this.editor) {\n const newDecs = [];\n let found = false;\n if (this.BreakpointsValue) {\n this.BreakpointsValue.forEach(x => {\n if (this.ExternalScriptValue) {\n if (x.LibraryID !== this.ExternalScriptValue) {\n return;\n }\n } else if (x.LibraryID) {\n return;\n }\n let styleText = 'scriptDebugBreakpoint';\n if (x.LineNumber === this.ActualLineValue) {\n found = true;\n styleText += ' scriptDebugArrow';\n }\n newDecs.push({\n range: new monaco.Range(x.LineNumber, 1, x.LineNumber, 1),\n options: {\n glyphMarginClassName: styleText\n }\n });\n });\n }\n if (!found && this.ActualLineValue > -1) {\n found = true;\n newDecs.push({\n range: new monaco.Range(this.ActualLineValue, 1, this.ActualLineValue, 1),\n options: {\n glyphMarginClassName: 'scriptDebugArrow'\n }\n });\n }\n this.OldDecorations = this.editor.deltaDecorations(this.OldDecorations, newDecs);\n if (setPos && found) {\n this.editor.revealLine(this.ActualLineValue);\n }\n }\n }\n\n getPossibleBreakpoints(script) {\n const possible = {};\n if (script) {\n const module = new ScriptParser().GetModule(script);\n module.Classes.forEach(c => {\n c.Functions.forEach(f => {\n let maxNumber = -1;\n f.ScriptLines.forEach(sl => {\n if (typeof sl.getAllLineNumbers === 'function') {\n const lineNumbers = sl.getAllLineNumbers();\n lineNumbers.forEach(ln => {\n possible[ln] = true;\n if (ln > maxNumber) {\n maxNumber = ln;\n }\n });\n }\n });\n if (maxNumber > -1) {\n possible[maxNumber + 1] = true;\n }\n });\n });\n }\n return possible;\n }\n\n onScriptLoaded() {\n this.updateBreakpoints(true);\n }\n}\n\n@Component({\n selector: 'debug-script-breakpoint-settings-control',\n template: ''\n})\nexport class DebugScriptBreakpointSettingsControl {\n static SCRIPT_DEBUG_DATA = new InjectionToken<{}>('SCRIPT_DEBUG_DATA');\n constructor(@Inject(DebugScriptBreakpointSettingsControl.SCRIPT_DEBUG_DATA) public Data) {\n }\n}\n\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BaseDialog } from '../../components/dialogs/basedialog/base.dialog';\nimport { ClientHelper } from '../../helpers/client.helper';\nimport { WorkflowDebugHelper } from '../../helpers/workflow.debug.helper';\n\n@Component({\n selector: 'debug-workflow-attach',\n templateUrl: './debug.workflow.attach.dialog.html'\n})\nexport class DebugWorkflowAttachDialog implements OnInit {\n Clients = [];\n ConnectedClients = [];\n\n static ShowDialog(connectedClients, handler) {\n BaseDialog.ShowDialog({\n ContentType: DebugWorkflowAttachDialog,\n InitArgs: { ConnectedClients: connectedClients },\n Handler: (x) => {\n handler(x);\n return true;\n },\n Title: '@@Attach to process'\n });\n }\n\n constructor(private cdRef: ChangeDetectorRef, private translate: TranslateService) {\n }\n\n ngOnInit(): void {\n const selfSelected = this.ConnectedClients.find(x => x.ClientID === ClientHelper.ClientID);\n if (selfSelected) {\n this.addClient(selfSelected.ClientID, selfSelected.Caption, true);\n } else {\n this.addClient(ClientHelper.ClientID, this.translate.instant('@@OwnWindow'), false);\n }\n this.cdRef.detectChanges();\n WorkflowDebugHelper.ClientIDAnswer.subscribe(x => {\n const selected = this.ConnectedClients.find(cc => cc.ClientID === x.ClientID);\n if (selected) {\n this.addClient(selected.ClientID, selected.Caption, true);\n } else {\n this.addClient(x.ClientID, x.ClientID + ' (' + x.URL + ')', false);\n }\n this.cdRef.detectChanges();\n });\n WorkflowDebugHelper.RequestClientIDs();\n }\n\n private addClient(id: string, caption: string, selected: boolean) {\n this.Clients.push({\n ClientID: id,\n Caption: caption,\n Selected: selected,\n Disabled: selected\n });\n }\n\n Initialize(args) {\n if (args && args.ConnectedClients) {\n this.ConnectedClients = args.ConnectedClients;\n }\n }\n\n GetDialogResult() {\n const clients = [];\n this.Clients.forEach(x => {\n if (x.Selected && !x.Disabled) {\n clients.push({\n ClientID: x.ClientID,\n Caption: x.Caption\n });\n }\n });\n return clients;\n }\n}\n","import { ComponentPortal, Portal, PortalInjector } from '@angular/cdk/portal';\nimport {\n AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, Injector, Input, OnInit, Output, ViewChild\n} from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { UUID } from 'angular2-uuid';\nimport { jsPlumb } from 'jsplumb';\nimport { StringHelper, TranslateFormatText } from '../../helpers/array.helpers';\nimport { WorkflowViewType } from '../../models/enums/workflowviewtype.enum';\nimport { BreakPointInfo, BreakPointSelection, ServiceWorkflowInfo } from '../../models/workflow/workflow.debug.settings';\nimport { IAdditionalBreakPointHandler, WorkflowData, WorkflowModuleData } from '../../models/workflow/workflow.model';\nimport { WF_REGISTRY, WF_TYPE_REGISTRY, WorkflowExitInfo } from '../../services/workflow.service';\n\n@Component({\n selector: 'debug-workflow-breakpoint-control',\n templateUrl: './debug.workflow.breakpoint.control.html',\n styleUrls: ['./debug.workflow.breakpoint.control.css', '../../workflow/workflow.item.css']\n})\nexport class DebugWorkflowBreakPointControl implements OnInit, AfterViewInit {\n zoomValue = 1;\n zoomStyle = {};\n zoomText = '100';\n jsPlumbInstance;\n Initialized = false;\n wfItemSize = 100;\n DataDescription = {\n Modules: [],\n EndPoints: {},\n Connectors: []\n };\n additionalTemplate: {\n Portal: Portal,\n WFItem: any,\n BreakPoint: BreakPointInfo\n }\n\n //#region Data\n DataValue: WorkflowData = new WorkflowData();\n\n @Input()\n get Data() {\n return this.DataValue;\n }\n set Data(val) {\n if (val && val !== this.DataValue) {\n this.DataValue = val;\n this.generateDataDescription();\n this.updateJSPlumb();\n }\n }\n //#endregion\n\n //#region Settings\n SettingsValue: ServiceWorkflowInfo = new ServiceWorkflowInfo();\n\n @Input()\n get Settings() {\n return this.SettingsValue;\n }\n set Settings(val) {\n if (val && val !== this.SettingsValue) {\n this.SettingsValue = val;\n this.applySettings();\n }\n }\n //#endregion\n\n //#region SelectedModule\n SelectedModuleValue: BreakPointSelection;\n\n @Input()\n get SelectedModule() {\n return this.SelectedModuleValue;\n }\n set SelectedModule(val) {\n this.SelectedModuleValue = val;\n this.applySettings();\n }\n //#endregion\n\n //#region CanEdit\n CanEditValue = false;\n\n @Input()\n get CanEdit() {\n return this.CanEditValue;\n }\n set CanEdit(val) {\n this.CanEditValue = val;\n }\n //#endregion\n\n @Output() BreakpointChanged = new EventEmitter();\n\n @ViewChild('contentDIV', { read: ElementRef }) contentDIV: ElementRef;\n\n constructor(private cdRef: ChangeDetectorRef, private translate: TranslateService, private _injector: Injector) {\n }\n\n ngOnInit(): void {\n this.jsPlumbInstance = jsPlumb.getInstance({\n Connector: [\"Flowchart\", { stub: 50, gap: 5, cornerRadius: 10 }],\n PaintStyle: { stroke: \"var(--workflow-connector-stroke-color)\", strokeWidth: 2 }\n });\n this.jsPlumbInstance.registerConnectionTypes({\n \"basic\": {\n connector: [\"Flowchart\", {\n stub: 50,\n gap: 5,\n cornerRadius: 10\n }],\n paintStyle: { stroke: \"var(--workflow-connector-stroke-color)\", strokeWidth: 2 },\n cssClass: \"connector-normal\"\n }\n });\n }\n\n ngAfterViewInit(): void {\n this.Initialized = true;\n this.updateJSPlumb();\n this.applySettings();\n }\n\n generateDataDescription() {\n const dd = {\n ID: UUID.UUID(),\n Modules: [],\n EndPoints: {},\n Connectors: []\n };\n if (this.DataValue) {\n this.DataValue.Modules.forEach(mod => {\n this.addModule(mod, dd);\n });\n this.DataValue.Connectors.forEach(con => {\n if (typeof con.EntryOption !== 'number') {\n con.EntryOption = 0;\n }\n const conInfo = {\n Connection: {\n uuids: ['exit_' + con.ExitModule + '_' + con.ExitOption, 'entry_' + con.EntryModule + '_' + con.EntryOption],\n detachable: false\n },\n Label: ''\n };\n const mod = this.DataValue.Modules.find(x => x.ID === con.ExitModule);\n if (mod && mod.Settings) {\n const desc = WF_REGISTRY.get(mod.Module);\n if (desc && desc.SettingsTypeHelper) {\n let settings = mod.Settings;\n if (typeof settings === 'string') {\n settings = JSON.parse(settings);\n }\n conInfo.Label = desc.SettingsTypeHelper.getExitPointLabel(settings, con.ExitOption);\n }\n }\n dd.Connectors.push(conInfo);\n });\n }\n this.DataDescription = dd;\n this.cdRef.detectChanges();\n }\n\n private addModule(mod, dd) {\n const modEntry = {\n ID: mod.ID,\n Module: mod.Module,\n idAttr: dd.ID + '_' + mod.ID,\n Caption: null,\n AdditionalTranslateCaption: null,\n AdditionalCaption: null,\n Description: null,\n Style: {\n top: mod.YPos + 'px',\n left: mod.XPos + 'px',\n width: this.wfItemSize + 'px',\n height: this.wfItemSize + 'px'\n },\n BreakOnStart: false,\n BreakOnEnd: false,\n HasAdditional: false,\n StartSelected: false,\n EndSelected: false,\n AdditionalBreakpointHandler: null,\n Group: null,\n ViewType: null,\n Icon: null,\n GroupIcon: null,\n Height: 100,\n Width: 100\n };\n dd.Modules.push(modEntry);\n const desc = WF_REGISTRY.get(mod.Module);\n if (desc) {\n modEntry.Width = desc.Width;\n modEntry.Style.width = desc.Width + 'px';\n modEntry.Height = desc.Height;\n modEntry.Style.height = desc.Height + 'px';\n modEntry.ViewType = desc.ViewType;\n modEntry.Group = desc.GroupID;\n modEntry.Icon = desc.Icon;\n modEntry.GroupIcon = desc.GroupIcon;\n const descList = [];\n if (desc.Caption) {\n modEntry.Caption = desc.Caption;\n descList.push(this.translate.instant(desc.Caption));\n }\n if (desc.SettingsTypeHelper) {\n const epList = [];\n const entryPoints = desc.SettingsTypeHelper.getEntryPoints();\n const percent = 1.0 / (entryPoints.length + 1);\n for (let i = 0; i < entryPoints.length; i++) {\n const exPo = entryPoints[i];\n const expoInfo = {\n anchor: [percent * (i + 1), 0, 0, -1],\n endpoint: ['Rectangle', { width: 10, height: 10 }],\n maxConnections: -1,\n uuid: 'entry_' + mod.ID + '_' + exPo.ID,\n Label: exPo.Label,\n enabled: false\n };\n if (typeof exPo.Type === 'string') {\n expoInfo['parameters'] = {\n EndPointType: exPo.Type\n };\n const info = WF_TYPE_REGISTRY.get(exPo.Type);\n if (info) {\n expoInfo['paintStyle'] = {\n fill: info.Color\n };\n }\n }\n epList.push(expoInfo);\n }\n let settings = mod.Settings;\n if (settings) {\n if (typeof settings === 'string') {\n settings = JSON.parse(settings);\n }\n const ac = desc.SettingsTypeHelper.getAdditionalCaption(settings);\n if (ac instanceof TranslateFormatText) {\n modEntry.AdditionalTranslateCaption = ac;\n descList.push(StringHelper.format(this.translate.instant(ac.TranslateText), ac.FormatParams));\n\n } else if (typeof ac === 'string') {\n modEntry.AdditionalCaption = ac;\n descList.push(ac);\n }\n }\n modEntry.AdditionalBreakpointHandler = desc.SettingsTypeHelper.getAdditionalBreakpointHandler(settings);\n const exitPoints = desc.SettingsTypeHelper.getExitPoints(settings);\n\n if (exitPoints && exitPoints.length) {\n let error = exitPoints.find((value) => value.ID == -1);\n if (!error) {\n error = new WorkflowExitInfo();\n error.ID = -1;\n error.Label = \"@@InternalError\";\n error.Type = \"error\";\n exitPoints.push(error);\n }\n }\n\n const percentEnd = 1.0 / (exitPoints.length + 1);\n for (let i = 0; i < exitPoints.length; i++) {\n const exPo = exitPoints[i];\n const expoInfo = {\n anchor: [],\n endpoint: ['Dot', { radius: 5 }],\n uuid: 'exit_' + mod.ID + '_' + exPo.ID,\n Label: exPo.Label,\n enabled: false\n };\n let pos = (percentEnd * (i + 1)) + (percentEnd / 2);\n let per = percentEnd * (i + 1);\n switch (modEntry.ViewType) {\n case WorkflowViewType.Condition:\n let hpos = 0;\n if (pos > 0.5) {\n hpos = pos - 0.5;\n } else {\n hpos = 0.5 - pos;\n }\n let vpos = 0;\n if (per > 0.5) {\n vpos = per - 0.5;\n } else {\n vpos = 0.5 - per;\n }\n expoInfo.anchor = [[per, 1 - vpos], [hpos, pos], [1 - hpos, pos]];\n break;\n case WorkflowViewType.Start:\n case WorkflowViewType.Action:\n default:\n expoInfo.anchor = [[per, 1, 0, 1], [0, pos], [1, pos]];\n break;\n }\n\n if (typeof exPo.Type === 'string') {\n expoInfo['parameters'] = {\n EndPointType: exPo.Type\n };\n const info = WF_TYPE_REGISTRY.get(exPo.Type);\n if (info) {\n expoInfo['paintStyle'] = {\n fill: info.Color\n };\n }\n }\n epList.push(expoInfo);\n }\n if (epList.length > 0) {\n dd.EndPoints[dd.ID + '_' + mod.ID] = epList;\n }\n }\n if (descList.length > 0) {\n modEntry.Description = descList.join('\\n');\n } else {\n modEntry.Description = null;\n }\n }\n }\n\n updateJSPlumb() {\n if (this.Initialized) {\n this.jsPlumbInstance.reset(false);\n if (this.DataDescription) {\n this.jsPlumbInstance.setSuspendDrawing(true);\n Object.keys(this.DataDescription.EndPoints).forEach(epKey => {\n const epList = this.DataDescription.EndPoints[epKey];\n epList.forEach(exPo => {\n const ep = this.jsPlumbInstance.addEndpoint(epKey, exPo);\n if (exPo.Label) {\n const label = this.translate.instant(exPo.Label);\n ep.addOverlay(['Label', { label: label, cssClass: 'exitPointLabel', location: [0.5, 2.5] }]);\n ep.bind('mouseover', (exP, ev) => {\n exP.showOverlays();\n });\n ep.bind('mouseout', (exP, ev) => {\n exP.hideOverlays();\n });\n ep.hideOverlays();\n }\n });\n });\n this.DataDescription.Connectors.forEach(x => {\n const jsCon = this.jsPlumbInstance.connect(x.Connection);\n if (x.Label) {\n jsCon.setLabel(x.Label);\n }\n });\n this.jsPlumbInstance.setSuspendDrawing(false, true);\n }\n }\n }\n\n applySettings() {\n if (this.DataDescription) {\n let breakpoints = [];\n if (this.SettingsValue && this.SettingsValue.Breakpoints) {\n breakpoints = this.SettingsValue.Breakpoints;\n }\n this.DataDescription.Modules.forEach(mod => {\n const bp = breakpoints.find(x => x.ModuleID === mod.ID);\n if (bp) {\n mod.BreakOnStart = bp.BreakOnStart;\n mod.BreakOnEnd = bp.BreakOnEnd;\n mod.HasAdditional = bp.AdditionalBreakPoints != null;\n } else {\n mod.BreakOnStart = false;\n mod.BreakOnEnd = false;\n mod.HasAdditional = false;\n }\n if (this.SelectedModuleValue && this.SelectedModuleValue.ModuleID === mod.ID) {\n if (this.SelectedModuleValue.Start) {\n mod.StartSelected = true;\n mod.EndSelected = false;\n } else {\n mod.StartSelected = false;\n mod.EndSelected = true;\n }\n } else {\n mod.StartSelected = false;\n mod.EndSelected = false;\n }\n });\n }\n }\n\n onScroll(ev) {\n if (ev && ev.getModifierState('Control')) {\n const delta = ev.deltaY;\n if (typeof delta === 'number') {\n if (delta < 0) {\n this.increaseZoom();\n } else {\n this.decreaseZoom();\n }\n }\n ev.stopPropagation();\n ev.preventDefault();\n }\n }\n\n increaseZoom() {\n this.zoomValue += 0.05;\n this.jsPlumbInstance.setZoom(this.zoomValue);\n }\n\n decreaseZoom() {\n if (this.zoomValue > 0.05) {\n this.zoomValue -= 0.05;\n this.jsPlumbInstance.setZoom(this.zoomValue);\n }\n }\n\n resetZoom() {\n this.setZoomValue(1);\n }\n\n optimalZoom() {\n if (this.DataValue && this.DataValue.Modules && this.DataValue.Modules.length > 0 && this.contentDIV) {\n let maxWidth = 0;\n let maxHeight = 0;\n this.DataValue.Modules.forEach(x => {\n const right = x.XPos + this.wfItemSize;\n if (right > maxWidth) {\n maxWidth = right;\n }\n const bottom = x.YPos + this.wfItemSize;\n if (bottom > maxHeight) {\n maxHeight = bottom;\n }\n });\n maxWidth += 10;\n maxHeight += 10;\n const zoom = Math.min(this.contentDIV.nativeElement.offsetWidth / maxWidth,\n this.contentDIV.nativeElement.offsetHeight / maxHeight);\n this.setZoomValue(Math.round(zoom * 100) / 100);\n }\n }\n\n private setZoomValue(zoomVal: number) {\n this.zoomValue = zoomVal;\n this.zoomStyle = {\n 'zoom': this.zoomValue\n };\n this.zoomText = '' + Math.round(this.zoomValue * 100);\n this.jsPlumbInstance.setZoom(this.zoomValue);\n }\n\n debugClicked(item, start) {\n if (this.CanEditValue) {\n if (start) {\n item.BreakOnStart = !item.BreakOnStart;\n } else {\n item.BreakOnEnd = !item.BreakOnEnd;\n }\n if (this.SettingsValue) {\n if (!this.SettingsValue.Breakpoints) {\n this.SettingsValue.Breakpoints = [];\n }\n let bp = this.SettingsValue.Breakpoints.find(x => x.ModuleID === item.ID);\n if (!bp) {\n bp = new BreakPointInfo();\n bp.ModuleID = item.ID;\n this.SettingsValue.Breakpoints.push(bp);\n }\n bp.BreakOnStart = item.BreakOnStart;\n bp.BreakOnEnd = item.BreakOnEnd;\n this.BreakpointChanged.emit();\n }\n }\n }\n\n showAdditional(item) {\n if (this.CanEditValue && item && this.SettingsValue) {\n const abh: IAdditionalBreakPointHandler = item.AdditionalBreakpointHandler;\n if (abh) {\n let bp;\n if (this.SettingsValue.Breakpoints) {\n bp = this.SettingsValue.Breakpoints.find(x => x.ModuleID === item.ID);\n } else {\n this.SettingsValue.Breakpoints = [];\n }\n if (bp) {\n if (!bp.AdditionalBreakPoints) {\n bp.AdditionalBreakPoints = abh.EmptyData;\n }\n } else {\n bp = new BreakPointInfo();\n bp.AdditionalBreakPoints = abh.EmptyData;\n this.SettingsValue.Breakpoints.push(bp);\n }\n const injectorTokens = new WeakMap();\n const controlData = {};\n abh.updateControlData(controlData, bp.AdditionalBreakPoints, null)\n injectorTokens.set(abh.Token, controlData);\n this.additionalTemplate = {\n Portal: new ComponentPortal(abh.ComponentType, null, new PortalInjector(this._injector, injectorTokens)),\n WFItem: item,\n BreakPoint: bp\n };\n this.cdRef.detectChanges();\n }\n }\n }\n\n clearAdditional() {\n if (this.additionalTemplate) {\n if (this.additionalTemplate.WFItem && this.additionalTemplate.BreakPoint) {\n const abh: IAdditionalBreakPointHandler = this.additionalTemplate.WFItem.AdditionalBreakpointHandler;\n if (abh) {\n const remove = abh.checkBreakPointDataForRemove(this.additionalTemplate.BreakPoint.AdditionalBreakPoints);\n if (remove) {\n this.additionalTemplate.BreakPoint.AdditionalBreakPoints = null;\n }\n }\n this.additionalTemplate.WFItem.HasAdditional = this.additionalTemplate.BreakPoint.AdditionalBreakPoints != null;\n }\n this.additionalTemplate = null;\n this.cdRef.detectChanges();\n this.BreakpointChanged.emit();\n }\n }\n}\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { ClientHelper } from '../../helpers/client.helper';\nimport { NotificationHelper } from '../../helpers/notification.helper';\nimport { WorkflowDebugHelper } from '../../helpers/workflow.debug.helper';\nimport { DebugWorkflowAttachDialog } from './debug.workflow.attach.dialog';\n\n@Component({\n selector: 'debug-workflow-connection',\n templateUrl: './debug.workflow.connection.page.html',\n styleUrls: ['./debug.workflow.connection.page.css']\n})\nexport class DebugWorkflowConnectionPage implements OnInit {\n AttachedClients = [];\n ShowAttach = false;\n SelectedClient;\n Selected\n\n private static SelfAttach = new Subject();\n\n static CheckForSelfAttach() {\n let debugClient = WorkflowDebugHelper.DebugClient.getValue();\n if (!debugClient) {\n if (localStorage.getItem('DebugClient')) {\n // Message anzeigen\n NotificationHelper.Warn('@@DebugAlreadyAttached', '@@Warning');\n } else {\n // AutoAttach\n DebugWorkflowConnectionPage.SelfAttach.next(null);\n }\n }\n }\n\n constructor(private cdRef: ChangeDetectorRef, private translate: TranslateService) {\n }\n\n ngOnInit(): void {\n this.checkShowAttached();\n DebugWorkflowConnectionPage.SelfAttach.subscribe(() => {\n const attClient = {\n ClientID: ClientHelper.ClientID,\n Caption: this.translate.instant('@@OwnWindow')\n };\n this.AttachedClients.push(attClient);\n WorkflowDebugHelper.AttachToClients([attClient.ClientID]);\n this.cdRef.detectChanges();\n });\n WorkflowDebugHelper.OnAttachOrDetach.subscribe(() => {\n this.checkShowAttached();\n });\n WorkflowDebugHelper.DebugState.subscribe(x => {\n this.AttachedClients.some((client, j) => {\n if (client.ClientID === x.Sender) {\n switch (x.Type) {\n case 'WorkflowState':\n this.SelectedClient = j;\n if (client.RunningWorkflows) {\n if (!client.RunningWorkflows.some((rw, i) => {\n if (rw.Data.RunID === x.Content.RunID) {\n rw.Data = x.Content;\n client.SelectedWorkflow = i;\n return true;\n }\n return false;\n })) {\n client.RunningWorkflows.push({\n Data: x.Content,\n Caption: x.Content.RunID\n });\n client.SelectedWorkflow = client.RunningWorkflows.length - 1;\n }\n } else {\n client.RunningWorkflows = [{\n Data: x.Content,\n Caption: x.Content.RunID\n }];\n client.SelectedWorkflow = 0;\n }\n this.cdRef.detectChanges();\n break;\n case 'WorkflowFinished':\n if (client.RunningWorkflows) {\n let index;\n if (client.RunningWorkflows.some((rw, i) => {\n if (rw.Data.RunID === x.Content.RunID) {\n index = i;\n return true;\n }\n return false;\n })) {\n client.RunningWorkflows.splice(index, 1);\n this.cdRef.detectChanges();\n }\n }\n break;\n }\n return true;\n }\n return false;\n });\n });\n }\n\n checkShowAttached() {\n const debugClient = localStorage.getItem('DebugClient');\n this.ShowAttach = !debugClient || debugClient === ClientHelper.ClientID;\n this.cdRef.detectChanges();\n }\n\n onAttachClick() {\n if (this.ShowAttach) {\n const connectedClients = [];\n this.AttachedClients.forEach(x => connectedClients.push({ ClientID: x.ClientID, Caption: x.Caption }));\n DebugWorkflowAttachDialog.ShowDialog(connectedClients, (x) => {\n if (x && x.length > 0) {\n const newClients = [];\n x.forEach(y => {\n this.AttachedClients.push(y);\n newClients.push(y.ClientID)\n });\n WorkflowDebugHelper.AttachToClients(newClients);\n this.cdRef.detectChanges();\n }\n });\n }\n }\n\n detachAll() {\n this.AttachedClients.splice(0);\n WorkflowDebugHelper.DetachAll();\n }\n\n detachClient(clientID, index) {\n this.AttachedClients.splice(index, 1);\n if (this.AttachedClients.length === 0) {\n WorkflowDebugHelper.DetachAll();\n } else {\n WorkflowDebugHelper.DetachClient(clientID);\n }\n }\n\n onCancel(client, j) {\n if (client && client.RunningWorkflows) {\n client.RunningWorkflows.splice(j, 1);\n this.cdRef.detectChanges();\n }\n }\n}\n","import { ChangeDetectorRef, Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { ClientHelper } from '../../helpers/client.helper';\nimport { WorkflowDebugHelper } from '../../helpers/workflow.debug.helper';\n\n@Component({\n selector: 'debug-workflow-log',\n templateUrl: './debug.workflow.log.html',\n styleUrls: ['./debug.workflow.log.css']\n})\nexport class DebugWorkflowLog implements OnInit, OnDestroy {\n LogSub;\n ShowLogs = false;\n Logs = [];\n @ViewChild('logDIV') logDIV: ElementRef;\n cdRefTimeOut = -1;\n ClientID = ClientHelper.ClientID;\n SelectedLog;\n editorOptions = {\n language: 'json',\n readOnly: true,\n scrollBeyondLastLine: false\n };\n\n constructor(private cdRef: ChangeDetectorRef) {\n }\n\n ngOnDestroy(): void {\n if (this.LogSub) {\n this.LogSub.unsubscribe();\n this.LogSub = null;\n }\n }\n\n ngOnInit(): void {\n WorkflowDebugHelper.DebugSettings.subscribe(x => {\n const showLogs = x.ShowWorkflowLog || x.ShowServiceLogsOnTest;\n if (showLogs !== this.ShowLogs) {\n if (showLogs) {\n this.LogSub = WorkflowDebugHelper.NextLog.subscribe(log => {\n this.Logs.push({\n Message: log.Message,\n Foreign: log.ClientID !== this.ClientID,\n Service: log.ClientID === 'service',\n Script: log.Status ? JSON.stringify(log.Status, null, 4) : null\n });\n this.tryScroll();\n });\n } else if (this.LogSub) {\n this.LogSub.unsubscribe();\n this.LogSub = null;\n }\n }\n this.ShowLogs = showLogs;\n });\n }\n\n tryScroll() {\n clearTimeout(this.cdRefTimeOut);\n this.cdRefTimeOut = window.setTimeout(() => {\n this.cdRef.detectChanges();\n if (this.logDIV && this.logDIV.nativeElement) {\n this.logDIV.nativeElement.scrollTop = this.logDIV.nativeElement.scrollHeight;\n }\n }, 50);\n }\n\n clear() {\n this.Logs.splice(0);\n this.SelectedLog = null;\n this.tryScroll();\n }\n}\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { WorkflowDebugHelper } from '../../helpers/workflow.debug.helper';\nimport { TranslatedString } from '../../models/translatedstring.model';\nimport {\n ClientWorkflowInfo, ConnectorWorkflowInfo, SelectedWorkflows, ServiceWorkflowInfo, WorkflowDebugSettings\n} from '../../models/workflow/workflow.debug.settings';\nimport { ConnectorService } from '../../services/connector.service';\nimport { DebugService } from '../../services/debug.service';\nimport { UsersService } from '../../services/users.service';\n\n@Component({\n selector: 'debug-workflow-settings',\n templateUrl: './debug.workflow.settings.page.html',\n styleUrls: ['./debug.workflow.settings.page.css']\n})\nexport class DebugWorkflowSettingsPage implements OnInit {\n Settings: WorkflowDebugSettings;\n NodesLoading = false;\n WorkflowInfo;\n SelectedWorkflow;\n OnlyWithBreakpoints = false;\n SearchValueToLower = '';\n OriginalSearchValue = '';\n get SearchValue():string {\n return this.OriginalSearchValue;\n }\n set SearchValue(val: string) {\n this.OriginalSearchValue = val;\n this.SearchValueToLower = val.toLowerCase();\n this.UpdateFilterDelayed();\n }\n Delay;\n\n private static CheckBreakPoints(list) {\n const newList = [];\n if (list) {\n list.forEach(x => {\n const newBreakPoints = [];\n if (x.Breakpoints) {\n x.Breakpoints.forEach(bp => {\n if (bp.BreakOnStart || bp.BreakOnEnd || bp.AdditionalBreakPoints) {\n newBreakPoints.push(bp);\n }\n });\n }\n if (newBreakPoints.length > 0) {\n x.Breakpoints = newBreakPoints;\n newList.push(x);\n }\n });\n }\n return newList;\n }\n\n constructor(private cdRef: ChangeDetectorRef, private debugService: DebugService, private conService: ConnectorService) {\n }\n\n ngOnInit(): void {\n WorkflowDebugHelper.DebugSettings.subscribe(x => {\n if (x) {\n this.Settings = JSON.parse(JSON.stringify(x));\n } else {\n this.Settings = null;\n }\n this.SelectedWorkflow = null;\n this.onSettingsChanged(); \n });\n UsersService.ActiveUser.subscribe(x => {\n if (x) {\n this.refreshTree();\n }\n });\n }\n\n refresh() {\n this.OriginalSearchValue = '';\n this.SearchValueToLower = '';\n this.OnlyWithBreakpoints = false;\n const settings = WorkflowDebugHelper.DebugSettings.getValue();\n if (settings) {\n this.Settings = JSON.parse(JSON.stringify(settings));\n } else {\n this.Settings = null;\n }\n this.refreshTree();\n }\n\n apply() {\n if (this.Settings && this.Settings.Workflows) {\n if (this.Settings.Workflows.ServiceWorkflows) {\n this.Settings.Workflows.ServiceWorkflows =\n DebugWorkflowSettingsPage.CheckBreakPoints(this.Settings.Workflows.ServiceWorkflows);\n }\n if (this.Settings.Workflows.ClientWorkflows) {\n this.Settings.Workflows.ClientWorkflows =\n DebugWorkflowSettingsPage.CheckBreakPoints(this.Settings.Workflows.ClientWorkflows);\n }\n if (this.Settings.Workflows.ConnectorWorkflows) {\n this.Settings.Workflows.ConnectorWorkflows =\n DebugWorkflowSettingsPage.CheckBreakPoints(this.Settings.Workflows.ConnectorWorkflows);\n }\n }\n WorkflowDebugHelper.UpdateSettings(this.Settings);\n }\n\n refreshTree() {\n this.NodesLoading = true;\n this.SelectedWorkflow = null;\n this.debugService.GetAllWorkflows().subscribe(x => {\n this.WorkflowInfo = x;\n this.NodesLoading = false;\n this.onSettingsChanged();\n });\n }\n\n clearAllBreakpoints() {\n if (this.Settings) {\n this.Settings.Workflows = new SelectedWorkflows();\n this.onSettingsChanged();\n }\n }\n\n onServiceWFSelection(wf) {\n this.SelectedWorkflow = null;\n this.debugService.GetWorkflow(wf.Id, 'service').subscribe(x => {\n if (x) {\n let settings: ServiceWorkflowInfo;\n if (this.Settings) {\n if (!this.Settings.Workflows) {\n this.Settings.Workflows = new SelectedWorkflows();\n }\n if (this.Settings.Workflows.ServiceWorkflows) {\n settings = this.Settings.Workflows.ServiceWorkflows.find(x => x.ID === wf.Id);\n } else { \n this.Settings.Workflows.ServiceWorkflows = [];\n }\n if (!settings) {\n settings = new ServiceWorkflowInfo()\n settings.ID = wf.Id;\n this.Settings.Workflows.ServiceWorkflows.push(settings);\n }\n }\n this.SelectedWorkflow = {\n IsService: true,\n Workflow: x,\n Caption: TranslatedString.GetTranslation(x.Caption),\n Settings: settings\n };\n }\n this.cdRef.detectChanges();\n });\n }\n\n onClientWFSelection(pi, wf) {\n this.SelectedWorkflow = null;\n this.debugService.GetWorkflow(wf.SID, pi.SID).subscribe(x => {\n if (x) {\n let settings: ClientWorkflowInfo;\n if (this.Settings) {\n if (!this.Settings.Workflows) {\n this.Settings.Workflows = new SelectedWorkflows();\n }\n if (this.Settings.Workflows.ClientWorkflows) {\n settings = this.Settings.Workflows.ClientWorkflows.find(x => x.ID === wf.SID && x.URL === pi.URL);\n } else {\n this.Settings.Workflows.ClientWorkflows = [];\n }\n if (!settings) {\n settings = new ClientWorkflowInfo()\n settings.ID = wf.SID;\n settings.URL = pi.URL;\n settings.PageSID = pi.SID;\n this.Settings.Workflows.ClientWorkflows.push(settings);\n }\n }\n this.SelectedWorkflow = {\n IsService: false,\n Workflow: x.Data,\n Caption: x.Caption,\n Settings: settings\n };\n }\n this.cdRef.detectChanges();\n });\n }\n\n onConnectorWFSelection(cmi, before) {\n this.SelectedWorkflow = null;\n this.conService.GetConnectorWorkflow(cmi.ConnectorID, before).subscribe(x => {\n if (x) {\n let settings: ConnectorWorkflowInfo;\n if (this.Settings) {\n if (!this.Settings.Workflows) {\n this.Settings.Workflows = new SelectedWorkflows();\n }\n const wfId = before ? cmi.BeforeExecute.WorkflowID : cmi.AfterExecute.WorkflowID;\n if (this.Settings.Workflows.ConnectorWorkflows) {\n settings = this.Settings.Workflows.ConnectorWorkflows.find(x => x.ConnectorID == cmi.ConnectorID && x.ID == wfId);\n } else {\n this.Settings.Workflows.ConnectorWorkflows = [];\n }\n if (!settings) {\n settings = new ConnectorWorkflowInfo()\n settings.ID = wfId;\n settings.ConnectorID = cmi.ConnectorID;\n this.Settings.Workflows.ConnectorWorkflows.push(settings);\n }\n }\n this.SelectedWorkflow = {\n IsService: true,\n Workflow: x,\n Caption: TranslatedString.GetTranslation(x.Caption),\n Settings: settings\n };\n }\n this.cdRef.detectChanges();\n });\n }\n\n onConnectorMappingSelection(cmi, cci, oi) {\n this.SelectedWorkflow = null;\n this.conService.GetWorkflowMapping(oi.MappingID).subscribe(x => {\n if (x && x.Workflow) {\n let settings: ConnectorWorkflowInfo;\n if (this.Settings) {\n if (!this.Settings.Workflows) {\n this.Settings.Workflows = new SelectedWorkflows();\n }\n if (this.Settings.Workflows.ConnectorWorkflows) {\n settings = this.Settings.Workflows.ConnectorWorkflows.find(x => x.ConnectorID == cmi.ConnectorID &&\n x.ContainerID == cci.ContainerID && x.ID == oi.WorkflowID);\n } else {\n this.Settings.Workflows.ConnectorWorkflows = [];\n }\n if (!settings) {\n settings = new ConnectorWorkflowInfo()\n settings.ID = oi.WorkflowID;\n settings.ConnectorID = cmi.ConnectorID;\n settings.ContainerID = cci.ContainerID;\n this.Settings.Workflows.ConnectorWorkflows.push(settings);\n }\n }\n this.SelectedWorkflow = {\n IsService: true,\n Workflow: x.Workflow,\n Caption: TranslatedString.GetTranslation(x.Workflow.Caption),\n Settings: settings\n };\n }\n this.cdRef.detectChanges();\n });\n }\n\n onSettingsChanged() {\n if (this.WorkflowInfo) {\n if (this.Settings && this.Settings.Workflows) {\n if (this.WorkflowInfo.ServiceWorkflows) {\n this.WorkflowInfo.ServiceHasSettings = false;\n if (this.Settings.Workflows.ServiceWorkflows && this.Settings.Workflows.ServiceWorkflows.length > 0) {\n this.WorkflowInfo.ServiceWorkflows.forEach(x => {\n const s = this.Settings.Workflows.ServiceWorkflows.find(y => y.ID === x.Id);\n if (s && s.Breakpoints && s.Breakpoints.some(bp => bp.BreakOnStart || bp.BreakOnEnd || bp.AdditionalBreakPoints)) {\n x.HasSettings = true;\n this.WorkflowInfo.ServiceHasSettings = true;\n } else {\n x.HasSettings = false;\n }\n });\n } else {\n this.WorkflowInfo.ServiceWorkflows.forEach(x => {\n x.HasSettings = false;\n });\n }\n }\n if (this.WorkflowInfo.ClientWorkflows) {\n this.WorkflowInfo.ClientHasSettings = false;\n if (this.Settings.Workflows.ClientWorkflows && this.Settings.Workflows.ClientWorkflows.length > 0) {\n this.WorkflowInfo.ClientWorkflows.forEach(x => {\n x.HasSettings = false;\n x.Workflows.forEach(y => {\n const s = this.Settings.Workflows.ClientWorkflows.find(z => z.ID === y.SID);\n if (s && s.Breakpoints && s.Breakpoints.some(bp => bp.BreakOnStart || bp.BreakOnEnd || bp.AdditionalBreakPoints)) {\n y.HasSettings = true;\n x.HasSettings = true;\n this.WorkflowInfo.ClientHasSettings = true;\n } else {\n y.HasSettings = false;\n }\n });\n });\n } else {\n this.WorkflowInfo.ClientWorkflows.forEach(x => {\n x.HasSettings = false;\n x.Workflows.forEach(y => {\n y.HasSettings = false;\n });\n });\n }\n }\n if (this.WorkflowInfo.ConnectorWorkflows) {\n this.WorkflowInfo.ConnectorHasSettings = false;\n const cw = this.Settings.Workflows.ConnectorWorkflows;\n if (cw && cw.length > 0) {\n this.WorkflowInfo.ConnectorWorkflows.forEach(x => {\n x.HasSettings = false;\n if (x.BeforeExecute) {\n const s = cw.find(y => y.ConnectorID === x.ConnectorID && y.ID === x.BeforeExecute.WorkflowID);\n if (s && s.Breakpoints && s.Breakpoints.some(bp => bp.BreakOnStart || bp.BreakOnEnd || bp.AdditionalBreakPoints)) {\n x.BeforeExecute.HasSettings = true;\n x.HasSettings = true;\n this.WorkflowInfo.ConnectorHasSettings = true;\n } else {\n x.BeforeExecute.HasSettings = false;\n }\n }\n if (x.AfterExecute) {\n const s = cw.find(y => y.ConnectorID === x.ConnectorID && y.ID === x.AfterExecute.WorkflowID);\n if (s && s.Breakpoints && s.Breakpoints.some(bp => bp.BreakOnStart || bp.BreakOnEnd || bp.AdditionalBreakPoints)) {\n x.AfterExecute.HasSettings = true;\n x.HasSettings = true;\n this.WorkflowInfo.ConnectorHasSettings = true;\n } else {\n x.AfterExecute.HasSettings = false;\n }\n }\n if (x.Containers) {\n x.Containers.forEach(con => {\n con.HasSettings = false;\n if (con.Operations) {\n con.Operations.forEach(op => {\n const s = cw.find(y => y.ConnectorID === x.ConnectorID &&\n y.ContainerID == con.ContainerID && y.ID === op.WorkflowID);\n if (s && s.Breakpoints && s.Breakpoints.some(bp => bp.BreakOnStart || bp.BreakOnEnd || bp.AdditionalBreakPoints)) {\n op.HasSettings = true;\n con.HasSettings = true;\n x.HasSettings = true;\n this.WorkflowInfo.ConnectorHasSettings = true;\n } else {\n op.HasSettings = false;\n }\n });\n }\n });\n }\n });\n }\n }\n } else {\n if (this.WorkflowInfo.ServiceWorkflows) {\n this.WorkflowInfo.ServiceHasSettings = false;\n this.WorkflowInfo.ServiceWorkflows.forEach(x => {\n x.HasSettings = false;\n });\n }\n if (this.WorkflowInfo.ClientWorkflows) {\n this.WorkflowInfo.ClientHasSettings = false;\n this.WorkflowInfo.ClientWorkflows.forEach(x => {\n x.HasSettings = false;\n x.Workflows.forEach(y => {\n y.HasSettings = false;\n });\n });\n }\n if (this.WorkflowInfo.ConnectorWorkflows) {\n this.WorkflowInfo.ConnectorHasSettings = false;\n this.WorkflowInfo.ConnectorWorkflows.forEach(x => {\n x.HasSettings = false;\n if (x.BeforeExecute) {\n x.BeforeExecute.HasSettings = false;\n }\n if (x.AfterExecute) {\n x.AfterExecute.HasSettings = false;\n }\n if (x.Containers) {\n x.Containers.forEach(con => {\n con.HasSettings = false;\n if (con.Operations) {\n con.Operations.forEach(op => {\n op.HasSettings = false;\n });\n }\n });\n }\n });\n }\n }\n }\n this.UpdateFilter();\n }\n\n UpdateFilterDelayed() {\n clearTimeout(this.Delay);\n this.Delay = setTimeout(() => { this.UpdateFilter(); }, 500);\n }\n\n UpdateFilter() {\n if (this.WorkflowInfo) {\n if (this.OnlyWithBreakpoints) {\n if (this.SearchValueToLower) {\n if (this.WorkflowInfo.ServiceWorkflows) {\n this.WorkflowInfo.ServiceWorkflows.forEach(x => {\n x.Visible = x.HasSettings && x.Name.toLowerCase().indexOf(this.SearchValueToLower) > -1;\n });\n }\n if (this.WorkflowInfo.ClientWorkflows) {\n this.WorkflowInfo.ClientWorkflows.forEach(x => {\n x.Visible = false;\n if (x.Caption.toLowerCase().indexOf(this.SearchValueToLower) > -1) {\n x.Workflows.forEach(y => {\n if (y.HasSettings) {\n y.Visible = true;\n x.Visible = true;\n } else {\n y.Visible = false;\n }\n });\n } else {\n x.Workflows.forEach(y => {\n if (y.HasSettings && x.Caption.toLowerCase().indexOf(this.SearchValueToLower) > -1) {\n y.Visible = true;\n x.Visible = true;\n } else {\n y.Visible = false;\n }\n });\n }\n });\n }\n if (this.WorkflowInfo.ConnectorWorkflows) {\n this.WorkflowInfo.ConnectorWorkflows.forEach(x => {\n x.Visible = false;\n if (x.ConnectorName.toLowerCase().indexOf(this.SearchValueToLower) > -1) {\n if (x.BeforeExecute) {\n if (x.BeforeExecute.HasSettings) {\n x.BeforeExecute.Visible = true;\n x.Visible = true;\n } else {\n x.BeforeExecute.Visible = false;\n }\n }\n if (x.AfterExecute) {\n if (x.AfterExecute.HasSettings) {\n x.AfterExecute.Visible = true;\n x.Visible = true;\n } else {\n x.AfterExecute.Visible = false;\n }\n }\n if (x.Containers) {\n x.Containers.forEach(con => {\n con.Visible = false;\n if (con.Operations) {\n con.Operations.forEach(op => {\n if (op.HasSettings) {\n op.Visible = true;\n con.Visible = true;\n x.Visible = true;\n } else {\n op.Visible = false;\n }\n });\n }\n });\n }\n } else {\n if (x.Containers) {\n x.Containers.forEach(con => {\n con.Visible = false;\n if (con.Operations && con.ContainerName.toLowerCase().indexOf(this.SearchValueToLower) > -1) {\n con.Operations.forEach(op => {\n if (op.HasSettings) {\n op.Visible = true;\n con.Visible = true;\n x.Visible = true;\n } else {\n op.Visible = false;\n }\n });\n }\n });\n }\n }\n });\n }\n } else {\n if (this.WorkflowInfo.ServiceWorkflows) {\n this.WorkflowInfo.ServiceWorkflows.forEach(x => {\n x.Visible = x.HasSettings;\n });\n }\n if (this.WorkflowInfo.ClientWorkflows) {\n this.WorkflowInfo.ClientWorkflows.forEach(x => {\n x.Visible = false;\n x.Workflows.forEach(y => {\n if (y.HasSettings) {\n y.Visible = true;\n x.Visible = true;\n } else {\n y.Visible = false;\n }\n });\n });\n }\n if (this.WorkflowInfo.ConnectorWorkflows) {\n this.WorkflowInfo.ConnectorWorkflows.forEach(x => {\n x.Visible = false;\n if (x.BeforeExecute) {\n if (x.BeforeExecute.HasSettings) {\n x.BeforeExecute.Visible = true;\n x.Visible = true;\n } else {\n x.BeforeExecute.Visible = false;\n }\n }\n if (x.AfterExecute) {\n if (x.AfterExecute.HasSettings) {\n x.AfterExecute.Visible = true;\n x.Visible = true;\n } else {\n x.AfterExecute.Visible = false;\n }\n }\n if (x.Containers) {\n x.Containers.forEach(con => {\n con.Visible = false;\n if (con.Operations) {\n con.Operations.forEach(op => {\n if (op.HasSettings) {\n op.Visible = true;\n con.Visible = true;\n x.Visible = true;\n } else {\n op.Visible = false;\n }\n });\n }\n });\n }\n });\n }\n }\n } else if (this.SearchValueToLower) {\n if (this.WorkflowInfo.ServiceWorkflows) {\n this.WorkflowInfo.ServiceWorkflows.forEach(x => {\n x.Visible = x.Name.toLowerCase().indexOf(this.SearchValueToLower) > -1;\n });\n }\n if (this.WorkflowInfo.ClientWorkflows) {\n this.WorkflowInfo.ClientWorkflows.forEach(x => {\n if (x.Caption.toLowerCase().indexOf(this.SearchValueToLower) > -1) {\n x.Visible = true;\n x.Workflows.forEach(y => {\n y.Visible = true;\n });\n } else {\n x.Visible = false;\n x.Workflows.forEach(y => {\n if (y.Caption.toLowerCase().indexOf(this.SearchValueToLower) > -1) {\n y.Visible = true;\n x.Visible = true;\n } else {\n y.Visible = false;\n }\n });\n }\n });\n }\n if (this.WorkflowInfo.ConnectorWorkflows) {\n this.WorkflowInfo.ConnectorWorkflows.forEach(x => {\n if (x.ConnectorName.toLowerCase().indexOf(this.SearchValueToLower) > -1) {\n x.Visible = true;\n if (x.BeforeExecute) {\n x.BeforeExecute.Visible = true;\n }\n if (x.AfterExecute) {\n x.AfterExecute.Visible = true;\n }\n if (x.Containers) {\n x.Containers.forEach(con => {\n if (con.Operations) {\n con.Visible = true;\n con.Operations.forEach(op => {\n op.Visible = true;\n });\n } else {\n con.Visible = false;\n }\n });\n }\n } else {\n x.Visible = false;\n if (x.Containers) {\n x.Containers.forEach(con => {\n if (con.Operations && con.ContainerName.toLowerCase().indexOf(this.SearchValueToLower) > -1) {\n x.Visible = true;\n con.Visible = true;\n con.Operations.forEach(op => {\n op.Visible = true;\n });\n } else {\n con.Visible = false;\n }\n });\n }\n }\n });\n }\n } else {\n if (this.WorkflowInfo.ServiceWorkflows) {\n this.WorkflowInfo.ServiceWorkflows.forEach(x => {\n x.Visible = true;\n });\n }\n if (this.WorkflowInfo.ClientWorkflows) {\n this.WorkflowInfo.ClientWorkflows.forEach(x => {\n x.Visible = true;\n x.Workflows.forEach(y => {\n y.Visible = true;\n });\n });\n }\n if (this.WorkflowInfo.ConnectorWorkflows) {\n this.WorkflowInfo.ConnectorWorkflows.forEach(x => {\n x.Visible = true;\n if (x.BeforeExecute) {\n x.BeforeExecute.Visible = true;\n }\n if (x.AfterExecute) {\n x.AfterExecute.Visible = true;\n }\n if (x.Containers) {\n x.Containers.forEach(con => {\n if (con.Operations) {\n con.Visible = true;\n con.Operations.forEach(op => {\n op.Visible = true;\n });\n } else {\n con.Visible = false;\n }\n });\n }\n });\n }\n }\n }\n this.cdRef.detectChanges();\n }\n}\n","import { ComponentPortal, PortalInjector } from '@angular/cdk/portal';\nimport { AfterViewInit, ChangeDetectorRef, Component, EventEmitter, Injector, Input, Output } from '@angular/core';\nimport { WorkflowDebugHelper } from '../../helpers/workflow.debug.helper';\nimport { TranslatedString } from '../../models/translatedstring.model';\nimport {\n DebugSessionMessage, DebugSessionState, DebugSessionStateDataType, NextStep, NextStepInfo\n} from '../../models/workflow/debug.log.message';\nimport { BreakPointInfo } from '../../models/workflow/workflow.debug.settings';\nimport { WorkflowSaveObject } from '../../models/workflow/workflow.model';\nimport { DebugService } from '../../services/debug.service';\nimport { WF_REGISTRY } from '../../services/workflow.service';\n\n@Component({\n selector: 'debug-workflow-state',\n templateUrl: './debug.workflow.state.control.html',\n styleUrls: ['./debug.workflow.state.control.css']\n})\nexport class DebugWorkflowStateControl implements AfterViewInit {\n Initialized = false;\n editorOptions = {\n automaticLayout: true,\n language: 'json',\n readOnly: true,\n scrollBeyondLastLine: false\n };\n\n Waiting = false;\n Script = '';\n StateSettings = {\n Breakpoints: []\n };\n StateData: {\n Key: string,\n DataType: DebugSessionStateDataType,\n Data\n };\n private LoadedWorkflows = {};\n\n //#region Data\n DataValue: DebugSessionState;\n\n @Input()\n get Data() {\n return this.DataValue;\n }\n set Data(val) {\n if (val !== this.DataValue) {\n this.DataValue = val;\n this.UpdateContent();\n }\n }\n //#endregion\n\n @Output() Cancel = new EventEmitter();\n CaptionValue: string;\n @Output() CaptionChange = new EventEmitter();\n\n constructor(private cdRef: ChangeDetectorRef, private service: DebugService, private _injector: Injector) {\n }\n\n ngAfterViewInit() {\n this.Initialized = true;\n this.UpdateContent();\n }\n\n changeCaption(caption: string) {\n if (caption !== this.CaptionValue) {\n this.CaptionValue = caption;\n this.CaptionChange.emit(this.CaptionValue);\n }\n }\n\n play(clientID, runID) {\n this.sendStepMessage(NextStep.Play);\n }\n\n stepInto(clientID, runID) {\n this.sendStepMessage(NextStep.Into);\n }\n\n stepOver(clientID, runID) {\n this.sendStepMessage(NextStep.Next);\n }\n\n stepOut(clientID, runID) {\n this.sendStepMessage(NextStep.Out);\n }\n\n cancel(clientID, runID) {\n this.sendStepMessage(NextStep.Cancel);\n this.Cancel.emit();\n }\n\n private sendStepMessage(nextStep: NextStep) {\n this.Waiting = true;\n const message = new DebugSessionMessage();\n message.Target = this.DataValue.ClientID;\n message.Type = 'NextStep';\n const content = new NextStepInfo();\n content.RunID = this.DataValue.RunID;\n content.StepIntoRunID = this.DataValue.StepIntoRunID;\n content.NextStep = nextStep;\n content.Breakpoints = this.StateSettings.Breakpoints;\n message.Content = content;\n WorkflowDebugHelper.SendDebugMessage(message);\n }\n\n private UpdateContent() {\n if (this.Initialized) {\n this.Waiting = false;\n if (this.DataValue) {\n this.Script = JSON.stringify(this.DataValue.Status, null, 4);\n if (this.DataValue.Data) {\n const stateData = this.DataValue.Data.Data;\n if (stateData) {\n this.StateSettings = {\n Breakpoints: stateData.Breakpoints ?? []\n };\n switch (this.DataValue.Data.DataType) {\n case DebugSessionStateDataType.Workflow:\n const wfKey = stateData.PageSID + '_' + stateData.WorkflowID;\n if (this.StateData && this.StateData.DataType === this.DataValue.Data.DataType && this.StateData.Key === wfKey) {\n this.StateData.Data.Selection = {\n ModuleID: stateData.ModuleID,\n Start: stateData.Start\n };\n this.cdRef.detectChanges();\n } else {\n this.GetWorkflow(stateData).then(wf => {\n this.StateData = {\n Key: wfKey,\n DataType: this.DataValue.Data.DataType,\n Data: {\n Workflow: wf,\n Selection: {\n ModuleID: stateData.ModuleID,\n Start: stateData.Start\n }\n }\n }\n this.changeCaption(wf.Caption + ' (' + this.DataValue.RunID + ')');\n this.cdRef.detectChanges();\n });\n }\n break;\n case DebugSessionStateDataType.Module:\n const modKey = stateData.PageSID + '_' + stateData.WorkflowID + '_' + stateData.ModuleID;\n if (this.StateData && this.StateData.DataType === this.DataValue.Data.DataType &&\n this.StateData.Key === modKey && this.StateData.Data && this.StateData.Data.Handler) {\n let abp;\n const bpi = this.StateSettings.Breakpoints.find(bp => bp.ModuleID === stateData.ModuleID);\n if (bpi) {\n abp = bpi.AdditionalBreakPoints;\n }\n this.StateData.Data.Handler.updateControlData(this.StateData.Data.Data, abp, stateData);\n this.cdRef.detectChanges();\n } else {\n this.GetWorkflow(stateData).then(wf => {\n let data;\n if (wf && wf.Data) {\n const mod = WorkflowSaveObject.DeserializeModuleSettings(wf.Data.Modules.find(x => x.ID === stateData.ModuleID));\n if (mod && mod.Settings) {\n const desc = WF_REGISTRY.get(mod.Module);\n if (desc && desc.SettingsTypeHelper) {\n const abh = desc.SettingsTypeHelper.getAdditionalBreakpointHandler(mod.Settings);\n if (abh) {\n let breakpoints = stateData.Breakpoints ?? [];\n let bpi = breakpoints.find(bp => bp.ModuleID === stateData.ModuleID);\n if (!bpi) {\n bpi = new BreakPointInfo();\n bpi.ModuleID = stateData.ModuleID;\n bpi.AdditionalBreakPoints = abh.EmptyData;\n breakpoints.push(bpi);\n } else if (!bpi.AdditionalBreakPoints) {\n bpi.AdditionalBreakPoints = abh.EmptyData;\n }\n const controlData = {};\n abh.updateControlData(controlData, bpi.AdditionalBreakPoints, stateData);\n const injectorTokens = new WeakMap();\n injectorTokens.set(abh.Token, controlData);\n data = {\n Key: modKey,\n DataType: this.DataValue.Data.DataType,\n Data: {\n Handler: abh,\n Data: controlData,\n ModuleTemplate: new ComponentPortal(abh.ComponentType, null, new PortalInjector(this._injector, injectorTokens)),\n }\n }\n }\n }\n }\n }\n this.StateData = data;\n this.changeCaption(wf.Caption + ' (' + this.DataValue.RunID + ')');\n this.cdRef.detectChanges();\n });\n }\n break;\n }\n } else {\n this.StateData = null;\n this.StateSettings = {\n Breakpoints: []\n };\n this.changeCaption(this.DataValue.RunID);\n this.cdRef.detectChanges();\n }\n } else {\n this.StateData = null;\n this.StateSettings = {\n Breakpoints: []\n };\n this.changeCaption(this.DataValue.RunID);\n this.cdRef.detectChanges();\n }\n } else {\n this.Script = '';\n this.StateData = null;\n this.StateSettings = {\n Breakpoints: []\n };\n this.changeCaption(this.DataValue.RunID);\n this.cdRef.detectChanges();\n }\n }\n }\n\n private GetWorkflow(data) {\n return new Promise(resolve => {\n const key = data.PageSID + '_' + data.WorkflowID;\n const wf = this.LoadedWorkflows[key];\n if (wf) {\n resolve(wf);\n } else {\n if (data.AdditionalData) {\n let wfData = JSON.parse(data.AdditionalData);\n if (data.PageSID === 'service') {\n wfData = {\n Data: wfData,\n Caption: TranslatedString.GetTranslation(wfData.Caption)\n };\n }\n this.LoadedWorkflows[key] = wfData;\n resolve(wfData);\n } else {\n this.service.GetWorkflow(data.WorkflowID, data.PageSID).subscribe(x => {\n if (x && (data.PageSID === 'service' || data.PageSID === 'template')) {\n x = {\n Data: x,\n Caption: TranslatedString.GetTranslation(x.Caption)\n }\n }\n this.LoadedWorkflows[key] = x;\n resolve(x);\n });\n }\n }\n });\n }\n}\n","export class IntersectionHelper {\n private static Observer: IntersectionObserver;\n\n private static Handlers = {};\n\n public static Observe(element, handler) {\n if (!IntersectionHelper.Observer) {\n IntersectionHelper.Observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n const id = entry.target.getAttribute('id');\n const handler = IntersectionHelper.Handlers[id];\n if (handler && handler.isIntersecting !== entry.isIntersecting) {\n handler.isIntersecting = entry.isIntersecting;\n handler.handler(entry.isIntersecting);\n }\n });\n });\n }\n const id = element.getAttribute('id');\n if (!IntersectionHelper.Handlers[id]) {\n IntersectionHelper.Handlers[id] = {\n handler: handler\n };\n IntersectionHelper.Observer.observe(element);\n }\n }\n\n public static Unobserve(element) {\n const id = element.getAttribute('id');\n delete IntersectionHelper.Handlers[id];\n IntersectionHelper.Observer.unobserve(element);\n }\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { InterceptorSkipHeader } from '../services/interceptor.skip.header';\nimport { StandardRequestBase } from '../services/request-base';\nimport { InjectorHelper, TranslateHelper } from './injector.helper';\nimport moment from 'moment';\n\nexport class AboutInfo {\n ClientVersion = '';\n ServerVersions = [];\n\n static GetAboutInfo(): Promise {\n return new Promise((resolve, reject) => {\n const info = new AboutInfo();\n const headers = new HttpHeaders().set(InterceptorSkipHeader, '');\n const http = InjectorHelper.InjectorInstance.get(HttpClient);\n const ts = new Date().getTime();\n http.get('assets/version.json?ts=' + ts, { headers }).subscribe((client) => {\n if (client) {\n info.ClientVersion = client['Value'] ?? '';\n }\n const service = InjectorHelper.InjectorInstance.get(StandardRequestBase);\n service.executeGet('api/version', 'Get').subscribe((server) => {\n if (server) {\n info.ServerVersions = server;\n }\n resolve(info);\n }, e => reject(e));\n }, e => reject(e));\n });\n }\n\n getInfoText() {\n const retList = [\n TranslateHelper.TranslatorInstance.instant('@@Instance') + ': ' + window.location.host,\n TranslateHelper.TranslatorInstance.instant('@@Date') + ': ' + moment().format('lll'),\n TranslateHelper.TranslatorInstance.instant('@@ClientVersion') + ': ' + this.ClientVersion,\n ];\n this.ServerVersions.forEach(x => {\n retList.push(x.Name + ': ' + x.Value);\n });\n return retList.join('\\n');\n }\n}\n","import { ValueFormulaNodeCalculator } from '../models/calculation/formula.node.calculator';\nimport { TranslatedString } from '../models/translatedstring.model';\nimport { ValueAndType } from '../models/basic/formulaEditor.model';\n\nexport abstract class ACaptionGetter {\n static GetCaptionGetter(layoutElem, fieldList): ACaptionGetter {\n if (layoutElem) {\n if (layoutElem.DisplayFormula) {\n return new DisplayFormulaCaptionGetter(layoutElem.DisplayFormula, fieldList);\n } else if (layoutElem.DisplayMemberPath) {\n let fieldType = '';\n if (fieldList) {\n fieldList.some(f => {\n if (f.Name === layoutElem.DisplayMemberPath) {\n fieldType = f.Type;\n return true;\n }\n return false;\n });\n }\n switch (fieldType) {\n case 'a0c232a9-4ab7-444c-a7e2-d23899a5673b':\n return new TranslatedStringCaptionGetter(layoutElem.DisplayMemberPath);\n default:\n return new StandardPropertyGetter(layoutElem.DisplayMemberPath);\n }\n }\n }\n return new DefaultCaptionGetter();\n }\n\n abstract GetCaption(element): string;\n}\n\nexport class DefaultCaptionGetter extends ACaptionGetter {\n GetCaption(element: any): string {\n let retVal = '';\n if (typeof element !== 'undefined' && element !== null) {\n retVal += element;\n }\n return retVal;\n }\n}\n\nexport class StandardPropertyGetter extends ACaptionGetter {\n constructor(private displayMemberPath: string) {\n super();\n }\n GetCaption(element: any): string {\n let retVal = '';\n if (typeof element !== 'undefined' && element !== null && element[this.displayMemberPath]) {\n retVal += element[this.displayMemberPath];\n }\n return retVal;\n }\n}\n\nexport class DisplayFormulaCaptionGetter extends ACaptionGetter {\n constructor(private formula, private fieldList) {\n super();\n if (this.fieldList) {\n this.fieldList.forEach(f => {\n f.FormulaType = ValueAndType.GetValueTypeFromType(f.DataTyp);\n });\n }\n }\n\n GetCaption(element: any): string {\n let retVal = '';\n if (typeof element !== 'undefined' && element !== null) {\n const values = new Map();\n if (this.fieldList) {\n this.fieldList.forEach(f => {\n values.set(f.ID, {\n Type: f.FormulaType,\n Value: element[f.Name]\n });\n });\n }\n const calc = new ValueFormulaNodeCalculator(false, [], values);\n const result = calc.Calc(this.formula);\n if (result && result.Value) {\n retVal += result.Value;\n }\n }\n return retVal;\n }\n}\n\nexport class TranslatedStringCaptionGetter extends ACaptionGetter {\n constructor(private displayMemberPath: string) {\n super();\n }\n GetCaption(element: any): string {\n let retVal = '';\n if (typeof element !== 'undefined' && element !== null) {\n retVal += TranslatedString.GetTranslation(element[this.displayMemberPath]);\n }\n return retVal;\n }\n}\n","import { PipeTransform, Pipe } from '@angular/core';\n\nexport class ArrayHelpers {\n static removeProps(obj, keys) {\n if (obj instanceof Array) {\n obj.forEach(function (item) {\n ArrayHelpers.removeProps(item, keys)\n });\n }\n else if (typeof obj === 'object') {\n Object.getOwnPropertyNames(obj).forEach(function (key) {\n if (keys.indexOf(key) !== -1) delete obj[key];\n else ArrayHelpers.removeProps(obj[key], keys);\n });\n }\n }\n static removeChild(item, array, property) {\n if (array.indexOf(item) > -1) {\n array.splice(array.indexOf(item), 1);\n } else {\n array.forEach((sub) => {\n if (sub[property] && sub[property].length > -1) {\n ArrayHelpers.removeChild(item, sub[property], property);\n }\n });\n }\n }\n static sortAlphabetical(list: any[], propName?: string) {\n if (propName) {\n list.sort((a, b) => {\n const aVal = ('' + a[propName]).toLowerCase();\n const bVal = ('' + b[propName]).toLowerCase();\n if (aVal < bVal) {\n return -1;\n }\n if (aVal > bVal) {\n return 1;\n }\n return 0;\n });\n } else {\n list.sort((a, b) => {\n const aVal = ('' + a).toLowerCase();\n const bVal = ('' + b).toLowerCase();\n if (aVal < bVal) {\n return -1;\n }\n if (aVal > bVal) {\n return 1;\n }\n return 0;\n });\n }\n }\n}\n\nexport class StringHelper {\n static format(text: string, args: string[]): string {\n var retVal = text;\n for (var i = args.length - 1; i >= 0; i--) {\n retVal = retVal.replace(new RegExp('\\\\{' + i + '\\\\}', 'gm'), args[i]);\n }\n return retVal;\n }\n}\n\n@Pipe({ name: 'format' })\nexport class FormatPipe implements PipeTransform {\n transform(value: string, args: string[]): string {\n if (value && args) {\n return StringHelper.format(value, args);\n }\n return '';\n }\n}\n\nexport class TranslateFormatText {\n TranslateText: string;\n FormatParams: string[] = [];\n\n constructor(text: string) {\n this.TranslateText = text;\n }\n}\n","export class AudioHelper {\n static Play(url) {\n let audio = new Audio();\n audio.src = url;\n audio.load();\n audio.play();\n }\n}","import { PipeTransform, Pipe } from '@angular/core';\n\n@Pipe({\n name: 'callback',\n pure: false\n})\nexport class CallbackPipe implements PipeTransform {\n transform(items: any[], callback: (item: any) => boolean): any {\n if (!items || !callback) {\n return items;\n }\n return items.filter(item => callback(item));\n }\n}\n\n@Pipe({\n name: 'enumToArray'\n})\nexport class EnumToArrayPipe implements PipeTransform {\n transform(data: Object) : any {\n let keys = [];\n for (var enumMember in data) {\n var isValueProperty = parseInt(enumMember, 10) >= 0\n if (isValueProperty) {\n keys.push({ key: enumMember, value: data[enumMember] });\n }\n }\n return keys;\n }\n}\n\n\n@Pipe({\n name: 'NavigationVisibility'\n})\nexport class NavigationVisibilityPipe implements PipeTransform {\n transform(data: any[]): any {\n return data.filter((value) => value.SecurityValue);\n }\n}\n\n@Pipe({\n name: 'filtercolumns',\n pure: false\n})\nexport class FilterColumnsPipe implements PipeTransform {\n transform(items: any[]): any {\n if (!items) {\n return items;\n }\n return items.filter(item => item.FetchData);\n }\n}","import { Observable } from 'rxjs';\nimport { InjectorHelper } from '../helpers/injector.helper';\nimport { CapsuleService } from '../services/capsule.service';\n\n// @dynamic\nexport class CapsuleHelper {\n private static CapsuleTags: string[];\n private static _Loaded = false;\n private static _LoadProcess: Observable;\n\n static GetCapsuleTags(): Promise {\n return new Promise((resolve, reject) => {\n if (CapsuleHelper._Loaded) {\n resolve(CapsuleHelper.CapsuleTags);\n } else if (CapsuleHelper._LoadProcess) {\n CapsuleHelper._LoadProcess.subscribe(r => {\n resolve(r);\n });\n } else {\n const service = InjectorHelper.InjectorInstance.get(CapsuleService);\n CapsuleHelper._LoadProcess = service.GetCapsuleTags();\n CapsuleHelper._LoadProcess.subscribe(r => {\n CapsuleHelper._Loaded = true;\n CapsuleHelper._LoadProcess = null;\n CapsuleHelper.CapsuleTags = r;\n resolve(r);\n });\n }\n });\n }\n}\n","import { ChartType } from '../models/enums/charttype.enum';\nimport { SeriesType } from '../models/enums/seriestype.enum';\nimport { ChartSettings, GaugeChartSettings } from '../models/controls/chart.model';\nimport { CacheService } from '../cache/cache.service';\nimport { ThemeHelper } from './theme.helpers';\nimport moment from 'moment';\ndeclare var google: any;\n\nexport class ChartData {\n public static GenerateData(ChartSettings, Data, Styles) {\n if (ChartSettings) {\n if (typeof ChartSettings.ChartType === 'number' && Data && Data.length > 0) {\n const dataTable = [];\n const colCaptions = [];\n const colKeys = [];\n switch (ChartSettings.ChartType) {\n case ChartType.AnnotationChart:\n if (ChartSettings.Series && ChartSettings.Series.length > 0 &&\n ChartData.FillColLists(ChartSettings.AxisColumn, colKeys, colCaptions)) {\n ChartSettings.Series.forEach(x => {\n if (ChartData.FillColLists(x, colKeys, colCaptions)) {\n if (typeof x.AnnotationTitleColumn === 'string') {\n colKeys.push(x.AnnotationTitleColumn);\n colCaptions.push(x.AnnotationTitleColumn);\n } else {\n colKeys.push('');\n colCaptions.push('');\n }\n if (typeof x.AnnotationTextColumn === 'string') {\n colKeys.push(x.AnnotationTextColumn);\n colCaptions.push(x.AnnotationTextColumn);\n } else {\n colKeys.push('');\n colCaptions.push('');\n }\n }\n });\n dataTable.push(colCaptions);\n Data.forEach(x => {\n const row = [];\n let date = x[colKeys[0]];\n if (!(date instanceof Date)) {\n date = new Date(date);\n }\n row.push(date);\n for (let i = 1; i < colKeys.length; i++) {\n row.push(x[colKeys[i]]);\n }\n dataTable.push(row);\n });\n }\n break;\n case ChartType.AreaChart:\n case ChartType.Bar:\n case ChartType.BarChart:\n case ChartType.ColumnChart:\n case ChartType.Line:\n case ChartType.LineChart:\n case ChartType.ScatterChart:\n case ChartType.SteppedAreaChart:\n if (ChartSettings.Series && ChartSettings.Series.length > 0 &&\n ChartData.FillColLists(ChartSettings.AxisColumn, colKeys, colCaptions)) {\n if (Styles) {\n ChartSettings.Series.forEach(x => {\n if (ChartData.FillColLists(x, colKeys, colCaptions)) {\n if (typeof x.StyleKey === 'string') {\n colKeys.push({ key: x.StyleKey });\n colCaptions.push({ role: 'style' });\n }\n if (typeof x.LabelColumn === 'string') {\n colKeys.push(x.LabelColumn);\n colCaptions.push({ role: 'annotation' });\n }\n }\n });\n dataTable.push(colCaptions);\n Data.forEach(x => {\n const row = [];\n colKeys.forEach(k => {\n if (typeof k === 'object') {\n let styleVal = null;\n const styleKey = x[k.key];\n if (styleKey) {\n styleVal = Styles[styleKey];\n }\n row.push(styleVal);\n } else {\n row.push(x[k]);\n }\n });\n dataTable.push(row);\n });\n } else {\n ChartSettings.Series.forEach(x => {\n if (ChartData.FillColLists(x, colKeys, colCaptions)) {\n if (typeof x.LabelColumn === 'string') {\n colKeys.push(x.LabelColumn);\n colCaptions.push({ role: 'annotation' });\n }\n }\n });\n dataTable.push(colCaptions);\n Data.forEach(x => {\n const row = [];\n colKeys.forEach(k => {\n row.push(x[k]);\n });\n dataTable.push(row);\n });\n }\n }\n break;\n case ChartType.Histogram:\n case ChartType.heatmap:\n case ChartType.polarArea:\n case ChartType.radar:\n if (ChartSettings.Series && ChartSettings.Series.length > 0 &&\n ChartData.FillColLists(ChartSettings.AxisColumn, colKeys, colCaptions)) {\n ChartSettings.Series.forEach(x => {\n ChartData.FillColLists(x, colKeys, colCaptions);\n });\n dataTable.push(colCaptions);\n Data.forEach(x => {\n const row = [];\n colKeys.forEach(k => {\n row.push(x[k]);\n });\n dataTable.push(row);\n });\n }\n break;\n case ChartType.ComboChart:\n if (ChartSettings.Series && ChartSettings.Series.length > 0 &&\n ChartData.FillColLists(ChartSettings.AxisColumn, colKeys, colCaptions)) {\n if (Styles) {\n ChartSettings.Series.forEach(x => {\n if (x.Type === SeriesType.candlesticks) {\n if (typeof x.Minimum === 'string' && typeof x.Initial === 'string'\n && typeof x.Final === 'string' && typeof x.Maximum === 'string') {\n colCaptions.push(x.Minimum);\n colCaptions.push(x.Initial);\n colCaptions.push(x.Final);\n colCaptions.push(x.Maximum);\n colKeys.push(x.Minimum);\n colKeys.push(x.Initial);\n colKeys.push(x.Final);\n colKeys.push(x.Maximum);\n if (typeof x.StyleKey === 'string') {\n colKeys.push({ key: x.StyleKey });\n colCaptions.push({ role: 'style' });\n }\n if (typeof x.LabelColumn === 'string') {\n colKeys.push(x.LabelColumn);\n colCaptions.push({ role: 'annotation' });\n }\n }\n } else if (ChartData.FillColLists(x, colKeys, colCaptions)) {\n if (typeof x.StyleKey === 'string') {\n colKeys.push({ key: x.StyleKey });\n colCaptions.push({ role: 'style' });\n }\n if (typeof x.LabelColumn === 'string') {\n colKeys.push(x.LabelColumn);\n colCaptions.push({ role: 'annotation' });\n }\n }\n });\n dataTable.push(colCaptions);\n Data.forEach(x => {\n const row = [];\n colKeys.forEach(k => {\n if (typeof k === 'object') {\n let styleVal = null;\n const styleKey = x[k.key];\n if (styleKey) {\n styleVal = Styles[styleKey];\n }\n row.push(styleVal);\n } else {\n row.push(x[k]);\n }\n });\n dataTable.push(row);\n });\n } else {\n ChartSettings.Series.forEach(x => {\n if (x.Type === SeriesType.candlesticks) {\n if (typeof x.Minimum === 'string' && typeof x.Initial === 'string'\n && typeof x.Final === 'string' && typeof x.Maximum === 'string') {\n colCaptions.push(x.Minimum);\n colCaptions.push(x.Initial);\n colCaptions.push(x.Final);\n colCaptions.push(x.Maximum);\n colKeys.push(x.Minimum);\n colKeys.push(x.Initial);\n colKeys.push(x.Final);\n colKeys.push(x.Maximum);\n if (typeof x.LabelColumn === 'string') {\n colKeys.push(x.LabelColumn);\n colCaptions.push({ role: 'annotation' });\n }\n }\n } else if (ChartData.FillColLists(x, colKeys, colCaptions)) {\n if (typeof x.LabelColumn === 'string') {\n colKeys.push(x.LabelColumn);\n colCaptions.push({ role: 'annotation' });\n }\n }\n });\n dataTable.push(colCaptions);\n Data.forEach(x => {\n const row = [];\n colKeys.forEach(k => {\n row.push(x[k]);\n });\n dataTable.push(row);\n });\n }\n }\n break;\n case ChartType.BubbleChart:\n if (ChartSettings.Series && ChartSettings.Series.length > 0) {\n const bubbleSeries = ChartSettings.Series[0];\n if (typeof bubbleSeries.XValue === 'string' && typeof bubbleSeries.YValue === 'string') {\n if (typeof bubbleSeries.IDColumn === 'string') {\n colKeys.push(bubbleSeries.IDColumn);\n } else {\n colKeys.push('');\n }\n colKeys.push(bubbleSeries.XValue);\n colKeys.push(bubbleSeries.YValue);\n if (typeof bubbleSeries.Grouping === 'string') {\n colKeys.push(bubbleSeries.Grouping);\n if (typeof bubbleSeries.Radius === 'string') {\n colKeys.push(bubbleSeries.Radius);\n }\n } else if (typeof bubbleSeries.Radius === 'string') {\n colKeys.push('');\n colKeys.push(bubbleSeries.Radius);\n }\n dataTable.push(colKeys);\n Data.forEach(x => {\n const row = [];\n colKeys.forEach(k => {\n row.push(x[k]);\n });\n dataTable.push(row);\n });\n }\n }\n break;\n case ChartType.PieChart:\n case ChartType.DonutChart:\n case ChartType.radialBar:\n case ChartType.GeoChart:\n if (ChartSettings.Series && ChartSettings.Series.length > 0 &&\n ChartData.FillColLists(ChartSettings.AxisColumn, colKeys, colCaptions) &&\n ChartData.FillColLists(ChartSettings.Series[0], colKeys, colCaptions)) {\n dataTable.push(colCaptions);\n Data.forEach(x => {\n const row = [];\n colKeys.forEach(k => {\n row.push(x[k]);\n });\n dataTable.push(row);\n });\n }\n break;\n case ChartType.Map:\n if (ChartSettings.Series && ChartSettings.Series.length > 0 &&\n ChartData.FillColLists(ChartSettings.AxisColumn, colKeys, colCaptions) &&\n ChartData.FillColLists(ChartSettings.Series[0], colKeys, colCaptions)) {\n dataTable.push(colCaptions);\n Data.forEach(x => {\n const row = [];\n colKeys.forEach(k => {\n row.push('' + x[k]);\n });\n dataTable.push(row);\n });\n }\n break;\n case ChartType.WordTree:\n if (ChartSettings.Series && ChartSettings.Series.length > 0) {\n const wordTreeSeries = ChartSettings.Series[0];\n if (typeof wordTreeSeries.IDColumn === 'string' && typeof wordTreeSeries.LabelColumn === 'string'\n && typeof wordTreeSeries.ParentID === 'string' && typeof wordTreeSeries.ColumnName === 'string') {\n colKeys.push(...[wordTreeSeries.IDColumn, wordTreeSeries.LabelColumn,\n wordTreeSeries.ParentID, wordTreeSeries.ColumnName]);\n dataTable.push(colKeys);\n const firstRow = Data[0];\n const idType = typeof firstRow[colKeys[0]];\n if (idType === 'number') {\n Data.forEach(x => {\n const row = [];\n colKeys.forEach(k => {\n row.push(x[k]);\n });\n dataTable.push(row);\n });\n } else {\n let index = 0;\n const map = new Map();\n const rows = [];\n Data.forEach(x => {\n const val = x[colKeys[0]];\n let id = map.get(val);\n if (typeof id !== 'number') {\n id = index++;\n map.set(val, id);\n }\n rows.push([id, x[colKeys[1]], -1, x[colKeys[3]]]);\n });\n for (let i = 0; i < rows.length; i++) {\n const val = Data[i][colKeys[2]];\n const id = map.get(val);\n if (typeof id === 'number') {\n rows[i][2] = id;\n }\n }\n dataTable.push(...rows);\n }\n }\n }\n break;\n case ChartType.OrgChart:\n if (ChartSettings.Series && ChartSettings.Series.length > 0) {\n const orgSeries = ChartSettings.Series[0];\n if (typeof orgSeries.IDColumn === 'string') {\n colKeys.push(orgSeries.IDColumn);\n if (typeof orgSeries.ParentID === 'string') {\n colKeys.push(orgSeries.ParentID);\n if (typeof orgSeries.Description === 'string') {\n colKeys.push(orgSeries.Description);\n }\n } else if (typeof orgSeries.Description === 'string') {\n colKeys.push('');\n colKeys.push(orgSeries.Description);\n }\n dataTable.push(colKeys);\n Data.forEach(x => {\n const row = [];\n colKeys.forEach(k => {\n row.push('' + x[k]);\n });\n dataTable.push(row);\n });\n }\n }\n break;\n case ChartType.Gauge:\n if (ChartSettings.Series && ChartSettings.Series.length > 0 &&\n ChartData.FillColLists(ChartSettings.AxisColumn, colKeys, colCaptions) &&\n ChartData.FillColLists(ChartSettings.Series[0], colKeys, colCaptions)) {\n dataTable.push(colCaptions);\n let min = 0;\n let max = 0;\n Data.forEach(x => {\n const row = [x[colKeys[0]]];\n const val = x[colKeys[1]];\n if (val < min) {\n min = val;\n } else if (val > max) {\n max = val;\n }\n row.push(val);\n dataTable.push(row);\n });\n let gauge = ChartSettings.GaugeChartSettings;\n if (!gauge) {\n gauge = new GaugeChartSettings();\n ChartSettings.GaugeChartSettings = gauge;\n }\n gauge.MinValue = min;\n gauge.MaxValue = max;\n }\n\n break;\n case ChartType.TreeMap:\n if (ChartSettings.Series && ChartSettings.Series.length > 0) {\n const treeMapSeries = ChartSettings.Series[0];\n if (typeof treeMapSeries.IDColumn === 'string' && typeof treeMapSeries.ParentID === 'string'\n && typeof treeMapSeries.ColumnName === 'string') {\n if (typeof treeMapSeries.ColorValue === 'string') {\n dataTable.push([treeMapSeries.IDColumn, treeMapSeries.ParentID,\n treeMapSeries.ColumnName, treeMapSeries.ColorValue]);\n Data.forEach(x => {\n let parent = x[treeMapSeries.ParentID];\n if (typeof parent !== 'undefined' && parent != null) {\n parent = '' + parent;\n } else {\n parent = null;\n }\n dataTable.push(['' + x[treeMapSeries.IDColumn], parent,\n x[treeMapSeries.ColumnName], x[treeMapSeries.ColorValue]]);\n });\n } else {\n dataTable.push([treeMapSeries.IDColumn, treeMapSeries.ParentID, treeMapSeries.ColumnName]);\n Data.forEach(x => {\n let parent = x[treeMapSeries.ParentID];\n if (typeof parent !== 'undefined' && parent != null) {\n parent = '' + parent;\n } else {\n parent = null;\n }\n dataTable.push(['' + x[treeMapSeries.IDColumn], parent, x[treeMapSeries.ColumnName]]);\n });\n }\n }\n }\n break;\n case ChartType.Calendar:\n if (ChartSettings.Series && ChartSettings.Series.length > 0 &&\n ChartData.FillColLists(ChartSettings.AxisColumn, colKeys, colCaptions) &&\n ChartData.FillColLists(ChartSettings.Series[0], colKeys, colCaptions)) {\n dataTable.push(colCaptions);\n Data.forEach(x => {\n const row = [];\n let date = x[colKeys[0]];\n if (!(date instanceof Date)) {\n date = new Date(date);\n }\n row.push(date);\n row.push(x[colKeys[1]]);\n dataTable.push(row);\n });\n }\n break;\n case ChartType.Gantt:\n if (ChartSettings.Series && ChartSettings.Series.length > 0) {\n const ganttSeries = ChartSettings.Series[0];\n if (typeof ganttSeries.TaskID === 'string' && typeof ganttSeries.TaskName === 'string'\n && typeof ganttSeries.Completed === 'string') {\n const colKeys = [ganttSeries.TaskID, ganttSeries.TaskName];\n let resource = ganttSeries.Grouping;\n if (typeof resource === 'string') {\n colKeys.push(resource);\n } else {\n resource = '';\n colKeys.push('Resource ID');\n }\n let start = ganttSeries.StartValue;\n if (typeof start === 'string') {\n colKeys.push(start);\n } else {\n start = '';\n colKeys.push('Start');\n }\n let end = ganttSeries.EndValue;\n if (typeof end === 'string') {\n colKeys.push(end);\n } else {\n end = '';\n colKeys.push('End');\n }\n let duration = ganttSeries.Duration;\n if (typeof duration === 'string') {\n colKeys.push(duration);\n } else {\n duration = '';\n colKeys.push('Duration');\n }\n colKeys.push(ganttSeries.Completed);\n let dependencies = ganttSeries.Dependency;\n if (typeof dependencies === 'string') {\n colKeys.push(dependencies);\n } else {\n dependencies = '';\n colKeys.push('dependencies');\n }\n dataTable.push(colKeys);\n Data.forEach(x => {\n const row = [x[ganttSeries.TaskID], x[ganttSeries.TaskName]];\n const resVal = x[resource];\n if (typeof resVal === 'string') {\n row.push(resVal);\n } else {\n row.push(null);\n }\n let startVal = x[start];\n if (!(startVal instanceof Date)) {\n startVal = new Date(startVal);\n }\n if (isNaN(startVal.getTime())) {\n row.push(null);\n } else {\n row.push(startVal);\n }\n let endVal = x[end];\n if (!(endVal instanceof Date)) {\n endVal = new Date(endVal);\n }\n if (isNaN(endVal.getTime())) {\n row.push(null);\n } else {\n row.push(endVal);\n }\n const durationVal = x[duration];\n if (typeof durationVal === 'number') {\n row.push(durationVal);\n } else {\n row.push(null);\n }\n row.push(x[ganttSeries.Completed]);\n const depVal = x[dependencies];\n if (typeof depVal === 'string') {\n row.push(depVal);\n } else {\n row.push(null);\n }\n dataTable.push(row);\n });\n }\n }\n break;\n case ChartType.Timeline:\n if (ChartSettings.Series && ChartSettings.Series.length > 0) {\n const timelineSeries = ChartSettings.Series[0];\n if (typeof timelineSeries.ColumnName === 'string' && typeof timelineSeries.StartValue === 'string'\n && typeof timelineSeries.EndValue === 'string') {\n if (typeof timelineSeries.LabelColumn === 'string') {\n const colKeys = [timelineSeries.ColumnName, timelineSeries.LabelColumn,\n timelineSeries.StartValue, timelineSeries.EndValue];\n dataTable.push(colKeys);\n Data.forEach(x => {\n const row = [x[timelineSeries.ColumnName], x[colKeys[1]]];\n let startDate = x[timelineSeries.StartValue];\n if (!(startDate instanceof Date)) {\n startDate = new Date(startDate);\n }\n row.push(startDate);\n let endDate = x[timelineSeries.EndValue];\n if (!(endDate instanceof Date)) {\n endDate = new Date(endDate);\n }\n row.push(endDate);\n dataTable.push(row);\n });\n } else {\n const colKeys = [timelineSeries.ColumnName, timelineSeries.StartValue, timelineSeries.EndValue];\n dataTable.push(colKeys);\n Data.forEach(x => {\n const row = [x[timelineSeries.ColumnName]];\n let startDate = x[timelineSeries.StartValue];\n if (!(startDate instanceof Date)) {\n startDate = new Date(startDate);\n }\n row.push(startDate);\n let endDate = x[timelineSeries.EndValue];\n if (!(endDate instanceof Date)) {\n endDate = new Date(endDate);\n }\n row.push(endDate);\n dataTable.push(row);\n });\n }\n }\n }\n break;\n case ChartType.CandlestickChart:\n if (ChartSettings.Series && ChartSettings.Series.length > 0 &&\n ChartData.FillColLists(ChartSettings.AxisColumn, colKeys, colCaptions)) {\n const correctSeries = [];\n let showTotal = false;\n ChartSettings.Series.forEach(x => {\n if (typeof x.Minimum === 'string' && typeof x.Initial === 'string'\n && typeof x.Final === 'string' && typeof x.Maximum === 'string') {\n const seriesDescription = {\n Min: x.Minimum,\n Init: x.Initial,\n Fin: x.Final,\n Max: x.Maximum,\n HasStyleKey: typeof x.StyleKey === 'string' && Styles,\n StyleKey: x.StyleKey,\n HasLabel: typeof x.LabelColumn === 'string',\n Label: x.LabelColumn,\n MinMin: Number.MAX_VALUE,\n MinInit: Number.MAX_VALUE,\n MaxFinal: Number.MIN_VALUE,\n MaxMax: Number.MIN_VALUE,\n ShowTotal: x.ShowTotal == true\n };\n correctSeries.push(seriesDescription);\n colCaptions.push(x.Minimum);\n colCaptions.push(x.Initial);\n colCaptions.push(x.Final);\n colCaptions.push(x.Maximum);\n if (seriesDescription.HasStyleKey) {\n colCaptions.push({ role: 'style' });\n }\n if (seriesDescription.HasLabel) {\n colCaptions.push({ role: 'annotation' });\n }\n if (seriesDescription.ShowTotal) {\n showTotal = true;\n }\n }\n });\n dataTable.push(colCaptions);\n if (correctSeries.length > 0) {\n let formatter;\n if (showTotal && google && google.visualization) {\n if (ChartSettings.LabelAxis && typeof ChartSettings.LabelAxis.Format == 'string' && ChartSettings.LabelAxis.Format) {\n formatter = new google.visualization.DateFormat({ pattern: ChartSettings.LabelAxis.Format });\n } else {\n formatter = new google.visualization.DateFormat();\n }\n }\n Data.forEach(x => {\n const row = [];\n let axisValue = x[colKeys[0]];\n if (showTotal) {\n if (axisValue instanceof Date) {\n if (formatter) {\n axisValue = formatter.formatValue(axisValue);\n } else {\n axisValue = moment(axisValue).format();\n }\n }\n row.push('' + axisValue); // AxisValue\n } else {\n row.push(axisValue);\n }\n correctSeries.forEach(actSeries => {\n const actMin = x[actSeries.Min];\n if (actMin < actSeries.MinMin) {\n actSeries.MinMin = actMin;\n }\n row.push(actMin);\n const actInit = x[actSeries.Init];\n if (actInit < actSeries.MinInit) {\n actSeries.MinInit = actInit;\n }\n row.push(actInit);\n const actFin = x[actSeries.Fin];\n if (actFin > actSeries.MaxFinal) {\n actSeries.MaxFinal = actFin;\n }\n row.push(actFin);\n const actMax = x[actSeries.Fin];\n if (actMax > actSeries.MaxMax) {\n actSeries.MaxMax = actMax;\n }\n row.push(actMax);\n if (actSeries.HasStyleKey) {\n let styleVal = null;\n const styleKey = x[actSeries.StyleKey];\n if (styleKey) {\n styleVal = Styles[styleKey];\n }\n row.push(styleVal);\n }\n if (actSeries.HasLabel) {\n row.push(x[actSeries.Label]);\n }\n });\n dataTable.push(row);\n });\n if (showTotal) {\n const row = [];\n row.push('Total'); // AxisValue\n correctSeries.forEach(actSeries => {\n if (actSeries.ShowTotal) {\n row.push(actSeries.MinMin);\n row.push(actSeries.MinInit);\n row.push(actSeries.MaxFinal);\n row.push(actSeries.MaxMax);\n if (actSeries.HasStyleKey) {\n row.push(null);\n }\n if (actSeries.HasLabel) {\n row.push(null);\n }\n } else {\n row.push(null);\n row.push(null);\n row.push(null);\n row.push(null);\n if (actSeries.HasStyleKey) {\n row.push(null);\n }\n if (actSeries.HasLabel) {\n row.push(null);\n }\n }\n });\n dataTable.push(row);\n }\n }\n }\n break;\n case ChartType.Sunburst:\n return Data;\n break;\n }\n return dataTable;\n }\n }\n }\n\n private static FillColLists(col, keys: string[], captions: string[]): boolean {\n if (col && typeof col.ColumnName === 'string') {\n captions.push(col.ColumnName);\n if (typeof col.ColumnKey === 'string') {\n keys.push(col.ColumnKey);\n } else {\n keys.push(col.ColumnName);\n }\n return true;\n }\n return false;\n }\n\n public static GetPalette(settings: ChartSettings) {\n return new Promise(resolve => {\n if (settings) {\n if (settings.ChartPalette) {\n CacheService.ReadChartPaletteValues(settings.ChartPalette).then(x => {\n if (x && x.length > 0) {\n resolve(x)\n } else if (settings.SeriesColors && settings.SeriesColors.length > 0) {\n resolve(settings.SeriesColors);\n } else if (ThemeHelper.ActiveThemeChartPalette && ThemeHelper.ActiveThemeChartPalette.length > 0) {\n resolve(ThemeHelper.ActiveThemeChartPalette);\n } else {\n resolve(null);\n }\n });\n } else if (settings.SeriesColors && settings.SeriesColors.length > 0) {\n resolve(settings.SeriesColors);\n } else if (ThemeHelper.ActiveThemeChartPalette && ThemeHelper.ActiveThemeChartPalette.length > 0) {\n resolve(ThemeHelper.ActiveThemeChartPalette);\n } else {\n resolve(null);\n }\n } else {\n resolve(null);\n }\n });\n }\n}\n","import { Directive, Input, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[appClickOutside]'\n})\nexport class ClickOutsideDirective {\n @Input() clickOutsideFunction: Function; // Input to receive the function to be executed\n\n constructor(private elementRef: ElementRef) {}\n\n @HostListener('document:click', ['$event'])\n public onClick(event: Event): void {\n const clickedInside = this.elementRef.nativeElement.contains(event.target);\n if (!clickedInside) {\n if (this.clickOutsideFunction) {\n console.log('click',this.clickOutsideFunction);\n this.clickOutsideFunction(); // Execute the provided function\n }\n }\n }\n}\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[click-stop-propagation]'\n})\nexport class ClickStopPropagation {\n @HostListener('click', ['$event'])\n public onClick(event: any): void {\n event.stopPropagation();\n }\n}\n\nexport class MenuKeyDownHelper {\n static onKeyDown(event: any): void {\n if (event && event.key !== 'Escape') {\n event.stopPropagation();\n }\n }\n}\n","import { UUID } from 'angular2-uuid';\nimport { BehaviorSubject } from 'rxjs';\n\nexport class ClientHelper {\n public static ClientID = UUID.UUID();\n public static StartUpCompleted: BehaviorSubject = new BehaviorSubject(false);\n}\n","import { Subject } from \"rxjs\";\nimport { ViewType } from \"../models/enums/viewtype.enum\";\nimport { LayoutService } from \"../services/layout.service\";\nimport { NotificationHelper } from \"./notification.helper\";\n\nexport class ClipboardHelper {\n public static Inititalized = false;\n public static Init() {\n if (navigator && navigator.permissions) {\n const perm: any = { name: \"clipboard-read\" };\n navigator.permissions.query(perm).then((result) => {\n // If permission to read the clipboard is granted or if the user will\n // be prompted to allow it, we proceed.\n\n if (result.state == \"granted\" ) {\n ClipboardHelper.Inititalized = true;\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState === 'visible') {\n ClipboardHelper.Refresh();\n }\n })\n LayoutService.ViewType.subscribe((value) => {\n if (value == ViewType.Edit) {\n ClipboardHelper.Refresh();\n }\n })\n ClipboardHelper.Refresh();\n LayoutService.SelectedItem.subscribe((value) => {\n ClipboardHelper.Refresh();\n });\n }\n // else if (result.state == \"prompt\") {\n // NotificationHelper.Info(\"Clipboard permission\", \"Please allow clipboard access to use the clipboard feature.\");\n // }\n });\n }\n }\n private static ReadContent(data) {\n if (data != ClipboardHelper.RawContent) {\n if (data && data.startsWith(\"{\")) {\n ClipboardHelper.CopyToClipboard(JSON.parse(data));\n }\n }\n }\n public static Refresh() {\n try {\n if (document.hasFocus()) {\n navigator.clipboard.readText().then((data) => {\n ClipboardHelper.ReadContent(data);\n });\n } else {\n ClipboardHelper.ReadContent(null);\n }\n } catch {\n ClipboardHelper.ReadContent(null);\n }\n }\n\n public static ClipboardContent = null;\n private static RawContent = null;\n public static ClipboardChanged = new Subject();\n\n public static SetClipboard(data) {\n if (data != ClipboardHelper.RawContent) {\n ClipboardHelper.RawContent = JSON.stringify(data);\n ClipboardHelper.ClipboardContent = data;\n ClipboardHelper.ClipboardChanged.next(ClipboardHelper.ClipboardContent);\n }\n }\n public static CopyToClipboard(data) {\n if (data != ClipboardHelper.RawContent) {\n ClipboardHelper.RawContent = JSON.stringify(data);\n ClipboardHelper.ClipboardContent = data;\n if (document.hasFocus()) {\n navigator.clipboard.writeText(ClipboardHelper.RawContent).then(() => {\n ClipboardHelper.ClipboardChanged.next(ClipboardHelper.ClipboardContent);\n }).catch((err) => { \n NotificationHelper.Error(\"@@Unable to copy to clipboard.\",\"@@Clipboard error\");\n });\n }\n }\n }\n}","import { deserialize, serialize } from 'class-transformer';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { MessageType } from '../models/enums/messagetype.enum';\nimport { NotificationLevel } from '../models/enums/notificationlevel.enum';\nimport { CollaborationService } from '../services/collaboration.service';\nimport { NavigationService } from '../services/navigation.service';\nimport { UsersService } from '../services/users.service';\nimport { WebsocketService, WebsocketSubscription } from '../services/websocket.service';\nimport { InjectorHelper, TranslateHelper } from './injector.helper';\nimport { NotificationHelper } from './notification.helper';\n\nexport const COLLABORATIONCHANNEL = 'CollaborationChannel';\n\nexport class CollaborationSettings {\n ShowNotifications = true;\n ShowSaveMessage = true;\n}\n\nexport class CollaborationHelper {\n private static Service: CollaborationService;\n private static ChatMessages = {};\n private static ActiveUsers = {};\n private static CheckoutState = {};\n private static ChatSubscriptions = {};\n private static ActiveSubscriptionChannel: string;\n private static CachedActiveChannel: string;\n\n public static ActiveChannel = new BehaviorSubject(null);\n public static ActualActiveUsers = new BehaviorSubject(null);\n public static ActualChatMessages = new BehaviorSubject(null);\n public static ActualCheckOutUser = new BehaviorSubject(null);\n public static NewMessage = new Subject();\n public static ForcedCheckout = new Subject();\n public static Settings = new BehaviorSubject(new CollaborationSettings());\n\n public static Init() {\n WebsocketService.Active.subscribe((val) => {\n if (val === true && !CollaborationHelper.Service) {\n CollaborationHelper.Service = InjectorHelper.InjectorInstance.get(CollaborationService);\n WebsocketService.MessageReceived.subscribe((response) => {\n const parsed = JSON.parse(response);\n if (parsed.Level === NotificationLevel.System) {\n if (parsed.Type === 'evidanza.App.Shared.Collaboration.SubscriptionInfo') {\n const content = JSON.parse(parsed.Content);\n if (content.Channel) {\n CollaborationHelper.ActiveUsers[content.Channel] = content.Users;\n if (content.Channel === CollaborationHelper.ActiveChannel.getValue()) {\n const user = UsersService.ActiveUser.getValue();\n if (user) {\n CollaborationHelper.ActualActiveUsers.next(content.Users.filter(x => x.ID !== user.SID));\n } else {\n CollaborationHelper.ActualActiveUsers.next([...content.Users]);\n }\n }\n }\n } else if (parsed.Type === 'evidanza.App.Shared.Collaboration.CheckOutInfo') {\n const content = JSON.parse(parsed.Content);\n if (content.Channel) {\n const oldUser = CollaborationHelper.CheckoutState[content.Channel];\n CollaborationHelper.CheckoutState[content.Channel] = content.User;\n if (content.Channel === CollaborationHelper.ActiveChannel.getValue()) {\n CollaborationHelper.ActualCheckOutUser.next(content.User);\n if (content.ForceCheckOut && content.User && oldUser) {\n const user = UsersService.ActiveUser.getValue();\n if (user && user.SID === oldUser.ID && user.SID !== content.User.ID) {\n CollaborationHelper.ForcedCheckout.next(content.User);\n }\n }\n }\n }\n }\n }\n });\n WebsocketService.Subscribe([{ Channel: COLLABORATIONCHANNEL, Level: [0] }]);\n UsersService.BeforeLogout.subscribe(() => {\n CollaborationHelper.ChangeActiveSubscription(false);\n CollaborationHelper.ActiveSubscriptionChannel = null;\n CollaborationHelper.SetActiveChannel(null);\n CollaborationHelper.ChatMessages = {};\n CollaborationHelper.UnsubscribeAll();\n });\n NavigationService.BeforeUnload.subscribe((closePrevented) => {\n if (closePrevented) {\n CollaborationHelper.ChangeActiveSubscription(false);\n } else if (CollaborationHelper.Service && CollaborationHelper.ActiveSubscriptionChannel) {\n CollaborationHelper.Service.TrySendUnsubscribe(CollaborationHelper.ActiveSubscriptionChannel);\n }\n });\n NavigationService.CancelUnload.subscribe(() => {\n CollaborationHelper.ChangeActiveSubscription(true);\n });\n NavigationService.OnUnload.subscribe(() => CollaborationHelper.UnsubscribeAll());\n\n const settingsJSON = localStorage.getItem('CollaborationSettings');\n if (settingsJSON) {\n CollaborationHelper.Settings.next(deserialize(CollaborationSettings, settingsJSON));\n }\n if (CollaborationHelper.CachedActiveChannel) {\n CollaborationHelper.SetActiveChannel(CollaborationHelper.CachedActiveChannel);\n CollaborationHelper.CachedActiveChannel = null;\n }\n }\n });\n }\n\n private static ChangeActiveSubscription(subscribe: boolean) {\n if (CollaborationHelper.Service && CollaborationHelper.ActiveSubscriptionChannel) {\n CollaborationHelper.Service.SendSubscription({\n Subscribe: subscribe,\n Channel: CollaborationHelper.ActiveSubscriptionChannel\n }).subscribe();\n }\n }\n\n private static UnsubscribeAll() {\n const keys = Object.keys(CollaborationHelper.ChatSubscriptions);\n keys.forEach(x => {\n const sub = CollaborationHelper.ChatSubscriptions[x];\n if (sub) {\n sub.Unsubscribe();\n }\n });\n CollaborationHelper.ChatSubscriptions = {};\n }\n\n public static SendMessage(message: string) {\n if (message) {\n const channel = CollaborationHelper.ActiveChannel.getValue();\n if (channel) {\n const user = UsersService.ActiveUser.getValue();\n if (user) {\n WebsocketSubscription.SendNotification(CollaborationHelper.CheckChannel(channel), 'ChatMessage', {\n MessageTime: new Date(),\n Message: message,\n Sender: user.DisplayName,\n SenderID: user.SID,\n Channel: channel\n });\n }\n }\n }\n }\n\n public static SetActiveChannel(channel: string) {\n if (CollaborationHelper.Service) {\n if (CollaborationHelper.ActiveChannel.getValue() !== channel) {\n if (channel) {\n let activeUsers = CollaborationHelper.ActiveUsers[channel];\n const checkOutUser = CollaborationHelper.CheckoutState[channel];\n if (activeUsers && checkOutUser) {\n CollaborationHelper.ActiveChannel.next(channel);\n const messages = [];\n const chatMessages = CollaborationHelper.ChatMessages[channel];\n if (chatMessages) {\n messages.push(...chatMessages);\n }\n const user = UsersService.ActiveUser.getValue();\n if (user) {\n activeUsers = activeUsers.filter(x => x.ID !== user.SID);\n }\n CollaborationHelper.ActualChatMessages.next(messages);\n CollaborationHelper.ActualActiveUsers.next([...activeUsers]);\n CollaborationHelper.ActualCheckOutUser.next(checkOutUser);\n } else {\n CollaborationHelper.Service.GetChannelInfo(channel).subscribe(ci => {\n if (ci) {\n CollaborationHelper.ActiveUsers[channel] = ci.Users;\n CollaborationHelper.CheckoutState[channel] = ci.CheckOutUser;\n CollaborationHelper.ActiveChannel.next(channel);\n const messages = [];\n const chatMessages = CollaborationHelper.ChatMessages[channel];\n if (chatMessages) {\n messages.push(...chatMessages);\n }\n let actualActive = [...ci.Users];\n const user = UsersService.ActiveUser.getValue();\n if (user) {\n actualActive = ci.Users.filter(x => x.ID !== user.SID);\n }\n CollaborationHelper.ActualChatMessages.next(messages);\n CollaborationHelper.ActualActiveUsers.next(actualActive);\n CollaborationHelper.ActualCheckOutUser.next(ci.CheckOutUser);\n } else {\n delete CollaborationHelper.ActiveUsers[channel];\n delete CollaborationHelper.CheckoutState[channel];\n CollaborationHelper.ActiveChannel.next(null);\n CollaborationHelper.ActualChatMessages.next(null);\n CollaborationHelper.ActualActiveUsers.next(null);\n CollaborationHelper.ActualCheckOutUser.next(null);\n }\n });\n }\n } else {\n CollaborationHelper.ActiveChannel.next(null);\n CollaborationHelper.ActualChatMessages.next(null);\n CollaborationHelper.ActualActiveUsers.next(null);\n CollaborationHelper.ActualCheckOutUser.next(null);\n }\n }\n } else {\n CollaborationHelper.CachedActiveChannel = channel;\n }\n }\n\n private static CheckChannel(channel: string): string {\n if (channel) {\n if (channel[0] === '/') {\n if (channel.length === 1) {\n channel = '$$emptychannel$$';\n } else {\n channel = channel.substring(1);\n }\n }\n return channel.replace(/\\//g, '_');\n }\n return channel;\n }\n\n public static Subscribe(channel: string, subscribe: boolean) {\n if (CollaborationHelper.Service && channel) {\n if (subscribe) {\n CollaborationHelper.ChatSubscriptions[channel] = new WebsocketSubscription(CollaborationHelper.CheckChannel(channel), 'ChatMessage', (m) => {\n const content = JSON.parse(m);\n if (content.Channel) {\n let messageList = CollaborationHelper.ChatMessages[content.Channel];\n if (!messageList) {\n messageList = [];\n CollaborationHelper.ChatMessages[content.Channel] = messageList;\n }\n const actUser = UsersService.ActiveUser.getValue();\n content.OwnMessage = actUser && actUser.SID === content.SenderID;\n const date = new Date(content.MessageTime);\n content.MessageTimeText = date.toLocaleDateString(undefined, {\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric'\n });\n messageList.push(content);\n if (content.Channel === CollaborationHelper.ActiveChannel.getValue()) {\n CollaborationHelper.ActualChatMessages.next([...messageList]);\n }\n CollaborationHelper.NewMessage.next(content.Channel);\n if (!content.OwnMessage) {\n const settings = CollaborationHelper.Settings.getValue();\n if (!settings || settings.ShowNotifications) {\n TranslateHelper.TranslatorInstance.get('@@{0} schreibt', { 0: content.Sender }).subscribe(x => {\n NotificationHelper.Send(MessageType.Information, x, content.Message, false);\n });\n }\n }\n }\n });\n\n CollaborationHelper.ActiveSubscriptionChannel = channel;\n } else {\n const sub = CollaborationHelper.ChatSubscriptions[channel];\n if (sub) {\n sub.Unsubscribe();\n }\n CollaborationHelper.ActiveSubscriptionChannel = null;\n }\n CollaborationHelper.Service.SendSubscription({\n Subscribe: subscribe,\n Channel: channel\n }).subscribe();\n }\n }\n\n public static CheckOut(checkOut: boolean, forceCheckOut: boolean) {\n if (CollaborationHelper.Service) {\n const channel = CollaborationHelper.ActiveChannel.getValue();\n if (channel) {\n CollaborationHelper.Service.SendCheckOut({\n DoCheckOut: checkOut,\n ForceCheckOut: forceCheckOut,\n Channel: channel\n }).subscribe();\n }\n }\n }\n\n public static UpdateSettings(prop: string, val) {\n let settings = CollaborationHelper.Settings.getValue();\n if (!settings) {\n settings = new CollaborationSettings();\n }\n settings[prop] = val;\n CollaborationHelper.Settings.next(settings);\n localStorage.setItem('CollaborationSettings', serialize(settings));\n }\n\n public static GetActiveUserNames(channel) {\n const retVal = [];\n const users = CollaborationHelper.ActiveUsers[channel];\n if (users) {\n users.forEach(x => {\n retVal.push(x.Name);\n });\n }\n return retVal;\n }\n}\n","import { BaseDialog } from \"../components/dialogs/basedialog/base.dialog\";\nimport { DataSettingsService } from \"../services/data.settings.service\";\nimport { ContainerPathChooserDialog } from \"../settings/datamodel/dialogs/containerpath.chooser.dialog\";\nimport { DataCheck } from \"../workflow/workflow.dialog\";\nimport { InjectorHelper, TranslateHelper } from \"./injector.helper\";\n\nexport class ContainerPathHelper {\n\n static async checkPathsForPathObject(containers, pathObject, containerTables) {\n var retVal = new DataCheck();\n // Pr�fen, ob Pfad bereits gesetzt\n var pathsSet = false;\n if (pathObject.Paths && pathObject.Paths.length == containers.length - 1) {\n var contCopy = containers.concat([]);\n var actCont = pathObject.Paths[0].FromContainer;\n var found = false;\n for (var i = 0; i < contCopy.length; i++) {\n if (contCopy[i].SID == actCont) {\n contCopy.splice(i, 1);\n found = true;\n break;\n }\n }\n if (found) {\n for (var j = 0; j < pathObject.Paths.length; j++) {\n found = false;\n if (pathObject.Paths[j].FromContainer == actCont) {\n actCont = pathObject.Paths[j].ToContainer;\n for (var i = 0; i < contCopy.length; i++) {\n if (contCopy[i].SID == actCont) {\n contCopy.splice(i, 1);\n found = true;\n break;\n }\n }\n } else {\n break;\n }\n }\n if (found) {\n pathsSet = true;\n }\n }\n }\n if (!pathsSet) {\n const service = InjectorHelper.InjectorInstance.get(DataSettingsService);\n var relations = await service.GetAllRelations(pathObject.DataModelID).toPromise();\n try {\n let containerList = [];\n containers.forEach(function (c) {\n containerList.push(c.SID);\n });\n let pathCheck = ContainerPathHelper.GetAllPaths(containerList, relations);\n if (pathCheck.NoPathsFound.length > 0) {\n var noPaths = [];\n pathCheck.NoPathsFound.forEach(function (npf) {\n var path = npf;\n containerTables.some(function (cl) {\n if (cl.SID == npf) {\n path = cl.Caption;\n return true;\n }\n return false;\n });\n noPaths.push(path);\n });\n retVal.IsCorrect = false;\n retVal.Error = TranslateHelper.TranslatorInstance.instant('@@Kein Pfad gefunden fuer folgende Attributspalten:') + '\\n' + noPaths.join(', ');\n } else if (pathCheck.PossiblePathLists.length == 0) {\n retVal.IsCorrect = false;\n retVal.Error = TranslateHelper.TranslatorInstance.instant('@@Keine moeglicher Pfad zwischen allen Attributspalten');\n } else if (pathCheck.PossiblePathLists.length == 1) {\n // Pfad setzen\n pathObject.Paths = pathCheck.PossiblePathLists[0];\n } else {\n // Pfad w�hlen\n retVal.IsCorrect = false;\n retVal.Error = TranslateHelper.TranslatorInstance.instant('@@Bitte waehlen Sie einen passenden Pfad.');\n var args = {\n Paths: [],\n Fields: containers,\n Relations: relations,\n Containers: containerTables\n };\n pathCheck.PossiblePathLists.forEach(function (p) {\n args.Paths.push({\n PathList: p\n });\n });\n BaseDialog.ShowDialog({\n ContentType: ContainerPathChooserDialog,\n InitArgs: args,\n Title: '@@Pfad waehlen',\n Handler: function (p) {\n if (p) {\n pathObject.Paths = p;\n }\n }\n });\n }\n } catch (e) {\n retVal.IsCorrect = false;\n retVal.Error = TranslateHelper.TranslatorInstance.instant('@@Fehler beim Finden der Pfade zwischen den Attributspalten') + ' (' + e.message + ')';\n }\n }\n return retVal;\n }\n\n static GetAllPaths(containerIDs: string[], relations: any[]) {\n var retVal = {\n NoPathsFound: [],\n PossiblePathLists: []\n };\n if (containerIDs && containerIDs.length > 1 && relations && relations.length > 0) {\n var containerPaths = new Map();\n for (var i = 0; i < containerIDs.length - 1; i++) {\n var firstCont = containerIDs[i];\n var mapEntry = containerPaths.get(firstCont);\n if (!mapEntry) {\n mapEntry = new Map();\n }\n for (var j = i + 1; j < containerIDs.length; j++) {\n var secCont = containerIDs[j];\n var paths = ContainerPathHelper.FindRelationPath(firstCont, secCont, relations, [], [firstCont]);\n if (paths.length > 0) {\n mapEntry.set(secCont, paths);\n var reverseMap = containerPaths.get(secCont);\n if (!reverseMap) {\n reverseMap = new Map();\n containerPaths.set(secCont, reverseMap);\n }\n var outerList = [];\n paths.forEach(function (path) {\n var innerList = [];\n path.forEach(function (p) {\n innerList.splice(0, 0, p);\n });\n outerList.push(innerList);\n });\n reverseMap.set(firstCont, outerList);\n }\n }\n if (mapEntry.size == 0) {\n retVal.NoPathsFound.push(firstCont);\n } else {\n containerPaths.set(firstCont, mapEntry);\n }\n }\n if (retVal.NoPathsFound.length == 0) {\n // Wenn f�r alle Container mindestens 1 Pfad gefunden wurden, versuchen alle Ketten zu bilden\n containerPaths.forEach(function (v, k) {\n ContainerPathHelper.FindAllPaths([k], containerPaths, containerIDs.length, function (path) {\n retVal.PossiblePathLists = retVal.PossiblePathLists.concat(ContainerPathHelper.FillPaths(0, path, containerPaths));\n });\n });\n }\n }\n return retVal;\n }\n\n private static FindRelationPath(firstCont, targetCont, relations: any[], usedRels: string[], usedConts: string[]): any[] {\n var retVal = [];\n relations.forEach(function (rel) {\n if (!usedRels.some(function (r) { return r == rel.SID; })) {\n if (rel.PrimaryContainer == firstCont) {\n if (rel.SecondaryContainer == targetCont) {\n retVal.push([rel.SID]);\n } else if (!usedConts.some(function (c) { return c == rel.SecondaryContainer; })) {\n var pathLists = ContainerPathHelper.FindRelationPath(rel.SecondaryContainer, targetCont, relations, usedRels.concat([rel.SID]), usedConts.concat([rel.SecondaryContainer]));\n pathLists.forEach(function (path) {\n if (path.some(function (p) { return p == rel.SID; })) {\n throw 'Circle between container relations';\n }\n retVal.push([rel.SID].concat(path));\n });\n }\n } else if (rel.SecondaryContainer == firstCont) {\n if (rel.PrimaryContainer == targetCont) {\n retVal.push([rel.SID]);\n } else if (!usedConts.some(function (c) { return c == rel.PrimaryContainer; })) {\n var pathLists = ContainerPathHelper.FindRelationPath(rel.PrimaryContainer, targetCont, relations, usedRels.concat([rel.SID]), usedConts.concat([rel.PrimaryContainer]));\n pathLists.forEach(function (path) {\n if (path.some(function (p) { return p == rel.SID; })) {\n throw 'Circle between container relations';\n }\n retVal.push([rel.SID].concat(path));\n });\n }\n }\n }\n });\n return retVal;\n }\n\n private static FindAllPaths(actPath, dict, length, setFull) {\n var actCont = actPath[actPath.length - 1];\n var dictEntry = dict.get(actCont);\n dictEntry.forEach(function (v, k) {\n if (!actPath.some(function (p) { return p == k; })) {\n var newPath = actPath.concat([k]);\n if (newPath.length == length) {\n setFull(newPath);\n } else {\n ContainerPathHelper.FindAllPaths(newPath, dict, length, setFull);\n }\n }\n });\n }\n\n private static FillPaths(index, pathList, dict): any[] {\n var retVal = [];\n var from = pathList[index];\n var to = pathList[index + 1];\n var innerDict = dict.get(from);\n var list = innerDict.get(to);\n if (index == pathList.length - 2) {\n list.forEach(function (entry) {\n retVal.push([{\n FromContainer: from,\n ToContainer: to,\n Path: entry\n }]);\n });\n } else {\n var nextList = ContainerPathHelper.FillPaths(index + 1, pathList, dict);\n list.forEach(function (entry) {\n nextList.forEach(function (next) {\n retVal.push([{\n FromContainer: from,\n ToContainer: to,\n Path: entry\n }].concat(next));\n });\n });\n }\n return retVal;\n }\n\n static GetExcelColumnName(columnNumber: number): string {\n let retVal = '';\n let modulo;\n while (columnNumber > 0) {\n modulo = (columnNumber - 1) % 26;\n retVal = String.fromCharCode(modulo + 65) + retVal;\n columnNumber = Math.floor((columnNumber - modulo) / 26);\n }\n return retVal;\n }\n}","export class ContainerTableHelper {\n static CheckTableAndFieldNames(containerTable): TableNameCheck {\n let retVal = new TableNameCheck();\n // TODO: Auf Tabellennamen und Feldnamen checken\n return retVal;\n }\n}\n\nexport class TableNameCheck {\n InvalidTableName: boolean = false;\n InvalidColumnNames: string[] = [];\n}","import cronstrue from 'cronstrue';\nimport { TranslateHelper } from './injector.helper';\n\nexport class CronHelper {\n\n static GetCronObject(val: string): CronObject {\n let cr = new CronObject();\n if (val && val != '') {\n var splits = val.split(' ');\n cr.Seconds = splits[0];\n cr.SecondsCorrect = CronHelper.IsValidMinOrSecValue(cr.Seconds);\n if (splits.length > 1) {\n cr.Minutes = splits[1];\n cr.MinutesCorrect = CronHelper.IsValidMinOrSecValue(cr.Minutes);\n if (splits.length > 2) {\n cr.Hours = splits[2];\n cr.HoursCorrect = CronHelper.IsValidHourValue(cr.Hours);\n if (splits.length > 3) {\n cr.DayOfMonth = splits[3];\n cr.DayOfMonthCorrect = CronHelper.IsValidDOMValue(cr.DayOfMonth);\n if (splits.length > 4) {\n cr.Month = splits[4];\n cr.MonthCorrect = CronHelper.IsValidMonthValue(cr.Month);\n if (splits.length > 5) {\n cr.DayOfWeek = splits[5];\n cr.DayOfWeekCorrect = CronHelper.IsValidDOWValue(cr.DayOfWeek);\n if (splits.length > 6) {\n cr.Year = splits[6];\n cr.YearCorrect = CronHelper.IsValidYearValue(cr.Year);\n }\n }\n }\n }\n }\n }\n }\n return cr;\n }\n\n static IsValidMinOrSecValue(val: string): boolean {\n return CronHelper.IsValidMinOrSecValueInternal(val, true);\n }\n\n private static IsValidMinOrSecValueInternal(val: string, checkForStar: boolean): boolean {\n if (val.length > 0) {\n if (val.length > 1) {\n if (val.length > 2) {\n // Laenge > 2 -> Muss '/', '-' oder ',' enthalten\n // Erst nach Komma splitten\n var splits = val.split(',');\n if (splits.length > 1) {\n var retVal = true;\n splits.some(function (s) {\n if (!CronHelper.IsValidMinOrSecValueInternal(s, false)) {\n retVal = false;\n }\n return !retVal;\n });\n return retVal;\n } else {\n splits = val.split('/');\n if (splits.length > 1) {\n // Enthaelt '/' -> von/bis oder Zahl + Zahl zw 0 und 59\n if (splits.length == 2) {\n var secondNumber = CronHelper.IsValidMinOrSecNumber(splits[1]);\n if (secondNumber.IsValid) {\n var minusSplits = splits[0].split('-');\n if (minusSplits.length > 1) {\n if (minusSplits.length == 2) {\n var firstNumber = CronHelper.IsValidMinOrSecNumber(minusSplits[0]);\n if (firstNumber.IsValid) {\n var sNumber = CronHelper.IsValidMinOrSecNumber(minusSplits[1]);\n if (sNumber.IsValid) {\n return firstNumber.Number <= sNumber.Number;\n }\n }\n }\n } else {\n var firstNumber = CronHelper.IsValidMinOrSecNumber(splits[0]);\n return firstNumber.IsValid;\n }\n }\n }\n } else {\n splits = val.split('-');\n // Enthaelt '-' -> zwei Zahlen\n if (splits.length == 2) {\n var firstNumber = CronHelper.IsValidMinOrSecNumber(splits[0]);\n if (firstNumber.IsValid) {\n var secondNumber = CronHelper.IsValidMinOrSecNumber(splits[1]);\n if (secondNumber.IsValid) {\n return firstNumber.Number <= secondNumber.Number;\n }\n }\n } else {\n var number = CronHelper.IsValidMinOrSecNumber(val);\n return number.IsValid;\n }\n }\n }\n } else {\n // Laenge = 2 -> zweistellige Zahl\n return val[0] >= '1' && val[0] <= '5' && val[1] >= '0' && val[1] <= '9';\n }\n } else {\n // Laenge = 1 -> * oder einstellige Zahl\n if (checkForStar) {\n if (val[0] == '*') {\n return true;\n }\n }\n return val[0] >= '0' && val[0] <= '9';\n }\n }\n return false;\n }\n\n static IsValidHourValue(val: string): boolean {\n return CronHelper.IsValidHourValueInternal(val, true);\n }\n\n private static IsValidHourValueInternal(val: string, checkForStar: boolean): boolean {\n if (val.length > 0) {\n if (val.length > 1) {\n if (val.length > 2) {\n // Laenge > 2 -> Muss '/', '-' oder ',' enthalten\n // Erst nach Komma splitten\n var splits = val.split(',');\n if (splits.length > 1) {\n var retVal = true;\n splits.some(function (s) {\n if (!CronHelper.IsValidHourValueInternal(s, false)) {\n retVal = false;\n }\n return !retVal;\n });\n return retVal;\n } else {\n splits = val.split('/');\n if (splits.length > 1) {\n // Enthaelt '/' -> von/bis oder Zahl + Zahl zw 0 und 23\n if (splits.length == 2) {\n var secondNumber = CronHelper.IsValidHourNumber(splits[1]);\n if (secondNumber.IsValid) {\n var minusSplits = splits[0].split('-');\n if (minusSplits.length > 1) {\n if (minusSplits.length == 2) {\n var firstNumber = CronHelper.IsValidHourNumber(minusSplits[0]);\n if (firstNumber.IsValid) {\n var sNumber = CronHelper.IsValidHourNumber(minusSplits[1]);\n if (sNumber.IsValid) {\n return firstNumber.Number <= sNumber.Number;\n }\n }\n }\n } else {\n var firstNumber = CronHelper.IsValidHourNumber(splits[0]);\n return firstNumber.IsValid;\n }\n }\n }\n } else {\n splits = val.split('-');\n // Enthaelt '-' -> zwei Zahlen\n if (splits.length == 2) {\n var firstNumber = CronHelper.IsValidHourNumber(splits[0]);\n if (firstNumber.IsValid) {\n var secondNumber = CronHelper.IsValidHourNumber(splits[1]);\n if (secondNumber.IsValid) {\n return firstNumber.Number <= secondNumber.Number;\n }\n }\n } else {\n var number = CronHelper.IsValidHourNumber(val);\n return number.IsValid;\n }\n }\n }\n } else {\n // Laenge = 2 -> zweistellige Zahl\n if (val[0] == '1') {\n return val[1] >= '0' && val[1] <= '9';\n } else if (val[0] == '2') {\n return val[1] >= '0' && val[1] <= '3';\n }\n }\n } else {\n // Laenge = 1 -> * oder einstellige Zahl\n if (checkForStar) {\n if (val[0] == '*') {\n return true;\n }\n }\n return val[0] >= '0' && val[0] <= '9';\n }\n }\n return false;\n }\n\n private static MonthList = ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'];\n\n static IsValidMonthValue(val: string): boolean {\n return CronHelper.IsValidMonthValueInternal(val, true);\n }\n\n private static IsValidMonthValueInternal(val: string, checkForStar: boolean): boolean {\n if (val.length > 0) {\n if (val.length > 1) {\n if (val.length > 2) {\n if (val.length == 3) {\n // Wenn Laenge 3 auf Monatsname pruefen\n var tl = val.toLowerCase();\n if (CronHelper.MonthList.some(function (m) { return tl == m; })) {\n return true;\n }\n }\n // Laenge > 2 -> Muss '/', '-' oder ',' enthalten\n // Erst nach Komma splitten\n var splits = val.split(',');\n if (splits.length > 1) {\n var retVal = true;\n splits.some(function (s) {\n if (!CronHelper.IsValidMonthValueInternal(s, false)) {\n retVal = false;\n }\n return !retVal;\n });\n return retVal;\n } else {\n splits = val.split('/');\n if (splits.length > 1) {\n // Enthaelt '/' -> von/bis oder Zahl + Zahl zw 0 und 12\n if (splits.length == 2) {\n var secondNumber = CronHelper.IsValidMonthName(splits[1], false);\n if (secondNumber.IsValid) {\n var minusSplits = splits[0].split('-');\n if (minusSplits.length > 1) {\n if (minusSplits.length == 2) {\n var firstNumber = CronHelper.IsValidMonthName(minusSplits[0], true);\n if (firstNumber.IsValid) {\n var sNumber = CronHelper.IsValidMonthName(minusSplits[1], true);\n if (sNumber.IsValid) {\n return firstNumber.Number <= sNumber.Number;\n }\n }\n }\n } else {\n var firstNumber = CronHelper.IsValidMonthName(splits[0], true);\n return firstNumber.IsValid;\n }\n }\n }\n } else {\n splits = val.split('-');\n // Enthaelt '-' -> zwei Zahlen\n if (splits.length == 2) {\n var firstNumber = CronHelper.IsValidMonthName(splits[0], true);\n if (firstNumber.IsValid) {\n var secondNumber = CronHelper.IsValidMonthName(splits[1], true);\n if (secondNumber.IsValid) {\n return firstNumber.Number <= secondNumber.Number;\n }\n }\n } else {\n var number = CronHelper.IsValidMonthName(val, true);\n return number.IsValid;\n }\n }\n }\n } else {\n // Laenge = 2 -> zweistellige Zahl\n return val[0] == '1' && val[1] >= '0' && val[1] <= '2';\n }\n } else {\n // Laenge = 1 -> * oder einstellige Zahl\n if (checkForStar) {\n if (val[0] == '*') {\n return true;\n }\n }\n return val[0] >= '1' && val[0] <= '9';\n }\n }\n return false;\n }\n\n static IsValidDOMValue(val: string): boolean {\n return CronHelper.IsValidDOMValueInternal(val, true);\n }\n\n private static IsValidDOMValueInternal(val: string, checkForStar: boolean): boolean {\n var retVal = false;\n if (val.length > 0) {\n if (val.length > 1) {\n if (val.length > 2) {\n // Laenge > 2\n if (checkForStar) {\n if (val[0].toLowerCase() == 'l') {\n // Wenn string mit L beginnt\n if (val[1] == '-') { // Muss ein - und eine Zahl zwischen 1 und 31 folgen\n if (val.length == 3) {\n return val[2] >= '1' && val[2] <= '9';\n } else if (val.length == 4) {\n if (val[2] >= '1' && val[2] <= '2') {\n return val[3] >= '0' && val[3] <= '9';\n } else if (val[2] == '3') {\n return val[3] == '0' || val[3] == '1';\n }\n }\n }\n } else if (val.length == 3 && val[2].toLowerCase() == 'w') {\n // Wenn string mit W endet und 3 Zeichen lang ist -> zweistellige Zahl + W\n if (val[0] >= '1' && val[0] <= '2') {\n return val[1] >= '0' && val[1] <= '9';\n } else if (val[0] == '3') {\n return val[1] == '0' || val[1] == '1';\n }\n }\n }\n\n // Laenge > 2 -> Muss '/', '-' oder ',' enthalten\n // Erst nach Komma splitten\n var splits = val.split(',');\n if (splits.length > 1) {\n var retVal = true;\n splits.some(function (s) {\n if (!CronHelper.IsValidDOMValueInternal(s, false)) {\n retVal = false;\n }\n return !retVal;\n });\n return retVal;\n } else {\n splits = val.split('/');\n if (splits.length > 1) {\n // Enthaelt '/' -> von/bis oder Zahl + Zahl zw 0 und 31\n if (splits.length == 2) {\n var secondNumber = CronHelper.IsValidDayOfMonth(splits[1]);\n if (secondNumber.IsValid) {\n var minusSplits = splits[0].split('-');\n if (minusSplits.length > 1) {\n if (minusSplits.length == 2) {\n var firstNumber = CronHelper.IsValidDayOfMonth(minusSplits[0]);\n if (firstNumber.IsValid) {\n var sNumber = CronHelper.IsValidDayOfMonth(minusSplits[1]);\n if (sNumber.IsValid) {\n return firstNumber.Number <= sNumber.Number;\n }\n }\n }\n } else {\n var firstNumber = CronHelper.IsValidDayOfMonth(splits[0]);\n return firstNumber.IsValid;\n }\n }\n }\n } else {\n splits = val.split('-');\n // Enthaelt '-' -> zwei Zahlen\n if (splits.length == 2) {\n var firstNumber = CronHelper.IsValidDayOfMonth(splits[0]);\n if (firstNumber.IsValid) {\n var secondNumber = CronHelper.IsValidDayOfMonth(splits[1]);\n if (secondNumber.IsValid) {\n return firstNumber.Number <= secondNumber.Number;\n }\n }\n } else {\n var number = CronHelper.IsValidDayOfMonth(val);\n return number.IsValid;\n }\n }\n }\n } else {\n // Laenge = 2 -> einstellige Zahl + W oder LW oder zweistellige Zahl\n if (checkForStar) {\n if (val[1].toLowerCase() == 'w') {\n return val[0].toLowerCase() == 'l' || (val[0] >= '1' && val[0] <= '9');\n }\n }\n if (val[0] >= '1' && val[0] <= '2') {\n return val[1] >= '0' && val[1] <= '9';\n } else if (val[0] == '3') {\n return val[1] == '0' || val[1] == '1';\n } \n }\n } else {\n // Laenge = 1 -> * oder ? oder L oder einstellige Zahl\n var actVal = val[0];\n if (checkForStar) {\n if (actVal == '*' || actVal == '?' || actVal.toLowerCase() == 'l') {\n return true;\n }\n }\n return actVal >= '1' && actVal <= '9';\n }\n }\n return retVal;\n }\n\n private static DayOfWeekList = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\n\n static IsValidDOWValue(val: string): boolean {\n return CronHelper.IsValidDOWValueInternal(val, true);\n }\n\n private static IsValidDOWValueInternal(val: string, checkForStar: boolean): boolean {\n if (val.length > 0) {\n if (val.length > 1) {\n if (val.length > 2) {\n if (val.length == 3) {\n // Auf WochenTag und # pruefen\n var tl = val.toLowerCase();\n if (CronHelper.DayOfWeekList.some(function (m) { return tl == m; })) {\n return true;\n }\n if (val[1] == '#') {\n return val[0] >= '1' && val[0] <= '7' && val[2] >= '1' && val[2] <= '5';\n }\n }\n var hashInd = val.indexOf('#');\n if (hashInd > -1) {\n // Wenn # existiert\n if (hashInd == 0 || hashInd == val.length - 1 || val.indexOf('/') > -1 || val.indexOf('-') > -1 || (hashInd < val.length - 1 && val.indexOf('#', hashInd + 1))) {\n // HashIndex erstes oder letztes Zeichen und / oder - oder noch ein Hash existiert -> falsch\n return false;\n }\n }\n\n // Laenge > 2 -> Muss '/', '-' oder ',' enthalten\n // Erst nach Komma splitten\n var splits = val.split(',');\n if (splits.length > 1) {\n var retVal = true;\n splits.some(function (s) {\n if (!CronHelper.IsValidDOWValueInternal(s, false)) {\n retVal = false;\n }\n return !retVal;\n });\n return retVal;\n } else {\n splits = val.split('/');\n if (splits.length > 1) {\n // Enthaelt '/' -> von/bis oder Zahl + Zahl zw 0 und 31\n if (splits.length == 2) {\n var secondNumber = CronHelper.IsValidDayOfWeek(splits[1], false);\n if (secondNumber.IsValid) {\n var minusSplits = splits[0].split('-');\n if (minusSplits.length > 1) {\n if (minusSplits.length == 2) {\n var firstNumber = CronHelper.IsValidDayOfWeek(minusSplits[0], true);\n if (firstNumber.IsValid) {\n var sNumber = CronHelper.IsValidDayOfWeek(minusSplits[1], true);\n if (sNumber.IsValid) {\n return firstNumber.Number <= sNumber.Number;\n }\n }\n }\n } else {\n var firstNumber = CronHelper.IsValidDayOfWeek(splits[0], true);\n return firstNumber.IsValid;\n }\n }\n }\n } else {\n splits = val.split('-');\n // Enthaelt '-' -> zwei Zahlen\n if (splits.length == 2) {\n var firstNumber = CronHelper.IsValidDayOfWeek(splits[0], true);\n if (firstNumber.IsValid) {\n var secondNumber = CronHelper.IsValidDayOfWeek(splits[1], true);\n if (secondNumber.IsValid) {\n return firstNumber.Number <= secondNumber.Number;\n }\n }\n } else {\n var number = CronHelper.IsValidDayOfWeek(val, true);\n return number.IsValid;\n }\n }\n }\n\n } else {\n // Laenge = 2 -> einstellige Zahl + L\n if (checkForStar && val[1].toLowerCase() == 'l') {\n return val[0] >= '1' && val[0] <= '7';\n }\n }\n } else {\n // Laenge = 1 -> * oder ? oder L oder einstellige Zahl\n var actVal = val[0];\n if (checkForStar) {\n if (actVal == '*' || actVal == '?' || actVal.toLowerCase() == 'l') {\n return true;\n }\n }\n return actVal >= '1' && actVal <= '7';\n }\n }\n return false;\n }\n\n static IsValidYearValue(val: string): boolean {\n return CronHelper.IsValidYearValueInternal(val, true);\n }\n\n private static IsValidYearValueInternal(val: string, checkForStar: boolean): boolean {\n if (val.length > 0) {\n if (val.length > 1) {\n // Erst nach Komma splitten\n var splits = val.split(',');\n if (splits.length > 1) {\n var retVal = true;\n splits.some(function (s) {\n if (!CronHelper.IsValidYearValueInternal(s, false)) {\n retVal = false;\n }\n return !retVal;\n });\n return retVal;\n } else {\n splits = val.split('/');\n if (splits.length > 1) {\n // Enthaelt '/' -> von/bis oder Zahl + Zahl zw 0 und 129\n if (splits.length == 2) {\n var secondNumber = CronHelper.IsValidYearIncrement(splits[1]);\n if (secondNumber.IsValid) {\n var minusSplits = splits[0].split('-');\n if (minusSplits.length > 1) {\n if (minusSplits.length == 2) {\n var firstNumber = CronHelper.IsValidYearNumber(minusSplits[0]);\n if (firstNumber.IsValid) {\n var sNumber = CronHelper.IsValidYearNumber(minusSplits[1]);\n if (sNumber.IsValid) {\n return firstNumber.Number <= sNumber.Number;\n }\n }\n }\n } else {\n var firstNumber = CronHelper.IsValidYearNumber(splits[0]);\n return firstNumber.IsValid;\n }\n }\n }\n } else {\n splits = val.split('-');\n // Enthaelt '-' -> zwei Zahlen\n if (splits.length == 2) {\n var firstNumber = CronHelper.IsValidYearNumber(splits[0]);\n if (firstNumber.IsValid) {\n var secondNumber = CronHelper.IsValidYearNumber(splits[1]);\n if (secondNumber.IsValid) {\n return firstNumber.Number <= secondNumber.Number;\n }\n }\n } else {\n var number = CronHelper.IsValidYearNumber(val);\n return number.IsValid;\n }\n }\n }\n } else {\n // Laenge = 1 -> *\n if (checkForStar) {\n if (val[0] == '*') {\n return true;\n }\n }\n }\n }\n return false;\n }\n\n private static IsValidMinOrSecNumber(val: string) {\n var retVal = {\n IsValid: false,\n Number: -1\n };\n while (val[0] == '0' && val.length > 1) {\n val = val.substr(1);\n }\n if (val.length == 1) {\n if (val[0] >= '0' && val[0] <= '9') {\n retVal.Number = parseInt(val);\n retVal.IsValid = true;\n }\n } else if (val.length == 2) {\n if (val[0] >= '1' && val[0] <= '5' && val[1] >= '0' && val[1] <= '9') {\n retVal.Number = parseInt(val);\n retVal.IsValid = true;\n }\n }\n return retVal;\n }\n\n private static IsValidHourNumber(val: string) {\n var retVal = {\n IsValid: false,\n Number: -1\n };\n while (val[0] == '0' && val.length > 1) {\n val = val.substr(1);\n }\n if (val.length == 1) {\n if (val[0] >= '0' && val[0] <= '9') {\n retVal.Number = parseInt(val);\n retVal.IsValid = true;\n }\n } else if (val.length == 2) {\n if (val[0] == '1') {\n if (val[1] >= '0' && val[1] <= '9') {\n retVal.Number = parseInt(val);\n retVal.IsValid = true;\n }\n } else if (val[0] == '2') {\n if (val[1] >= '0' && val[1] <= '3') {\n retVal.Number = parseInt(val);\n retVal.IsValid = true;\n }\n }\n }\n return retVal;\n }\n\n private static IsValidMonthName(val: string, checkName: boolean) {\n var retVal = {\n IsValid: false,\n Number: -1\n };\n while (val[0] == '0' && val.length > 1) {\n val = val.substr(1);\n }\n if (val.length == 1) {\n if (val[0] >= '1' && val[0] <= '9') {\n retVal.Number = parseInt(val);\n retVal.IsValid = true;\n }\n } else if (val.length == 2) {\n if (val[0] == '1') {\n if (val[1] >= '0' && val[1] <= '2') {\n retVal.Number = parseInt(val);\n retVal.IsValid = true;\n }\n }\n } else if (checkName && val.length == 3) {\n var tl = val.toLowerCase();\n for (var i = 0; i < CronHelper.MonthList.length; i++) {\n if (tl == CronHelper.MonthList[i]) {\n retVal.IsValid = true;\n retVal.Number = i + 1;\n break;\n }\n }\n }\n return retVal;\n }\n\n private static IsValidDayOfMonth(val: string) {\n var retVal = {\n IsValid: false,\n Number: -1\n };\n while (val[0] == '0' && val.length > 1) {\n val = val.substr(1);\n }\n if (val.length == 1) {\n if (val[0] >= '1' && val[0] <= '9') {\n retVal.Number = parseInt(val);\n retVal.IsValid = true;\n }\n } else if (val.length == 2) {\n if (val[0] == '1' || val[0] == '2') {\n if (val[1] >= '0' && val[1] <= '9') {\n retVal.Number = parseInt(val);\n retVal.IsValid = true;\n }\n } else if (val[0] == '3') {\n if (val[1] == '0' || val[1] == '1') {\n retVal.Number = parseInt(val);\n retVal.IsValid = true;\n }\n }\n }\n return retVal;\n }\n\n private static IsValidDayOfWeek(val: string, checkName: boolean) {\n var retVal = {\n IsValid: false,\n Number: -1\n };\n while (val[0] == '0' && val.length > 1) {\n val = val.substr(1);\n }\n if (val.length == 1) {\n if (val[0] >= '1' && val[0] <= '7') {\n retVal.Number = parseInt(val);\n retVal.IsValid = true;\n }\n } else if (checkName && val.length == 3) {\n var tl = val.toLowerCase();\n for (var i = 0; i < CronHelper.DayOfWeekList.length; i++) {\n if (tl == CronHelper.DayOfWeekList[i]) {\n retVal.IsValid = true;\n retVal.Number = i + 1;\n break;\n }\n }\n }\n return retVal;\n }\n\n private static IsValidYearIncrement(val: string) {\n var retVal = {\n IsValid: false,\n Number: -1\n };\n while (val[0] == '0' && val.length > 1) {\n val = val.substr(1);\n }\n if (val.length == 1) {\n if (val[0] >= '0' && val[1] <= '9') {\n retVal.Number = parseInt(val);\n retVal.IsValid = true;\n }\n } else if (val.length == 2) {\n if (val[0] >= '1' && val[0] <= '9' && val[1] >= '0' && val[1] <= '9') {\n retVal.Number = parseInt(val);\n retVal.IsValid = true;\n }\n } else if (val.length == 3) {\n if (val[0] == '1') {\n if (val[1] >= '0' && val[1] <= '2' && val[2] >= '0' && val[2] <= '9') {\n retVal.Number = parseInt(val);\n retVal.IsValid = true;\n }\n }\n }\n return retVal;\n }\n\n private static IsValidYearNumber(val: string) {\n var retVal = {\n IsValid: false,\n Number: -1\n };\n while (val[0] == '0' && val.length > 1) {\n val = val.substr(1);\n }\n if (val.length == 4) {\n if (val[0] == '1') {\n if (val[1] == '9') {\n if (val[2] >= '7' && val[2] <= '9' && val[3] >= '0' && val[3] <= '9') {\n retVal.Number = parseInt(val);\n retVal.IsValid = true;\n }\n }\n } else if (val[0] == '2') {\n if (val[1] == '0') {\n if (val[2] >= '0' && val[2] <= '9' && val[3] >= '0' && val[3] <= '9') {\n retVal.Number = parseInt(val);\n retVal.IsValid = true;\n }\n }\n }\n }\n return retVal;\n }\n}\n\nexport class CronObject {\n Seconds: string = '*';\n SecondsCorrect: boolean = true;\n Minutes: string = '*';\n MinutesCorrect: boolean = true;\n Hours: string = '*';\n HoursCorrect: boolean = true;\n DayOfMonth: string = '*';\n DayOfMonthCorrect: boolean = true;\n Month: string = '*';\n MonthCorrect: boolean = true;\n DayOfWeek: string = '?';\n DayOfWeekCorrect: boolean = true;\n Year: string = '*';\n YearCorrect: boolean = true;\n\n GetExpression(): string {\n return [this.Seconds, this.Minutes, this.Hours, this.DayOfMonth, this.Month, this.DayOfWeek, this.Year].join(' ');\n }\n\n GetDescription(): string {\n if (this.IsValid()) {\n var exp = this.GetExpression();\n // TODO: �bersetzung\n return cronstrue.toString(exp);\n } else {\n return TranslateHelper.TranslatorInstance.instant('@@Ungueltiger Ausdruck');\n }\n }\n\n IsValid(): boolean {\n if (this.SecondsCorrect && this.MinutesCorrect && this.HoursCorrect && this.DayOfMonthCorrect && this.MonthCorrect && this.DayOfWeekCorrect && this.YearCorrect) {\n if (this.DayOfMonth == '?') {\n return this.DayOfWeek != '?';\n } else {\n return this.DayOfWeek == '?';\n }\n }\n return false;\n }\n}","import { DataSourceQuery } from \"../services/datamodel.service\";\n\n\nexport class DataSourceHelper {\n static GetDataSourceQuery(dataModelId: string, relational: boolean, exp: boolean, fillProps: boolean): DataSourceQuery {\n const retVal = new DataSourceQuery(dataModelId);\n if (relational) {\n if (exp) {\n retVal.DBUsages = [[8192, 512]] // RelationalWrite + DataSourceWrite\n } else {\n retVal.DBUsages = [[4096, 256]] // RelationalRead + DataSourceRead\n }\n } else {\n if (exp) {\n retVal.DBUsages = [[32, 2097152]] // DocumentStoreWrite + ObjectWrite\n } else {\n retVal.DBUsages = [[16, 1048576]] // DocumentStoreRead + ObjectRead\n }\n }\n retVal.IgnoreResourceBase = true;\n retVal.FillInteractiveProperties = fillProps;\n return retVal;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Comparer } from '../models/enums/comparer.enum';\nimport { RequestFilter } from '../models/rest/requestfilter';\n\n@Pipe({\n name: 'datatablefilter',\n pure: false\n})\nexport class DataTableFilterPipe implements PipeTransform {\n transform(items: any[], filter: RequestFilter[]): any {\n if (!items || !filter) {\n return items;\n }\n if (!filter || (filter && filter.length == 0)) {\n return items;\n } else {\n return items.filter((item) => {\n var result = true;\n filter.some((fil) => {\n switch (fil.Operator) {\n case Comparer.Between:\n\n break;\n case Comparer.Equal:\n if (!(item.data[fil.Name] == fil.Value)) {\n result = false;\n }\n break;\n case Comparer.Greater:\n if (!(item.data[fil.Name] > fil.Value)) {\n result = false;\n }\n break;\n case Comparer.GreaterEqual:\n if (!(item.data[fil.Name] >= fil.Value)) {\n result = false;\n }\n break;\n case Comparer.In:\n\n break;\n case Comparer.Like:\n if (!(item.data[fil.Name].indexOf(fil.Value)>-1)) {\n result = false;\n }\n break;\n case Comparer.NotBetween:\n\n break;\n case Comparer.NotEqual:\n if (!(item.data[fil.Name] != fil.Value)) {\n result = false;\n }\n break;\n case Comparer.NotIn:\n\n break;\n case Comparer.Smaller:\n if (!(item.data[fil.Name] < fil.Value)) {\n result = false;\n }\n break;\n case Comparer.SmallerEqual:\n if (!(item.data[fil.Name] <= fil.Value)) {\n result = false;\n }\n break;\n }\n if (!result) {\n return result;\n }\n })\n return result;\n });\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Order } from '../models/enums/order.enum';\nimport { RequestSort } from '../models/rest/requestsort';\n\n@Pipe({\n name: 'datatablesort',\n pure: false\n})\nexport class DataTableSortPipe implements PipeTransform {\n transform(items: any[], sort: RequestSort[]): any {\n if (!items || !sort) {\n return items;\n } else if (items && sort && sort.length == 0) {\n return items.sort((a, b) => {\n return a.index > b.index ? 1 : -1;\n })\n } else {\n let column = sort[0];\n return items.sort((a, b) => {\n if (a.data[column.Name] == b.data[column.Name]) {\n return 0;\n }\n if (column.Order == Order.ASC) {\n return a.data[column.Name] > b.data[column.Name] ? 1 : -1;\n }\n if (column.Order == Order.DESC) {\n return a.data[column.Name] < b.data[column.Name] ? 1 : -1;\n }\n });\n }\n }\n}\n","export class DataTypeHelper {\n static GetDataTypes() {\n return [{ Caption: '@@Text', Value: 'System.String' }, { Caption: '@@Bool', Value: 'System.Boolean' }, { Caption: '@@Ganzzahl', Value: 'System.Int32' },\n { Caption: '@@Gleitzahl', Value: 'System.Double' }, { Caption: '@@Datum', Value: 'System.DateTime' }];\n }\n}","export class DateHelper {\n /**\n * Generates a date string of format yyyy-mm-dd hh:mm:ss\n * @param date\n */\n static GetSerializeString(date) {\n if (!(date instanceof Date)) {\n date = new Date(date);\n }\n return date.getFullYear() + '-' +\n DateHelper.GetNumericString(date.getMonth() + 1) + '-' +\n DateHelper.GetNumericString(date.getDate()) + ' ' +\n DateHelper.GetNumericString(date.getHours()) + ':' +\n DateHelper.GetNumericString(date.getMinutes()) + ':' +\n DateHelper.GetNumericString(date.getSeconds());\n }\n\n private static GetNumericString(num: number) {\n if (num < 10) {\n return '0' + num;\n }\n return '' + num;\n }\n}\n","import { LayoutElement } from 'src/app/models/layoutelement.model';\nimport { ContentType } from 'src/app/models/enums/contenttype.enum';\nimport { AxisTextPosition } from 'src/app/models/enums/axistextposition.enum';\nimport { SliderOrientation } from 'src/app/models/enums/slider.orientation.enum';\nimport { PagingType } from 'src/app/models/enums/pagingtype.enum';\n\nexport const defaultProperties = {\n textbox: {\n Source: 'textbox',\n Placeholder: 'Please type ...',\n Type: 'textbox',\n Layout: {\n _Editable: true,\n Placeholder: 'Enter Text',\n Height: { Type: 0, Value: 52 },\n Width: { Type: 0, Value: 250 },\n BackgroundColor: {\n StartPoint: {\n X: 0,\n Y: 0.5,\n },\n EndPoint: {\n X: 1,\n Y: 0.5,\n },\n Colors: [\n {\n Color: {\n A: 255,\n R: 255,\n G: 255,\n B: 255,\n },\n Offset: 0,\n },\n ],\n Type: 1,\n },\n UseBorder: true,\n },\n },\n textblock: {\n Type: 'textblock',\n Caption: 'Text',\n Layout: {\n _Editable: true,\n Caption: 'Hello World!',\n Height: { Type: 0, Value: 30 },\n Width: { Type: 0, Value: 150 },\n Font: {\n FontColor: null,\n FontFamilyName: null,\n FontSize: 14,\n Bold: null,\n Italic: null,\n Underline: null,\n },\n },\n },\n accordion: {\n Caption: '@@Accordion',\n Type: 'accordion',\n Layout: {\n _Editable: true,\n Elements: [\n ...(() => {\n const elem1 = new LayoutElement();\n elem1.ContentType = ContentType.Grid;\n elem1.ElementType = 'grid';\n elem1.Name = 'Panel 1';\n const elem2 = new LayoutElement();\n elem2.ContentType = ContentType.Grid;\n elem2.ElementType = 'grid';\n elem2.Name = 'Panel 2';\n const elem3 = new LayoutElement();\n elem3.ContentType = ContentType.Grid;\n elem3.ElementType = 'grid';\n elem3.Name = 'Panel 2';\n return [elem1, elem2, elem3];\n })(),\n ],\n Width: { Type: 0, Value: 400 },\n Height: { Type: 0, Value: 300 },\n },\n },\n appswitch: { SelectedItem: null, Type: 'appswitch' },\n autocomplete: {\n Caption: 'Autocomplete',\n Type: 'autocomplete',\n Layout: {\n _Editable: true,\n Width: { Type: 0, Value: 300 },\n Height: { Type: 0, Value: 50 },\n },\n },\n button: {\n Caption: 'Button',\n Type: 'button',\n Layout: {\n ButtonType: 'mat-raised-button',\n Editable: true,\n Caption: 'Button',\n CaptionPosition: 'right',\n Height: { Type: 0, Value: 40 },\n Width: { Type: 0, Value: 150 },\n UseBorder: true,\n Border: {\n LeftBorder: {\n Thickness: {\n Type: 0,\n Value: 2,\n },\n Style: 0,\n Color: {\n StartPoint: {\n X: 0,\n Y: 0,\n },\n EndPoint: {\n X: 0,\n Y: 0,\n },\n Colors: [\n {\n Color: {\n A: 255,\n R: 185,\n G: 219,\n B: 237,\n },\n Offset: 0,\n },\n ],\n Type: 1,\n },\n },\n TopBorder: {\n Thickness: {\n Type: 0,\n Value: 2,\n },\n Style: 0,\n Color: {\n StartPoint: {\n X: 0,\n Y: 0,\n },\n EndPoint: {\n X: 0,\n Y: 0,\n },\n Colors: [\n {\n Color: {\n A: 255,\n R: 185,\n G: 219,\n B: 237,\n },\n Offset: 0,\n },\n ],\n Type: 1,\n },\n },\n RightBorder: {\n Thickness: {\n Type: 0,\n Value: 2,\n },\n Style: 0,\n Color: {\n StartPoint: {\n X: 0,\n Y: 0,\n },\n EndPoint: {\n X: 0,\n Y: 0,\n },\n Colors: [\n {\n Color: {\n A: 255,\n R: 185,\n G: 219,\n B: 237,\n },\n Offset: 0,\n },\n ],\n Type: 1,\n },\n },\n BottomBorder: {\n Thickness: {\n Type: 0,\n Value: 2,\n },\n Style: 0,\n Color: {\n StartPoint: {\n X: 0,\n Y: 0,\n },\n EndPoint: {\n X: 0,\n Y: 0,\n },\n Colors: [\n {\n Color: {\n A: 255,\n R: 185,\n G: 219,\n B: 237,\n },\n Offset: 0,\n },\n ],\n Type: 1,\n },\n },\n BorderRadius: {\n BottomLeft: { Type: 0, Value: 6 },\n BottomRight: { Type: 0, Value: 6 },\n TopLeft: { Type: 0, Value: 6 },\n TopRight: { Type: 0, Value: 6 },\n },\n },\n },\n },\n carousel: {\n IsCheckedValue: false,\n Type: 'carousel',\n Layout: {\n _Editable: true,\n Width: { Type: 0, Value: 400 },\n Height: { Type: 0, Value: 400 },\n },\n },\n charts: {\n Caption: 'Charts',\n Type: 'charts',\n Layout: {\n vAxisTextPosition: AxisTextPosition.out,\n hAxisTextPosition: AxisTextPosition.out,\n _Editable: true,\n Height: { Type: 0, Value: 300 },\n Width: { Type: 0, Value: 400 },\n },\n },\n checkbox: {\n IsCheckedValue: false,\n Type: 'checkbox',\n Layout: {\n _Editable: true,\n Caption: 'Toggle',\n Height: { Type: 0, Value: 20 },\n Width: { Type: 0, Value: 100 },\n },\n },\n chiplist: {\n Placeholder: 'Please type ...',\n Type: 'chiplist',\n Layout: {\n _Editable: true,\n Width: { Type: 0, Value: 300 },\n Height: { Type: 0, Value: 150 },\n },\n },\n combobox: {\n SelectedItem: null,\n Type: 'combobox',\n Layout: {\n _Editable: true,\n Height: { Type: 0, Value: 30 },\n Width: { Type: 0, Value: 250 },\n },\n },\n content: { Type: 'content' },\n datacapsuletag: {\n Editable: true,\n Layout: {\n DisableAutoLoad: true,\n EmptyEntry: true,\n Width: { Type: 0, Value: 100 },\n Height: { Type: 0, Value: 30 },\n },\n Type: 'datacapsuletag',\n },\n datetimepicker: {\n Source: [],\n Type: 'datetimepicker',\n Layout: {\n _Editable: true,\n Height: { Type: 0, Value: 52 },\n Width: { Type: 0, Value: 250 },\n UseBorder: true,\n Border: {\n LeftBorder: {\n Thickness: {\n Type: 0,\n Value: 2,\n },\n Style: 0,\n Color: {\n StartPoint: {\n X: 0,\n Y: 0,\n },\n EndPoint: {\n X: 0,\n Y: 0,\n },\n Colors: [\n {\n Color: {\n A: 255,\n R: 185,\n G: 219,\n B: 237,\n },\n Offset: 0,\n },\n ],\n Type: 1,\n },\n },\n TopBorder: {\n Thickness: {\n Type: 0,\n Value: 2,\n },\n Style: 0,\n Color: {\n StartPoint: {\n X: 0,\n Y: 0,\n },\n EndPoint: {\n X: 0,\n Y: 0,\n },\n Colors: [\n {\n Color: {\n A: 255,\n R: 185,\n G: 219,\n B: 237,\n },\n Offset: 0,\n },\n ],\n Type: 1,\n },\n },\n RightBorder: {\n Thickness: {\n Type: 0,\n Value: 2,\n },\n Style: 0,\n Color: {\n StartPoint: {\n X: 0,\n Y: 0,\n },\n EndPoint: {\n X: 0,\n Y: 0,\n },\n Colors: [\n {\n Color: {\n A: 255,\n R: 185,\n G: 219,\n B: 237,\n },\n Offset: 0,\n },\n ],\n Type: 1,\n },\n },\n BottomBorder: {\n Thickness: {\n Type: 0,\n Value: 2,\n },\n Style: 0,\n Color: {\n StartPoint: {\n X: 0,\n Y: 0,\n },\n EndPoint: {\n X: 0,\n Y: 0,\n },\n Colors: [\n {\n Color: {\n A: 255,\n R: 185,\n G: 219,\n B: 237,\n },\n Offset: 0,\n },\n ],\n Type: 1,\n },\n },\n BorderRadius: null,\n },\n },\n },\n download: {\n Placeholder: 'Please type ...',\n Type: 'download',\n Layout: {\n Caption: 'Download',\n ButtonType: 'mat-button',\n _Editable: true,\n Width: { Type: 0, Value: 150 },\n Height: { Type: 0, Value: 40 },\n },\n },\n dropdown: {\n Editable: true,\n Type: 'dropdown',\n Layout: {\n _Editable: true,\n Height: { Type: 0, Value: 50 },\n Width: { Type: 0, Value: 250 },\n },\n },\n editor: {\n Type: 'editor',\n Layout: {\n _Editable: true,\n Width: { Type: 0, Value: 400 },\n Height: { Type: 0, Value: 300 },\n },\n },\n embed: {\n Type: 'embed',\n Layout: {\n _Editable: true,\n Width: { Type: 0, Value: 300 },\n Height: { Type: 0, Value: 200 },\n },\n },\n filterdropdown: {\n Caption: 'FilterDropdown',\n Type: 'filterdropdown',\n Layout: {\n Height: { Type: 0, Value: 50 },\n Width: { Type: 0, Value: 200 },\n },\n },\n fromto: {\n Caption: 'Von-Bis-Filter',\n Type: 'fromto',\n Layout: {\n Height: { Type: 0, Value: 100 },\n Width: { Type: 0, Value: 250 },\n },\n },\n googlemap: {\n Type: 'googlemap',\n Layout: {\n Longitude: 69.3451,\n Latitude: 30.3753,\n Width: { Type: 0, Value: 400 },\n Height: { Type: 0, Value: 400 },\n },\n },\n href: {\n Type: 'href',\n Caption: 'Text',\n Layout: {\n _Editable: true,\n Width: { Type: 0, Value: 150 },\n Height: { Type: 0, Value: 30 },\n },\n },\n hyperpay: {\n Type: 'hyperpay',\n Layout: {\n _Editable: true,\n Width: { Type: 0, Value: 400 },\n Height: { Type: 0, Value: 200 },\n },\n },\n icon: {\n Type: 'icon',\n Layout: {\n _Editable: true,\n Width: { Type: 0, Value: 30 },\n Height: { Type: 0, Value: 30 },\n },\n },\n iframe: {\n Type: 'iframe',\n Layout: {\n _Editable: true,\n Width: { Type: 0, Value: 400 },\n Height: { Type: 0, Value: 400 },\n },\n },\n image: {\n IsCheckedValue: false,\n Type: 'image',\n Layout: {\n _Editable: true,\n Width: { Type: 0, Value: 300 },\n Height: { Type: 0, Value: 200 },\n },\n },\n inputgroup: {\n Source: 'inputgroup',\n Placeholder: 'Please type ...',\n Type: 'inputgroup',\n Layout: {\n _Editable: true,\n Placeholder: 'Placeholder',\n Height: { Type: 0, Value: 52 },\n Width: { Type: 0, Value: 250 },\n UseBorder: true,\n Border: {\n LeftBorder: {\n Thickness: {\n Type: 0,\n Value: 2,\n },\n Style: 0,\n Color: {\n StartPoint: {\n X: 0,\n Y: 0,\n },\n EndPoint: {\n X: 0,\n Y: 0,\n },\n Colors: [\n {\n Color: {\n A: 255,\n R: 185,\n G: 219,\n B: 237,\n },\n Offset: 0,\n },\n ],\n Type: 1,\n },\n },\n TopBorder: {\n Thickness: {\n Type: 0,\n Value: 2,\n },\n Style: 0,\n Color: {\n StartPoint: {\n X: 0,\n Y: 0,\n },\n EndPoint: {\n X: 0,\n Y: 0,\n },\n Colors: [\n {\n Color: {\n A: 255,\n R: 185,\n G: 219,\n B: 237,\n },\n Offset: 0,\n },\n ],\n Type: 1,\n },\n },\n RightBorder: {\n Thickness: {\n Type: 0,\n Value: 2,\n },\n Style: 0,\n Color: {\n StartPoint: {\n X: 0,\n Y: 0,\n },\n EndPoint: {\n X: 0,\n Y: 0,\n },\n Colors: [\n {\n Color: {\n A: 255,\n R: 185,\n G: 219,\n B: 237,\n },\n Offset: 0,\n },\n ],\n Type: 1,\n },\n },\n BottomBorder: {\n Thickness: {\n Type: 0,\n Value: 2,\n },\n Style: 0,\n Color: {\n StartPoint: {\n X: 0,\n Y: 0,\n },\n EndPoint: {\n X: 0,\n Y: 0,\n },\n Colors: [\n {\n Color: {\n A: 255,\n R: 185,\n G: 219,\n B: 237,\n },\n Offset: 0,\n },\n ],\n Type: 1,\n },\n },\n BorderRadius: null,\n },\n },\n },\n languagemenu: {\n Editable: true,\n Type: 'languagemenu',\n Layout: {\n Width: { Type: 0, Value: 125 },\n Height: { Type: 0, Value: 30 },\n },\n },\n listbox: {\n SelectedItem: null,\n Type: 'listbox',\n Layout: {\n _Editable: true,\n Width: { Type: 0, Value: 400 },\n Height: { Type: 0, Value: 350 },\n },\n },\n listdetail: { SelectedItem: null, Type: 'listdetail' },\n loading: {\n SelectedItem: null,\n Type: 'loading',\n Layout: {\n _Editable: true,\n Width: { Type: 0, Value: 40 },\n Height: { Type: 0, Value: 40 },\n },\n },\n marker: {\n Type: 'marker',\n Layout: {\n _Editable: true,\n Width: { Type: 0, Value: 50 },\n Height: { Type: 0, Value: 300 },\n },\n },\n messagecenter: {\n Type: 'messagecenter',\n Layout: {\n _Editable: true,\n Width: { Type: 0, Value: 50 },\n Height: { Type: 0, Value: 30 },\n },\n },\n objectviewer: {\n IsCheckedValue: false,\n Type: 'objectviewer',\n Layout: {\n _Editable: true,\n Width: { Type: 0, Value: 400 },\n Height: { Type: 0, Value: 400 },\n },\n },\n pageindex: { Type: 'pageindex', Caption: 'PageIndex' },\n sumcomponent: { Type: 'sumcomponent', Caption: 'Summe' },\n pdfviewer: {\n Type: 'pdfviewer',\n Layout: {\n _Editable: true,\n },\n },\n profilemanagement: {\n Type: 'profilemanagement',\n Layout: {\n _Editable: true,\n Width: { Type: 0, Value: 400 },\n Height: { Type: 0, Value: 200 },\n },\n },\n qr: {\n SelectedItem: null,\n Type: 'qr',\n Layout: {\n _Editable: true,\n Width: { Type: 0, Value: 150 },\n Height: { Type: 0, Value: 150 },\n },\n },\n radiobutton: {\n Type: 'radiobutton',\n Layout: {\n _Editable: true,\n CustomValues: [{ Caption: 'Radio 1', Value: '' }],\n Height: { Type: 0, Value: 20 },\n Width: { Type: 0, Value: 100 },\n },\n },\n scheduler: {\n Source: [],\n Type: 'scheduler',\n Layout: {\n _Editable: true,\n Width: { Type: 0, Value: 400 },\n Height: { Type: 0, Value: 350 },\n },\n },\n 'sidenav-toggle': { Editable: true, Type: 'sidenav-toggle' },\n reporting: {\n Source: 'simplereporting',\n Type: 'reporting',\n Layout: {\n _Editable: true,\n ChartType: 'bar',\n Height: { Type: 0, Value: 350 },\n Width: { Type: 0, Value: 350 },\n },\n },\n slider: {\n Type: 'slider',\n Layout: {\n DataSource: 0,\n Minimum: 0,\n Maximum: 150,\n Step: 1,\n Range: false,\n Orientation: SliderOrientation.Horizontal,\n thumbLabel: true,\n _Editable: true,\n Width: { Type: 0, Value: 200 },\n Height: { Type: 0, Value: 30 },\n },\n },\n stepper: {\n Caption: '@@Stepper',\n Type: 'stepper',\n Layout: {\n _Editable: true,\n Elements: [\n (() => {\n const elem = new LayoutElement();\n elem.ContentType = ContentType.Grid;\n elem.ElementType = 'grid';\n elem.Name = 'Step 1';\n return elem;\n })(),\n ],\n Width: { Type: 0, Value: 400 },\n Height: { Type: 0, Value: 200 },\n },\n },\n tab: {\n Caption: '@@Tab',\n Type: 'tab',\n Layout: {\n _Editable: true,\n Elements: [\n ...(() => {\n const elem1 = new LayoutElement();\n elem1.ContentType = ContentType.Grid;\n elem1.ElementType = 'grid';\n elem1.Name = `Tab ${1}`;\n elem1.Caption = `Tab ${1}`;\n const elem2 = new LayoutElement();\n elem2.ContentType = ContentType.Grid;\n elem2.ElementType = 'grid';\n elem2.Name = `Tab ${2}`;\n elem2.Caption = `Tab ${2}`;\n return [elem1, elem2];\n })(),\n ],\n Width: { Type: 0, Value: 800 },\n Height: { Type: 0, Value: 500 },\n },\n },\n datatable: {\n Type: 'datatable',\n Layout: {\n PagingType: PagingType.Scroll,\n _Editable: true,\n Height: { Type: 0, Value: 250 },\n Width: { Type: 0, Value: 300 },\n CustomBaseStyle: {\n HeaderBackground: {\n A: 15,\n R: 157,\n G: 190,\n B: 223,\n },\n HeaderForeground: {\n A: 255,\n R: null,\n G: null,\n B: null,\n },\n Line: {\n A: 255,\n R: 23,\n G: 50,\n B: 94,\n },\n },\n },\n },\n tablecolumnvisibility: {\n Type: 'tablecolumnvisibility',\n Layout: {\n Caption: 'Column Visibility',\n ButtonType: 'mat-button',\n _Editable: true,\n Width: { Type: 0, Value: 150 },\n Height: { Type: 0, Value: 30 },\n },\n },\n primetable: { Type: 'primetable' },\n textarea: {\n Source: 'textarea',\n Placeholder: 'Please type ...',\n Type: 'textarea',\n Layout: {\n _Editable: true,\n Placeholder: 'Enter your text here...',\n Height: { Type: 0, Value: 200 },\n Width: { Type: 0, Value: 300 },\n BackgroundColor: {\n StartPoint: {\n X: 0,\n Y: 0.5,\n },\n EndPoint: {\n X: 1,\n Y: 0.5,\n },\n Colors: [\n {\n Color: {\n A: 240,\n R: 240,\n G: 240,\n B: 255,\n },\n Offset: 0,\n },\n ],\n Type: 1,\n },\n },\n },\n themeswitch: {\n Type: 'themeswitch',\n Layout: {\n _Editable: true,\n Width: { Type: 0, Value: 30 },\n Height: { Type: 0, Value: 30 },\n },\n },\n timespan: {\n Source: 'timespan',\n Placeholder: 'Please type ...',\n Type: 'timespan',\n Layout: {\n _Editable: true,\n Height: { Type: 0, Value: 250 },\n Width: { Type: 0, Value: 250 },\n },\n },\n togglebutton: {\n Caption: 'ToggleButton',\n Type: 'togglebutton',\n Layout: {\n Editable: true,\n Caption: 'ToggleButton',\n Height: { Type: 0, Value: 20 },\n Width: { Type: 0, Value: 100 },\n },\n },\n translationtextbox: {\n Type: 'translationtextbox',\n Layout: {\n _Editable: true,\n Width: { Type: 0, Value: 400 },\n Height: { Type: 0, Value: 50 },\n },\n },\n tree: {\n Editable: true,\n Type: 'tree',\n Layout: {\n _Editable: true,\n },\n },\n upload: {\n Placeholder: 'Please type ...',\n Type: 'upload',\n Layout: {\n Caption: 'Choose File',\n ButtonType: 'mat-button',\n _Editable: true,\n Width: { Type: 0, Value: 150 },\n Height: { Type: 0, Value: 40 },\n },\n },\n usermenu: {\n Editable: true,\n Type: 'usermenu',\n Variant: 'named',\n Layout: {\n Width: { Type: 0, Value: 35 },\n Height: { Type: 0, Value: 35 },\n },\n },\n video: {\n IsCheckedValue: false,\n Type: 'video',\n Layout: {\n _Editable: true,\n Width: { Type: 0, Value: 400 },\n Height: { Type: 0, Value: 275 },\n },\n },\n};\n","import { CacheService } from '../cache/cache.service';\nimport { EnumValue } from '../models/enums/enum.value';\n\nexport class EnumHelper {\n public static GetDropdownValues(value) {\n let result = [];\n Object.keys(value).slice(0, Object.keys(value).length / 2).forEach((key) => {\n result.push({ type: value[value[key]], value: value[key] })\n });\n return result;\n }\n public static GetSourceValues(value) {\n let result = [];\n Object.keys(value).slice(0, Object.keys(value).length / 2).forEach((key) => {\n result.push({ Value: value[value[key]], Caption: value[key] })\n });\n return result;\n }\n\n public static GetEnumValues(id) {\n return new Promise(resolve => {\n CacheService.ReadEnumValues(id).then(x => {\n const list = [];\n if (x) {\n x.forEach(y => {\n list.push(new EnumValue(y));\n });\n }\n resolve(list);\n });\n });\n }\n}\n","import {Directive, HostListener, HostBinding, Output, EventEmitter, Input} from '@angular/core';\n\n@Directive({\n selector: '[fileDragDrop]'\n})\n\nexport class FileDragDropDirective {\n //@Input() private allowed_extensions : Array = ['png', 'jpg', 'bmp'];\n @Output() private filesChangeEmiter: EventEmitter = new EventEmitter();\n //@Output() private filesInvalidEmiter : EventEmitter = new EventEmitter();\n @HostBinding('style.background') private background = '#eee';\n @HostBinding('style.border') private borderStyle = '2px dashed';\n @HostBinding('style.border-color') private borderColor = '#696D7D';\n @HostBinding('style.border-radius') private borderRadius = '5px';\n\n constructor() {\n }\n\n @HostListener('dragover', ['$event'])\n public onDragOver(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n this.background = 'lightgray';\n this.borderColor = 'cadetblue';\n this.borderStyle = '3px solid';\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n this.background = '#eee';\n this.borderColor = '#696D7D';\n this.borderStyle = '2px dashed';\n }\n\n @HostListener('drop', ['$event'])\n public onDrop(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n this.background = '#eee';\n this.borderColor = '#696D7D';\n this.borderStyle = '2px dashed';\n let files = evt.dataTransfer.files;\n let valid_files: Array = files;\n this.filesChangeEmiter.emit(valid_files);\n }\n}","import { CacheService } from '../cache/cache.service';\nimport { ValueFormulaNodeCalculator } from '../models/calculation/formula.node.calculator';\nimport { Comparer } from '../models/enums/comparer.enum';\nimport { Concat } from '../models/enums/contact.enum';\nimport { FormulaInputMode } from '../models/enums/formulainputmode.enum';\nimport { Order } from '../models/enums/order.enum';\nimport { RequestFilter } from '../models/rest/requestfilter';\nimport { RequestOptions } from '../models/rest/requestoptions';\nimport { RequestSort } from '../models/rest/requestsort';\nimport { Variable } from '../models/variable.model';\nimport { LayoutService } from '../services/layout.service';\nimport { AdvancedFormulaParser } from './formula.parser';\nimport { LayoutHelper } from './layout.helper';\nimport { MetaHelper } from './meta.helper';\n\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'RestParameterFilter',\n\tpure: false,\n})\nexport class RestParameterFilter implements PipeTransform {\n\ttransform(items: any[], filter: Object): any {\n\t\tif (!items || !filter) {\n\t\t\treturn items;\n\t\t}\n\t\treturn items.filter(\n\t\t\t(item) => item.ParameterType === filter['ParameterType']\n\t\t);\n\t}\n}\n\n@Pipe({\n\tname: 'CaptionFilter',\n\tpure: false,\n})\nexport class CaptionFilterPipe implements PipeTransform {\n\ttransform(items: any[], filter: string): any {\n\t\tif (!filter) {\n\t\t\treturn items;\n\t\t}\n\t\treturn items.filter((item) =>\n\t\t\titem.Caption.DefaultValue.toLowerCase().startsWith(filter.toLowerCase())\n\t\t);\n\t}\n}\n@Pipe({\n\tname: 'ERDFilter',\n\tpure: true,\n})\nexport class ERDFilterPipe implements PipeTransform {\n\ttransform(items: any[], filter: boolean, refresh: number): any {\n\t\tif (!filter) {\n\t\t\treturn items.filter(\n\t\t\t\t(value) =>\n\t\t\t\t\tvalue.Data.ContainerType !=\n\t\t\t\t\t'evidanza.App.Shared.Dynamic.ContainerClassObject'\n\t\t\t);\n\t\t}\n\t\treturn items;\n\t}\n}\n@Pipe({\n\tname: 'DataType',\n\tpure: true,\n})\nexport class DataTypePipe implements PipeTransform {\n\ttransform(field: any): any {\n\t\tif (field && field.DataTyp) {\n\t\t\treturn field.DataTyp.replace('System.', '');\n\t\t}\n\t\treturn null;\n\t}\n}\n\nexport class FilterHelper {\n\tpublic static AddDeletedFilter(requestoptions) {\n\t\tif (requestoptions.Filters && requestoptions.Filters.length > 0) {\n\t\t\tlet found = false;\n\t\t\trequestoptions.Filters.forEach((filter) => {\n\t\t\t\tif (filter.Name === '_Status') {\n\t\t\t\t\tfound = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (!found) {\n\t\t\t\tconst filter = new RequestFilter();\n\t\t\t\tfilter.Name = '_Status';\n\t\t\t\tfilter.Operator = Comparer.NotEqual;\n\t\t\t\tfilter.Value = 2;\n\t\t\t\trequestoptions.Filters.push(filter);\n\t\t\t}\n\t\t} else {\n\t\t\trequestoptions.Filters = [];\n\t\t\tconst filter = new RequestFilter();\n\t\t\tfilter.Name = '_Status';\n\t\t\tfilter.Operator = Comparer.NotEqual;\n\t\t\tfilter.Value = 2;\n\t\t\trequestoptions.Filters.push(filter);\n\t\t}\n\t}\n\tpublic static AddSearchFilter(requestoptions, searchfilter) {\n\t\tif (requestoptions.Filters && requestoptions.Filters.length > 0) {\n\t\t\tlet found = false;\n\t\t\trequestoptions.Filters.forEach((filter) => {\n\t\t\t\tif (filter.Filters && filter.Filters.length > 0) {\n\t\t\t\t\tFilterHelper.AddSearchFilter(requestoptions.Filters, searchfilter);\n\t\t\t\t} else {\n\t\t\t\t\tif (filter.Name === searchfilter.Name) {\n\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\tfilter.Operator = searchfilter.Operator;\n\t\t\t\t\t\tfilter.Value = searchfilter.Value;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tsearchfilter.Operator === Comparer.Between ||\n\t\t\t\t\t\t\tsearchfilter.Operator === Comparer.NotBetween\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tfilter.Value2 = searchfilter.Value2;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (!found) {\n\t\t\t\trequestoptions.Filters.push(searchfilter);\n\t\t\t}\n\t\t} else {\n\t\t\trequestoptions.Filters = [];\n\t\t\trequestoptions.Filters.push(searchfilter);\n\t\t}\n\t}\n\tpublic static CheckFilterValueChanges(requestoptions, searchfilter) {\n\t\tif (requestoptions.Filters && requestoptions.Filters.length > 0) {\n\t\t\tlet found = false;\n\t\t\tlet changes = false;\n\t\t\trequestoptions.Filters.forEach((filter) => {\n\t\t\t\tif (filter.Name === searchfilter.Name) {\n\t\t\t\t\tfound = true;\n\t\t\t\t\tif (filter.Value !== searchfilter.Value) {\n\t\t\t\t\t\tchanges = true;\n\t\t\t\t\t}\n\t\t\t\t\tif (filter.Value2 !== searchfilter.Value2) {\n\t\t\t\t\t\tchanges = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (!found) {\n\t\t\t\tchanges = true;\n\t\t\t}\n\t\t\treturn changes;\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\tpublic static FindFilterValue(filter, value) {\n\t\tif (filter.Value === value || filter.Value2 === value) {\n\t\t\treturn true;\n\t\t}\n\t\tif (\n\t\t\tfilter.Filters &&\n\t\t\tfilter.Filters.length > 0 &&\n\t\t\tfilter.Filters.some((x) => FilterHelper.FindFilterValue(x, value))\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic static ReplaceFilterValue(filter, value, replace) {\n\t\tif (filter.Value === value) {\n\t\t\tfilter.Value = replace;\n\t\t}\n\t\tif (filter.Value2 === value) {\n\t\t\tfilter.Value2 = replace;\n\t\t}\n\t\tif (filter.Filters && filter.Filters.length > 0) {\n\t\t\tfilter.Filters.forEach((x) => {\n\t\t\t\tFilterHelper.ReplaceFilterValue(x, value, replace);\n\t\t\t});\n\t\t}\n\t\treturn true;\n\t}\n\tpublic static PrepareFilter(DataSourceElement) {\n\t\tconsole.log('checking: ', DataSourceElement);\n\n\t\tconst Filter = new RequestOptions();\n\t\tFilter.Filters = [];\n\t\tFilter.Columns = [];\n\n\t\tif (DataSourceElement) {\n\t\t\tlet dataFilter;\n\t\t\tif (DataSourceElement.SRDataFilter) {\n\t\t\t\tdataFilter = DataSourceElement.SRDataFilter;\n\t\t\t} else if (DataSourceElement.DataFilter) {\n\t\t\t\tdataFilter = DataSourceElement.DataFilter;\n\t\t\t} else if (DataSourceElement.Filter) {\n\t\t\t\tdataFilter = DataSourceElement.Filter;\n\t\t\t}\n\n\t\t\tif (dataFilter) {\n\t\t\t\tif (dataFilter.Filters && dataFilter.Filters.length > 0) {\n\t\t\t\t\tconst parser = new AdvancedFormulaParser();\n\t\t\t\t\tparser.SetVariables([], FormulaInputMode.AliasKey);\n\t\t\t\t\tconst calculator = new ValueFormulaNodeCalculator(\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tFilterHelper.GetVariables(DataSourceElement),\n\t\t\t\t\t\tnew Map()\n\t\t\t\t\t);\n\t\t\t\t\tdataFilter.Filters.forEach((f) => {\n\t\t\t\t\t\tconst res = FilterHelper.ReplaceVariables(f, (value) => {\n\t\t\t\t\t\t\tconst fni = parser.Parse(value);\n\t\t\t\t\t\t\tconst fniVal = calculator.Calc(fni);\n\t\t\t\t\t\t\tif (fniVal) {\n\t\t\t\t\t\t\t\treturn fniVal.Value;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\tFilter.Filters.push(res);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (dataFilter.Columns) {\n\t\t\t\t\tFilter.Columns.push(...dataFilter.Columns);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn Filter;\n\t}\n\tpublic static GetVariableList(elemName, layout) {\n\t\tconst retVal = {\n\t\t\tElemFound: false,\n\t\t\tVariables: [],\n\t\t};\n\t\tconst path = LayoutHelper.GetElementPath(layout, elemName);\n\t\tif (path.length > 0) {\n\t\t\tretVal.ElemFound = true;\n\t\t\tpath.forEach((element) => {\n\t\t\t\tif (element && element.Variables) {\n\t\t\t\t\tretVal.Variables.push(...element.Variables);\n\t\t\t\t}\n\t\t\t});\n\t\t\tretVal.Variables.reverse();\n\t\t}\n\t\treturn retVal;\n\t}\n\tpublic static GetVariables(element) {\n\t\tconst variables = [];\n\t\tif (element && element.Variables) {\n\t\t\tvariables.push(...element.Variables);\n\t\t}\n\t\tvariables.push(...FilterHelper.GetParentVariables(element));\n\t\treturn variables;\n\t}\n\tprivate static GetParentVariables(element) {\n\t\tconst variables = [];\n\t\tconst layout = LayoutService.SelectedLayout.getValue();\n\t\tif (layout) {\n\t\t\tconst parent = MetaHelper.FindParent(layout, element);\n\t\t\tif (parent) {\n\t\t\t\tif (parent.Variables) {\n\t\t\t\t\tvariables.push(...parent.Variables);\n\t\t\t\t}\n\t\t\t\tvariables.push(...FilterHelper.GetParentVariables(parent));\n\t\t\t}\n\t\t}\n\t\treturn variables;\n\t}\n\tpublic static GetGlobalVariables() {\n\t\tconst prom = new Promise((resolve, reject) => {\n\t\t\tCacheService.ReadGlobalVariables().then((variables) => {\n\t\t\t\tconst result = [];\n\t\t\t\tif (variables && variables.length > 0) {\n\t\t\t\t\tvariables.forEach((v) => {\n\t\t\t\t\t\tconst item = new Variable();\n\t\t\t\t\t\titem.Formula = v.Value;\n\t\t\t\t\t\titem.Name = v.Name;\n\t\t\t\t\t\titem.Type = v.Type;\n\t\t\t\t\t\tresult.push(item);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tresolve(result);\n\t\t\t});\n\t\t});\n\t\treturn prom;\n\t}\n\tpublic static ReplaceVariables(filter, manipulateValue) {\n\t\tlet retVal = Object.assign({}, filter);\n\t\tif (filter.Filters) {\n\t\t\tconst newList = [];\n\t\t\tfilter.Filters.forEach((f) => {\n\t\t\t\tconst res = FilterHelper.ReplaceVariables(f, manipulateValue);\n\t\t\t\tif (res) {\n\t\t\t\t\tnewList.push(res);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (newList.length > 0) {\n\t\t\t\tretVal.Filters = newList;\n\t\t\t} else {\n\t\t\t\tretVal = null;\n\t\t\t}\n\t\t} else if (filter.Value) {\n\t\t\tretVal.Value = manipulateValue(filter.Value);\n\t\t\tif (filter.IsOptional) {\n\t\t\t\tif (\n\t\t\t\t\tretVal.Value == null ||\n\t\t\t\t\tretVal.Value === '' ||\n\t\t\t\t\t(Array.isArray(retVal.Value) && retVal.Value.length === 0)\n\t\t\t\t) {\n\t\t\t\t\tretVal = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (\n\t\t\t\tfilter.Operator === Comparer.Between ||\n\t\t\t\tfilter.Operator === Comparer.NotBetween\n\t\t\t) {\n\t\t\t\tif (filter.Value2) {\n\t\t\t\t\tretVal.Value2 = manipulateValue(filter.Value2);\n\t\t\t\t\tif (filter.IsOptional) {\n\t\t\t\t\t\tif (retVal.Value2 == null || retVal.Value2 === '') {\n\t\t\t\t\t\t\tretVal = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn retVal;\n\t}\n\n\tpublic static ApplyFilter(\n\t\toptions: RequestOptions,\n\t\tdata: any[],\n\t\tsort: any[] = null\n\t): any[] {\n\t\tlet retVal = [];\n\t\tif (data && data.length > 0) {\n\t\t\tif (options && options.Filters && options.Filters.length > 0) {\n\t\t\t\tretVal = data.filter((x) => FilterHelper.AddValue(options.Filters, x));\n\t\t\t} else {\n\t\t\t\tretVal.push(...data);\n\t\t\t}\n\t\t}\n\t\tif (sort && retVal.length > 1) {\n\t\t\tsort.forEach((col: RequestSort) => {\n\t\t\t\tretVal = retVal.sort((a, b) => {\n\t\t\t\t\tif (a[col.Name] > b[col.Name]) {\n\t\t\t\t\t\treturn col.Order == Order.ASC ? 1 : -1;\n\t\t\t\t\t}\n\t\t\t\t\tif (a[col.Name] < b[col.Name]) {\n\t\t\t\t\t\treturn col.Order == Order.ASC ? -1 : 1;\n\t\t\t\t\t}\n\t\t\t\t\tif (a[col.Name] == b[col.Name]) {\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\treturn retVal;\n\t}\n\tpublic static ApplyTableFilter(\n\t\tfilters: RequestFilter[],\n\t\tdata: any[],\n\t\tsort: RequestSort[] = null\n\t): any[] {\n\t\tlet retVal = [];\n\t\tif (data && data.length > 0) {\n\t\t\tif (filters && filters.length > 0) {\n\t\t\t\tretVal = data.filter((x) => FilterHelper.AddValue(filters, x.data));\n\t\t\t} else {\n\t\t\t\tretVal.push(...data);\n\t\t\t}\n\t\t}\n\t\tif (sort && retVal.length > 1) {\n\t\t\tsort.forEach((col) => {\n\t\t\t\tretVal = retVal.sort((a, b) => {\n\t\t\t\t\tif (a.data[col.Name] > b.data[col.Name]) {\n\t\t\t\t\t\treturn col.Order == Order.ASC ? 1 : -1;\n\t\t\t\t\t}\n\t\t\t\t\tif (a.data[col.Name] < b.data[col.Name]) {\n\t\t\t\t\t\treturn col.Order == Order.ASC ? -1 : 1;\n\t\t\t\t\t}\n\t\t\t\t\tif (a.data[col.Name] == b.data[col.Name]) {\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\treturn retVal;\n\t}\n\n\tprivate static AddValue(filters: RequestFilter[], data: any): boolean {\n\t\tlet add = false;\n\t\tif (data) {\n\t\t\tadd = true;\n\t\t\tif (filters && filters.length > 0) {\n\t\t\t\tif (filters[0].ConcatOperator === Concat.Or) {\n\t\t\t\t\tadd = filters.some((x) => {\n\t\t\t\t\t\tif (x.Filters && x.Filters.length > 0) {\n\t\t\t\t\t\t\treturn FilterHelper.AddValue(x.Filters, data);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn FilterHelper.CheckFilter(\n\t\t\t\t\t\t\t\tx.Name,\n\t\t\t\t\t\t\t\tx.Operator,\n\t\t\t\t\t\t\t\tx.Value,\n\t\t\t\t\t\t\t\tx.Value2,\n\t\t\t\t\t\t\t\tdata\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tfilters.some((x) => {\n\t\t\t\t\t\tlet actualAdd;\n\t\t\t\t\t\tif (x.Filters && x.Filters.length > 0) {\n\t\t\t\t\t\t\tactualAdd = FilterHelper.AddValue(x.Filters, data);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tactualAdd = FilterHelper.CheckFilter(\n\t\t\t\t\t\t\t\tx.Name,\n\t\t\t\t\t\t\t\tx.Operator,\n\t\t\t\t\t\t\t\tx.Value,\n\t\t\t\t\t\t\t\tx.Value2,\n\t\t\t\t\t\t\t\tdata\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!actualAdd) {\n\t\t\t\t\t\t\tadd = false;\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn add;\n\t}\n\n\tprivate static CheckFilter(\n\t\tname: string,\n\t\toperator: Comparer,\n\t\tvalue: any,\n\t\tvalue2: any,\n\t\tdata: any\n\t): boolean {\n\t\tconst val = data[name];\n\t\tswitch (operator) {\n\t\t\tcase Comparer.Equal:\n\t\t\t\treturn val === value;\n\t\t\tcase Comparer.Greater:\n\t\t\t\treturn val > value;\n\t\t\tcase Comparer.GreaterEqual:\n\t\t\t\treturn val >= value;\n\t\t\tcase Comparer.In:\n\t\t\t\treturn Array.isArray(value) && value.indexOf(val) > -1;\n\t\t\tcase Comparer.Like:\n\t\t\t\treturn (\n\t\t\t\t\ttypeof val === 'string' &&\n\t\t\t\t\ttypeof value === 'string' &&\n\t\t\t\t\tval.toLowerCase().indexOf(value.toLowerCase()) > -1\n\t\t\t\t);\n\t\t\tcase Comparer.NotLike:\n\t\t\t\treturn (\n\t\t\t\t\ttypeof val === 'string' &&\n\t\t\t\t\ttypeof value === 'string' &&\n\t\t\t\t\tval.toLowerCase().indexOf(value.toLowerCase()) == -1\n\t\t\t\t);\n\t\t\tcase Comparer.NotEqual:\n\t\t\t\treturn val !== value;\n\t\t\tcase Comparer.NotIn:\n\t\t\t\treturn Array.isArray(value) && value.indexOf(val) === -1;\n\t\t\tcase Comparer.Smaller:\n\t\t\t\treturn val < value;\n\t\t\tcase Comparer.SmallerEqual:\n\t\t\t\treturn val <= value;\n\t\t\tcase Comparer.Between:\n\t\t\t\treturn value <= val && val <= value2;\n\t\t\tcase Comparer.NotBetween:\n\t\t\t\treturn val < value || value2 < val;\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n}\n","import { Directive, ElementRef, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[FocusOnShow]',\n})\nexport class FocusOnShowDirective implements OnInit {\n\n constructor(private el: ElementRef) {\n if (!el.nativeElement['focus']) {\n throw new Error('Element does not accept focus.');\n }\n }\n\n ngOnInit(): void {\n const input: HTMLInputElement = this.el.nativeElement as HTMLInputElement;\n input.focus();\n input.select();\n }\n}","import { FormulaNodeInformation, FormulaStatics, VariablesNodeInformation } from '../models/basic/formulaEditor.model';\nimport { BinaryOperation } from '../models/enums/binaryoperation.enum';\nimport { CompareType } from '../models/enums/comparetype.enum';\nimport { FormulaInputMode } from '../models/enums/formulainputmode.enum';\nimport { FormulaNodeType } from '../models/enums/formulanodetype.enum';\nimport { OperationType } from '../models/enums/operationtype.enum';\nimport { StringHelper } from './array.helpers';\nimport { TranslateHelper } from './injector.helper';\n\nexport class AdvancedFormulaParser {\n Variables: Map;\n\n private static GetNextSubString(formula: string, terminators: string[]): string {\n let retVal = formula;\n let openBrackets = 0;\n let open2 = false;\n let open3 = false;\n let startindex = 0;\n\n if (terminators.indexOf('-') > -1) {\n const trim = formula.trim();\n if (trim.length > 0 && trim[0] === '-') {\n startindex = formula.indexOf('-') + 1;\n }\n }\n for (let i = startindex; i < formula.length; i++) {\n if (openBrackets === 0 && !open2 && !open3 && terminators.indexOf(formula[i]) > -1) {\n if (formula[i] !== '-') {\n retVal = formula.substr(0, i);\n break;\n } else {\n const charBefore = formula[i - 1];\n if (charBefore !== '*' && charBefore !== '/' && charBefore !== '(' &&\n charBefore !== '<' && charBefore !== '>' && charBefore !== '=') {\n retVal = formula.substr(0, i);\n break;\n }\n }\n }\n switch (formula[i]) {\n case '[':\n case '(':\n if (!open2) {\n openBrackets++;\n }\n break;\n case ']':\n case ')':\n if (!open2) {\n openBrackets--;\n }\n break;\n case '\"':\n open2 = !open2;\n break;\n case '\\'':\n if (!open2) {\n open3 = !open3;\n }\n break;\n }\n }\n\n return retVal;\n }\n\n private static AddNodeAbove(retVal: FormulaNodeInformation, type: OperationType): FormulaNodeInformation {\n const tmp = new FormulaNodeInformation();\n tmp.Operation.OperationType = type;\n tmp.Type = FormulaNodeType.Operation;\n tmp.AddOperand(retVal);\n return tmp;\n }\n\n Parse(formula: string): FormulaNodeInformation {\n let retVal = this.GenerateNextNode(formula, 0);\n if (retVal.Operation && retVal.Operation.OperationType === OperationType.None) {\n if (retVal.Operands.length > 1) {\n retVal.Type = FormulaNodeType.Operation;\n retVal.Operation.OperationType = OperationType.Addition;\n } else if (retVal.Operands.length > 0) {\n retVal = retVal.Operands[0];\n }\n }\n retVal.SetParents();\n return retVal;\n }\n\n SetVariables(variables: VariablesNodeInformation[], mode: FormulaInputMode) {\n const dict = new Map();\n switch (mode) {\n case FormulaInputMode.AliasKey:\n variables.forEach(function (v) {\n if (v.AliasKey) {\n dict.set(v.AliasKey.toUpperCase().trim(), v);\n }\n });\n break;\n case FormulaInputMode.VariableName:\n variables.forEach(function (v) {\n if (v.Name) {\n dict.set(v.Name.toUpperCase().trim(), v);\n }\n });\n break;\n }\n this.Variables = dict;\n }\n\n private GenerateNextNode(toParse: string, depth: number): FormulaNodeInformation {\n let retVal = new FormulaNodeInformation();\n if (depth > 250) {\n throw TranslateHelper.TranslatorInstance.instant('@@Formel-Parser Fehler wegen Rekursionstiefe.');\n }\n let isNegative = false;\n while (toParse.length > 0) {\n const firstchar = toParse[0];\n let substring = '';\n switch (firstchar) {\n case ' ':\n toParse = toParse.substring(1);\n continue;\n case '-':\n isNegative = true;\n if (retVal.Operands.length > 0) {\n if (retVal.Type !== FormulaNodeType.Operation) {\n retVal.Operation.OperationType = OperationType.Addition;\n retVal.Type = FormulaNodeType.Operation;\n } else if (retVal.Operation.OperationType !== OperationType.Addition) {\n retVal = AdvancedFormulaParser.AddNodeAbove(retVal, OperationType.Addition);\n }\n }\n toParse = toParse.substring(substring.length + 1);\n continue;\n case '+':\n substring = AdvancedFormulaParser.GetNextSubString(toParse.substring(1), ['-', '+', '<', '>', '=']);\n if (retVal.Type !== FormulaNodeType.Operation) {\n retVal.Operation.OperationType = OperationType.Addition;\n retVal.Type = FormulaNodeType.Operation;\n } else if (retVal.Operation.OperationType !== OperationType.Addition) {\n retVal = AdvancedFormulaParser.AddNodeAbove(retVal, OperationType.Addition);\n }\n this.AddNextNode(substring, retVal, depth);\n toParse = toParse.substring(substring.length + 1);\n break;\n case '/':\n substring = AdvancedFormulaParser.GetNextSubString(toParse.substring(1), ['-', '+', '/', '*', '<', '>', '=']);\n if (retVal.Type !== FormulaNodeType.Operation) {\n retVal.Operation.OperationType = OperationType.Division;\n retVal.Type = FormulaNodeType.Operation;\n this.AddNextNode(substring, retVal, depth);\n } else if (retVal.Operation.OperationType !== OperationType.Division) {\n retVal = this.ReArangeOperands(retVal, OperationType.Division, substring, depth);\n } else {\n this.AddNextNode(substring, retVal, depth);\n }\n toParse = toParse.substring(substring.length + 1);\n break;\n case '*':\n substring = AdvancedFormulaParser.GetNextSubString(toParse.substring(1), ['-', '+', '/', '*', '<', '>', '=']);\n if (retVal.Type !== FormulaNodeType.Operation) {\n retVal.Operation.OperationType = OperationType.Multiplication;\n retVal.Type = FormulaNodeType.Operation;\n this.AddNextNode(substring, retVal, depth);\n } else if (retVal.Operation.OperationType !== OperationType.Multiplication) {\n retVal = this.ReArangeOperands(retVal, OperationType.Multiplication, substring, depth);\n } else {\n this.AddNextNode(substring, retVal, depth);\n }\n toParse = toParse.substring(substring.length + 1);\n break;\n case '>':\n if (toParse.length > 1 && toParse[1] === '=') {\n retVal = this.CreateComparer(toParse, retVal, CompareType.GreaterEqual, 2, depth);\n } else {\n retVal = this.CreateComparer(toParse, retVal, CompareType.Greater, 1, depth);\n }\n toParse = '';\n break;\n case '<':\n if (toParse.length > 1 && toParse[1] === '=') {\n retVal = this.CreateComparer(toParse, retVal, CompareType.SmallerEqual, 2, depth);\n } else if (toParse.length > 1 && toParse[1] === '>') {\n retVal = this.CreateComparer(toParse, retVal, CompareType.NotEqual, 2, depth);\n } else {\n retVal = this.CreateComparer(toParse, retVal, CompareType.Smaller, 1, depth);\n }\n toParse = '';\n break;\n case '=':\n retVal = this.CreateComparer(toParse, retVal, CompareType.Equal, 1, depth);\n toParse = '';\n break;\n case '(':\n substring = AdvancedFormulaParser.GetNextSubString(toParse.substring(1), [')']);\n this.AddNextNode(substring, retVal, depth);\n toParse = toParse.substring(substring.length + 2);\n if (isNegative) {\n retVal.Operands[retVal.Operands.length - 1].SignIsNegative = isNegative;\n }\n break;\n case '@':\n substring = AdvancedFormulaParser.GetNextSubString(toParse, ['-', '+', '/', '*', '(', ')', '<', '>', '=']);\n const variablename = substring.trim();\n const sysVar = new FormulaNodeInformation();\n sysVar.SignIsNegative = isNegative;\n sysVar.Name = variablename;\n sysVar.AliasKey = variablename;\n sysVar.VariableID = variablename;\n sysVar.SaveTag = variablename;\n sysVar.Type = FormulaNodeType.SystemVariable;\n toParse = toParse.substring(substring.length);\n retVal.AddOperand(sysVar);\n break;\n default:\n substring = AdvancedFormulaParser.GetNextSubString(toParse, ['(']);\n const ssTrimToLower = substring.trim().toLowerCase();\n const formulaKey = FormulaStatics._KeyWords.get(ssTrimToLower);\n if (formulaKey) {\n toParse = toParse.substring(substring.length + 1);\n let toadd = retVal;\n if (retVal.Type === FormulaNodeType.Operation) {\n toadd = this.ReArangeOperands(retVal, OperationType.None, null, depth);\n }\n let substring2 = AdvancedFormulaParser.GetNextSubString(toParse, [')']);\n const substrlength = substring2.length;\n if (ssTrimToLower === 'and') {\n toadd.Operation.OperationType = OperationType.Binary;\n toadd.Operation.BinaryOperation = BinaryOperation.And;\n } else if (ssTrimToLower === 'or') {\n toadd.Operation.OperationType = OperationType.Binary;\n toadd.Operation.BinaryOperation = BinaryOperation.Or;\n } else {\n toadd.Operation.OperationType = OperationType.Function;\n toadd.Operation.FunctionType = formulaKey;\n }\n toadd.Type = FormulaNodeType.Operation;\n\n while (true) {\n const sstring = AdvancedFormulaParser.GetNextSubString(substring2, [';']);\n this.AddNextNode(sstring.trim(), toadd, depth);\n if (substring2.length === sstring.length) {\n break;\n }\n substring2 = substring2.substring(sstring.length + 1);\n }\n toParse = toParse.substring(substrlength + 1);\n retVal.SignIsNegative = isNegative;\n } else {\n const tmp = new FormulaNodeInformation();\n tmp.SignIsNegative = isNegative;\n substring = AdvancedFormulaParser.GetNextSubString(toParse, ['-', '+', '/', '*', '(', ')', '<', '>', '=']);\n let trimmedsubstring = substring.trim();\n if (firstchar >= '0' && firstchar <= '9') {\n for (let i = trimmedsubstring.length - 1; i >= 0; i--) {\n if (trimmedsubstring[i] === ',') {\n trimmedsubstring = trimmedsubstring.replace('.', '').replace(',', '.');\n break;\n }\n }\n tmp.Value = parseFloat(trimmedsubstring);\n tmp.Type = FormulaNodeType.Value;\n } else {\n if (substring[0] === '\"') {\n if (trimmedsubstring.length > 1 && trimmedsubstring[trimmedsubstring.length - 1] === '\"') {\n tmp.TextValue = trimmedsubstring.substr(1, trimmedsubstring.length - 2);\n tmp.Type = FormulaNodeType.TextValue;\n } else {\n throw TranslateHelper.TranslatorInstance.instant('@@Text endet nicht mit \".');\n }\n } else if (substring[0] === '\\'') {\n tmp.DateValue = new Date(trimmedsubstring.substr(1, trimmedsubstring.length - 2));\n tmp.Type = FormulaNodeType.DateValue;\n } else if (substring.toLowerCase() === 'true') {\n tmp.BoolValue = true;\n tmp.Type = FormulaNodeType.BoolValue;\n } else if (substring.toLowerCase() === 'false') {\n tmp.BoolValue = false;\n tmp.Type = FormulaNodeType.BoolValue;\n } else {\n tmp.Type = FormulaNodeType.Variable;\n this.SetTag(tmp, trimmedsubstring);\n }\n }\n toParse = toParse.substring(substring.length);\n retVal.AddOperand(tmp);\n }\n break;\n }\n isNegative = false;\n }\n\n if (retVal.Operands.length > 1 && retVal.Type === FormulaNodeType.None && retVal.Operation.OperationType === OperationType.None) {\n retVal.Type = FormulaNodeType.Operation;\n retVal.Operation.OperationType = OperationType.Addition;\n }\n return retVal;\n }\n\n private AddNextNode(sstring: string, retVal: FormulaNodeInformation, depth: number) {\n const node = this.GenerateNextNode(sstring, depth + 1);\n if (node.Type === FormulaNodeType.None && node.Operands.length === 1) {\n retVal.AddOperand(node.Operands[0]);\n } else {\n retVal.AddOperand(node);\n }\n }\n\n private ReArangeOperands(retVal: FormulaNodeInformation, type: OperationType, toParse: string, depth: number) {\n const tmp = new FormulaNodeInformation();\n tmp.Operation.OperationType = type;\n tmp.Type = FormulaNodeType.Operation;\n switch (retVal.Operation.OperationType) {\n case OperationType.Compare:\n case OperationType.Subtraktion:\n case OperationType.Addition:\n tmp.AddOperand(retVal.Operands[retVal.Operands.length - 1]);\n retVal.AddOperand(tmp);\n if (toParse == null) {\n return tmp;\n }\n break;\n case OperationType.Function:\n case OperationType.Multiplication:\n case OperationType.Division:\n tmp.AddOperand(retVal);\n retVal = tmp;\n break;\n }\n if (toParse != null) {\n this.AddNextNode(toParse, tmp, depth);\n }\n return retVal;\n }\n\n private CreateComparer(toParse: string, retVal: FormulaNodeInformation, ct: CompareType, length: number, depth: number):\n FormulaNodeInformation {\n if (retVal.Type !== FormulaNodeType.Operation) {\n retVal.Type = FormulaNodeType.Operation;\n retVal.Operation.OperationType = OperationType.Compare;\n retVal.Operation.CompareType = ct;\n } else if (retVal.Operation.OperationType !== OperationType.Compare) {\n retVal = AdvancedFormulaParser.AddNodeAbove(retVal, OperationType.Compare);\n retVal.Operation.CompareType = ct;\n }\n this.AddNextNode(toParse.substring(length), retVal, depth);\n return retVal;\n }\n\n private SetTag(formula: FormulaNodeInformation, variablename: string) {\n if (this.Variables) {\n const variab = this.Variables.get(variablename.toUpperCase());\n if (variab) {\n formula.Name = variab.Name;\n formula.AliasKey = variab.AliasKey;\n formula.VariableID = variab.VariableID;\n formula.SaveTag = variab.VariableObject;\n } else {\n throw StringHelper.format(TranslateHelper.TranslatorInstance.instant('@@Variable {0} nicht gefunden.'), [variablename]);\n }\n } else {\n formula.Name = variablename;\n formula.AliasKey = variablename;\n formula.VariableID = variablename;\n formula.SaveTag = variablename;\n }\n }\n}\n","import { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\nimport { BehaviorSubject, Subject } from \"rxjs\";\nimport { GitService } from \"../services/git.service\";\nimport { InjectorHelper } from \"./injector.helper\";\n\nexport class GitHelper {\n public static IsActive = false;\n public static Branches = [];\n public static get LocalBranches() {\n return this.Branches.filter((value) => !value.IsRemote);\n }\n public static get RemoteBranches() {\n return GitHelper.Branches.filter((value) => value.IsRemote);\n }\n public static BranchesChanged: Subject = new Subject();\n\n public static Repositories = [];\n public static RepositoriesChanged: Subject = new Subject();\n\n public static InitComplete = false;\n private static Service: GitService;\n private static handleError(error: HttpErrorResponse) {\n\n return ;\n }\n public static Initialize() {\n return new Promise((resolve) => {\n const http = InjectorHelper.InjectorInstance.get(HttpClient);\n GitHelper.Service = new GitService(http);\n\n GitHelper.Service.IsGitActive().subscribe((result) => {\n GitHelper.IsActive = result;\n resolve(result);\n if (result) {\n GitHelper.GetRepositories().then((successful) => {\n GitHelper.GetBranches().then((succesful) => {\n GitHelper.InitComplete = true;\n });\n })\n }\n }, (err) => {\n GitHelper.IsActive = false;\n resolve(false);\n });\n let repository = localStorage.getItem('SelectedRepository');\n if (repository) {\n repository = JSON.parse(repository);\n GitHelper.SelectedRepository.next(repository);\n }\n GitHelper.SelectedRepository.subscribe((value) => {\n if (value == null) {\n localStorage.removeItem('SelectedRepository');\n } else if (!(typeof (value) == 'string' && value == \"INITVALUE\")) {\n localStorage.setItem(\"SelectedRepository\", JSON.stringify(value));\n }\n }) \n })\n }\n private static GetBranches() {\n return new Promise((resolve) => {\n this.Service.GetBranches().subscribe((branches) => {\n GitHelper.Branches = branches;\n if (branches && branches.length > 0) {\n let branch = branches.find((value) => value.IsCheckedOut);\n if (branch != null) {\n GitHelper.SelectedBranch = branch;\n }\n }\n GitHelper.BranchesChanged.next(branches);\n resolve(true);\n });\n })\n }\n private static GetRepositories() {\n return new Promise((resolve) => {\n this.Service.ReadRepositories().subscribe((items) => {\n GitHelper.Repositories = items;\n if (items && items.length > 0) {\n let item = items.find((value) => value.IsCheckedOut);\n if (item != null) {\n this.SelectedBranch = item;\n }\n }\n GitHelper.RepositoriesChanged.next(items);\n resolve(true);\n });\n })\n }\n public static SelectedBranch: BehaviorSubject = new BehaviorSubject(\"INITVALUE\");\n public static SelectedRepository: BehaviorSubject = new BehaviorSubject(null); \n \n //static UpdateRepositories() {\n // let retVal = [];\n // retVal.push()\n // if (GitHelper.Repositories && GitHelper.Repositories.length > 0) {\n // GitHelper.Repositories.forEach((repository) => {\n // retVal.push({\n // Caption: repository.Name,\n // ID: repository.Name,\n // Icon: 'git_repository',\n // Index: 4,\n // Parent: '',\n // Security: {\n // Name: 'evidanza.App.Shared.Security.DevelopmentRight',\n // Value: 1\n // },\n // Content: GitSettings,\n // InitArgs: repository.Name\n // });\n // })\n // }\n // GitHelper.SettingsEntry.Children = retVal;\n //}\n}","import { WorkflowEngine } from '../workflow/workflow.engine';\nimport { EventActionType } from '../models/enums/eventactiontype.enum';\nimport { WorkflowStatus } from '../models/workflow/workflow.model';\nimport { GLOBALEVENTREGISTRY, LAYOUTEVENTREGISTRY } from '../services/dynamic.component.service';\nimport { WorkflowService } from '../services/workflow.service';\nimport { VariableHelper } from './variable.helper';\n\n// @dynamic\nexport class GlobalEventHelper {\n private static ActiveSubscriptions;\n private static BaseLayoutSubscriptions;\n private static ActiveLayoutEventSubscriptions;\n private static BaseLayoutLayoutEventSubscriptions;\n\n public static InitGlobalEvents(layout) {\n GlobalEventHelper.Unsubscribe(GlobalEventHelper.ActiveSubscriptions);\n GlobalEventHelper.ActiveSubscriptions = {};\n GlobalEventHelper.SubscribeGlobalEvents(GlobalEventHelper.ActiveSubscriptions,\n layout, layout.GlobalEvents, GLOBALEVENTREGISTRY);\n\n GlobalEventHelper.Unsubscribe(GlobalEventHelper.ActiveLayoutEventSubscriptions);\n GlobalEventHelper.ActiveLayoutEventSubscriptions = {};\n GlobalEventHelper.SubscribeLayoutEvents(GlobalEventHelper.ActiveLayoutEventSubscriptions, layout);\n }\n\n public static InitBaseLayout(layout) {\n GlobalEventHelper.Unsubscribe(GlobalEventHelper.BaseLayoutSubscriptions);\n GlobalEventHelper.BaseLayoutSubscriptions = {};\n GlobalEventHelper.SubscribeGlobalEvents(GlobalEventHelper.BaseLayoutSubscriptions,\n layout, layout.GlobalEvents, GLOBALEVENTREGISTRY);\n\n GlobalEventHelper.Unsubscribe(GlobalEventHelper.BaseLayoutLayoutEventSubscriptions);\n GlobalEventHelper.BaseLayoutLayoutEventSubscriptions = {};\n GlobalEventHelper.SubscribeLayoutEvents(GlobalEventHelper.BaseLayoutLayoutEventSubscriptions, layout);\n }\n\n private static Unsubscribe(subObject) {\n if (subObject) {\n const keys = Object.keys(subObject);\n if (keys && keys.length > 0) {\n keys.forEach((key) => {\n subObject[key].unsubscribe();\n });\n }\n }\n }\n\n private static SubscribeGlobalEvents(subObject, layout, eventList, eventRegistry) {\n if (eventList) {\n eventList.forEach((event) => {\n if (event.Handlers && event.Handlers.length > 0) {\n const baseEvent = eventRegistry.find((value) => value.ID == event.ID);\n if (baseEvent && !subObject[baseEvent.ID]) {\n subObject[baseEvent.ID] = baseEvent.Trigger.subscribe((data) => {\n event.Handlers.forEach((action) => {\n switch (action.ActionType) {\n case EventActionType.Workflow:\n const wf = layout.Workflows.find(item => item.ID === action.Action && item.Data);\n if (wf) {\n const status = new WorkflowStatus(wf.ID, wf.Caption);\n WorkflowStatus.CopyContext(WorkflowService.DialogStatusCopy.getValue(), status.Context);\n status.WorkflowLayoutService.init(layout, layout);\n status.ActualParameter = data;\n const engine = new WorkflowEngine(wf.Data, status);\n engine.startExecution();\n break;\n }\n break;\n case EventActionType.Variable:\n const v = VariableHelper.AvailableVariables[layout._Id].find((value) => value.ID == action.Action);\n if (v) {\n if (event.Write) {\n v.Value = data;\n VariableHelper.ValueChanged(layout, v);\n } else {\n // ??\n }\n }\n break;\n }\n });\n });\n }\n }\n });\n }\n }\n\n private static SubscribeLayoutEvents(subObject, layout) {\n if (layout.LayoutEvents) {\n const eventList = [];\n layout.LayoutEvents.forEach(x => {\n let actEvent = eventList.find(y => y.ID == x.EventID);\n if (!actEvent) {\n actEvent = {\n ID: x.EventID,\n Handlers: []\n };\n eventList.push(actEvent);\n }\n actEvent.Handlers.push(x);\n });\n GlobalEventHelper.SubscribeGlobalEvents(subObject, layout, eventList, LAYOUTEVENTREGISTRY);\n }\n }\n}\n","import { Injector } from \"@angular/core\";\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Router } from \"@angular/router\";\n// @dynamic\nexport class InjectorHelper {\n static InjectorInstance: Injector;\n}\n// @dynamic\nexport class DialogHelper {\n static DialogInstance: MatDialog;\n}\n// @dynamic\nexport class TranslateHelper {\n static TranslatorInstance: TranslateService;\n}\n// @dynamic\nexport class RoutingHelper {\n static Router: Router;\n}","import { Subject } from 'rxjs';\n\nexport class IntersectHelper {\n Observer = null; \n Columns = {};\n OnChange = new Subject();\n constructor() {\n this.Observer = new IntersectionObserver(entries => {\n let change = false;\n entries.forEach(entry => {\n const column = this.Columns[entry.target.getAttribute('data')];\n if (column && column.isIntersecting !== entry.isIntersecting) {\n column.isIntersecting = entry.isIntersecting;\n change = true;\n }\n });\n if (change) {\n this.OnChange.next(null);\n }\n }, { threshold: 0 });\n }\n}","// Import the core angular services.\nimport { Injectable } from \"@angular/core\";\nimport { NgZone } from \"@angular/core\";\n\n// ----------------------------------------------------------------------------------- //\n// ----------------------------------------------------------------------------------- //\ntype Terminal = boolean | \"match\";\n\ninterface ListenerOptions {\n priority: number;\n terminal?: Terminal;\n terminalWhitelist?: string[];\n inputs?: boolean;\n}\n\ninterface Listener {\n priority: number;\n terminal: Terminal;\n terminalWhitelist: TerminalWhitelist;\n inputs: boolean;\n bindings: Bindings;\n}\n\ninterface Handler {\n (event: KeyboardEvent): boolean | void;\n}\n\ninterface Bindings {\n [key: string]: Handler;\n}\n\ninterface NormalizedKeys {\n [key: string]: string;\n}\n\ninterface TerminalWhitelist {\n [key: string]: boolean;\n}\n\nexport interface Unlisten {\n (): void;\n}\n\n// Map to normalized keys across different browser implementations.\n// --\n// https://github.com/angular/angular/blob/5.0.5/packages/platform-browser/src/browser/browser_adapter.ts#L25-L42\nvar KEY_MAP = {\n \"\\b\": \"Backspace\",\n \"\\t\": \"Tab\",\n \"\\x7F\": \"Delete\",\n \"\\x1B\": \"Escape\",\n \"Del\": \"Delete\",\n \"Esc\": \"Escape\",\n \"Left\": \"ArrowLeft\",\n \"Right\": \"ArrowRight\",\n \"Up\": \"ArrowUp\",\n \"Down\": \"ArrowDown\",\n \"Menu\": \"ContextMenu\",\n \"Scroll\": \"ScrollLock\",\n \"Win\": \"OS\",\n \" \": \"Space\",\n \".\": \"Dot\"\n};\n\n// NOTE: These will only be applied after the key has been lower-cased. As such, both the\n// alias and the final value (in this mapping) should also be lower-case.\nvar KEY_ALIAS = {\n command: \"meta\",\n ctrl: \"control\",\n del: \"delete\",\n down: \"arrowdown\",\n esc: \"escape\",\n left: \"arrowleft\",\n right: \"arrowright\",\n up: \"arrowup\"\n};\n\n@Injectable()\nexport class KeyboardShortcuts {\n\n private listeners: Listener[];\n private normalizedKeys: NormalizedKeys;\n private zone: NgZone;\n\n // I initialize the keyboard shortcuts service.\n constructor(zone: NgZone) {\n\n this.zone = zone;\n\n this.listeners = [];\n this.normalizedKeys = Object.create(null);\n\n // Since we're going to create a root event-handler for the keydown event, we're\n // gonna do this outside of the NgZone. This way, we're not constantly triggering\n // change-detection for every key event - we'll only re-enter the Angular Zone\n // when we have an event that is actually being consumed by one of our components.\n this.zone.runOutsideAngular(\n (): void => {\n\n window.addEventListener(\"keydown\", this.handleKeyboardEvent);\n\n }\n );\n\n }\n\n // ---\n // PUBLIC METHODS.\n // ---\n // I configure key-event listener at the given priority. Returns a Function that can\n // be used to unbind the listener.\n public listen(bindings: Bindings, options: ListenerOptions): Unlisten {\n\n var listener = this.addListener({\n priority: options.priority,\n terminal: this.normalizeTerminal(options.terminal),\n terminalWhitelist: this.normalizeTerminalWhitelist(options.terminalWhitelist),\n inputs: this.normalizeInputs(options.inputs),\n bindings: this.normalizeBindings(bindings)\n });\n\n var unlisten = (): void => {\n\n this.removeListener(listener);\n\n };\n\n return (unlisten);\n\n }\n\n // ---\n // PRIVATE METHODS.\n // ---\n // I add the listener to the internal collection in DESCENDING priority order.\n private addListener(listener: Listener): Listener {\n\n this.listeners.push(listener);\n this.listeners.sort(\n (a: Listener, b: Listener): number => {\n\n // We want to sort the listeners in DESCENDING priority order so that the\n // higher-priority items are at the start of the collection - this will\n // make it easier to loop over later (highest priority first).\n if (a.priority < b.priority) {\n\n return (1);\n\n } else if (a.priority > b.priority) {\n\n return (-1);\n\n } else {\n\n return (0);\n\n }\n\n }\n );\n\n return (listener);\n\n }\n\n\n // I get the normalized event-key from the given event.\n // --\n // CAUTION: Most of this logic is taken from the core KeyEventsPlugin code but,\n // with some of the logic removed. This is simplified for the demo.\n private getKeyFromEvent(event: KeyboardEvent): string {\n\n var key = (event.key || event[\"keyIdentifier\"] || \"Unidentified\");\n\n if (key.startsWith(\"U+\")) {\n\n key = String.fromCharCode(parseInt(key.slice(2), 16));\n\n }\n\n var parts = [KEY_MAP[key] || key];\n\n if (event.altKey) parts.push(\"Alt\");\n if (event.ctrlKey) parts.push(\"Control\");\n if (event.metaKey) parts.push(\"Meta\");\n if (event.shiftKey) parts.push(\"Shift\");\n\n return (this.normalizeKey(parts.join(\".\")));\n\n }\n\n\n // I handle the keyboard events for the root handler (and delegate to the listeners).\n private handleKeyboardEvent = (event: KeyboardEvent): void => {\n\n var key = this.getKeyFromEvent(event);\n var isInputEvent = this.isEventFromInput(event);\n var handler: Handler;\n\n // Iterate over the listeners in DESCENDING priority order.\n for (var listener of this.listeners) {\n\n if (handler = listener.bindings[key]) {\n\n // Execute handler if this is NOT an input event that we need to ignore.\n if (!isInputEvent || listener.inputs) {\n\n // Right now, we're executing outside of the NgZone. As such, we\n // have to re-enter the NgZone so that we can hook back into change-\n // detection. Plus, this will also catch errors and propagate them\n // through application properly.\n var result = this.zone.runGuarded(\n (): boolean | void => {\n\n return (handler(event));\n\n }\n );\n\n // If the handler returned an explicit False, we're going to treat\n // this listener as Terminal, regardless of the original settings.\n if (result === false) {\n\n return;\n\n // If the handler returned an explicit True, we're going to treat\n // this listener as NOT Terminal, regardless of the original settings.\n } else if (result === true) {\n\n continue;\n\n }\n\n }\n\n // If this listener is terminal for matches, stop propagation.\n if (listener.terminal === \"match\") {\n\n return;\n\n }\n\n }\n\n // If this listener is terminal for all events, stop propagation (unless the\n // event is white-listed for propagation).\n if ((listener.terminal === true) && !listener.terminalWhitelist[key]) {\n\n return;\n\n }\n\n } // END: For-loop.\n }\n\n\n // I determine if the given event originated from a form input element.\n private isEventFromInput(event: KeyboardEvent): boolean {\n\n if (event.target instanceof Node) {\n\n switch (event.target.nodeName) {\n case \"INPUT\":\n case \"SELECT\":\n case \"TEXTAREA\":\n return (true);\n // @ts-ignore: TS7027: Unreachable code detected.\n break;\n default:\n return (false);\n // @ts-ignore: TS7027: Unreachable code detected.\n break;\n }\n\n }\n\n return (false);\n\n }\n\n\n // I return a bindings collection in which the keys of the given bindings have been\n // normalized into a predictable format.\n private normalizeBindings(bindings: Bindings): Bindings {\n\n var normalized = Object.create(null);\n\n for (var key in bindings) {\n\n normalized[this.normalizeKey(key)] = bindings[key];\n\n }\n\n return (normalized);\n\n }\n\n\n // I normalize the inputs option.\n private normalizeInputs(inputs: boolean | undefined): boolean {\n\n if (inputs === undefined) {\n\n return (false);\n\n }\n\n return (inputs);\n\n }\n\n\n // I return the given key in a normalized, predictable format.\n private normalizeKey(key: string): string {\n\n if (!this.normalizedKeys[key]) {\n\n this.normalizedKeys[key] = key\n .toLowerCase()\n .split(\".\")\n .map(\n (segment): string => {\n\n return (KEY_ALIAS[segment] || segment);\n\n }\n )\n .sort()\n .join(\".\")\n ;\n\n }\n\n return (this.normalizedKeys[key]);\n\n }\n\n\n // I normalize the terminal option.\n private normalizeTerminal(terminal: Terminal | undefined): Terminal {\n\n if (terminal === undefined) {\n\n return (true);\n\n }\n\n return (terminal);\n\n }\n\n\n // I normalize the terminalWhitelist option.\n private normalizeTerminalWhitelist(keys: string[] | undefined): TerminalWhitelist {\n\n var normalized = Object.create(null);\n\n if (keys) {\n\n for (var key of keys) {\n\n normalized[this.normalizeKey(key)] = true;\n\n }\n\n }\n\n return (normalized);\n\n }\n\n\n // I remove the given listener from the internal collection.\n private removeListener(listenerToRemove: Listener): void {\n\n this.listeners = this.listeners.filter(\n (listener: Listener): boolean => {\n\n return (listener !== listenerToRemove);\n\n }\n );\n\n }\n\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { MessageBoxHelper } from '../components/dialogs/messagebox/messagebox.dialog';\nimport { LayoutChangeType } from '../models/enums/layoutchangetype.enum';\nimport { MessageBoxButtons } from '../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../models/enums/messageboxicon.enum';\nimport { MessageBoxResult } from '../models/enums/messageboxresult.enum';\nimport { NotificationLevel } from '../models/enums/notificationlevel.enum';\nimport { ViewType } from '../models/enums/viewtype.enum';\nimport { LayoutChange } from '../models/layout/layout.change.model';\nimport { CollaborationService } from '../services/collaboration.service';\nimport { LayoutService } from '../services/layout.service';\nimport { UsersService } from '../services/users.service';\nimport { WebsocketService } from '../services/websocket.service';\nimport { TranslateFormatText } from './array.helpers';\nimport { ClientHelper } from './client.helper';\nimport { CollaborationHelper } from './collaboration.helper';\nimport { InjectorHelper } from './injector.helper';\nimport { LayoutHelper } from './layout.helper';\nimport { NotificationHelper } from './notification.helper';\n\nexport interface ILayoutChangeClient {\n get LayoutElement();\n\n checkForChangedLayout(): Promise;\n detectChanges();\n refreshAndQuit();\n}\n\nexport class LayoutChangeStatusHandler {\n\n private static Instance: LayoutChangeStatusHandler;\n public static LayoutChangeHandlerConnected: BehaviorSubject = new BehaviorSubject(false);\n public static LayoutChangeHandlerViewMode: BehaviorSubject = new BehaviorSubject(false);\n public static LayoutChangeHandlerMessages: BehaviorSubject = new BehaviorSubject(null);\n\n private Connected = false;\n private WebSocketCheckActive = false;\n private Loading = true;\n private CachedChanges = [];\n private Subscriptions = [];\n private ColService: CollaborationService;\n private AliveInterval;\n\n public static CheckForInit(channel: string, client: ILayoutChangeClient) {\n if (!LayoutChangeStatusHandler.Instance) {\n LayoutChangeStatusHandler.Instance = new LayoutChangeStatusHandler(channel, client);\n const userNames = CollaborationHelper.GetActiveUserNames(channel);\n if (userNames.length > 0) {\n const tft = new TranslateFormatText('@@PageAlreadyEditedBy{0}');\n tft.FormatParams.push(userNames.join(', '));\n MessageBoxHelper.ShowDialog(tft, new TranslateFormatText('@@Edit page'), MessageBoxButtons.Ok, MessageBoxIcon.Information);\n //MessageBoxHelper.ShowDialog(new TranslateFormatText('@@ChangeToEditMode'), new TranslateFormatText('@@Edit page'),\n // MessageBoxButtons.YesNo, MessageBoxIcon.Question).then(x => {\n // if (x === MessageBoxResult.Yes) {\n // LayoutChangeStatusHandler.CheckForCheckOut();\n // }\n // });\n } else {\n LayoutChangeStatusHandler.CheckForCheckOut();\n }\n }\n }\n\n public static Unsubscribe() {\n if (LayoutChangeStatusHandler.Instance) {\n LayoutChangeStatusHandler.Instance.unsubscribe();\n LayoutChangeStatusHandler.Instance = null;\n }\n }\n\n private static CheckForCheckOut() {\n const checkOut = CollaborationHelper.ActualCheckOutUser.getValue();\n if (checkOut) {\n const user = UsersService.ActiveUser.getValue();\n if (checkOut.ID === user.SID) {\n LayoutChangeStatusHandler.Instance.ConnectInternal();\n } else if (user.IsAdministrator) {\n const text = '@@Diese Seite ist bereits von Benutzer {0} ausgecheckt. Wollen Sie den Checkout uebernehmen?';\n const tf = new TranslateFormatText(text);\n tf.FormatParams.push(checkOut.Name);\n MessageBoxHelper.ShowDialog(tf, new TranslateFormatText('@@Seite bereits ausgecheckt'),\n MessageBoxButtons.YesNo, MessageBoxIcon.Question).then(y => {\n if (y === MessageBoxResult.Yes) {\n CollaborationHelper.CheckOut(true, true);\n LayoutChangeStatusHandler.Instance.ConnectInternal();\n }\n });\n } else {\n const text = '@@Diese Seite ist bereits von Benutzer {0} ausgecheckt.';\n const tf = new TranslateFormatText(text);\n tf.FormatParams.push(checkOut.Name);\n MessageBoxHelper.ShowDialog(tf, new TranslateFormatText('@@Seite bereits ausgecheckt'),\n MessageBoxButtons.Ok, MessageBoxIcon.Information);\n }\n } else {\n LayoutChangeStatusHandler.Instance.ConnectInternal();\n }\n }\n\n private static GetPropChangeText(layout, obj): string {\n if (layout) {\n const changeInfo = LayoutChangeStatusHandler.GetPropChangeTextInternal(layout, obj);\n if (changeInfo) {\n let retVal = 'Changed ';\n Object.keys(changeInfo).forEach((k, i) => {\n if (i > 0) {\n retVal += ' and ';\n }\n retVal += 'property ' + k + ' on element';\n const list = changeInfo[k];\n if (list.length > 1) {\n retVal += 's';\n }\n retVal += ' ' + list.join(', ');\n });\n return retVal;\n }\n }\n return null;\n }\n\n private static GetPropChangeTextInternal(layoutElement, obj) {\n let retVal = null;\n if (layoutElement) {\n const propList = obj[layoutElement.ID];\n if (Array.isArray(propList) && propList.length > 0) {\n propList.forEach(prop => {\n if (retVal == null) {\n retVal = {};\n }\n const list = retVal[prop.PropertyName];\n if (list) {\n list.push(LayoutHelper.GetElementName(layoutElement));\n } else {\n retVal[prop.PropertyName] = [LayoutHelper.GetElementName(layoutElement)];\n }\n });\n }\n if (layoutElement.Elements) {\n layoutElement.Elements.forEach(x => {\n const nextLevel = LayoutChangeStatusHandler.GetPropChangeTextInternal(x, obj);\n if (nextLevel) {\n if (retVal == null) {\n retVal = {};\n }\n Object.keys(nextLevel).forEach(k => {\n const list = retVal[k];\n if (list) {\n list.push(...nextLevel[k]);\n } else {\n retVal[k] = [...nextLevel[k]];\n }\n });\n }\n });\n }\n }\n return retVal;\n }\n\n private static GetChangeText(layout, change: LayoutChange): string {\n let retVal = null;\n if (layout && change && change.ChangeValue) {\n let searchLayout = layout;\n let resName;\n if (change.ResolutionID) {\n if (layout && layout.Resolutions) {\n searchLayout = layout.Resolutions.find(x => x.ID === change.ResolutionID);\n resName = LayoutHelper.GetElementName(searchLayout);\n } else {\n searchLayout = null;\n }\n }\n if (searchLayout) {\n switch (change.LayoutChangeType) {\n case LayoutChangeType.ElementAdded:\n const addTargetElem = LayoutHelper.GetElementByID(searchLayout, change.ChangeValue.ParentID);\n if (addTargetElem) {\n retVal = 'Added element ' + LayoutHelper.GetElementName(JSON.parse(change.ChangeValue.ElementContent)) +\n ' to element ' + LayoutHelper.GetElementName(addTargetElem);\n }\n break;\n case LayoutChangeType.ElementRemoved:\n const removeTargetElem = LayoutHelper.GetElementByID(searchLayout, change.ChangeValue.ParentID);\n if (removeTargetElem) {\n retVal = 'Removed element ' + change.ChangeValue.ElementName +\n ' from element ' + LayoutHelper.GetElementName(removeTargetElem);\n }\n break;\n case LayoutChangeType.PositionChange:\n const posChangeSourceElem = LayoutHelper.GetElementByID(searchLayout, change.ChangeValue.OldParentID);\n if (posChangeSourceElem) {\n if (change.ChangeValue.OldParentID === change.ChangeValue.NewParentID) {\n if (posChangeSourceElem.Elements) {\n posChangeSourceElem.Elements.some((x, i) => {\n if (x.ID === change.ChangeValue.ElementID) {\n retVal = 'Moved element ' + LayoutHelper.GetElementName(x) +\n ' inside element ' + LayoutHelper.GetElementName(posChangeSourceElem);\n return true;\n }\n return false;\n });\n } \n } else {\n const posChangeTargetElem = LayoutHelper.GetElementByID(searchLayout, change.ChangeValue.NewParentID);\n if (posChangeTargetElem) {\n posChangeTargetElem.Elements.some((x) => {\n if (x.ID === change.ChangeValue.ElementID) {\n retVal = 'Moved element ' + LayoutHelper.GetElementName(x) + ' from element ' +\n LayoutHelper.GetElementName(posChangeSourceElem) + ' to element ' +\n LayoutHelper.GetElementName(posChangeTargetElem);\n return true;\n }\n return false;\n });\n }\n }\n }\n break;\n case LayoutChangeType.MultiPositionChange:\n if (change.ChangeValue.Elements) {\n const targetElem = LayoutHelper.GetElementByID(searchLayout, change.ChangeValue.NewParentID);\n if (targetElem && targetElem.Elements) {\n const sourceElems = {};\n const removedElems = {};\n change.ChangeValue.Elements.forEach(lpcElem => {\n if (lpcElem.Elements && lpcElem.Elements.length > 0) {\n let sourceElem;\n if (lpcElem.ParentID === change.ChangeValue.NewParentID) {\n sourceElem = targetElem;\n } else {\n sourceElem = sourceElems[lpcElem.ParentID];\n if (!sourceElem) {\n sourceElem = LayoutHelper.GetElementByID(searchLayout, lpcElem.ParentID);\n if (sourceElem) {\n sourceElems[lpcElem.ParentID] = sourceElem;\n }\n }\n }\n if (sourceElem) {\n const removedList = [];\n lpcElem.Elements.forEach(lpcElemElem => {\n targetElem.Elements.some((x) => {\n if (x.ID === lpcElemElem.ElementID) {\n removedList.push(LayoutHelper.GetElementName(x));\n return true;\n }\n return false;\n });\n });\n if (removedList.length > 0) {\n const rE = removedElems[lpcElem.ParentID];\n if (rE) {\n rE.RemovedElements.push(...removedList);\n } else {\n removedElems[lpcElem.ParentID] = {\n Name: LayoutHelper.GetElementName(sourceElem),\n RemovedElements: removedList\n };\n }\n }\n }\n }\n });\n const remKeys = Object.keys(removedElems);\n if (remKeys.length > 0) {\n retVal = 'Moved ';\n remKeys.forEach((x, i) => {\n if (i > 0) {\n retVal += ' and '\n }\n const elem = removedElems[x];\n retVal += 'element';\n if (elem.RemovedElements.length > 0) {\n retVal += 's';\n }\n retVal += ' ' + elem.RemovedElements.join(', ') + ' from element ' + elem.Name;\n });\n retVal += ' to element ' + LayoutHelper.GetElementName(targetElem);\n }\n }\n }\n break;\n case LayoutChangeType.PropertyChange:\n const changePropObj = {};\n changePropObj[change.ChangeValue.ElementID] = [change.ChangeValue];\n retVal = LayoutChangeStatusHandler.GetPropChangeText(searchLayout, changePropObj);\n break;\n case LayoutChangeType.MultiPropertyChange:\n const multiChangePropObj = {};\n change.ChangeValue.Elements.forEach(x => {\n x.ElementIDs.forEach(id => {\n const list = multiChangePropObj[id];\n if (list) {\n list.push(...x.Properties);\n } else {\n multiChangePropObj[id] = [...x.Properties];\n }\n });\n });\n retVal = LayoutChangeStatusHandler.GetPropChangeText(searchLayout, multiChangePropObj);\n break;\n case LayoutChangeType.WorkflowAdded:\n const wfAddParent = LayoutHelper.GetElementByID(searchLayout, change.ChangeValue.LayoutID);\n if (wfAddParent) {\n const wf = JSON.parse(change.ChangeValue.Workflow);\n retVal = 'Added workflow ' + wf.Caption + ' on element ' + LayoutHelper.GetElementName(wfAddParent);\n }\n break;\n case LayoutChangeType.WorkflowChange:\n const wfChangeParent = LayoutHelper.GetElementByID(searchLayout, change.ChangeValue.LayoutID);\n if (wfChangeParent && wfChangeParent.Workflows) {\n const changedList = [];\n const wfList = {};\n change.ChangeValue.Workflows.forEach(x => {\n const wfD = JSON.parse(x);\n wfList[wfD.ID] = wfD.Caption;\n });\n for (let i = 0; i < wfChangeParent.Workflows.length; i++) {\n const wfD = wfList[wfChangeParent.Workflows[i].ID];\n if (wfD) {\n changedList.push(wfD);\n }\n }\n if (changedList.length > 0) {\n retVal = 'Changed workflow';\n if (changedList.length > 1) {\n retVal += 's';\n }\n retVal += ' ' + changedList.join(', ') + ' on element ' + LayoutHelper.GetElementName(wfChangeParent);\n }\n }\n break;\n case LayoutChangeType.WorkflowRemoved:\n const wfRemoveParent = LayoutHelper.GetElementByID(searchLayout, change.ChangeValue.LayoutID);\n if (wfRemoveParent) {\n retVal = 'Removed workflow ' + change.ChangeValue.WorkflowCaption + ' from element ' +\n LayoutHelper.GetElementName(wfRemoveParent);\n }\n break;\n case LayoutChangeType.ResolutionAdded:\n const addedRes = JSON.parse(change.ChangeValue.Resolution);\n retVal = 'Added resolution ' + LayoutHelper.GetElementName(addedRes) +\n ' on element ' + LayoutHelper.GetElementName(layout);\n break;\n case LayoutChangeType.ResolutionRemoved:\n retVal = 'Removed resolution ' + change.ChangeValue.ResolutionName +\n ' from element ' + LayoutHelper.GetElementName(layout);\n break;\n }\n if (retVal && resName) {\n retVal += ' (Resolution: ' + resName + ')';\n }\n }\n }\n return retVal;\n }\n\n private static GetChangeInfoMessage(text, content) {\n if (text) {\n let message = 'Layout change';\n if (content.User) {\n message += ' by user \"' + content.User.Name + '\"';\n }\n message += ': ' + text;\n const date = new Date(content.ChangeDate);\n return {\n MessageTimeText: date.toLocaleDateString(undefined, {\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric'\n }),\n Message: message,\n Sender: 'System',\n OwnMessage: false\n };\n }\n return null;\n }\n\n constructor(private Channel: string, private client: ILayoutChangeClient) {\n CollaborationHelper.Subscribe(this.Channel, true);\n LayoutChangeStatusHandler.LayoutChangeHandlerViewMode.next(true);\n this.ColService = InjectorHelper.InjectorInstance.get(CollaborationService);\n this.AliveInterval = setInterval(() => {\n this.ColService.SubscriptionAlive(this.Channel).subscribe();\n }, 4 * 60 * 1000); // 4 Min.\n }\n\n private ConnectInternal() {\n this.client.checkForChangedLayout().then(() => {\n if (!this.Connected) {\n if (WebsocketService.Active.getValue()) {\n this.subscribe();\n } else {\n const tf = new TranslateFormatText('@@LayoutChangeHandler No WebSocketConnection');\n MessageBoxHelper.ShowDialog(tf, new TranslateFormatText('@@No Connection'),\n MessageBoxButtons.Ok, MessageBoxIcon.Information);\n }\n }\n });\n }\n\n private subscribe() {\n if (!this.Connected) {\n this.Connected = true;\n let checkDate = new Date();\n this.Subscriptions.push(WebsocketService.Active.subscribe(x => {\n if (!x && !this.WebSocketCheckActive) {\n this.WebSocketCheckActive = true;\n const tf = new TranslateFormatText('@@LayoutChangeHandler WebSocketConnection Lost');\n MessageBoxHelper.ShowDialog(tf, new TranslateFormatText('@@Connection Lost'),\n MessageBoxButtons.YesNo, MessageBoxIcon.Question).then(x => {\n this.WebSocketCheckActive = false;\n if (x === MessageBoxResult.Yes) {\n this.client.refreshAndQuit();\n }\n });\n }\n }));\n this.Subscriptions.push(WebsocketService.MessageReceived.subscribe(response => {\n const parsed = JSON.parse(response);\n const ccChannel = 'ClientChange_' + this.Channel;\n if (parsed.Level === NotificationLevel.System && parsed.Channels &&\n parsed.Channels.some(x => x === ccChannel)) {\n if (parsed.Type === 'evidanza.App.Shared.Collaboration.ClientChangeInfo') {\n const content = JSON.parse(parsed.Content);\n if (content) {\n let text;\n if (content.ClientID !== ClientHelper.ClientID) {\n if (this.Loading) {\n this.CachedChanges.push(content);\n } else {\n text = LayoutHelper.ApplyLayoutChange(this.client.LayoutElement, JSON.parse(content.ChangeInfo));\n }\n } else {\n text = LayoutChangeStatusHandler.GetChangeText(this.client.LayoutElement, JSON.parse(content.ChangeInfo));\n }\n if (text) {\n const message = LayoutChangeStatusHandler.GetChangeInfoMessage(text, content);\n if (message) {\n const newMessages = [];\n const oldMessages = LayoutChangeStatusHandler.LayoutChangeHandlerMessages.getValue();\n if (oldMessages) {\n newMessages.push(...oldMessages);\n }\n newMessages.push(message);\n LayoutChangeStatusHandler.LayoutChangeHandlerMessages.next(newMessages);\n }\n this.client.detectChanges();\n }\n }\n } else if (parsed.Type === 'evidanza.App.Shared.Collaboration.ClientSaveInfo') {\n const content = JSON.parse(parsed.Content);\n if (content && content.ClientID !== ClientHelper.ClientID) {\n const settings = CollaborationHelper.Settings.getValue();\n if (!settings || settings.ShowSaveMessage) {\n const tf = new TranslateFormatText('@@ClientSave by user {0}');\n tf.FormatParams.push(content.User.Name);\n MessageBoxHelper.ShowDialog(tf, new TranslateFormatText('@@ClientSave'),\n MessageBoxButtons.YesNo, MessageBoxIcon.Question).then(x => {\n if (x === MessageBoxResult.Yes) {\n this.client.refreshAndQuit();\n }\n });\n } else {\n const tf = new TranslateFormatText('@@ClientSaveInfo by user {0}');\n tf.FormatParams.push(content.User.Name);\n NotificationHelper.Info(tf, '@@Information');\n }\n }\n }\n }\n }));\n WebsocketService.Subscribe([{ Channel: 'ClientChange_' + this.Channel, Level: [0] }]);\n\n this.Subscriptions.push(LayoutService.LayoutChanged.subscribe(x => {\n if (x && LayoutService.ViewType.getValue() === ViewType.Edit) {\n this.ColService.SendClientChangeInfo({\n Channel: this.Channel,\n ChangeInfo: JSON.stringify(x)\n }).subscribe();\n }\n }));\n this.Subscriptions.push(CollaborationHelper.ForcedCheckout.subscribe((x) => {\n const tf = new TranslateFormatText('@@Der Checkout der Seite wurde von Benutzer {0} ueberschrieben');\n tf.FormatParams.push(x.Name);\n NotificationHelper.Info(tf, new TranslateFormatText('@@Checkout ueberschrieben'));\n this.client.refreshAndQuit();\n }));\n this.ColService.GetAllClientChanges(this.Channel).subscribe(x => {\n const messages = [];\n const le = this.client.LayoutElement;\n if (x) {\n x.forEach(change => {\n checkDate = new Date(change.ChangeDate);\n const text = LayoutHelper.ApplyLayoutChange(le, JSON.parse(change.ChangeInfo));\n const message = LayoutChangeStatusHandler.GetChangeInfoMessage(text, change);\n if (message) {\n messages.push(message);\n }\n });\n }\n let copy = this.CachedChanges.splice(0);\n copy.forEach(change => {\n const date = new Date(change.ChangeDate);\n if (date > checkDate) {\n const text = LayoutHelper.ApplyLayoutChange(le, JSON.parse(change.ChangeInfo));\n const message = LayoutChangeStatusHandler.GetChangeInfoMessage(text, change);\n if (message) {\n messages.push(message);\n }\n }\n });\n this.Loading = this.CachedChanges.length > 0;\n while (this.Loading) {\n copy = this.CachedChanges.splice(0);\n copy.forEach(change => {\n const text = LayoutHelper.ApplyLayoutChange(le, JSON.parse(change.ChangeInfo));\n const message = LayoutChangeStatusHandler.GetChangeInfoMessage(text, change);\n if (message) {\n messages.push(message);\n }\n });\n this.Loading = this.CachedChanges.length > 0;\n }\n LayoutChangeStatusHandler.LayoutChangeHandlerMessages.next(messages);\n this.client.detectChanges();\n });\n LayoutChangeStatusHandler.LayoutChangeHandlerConnected.next(true);\n LayoutChangeStatusHandler.LayoutChangeHandlerViewMode.next(false);\n }\n }\n\n private unsubscribe() {\n this.Subscriptions.forEach(x => x.unsubscribe());\n WebsocketService.Unsubscribe([{ Channel: 'ClientChange_' + this.Channel, Level: [0] }]);\n clearInterval(this.AliveInterval);\n CollaborationHelper.Subscribe(this.Channel, false);\n LayoutChangeStatusHandler.LayoutChangeHandlerConnected.next(false);\n LayoutChangeStatusHandler.LayoutChangeHandlerViewMode.next(false);\n LayoutChangeStatusHandler.LayoutChangeHandlerMessages.next(null);\n }\n}\n","import { deserialize, plainToClass } from 'class-transformer';\nimport { TreeNode } from 'primeng/api';\nimport { Subject } from 'rxjs';\nimport { MessageBoxHelper } from '../components/dialogs/messagebox/messagebox.dialog';\nimport { WorkflowNameChangeDialog } from '../components/dialogs/workflowdebug/workflow.name.change.dialog';\nimport { LayoutChangeType } from '../models/enums/layoutchangetype.enum';\nimport { MessageBoxButtons } from '../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../models/enums/messageboxicon.enum';\nimport { MessageBoxResult } from '../models/enums/messageboxresult.enum';\nimport { ViewType } from '../models/enums/viewtype.enum';\nimport {\n GitComparison, GitComparisonDiff, GitComparisonDocument, GitComparisonElement,\n GitComparisonOptions, GitComparisonWorkflow, GitDiffChangeType, GitDiffType\n} from '../models/git/gitcomparison.model';\nimport { Layout } from '../models/layout.model';\nimport {\n LayoutChange, LayoutElementAddedValue, LayoutElementRemovedValue, LayoutPositionChangeValue,\n LayoutPropertyChangeValue, MultiLayoutPositionChangeValue, MultiLayoutPropertyChangeValue, MultiLayoutWorkflowChangeValue,\n PropertyChangeValue, ResolutionAddedValue, ResolutionRemovedValue, WorkflowAddedValue, WorkflowRemovedValue\n} from '../models/layout/layout.change.model';\nimport { EventData } from '../models/layoutbase.model';\nimport { LayoutElement } from '../models/layoutelement.model';\nimport { WorkflowDescription } from '../models/workflow/workflow.model';\nimport { LayoutService } from '../services/layout.service';\nimport { NavigationService } from '../services/navigation.service';\nimport { SettingsService } from '../services/settings.service';\nimport { TranslateFormatText } from './array.helpers';\nimport { InjectorHelper, TranslateHelper } from './injector.helper';\nimport { VariableHelper } from './variable.helper';\n\n// @dynamic\nexport class LayoutHelper {\n //#region GetElementByName\n public static getElementByName(elementList: LayoutElement[], name: string, ignoreTemplate?: boolean): LayoutElement {\n if (ignoreTemplate === true) {\n return LayoutHelper.getElementByElementName(elementList, name);\n } else {\n return LayoutHelper.getElementByNameAndTemplate(elementList, name, null);\n }\n }\n private static getElementByNameAndTemplate(elementList: LayoutElement[], name: string, templateName: string): LayoutElement {\n let retVal: LayoutElement = null;\n if (elementList && name) {\n elementList.some(elem => {\n const checkName = templateName ? templateName + '.' + elem.Name : elem.Name;\n if (checkName === name) {\n retVal = elem;\n return true;\n }\n let tmpName = templateName;\n if (elem.ElementType === 'template') {\n if (tmpName) {\n tmpName += '.' + (elem.Name || '');\n } else {\n tmpName = (elem.Name || '');\n }\n }\n retVal = LayoutHelper.getElementByNameAndTemplate(elem.Elements, name, tmpName);\n if (retVal) {\n return true;\n }\n return false;\n });\n }\n return retVal;\n }\n\n private static getElementByElementName(elementList: LayoutElement[], name: string): LayoutElement {\n let retVal: LayoutElement = null;\n if (elementList && name) {\n elementList.some(elem => {\n if (elem.Name === name) {\n retVal = elem;\n return true;\n }\n retVal = LayoutHelper.getElementByElementName(elem.Elements, name);\n if (retVal) {\n return true;\n }\n return false;\n });\n }\n return retVal;\n }\n //#endregion\n //#region GetElementPath\n public static GetElementPath(layout, elemName) {\n const retVal = [];\n if (layout) {\n const path = LayoutHelper.FindElemRecursive([layout], elemName, null);\n retVal.push(...path);\n }\n return retVal;\n }\n private static FindElemRecursive(elements, elemName, templateName) {\n const retVal = [];\n if (elements) {\n elements.some(elem => {\n const checkName = templateName ? templateName + '.' + elem.Name : elem.Name;\n if (checkName === elemName) {\n retVal.push(elem);\n return true;\n }\n let tmpName = templateName;\n if (elem.ElementType === 'template') {\n if (tmpName) {\n tmpName += '.' + (elem.Name || '');\n } else {\n tmpName = (elem.Name || '');\n }\n }\n const childPath = LayoutHelper.FindElemRecursive(elem.Elements, elemName, tmpName);\n if (childPath.length > 0) {\n retVal.push(elem);\n retVal.push(...childPath);\n }\n });\n }\n return retVal;\n }\n //#endregion\n //#region GetElement\n public static GetElementByID(elem, id) {\n if (elem) {\n if (elem.ID === id) {\n return elem;\n }\n if (elem.Elements) {\n let retVal;\n if (elem.Elements.some(x => {\n retVal = LayoutHelper.GetElementByID(x, id);\n if (retVal) {\n return true;\n }\n return false;\n })) {\n return retVal;\n }\n }\n }\n return null;\n }\n public static GetNextElementName(item, type, caption) {\n const names = {};\n let count = LayoutHelper.GetNamesFromItemsWithType(item, type, names) + 1;\n let name = caption + '_' + count;\n while (names[name]) {\n count++;\n name = caption + '_' + count;\n }\n return name;\n }\n private static GetNamesFromItemsWithType(item, type, nameObj) {\n let retVal = 0;\n if (item) {\n if (item.ElementType === type) {\n if (typeof item.Name === 'string') {\n nameObj[item.Name] = true;\n retVal++;\n }\n }\n if (item.Elements) {\n item.Elements.forEach(elem => {\n retVal += LayoutHelper.GetNamesFromItemsWithType(elem, type, nameObj);\n });\n }\n }\n return retVal;\n }\n public static GetNextElementNameByPrefix(item, prefix) {\n const names = {};\n let count = LayoutHelper.GetNamesFromItemsWithPrefix(item, prefix, names) + 1;\n let name = prefix + '_' + count;\n while (names[name]) {\n count++;\n name = prefix + '_' + count;\n }\n return name;\n }\n private static GetNamesFromItemsWithPrefix(item, prefix, nameObj) {\n let retVal = 0;\n if (item) {\n if (typeof item.Name === 'string' && item.Name.startsWith(prefix)) {\n nameObj[item.Name] = true;\n retVal++;\n }\n if (item.Elements) {\n item.Elements.forEach(elem => {\n retVal += LayoutHelper.GetNamesFromItemsWithPrefix(elem, prefix, nameObj);\n });\n }\n }\n return retVal;\n }\n //#endregion\n\n public static RefreshMenuTabs: Subject = new Subject();\n\n\n public static GetDroppedLayoutElement(dragItem): LayoutElement {\n const insert = new LayoutElement();\n insert.ElementType = dragItem.Type;\n insert.Editable = dragItem.Editable;\n insert.Name = dragItem.Name;\n if (dragItem.Layout) {\n Object.assign(insert, dragItem.Layout);\n }\n if (dragItem.Type === 'template') {\n Object.assign(insert, dragItem);\n }\n if (dragItem.Type === 'widget') {\n Object.assign(insert, dragItem);\n }\n insert.SetViewType(ViewType.Edit);\n return insert;\n }\n public static GetLayout() {\n const page = NavigationService.SelectedPage.getValue();\n if (page === 'content' || page === 'widget' || page === 'template' || page === 'output' || page === 'layout') {\n return LayoutService.SelectedLayout.getValue();\n }\n return null;\n }\n public static GetActiveResolution(layout) {\n const size = LayoutService.RootSize.getValue();\n if (layout && size) {\n let resolution = null;\n if (layout.Resolutions && layout.Resolutions.length > 0) {\n resolution = layout.Resolutions.find((value) => size.Width > value.FromWidth && size.Width <= value.ToWidth);\n }\n if (resolution) {\n LayoutService.SelectedResolution.next(resolution);\n return resolution;\n } else {\n LayoutService.SelectedResolution.next(null);\n }\n } else {\n LayoutService.SelectedResolution.next(null);\n }\n \n return layout;\n }\n\n //#region AppfameworkLibrary\n public static InitSelectionListeners() {\n LayoutService.SelectedItem.subscribe((item) => {\n const baseLayout = LayoutService.SelectedLayout.getValue();\n if (baseLayout) {\n if (item) {\n LayoutService.DragType.next(item.ID);\n let resolutionfound = false;\n if (baseLayout.Resolutions && baseLayout.Resolutions.length > 0) {\n const size = LayoutService.RootSize.getValue();\n if (size) {\n baseLayout.Resolutions.forEach((res) => {\n if (size.Width > res.FromWidth && size.Width <= res.ToWidth) {\n resolutionfound = true;\n if (res.ID == item.ID) {\n item.Selected = true;\n }\n res.Elements.forEach((i) => {\n this.checkItem(i, item);\n });\n }\n });\n }\n }\n if (!resolutionfound) {\n this.checkItem(baseLayout, item);\n LayoutService.SelectionChanged.next(true);\n }\n }\n }\n });\n LayoutService.SelectedItems.subscribe((items) => {\n const baseLayout = LayoutService.SelectedLayout.getValue();\n if (baseLayout) {\n if (items) {\n LayoutService.DragType.next(null);\n }\n let resolutionfound = false;\n if (baseLayout.Resolutions && baseLayout.Resolutions.length > 0) {\n const size = LayoutService.RootSize.getValue();\n if (size) {\n baseLayout.Resolutions.forEach((res) => {\n if (size.Width > res.FromWidth && size.Width <= res.ToWidth) {\n resolutionfound = true;\n res.Elements.forEach((i) => {\n this.checkItems(i, items);\n });\n }\n });\n }\n }\n if (!resolutionfound) {\n this.checkItems(baseLayout, items);\n LayoutService.SelectionChanged.next(true);\n }\n }\n });\n }\n private static checkItem(item: any, selecteditem: any) {\n item.Selected = item === selecteditem;\n if (item.Elements) {\n item.Elements.forEach((i) => {\n this.checkItem(i, selecteditem);\n });\n }\n }\n private static checkItems(item: any, selecteditems: any) {\n if (selecteditems) {\n const found = selecteditems.find((value) => item == value);\n item.Selected = found != null ? true : false;\n if (item.Elements) {\n item.Elements.forEach((i) => {\n this.checkItems(i, selecteditems);\n });\n }\n }\n }\n //#endregion\n //#region LayoutChanges\n public static ApplyLayoutChange(layout, change: LayoutChange): string {\n let retVal = null;\n if (layout && change) {\n let searchLayout = layout;\n let resName;\n if (change.ResolutionID) {\n if (layout && layout.Resolutions) {\n searchLayout = layout.Resolutions.find(x => x.ID === change.ResolutionID);\n resName = LayoutHelper.GetElementName(searchLayout);\n } else {\n searchLayout = null;\n }\n }\n switch (change.LayoutChangeType) {\n case LayoutChangeType.ElementAdded:\n retVal = LayoutHelper.AddLayoutElement(searchLayout, change.ChangeValue);\n break;\n case LayoutChangeType.ElementRemoved:\n retVal = LayoutHelper.RemoveLayoutElement(searchLayout, change.ChangeValue);\n break;\n case LayoutChangeType.PositionChange:\n retVal = LayoutHelper.ChangePosition(searchLayout, change.ChangeValue);\n break;\n case LayoutChangeType.MultiPositionChange:\n retVal = LayoutHelper.ChangeMultiPosition(searchLayout, change.ChangeValue);\n break;\n case LayoutChangeType.PropertyChange:\n retVal = LayoutHelper.ApplyLayoutPropertyChange(searchLayout, change.ChangeValue);\n break;\n case LayoutChangeType.MultiPropertyChange:\n retVal = LayoutHelper.ApplyMultiLayoutPropertyChange(searchLayout, change.ChangeValue);\n break;\n case LayoutChangeType.WorkflowAdded:\n retVal = LayoutHelper.AddWorkflow(searchLayout, change.ChangeValue);\n if (retVal) {\n LayoutService.LayoutWorkflowsChanged.next(change);\n }\n break;\n case LayoutChangeType.WorkflowChange:\n retVal = LayoutHelper.ChangeWorkflows(searchLayout, change.ChangeValue);\n if (retVal) {\n LayoutService.LayoutWorkflowsChanged.next(change);\n }\n break;\n case LayoutChangeType.WorkflowRemoved:\n retVal = LayoutHelper.RemoveWorkflow(searchLayout, change.ChangeValue)\n if (retVal) {\n LayoutService.LayoutWorkflowsChanged.next(change);\n }\n break;\n case LayoutChangeType.ResolutionAdded:\n retVal = LayoutHelper.AddResolution(layout, change.ChangeValue);\n break;\n case LayoutChangeType.ResolutionRemoved:\n retVal = LayoutHelper.RemoveResolution(layout, change.ChangeValue);\n break;\n }\n if (retVal && resName) {\n retVal += ' (Resolution: ' + resName + ')';\n }\n }\n return retVal;\n }\n //#region LayoutElement\n public static GetElementName(elem): string {\n if (elem) {\n if (elem.Name) {\n return elem.Name;\n }\n return elem.ID;\n }\n return '';\n }\n\n private static AddLayoutElement(layout, lea: LayoutElementAddedValue): string {\n const elem = LayoutHelper.GetElementByID(layout, lea.ParentID);\n if (elem) {\n if (!elem.Elements) {\n elem.Elements = [];\n }\n const le = plainToClass(LayoutElement, JSON.parse(lea.ElementContent));\n le.SetViewType(elem.ViewType);\n elem.Elements.splice(lea.Index, 0, le);\n if (elem.ValuesChanged) {\n elem.ValuesChanged.next();\n }\n LayoutService.LayoutElementsChangedEvent.next(null);\n return 'Added element ' + LayoutHelper.GetElementName(le) + ' to element ' + LayoutHelper.GetElementName(elem);\n }\n return null;\n }\n\n private static RemoveLayoutElement(layout, ler: LayoutElementRemovedValue): string {\n const elem = LayoutHelper.GetElementByID(layout, ler.ParentID);\n if (elem && elem.Elements) {\n let index;\n let removedName;\n if (elem.Elements.some((x, i) => {\n if (x.ID === ler.ElementID) {\n index = i;\n removedName = LayoutHelper.GetElementName(x);\n return true;\n }\n return false;\n })) {\n elem.Elements.splice(index, 1);\n if (elem.ValuesChanged) {\n elem.ValuesChanged.next();\n }\n LayoutService.LayoutElementsChangedEvent.next(null);\n return 'Removed element ' + removedName + ' from element ' + LayoutHelper.GetElementName(elem);\n }\n }\n return null;\n }\n\n private static ChangePosition(layout, lpc: LayoutPositionChangeValue): string {\n let elem;\n let elemIndex;\n const sourceElem = LayoutHelper.GetElementByID(layout, lpc.OldParentID);\n if (sourceElem && sourceElem.Elements && sourceElem.Elements.some((x, i) => {\n if (x.ID === lpc.ElementID) {\n elem = x;\n elemIndex = i;\n return true;\n }\n return false;\n })) {\n const targetElem = lpc.OldParentID === lpc.NewParentID ? sourceElem : LayoutHelper.GetElementByID(layout, lpc.NewParentID);\n if (targetElem) {\n sourceElem.Elements.splice(elemIndex, 1);\n if (sourceElem.ValuesChanged) {\n sourceElem.ValuesChanged.next();\n }\n if (!targetElem.Elements) {\n targetElem.Elements = [];\n }\n targetElem.Elements[lpc.Index] = elem;\n if (targetElem.ValuesChanged) {\n targetElem.ValuesChanged.next();\n }\n LayoutService.LayoutElementsChangedEvent.next(null);\n if (lpc.OldParentID === lpc.NewParentID) {\n return 'Moved element ' + LayoutHelper.GetElementName(elem) +\n ' inside element ' + LayoutHelper.GetElementName(sourceElem);\n } else {\n return 'Moved element ' + LayoutHelper.GetElementName(elem) + ' from element ' +\n LayoutHelper.GetElementName(sourceElem) + ' to element ' + LayoutHelper.GetElementName(targetElem);\n }\n }\n }\n return null;\n }\n\n private static ChangeMultiPosition(layout, lpc: MultiLayoutPositionChangeValue): string {\n if (lpc && lpc.Elements) {\n const targetElem = LayoutHelper.GetElementByID(layout, lpc.NewParentID);\n if (targetElem) {\n const elemList = [];\n const sourceElems = {};\n const removedElems = {};\n lpc.Elements.forEach(lpcElem => {\n if (lpcElem.Elements && lpcElem.Elements.length > 0) {\n let sourceElem;\n if (lpcElem.ParentID === lpc.NewParentID) {\n sourceElem = targetElem;\n } else {\n sourceElem = sourceElems[lpcElem.ParentID];\n if (!sourceElem) {\n sourceElem = LayoutHelper.GetElementByID(layout, lpcElem.ParentID);\n if (sourceElem) {\n sourceElems[lpcElem.ParentID] = sourceElem;\n }\n }\n }\n if (sourceElem && sourceElem.Elements) {\n const removedList = [];\n lpcElem.Elements.forEach(lpcElemElem => {\n let elem;\n let elemIndex;\n if (sourceElem.Elements.some((x, i) => {\n if (x.ID === lpcElemElem.ElementID) {\n elem = x;\n elemIndex = i;\n return true;\n }\n return false;\n })) {\n elemList.push({\n Element: elem,\n DropIndex: lpcElemElem.DropIndex\n });\n sourceElem.Elements.splice(elemIndex, 1);\n removedList.push(LayoutHelper.GetElementName(elem));\n }\n });\n if (removedList.length > 0) {\n const rE = removedElems[lpcElem.ParentID];\n if (rE) {\n rE.RemovedElements.push(...removedList);\n } else {\n removedElems[lpcElem.ParentID] = {\n Name: LayoutHelper.GetElementName(sourceElem),\n RemovedElements: removedList\n };\n }\n }\n }\n }\n });\n if (elemList.length > 0) {\n Object.keys(sourceElems).forEach(x => {\n const elem = sourceElems[x];\n if (elem.ValuesChanged) {\n elem.ValuesChanged.next();\n }\n });\n elemList.sort((a, b) => b.DropIndex - a.DropIndex);\n const layoutElemList = [];\n elemList.forEach(x => layoutElemList.push(x.Element));\n if (!targetElem.Elements) {\n targetElem.Elements = [];\n }\n targetElem.Elements.splice(lpc.Index, 0, ...layoutElemList);\n if (targetElem.ValuesChanged) {\n targetElem.ValuesChanged.next();\n }\n LayoutService.LayoutElementsChangedEvent.next(null);\n let retVal = 'Moved ';\n Object.keys(removedElems).forEach((x, i) => {\n if (i > 0) {\n retVal += ' and '\n }\n const elem = removedElems[x];\n retVal += 'element';\n if (elem.RemovedElements.length > 0) {\n retVal += 's';\n }\n retVal += ' ' + elem.RemovedElements.join(', ') + ' from element ' + elem.Name;\n });\n retVal += ' to element ' + LayoutHelper.GetElementName(targetElem);\n return retVal;\n }\n }\n }\n return null;\n }\n\n private static ApplyLayoutPropertyChange(layout, lpc: LayoutPropertyChangeValue): string {\n LayoutHelper.CheckProperty(lpc);\n const obj = {};\n obj[lpc.ElementID] = [lpc];\n const resFound = LayoutHelper.ExecuteLayoutChange(layout, obj);\n if (resFound) {\n LayoutService.LayoutPropertyChangedEvent.next(obj);\n }\n return resFound;\n }\n\n private static ApplyMultiLayoutPropertyChange(layout, mlpc: MultiLayoutPropertyChangeValue): string {\n const obj = {};\n mlpc.Elements.forEach(x => {\n x.Properties.forEach(p => LayoutHelper.CheckProperty(p));\n x.ElementIDs.forEach(id => {\n const list = obj[id];\n if (list) {\n list.push(...x.Properties);\n } else {\n obj[id] = [...x.Properties];\n }\n });\n });\n const resFound = LayoutHelper.ExecuteLayoutChange(layout, obj);\n if (resFound) {\n LayoutService.LayoutPropertyChangedEvent.next(obj);\n }\n return resFound;\n }\n\n private static CheckProperty(pcv: PropertyChangeValue) {\n if (pcv) {\n switch (pcv.PropertyName) {\n case 'Elements':\n if (Array.isArray(pcv.Value)) {\n pcv.Value = plainToClass(LayoutElement, pcv.Value);\n }\n break;\n case 'Events':\n if (Array.isArray(pcv.Value)) {\n pcv.Value = plainToClass(EventData, pcv.Value);\n }\n break;\n // Weitere Props? LayoutUnit? LayoutUnitThickness, etc?\n }\n }\n }\n //#endregion\n //#region Workflow\n private static AddWorkflow(layout, wav: WorkflowAddedValue): string {\n const parent = LayoutHelper.GetElementByID(layout, wav.LayoutID);\n if (parent) {\n const wf = deserialize(WorkflowDescription, wav.Workflow);\n if (parent.Workflows) {\n parent.Workflows.push(wf);\n } else {\n parent.Workflows = [wf];\n }\n return 'Added workflow ' + wf.Caption + ' on element ' + LayoutHelper.GetElementName(parent);\n }\n return null;\n }\n\n private static ChangeWorkflows(layout, mlwcv: MultiLayoutWorkflowChangeValue): string {\n const parent = LayoutHelper.GetElementByID(layout, mlwcv.LayoutID);\n if (parent && parent.Workflows) {\n const changedList = [];\n const wfList = {};\n mlwcv.Workflows.forEach(x => {\n const wfD = deserialize(WorkflowDescription, x);\n wfList[wfD.ID] = wfD;\n });\n for (let i = 0; i < parent.Workflows.length; i++) {\n const wfD = wfList[parent.Workflows[i].ID];\n if (wfD) {\n parent.Workflows.splice(i, 1, wfD);\n changedList.push(wfD.Caption);\n }\n }\n if (changedList.length > 0) {\n let retVal = 'Changed workflow';\n if (changedList.length > 1) {\n retVal += 's';\n }\n retVal += ' ' + changedList.join(', ') + ' on element ' + LayoutHelper.GetElementName(parent);\n return retVal;\n }\n }\n return null;\n }\n\n private static RemoveWorkflow(layout, wrv: WorkflowRemovedValue):string {\n const parent = LayoutHelper.GetElementByID(layout, wrv.LayoutID);\n if (parent && parent.Workflows) {\n let index;\n let caption;\n if (parent.Workflows.some((x, i) => {\n if (x.ID === wrv.WorkflowID) {\n index = i;\n caption = x.Caption;\n return true;\n }\n return false;\n })) {\n parent.Workflows.splice(index, 1);\n return 'Removed workflow ' + caption + ' from element ' + LayoutHelper.GetElementName(parent);\n }\n }\n return null;\n }\n //#endregion\n //#region Resolution\n private static AddResolution(layout, rav: ResolutionAddedValue): string {\n if (layout) {\n const res = plainToClass(Layout, JSON.parse(rav.Resolution));\n if (layout.Resolutions) {\n layout.Resolutions.push(res);\n } else {\n layout.Resolutions = [res];\n }\n return 'Added resolution ' + LayoutHelper.GetElementName(res) + ' on element ' + LayoutHelper.GetElementName(layout);\n }\n return null;\n }\n\n private static RemoveResolution(layout, rrv: ResolutionRemovedValue): string {\n if (layout && layout.Resolutions) {\n let index;\n let caption;\n if (layout.Resolutions.some((x, i) => {\n if (x.ID === rrv.ResolutionID) {\n index = i;\n caption = LayoutHelper.GetElementName(x);\n return true;\n }\n return false;\n })) {\n layout.Resolutions.splice(index, 1);\n return 'Removed resolution ' + caption + ' from element ' + LayoutHelper.GetElementName(layout);\n }\n }\n return null;\n }\n //#endregion\n\n private static ExecuteLayoutChange(layout, obj): string {\n if (layout) {\n const changeInfo = LayoutHelper.ApplyLayoutChanges(layout, obj);\n if (changeInfo) {\n let retVal = 'Changed ';\n Object.keys(changeInfo).forEach((k, i) => {\n if (i > 0) {\n retVal += ' and ';\n }\n retVal += 'property ' + k + ' on element';\n const list = changeInfo[k];\n if (list.length > 1) {\n retVal += 's';\n }\n retVal += ' ' + list.join(', ');\n });\n return retVal;\n }\n }\n return null;\n }\n\n private static ApplyLayoutChanges(layoutElement, obj) {\n let retVal = null;\n if (layoutElement) {\n const propList = obj[layoutElement.ID];\n if (Array.isArray(propList) && propList.length > 0) { \n propList.forEach(prop => {\n const propSplits = prop.PropertyName.split('.');\n let val = layoutElement;\n for (let i = 0; i < propSplits.length - 1; i++) {\n val = val[propSplits[i]];\n if (typeof val !== 'object') {\n // TODO: Fehlermeldung\n }\n }\n val[propSplits[propSplits.length - 1]] = prop.Value;\n if (retVal == null) {\n retVal = {};\n }\n const list = retVal[prop.PropertyName];\n if (list) {\n list.push(LayoutHelper.GetElementName(layoutElement));\n } else {\n retVal[prop.PropertyName] = [LayoutHelper.GetElementName(layoutElement)];\n } \n });\n if (layoutElement.ValuesChanged) {\n layoutElement.ValuesChanged.next();\n }\n }\n if (layoutElement.Elements) {\n layoutElement.Elements.forEach(x => {\n const nextLevel = LayoutHelper.ApplyLayoutChanges(x, obj);\n if (nextLevel) {\n if (retVal == null) {\n retVal = {};\n }\n Object.keys(nextLevel).forEach(k => {\n const list = retVal[k];\n if (list) {\n list.push(...nextLevel[k]);\n } else {\n retVal[k] = [...nextLevel[k]];\n }\n });\n }\n });\n }\n }\n return retVal;\n }\n //#endregion\n \n static checkURL(item) {\n if (item && item.URL) {\n item.URL = item.URL.replace(/ /g, '').replace(/\\/\\/*/g, '/');\n if (!item.URL.startsWith('/')) {\n item.URL = '/' + item.URL;\n }\n }\n }\n\n private static GetAllElementNames(layoutElement, list, templatePath) {\n list.push(templatePath + layoutElement.Name);\n if (layoutElement.Elements) {\n if (layoutElement.ElementType === 'template') {\n templatePath += layoutElement.Name + '.';\n }\n layoutElement.Elements.forEach(child => {\n LayoutHelper.GetAllElementNames(child, list, templatePath);\n });\n }\n }\n\n private static DoDelete(layoutElement, onDelete, layout) {\n const settingsService = InjectorHelper.InjectorInstance.get(SettingsService);\n settingsService.Delete.next(layoutElement);\n LayoutService.SelectedItem.next(layout);\n LayoutService.RefreshTree.next(true);\n if (typeof onDelete === 'function') {\n onDelete();\n }\n }\n\n public static OnDeleteElement(layoutElement, templatePath, layout, onDelete) {\n const text = new TranslateFormatText('@@Sind Sie sicher, dass Sie das Element {0} loeschen moechten?');\n text.FormatParams.push(layoutElement.Name);\n MessageBoxHelper.ShowDialog(text, new TranslateFormatText('@@Loeschen'),\n MessageBoxButtons.YesNo, MessageBoxIcon.Question).then(x => {\n if (x === MessageBoxResult.Yes) {\n if (layout && layout.Workflows && layout.Workflows.length > 0) {\n const elemNames = [];\n LayoutHelper.GetAllElementNames(layoutElement, elemNames, templatePath ?? '');\n WorkflowNameChangeDialog.CheckObjectDelete(layout, elemNames).then((y) => {\n if (y === MessageBoxResult.Yes) {\n LayoutHelper.DoDelete(layoutElement, onDelete, layout);\n }\n });\n } else {\n LayoutHelper.DoDelete(layoutElement, onDelete, layout);\n }\n }\n });\n }\n\n public static setTimeout(min, max) {\n return new Promise((resolve, reject) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n const ms = Math.floor(Math.random() * (max - min)) + min;\n setTimeout(() => {\n resolve(null);\n }, ms);\n });\n }\n\n public static CheckTemplate(template) {\n if (template) {\n if (template.Elements && template.Elements.length > 0) {\n const first = template.Elements[0];\n if (first.Workflows) {\n template.Workflows = JSON.parse(JSON.stringify(first.Workflows));\n delete first.Workflows;\n }\n if (first.CustomEvents) {\n template.CustomEvents = JSON.parse(JSON.stringify(first.CustomEvents));\n delete first.CustomEvents;\n }\n } else {\n const le = new LayoutElement();\n le.ElementType = 'grid';\n le.Name = 'Base';\n template.Elements = [le];\n }\n }\n }\n\n //#region LayoutCompare\n //private static TempLayout;\n //private static Layout;\n //public static SetActiveLayout(layout) {\n // LayoutHelper.Layout = layout;\n // if (layout) {\n // LayoutHelper.TempLayout = LayoutHelper.ParseLayout(layout);\n // } else {\n // LayoutHelper.TempLayout = null;\n // }\n //}\n //public static GetActiveChanges() {\n // if (LayoutHelper.TempLayout && LayoutHelper.Layout) {\n // return LayoutHelper.CompareParsed(LayoutHelper.TempLayout, LayoutHelper.ParseLayout(LayoutHelper.Layout), {\n // CreateChangesTree: true,\n // DeepComparison: true\n // })\n // }\n //}\n public static CompareParsed(a: GitComparisonDocument, b: GitComparisonDocument, options: GitComparisonOptions) {\n let retVal: GitComparison = new GitComparison();\n retVal.DocumentA = a;\n retVal.DocumentB = b;\n\n if (options.CreateChangesTree) {\n retVal.ChangesTree = [];\n } else {\n delete retVal.ChangesTree;\n }\n\n\n let layoutelements: TreeNode = {};\n layoutelements.label = TranslateHelper.TranslatorInstance.instant(\"@@LayoutElements\");\n layoutelements.children = [];\n layoutelements.expanded = true;\n let workflows: TreeNode = {};\n workflows.label = TranslateHelper.TranslatorInstance.instant(\"@@Workflows\");\n workflows.children = [];\n workflows.expanded = true;\n\n let layoutresult = LayoutHelper.CompareLayoutElements(retVal.DocumentA, retVal.DocumentB, options);\n let workflowresult = LayoutHelper.CompareWorkflows(retVal.DocumentA, retVal.DocumentB, options);\n if (options.CreateChangesTree) {\n layoutelements.children = layoutresult.Tree;\n workflows.children = workflowresult.Tree;\n retVal.ChangesTree = [layoutelements, workflows];\n }\n retVal.Changes = { ...layoutresult.Changes, ...workflowresult.Changes };\n let changes = Object.keys(retVal.Changes);\n if (changes && changes.length > 0) {\n retVal.HasChanges = true;\n }\n\n return retVal;\n } \n public static Compare(a: LayoutElement, b: LayoutElement, options: GitComparisonOptions) {\n return LayoutHelper.CompareParsed(LayoutHelper.ParseLayout(a), LayoutHelper.ParseLayout(b), options);\n }\n public static CompareText(a, b, options: GitComparisonOptions) {\n return LayoutHelper.Compare(plainToClass(LayoutElement, JSON.parse(a)), plainToClass(LayoutElement, JSON.parse(b)), options);\n }\n\n public static CompareLayoutElements(a: GitComparisonDocument, b: GitComparisonDocument, options: GitComparisonOptions) {\n let retVal = {\n Tree: [],\n Changes: {}\n }\n //#region LayoutElements\n if (a.Compare && b.Compare) {\n\n let source = a.Compare;\n let sourceKeys = Object.keys(a.Compare);\n\n let target = b.Compare;\n let targetKeys = Object.keys(b.Compare);\n\n sourceKeys.forEach((key) => {\n if (!target[key]) {\n let diff = LayoutHelper.GenerateDiff(key, GitDiffChangeType.REMOVE, GitDiffType.LAYOUTELEMENT, a.Layout, b.Layout);\n retVal.Changes[key]=diff;\n if (options.CreateChangesTree) {\n let item: TreeNode = {};\n item.label = source[key].Layout._Name;\n item.data = diff;\n item.key = key;\n retVal.Tree.push(item);\n }\n } else {\n if (target[key].ParentID == source[key].ParentID &&\n target[key].Position == source[key].Position &&\n target[key].JSON == source[key].JSON) {\n\n } else {\n let treenode:TreeNode = null;\n if (options.CreateChangesTree) {\n treenode = {};\n treenode.label = source[key].Layout._Name;\n treenode.key = key;\n if (!options.DeepComparison) {\n retVal.Tree.push(treenode);\n }\n }\n let diff = LayoutHelper.GenerateDiff(key, GitDiffChangeType.MODIFIED, GitDiffType.LAYOUTELEMENT, JSON.parse(source[key].JSON), JSON.parse(target[key].JSON));\n\n if (options.DeepComparison) {\n let children = LayoutHelper.FillChildren(diff.Source, diff.Modified, options, key);\n if (options.CreateChangesTree) {\n if (treenode) {\n treenode.children = children.Tree;\n retVal.Tree.push(treenode);\n } else {\n \n }\n }\n retVal.Changes = { ...retVal.Changes, ...children.Changes };\n }\n retVal.Changes[key]=diff;\n }\n }\n })\n targetKeys.forEach((key) => {\n if (!source[key]) {\n let diff = LayoutHelper.GenerateDiff(key, GitDiffChangeType.ADD, GitDiffType.LAYOUTELEMENT, a.Layout, b.Layout);\n retVal.Changes[key]=diff;\n if (options.CreateChangesTree) {\n let item: TreeNode = {};\n item.label = target[key].Layout._Name;\n item.data = diff;\n item.key = key;\n retVal.Tree.push(item);\n }\n }\n })\n }\n //#endregion\n return retVal;\n }\n private static FillChildren(Source, Modified, options, prefix) {\n let retVal = {\n Tree: [],\n Changes: {}\n }\n \n if (Source != null && Modified != null) {\n let sourceKeys = Object.keys(Source);\n let modifiedKeys = Object.keys(Modified);\n sourceKeys.forEach((key) => {\n let fullkey = prefix + '||' + key;\n let sourceValue = Source[key];\n let modifiedValue = Modified[key];\n let isArray = Array.isArray(sourceValue) || Array.isArray(modifiedValue);\n let isObject = (typeof (sourceValue) == 'object' || typeof (modifiedValue) == 'object') && !isArray;\n if (isObject || isArray) {\n sourceValue = JSON.stringify(sourceValue);\n modifiedValue = JSON.stringify(modifiedValue);\n }\n\n if (Modified[key] == undefined) {\n let diff = LayoutHelper.GenerateDiff(key, GitDiffChangeType.REMOVE, GitDiffType.OTHER, Source[key], Modified[key]);\n retVal.Changes[fullkey] = diff;\n if (options.CreateChangesTree) {\n let item: TreeNode = {};\n item.label = key;\n item.data = diff;\n item.key = fullkey;\n retVal.Tree.push(item);\n }\n } else {\n if (modifiedValue == sourceValue) {\n } else {\n let diff = LayoutHelper.GenerateDiff(key, GitDiffChangeType.MODIFIED, GitDiffType.OTHER, Source[key], Modified[key]);\n let treenode: TreeNode = {};\n if (options.CreateChangesTree) {\n treenode.label = key;\n treenode.data = diff;\n treenode.key = fullkey;\n treenode.children = [];\n }\n\n if (options.DeepComparison) {\n if (isArray) {\n\n let SourceLength = Source[key].length;\n let ModifiedLength = Modified[key].length;\n let length = SourceLength >= ModifiedLength ? SourceLength : ModifiedLength;\n for (var i = 0; i < length; i++) {\n\n let sourceObject = null;\n if (SourceLength > i) {\n sourceObject = Source[key][i];\n }\n let modifiedObject = null;\n if (ModifiedLength > i) {\n modifiedObject = Modified[key][i];\n }\n if (sourceObject != null && modifiedObject != null) {\n let objects = LayoutHelper.FillChildren(sourceObject, modifiedObject, options, fullkey + '||' + i);\n let subdiff = LayoutHelper.GenerateDiff(fullkey + '||' + i, GitDiffChangeType.MODIFIED, GitDiffType.OTHER, sourceObject, modifiedObject);\n retVal.Changes[fullkey + '||' + i] = subdiff;\n if (options.CreateChangesTree) {\n if (objects.Tree && objects.Tree.length > 0) {\n let arraytreenode: TreeNode = {};\n arraytreenode.label = i + '';\n arraytreenode.data = subdiff;\n arraytreenode.key = fullkey + '||' + i;\n arraytreenode.children = objects.Tree;\n if (treenode) {\n treenode.children = [arraytreenode];\n }\n }\n }\n retVal.Changes = { ...retVal.Changes, ...objects.Changes };\n }\n if (sourceObject == null && modifiedObject != null) {\n let diff = LayoutHelper.GenerateDiff(i+'', GitDiffChangeType.ADD, GitDiffType.OTHER, null, modifiedObject);\n retVal.Changes[fullkey + '||' + i] = diff;\n if (options.CreateChangesTree) {\n if (treenode) {\n let item: TreeNode = {};\n item.label = i + '';;\n item.data = diff;\n item.key = fullkey + '||' + i;\n treenode.children = [...treenode.children, item];\n }\n }\n }\n if (sourceObject != null && modifiedObject == null) {\n let diff = LayoutHelper.GenerateDiff(i + '', GitDiffChangeType.REMOVE, GitDiffType.OTHER, sourceObject, null);\n retVal.Changes[fullkey + '||' + i] = diff;\n if (options.CreateChangesTree) {\n if (treenode) {\n let item: TreeNode = {};\n item.label = i + '';;\n item.data = diff;\n item.key = fullkey + '||' + i;\n treenode.children = [...treenode.children, item];\n }\n }\n } \n }\n if (treenode && treenode.children && treenode.children.length > 0) {\n retVal.Tree.push(treenode);\n }\n } else if (isObject) {\n let objects = LayoutHelper.FillChildren(diff.Source, diff.Modified, options, fullkey);\n if (options.CreateChangesTree) {\n if (treenode) {\n treenode.children = objects.Tree;\n retVal.Tree.push(treenode);\n }\n }\n retVal.Changes = { ...retVal.Changes, ...objects.Changes };\n } else {\n if (options.CreateChangesTree) {\n retVal.Tree.push(treenode);\n }\n }\n } else {\n if (options.CreateChangesTree) {\n retVal.Tree.push(treenode);\n }\n }\n retVal.Changes[fullkey] = diff;\n }\n }\n });\n modifiedKeys.forEach((key) => {\n let fullkey = prefix + '||' + key;\n let sourceValue = Source[key];\n let modifiedValue = Modified[key];\n let isArray = Array.isArray(sourceValue) || Array.isArray(modifiedValue);\n let isObject = (typeof (sourceValue) == 'object' || typeof (modifiedValue) == 'object') && !isArray;\n if (isObject || isArray) {\n sourceValue = JSON.stringify(sourceValue);\n modifiedValue = JSON.stringify(modifiedValue);\n }\n if (Source[key] == undefined) {\n let diff = new GitComparisonDiff();\n diff.ChangeType = GitDiffChangeType.ADD;\n diff.Type = GitDiffType.OTHER;\n diff.Key = key;\n diff.Source = Source[key];\n diff.SourceJSON = sourceValue;\n diff.Modified = Modified[key];\n diff.ModifiedJSON = modifiedValue;\n retVal.Changes[fullkey] = diff;\n if (options.CreateChangesTree) {\n let item: TreeNode = {};\n item.label = key;\n item.data = diff;\n item.key = fullkey;\n retVal.Tree.push(item);\n }\n }\n });\n }\n if (Source == null && Modified != null) {\n let diff = LayoutHelper.GenerateDiff(prefix, GitDiffChangeType.ADD, GitDiffType.OTHER, null, Modified);\n retVal.Changes[prefix] = diff;\n if (options.CreateChangesTree) {\n let item: TreeNode = {};\n item.label = prefix;\n item.data = diff;\n item.key = prefix;\n retVal.Tree.push(item);\n }\n }\n if (Source != null && Modified == null) {\n let diff = LayoutHelper.GenerateDiff(prefix, GitDiffChangeType.REMOVE, GitDiffType.OTHER, Source, null);\n retVal.Changes[prefix] = diff;\n if (options.CreateChangesTree) {\n let item: TreeNode = {};\n item.label = prefix;\n item.data = diff;\n item.key = prefix;\n retVal.Tree.push(item);\n }\n }\n \n return retVal;\n }\n public static CompareWorkflows(a: GitComparisonDocument, b: GitComparisonDocument, options: GitComparisonOptions) {\n let retVal = {\n Tree: [],\n Changes: {}\n }\n //#region Workflows\n if (a.Workflows && b.Workflows) {\n let source = a.Workflows;\n let sourceKeys = Object.keys(a.Workflows);\n let target = b.Workflows;\n let targetKeys = Object.keys(b.Workflows);\n sourceKeys.forEach((key) => {\n if (!target[key]) {\n let diff = LayoutHelper.GenerateDiff(key, GitDiffChangeType.REMOVE, GitDiffType.WORKFLOW, source[key].Data, null);\n retVal.Changes[key] = diff;\n if (options.CreateChangesTree) {\n let item: TreeNode = {};\n item.label = source[key].Data.Caption;\n item.data = diff;\n item.key = key;\n retVal.Tree.push(item);\n }\n\n if (options.CreateChangesTree) {\n let item: TreeNode = {};\n item.label = source[key].Data.Caption;\n item.data = diff;\n item.key = key;\n retVal.Tree.push(item);\n }\n } else {\n if (target[key].JSON == source[key].JSON) {\n\n } else {\n let diff = LayoutHelper.GenerateDiff(key, GitDiffChangeType.MODIFIED, GitDiffType.WORKFLOW, source[key].Data, target[key].Data);\n let modulesTree: TreeNode = {};\n modulesTree.label = \"Modules\";\n modulesTree.key = \"Modules\";\n modulesTree.children = [];\n let connectorsTree: TreeNode = {};\n connectorsTree.label = \"Connectors\";\n connectorsTree.key = \"Connectors\";\n connectorsTree.children = [];\n if (source[key].Data && source[key].Data.Data && source[key].Data.Data.Modules && source[key].Data.Data.Connectors &&\n target[key].Data && target[key].Data.Data && target[key].Data.Data.Modules && target[key].Data.Data.Connectors) {\n //#region Modules\n let sourceModules = source[key].Data.Data.Modules;\n let targetModules = target[key].Data.Data.Modules;\n for (var i = 0; i < sourceModules.length; i++) {\n let sm = sourceModules[i];\n let item = targetModules.find((val) => val.SID == sm.SID);\n if (item != null) {\n if (JSON.stringify(item) == JSON.stringify(sm)) {\n\n } else {\n if (options.DeepComparison) {\n let subdiff = LayoutHelper.GenerateDiff(key + '||' + i, GitDiffChangeType.MODIFIED, GitDiffType.OTHER, sm, item);\n retVal.Changes[key + '||' + i] = subdiff;\n let objects = LayoutHelper.FillChildren(sm, item, options, key);\n if (objects.Changes) {\n retVal.Changes = { ...retVal.Changes, ...objects.Changes };\n }\n if (options.CreateChangesTree) {\n if (objects.Tree && objects.Tree.length > 0) {\n let arraytreenode: TreeNode = {};\n arraytreenode.label = i + '';\n arraytreenode.data = subdiff;\n arraytreenode.key = key + '||' + i;\n arraytreenode.children = objects.Tree;\n modulesTree.children.push(arraytreenode);\n }\n }\n }\n }\n } else {\n let subdiff = LayoutHelper.GenerateDiff(key + '||' + i, GitDiffChangeType.REMOVE, GitDiffType.OTHER, sm, null);\n retVal.Changes[key + '||' + i] = subdiff;\n if (options.CreateChangesTree) {\n let arraytreenode: TreeNode = {};\n arraytreenode.label = i + '';\n arraytreenode.data = subdiff;\n arraytreenode.key = key + '||' + i;\n modulesTree.children.push(arraytreenode);\n }\n }\n }\n for (var i = 0; i < targetModules.length; i++) {\n let sm = targetModules[i];\n let item = sourceModules.find((val) => val.SID == sm.SID);\n if (item == null) {\n let subdiff = LayoutHelper.GenerateDiff(key + '||' + i, GitDiffChangeType.ADD, GitDiffType.OTHER, null, sm);\n retVal.Changes[key + '||' + i] = subdiff;\n if (options.CreateChangesTree) {\n let arraytreenode: TreeNode = {};\n arraytreenode.label = i + '';\n arraytreenode.data = subdiff;\n arraytreenode.key = key + '||' + i;\n modulesTree.children.push(arraytreenode);\n }\n }\n }\n //#endregion\n //#region Connectors\n let sourceConnectors = source[key].Data.Data.Connectors;\n let targetConnectors = target[key].Data.Data.Connectors;\n for (var i = 0; i < sourceConnectors.length; i++) {\n let sm = sourceConnectors[i];\n let item = targetConnectors.find((val) => val.SID == sm.SID);\n if (item != null) {\n if (JSON.stringify(item) == JSON.stringify(sm)) {\n\n } else {\n if (options.DeepComparison) {\n let subdiff = LayoutHelper.GenerateDiff(key + '||' + i, GitDiffChangeType.MODIFIED, GitDiffType.OTHER, sm, item);\n retVal.Changes[key + '||' + i] = subdiff;\n let objects = LayoutHelper.FillChildren(sm, item, options, key);\n if (objects.Changes) {\n retVal.Changes = { ...retVal.Changes, ...objects.Changes };\n }\n if (options.CreateChangesTree) {\n if (objects.Tree && objects.Tree.length > 0) {\n let arraytreenode: TreeNode = {};\n arraytreenode.label = i + '';\n arraytreenode.data = subdiff;\n arraytreenode.key = key + '||' + i;\n arraytreenode.children = objects.Tree;\n connectorsTree.children.push(arraytreenode);\n }\n }\n }\n }\n } else {\n let subdiff = LayoutHelper.GenerateDiff(key + '||' + i, GitDiffChangeType.REMOVE, GitDiffType.OTHER, sm, null);\n retVal.Changes[key + '||' + i] = subdiff;\n if (options.CreateChangesTree) {\n let arraytreenode: TreeNode = {};\n arraytreenode.label = i + '';\n arraytreenode.data = subdiff;\n arraytreenode.key = key + '||' + i;\n connectorsTree.children.push(arraytreenode);\n }\n }\n }\n for (var i = 0; i < targetConnectors.length; i++) {\n let sm = targetConnectors[i];\n let item = sourceConnectors.find((val) => val.SID == sm.SID);\n if (item == null) {\n let subdiff = LayoutHelper.GenerateDiff(key + '||' + i, GitDiffChangeType.ADD, GitDiffType.OTHER, null, sm);\n retVal.Changes[key + '||' + i] = subdiff;\n if (options.CreateChangesTree) {\n let arraytreenode: TreeNode = {};\n arraytreenode.label = i + '';\n arraytreenode.data = subdiff;\n arraytreenode.key = key + '||' + i;\n connectorsTree.children.push(arraytreenode);\n }\n }\n }\n //#endregion\n }\n\n retVal.Changes[key] = diff;\n if (options.CreateChangesTree) {\n \n let item: TreeNode = {};\n item.label = target[key].Data.Caption;\n item.data = diff;\n item.key = key;\n item.children = [];\n if (modulesTree.children.length > 0) {\n item.children = [...item.children, modulesTree];\n }\n if (connectorsTree.children.length > 0) {\n item.children = [...item.children, connectorsTree];\n }\n retVal.Tree.push(item);\n }\n }\n }\n })\n targetKeys.forEach((key) => {\n if (!source[key]) {\n if (options.CreateChangesTree) {\n let diff = LayoutHelper.GenerateDiff(key, GitDiffChangeType.ADD, GitDiffType.WORKFLOW, null, target[key].Data);\n retVal.Changes[key] = diff;\n if (options.CreateChangesTree) {\n let item: TreeNode = {};\n item.label = target[key].Data.Caption;\n item.data = diff;\n item.key = key;\n retVal.Tree.push(item);\n }\n }\n }\n })\n }\n //#endregion\n return retVal;\n }\n\n\n private static GenerateDiff(Key: string, ChangeType: GitDiffChangeType, Type: GitDiffType, Source, Modified) {\n let diff = new GitComparisonDiff();\n diff.ChangeType = ChangeType;\n diff.Type = Type;\n diff.Key = Key;\n diff.Source = Source;\n diff.SourceJSON = Source?JSON.stringify(Source):null;\n diff.Modified = Modified;\n diff.ModifiedJSON = Modified ? JSON.stringify(Modified) : null;\n return diff;\n }\n private static CreateFlatList(Layout, Result, Parent, Position) {\n let copy = JSON.parse(JSON.stringify(Layout));\n delete copy.Elements;\n delete copy.Workflows;\n let item = new GitComparisonElement();\n item.Parent = Parent;\n item.ParentID = Parent ? Parent.ID : null;\n item.Layout = Layout;\n item.JSON = JSON.stringify(copy);\n item.Position = Position;\n item.ElementType = Layout.ElementType;\n Result[Layout.ID] = item;\n if (Layout.Elements && Layout.Elements.length > 0) {\n for (let i = 0; i < Layout.Elements.length; i++) {\n let element = Layout.Elements[i];\n this.CreateFlatList(element, Result, Layout, i);\n }\n }\n }\n public static ParseLayout(element): GitComparisonDocument {\n let retVal: GitComparisonDocument = {\n Layout: element,\n Workflows: {},\n Compare: {}\n };\n this.CreateFlatList(retVal.Layout, retVal.Compare, null, 0);\n if (retVal.Layout && retVal.Layout['Workflows']) {\n retVal.Layout['Workflows'].forEach((workflow) => {\n let item = new GitComparisonWorkflow();\n item.Data = workflow;\n item.JSON = JSON.stringify(workflow);\n retVal.Workflows[workflow.ID] = item;\n });\n }\n return retVal;\n }\n //#endregion\n}\n","export class LogManager {\n\n public static Log(title, message) {\n console.log('[' + new Date().toJSON() + '] '+title+':' + message);\n }\n\n public static Error(title, message) {\n console.error('[' + new Date().toJSON() + '] ' + title + ':' + message);\n }\n\n public static Warn(title, message) {\n console.warn('[' + new Date().toJSON() + '] ' + title + ':' + message);\n }\n}","import { NgZone } from '@angular/core';\nimport moment from 'moment';\nimport { UsersService } from '../services/users.service';\n\nexport class LogoutHandler {\n private static LogoutTime = 0;\n private static TimerID;\n private static NGZone: NgZone;\n private static Initialized = false;\n private static ActualUser;\n private static LastActivity = '';\n\n public static Initialize(ngZone: NgZone) {\n LogoutHandler.NGZone = ngZone;\n UsersService.ActiveUser.subscribe(x => {\n LogoutHandler.ActualUser = x\n if (x && LogoutHandler.LogoutTime > 0) {\n LogoutHandler.Update(LogoutHandler.LogoutTime * 60000);\n }\n });\n if (LogoutHandler.ActualUser) {\n const settingsJSON = localStorage.getItem(\"GeneralSettings\");\n if (settingsJSON) {\n const settings = JSON.parse(settingsJSON);\n if (settings && typeof settings.LogoutTime === 'number' && settings.LogoutTime > 0) {\n const mom = localStorage.getItem('LastActivity')\n if (mom) {\n const now = moment();\n const lastActivity = moment(mom);\n const diff = now.diff(lastActivity);\n const logOutMS = settings.LogoutTime * 60000;\n if (diff > logOutMS) {\n UsersService.LogoutStatic();\n return true;\n }\n }\n }\n }\n }\n return false;\n }\n\n public static SetLogoutTime(generalSettings) {\n let logoutTime = 0;\n if (generalSettings && typeof generalSettings.LogoutTime === 'number' && generalSettings.LogoutTime > 0) {\n logoutTime = generalSettings.LogoutTime;\n }\n if (logoutTime !== LogoutHandler.LogoutTime) {\n LogoutHandler.LogoutTime = logoutTime;\n if (logoutTime > 0) {\n LogoutHandler.InitializeInternal();\n LogoutHandler.Update(LogoutHandler.LogoutTime * 60000);\n } else {\n clearTimeout(LogoutHandler.TimerID);\n }\n }\n }\n\n private static InitializeInternal() {\n if (!LogoutHandler.Initialized && LogoutHandler.NGZone) {\n LogoutHandler.Initialized = true;\n LogoutHandler.NGZone.runOutsideAngular(\n (): void => {\n window.addEventListener(\"keydown\", LogoutHandler.handleEvent);\n window.addEventListener(\"mousemove\", LogoutHandler.handleEvent);\n }\n );\n }\n }\n\n private static Update(timeout:number) {\n clearTimeout(LogoutHandler.TimerID);\n if (LogoutHandler.Initialized && LogoutHandler.ActualUser) {\n LogoutHandler.TimerID = setTimeout(() => {\n const mom = localStorage.getItem('LastActivity')\n if (mom) {\n const now = moment();\n const lastActivity = moment(mom);\n const diff = now.diff(lastActivity);\n const logOutMS = LogoutHandler.LogoutTime * 60000;\n const nextTimeOut = logOutMS - diff;\n if (nextTimeOut <= 0) {\n UsersService.LogoutStatic();\n } else {\n LogoutHandler.Update(nextTimeOut);\n }\n }\n }, timeout);\n }\n }\n\n private static handleEvent = (): void => {\n if (LogoutHandler.LogoutTime > 0) {\n const lastActivity = moment().format();\n if (lastActivity !== LogoutHandler.LastActivity) {\n LogoutHandler.LastActivity = lastActivity;\n localStorage.setItem('LastActivity', lastActivity);\n }\n }\n }\n}","import { Observable, of } from 'rxjs';\nimport { CacheService } from '../cache/cache.service';\nimport { LayoutHelper } from './layout.helper';\n\n// @dynamic\nexport class MetaHelper {\n private static ControlTypes = {\n //#region Class\n 'c4ef25dd-c176-418c-836e-f26c52d7f59c': {\n //'scheduler': function (element) {\n // return !element.IsList && !element.IsShared && !element.IsReverse;\n //},\n 'combobox': function (element) {\n return element.IsShared;\n },\n 'listbox': function (element) {\n return element.IsList;\n },\n 'repeat': function (element) {\n return element.IsList;\n },\n 'autocomplete': function (element) {\n return element.IsShared;\n },\n 'datatable': function (element) {\n return element.IsList;\n }\n },\n //#endregion\n //#region Boolean\n '02414483-3194-474d-a3d1-0a1a8a36a9e0': {\n 'checkbox': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'radiobutton': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'togglebutton': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n }\n },\n //#endregion\n //#region ChangeDate\n '397767a9-9711-49cd-adb7-76678fff16bf': {\n 'textbox': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'datetimepicker': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n }\n },\n //#endregion\n //#region ChangeUser\n '07b8fdec-641d-48b7-b491-ca13af4b59c5': {},\n //#endregion\n //#region CreateDate\n 'f696d7f4-fa0b-4664-84d7-3f9bab8c99b7': {\n 'textbox': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'datetimepicker': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n }\n },\n //#endregion\n //#region CreateUser\n '919a5bff-675a-435c-b0c6-6d1076ae9156': {},\n //#endregion\n //#region Datum\n 'cfcb4295-9d1e-49b4-b466-3fe74d1b0c69': {\n 'datetimepicker': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n }\n },\n //#endregion\n //#region Double\n 'a2eb35c4-56d5-4acc-a58e-ef855cb5086b': {\n 'textbox': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'slider': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'chiplist': function (element) {\n return element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'sumcomponent': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'radiobutton': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n },\n //#endregion\n //#region Enum\n '876cf188-243b-49ed-91ab-b2cf27216a30': {\n 'combobox': function (element) {\n return !element.IsShared && !element.IsReverse;\n },\n 'radiobutton': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n // 'slider': function (element) {\n // return !element.IsList && !element.IsShared && !element.IsReverse;\n // },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'autocomplete': function (element) {\n return !element.IsShared && !element.IsReverse;\n },\n },\n //#endregion\n //#region Guid\n '983dad4c-fd88-4124-aed0-1dd1d177521a': {\n 'textbox': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n }\n },\n //#endregion\n //#region Integer\n 'c02230ee-05fb-46d2-ab58-5b9dde1f32d5': {\n 'textbox': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'slider': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'chiplist': function (element) {\n return element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'sumcomponent': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'radiobutton': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n }\n },\n //#endregion\n //#region Long\n 'a4299f61-eb3f-4b29-8c4e-144458d17048': {\n 'textbox': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'slider': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'chiplist': function (element) {\n return element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'sumcomponent': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'radiobutton': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n }\n },\n //#endregion\n //#region Text\n '9b056ce1-ffb9-4168-9e00-977449f2f66d': {\n 'textbox': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textarea': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'editor': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'image': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'objectviewer': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'video': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'iframe': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'embed': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'chiplist': function (element) {\n return element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'radiobutton': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'upload': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'download': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'qr': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'pdfviewer': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n },\n //#endregion\n //#region TimeSpan\n '3681a7ff-b566-4870-9ad2-9c6bd8dfcae0': {\n 'timespan': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n }\n },\n //#endregion\n //#region Mehrsprachiger Text\n 'a0c232a9-4ab7-444c-a7e2-d23899a5673b': {\n 'translationtextbox': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'editor': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'repeat': function (element) {\n return element.IsList;\n }\n },\n //#endregion\n //#region Benutzer\n 'a236172b-9aaa-4211-9fe9-b57daf3f3a29': {\n 'datatable': function (element) {\n return element.IsList;\n },\n 'combobox': function (element) {\n return true;\n },\n 'listbox': function (element) {\n return element.IsList;\n },\n 'autocomplete': function (element) {\n return true;\n }\n },\n //#endregion\n //#region Else\n '944c8a5c-a09f-419d-94fd-28344e52bf0f': {\n 'textbox': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textarea': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'editor': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'image': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'objectviewer': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'video': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'iframe': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'embed': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'chiplist': function (element) {\n return element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'radiobutton': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'upload': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'download': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n },\n //#endregion\n };\n\n private static DataTypes = {\n //#region Class\n 'c4ef25dd-c176-418c-836e-f26c52d7f59c': {\n 'raster': function (element) {\n return true; // !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'grid': function (element) {\n return true; // !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'bootstrapgrid': function (element) {\n return true; // !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'bootstraprepeat': function (element) {\n return true; // !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'flex': function (element) {\n return true; // !element.IsList && !element.IsShared && !element.IsReverse;\n },\n //'scheduler': function (element) {\n // return !element.IsList && !element.IsShared && !element.IsReverse;\n //},\n 'combobox': function (element) {\n return element.IsShared;\n },\n 'listbox': function (element) {\n return element.IsList;\n },\n 'repeat': function (element) {\n return element.IsList;\n },\n 'autocomplete': function (element) {\n return element.IsShared;\n },\n 'datatable': function (element) {\n return element.IsList;\n },\n 'spreadsheet': function (element) {\n return element.IsList && element.IsShared;\n },\n 'pivottable': function (element) {\n return element.IsList && element.IsShared;\n }\n },\n //#endregion\n //#region Boolean\n '02414483-3194-474d-a3d1-0a1a8a36a9e0': {\n 'checkbox': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'radiobutton': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'togglebutton': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n\n },\n //#endregion\n //#region ChangeDate\n '397767a9-9711-49cd-adb7-76678fff16bf': {\n 'textbox': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'datetimepicker': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n }\n },\n //#endregion\n //#region ChangeUser\n '07b8fdec-641d-48b7-b491-ca13af4b59c5': {},\n //#endregion\n //#region CreateDate\n 'f696d7f4-fa0b-4664-84d7-3f9bab8c99b7': {\n 'textbox': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'datetimepicker': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n }\n },\n //#endregion\n //#region CreateUser\n '919a5bff-675a-435c-b0c6-6d1076ae9156': {},\n //#endregion\n //#region Datum\n 'cfcb4295-9d1e-49b4-b466-3fe74d1b0c69': {\n 'datetimepicker': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textbox': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n }\n },\n //#endregion\n //#region Double\n 'a2eb35c4-56d5-4acc-a58e-ef855cb5086b': {\n 'textbox': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'slider': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'chiplist': function (element) {\n return element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'sumcomponent': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'radiobutton': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n }\n },\n //#endregion\n //#region Enum\n '876cf188-243b-49ed-91ab-b2cf27216a30': {\n 'combobox': function (element) {\n return !element.IsShared && !element.IsReverse;\n },\n 'radiobutton': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n // 'slider': function (element) {\n // return !element.IsList && !element.IsShared && !element.IsReverse;\n // },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'autocomplete': function (element) {\n return !element.IsShared && !element.IsReverse;\n },\n },\n //#endregion\n //#region Guid\n '983dad4c-fd88-4124-aed0-1dd1d177521a': {\n 'textbox': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n }\n },\n //#endregion\n //#region Integer\n 'c02230ee-05fb-46d2-ab58-5b9dde1f32d5': {\n 'textbox': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'slider': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'chiplist': function (element) {\n return element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'sumcomponent': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'radiobutton': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n },\n //#endregion\n //#region Long\n 'a4299f61-eb3f-4b29-8c4e-144458d17048': {\n 'textbox': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'slider': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'chiplist': function (element) {\n return element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'sumcomponent': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'radiobutton': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n },\n //#endregion\n //#region Text\n '9b056ce1-ffb9-4168-9e00-977449f2f66d': {\n 'textbox': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textarea': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'editor': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'image': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'objectviewer': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'video': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'iframe': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'embed': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'chiplist': function (element) {\n return element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'radiobutton': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'upload': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'download': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'qr': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'pdfviewer': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n },\n //#endregion\n //#region TimeSpan\n '3681a7ff-b566-4870-9ad2-9c6bd8dfcae0': {\n 'timespan': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n }\n },\n //#endregion\n //#region Mehrsprachiger Text\n 'a0c232a9-4ab7-444c-a7e2-d23899a5673b': {\n 'translationtextbox': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'editor': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'repeat': function (element) {\n return element.IsList;\n }\n },\n //#endregion\n //#region Benutzer\n 'a236172b-9aaa-4211-9fe9-b57daf3f3a29': {\n 'datatable': function (element) {\n return element.IsList;\n },\n 'combobox': function (element) {\n return true;\n },\n 'listbox': function (element) {\n return element.IsList;\n },\n 'autocomplete': function (element) {\n return true;\n }\n },\n //#endregion\n //#region Else\n '944c8a5c-a09f-419d-94fd-28344e52bf0f': {\n 'textbox': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textarea': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'editor': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'textblock': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'image': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'objectviewer': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'video': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'iframe': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'embed': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'chiplist': function (element) {\n return element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'radiobutton': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'upload': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n 'download': function (element) {\n return !element.IsList && !element.IsShared && !element.IsReverse;\n },\n }\n //#endregion\n };\n\n static FindParent(layout, SelectedItem) {\n if (SelectedItem && SelectedItem.Parent) {\n return SelectedItem.Parent;\n } else {\n return null;\n }\n\n //if (layout && layout.Elements && SelectedItem) {\n // for (let i = 0; i < layout.Elements.length; i++) {\n // const item = layout.Elements[i];\n // if (item.ID === SelectedItem.ID) {\n // return layout;\n // }\n // if (item.Elements && item.Elements.length > 0) {\n // const result = MetaHelper.FindParent(item, SelectedItem);\n // if (result) {\n // return result;\n // }\n // }\n // }\n //} else {\n // return null;\n //}\n }\n\n static ParentIsOfType(item, type: string): boolean {\n if (item) {\n let layout = LayoutHelper.GetLayout();\n if (layout) {\n let resolution = LayoutHelper.GetActiveResolution(layout);\n if (resolution) {\n layout = resolution;\n }\n }\n const parent = MetaHelper.FindParent(layout, item);\n return parent && parent.ElementType === type;\n }\n return false;\n }\n\n static FindParentPath(layout, selectedItem) {\n if (layout && layout.Elements && selectedItem) {\n for (let i = 0; i < layout.Elements.length; i++) {\n const item = layout.Elements[i];\n if (item.ID === selectedItem.ID) {\n return [layout];\n }\n if (item.Elements && item.Elements.length > 0) {\n const result = MetaHelper.FindParentPath(item, selectedItem);\n if (result) {\n return [layout].concat(result);\n }\n }\n }\n }\n return null;\n }\n\n static FindValidParent(layout, item) {\n const parent = MetaHelper.FindParent(layout, item);\n if (parent) {\n if ((parent.DataSourceID && parent.DataSourceID !== '00000000-0000-0000-0000-000000000000') ||\n (parent.DataModelID && parent.DataModelID !== '00000000-0000-0000-0000-000000000000') ||\n ((parent.DataSource && parent.DataSource !== '00000000-0000-0000-0000-000000000000') && !parent.DataModelID)) {\n return parent;\n } else {\n return MetaHelper.FindValidParent(layout, parent);\n }\n } else {\n return null;\n }\n }\n static FindDisabledParent(layout, item) {\n const parent = MetaHelper.FindParent(layout, item);\n if (parent) {\n if (parent.IsShared) {\n return true;\n } else {\n return MetaHelper.FindDisabledParent(layout, parent);\n }\n } else {\n return false;\n }\n }\n static FindValidWorkflowParent(layout, item) {\n const parent = MetaHelper.FindParent(layout, item);\n if (parent) {\n if (parent.Workflows) {\n return parent;\n } else {\n return MetaHelper.FindValidWorkflowParent(layout, parent);\n }\n } else {\n return null;\n }\n }\n static FindValidWorkflow(layout, item, workflowname) {\n const parent = MetaHelper.FindParent(layout, item);\n if (parent) {\n if (parent.Workflows) {\n const wfs = parent.Workflows.filter((wf, index) => {\n return wf.Caption === workflowname && wf.Data;\n });\n if (wfs && wfs.length === 1) {\n return wfs[0];\n } else {\n return MetaHelper.FindValidWorkflow(layout, parent, workflowname);\n }\n } else {\n return MetaHelper.FindValidWorkflow(layout, parent, workflowname);\n }\n } else {\n return null;\n }\n }\n static FindTableProperties(layout, item): any {\n const promise = new Promise((resolve, reject) => {\n if (item.DataModelID && item.DataModelID !== '00000000-0000-0000-0000-000000000000') {\n CacheService.ReadTableSub(item.DataSource).subscribe((result) => {\n resolve(result);\n return;\n });\n } else {\n const parent = MetaHelper.FindValidParent(layout, item);\n if (parent) {\n if (parent.DataSourceID && parent.DataSourceID !== '00000000-0000-0000-0000-000000000000') {\n CacheService.ReadTableSub(parent.DataSourceID).subscribe((result) => {\n resolve(result);\n });\n } else if ((parent.DataModelID && parent.DataModelID !== '00000000-0000-0000-0000-000000000000') ||\n ((parent.DataSource && parent.DataSource !== '00000000-0000-0000-0000-000000000000') && !parent.DataModelID)) {\n CacheService.ReadTableSub(parent.DataSource).subscribe((result) => {\n resolve(result);\n });\n } else if (parent.MetaTableProperties) {\n resolve(parent.MetaTableProperties)\n return;\n } else {\n resolve(null);\n return\n }\n } else {\n resolve(null)\n return\n }\n //if (parent && parent.MetaTableProperties) {\n // resolve(parent.MetaTableProperties)\n //} else {\n // resolve(null);\n //}\n }\n });\n return promise;\n }\n static FindTablePropertiesSub(layout, item): Observable {\n if (item.DataModelID && item.DataModelID !== '00000000-0000-0000-0000-000000000000') {\n return CacheService.ReadTableSub(item.DataSource)\n } else {\n const parent = MetaHelper.FindValidParent(layout, item);\n if (parent) {\n if (parent.DataSourceID && parent.DataSourceID !== '00000000-0000-0000-0000-000000000000') {\n return CacheService.ReadTableSub(parent.DataSourceID)\n } else if ((parent.DataModelID && parent.DataModelID !== '00000000-0000-0000-0000-000000000000') ||\n ((parent.DataSource && parent.DataSource !== '00000000-0000-0000-0000-000000000000') && !parent.DataModelID)) {\n return CacheService.ReadTableSub(parent.DataSource)\n } else if (parent.MetaTableProperties) {\n return of(parent.MetaTableProperties)\n } else {\n return of(null);\n }\n } else {\n return of(null);\n }\n }\n }\n static FindDataBindingProperties(layout, item): any {\n const promise = new Promise((resolve, reject) => {\n if ((!item.DataModelID || item.DataModelID == '00000000-0000-0000-0000-000000000000') && item.DataSourceID && item.DataSourceID !== '00000000-0000-0000-0000-000000000000' && item.UseAsSelection) {\n CacheService.ReadTableSub(item.DataSourceID).subscribe((result) => {\n MetaHelper.CheckForDataBinding(result, item.DataSource).then(x => {\n resolve(x);\n });\n });\n } else\n if (item.DataModelID && item.DataModelID !== '00000000-0000-0000-0000-000000000000') {\n CacheService.ReadTableSub(item.DataSource).subscribe((result) => {\n resolve({\n IsDataBinding: false,\n IsShared: false,\n Table: result,\n KeyColumns: null\n });\n });\n } else {\n const parent = MetaHelper.FindValidParent(layout, item);\n if (parent) {\n if (parent.DataSourceID && parent.DataSourceID !== '00000000-0000-0000-0000-000000000000') {\n CacheService.ReadTableSub(parent.DataSourceID).subscribe((result) => {\n MetaHelper.CheckForDataBinding(result, item.DataSource).then(x => {\n resolve(x);\n });\n });\n } else if ((parent.DataModelID && parent.DataModelID !== '00000000-0000-0000-0000-000000000000') ||\n ((parent.DataSource && parent.DataSource !== '00000000-0000-0000-0000-000000000000') && !parent.DataModelID)) {\n CacheService.ReadTableSub(parent.DataSource).subscribe((result) => {\n MetaHelper.CheckForDataBinding(result, item.DataSource).then(x => {\n resolve(x);\n });\n });\n } else {\n resolve(null);\n }\n } else {\n resolve(null);\n }\n }\n });\n return promise;\n }\n\n private static CheckForDataBinding(result, dataSource) {\n const promise = new Promise((resolve, reject) => {\n if (result) {\n const retVal = {\n IsDataBinding: false,\n IsShared: false,\n Table: result,\n KeyColumns: null\n };\n const fields = result.Fields;\n if (fields) {\n const field = fields.find(x => x.ID === dataSource);\n if (field) {\n retVal.IsDataBinding = true;\n if (field.Type === 'c4ef25dd-c176-418c-836e-f26c52d7f59c') {\n if (field.AdvancedType && field.AdvancedType !== '00000000-0000-0000-0000-000000000000') {\n CacheService.ReadTableSub(field.AdvancedType).subscribe(adv => {\n if (adv) {\n retVal.Table = adv;\n if (field.IsShared && !field.IsReverse) {\n retVal.IsShared = true;\n if (field.KeyColumns && field.KeyColumns.length > 0) {\n retVal.KeyColumns = [...field.KeyColumns];\n }\n }\n resolve(retVal);\n } else {\n resolve(null);\n }\n });\n } else {\n resolve(retVal);\n }\n } else if (field.Type === 'a236172b-9aaa-4211-9fe9-b57daf3f3a29') {\n CacheService.ReadTableSub(field.Type).subscribe(adv => {\n if (adv) {\n retVal.IsShared = true;\n retVal.Table = adv;\n resolve(retVal);\n } else {\n resolve(null);\n }\n });\n } else {\n resolve(retVal);\n }\n } else {\n resolve(retVal);\n }\n } else {\n resolve(retVal);\n }\n } else {\n resolve(result);\n }\n });\n return promise;\n }\n\n static FindFlatTableProperties(layout, item): any {\n const promise = new Promise((resolve, reject) => {\n // if (item.DataSourceID && item.DataSourceID !== '00000000-0000-0000-0000-000000000000') {\n // CacheService.ReadFlatTable(item.DataSourceID).then((result) => {\n // resolve(result);\n // });\n // } else\n if (item.DataModelID && item.DataModelID !== '00000000-0000-0000-0000-000000000000') {\n CacheService.ReadFlatTable(item.DataSource, true).then((result) => {\n resolve(result);\n });\n } else {\n const parent = MetaHelper.FindValidParent(layout, item);\n if (parent) {\n if (parent.DataSourceID && parent.DataSourceID !== '00000000-0000-0000-0000-000000000000') {\n CacheService.ReadFlatTable(parent.DataSourceID, true).then((result) => {\n resolve(result);\n });\n } else if ((parent.DataModelID && parent.DataModelID !== '00000000-0000-0000-0000-000000000000') ||\n ((parent.DataSource && parent.DataSource !== '00000000-0000-0000-0000-000000000000') && !parent.DataModelID)) {\n CacheService.ReadFlatTable(parent.DataSource, true).then((result) => {\n resolve(result);\n });\n } else {\n resolve(null);\n }\n } else {\n resolve(null);\n }\n }\n });\n return promise;\n }\n static FindDataSourceID(layout, item) {\n if (item.DataSourceID && item.DataSourceID !== '00000000-0000-0000-0000-000000000000') {\n return item.DataSourceID;\n } else if ((item.DataModelID && item.DataModelID !== '00000000-0000-0000-0000-000000000000') ||\n ((item.DataSource && item.DataSource !== '00000000-0000-0000-0000-000000000000') && !item.DataModelID)) {\n return item.DataSource;\n } else {\n const parent = MetaHelper.FindValidParent(layout, item);\n if (parent) {\n if (parent.DataSourceID && parent.DataSourceID !== '00000000-0000-0000-0000-000000000000') {\n return parent.DataSourceID;\n } else if ((parent.DataModelID && parent.DataModelID !== '00000000-0000-0000-0000-000000000000') ||\n ((parent.DataSource && parent.DataSource !== '00000000-0000-0000-0000-000000000000') && !parent.DataModelID)) {\n return parent.DataSource;\n } else {\n return null;\n }\n } else {\n return null;\n }\n }\n }\n static FindElementByID(layout, id) {\n if (layout.ID == id) {\n return layout;\n }\n if (layout.Elements && layout.Elements.length > 0) {\n for (let i = 0; i < layout.Elements.length; i++) {\n let item = layout.Elements[i];\n if (item.Elements && item.Elements.length > 0) {\n let ret = this.FindElementByID(item, id);\n if (ret) {\n return ret;\n }\n }\n if (item.ID == id) {\n return item;\n }\n }\n }\n return null;\n }\n static FindParentElementType(layout, SelectedItem, ElementType) {\n const parent = MetaHelper.FindParent(layout, SelectedItem);\n if (parent) {\n if (parent.ElementType === ElementType) {\n return parent;\n } else {\n return MetaHelper.FindParentElementType(layout, parent, ElementType);\n }\n } else {\n return null;\n }\n }\n static FindParentCustomEvent(layout, SelectedItem, EventName) {\n const parent = MetaHelper.FindParent(layout, SelectedItem);\n if (parent) {\n if (parent.CustomEvents) {\n var element = parent.CustomEvents.find((value) => value.Name == EventName);\n\n if (element) {\n return parent;\n }\n else {\n return MetaHelper.FindParentCustomEvent(layout, parent, EventName);\n }\n } else {\n return MetaHelper.FindParentCustomEvent(layout, parent, EventName);\n }\n } else {\n return null;\n }\n }\n\n static FilterTableProperties(layout, item): any {\n const promise = new Promise((resolve, reject) => {\n let retVal;\n MetaHelper.FindTableProperties(layout, item).then((result) => {\n retVal = result;\n\n if (result && result.Fields) {\n retVal = JSON.parse(JSON.stringify(retVal));\n retVal.Fields = result.Fields.filter((element, index, array) => {\n return MetaHelper.FieldFitsForElementType(element, item.ElementType);\n });\n resolve(retVal);\n } else {\n resolve(null);\n }\n });\n });\n return promise;\n }\n static FieldFitsForElementType(field, elementType): boolean {\n if (field && elementType) {\n const dtObj = MetaHelper.DataTypes[field.Type];\n if (dtObj) {\n const dtFunc = dtObj[elementType];\n if (dtFunc) {\n return dtFunc(field);\n }\n }\n }\n return false;\n }\n static GetValidControls(item): any {\n const retVal = [];\n if (item && item.Type) {\n const ct = MetaHelper.ControlTypes[item.Type];\n if (ct) {\n Object.keys(ct).forEach((key) => {\n if (ct[key](item)) {\n retVal.push(key);\n }\n });\n }\n }\n return retVal;\n }\n}","import { Axis, AxisNode, MultiResult, MultiNode } from '../models/datadescription/multi/multiresult.model';\nimport { HeterogenArea } from '../models/datadescription/multi/datadescription.model';\n\nexport class MultiResultHelper {\n\n static ExecuteOnAllNodes(axis: Axis, action, executeOnSumNodes = false) {\n if (axis && action) {\n MultiResultHelper.ExecuteOnAllNodesInternal(axis.Nodes, action, executeOnSumNodes);\n if (executeOnSumNodes && axis.SumNode) {\n action(axis.SumNode);\n }\n }\n }\n\n static ExecuteOnAllNodesInternal(nodes: AxisNode[], action, executeOnSumNodes = false) {\n if (nodes) {\n nodes.forEach(n => {\n action(n);\n MultiResultHelper.ExecuteOnAllNodesInternal(n.Children, action, executeOnSumNodes);\n if (executeOnSumNodes && n.SumNode) {\n action(n.SumNode);\n }\n });\n }\n }\n\n static GetNodesFlat(axis: Axis, uniqueID: number): AxisNode[] {\n const retVal = [];\n if (axis) {\n retVal.push(...MultiResultHelper.GetNodesFlatInternal(axis.Nodes, uniqueID));\n }\n return retVal;\n }\n\n private static GetNodesFlatInternal(nodes: AxisNode[], uniqueID: number): AxisNode[] {\n const retVal = [];\n if (nodes) {\n nodes.forEach(n => {\n if (n.UniqueID === uniqueID) {\n retVal.push(n);\n } else {\n retVal.push(...MultiResultHelper.GetNodesFlatInternal(n.Children, uniqueID));\n }\n });\n }\n return retVal;\n }\n\n static GetNodeSections(axis: Axis, uniqueID: number): AxisNode[][] {\n const retVal = [];\n if (axis) {\n retVal.push(...MultiResultHelper.GetNodeSectionsInternal(axis.Nodes, uniqueID));\n }\n return retVal;\n }\n\n public static GetNodeSectionsInternal(nodes: AxisNode[], uniqueID: number): AxisNode[] {\n const retVal = [];\n if (nodes) {\n const innerResult = [];\n nodes.forEach(n => {\n if (n.UniqueID === uniqueID) {\n innerResult.push(n);\n } else {\n retVal.push(...MultiResultHelper.GetNodeSectionsInternal(n.Children, uniqueID));\n }\n });\n if (innerResult.length > 0) {\n retVal.push(innerResult);\n }\n }\n return retVal;\n }\n\n static MergeLevels(nodes: AxisNode[], levelDepth: number, columnAction) {\n if (levelDepth === 1) {\n columnAction(nodes);\n } else {\n const actNode = nodes[nodes.length - 1];\n if (actNode.Children && actNode.Children.length > 0) {\n actNode.Children.forEach(child => {\n MultiResultHelper.MergeLevels([...nodes, child], levelDepth - 1, columnAction);\n });\n }\n }\n }\n\n static GetCellOrNull(result: MultiResult, x: AxisNode, y: AxisNode, m: AxisNode): MultiNode {\n if (result) {\n const xArray = result.Cells[x.Position];\n if (xArray) {\n const yArray = xArray[y.Position];\n if (yArray) {\n return yArray[m.Position];\n }\n }\n }\n return null;\n }\n\n static GetCellOrNew(result: MultiResult, x: AxisNode, y: AxisNode, m: AxisNode): MultiNode {\n let xArray = result.Cells[x.Position];\n if (!xArray) {\n xArray = [];\n result.Cells[x.Position] = xArray;\n }\n let yArray = xArray[y.Position];\n if (!yArray) {\n yArray = [];\n xArray[y.Position] = yArray;\n }\n let mn = yArray[m.Position];\n if (!mn) {\n mn = new MultiNode({\n X: x.Position,\n Y: y.Position,\n M: m.Position\n });\n yArray[m.Position] = mn;\n }\n return mn;\n }\n\n static TryGetCellOrNew(result: MultiResult, x: AxisNode, y: AxisNode, m: AxisNode): { Node: MultiNode, IsNew: boolean } {\n const retVal = {\n Node: null,\n IsNew: false\n };\n let xArray = result.Cells[x.Position];\n if (!xArray) {\n xArray = [];\n result.Cells[x.Position] = xArray;\n }\n let yArray = xArray[y.Position];\n if (!yArray) {\n yArray = [];\n xArray[y.Position] = yArray;\n }\n let mn = yArray[m.Position];\n if (!mn) {\n retVal.IsNew = true;\n mn = new MultiNode({\n X: x.Position,\n Y: y.Position,\n M: m.Position\n });\n yArray[m.Position] = mn;\n }\n retVal.Node = mn;\n return retVal;\n }\n\n static GetValueX(result: MultiResult, measureAxisNode: AxisNode, oppNode: AxisNode, measure: AxisNode, getNew: boolean) {\n if (getNew) {\n return MultiResultHelper.GetCellOrNew(result, measureAxisNode, oppNode, measure);\n } else {\n return MultiResultHelper.GetCellOrNull(result, measureAxisNode, oppNode, measure);\n }\n }\n\n static GetValueY(result: MultiResult, measureAxisNode: AxisNode, oppNode: AxisNode, measure: AxisNode, getNew: boolean) {\n if (getNew) {\n return MultiResultHelper.GetCellOrNew(result, oppNode, measureAxisNode, measure);\n } else {\n return MultiResultHelper.GetCellOrNull(result, oppNode, measureAxisNode, measure);\n }\n }\n\n static GetNodesFromArea(area: HeterogenArea, allNodes: AxisNode[], noLevelIndex: { Index: number }) {\n const retVal = {\n Nodes: [],\n Levels: []\n };\n if (area) {\n let levelID;\n if (area.Tuples && area.Tuples.some(t => {\n if (t.Levels && t.Levels.length > 0) {\n levelID = t.Levels[0].UniqueID;\n retVal.Levels.push(...t.Levels);\n return true;\n }\n return false;\n })) {\n allNodes.forEach(x => {\n if (x.UniqueID === levelID) {\n retVal.Nodes.push(x);\n }\n });\n } else {\n let innerIndex = 0;\n allNodes.some(x => {\n if (x.UniqueID === -1) {\n if (innerIndex === noLevelIndex.Index) {\n retVal.Nodes.push(x);\n return true;\n }\n innerIndex++;\n }\n return false;\n });\n noLevelIndex.Index++;\n }\n }\n return retVal;\n }\n\n static ResetStyleIDs(result: MultiResult) {\n if (result) {\n if (result.XAxis) {\n if (result.XAxis.SumNode) {\n result.XAxis.SumNode.StyleID = 0;\n }\n MultiResultHelper.ResetNodeStyles(result.XAxis.Nodes);\n }\n if (result.YAxis) {\n if (result.YAxis.SumNode) {\n result.YAxis.SumNode.StyleID = 0;\n }\n MultiResultHelper.ResetNodeStyles(result.YAxis.Nodes);\n }\n if (result.Measures) {\n MultiResultHelper.ResetNodeStyles(result.Measures.Nodes);\n }\n if (result.Cells) {\n result.Cells.forEach(x => {\n x.forEach(y => {\n y.forEach(m => {\n if (m) {\n m.StyleID = 0;\n }\n });\n });\n });\n }\n }\n }\n\n private static ResetNodeStyles(nodes: AxisNode[]) {\n if (nodes) {\n nodes.forEach(node => {\n node.StyleID = 0;\n if (node.SumNode) {\n node.SumNode.StyleID = 0;\n }\n MultiResultHelper.ResetNodeStyles(node.Children);\n });\n }\n }\n\n public static FindAxisNodeByPosition(nodes: AxisNode[], position: number): AxisNode {\n let retVal;\n if (nodes) {\n nodes.some(n => {\n if (n.Position === position) {\n retVal = n;\n return true;\n }\n const childResult = MultiResultHelper.FindAxisNodeByPosition(n.Children, position);\n if (childResult) {\n retVal = childResult;\n return true;\n }\n return false;\n });\n }\n return retVal;\n }\n\n public static FindAxisNodeByIDs(nodes: AxisNode[], uniqueID: number, memberID: string): AxisNode {\n let retVal;\n if (nodes) {\n nodes.some(n => {\n if (n.UniqueID === uniqueID && n.MemberId === memberID) {\n retVal = n;\n return true;\n }\n const childResult = MultiResultHelper.FindAxisNodeByIDs(n.Children, uniqueID, memberID);\n if (childResult) {\n retVal = childResult;\n return true;\n }\n return false;\n });\n }\n return retVal;\n }\n}\n","import { UUID } from 'angular2-uuid';\nimport { DataSwitchSettings, DataSwitchSettingsData } from '../workflow/modules/dataswitch/dataswitch.settings';\nimport { ExecuteWorkflowData, ExecuteWorkflowSettings } from '../workflow/modules/executeWorkflow/executeWorkflow.settings';\nimport { ForEachLoopSettingsData } from '../workflow/modules/forEach/forEachLoop.settings';\nimport { SetControlPropertiesSettings, SetControlPropertiesSettingsData } from '../workflow/modules/layout/elemProperty/set.control.properties.settings';\nimport {\n RemoveMultiStyleSettings, RemoveMultiStyleSettingsData\n} from '../workflow/modules/layout/setStyle/remove.multi.style.settings';\nimport { SetMultiStyleSettings, SetMultiStyleSettingsData } from '../workflow/modules/layout/setStyle/set.multi.style.settings';\nimport { LoginSettings, LoginSettingsData } from '../workflow/modules/login/login.settings';\nimport {\n ReadMultiPropertySettings, ReadMultiPropertySettingsData\n} from '../workflow/modules/readProperty/read.multi.property.settings';\nimport { RestCallSettings, RestCallSettingsData } from '../workflow/modules/restCall/restCall.settings';\nimport { ReadMultiVariableSettingsData } from '../workflow/modules/variables/readVariable/read.multi.variable.settings';\nimport { ReadVariableSettings } from '../workflow/modules/variables/readVariable/readVariable.settings';\nimport { SetMultiVariableSettingsData } from '../workflow/modules/variables/setVariable/set.multi.variable.settings';\nimport { SetVariableSettings } from '../workflow/modules/variables/setVariable/setVariable.settings';\nimport { SetWorkflowStatusData, SetWorkflowStatusSettings } from '../workflow/modules/wfStatus/setWFStatus.settings';\nimport { LayoutUnit } from '../models/basic/layoutunit.model';\nimport { LayoutUnitThickness } from '../models/basic/layoutunitthickness.model';\nimport { SideNav } from '../models/controls/sidenav.model';\nimport { Alignment } from '../models/enums/alignment.enum';\nimport { EventActionType } from '../models/enums/eventactiontype.enum';\nimport { GradientType } from '../models/enums/gradienttype.enum';\nimport { MethodType } from '../models/enums/methodtype.enum';\nimport { Overflow } from '../models/enums/overflow.enum';\nimport { ProviderChoice } from '../models/enums/providerchoice.enum';\nimport { UnitType } from '../models/enums/unittype.enum';\nimport { Layout } from '../models/layout.model';\nimport { LayoutBase, StyleBase } from '../models/layoutbase.model';\nimport { LayoutElement } from '../models/layoutelement.model';\nimport { Border } from '../models/style/border.model';\nimport { Color } from '../models/style/color.model';\nimport { Font } from '../models/style/font.model';\nimport { Gradient } from '../models/style/gradient.model';\nimport { GradientStopColor } from '../models/style/gradientstopcolor.model';\nimport { TranslatedString } from '../models/translatedstring.model';\nimport { Variable } from '../models/variable.model';\nimport { WorkflowData, WorkflowDescription, WorkflowModuleData } from '../models/workflow/workflow.model';\nimport { LayoutService } from '../services/layout.service';\nimport { SettingsService } from '../services/settings.service';\nimport { PermissionHelper } from './permissions.helper';\nimport { StartWfModuleData, StartWfModuleSettings } from '../workflow/modules/startend/start.wfmodule';\nimport { DefineMultiValuesSettingsData } from '../workflow/modules/definevalue/define.multi.values.settings';\nimport { DefineValueSettings } from '../workflow/modules/definevalue/define.value.settings';\nimport { ExecuteScriptSettings, ExecuteScriptSettingsData } from '../workflow/modules/script/execute.script.settings';\nimport { SetMultiElemValueSettings, SetMultiElemValueSettingsData } from '../workflow/modules/layout/elemValue/set.multi.elem.value.settings';\nimport { log } from 'mathjs';\n\nexport class NavigationHelper {\n \n public static CopyID;\n public static CutID;\n\n public static IsNavigationTree(selectedItem) {\n return selectedItem != null && selectedItem.Element != null && selectedItem.Element.DataSourceID == '7b0af7f2-9030-4e58-a54e-3009258c67b2';\n }\n\n public static GetSelectedTreeViewNodeID(selectedItem) {\n var id = '';\n if (selectedItem.Element.SelectedNodes && selectedItem.Element.SelectedNodes.length > 0) {\n var node = selectedItem.Element.SelectedNodes[0];\n if (node.Data && node.Data._Id) {\n id = node.Data._Id;\n }\n }\n return id;\n }\n\n public static GetSelectedTreeViewNode(selectedItem) {\n var tvn = null;\n if (selectedItem.Element.SelectedNodes && selectedItem.Element.SelectedNodes.length > 0) {\n var node = selectedItem.Element.SelectedNodes[0];\n if (node.Data && node.Data._Id) {\n tvn = node.Data;\n }\n }\n return tvn;\n }\n\n static BuildStructure(naviNodes) {\n const root = new NavigationStructureItem(null);\n const otherNodes: NavigationStructureItem[] = [];\n const nodeMap = new Map();\n naviNodes.forEach(nn => {\n const node = new NavigationStructureItem(nn);\n nodeMap.set(nn._Id, node);\n if (nn.ParentID) {\n const parent = nodeMap.get(nn.ParentID);\n if (parent) {\n parent.AddChild(node);\n } else {\n otherNodes.push(node);\n }\n } else {\n root.AddChild(node);\n }\n });\n otherNodes.forEach(node => {\n const parent = nodeMap.get(node.ParentID);\n if (parent) {\n parent.AddChild(node);\n }\n });\n return root.GetStructure().Children;\n }\n\n static BuildNavigation(naviNodes) {\n const structure = NavigationHelper.BuildStructure(naviNodes);\n const perm = PermissionHelper.ActiveNavigationPermissions.getValue();\n return {\n NavigationItems: NavigationHelper.GetNavigationItems(structure, perm)\n };\n }\n\n private static GetNavigationItems(structList, perm) {\n const retVal = [];\n if (structList) {\n structList.forEach(x => {\n const node = {\n Id: x.Data._Id,\n Label: TranslatedString.GetTranslation(x.Data.Caption),\n Url: null,\n Icon: null,\n children: null,\n IsVisible: true,\n InVisible: false\n };\n if (x.Data.Url) {\n node.Url = '/' + x.Data.StructureKey + x.Data.Url;\n }\n if (x.Data.Icon) {\n node.Icon = x.Data.Icon;\n }\n if (perm) {\n const actPerm = perm[node.Id];\n if (typeof actPerm === 'boolean') {\n node.InVisible = actPerm;\n }\n }\n if (x.Data.Hidden) {\n node.InVisible = true;\n }\n const children = NavigationHelper.GetNavigationItems(x.Children, perm);\n if (children.length > 0) {\n node.children = children;\n }\n retVal.push(node);\n });\n }\n return retVal;\n }\n\n private static GetWFModule(id: number): WorkflowModuleData {\n const retVal = new WorkflowModuleData();\n retVal.ID = id;\n const idMod = id % 4;\n retVal.XPos = 50 + Math.floor(id / 4) * 285 + idMod * 25;\n retVal.YPos = 50 + idMod * 150;\n return retVal;\n }\n\n static GetDefaultBaseLayout(): Layout {\n const l = new Layout();\n\n l.Visible = true;\n l.Name = 'BaseLayout';\n l['ElementType'] = 'grid';\n l['SideNav'] = SideNav.GetDefault();\n\n const outerCol = new LayoutBase();\n outerCol.Size = new LayoutUnit();\n outerCol.Size.Type = UnitType.Rest;\n l['ColumnDefinitions'] = [outerCol];\n\n const outerFirstRow = new LayoutBase();\n outerFirstRow.Size = new LayoutUnit();\n outerFirstRow.Size.Type = UnitType.Pixel;\n outerFirstRow.Size.Value = 50;\n const outerSecondRow = new LayoutBase();\n outerSecondRow.Size = new LayoutUnit();\n outerSecondRow.Size.Type = UnitType.Rest;\n l['RowDefinitions'] = [outerFirstRow, outerSecondRow];\n\n const innerGrid = new LayoutElement();\n\n innerGrid.Visible = true;\n innerGrid.Name = 'Header';\n innerGrid.ElementType = 'grid';\n\n innerGrid.BackgroundColor = new Gradient();\n innerGrid.BackgroundColor.Type = GradientType.Solid;\n const color = new GradientStopColor();\n color.Color = Color.FromHex('#5E5E5E');\n innerGrid.BackgroundColor.Colors.push(color);\n\n innerGrid.Font = new Font();\n innerGrid.Font.FontColor = Color.FromHex('#F5F5F5');\n\n const firstCol = new LayoutBase();\n firstCol.Size = new LayoutUnit();\n firstCol.Size.Type = UnitType.Pixel;\n firstCol.Size.Value = 50;\n const secCol = new LayoutBase();\n secCol.Size = new LayoutUnit();\n secCol.Size.Type = UnitType.Rest;\n const thirdCol = new LayoutBase();\n thirdCol.Size = new LayoutUnit();\n thirdCol.Size.Type = UnitType.Pixel;\n thirdCol.Size.Value = 50;\n const fourthCol = new LayoutBase();\n fourthCol.Size = new LayoutUnit();\n fourthCol.Size.Type = UnitType.Pixel;\n fourthCol.Size.Value = 50;\n\n innerGrid['ColumnDefinitions'] = [firstCol, secCol, thirdCol, fourthCol];\n\n const innerRow = new LayoutBase();\n innerRow.Size = new LayoutUnit();\n innerRow.Size.Type = UnitType.Rest;\n\n innerGrid['RowDefinitions'] = [innerRow];\n\n const sideNavToggle = new LayoutElement();\n sideNavToggle.Name = 'sidenav-toggle_1';\n sideNavToggle.Visible = true;\n sideNavToggle.Editable = true;\n sideNavToggle.ElementType = 'sidenav-toggle';\n innerGrid.Elements.push(sideNavToggle);\n\n const messageSetting = new LayoutElement();\n messageSetting.Name = 'messagecenter_1';\n messageSetting.Visible = true;\n messageSetting.Editable = true;\n messageSetting.ElementType = 'messagecenter';\n messageSetting.Column = 3;\n innerGrid.Elements.push(messageSetting);\n\n const userMenu = new LayoutElement();\n userMenu.Name = 'usermenu_1';\n userMenu.Visible = true;\n userMenu.Editable = true;\n userMenu.ElementType = 'usermenu';\n userMenu.Column = 4;\n innerGrid.Elements.push(userMenu);\n\n l.Elements.push(innerGrid);\n\n const content = new LayoutElement();\n content.Name = 'Content';\n content.Visible = true;\n content.Row = 2;\n content.ElementType = 'content';\n content['CellOverflow'] = Overflow.hidden;\n l.Elements.push(content);\n\n return l;\n }\n\n static GetDefaultLoginLayout(): Layout {\n //#region Layout\n const l = new Layout();\n l.Visible = true;\n l.Name = 'Login';\n l.BackgroundColor = new Gradient();\n l.BackgroundColor.Type = GradientType.Solid;\n const outerColor = new GradientStopColor();\n outerColor.Color = Color.FromHex('#808080');\n l.BackgroundColor.Colors.push(outerColor);\n\n l['ElementType'] = 'grid';\n\n const outerCol = new LayoutBase();\n outerCol.Size = new LayoutUnit();\n outerCol.Size.Type = UnitType.Rest;\n l['ColumnDefinitions'] = [outerCol];\n\n const outerRow = new LayoutBase();\n outerRow.Size = new LayoutUnit();\n outerRow.Size.Type = UnitType.Rest;\n l['RowDefinitions'] = [outerRow];\n\n const idVar = new Variable();\n idVar.Name = 'ID';\n idVar.Type = 'System.String';\n\n const mfaVar = new Variable();\n mfaVar.Name = 'MFA';\n mfaVar.Type = 'System.Boolean';\n mfaVar.Formula = 'false';\n l.Variables = [idVar, mfaVar];\n\n const innerGrid = new LayoutElement();\n\n innerGrid.Visible = true;\n innerGrid.Name = 'InnerFlex';\n innerGrid.ElementType = 'flex';\n innerGrid['Orientation'] = 1;\n innerGrid.HorizontalContentAlignment = Alignment.Center;\n innerGrid.VerticalContentAlignment = Alignment.Center;\n innerGrid.Width = new LayoutUnit();\n innerGrid.Width.Type = UnitType.Pixel;\n innerGrid.Width.Value = 371;\n innerGrid.Height = new LayoutUnit();\n innerGrid.Height.Type = UnitType.Auto;\n innerGrid.BackgroundColor = new Gradient();\n innerGrid.BackgroundColor.Type = GradientType.Solid;\n innerGrid.Border = new Border();\n innerGrid.Border.BorderRadius.TopLeft.Type = UnitType.Pixel;\n innerGrid.Border.BorderRadius.TopLeft.Value = 12;\n innerGrid.Border.BorderRadius.TopRight.Type = UnitType.Pixel;\n innerGrid.Border.BorderRadius.TopRight.Value = 12;\n innerGrid.Border.BorderRadius.BottomLeft.Type = UnitType.Pixel;\n innerGrid.Border.BorderRadius.BottomLeft.Value = 12;\n innerGrid.Border.BorderRadius.BottomRight.Type = UnitType.Pixel;\n innerGrid.Border.BorderRadius.BottomRight.Value = 12;\n const color = new GradientStopColor();\n color.Color = Color.FromHex('#D3D3D3');\n innerGrid.BackgroundColor.Colors.push(color);\n\n const errorText = new LayoutElement();\n errorText.Visible = false;\n errorText.Name = 'ErrorText';\n errorText.ElementType = 'textblock';\n errorText.Caption = 'Benutzername oder Passwort falsch! Bitte kontrollieren Sie die Eingabe.';\n errorText.Font = new Font();\n errorText.Font.FontColor = Color.FromHex('FF0000');\n errorText.Width = new LayoutUnit();\n errorText.Width.Type = UnitType.Pixel;\n errorText.Width.Value = 265;\n errorText.HorizontalContentAlignment = Alignment.Center;\n errorText.HorizontalTextAlignment = Alignment.Center;\n errorText.Padding = new LayoutUnitThickness();\n errorText.Padding.Top.Type = UnitType.Pixel;\n errorText.Padding.Top.Value = 10;\n innerGrid.Elements.push(errorText);\n\n const iconButton = new LayoutElement();\n iconButton.Visible = true;\n iconButton.Name = 'LoginIcon';\n iconButton.ElementType = 'icon';\n iconButton['Icon'] = 'account_circle';\n iconButton.Font = new Font();\n iconButton.Font.FontColor = new Color();\n iconButton.Font.FontColor.ColorReference = LayoutService.PrimarySID;\n const iconWidth = new LayoutUnit();\n iconWidth.Type = UnitType.Pixel;\n iconWidth.Value = 300;\n iconButton['IconWidth'] = iconWidth;\n const iconHeight = new LayoutUnit();\n iconHeight.Type = UnitType.Pixel;\n iconHeight.Value = 300;\n iconButton['IconHeight'] = iconHeight;\n iconButton.HorizontalContentAlignment = Alignment.Center;\n innerGrid.Elements.push(iconButton);\n\n const loginText = new LayoutElement();\n loginText.Visible = true;\n loginText.Name = 'LoginText';\n loginText.ElementType = 'textblock';\n loginText.Caption = 'Login';\n loginText.Font = new Font();\n loginText.Font.FontSize = 18;\n loginText.Font.FontColor = Color.FromHex('#585858');\n loginText.Width = new LayoutUnit();\n loginText.Width.Type = UnitType.Percent;\n loginText.Width.Value = 100;\n loginText.HorizontalTextAlignment = Alignment.Center;\n innerGrid.Elements.push(loginText);\n\n const nameFlex = new LayoutElement();\n nameFlex.Visible = true;\n nameFlex.Name = 'NameFlex';\n nameFlex.ElementType = 'flex';\n nameFlex['Orientation'] = 0;\n nameFlex.Padding = new LayoutUnitThickness();\n nameFlex.Padding.Left.Type = UnitType.Pixel;\n nameFlex.Padding.Left.Value = 16;\n nameFlex.Padding.Right.Type = UnitType.Pixel;\n nameFlex.Padding.Right.Value = 16;\n\n const userIcon = new LayoutElement();\n userIcon.Visible = true;\n userIcon.Name = 'UserIcon';\n userIcon.ElementType = 'icon';\n userIcon.HorizontalContentAlignment = Alignment.Center;\n userIcon.VerticalContentAlignment = Alignment.Center;\n userIcon.Height = new LayoutUnit();\n userIcon.Height.Type = UnitType.Percent;\n userIcon.Height.Value = 100;\n userIcon['Icon'] = 'person';\n userIcon.Font = new Font();\n userIcon.Font.FontColor = new Color();\n userIcon.Font.FontColor.ColorReference = LayoutService.PrimarySID;\n userIcon.Margin = new LayoutUnitThickness();\n userIcon.Margin.Right.Type = UnitType.Pixel;\n userIcon.Margin.Right.Value = 5;\n nameFlex.Elements.push(userIcon);\n\n const nameBox = new LayoutElement();\n nameBox.Visible = true;\n nameBox.Editable = true;\n nameBox.Name = 'LoginName';\n nameBox.ElementType = 'textbox';\n nameBox['Placeholder'] = 'USERNAME';\n nameBox['FlexFill'] = true;\n nameFlex.Elements.push(nameBox);\n\n innerGrid.Elements.push(nameFlex);\n\n const pwFlex = new LayoutElement();\n pwFlex.Visible = true;\n pwFlex.Name = 'PasswordFlex';\n pwFlex.ElementType = 'flex';\n pwFlex['Orientation'] = 0;\n pwFlex.Padding = new LayoutUnitThickness();\n pwFlex.Padding.Left.Type = UnitType.Pixel;\n pwFlex.Padding.Left.Value = 16;\n pwFlex.Padding.Right.Type = UnitType.Pixel;\n pwFlex.Padding.Right.Value = 16;\n\n const pwIcon = new LayoutElement();\n pwIcon.Visible = true;\n pwIcon.Name = 'PasswordIcon';\n pwIcon.ElementType = 'icon';\n pwIcon.HorizontalContentAlignment = Alignment.Center;\n pwIcon.VerticalContentAlignment = Alignment.Center;\n pwIcon.Height = new LayoutUnit();\n pwIcon.Height.Type = UnitType.Percent;\n pwIcon.Height.Value = 100;\n pwIcon['Icon'] = 'lock';\n pwIcon.Font = new Font();\n pwIcon.Font.FontColor = new Color();\n pwIcon.Font.FontColor.ColorReference = LayoutService.PrimarySID;\n pwIcon.Margin = new LayoutUnitThickness();\n pwIcon.Margin.Right.Type = UnitType.Pixel;\n pwIcon.Margin.Right.Value = 5;\n pwFlex.Elements.push(pwIcon);\n\n const pwBox = new LayoutElement();\n pwBox.Visible = true;\n pwBox.Editable = true;\n pwBox.Name = 'LoginPassword';\n pwBox.ElementType = 'textbox';\n pwBox['Placeholder'] = 'PASSWORD';\n pwBox['InputType'] = 'password';\n pwBox['FlexFill'] = true;\n pwFlex.Elements.push(pwBox);\n\n innerGrid.Elements.push(pwFlex);\n\n const mfaFlex = new LayoutElement();\n mfaFlex.Visible = false;\n mfaFlex.Name = 'MFAFlex';\n mfaFlex.ElementType = 'flex';\n mfaFlex['Orientation'] = 0;\n mfaFlex.Padding = new LayoutUnitThickness();\n mfaFlex.Padding.Left.Type = UnitType.Pixel;\n mfaFlex.Padding.Left.Value = 16;\n mfaFlex.Padding.Right.Type = UnitType.Pixel;\n mfaFlex.Padding.Right.Value = 16;\n\n const mfaIcon = new LayoutElement();\n mfaIcon.Visible = true;\n mfaIcon.Name = 'MFAIcon';\n mfaIcon.ElementType = 'icon';\n mfaIcon.HorizontalContentAlignment = Alignment.Center;\n mfaIcon.VerticalContentAlignment = Alignment.Center;\n mfaIcon.Height = new LayoutUnit();\n mfaIcon.Height.Type = UnitType.Percent;\n mfaIcon.Height.Value = 100;\n mfaIcon['Icon'] = 'key';\n mfaIcon.Font = new Font();\n mfaIcon.Font.FontColor = new Color();\n mfaIcon.Font.FontColor.ColorReference = LayoutService.PrimarySID;\n mfaIcon.Margin = new LayoutUnitThickness();\n mfaIcon.Margin.Right.Type = UnitType.Pixel;\n mfaIcon.Margin.Right.Value = 5;\n mfaFlex.Elements.push(mfaIcon);\n\n const mfaBox = new LayoutElement();\n mfaBox.Visible = true;\n mfaBox.Editable = true;\n mfaBox.Name = 'LoginMFA';\n mfaBox.ElementType = 'textbox';\n mfaBox['Placeholder'] = 'CODE';\n mfaBox['FlexFill'] = true;\n mfaFlex.Elements.push(mfaBox);\n\n innerGrid.Elements.push(mfaFlex);\n\n const providerBox = new LayoutElement();\n providerBox.Visible = true;\n providerBox.Editable = true;\n providerBox.Name = 'Providers';\n providerBox.ElementType = 'combobox';\n providerBox['Placeholder'] = 'SELECTSECURITYPROVIDERTYPE';\n providerBox['DisplayMemberPath'] = 'Name';\n providerBox.Padding = new LayoutUnitThickness();\n providerBox.Padding.Left.Type = UnitType.Pixel;\n providerBox.Padding.Left.Value = 40;\n providerBox.Padding.Right.Type = UnitType.Pixel;\n providerBox.Padding.Right.Value = 16;\n providerBox.Height = new LayoutUnit();\n providerBox.Height.Type = UnitType.Pixel;\n providerBox.Height.Value = 42;\n innerGrid.Elements.push(providerBox);\n\n const loginButton = new LayoutElement();\n loginButton.Visible = true;\n loginButton.Editable = true;\n loginButton.Name = 'LoginButton';\n loginButton.ElementType = 'button';\n loginButton.Caption = 'Login';\n loginButton['ButtonType'] = 'mat-button';\n loginButton.Width = new LayoutUnit();\n loginButton.Width.Value = 100;\n loginButton.Width.Type = UnitType.Percent;\n loginButton.BackgroundColor = new Gradient();\n loginButton.BackgroundColor.Type = GradientType.Solid;\n const loginColor = new GradientStopColor();\n loginColor.Color = new Color();\n loginColor.Color.ColorReference = LayoutService.PrimarySID;\n loginButton.BackgroundColor.Colors.push(loginColor);\n loginButton.Font = new Font();\n loginButton.Font.FontColor = Color.FromHex('#FFFFFF');\n loginButton.Border = new Border();\n loginButton.Border.BorderRadius.TopLeft.Type = UnitType.Pixel;\n loginButton.Border.BorderRadius.TopLeft.Value = 4;\n loginButton.Border.BorderRadius.TopRight.Type = UnitType.Pixel;\n loginButton.Border.BorderRadius.TopRight.Value = 4;\n loginButton.Border.BorderRadius.BottomLeft.Type = UnitType.Pixel;\n loginButton.Border.BorderRadius.BottomLeft.Value = 4;\n loginButton.Border.BorderRadius.BottomRight.Type = UnitType.Pixel;\n loginButton.Border.BorderRadius.BottomRight.Value = 4;\n loginButton.Padding = new LayoutUnitThickness();\n loginButton.Padding.Left.Type = UnitType.Pixel;\n loginButton.Padding.Left.Value = 16;\n loginButton.Padding.Top.Type = UnitType.Pixel;\n loginButton.Padding.Top.Value = 16;\n loginButton.Padding.Bottom.Type = UnitType.Pixel;\n loginButton.Padding.Bottom.Value = 16;\n loginButton.Padding.Right.Type = UnitType.Pixel;\n loginButton.Padding.Right.Value = 16;\n innerGrid.Elements.push(loginButton);\n\n l.Elements.push(innerGrid);\n //#endregion\n\n //#region Workflows\n let wfID = 0;\n //#region InitProviders\n const initWorkflow = new WorkflowDescription();\n initWorkflow.Caption = 'InitProviders';\n initWorkflow.ID = '23cfafd8-c3d9-41ed-8ae7-7f2bb26aa73f';\n initWorkflow.Data = new WorkflowData();\n\n const initStart = NavigationHelper.GetWFModule(wfID++);\n initStart.Module = StartWfModuleSettings.ModuleID;\n initStart.Settings = new StartWfModuleSettings();\n initWorkflow.Data.Modules.push(initStart);\n\n const initRest = new RestCallSettingsData();\n initRest.UseServiceURL = true;\n initRest.Type = MethodType.Get;\n initRest.Path = 'config/api/security/GetSecurityProviders?apibase=' + SettingsService.API_BASE_URL.getValue();\n const initRestModule = NavigationHelper.GetWFModule(wfID++);\n initRestModule.Module = RestCallSettings.ModuleID;\n initRestModule.Settings = initRest;\n initWorkflow.Data.Modules.push(initRestModule);\n\n const initSetStatus = new SetWorkflowStatusData();\n initSetStatus.StatusKey = 'providers';\n const initSetStatusModule = NavigationHelper.GetWFModule(wfID++);\n initSetStatusModule.Module = SetWorkflowStatusSettings.ModuleID;\n initSetStatusModule.Settings = initSetStatus;\n initWorkflow.Data.Modules.push(initSetStatusModule);\n\n const initSetProp = new SetControlPropertiesSettingsData();\n initSetProp.Controls.push({\n ControlName: providerBox.Name,\n Properties: [\n {\n PropertyName: 'ItemsSource',\n Formula: initSetStatus.StatusKey\n }\n ]\n });\n const initSetPropModule = NavigationHelper.GetWFModule(wfID++);\n initSetPropModule.Module = SetControlPropertiesSettings.ModuleID;\n initSetPropModule.Settings = initSetProp;\n initWorkflow.Data.Modules.push(initSetPropModule);\n\n const initScriptProp = new ExecuteScriptSettingsData();\n initScriptProp.ID = '9c3cf944-8183-912b-fc4e-e2518397dc26';\n initScriptProp.UseJObject = false;\n initScriptProp.Script = 'import { Global } from \"System\";\\r\\nexport class Main {\\r\\n constructor() {\\r\\n }\\r\\n run(): any {\\r\\n let status = Global.getStatus();\\r\\n let providers = status[\"providers\"];\\r\\n if (providers != null && providers.length > 0) {\\r\\n status[\"multiProviders\"] = providers.length > 1;\\r\\n for (let p of providers) {\\r\\n if (p.IsDefault) {\\r\\n return p;\\r\\n }\\r\\n }\\r\\n return providers[0];\\r\\n }\\r\\n status[\"multiProviders\"] = false;\\r\\n return null;\\r\\n }\\r\\n stop(): void {\\r\\n }\\r\\n}';\n const initScriptModule = NavigationHelper.GetWFModule(wfID++);\n initScriptModule.Module = ExecuteScriptSettings.ModuleID;\n initScriptModule.Settings = initScriptProp;\n initWorkflow.Data.Modules.push(initScriptModule);\n\n const initSetValueProp = new SetMultiElemValueSettingsData();\n initSetValueProp.Elements.push({\n ElemName: providerBox.Name,\n GetFromState: true,\n StatusKey: null\n });\n const initSetValueModule = NavigationHelper.GetWFModule(wfID++);\n initSetValueModule.Module = SetMultiElemValueSettings.ModuleID;\n initSetValueModule.Settings = initSetValueProp;\n initWorkflow.Data.Modules.push(initSetValueModule);\n\n const selChangeWFID = 'c760d1eb-f7e8-4e74-b1dd-7724aebc585a';\n\n const initExecWF = new ExecuteWorkflowData();\n initExecWF.WorkflowID = selChangeWFID;\n const initExecWFModule = NavigationHelper.GetWFModule(wfID++);\n initExecWFModule.Module = ExecuteWorkflowSettings.ModuleID;\n initExecWFModule.Settings = initExecWF;\n initWorkflow.Data.Modules.push(initExecWFModule);\n\n const initDataSwitchProps = new DataSwitchSettingsData();\n initDataSwitchProps.Conditions.push({\n Formula: 'multiProviders',\n Name: 'multiProviders'\n });\n const initDataSwitchModule = NavigationHelper.GetWFModule(wfID++);\n initDataSwitchModule.Module = DataSwitchSettings.ModuleID;\n initDataSwitchModule.Settings = initDataSwitchProps;\n initWorkflow.Data.Modules.push(initDataSwitchModule);\n\n const provStyle = new StyleBase();\n provStyle.Visible = false;\n const initSetProvStyle = new SetMultiStyleSettingsData();\n initSetProvStyle.Styles.push({\n Elements: [{ ElemName: providerBox.Name }],\n Layout: provStyle,\n StyleRef: null\n });\n const initSetProvStyleModule = NavigationHelper.GetWFModule(wfID++);\n initSetProvStyleModule.Module = SetMultiStyleSettings.ModuleID;\n initSetProvStyleModule.Settings = initSetProvStyle;\n initWorkflow.Data.Modules.push(initSetProvStyleModule);\n\n initWorkflow.Data.Connectors.push({\n ExitModule: initStart.ID,\n EntryModule: initRestModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n initWorkflow.Data.Connectors.push({\n ExitModule: initRestModule.ID,\n EntryModule: initSetStatusModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n initWorkflow.Data.Connectors.push({\n ExitModule: initSetStatusModule.ID,\n EntryModule: initSetPropModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n initWorkflow.Data.Connectors.push({\n ExitModule: initSetPropModule.ID,\n EntryModule: initScriptModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n initWorkflow.Data.Connectors.push({\n ExitModule: initScriptModule.ID,\n EntryModule: initSetValueModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n initWorkflow.Data.Connectors.push({\n ExitModule: initSetValueModule.ID,\n EntryModule: initExecWFModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n initWorkflow.Data.Connectors.push({\n ExitModule: initExecWFModule.ID,\n EntryModule: initDataSwitchModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n initWorkflow.Data.Connectors.push({\n ExitModule: initDataSwitchModule.ID,\n EntryModule: initSetProvStyleModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n\n l.Workflows.push(initWorkflow);\n\n l.Events.push({\n EventID: 'OnInit',\n Handlers: [\n {\n ActionType: EventActionType.Workflow,\n Action: initWorkflow.ID\n }\n ]\n });\n //#endregion\n\n wfID = 0;\n //#region Login\n const loginWF = new WorkflowDescription();\n loginWF.Caption = 'Login';\n loginWF.ID = '990f0512-d66f-4573-ba48-8993dce3441d';\n loginWF.Data = new WorkflowData();\n\n const loginStartModule = new WorkflowModuleData();\n loginStartModule.ID = wfID++;\n loginStartModule.XPos = 315;\n loginStartModule.YPos = 25;\n loginStartModule.Module = StartWfModuleSettings.ModuleID;\n loginStartModule.Settings = new StartWfModuleData();\n loginWF.Data.Modules.push(loginStartModule);\n\n const loginReadVar = new ReadMultiVariableSettingsData();\n loginReadVar.Variables.push({\n ElemName: l.Name,\n Variable: idVar.Name,\n StatusKey: 'providerID',\n UseForState: false\n });\n loginReadVar.Variables.push({\n ElemName: l.Name,\n Variable: mfaVar.Name,\n StatusKey: 'mfa',\n UseForState: false\n });\n const loginReadVarModule = new WorkflowModuleData();\n loginReadVarModule.ID = wfID++;\n loginReadVarModule.XPos = 260;\n loginReadVarModule.YPos = loginStartModule.YPos + 120;\n loginReadVarModule.Module = ReadVariableSettings.MultiModuleID;\n loginReadVarModule.Settings = loginReadVar;\n loginWF.Data.Modules.push(loginReadVarModule);\n\n const login = new LoginSettingsData();\n login.UseControlForName = true;\n login.Name = nameBox.Name;\n login.UseControlForPassword = true;\n login.Password = pwBox.Name;\n login.UseControlForMFACode = true;\n login.MFACode = mfaBox.Name;\n login.ProviderChoice = ProviderChoice.Formula;\n login.Provider = 'providerID';\n const loginModule = new WorkflowModuleData();\n loginModule.ID = wfID++;\n loginModule.XPos = loginReadVarModule.XPos;\n loginModule.YPos = loginReadVarModule.YPos + 120;\n loginModule.Module = LoginSettings.ModuleID;\n loginModule.Settings = login;\n loginWF.Data.Modules.push(loginModule);\n\n const wrongPW = new SetControlPropertiesSettingsData();\n wrongPW.Controls.push({\n ControlName: errorText.Name,\n Properties: [{\n Formula: 'translate(\"Benutzername oder Passwort falsch! Bitte kontrollieren Sie die Eingabe.\")',\n PropertyName: 'Caption'\n }]\n });\n const wrongPWModule = new WorkflowModuleData();\n wrongPWModule.ID = wfID++;\n wrongPWModule.XPos = 50;\n wrongPWModule.YPos = loginModule.YPos + 120;\n wrongPWModule.Module = SetControlPropertiesSettings.ModuleID;\n wrongPWModule.Settings = wrongPW;\n loginWF.Data.Modules.push(wrongPWModule);\n\n const unauthorized = new SetControlPropertiesSettingsData();\n unauthorized.Controls.push({\n ControlName: errorText.Name,\n Properties: [{\n Formula: 'translate(\"Kein Loginrecht vorhanden!\")',\n PropertyName: 'Caption'\n }]\n });\n const unauthorizedModule = new WorkflowModuleData();\n unauthorizedModule.ID = wfID++;\n unauthorizedModule.XPos = loginReadVarModule.XPos;\n unauthorizedModule.YPos = wrongPWModule.YPos + 30;\n unauthorizedModule.Module = SetControlPropertiesSettings.ModuleID;\n unauthorizedModule.Settings = unauthorized;\n loginWF.Data.Modules.push(unauthorizedModule);\n\n const disabled = new SetControlPropertiesSettingsData();\n disabled.Controls.push({\n ControlName: errorText.Name,\n Properties: [{\n Formula: 'translate(\"Benutzer inaktiv!\")',\n PropertyName: 'Caption'\n }]\n });\n const disabledModule = new WorkflowModuleData();\n disabledModule.ID = wfID++;\n disabledModule.XPos = unauthorizedModule.XPos + 210;\n disabledModule.YPos = wrongPWModule.YPos;\n disabledModule.Module = SetControlPropertiesSettings.ModuleID;\n disabledModule.Settings = disabled;\n loginWF.Data.Modules.push(disabledModule);\n\n const error = new SetMultiStyleSettingsData();\n const style = new StyleBase();\n style.Visible = true;\n error.Styles.push({\n Elements: [\n {\n ElemName: errorText.Name\n }\n ],\n Layout: style,\n StyleRef: null\n });\n const errorModule = new WorkflowModuleData();\n errorModule.ID = wfID++;\n errorModule.XPos = unauthorizedModule.XPos;\n errorModule.YPos = unauthorizedModule.YPos + 120;\n errorModule.Module = SetMultiStyleSettings.ModuleID;\n errorModule.Settings = error;\n loginWF.Data.Modules.push(errorModule);\n\n const loginDataSwitch = new DataSwitchSettingsData();\n loginDataSwitch.Conditions.push({\n Name: 'MFA',\n Formula: 'mfa'\n });\n const loginDataSwitchModule = new WorkflowModuleData();\n loginDataSwitchModule.ID = wfID++;\n loginDataSwitchModule.XPos = disabledModule.XPos + 355;\n loginDataSwitchModule.YPos = loginReadVarModule.YPos + 50;\n loginDataSwitchModule.Module = DataSwitchSettings.ModuleID;\n loginDataSwitchModule.Settings = loginDataSwitch;\n loginWF.Data.Modules.push(loginDataSwitchModule);\n\n const mfaText = new SetControlPropertiesSettingsData();\n mfaText.Controls.push({\n ControlName: errorText.Name,\n Properties: [{\n Formula: 'translate(\"Falscher Code!\")',\n PropertyName: 'Caption'\n }]\n });\n const mfaModule = new WorkflowModuleData();\n mfaModule.ID = wfID++;\n mfaModule.XPos = disabledModule.XPos + 210;\n mfaModule.YPos = wrongPWModule.YPos;\n mfaModule.Module = SetControlPropertiesSettings.ModuleID;\n mfaModule.Settings = mfaText;\n loginWF.Data.Modules.push(mfaModule);\n\n const mfaCaption = new SetControlPropertiesSettingsData();\n mfaCaption.Controls.push({\n ControlName: loginText.Name,\n Properties: [{\n Formula: 'translate(\"Authentication\")',\n PropertyName: 'Caption'\n }]\n });\n const mfaCaptionModule = new WorkflowModuleData();\n mfaCaptionModule.ID = wfID++;\n mfaCaptionModule.XPos = mfaModule.XPos + 210;\n mfaCaptionModule.YPos = mfaModule.YPos;\n mfaCaptionModule.Module = SetControlPropertiesSettings.ModuleID;\n mfaCaptionModule.Settings = mfaCaption;\n loginWF.Data.Modules.push(mfaCaptionModule);\n\n const mfaActive = new SetMultiStyleSettingsData();\n const mfaActiveStyle = new StyleBase();\n mfaActiveStyle.Visible = true;\n const mfaInActiveStyle = new StyleBase();\n mfaInActiveStyle.Visible = false;\n mfaActive.Styles.push({\n Elements: [\n {\n ElemName: mfaFlex.Name\n }\n ],\n Layout: mfaActiveStyle,\n StyleRef: null\n });\n mfaActive.Styles.push({\n Elements: [\n {\n ElemName: nameFlex.Name\n },\n {\n ElemName: pwFlex.Name\n },\n {\n ElemName: providerBox.Name\n }\n ],\n Layout: mfaInActiveStyle,\n StyleRef: null\n });\n const mfaActiveModule = new WorkflowModuleData();\n mfaActiveModule.ID = wfID++;\n mfaActiveModule.XPos = mfaCaptionModule.XPos;\n mfaActiveModule.YPos = mfaCaptionModule.YPos + 120;\n mfaActiveModule.Module = SetMultiStyleSettings.ModuleID;\n mfaActiveModule.Settings = mfaActive;\n loginWF.Data.Modules.push(mfaActiveModule);\n\n const loginSetVar = new SetMultiVariableSettingsData();\n loginSetVar.Elements.push({\n ElemName: l.Name,\n Variables: [\n {\n Name: mfaVar.Name,\n UseActualParam: false,\n UseVariable: false,\n Value: 'true'\n }\n ]\n });\n const loginSetVarModule = new WorkflowModuleData();\n loginSetVarModule.ID = wfID++;\n loginSetVarModule.XPos = mfaActiveModule.XPos;\n loginSetVarModule.YPos = mfaActiveModule.YPos + 120;\n loginSetVarModule.Module = SetVariableSettings.MultiModuleID;\n loginSetVarModule.Settings = loginSetVar;\n loginWF.Data.Modules.push(loginSetVarModule);\n\n const loginSuccessSetVar = new SetMultiVariableSettingsData();\n loginSuccessSetVar.Elements.push({\n ElemName: l.Name,\n Variables: [\n {\n Name: mfaVar.Name,\n UseActualParam: false,\n UseVariable: false,\n Value: 'false'\n }\n ]\n });\n const loginSuccessSetVarModule = new WorkflowModuleData();\n loginSuccessSetVarModule.ID = wfID++;\n loginSuccessSetVarModule.XPos = 50;\n loginSuccessSetVarModule.YPos = loginModule.YPos;\n loginSuccessSetVarModule.Module = SetVariableSettings.MultiModuleID;\n loginSuccessSetVarModule.Settings = loginSuccessSetVar;\n loginWF.Data.Modules.push(loginSuccessSetVarModule);\n\n loginWF.Data.Connectors.push({\n ExitModule: loginStartModule.ID,\n EntryModule: loginReadVarModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n loginWF.Data.Connectors.push({\n ExitModule: loginReadVarModule.ID,\n EntryModule: loginModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n loginWF.Data.Connectors.push({\n ExitModule: loginModule.ID,\n EntryModule: loginSuccessSetVarModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n loginWF.Data.Connectors.push({\n ExitModule: loginModule.ID,\n EntryModule: wrongPWModule.ID,\n EntryOption: 0,\n ExitOption: 1,\n ID: wfID++,\n SID: UUID.UUID()\n });\n loginWF.Data.Connectors.push({\n ExitModule: loginModule.ID,\n EntryModule: unauthorizedModule.ID,\n EntryOption: 0,\n ExitOption: 2,\n ID: wfID++,\n SID: UUID.UUID()\n });\n loginWF.Data.Connectors.push({\n ExitModule: loginModule.ID,\n EntryModule: disabledModule.ID,\n EntryOption: 0,\n ExitOption: 3,\n ID: wfID++,\n SID: UUID.UUID()\n });\n loginWF.Data.Connectors.push({\n ExitModule: wrongPWModule.ID,\n EntryModule: errorModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n loginWF.Data.Connectors.push({\n ExitModule: unauthorizedModule.ID,\n EntryModule: errorModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n loginWF.Data.Connectors.push({\n ExitModule: disabledModule.ID,\n EntryModule: errorModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n loginWF.Data.Connectors.push({\n ExitModule: loginModule.ID,\n EntryModule: loginDataSwitchModule.ID,\n EntryOption: 0,\n ExitOption: 4,\n ID: wfID++,\n SID: UUID.UUID()\n });\n loginWF.Data.Connectors.push({\n ExitModule: loginDataSwitchModule.ID,\n EntryModule: mfaCaptionModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n loginWF.Data.Connectors.push({\n ExitModule: mfaCaptionModule.ID,\n EntryModule: mfaActiveModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n loginWF.Data.Connectors.push({\n ExitModule: mfaActiveModule.ID,\n EntryModule: loginSetVarModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n loginWF.Data.Connectors.push({\n ExitModule: loginDataSwitchModule.ID,\n EntryModule: mfaModule.ID,\n EntryOption: 0,\n ExitOption: 1,\n ID: wfID++,\n SID: UUID.UUID()\n });\n loginWF.Data.Connectors.push({\n ExitModule: mfaModule.ID,\n EntryModule: errorModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n\n l.Workflows.push(loginWF);\n\n loginButton.Events.push({\n EventID: 'click',\n Handlers: [\n {\n ActionType: EventActionType.Workflow,\n Action: loginWF.ID\n }\n ]\n });\n //#endregion\n wfID = 0;\n //#region OnEnter\n const keyDownWF = new WorkflowDescription();\n keyDownWF.Caption = 'OnEnter';\n keyDownWF.ID = '937cdff9-71c9-4873-910d-b6ac1e2fd55d';\n keyDownWF.Data = new WorkflowData();\n\n const keyDownStartModule = NavigationHelper.GetWFModule(wfID++);\n keyDownStartModule.Module = StartWfModuleSettings.ModuleID;\n keyDownStartModule.Settings = new StartWfModuleData();\n keyDownWF.Data.Modules.push(keyDownStartModule);\n\n const readProps = new ReadMultiPropertySettingsData();\n readProps.Properties.push({\n PropName: 'key',\n StatusKey: 'key',\n UseForState: false\n });\n const readPropsModule = NavigationHelper.GetWFModule(wfID++);\n readPropsModule.Module = ReadMultiPropertySettings.ModuleID;\n readPropsModule.Settings = readProps;\n keyDownWF.Data.Modules.push(readPropsModule);\n\n const dataSwitch = new DataSwitchSettingsData();\n dataSwitch.Conditions.push({\n Name: 'Enter',\n Formula: 'key=\"Enter\"'\n });\n const dataSwitchModule = NavigationHelper.GetWFModule(wfID++);\n dataSwitchModule.Module = 'dataswitchWFModule';\n dataSwitchModule.Settings = dataSwitch;\n keyDownWF.Data.Modules.push(dataSwitchModule);\n\n const execWF = new ExecuteWorkflowData();\n execWF.WorkflowID = loginWF.ID;\n const execWFModule = NavigationHelper.GetWFModule(wfID++);\n execWFModule.Module = 'execWFModule';\n execWFModule.Settings = execWF;\n keyDownWF.Data.Modules.push(execWFModule);\n\n const keyDownRemoveStyle = new RemoveMultiStyleSettingsData();\n keyDownRemoveStyle.Elements.push({ ElemName: errorText.Name });\n const keyDownRemoveStyleModule = NavigationHelper.GetWFModule(wfID++);\n keyDownRemoveStyleModule.Module = RemoveMultiStyleSettings.ModuleID;\n keyDownRemoveStyleModule.Settings = keyDownRemoveStyle;\n keyDownWF.Data.Modules.push(keyDownRemoveStyleModule);\n\n keyDownWF.Data.Connectors.push({\n ExitModule: keyDownStartModule.ID,\n EntryModule: readPropsModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n keyDownWF.Data.Connectors.push({\n ExitModule: readPropsModule.ID,\n EntryModule: dataSwitchModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n keyDownWF.Data.Connectors.push({\n ExitModule: dataSwitchModule.ID,\n EntryModule: execWFModule.ID,\n EntryOption: 0,\n ExitOption: 1,\n ID: wfID++,\n SID: UUID.UUID()\n });\n keyDownWF.Data.Connectors.push({\n ExitModule: dataSwitchModule.ID,\n EntryModule: keyDownRemoveStyleModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n\n nameBox.Events.push({\n EventID: 'keydown',\n Handlers: [\n {\n ActionType: EventActionType.Workflow,\n Action: keyDownWF.ID\n }\n ]\n });\n\n pwBox.Events.push({\n EventID: 'keydown',\n Handlers: [\n {\n ActionType: EventActionType.Workflow,\n Action: keyDownWF.ID\n }\n ]\n });\n\n mfaBox.Events.push({\n EventID: 'keydown',\n Handlers: [\n {\n ActionType: EventActionType.Workflow,\n Action: keyDownWF.ID\n }\n ]\n });\n\n l.Workflows.push(keyDownWF);\n //#endregion\n wfID = 0;\n //#region ProviderChanged\n const selChangeWF = new WorkflowDescription();\n selChangeWF.Caption = 'ProviderChanged';\n selChangeWF.ID = selChangeWFID;\n selChangeWF.Data = new WorkflowData();\n\n const selChangeStartModule = NavigationHelper.GetWFModule(wfID++);\n selChangeStartModule.Module = StartWfModuleSettings.ModuleID;\n selChangeStartModule.Settings = new StartWfModuleData();\n selChangeWF.Data.Modules.push(selChangeStartModule);\n\n const selChangeSetStatusProps = new SetWorkflowStatusData();\n selChangeSetStatusProps.StatusKey = 'selectedProvider';\n selChangeSetStatusProps.KeepActualParam = true;\n const selChangeSetStatusModule = NavigationHelper.GetWFModule(wfID++);\n selChangeSetStatusModule.Module = SetWorkflowStatusSettings.ModuleID;\n selChangeSetStatusModule.Settings = selChangeSetStatusProps;\n selChangeWF.Data.Modules.push(selChangeSetStatusModule);\n\n const selDefValuesProps = new DefineMultiValuesSettingsData();\n selDefValuesProps.Values.push({\n Formula: 'GenerateNull()',\n StatusKey: 'propID',\n UseForState: false\n });\n selDefValuesProps.Values.push({\n Formula: 'GenerateNull()',\n StatusKey: 'propURL',\n UseForState: false\n });\n selDefValuesProps.Values.push({\n Formula: '\"\"',\n StatusKey: 'propType',\n UseForState: false\n });\n const selDefValuesModule = NavigationHelper.GetWFModule(wfID++);\n selDefValuesModule.Module = DefineValueSettings.MultiModuleID;\n selDefValuesModule.Settings = selDefValuesProps;\n selChangeWF.Data.Modules.push(selDefValuesModule);\n\n const selRemoveStyle = new RemoveMultiStyleSettingsData();\n selRemoveStyle.Elements.push({ ElemName: nameFlex.Name });\n selRemoveStyle.Elements.push({ ElemName: pwFlex.Name });\n const selRemoveStyleModule = NavigationHelper.GetWFModule(wfID++);\n selRemoveStyleModule.Module = RemoveMultiStyleSettings.ModuleID;\n selRemoveStyleModule.Settings = selRemoveStyle;\n selChangeWF.Data.Modules.push(selRemoveStyleModule);\n\n const selFirstDataSwitchProps = new DataSwitchSettingsData();\n selFirstDataSwitchProps.Conditions.push({\n Formula: 'IsNull(selectedProvider)',\n Name: 'isNull'\n });\n const selFirstDataSwitchModule = NavigationHelper.GetWFModule(wfID++);\n selFirstDataSwitchModule.Module = DataSwitchSettings.ModuleID;\n selFirstDataSwitchModule.Settings = selFirstDataSwitchProps;\n selChangeWF.Data.Modules.push(selFirstDataSwitchModule);\n\n const selReadProps = new ReadMultiPropertySettingsData();\n selReadProps.Properties.push({\n PropName: 'Id',\n StatusKey: 'propID',\n UseForState: false\n });\n selReadProps.Properties.push({\n PropName: 'Url',\n StatusKey: 'propURL',\n UseForState: false\n });\n selReadProps.Properties.push({\n PropName: 'Type',\n StatusKey: 'propType',\n UseForState: false\n });\n const selReadPropsModule = NavigationHelper.GetWFModule(wfID++);\n selReadPropsModule.Module = ReadMultiPropertySettings.ModuleID;\n selReadPropsModule.Settings = selReadProps;\n selChangeWF.Data.Modules.push(selReadPropsModule);\n\n const selSetVar = new SetMultiVariableSettingsData();\n selSetVar.Elements.push({\n ElemName: l.Name,\n Variables: [\n {\n Name: idVar.Name,\n UseActualParam: false,\n UseVariable: false,\n Value: 'propID'\n }\n ]\n });\n const selSetVarModule = NavigationHelper.GetWFModule(wfID++);\n selSetVarModule.Module = SetVariableSettings.MultiModuleID;\n selSetVarModule.Settings = selSetVar;\n selChangeWF.Data.Modules.push(selSetVarModule);\n\n const selDataSwitch = new DataSwitchSettingsData();\n selDataSwitch.Conditions.push({\n Name: 'HasUrl',\n Formula: 'Or(IsNull(propURL);propURL=\"\")=false'\n });\n selDataSwitch.Conditions.push({\n Name: 'IsScan',\n Formula: 'propType=\"31e75470-8458-48e5-af70-d8a6e8840b37\"'\n });\n const selDataSwitchModule = NavigationHelper.GetWFModule(wfID++);\n selDataSwitchModule.Module = DataSwitchSettings.ModuleID;\n selDataSwitchModule.Settings = selDataSwitch;\n selChangeWF.Data.Modules.push(selDataSwitchModule);\n\n const nameStyle = new StyleBase();\n nameStyle.Visible = false;\n const selSetNameStyle = new SetMultiStyleSettingsData();\n selSetNameStyle.Styles.push({\n Elements: [{ ElemName: nameFlex.Name }],\n Layout: nameStyle,\n StyleRef: null\n });\n const selSetNameStyleModule = NavigationHelper.GetWFModule(wfID++);\n selSetNameStyleModule.Module = SetMultiStyleSettings.ModuleID;\n selSetNameStyleModule.Settings = selSetNameStyle;\n selChangeWF.Data.Modules.push(selSetNameStyleModule);\n\n const pwStyle = new StyleBase();\n pwStyle.Visible = false;\n const selSetPWStyle = new SetMultiStyleSettingsData();\n selSetPWStyle.Styles.push({\n Elements: [{ ElemName: pwFlex.Name }],\n Layout: pwStyle,\n StyleRef: null\n });\n const selSetPWStyleModule = NavigationHelper.GetWFModule(wfID++);\n selSetPWStyleModule.Module = SetMultiStyleSettings.ModuleID;\n selSetPWStyleModule.Settings = selSetPWStyle;\n selChangeWF.Data.Modules.push(selSetPWStyleModule);\n\n selChangeWF.Data.Connectors.push({\n ExitModule: selChangeStartModule.ID,\n EntryModule: selChangeSetStatusModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n selChangeWF.Data.Connectors.push({\n ExitModule: selChangeSetStatusModule.ID,\n EntryModule: selDefValuesModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n selChangeWF.Data.Connectors.push({\n ExitModule: selDefValuesModule.ID,\n EntryModule: selRemoveStyleModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n selChangeWF.Data.Connectors.push({\n ExitModule: selRemoveStyleModule.ID,\n EntryModule: selFirstDataSwitchModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n selChangeWF.Data.Connectors.push({\n ExitModule: selFirstDataSwitchModule.ID,\n EntryModule: selReadPropsModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n selChangeWF.Data.Connectors.push({\n ExitModule: selFirstDataSwitchModule.ID,\n EntryModule: selSetVarModule.ID,\n EntryOption: 0,\n ExitOption: 1,\n ID: wfID++,\n SID: UUID.UUID()\n });\n selChangeWF.Data.Connectors.push({\n ExitModule: selReadPropsModule.ID,\n EntryModule: selSetVarModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n selChangeWF.Data.Connectors.push({\n ExitModule: selSetVarModule.ID,\n EntryModule: selDataSwitchModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n selChangeWF.Data.Connectors.push({\n ExitModule: selDataSwitchModule.ID,\n EntryModule: selSetNameStyleModule.ID,\n EntryOption: 0,\n ExitOption: 1,\n ID: wfID++,\n SID: UUID.UUID()\n });\n selChangeWF.Data.Connectors.push({\n ExitModule: selDataSwitchModule.ID,\n EntryModule: selSetPWStyleModule.ID,\n EntryOption: 0,\n ExitOption: 2,\n ID: wfID++,\n SID: UUID.UUID()\n });\n selChangeWF.Data.Connectors.push({\n ExitModule: selSetNameStyleModule.ID,\n EntryModule: selSetPWStyleModule.ID,\n EntryOption: 0,\n ExitOption: 0,\n ID: wfID++,\n SID: UUID.UUID()\n });\n\n l.Workflows.push(selChangeWF);\n\n providerBox.Events.push({\n EventID: 'selectionchanged',\n Handlers: [\n {\n ActionType: EventActionType.Workflow,\n Action: selChangeWF.ID\n }\n ]\n });\n //#endregion\n //#endregion\n\n return l;\n }\n}\n\nexport class NavigationStructureItem {\n private NavigationNode;\n private UnsortedChildren: NavigationStructureItem[][] = [];\n\n get ID() {\n return this.NavigationNode._Id;\n }\n get PreviousSibbling() {\n return this.NavigationNode.PreviousSibbling;\n }\n get ParentID() {\n return this.NavigationNode.ParentID;\n }\n\n constructor(nn) {\n this.NavigationNode = nn;\n }\n\n AddChild(child: NavigationStructureItem) {\n for (let i = 0; i < this.UnsortedChildren.length; i++) {\n const childList = this.UnsortedChildren[i];\n const first = childList[0].PreviousSibbling;\n if (first) {\n if (child.ID === first) {\n childList.splice(0, 0, child);\n for (let j = 0; j < this.UnsortedChildren.length; j++) {\n if (j !== i) {\n const innerList = this.UnsortedChildren[j];\n const lastID = innerList[innerList.length - 1].ID;\n if (child.PreviousSibbling === lastID) {\n innerList.push(...childList);\n this.UnsortedChildren.splice(i, 1);\n return;\n }\n }\n }\n return;\n }\n }\n const last = childList[childList.length - 1].ID;\n if (child.PreviousSibbling === last) {\n childList.push(child);\n for (let j = 0; j < this.UnsortedChildren.length; j++) {\n if (j !== i) {\n const innerList = this.UnsortedChildren[j];\n const innerFirst = innerList[0];\n if (innerFirst.PreviousSibbling === child.ID) {\n childList.push(...innerList);\n this.UnsortedChildren.splice(j, 1);\n return;\n }\n }\n }\n return;\n }\n }\n this.UnsortedChildren.push([child]);\n }\n\n GetStructure() {\n const retVal = {\n Data: this.NavigationNode,\n Children: []\n };\n let lastID;\n if (this.UnsortedChildren.some(x => {\n if (!x[0].PreviousSibbling) {\n x.forEach(y => {\n retVal.Children.push(y.GetStructure());\n });\n lastID = x[x.length - 1].ID;\n return true;\n }\n return false;\n })) {\n while (this.UnsortedChildren.some(x => {\n if (x[0].PreviousSibbling === lastID) {\n x.forEach(y => {\n retVal.Children.push(y.GetStructure());\n });\n lastID = x[x.length - 1].ID;\n return true;\n }\n return false;\n })) { }\n }\n return retVal;\n }\n}\n","import { BehaviorSubject, fromEvent, Observable } from 'rxjs';\nimport { ConnectionStatusEnum } from '../models/enums/connectionstatusenum.enum';\n\n//dynamic\nexport class NetworkConnection {\n\n public static status: ConnectionStatusEnum = ConnectionStatusEnum.Online;\n\n public static Online: BehaviorSubject = new BehaviorSubject(false);\n\n private static online$: Observable = null;\n private static offline$: Observable = null;\n\n private static OnlineSub = null;\n\n public static init() {\n if (this.OnlineSub) {\n this.OnlineSub.unsubscribe();\n }\n this.OnlineSub = NetworkConnection.Online.subscribe(() => {\n this.WriteLog();\n })\n NetworkConnection.Online.next(window.navigator.onLine);\n NetworkConnection.online$ = fromEvent(window, 'online');\n NetworkConnection.offline$ = fromEvent(window, 'offline');\n\n NetworkConnection.online$.subscribe(e => {\n NetworkConnection.status = ConnectionStatusEnum.Online;\n NetworkConnection.Online.next(true);\n });\n\n NetworkConnection.offline$.subscribe(e => {\n NetworkConnection.status = ConnectionStatusEnum.Offline;\n NetworkConnection.Online.next(false);\n });\n }\n\n private static WriteLog() {\n console.log('['+new Date().toJSON() + '] Online:' + NetworkConnection.Online.getValue());\n }\n\n constructor() {\n NetworkConnection.init();\n }\n\n}","import { TranslateService } from '@ngx-translate/core';\nimport { SnotifyService, SnotifyToastConfig, SnotifyPosition } from 'ng-snotify';\nimport { MessageType } from '../models/enums/messagetype.enum';\nimport { TranslateFormatText } from './array.helpers';\nimport { NotificationLevel } from '../models/enums/notificationlevel.enum';\nimport { ReceivedMessage } from '../models/notification/receivedmessage.model';\nimport { BehaviorSubject } from 'rxjs';\n\nexport class NotificationHelper {\n public static ReceivedMessages: BehaviorSubject = new BehaviorSubject([]);\n public static IgnoreErrorMessages = false;\n private static Service: SnotifyService = null;\n private static Translate: TranslateService = null;\n private static Config: SnotifyToastConfig = {\n timeout: 2000,\n showProgressBar: true,\n closeOnClick: false,\n pauseOnHover: true,\n titleMaxLength: 200,\n position: SnotifyPosition.leftBottom,\n };\n public static Initialize(service: SnotifyService, translate: TranslateService ) {\n NotificationHelper.Service = service;\n NotificationHelper.Translate = translate;\n }\n public static Success(content, title, contentParams?, titleParams?) {\n NotificationHelper.TranslateTexts(content, title, contentParams, titleParams, MessageType.Success);\n }\n public static Info(content, title, contentParams?, titleParams?) {\n NotificationHelper.TranslateTexts(content, title, contentParams, titleParams, MessageType.Information);\n }\n public static Error(content, title, contentParams?, titleParams?) {\n NotificationHelper.TranslateTexts(content, title, contentParams, titleParams, MessageType.Error);\n }\n public static Warn(content, title, contentParams?, titleParams?) {\n NotificationHelper.TranslateTexts(content, title, contentParams, titleParams, MessageType.Warning);\n }\n\n public static HandleClientNotification(clientNotification) {\n let level = NotificationLevel.Information; // Information\n if (clientNotification.Level) {\n level = clientNotification.Level;\n }\n const cnContent = JSON.parse(clientNotification.Content);\n let title = '';\n if (cnContent.Title) {\n title = cnContent.Title;\n }\n let content = '';\n if (cnContent.Content) {\n content = cnContent.Content;\n }\n let config = NotificationHelper.Config;\n if (cnContent.HTMLContent) {\n config = JSON.parse(JSON.stringify(config));\n config.html = cnContent.HTMLContent;\n }\n switch (level) {\n case NotificationLevel.Error:\n case NotificationLevel.Critical:\n if (!NotificationHelper.IgnoreErrorMessages) {\n NotificationHelper.Service.error(content, title, config);\n }\n NotificationHelper.AddToMessages(MessageType.Error, title, content, clientNotification.CreateDate);\n break;\n case NotificationLevel.Warning:\n NotificationHelper.Service.warning(content, title, config);\n NotificationHelper.AddToMessages(MessageType.Warning, title, content, clientNotification.CreateDate);\n break;\n default:\n NotificationHelper.Service.info(content, title, config);\n NotificationHelper.AddToMessages(MessageType.Information, title, content, clientNotification.CreateDate);\n break;\n }\n }\n public static HandleErrorNotification(clientNotification) {\n let level = NotificationLevel.Information; // Information\n const cnContent = JSON.parse(clientNotification.Content);\n let title = '';\n \n if (cnContent.Title) {\n title = cnContent.Title;\n }\n let content = '';\n if (cnContent.Content) {\n content = cnContent.Content;\n }\n let config = NotificationHelper.Config;\n if (cnContent.HTMLContent) {\n config = JSON.parse(JSON.stringify(config));\n config.html = cnContent.HTMLContent;\n }\n if (cnContent.Level) {\n level = cnContent.Level;\n }\n switch (level) {\n case NotificationLevel.Error:\n case NotificationLevel.Critical:\n if (!NotificationHelper.IgnoreErrorMessages) {\n NotificationHelper.Service.error(content, title, config);\n }\n NotificationHelper.AddToMessages(MessageType.Error, title, content, clientNotification.CreateDate);\n break;\n case NotificationLevel.Warning:\n NotificationHelper.Service.warning(content, title, config);\n NotificationHelper.AddToMessages(MessageType.Warning, title, content, clientNotification.CreateDate);\n break;\n default:\n NotificationHelper.Service.info(content, title, config);\n NotificationHelper.AddToMessages(MessageType.Information, title, content, clientNotification.CreateDate);\n break;\n }\n }\n\n private static TranslateTexts(content, title, contentParams, titleParams, messageType) {\n if (content instanceof TranslateFormatText) {\n contentParams = {};\n content.FormatParams.forEach((v, i) => {\n contentParams[i.toString()] = v;\n });\n content = content.TranslateText;\n }\n if (title instanceof TranslateFormatText) {\n titleParams = {};\n title.FormatParams.forEach((v, i) => {\n titleParams[i.toString()] = v;\n });\n title = title.TranslateText;\n }\n\n if (content) {\n NotificationHelper.Translate.get(content, contentParams).subscribe((body) => {\n if (title) {\n NotificationHelper.Translate.get(title, titleParams).subscribe((head) => {\n NotificationHelper.Send(messageType, head, body, true);\n });\n } else {\n NotificationHelper.Send(messageType, title, body, true);\n }\n });\n } else if (title) {\n NotificationHelper.Translate.get(title, titleParams).subscribe((head) => {\n NotificationHelper.Send(messageType, head, content, true);\n });\n } else {\n NotificationHelper.Send(messageType, title, content, true);\n }\n }\n\n public static Send(messageType: MessageType, head: string, body: string, addToMessages: boolean) {\n switch (messageType) {\n case MessageType.Error:\n if (!NotificationHelper.IgnoreErrorMessages) {\n NotificationHelper.Service.error(body, head, NotificationHelper.Config);\n }\n break;\n case MessageType.Information:\n NotificationHelper.Service.info(body, head, NotificationHelper.Config);\n break;\n case MessageType.Success:\n NotificationHelper.Service.success(body, head, NotificationHelper.Config);\n break;\n case MessageType.Warning:\n NotificationHelper.Service.warning(body, head, NotificationHelper.Config);\n break;\n }\n if (addToMessages) {\n NotificationHelper.AddToMessages(messageType, head, body, new Date());\n }\n }\n\n private static AddToMessages(messageType, head, body, createDate) {\n const rm = new ReceivedMessage();\n rm.CreateDate = createDate;\n rm.MessageType = messageType;\n rm.Title = head;\n rm.Content = body;\n rm.Read = false;\n const newMessages = [rm];\n const oldMessages = NotificationHelper.ReceivedMessages.getValue();\n if (oldMessages) {\n newMessages.push(...oldMessages);\n }\n NotificationHelper.ReceivedMessages.next(newMessages);\n }\n\n public static ClearMessages() {\n NotificationHelper.ReceivedMessages.next([]);\n }\n}\n","import Dexie from 'dexie';\nimport { from, Observable } from 'rxjs';\nimport { Comparer } from '../models/enums/comparer.enum';\nimport { Concat } from '../models/enums/contact.enum';\nimport { NotificationLevel } from '../models/enums/notificationlevel.enum';\nimport { Order } from '../models/enums/order.enum';\nimport { SyncStatus } from '../models/enums/syncstatus.enum';\nimport { RequestColumn } from '../models/rest/requestcolumn';\nimport { RequestFilter } from '../models/rest/requestfilter';\nimport { RequestOptions } from '../models/rest/requestoptions';\nimport { TranslatedString } from '../models/translatedstring.model';\nimport { DynamicDataService } from '../services/dynamicdata.service';\nimport { OfflineService } from '../services/offline.service';\nimport { StandardRequestBase } from '../services/request-base';\n//import { UsersService } from '../services/users.service';\nimport { WebsocketService } from '../services/websocket.service';\nimport { NetworkConnection } from './network.helpers';\nimport { NotificationHelper } from './notification.helper';\n\n// @dynamic\nexport class OfflineHelper {\n //#region Properties\n private static User;\n private static Settings;\n private static WebSocketActive = false;\n private static offlineService: OfflineService;\n private static stdRequestBase: StandardRequestBase;\n private static dynamicDataService: DynamicDataService;\n private static Subscriptions = {};\n private static db;\n private static Online = true;\n public static Cache = {};\n private static ChangesValue;\n public static get Changes() {\n return this.ChangesValue;\n }\n public static set Changes(value) {\n this.ChangesValue = value;\n }\n public static LoadChanges() {\n let result = localStorage.getItem('offline_changes');\n if (result) {\n this.ChangesValue = JSON.parse(result);\n } else {\n this.ChangesValue = null;\n }\n }\n public static SaveChanges() {\n\n if (this.ChangesValue) {\n let ccos = Object.keys(this.ChangesValue);\n if (ccos && ccos.length > 0) {\n for (let i = ccos.length - 1; i >= 0; i--) {\n let entries = Object.keys(this.ChangesValue[ccos[i]].Entries);\n if (entries && entries.length >0) {\n for (let j = 0; j < entries.length; j++) {\n let entry = this.ChangesValue[ccos[i]].Entries[entries[j]];\n if (entry.Status == 2) {\n delete this.ChangesValue[ccos[i]].Entries[entries[j]];\n }\n }\n }\n entries = Object.keys(this.ChangesValue[ccos[i]].Entries);\n if (!entries || entries.length == 0) {\n delete this.ChangesValue[ccos[i]];\n }\n }\n }\n\n ccos = Object.keys(this.ChangesValue);\n if (!ccos || ccos.length == 0) {\n localStorage.removeItem('offline_changes');\n } else {\n localStorage.setItem('offline_changes', JSON.stringify(this.ChangesValue));\n }\n }\n }\n private static get Version() {\n if (localStorage.getItem('db_version')) {\n return parseInt(localStorage.getItem('db_version'));\n }\n return null;\n }\n private static set Version(value:number) {\n localStorage.setItem('db_version', value+'');\n }\n\n private static get Schema() {\n if (localStorage.getItem('db_schema')) {\n return localStorage.getItem('db_schema');\n }\n return null;\n }\n private static set Schema(value: any) {\n localStorage.setItem('db_schema', value);\n }\n //#endregion\n //#region Workflow\n public static DeleteWorkflowData(key) {\n if (this.Settings != null && this.Settings.Offline && this.Settings.Offline.Active) {\n this.db['WorkflowOfflineStorage'].where('Key').equals(key).delete();\n } else {\n localStorage.removeItem('WorkflowOfflineStorage||' + key);\n }\n }\n public static SetWorkflowData(key, item) {\n if (item != null) {\n if (this.Settings != null && this.Settings.Offline && this.Settings.Offline.Active) {\n this.db['WorkflowOfflineStorage'].put({ Key: key, Value: JSON.stringify(item) });\n } else {\n localStorage.setItem('WorkflowOfflineStorage||' + key, JSON.stringify(item));\n }\n }\n }\n public static GetWorkflowData(key) {\n return new Promise((resolve) => {\n if (this.Settings != null && this.Settings.Offline && this.Settings.Offline.Active) {\n this.Query('WorkflowOfflineStorage', { Filters: [{ Name: 'Key', Operator: Comparer.Equal, Value: key }] }).subscribe((retVal) => {\n if (retVal && retVal.length > 0) {\n resolve(JSON.parse(retVal[0].Value));\n } else {\n resolve(null);\n }\n });\n } else {\n let retVal = localStorage.getItem('WorkflowOfflineStorage||' + key);\n if (retVal) {\n resolve(JSON.parse(retVal));\n } else {\n resolve(null);\n }\n }\n });\n }\n //#endregion\n public static Initialize(service: OfflineService, stdRequestBase: StandardRequestBase, dynamicDataService: DynamicDataService, Login, Logout) {\n this.offlineService = service;\n this.stdRequestBase = stdRequestBase;\n this.dynamicDataService = dynamicDataService;\n\n this.User = localStorage.getItem('user');\n if (this.User) {\n this.User = JSON.parse(this.User);\n }\n\n let settings: any = localStorage.getItem(\"GeneralSettings\");\n if (settings) {\n settings = JSON.parse(settings);\n }\n this.Settings = settings;\n\n this.Subscriptions['Login'] = Login.subscribe((user) => {\n this.User = user;\n this.PrepareOffline()\n });\n\n this.Subscriptions['Logout'] = Logout.subscribe(() => {\n if (this.User) {\n WebsocketService.Unsubscribe([{ Channel: this.User.SID + \"||OfflineSync\", Level: [0] }]);\n this.User = null;\n }\n });\n\n this.Subscriptions['Online'] = NetworkConnection.Online.subscribe((online) => {\n this.Online = online;\n if (online) {\n this.PrepareOffline();\n } \n })\n\n this.Subscriptions['Active'] = WebsocketService.Active.subscribe((state) => {\n this.WebSocketActive = state;\n if (state) {\n this.PrepareOffline();\n }\n });\n\n this.Subscriptions['Message'] = WebsocketService.MessageReceived.subscribe((response) => {\n const parsed = JSON.parse(response);\n if (parsed.Level == NotificationLevel.System && parsed.Type == 'OfflineData') {\n if (parsed.Content) {\n const notification = JSON.parse(parsed.Content);\n if (notification.Data) {\n const content = JSON.parse(notification.Data);\n if (notification.Type == \"SyncDate\") {\n localStorage.setItem('OfflineDate', new Date(content).toJSON());\n } else {\n if (Array.isArray(content)) {\n content.forEach((item) => {\n this.db[notification.Type].put(item);\n })\n } else {\n this.db[notification.Type].put(content);\n }\n }\n }\n }\n } \n });\n this.CreateDB();\n }\n private static async PrepareOffline() {\n if (this.User && this.WebSocketActive) {\n if (this.Settings != null && this.Settings.Offline && this.Settings.Offline.Active) {\n try {\n await this.CreateDB();\n WebsocketService.Subscribe([{ Channel: this.User.SID + \"||OfflineSync\", Level: [0] }]);\n let date = new Date('1970-01-01T00:00:00Z');\n if (localStorage.getItem('OfflineDate')) {\n date = new Date(localStorage.getItem('OfflineDate'));\n }\n if (this.Online) {\n this.StartServerSync();\n this.offlineService.StartClientSync(date.toJSON()).subscribe();\n }\n } catch(ex) {\n console.log(ex);\n }\n }\n }\n }\n\n //#region Helper\n public static SetRestFilter(type, body) {\n let query = this.db[type];\n if (body) {\n if (body.Sort && body.Sort.length > 0) {\n body.Sort.forEach((sort) => {\n if (sort.Order == Order.ASC) {\n query = query.orderBy(sort.Name);\n } else {\n query = query.orderBy(sort.Name).reverse();\n }\n })\n }\n if (body.Filters && body.Filters.length > 0) {\n query = query.filter((value) => {\n let retVal = this.FillFilter(body.Filters, value, Concat.And);\n return retVal;\n });\n }\n if (body.StartRow && body.EndRow) {\n query = query.offset(body.StartRow).limit(body.EndRow - body.StartRow);\n }\n }\n return query;\n }\n private static FillFilter(filters, value, concat) {\n let retVal = concat == Concat.And;\n for (let i = 0; i < filters.length; i++) {\n let filter = filters[i];\n\n if (filter.Filters != null && filter.Filters.length > 0) {\n retVal = this.FillFilter(filter.Filters, value, filter.Concat);\n }\n\n if (retVal == false && concat == Concat.And) {\n break;\n }\n var temp = false;\n switch (filter.Operator) {\n case Comparer.Equal:\n temp = value[filter.Name] == filter.Value;\n break;\n case Comparer.NotEqual:\n temp = value[filter.Name] != filter.Value;\n break;\n case Comparer.Between: break;\n case Comparer.NotBetween: break;\n case Comparer.In:\n temp = filter.Value.indexOf(value[filter.Name]) > -1;\n break;\n case Comparer.NotIn:\n temp = filter.Value.indexOf(value[filter.Name]) == -1;\n break;\n case Comparer.Greater:\n temp = value[filter.Name] > filter.Value;\n break;\n case Comparer.GreaterEqual:\n temp = value[filter.Name] >= filter.Value;\n break;\n case Comparer.Smaller:\n temp = value[filter.Name] < filter.Value;\n break;\n case Comparer.SmallerEqual:\n temp = value[filter.Name] <= filter.Value;\n break;\n case Comparer.Like:\n temp = value[filter.Name].indexOf(filter.Value) > -1;\n break;\n case Comparer.NotLike:\n temp = value[filter.Name].indexOf(filter.Value) == -1;\n break;\n }\n if (concat == Concat.Or) {\n if (temp) {\n retVal = temp;\n }\n } else {\n retVal = temp;\n }\n }\n return retVal;\n }\n\n private static async FillLine(Line, table) {\n if (table && table.Fields && Line) {\n for (let f = 0; f < table.Fields.length; f++) {\n let field = table.Fields[f];\n if (field.Type == 'c4ef25dd-c176-418c-836e-f26c52d7f59c') {\n if (field.IsShared && !field.IsReverse) {\n if (Line[field.Name]) {\n if (field.IsList) {\n let sub = await OfflineHelper.GetDB()[field.AdvancedType].where('_Id').anyOf(Line[field.Name]).toArray();\n if (sub && sub.length > 0) {\n Line[field.Name] = sub;\n for (let s = 0; s < sub.length; s++) {\n await this.FillLine(sub[s], field);\n }\n }\n } else {\n let sub = await OfflineHelper.GetDB()[field.AdvancedType].where('_Id').equals(Line[field.Name]).toArray();\n if (sub && sub.length > 0) {\n Line[field.Name] = sub[0];\n await this.FillLine(sub[0], field);\n }\n }\n }\n } else {\n if (field.IsList) {\n for (let s = 0; s < Line[field.Name].length; s++) {\n await this.FillLine(Line[field.Name][s], field);\n }\n } else {\n await this.FillLine(Line[field.Name], field);\n }\n }\n }\n if (field.Type == 'a0c232a9-4ab7-444c-a7e2-d23899a5673b') {\n Line[field.Name] = TranslatedString.GetTranslation(Line[field.Name]);\n }\n }\n }\n }\n private static async FillObjectFields(table) {\n if (table && table.Fields) {\n for (let i = 0; i < table.Fields.length; i++) {\n let field = table.Fields[i];\n if (field.Type == 'c4ef25dd-c176-418c-836e-f26c52d7f59c') {\n let values = await OfflineHelper.GetDB()['evidanza.App.Shared.Dynamic.ContainerClassObject'].where('SID').equals(field.AdvancedType).toArray();\n if (values && values.length > 0) {\n let res = values[0];\n if (res && res.Fields) {\n field.Fields = values[0].Fields\n await this.FillObjectFields(field);\n }\n }\n }\n }\n }\n }\n\n public static FillFields(table): Promise {\n return new Promise((resolve, reject) => {\n let retVal = {\n Columns: [{\n \"AllowNulls\": true,\n \"IsCaseSensitive\": false,\n \"IsPrimaryKey\": false,\n \"IsUnique\": false,\n \"Length\": 0,\n \"NumericPrecision\": 0,\n \"NumericScale\": 0,\n \"Name\": '_Id',\n \"TableName\": table.Schema + '.' + table.Name,\n \"Type\": \"System.Guid\",\n \"ContainerFieldID\": \"00000000-0000-0000-0000-000000000000\",\n \"Type2\": \"00000000-0000-0000-0000-000000000000\",\n \"Type3\": \"00000000-0000-0000-0000-000000000000\"\n }, {\n \"AllowNulls\": true,\n \"IsCaseSensitive\": false,\n \"IsPrimaryKey\": false,\n \"IsUnique\": false,\n \"Length\": 0,\n \"NumericPrecision\": 0,\n \"NumericScale\": 0,\n \"Name\": '_Version',\n \"TableName\": table.Schema + '.' + table.Name,\n \"Type\": \"System.Guid\",\n \"ContainerFieldID\": \"00000000-0000-0000-0000-000000000000\",\n \"Type2\": \"00000000-0000-0000-0000-000000000000\",\n \"Type3\": \"00000000-0000-0000-0000-000000000000\"\n }, {\n \"AllowNulls\": true,\n \"IsCaseSensitive\": false,\n \"IsPrimaryKey\": false,\n \"IsUnique\": false,\n \"Length\": 0,\n \"NumericPrecision\": 0,\n \"NumericScale\": 0,\n \"Name\": '_Status',\n \"TableName\": table.Schema + '.' + table.Name,\n \"Type\": \"System.Int32\",\n \"ContainerFieldID\": \"00000000-0000-0000-0000-000000000000\",\n \"Type2\": \"00000000-0000-0000-0000-000000000000\",\n \"Type3\": \"00000000-0000-0000-0000-000000000000\"\n }],\n IsView: false,\n Name: table.Name,\n Schema: \"data\",\n ContainerTableID: table.SID,\n IsCaseSensitive: false\n };\n if (table && table.Fields) {\n OfflineHelper.FillFieldsInternal(table.Fields, \"\", retVal).then((columns) => {\n retVal.Columns.push(...columns);\n resolve(retVal);\n });\n } else {\n resolve(retVal);\n }\n })\n }\n private static async FillFieldsInternal(Fields, concat, table): Promise {\n return new Promise(async (resolve, reject) => {\n let retVal = [];\n\n for (let i = 0; i < Fields.length; i++) {\n let field = Fields[i];\n field.Name = concat + field.Name;\n\n let column = {\n \"AllowNulls\": field.IsNullable,\n \"IsCaseSensitive\": false,\n \"IsPrimaryKey\": false,\n \"IsUnique\": false,\n \"Length\": 0,\n \"NumericPrecision\": 0,\n \"NumericScale\": 0,\n \"Name\": field.Name,\n \"TableName\": table.Schema + '.' + table.Name,\n \"Type\": field.DataTyp,\n \"ContainerFieldID\": field.ID,\n \"Type2\": field.Type,\n \"Type3\": field.AdvancedType\n }\n\n retVal.push(column);\n\n if (field.Type == 'c4ef25dd-c176-418c-836e-f26c52d7f59c') {\n let values = await OfflineHelper.GetDB()['evidanza.App.Shared.Dynamic.ContainerClassObject'].where('SID').equals(field.AdvancedType).toArray();\n if (values && values.length > 0) {\n let res = values[0];\n if (res && res.Fields) {\n retVal.push(...await this.FillFieldsInternal(res.Fields, field.Name + '.', table));\n }\n }\n }\n }\n resolve(retVal);\n });\n }\n\n public static async GenerateFlatTableData(table, filter) {\n return new Promise(async (resolve, reject) => {\n let retVal = [];\n if (!filter) {\n filter = new RequestOptions();\n }\n if (!filter.Columns || filter.Columns.length == 0) {\n let flatTableDesc = await this.FillFields(table);\n flatTableDesc.Columns.forEach((column) => {\n filter.Columns = [];\n let item = new RequestColumn();\n item.IsCommaSeparated = true;\n item.Name = column.Name\n filter.Columns.push(item);\n });\n }\n await this.FillObjectFields(table);\n\n let objects = await this.Query(table.SID, filter).toPromise();\n if (objects) {\n for (let o = 0; o < objects.length; o++) {\n let obj = objects[o];\n await this.FillLine(obj, table);\n\n let line = {};\n\n filter.Columns.forEach((column) => {\n let split = column.Name.split('.');\n if (split && split.length == 1) {\n line[column.Name] = obj[column.Name];\n } else if (split && split.length > 1) {\n let item = obj;\n for (let i = 0; i < split.length; i++) {\n let path = split[i];\n if (item[path]) {\n if (Array.isArray(item[path])) {\n if (column.IsCommaSeparated) {\n let result = \"\";\n for (let e = 0; e < item[path].length; e++) {\n let sub = split[i + 1];\n let entry = item[path][e][sub];\n if (e > 0) {\n result += ', ';\n }\n result += entry;\n }\n i += 1;\n if (Array.isArray(line)) {\n for (let l = 0; l < line.length; l++) {\n line[l][column.Name] = result;\n }\n } else {\n line[column.Name] = result;\n }\n } else {\n let lines = [];\n\n for (let e = 0; e < item[path].length; e++) {\n if (Array.isArray(line)) {\n line.forEach((l) => {\n let temp = JSON.parse(JSON.stringify(l));\n lines.push(temp)\n let sub = split[i + 1];\n temp[column.Name] = item[path][e][sub];\n })\n } else {\n let temp = JSON.parse(JSON.stringify(line));\n lines.push(temp);\n let sub = split[i + 1];\n temp[column.Name] = item[path][e][sub];\n }\n }\n i += 1;\n line = lines;\n }\n } else {\n if (Array.isArray(line)) {\n for (let l = 0; l < line.length; l++) {\n line[l][column.Name] = item[path];\n }\n } else {\n line[column.Name] = item[path];\n }\n item = item[path];\n }\n }\n }\n }\n\n })\n if (Array.isArray(line)) {\n retVal.push(...line);\n } else {\n retVal.push(line);\n }\n }\n resolve(retVal);\n } else {\n resolve(retVal);\n }\n });\n }\n //#endregion\n //#region Query\n public static Query(type, filter): Observable {\n let result = []; \n if (this.db[type]) {\n if (!filter) {\n filter = new RequestOptions();\n }\n if (!filter.Filters) {\n filter.Filters = [];\n }\n\n let fil = new RequestFilter();\n fil.Name = \"_Status\";\n fil.Operator = Comparer.NotEqual;\n fil.Value = 2;\n filter.Filters.unshift(fil);\n\n result = this.SetRestFilter(type, filter).toArray();\n }\n return from(result);\n }\n public static GetDB(): Observable {\n return this.db;\n }\n //#endregion\n //#region DB\n private static async CreateDB() {\n if (this.User) {\n let schema = {\n 'evidanza.App.Shared.Layouts.Layout': '_Id, _changed, _created, Name',\n 'evidanza.App.Shared.Layouts.Template': '_Id, _changed, _created, Name',\n 'evidanza.App.Shared.Layouts.Widget': '_Id, _changed, _created, Name',\n 'evidanza.App.Shared.Layouts.Ribbon': '_Id, _changed, _created, Name',\n 'evidanza.App.Shared.Layouts.ContextMenu': '_Id, _changed, _created, Name',\n 'evidanza.App.Shared.Permissions.Layout': '_Id, _changed, _created, Name',\n 'evidanza.App.Shared.Permissions.Navigation': '_Id, _changed, _created, Name',\n 'evidanza.App.Shared.Data.StyleObject': 'SID, _changed, _created',\n 'evidanza.App.Shared.Data.Theme': 'SID, Name',\n 'evidanza.App.Shared.Data.CustomCSSVariable': 'SID, Name',\n 'evidanza.App.Shared.Data.MetaTag': '_Id, _changed, _created, Name',\n //'evidanza.App.Shared.Output.Layout': '_Id, _changed, _created, Name',\n 'evidanza.App.Shared.Data.DeploymentAction': '_Id, _changed, _created, Name',\n 'evidanza.App.Shared.UserSettings.UserSettings': 'ID, LayoutID, UserID, ItemID, Profile',\n 'evidanza.App.Shared.UserSettings.UserSettingsProfile': 'ID, LayoutID, UserID, Name',\n 'evidanza.App.Shared.SelfService.DataModel': 'SID, Name',\n 'evidanza.App.Shared.SelfService.DataSource': 'SID, Name',\n 'evidanza.App.Shared.Dynamic.ContainerClassObject': 'SID, Name',\n 'evidanza.App.Shared.Dynamic.ContainerEnum': 'SID, Name',\n 'evidanza.App.Shared.Layouts.NavigationStructure': '_Id, _changed, _created, Name',\n 'evidanza.App.Shared.Layouts.NavigationNode': '_Id, _changed, _created, Name',\n 'evidanza.App.Shared.Workflow.Data.WorkflowTemplate': 'SID, Name',\n 'evidanza.Core.Service.Meta.ChangeDates': 'SID, Name',\n 'evidanza.Core.Service.Media.MediaSource': 'SID, Name, Private, SystemUsage, NonEditable',\n 'evidanza.App.Shared.SelfService.REST.IconList': 'URL',\n 'evidanza.App.Shared.SelfService.REST.FontList': 'URL',\n 'evidanza.Core.Base.Security.Role': 'SID, Name',\n 'evidanza.Core.ServiceBase.Config.LanguageSettings': 'LCID, Selected',\n 'evidanza.Core.ServiceBase.Config.Translation': 'LCID',\n 'evidanza.App.Shared.Variable': '_Id, _changed, _created, _Name',\n 'evidanza.App.Shared.CapsuleTag': 'ID, Name',\n 'WorkflowOfflineStorage':'Key'\n };\n if (NetworkConnection.Online.getValue()) {\n const tableList = await this.stdRequestBase.executeGet('api/selfservice/model', 'GetOfflineContainers').toPromise()\n tableList.forEach((tab) => {\n schema[tab.SID] = '_Id, _Version, _Status, _changed, _changedby, _created, _createdby';\n if (tab && tab.Fields) {\n tab.Fields.forEach((field) => {\n schema[tab.SID] += ', ' + field.Name;\n });\n }\n });\n }\n if (NetworkConnection.Online.getValue() && (!this.Schema || this.Schema != JSON.stringify(schema))) {\n this.Schema = JSON.stringify(schema);\n\n if (!this.Version) {\n this.Version = 1;\n } else {\n this.Version++;\n }\n }\n\n this.db = new Dexie('offline_data');\n try {\n this.db.version(this.Version).stores(JSON.parse(this.Schema));\n } catch (ex) {\n\n }\n }\n }\n public static DeleteDB(): Promise {\n localStorage.removeItem('db_version');\n localStorage.removeItem('OfflineDate');\n this.Version = 1;\n return this.db.delete();\n }\n public static GenerateDB() {\n this.CreateDB();\n }\n public static async UpdateChanges(containerid, item) {\n\n if (!this.Changes) {\n this.Changes = {};\n }\n if (!this.Changes[containerid]) {\n let CCOS = await this.GetDB()['evidanza.App.Shared.Dynamic.ContainerClassObject'].where(\"SID\").equals(containerid).toArray();\n let container = null;\n if (CCOS && CCOS.length > 0) {\n container = CCOS[0];\n }\n this.Changes[containerid] = {\n ContainerID: containerid,\n ContainerName: container.Name,\n Entries: {}\n }\n }\n this.Changes[containerid].Entries[item._Id] = {\n Item: item,\n Status: 0,\n ContainerID: containerid,\n ContainerName: this.Changes[containerid].ContainerName\n };\n this.SaveChanges();\n }\n //#endregion\n //#region Sync\n public static StartClientSync(date: Date) {\n if (date == null) {\n date = new Date('1970-01-01T00:00:00Z');\n }\n if (this.Online) {\n this.offlineService.StartClientSync(date.toJSON()).subscribe();\n }\n }\n public static SyncSingleDocument(containerid, item):Promise {\n return new Promise((resolve, reject) => {\n this.offlineService.SyncDocument(containerid, item).subscribe((result) => {\n if (result && result['Success']) {\n item.Status = SyncStatus.Success;\n }\n this.SaveChanges();\n resolve(result);\n });\n });\n }\n public static ForceSyncDocument(item, itempath): Promise {\n return new Promise((resolve, reject) => {\n this.offlineService.ForceSyncDocument(item.ContainerID, item[itempath]).subscribe((result) => {\n if (result && result['Success']) {\n item.Status = SyncStatus.Success;\n }\n this.SaveChanges();\n resolve(result);\n });\n });\n }\n public static async StartServerSync() {\n this.LoadChanges();\n if (this.Changes) {\n let Errors = [];\n let keys = Object.keys(this.Changes);\n for (let i = 0; i < keys.length; i++) {\n let ccoChanges = this.Changes[keys[i]];\n if (ccoChanges && ccoChanges.Entries) {\n let docKeys = Object.keys(ccoChanges.Entries);\n for (let j = 0; j < docKeys.length; j++) {\n let doc = ccoChanges.Entries[docKeys[j]];\n let retVal = await this.SyncSingleDocument(doc.ContainerID, doc.Item);\n if (retVal && retVal.Success) {\n doc.Status = 2;\n delete ccoChanges.Entries[docKeys[j]];\n } else {\n doc.Status = 3;\n if (retVal.Document) {\n doc.Original = JSON.parse(retVal.Document);\n }\n Errors.push(doc);\n }\n }\n }\n }\n if (Errors && Errors.length > 0) {\n NotificationHelper.Error(\"@@Server synchronisation completed with errors!\", \"@@Sync Error\");\n }\n this.SaveChanges();\n }\n }\n //#endregion\n}\n","import { Observable, Subject } from 'rxjs';\nimport { LayoutEditDialog } from '../components/dialogs/layouteditdialog/layout.edit.dialog';\nimport { MessageBoxHelper } from '../components/dialogs/messagebox/messagebox.dialog';\nimport { MessageBoxButtons } from '../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../models/enums/messageboxicon.enum';\nimport { MessageBoxResult } from '../models/enums/messageboxresult.enum';\nimport { ILayoutEditClient, LayoutEditService } from '../models/layout/layout.edit.client';\nimport { MetaService } from '../services/meta.service';\nimport { UsersService } from '../services/users.service';\nimport { TranslateFormatText } from './array.helpers';\nimport { LayoutHelper } from './layout.helper';\nimport { NotificationHelper } from './notification.helper';\n\nexport class PageEditClient implements ILayoutEditClient {\n private ViewModeValue = true;\n get ViewMode(): boolean {\n return this.ViewModeValue;\n }\n private CanCheckOutValue = false;\n get CanCheckOut(): boolean {\n return this.CanCheckOutValue;\n }\n private CanSaveValue = false;\n get CanSave(): boolean {\n return this.CanSaveValue;\n }\n get Layout() {\n return this.layout;\n }\n\n private PageInfoChangedSubject: Subject = new Subject();\n PageInfoChanged: Observable = this.PageInfoChangedSubject;\n\n private TempLayout;\n\n constructor(private layout, private pageInfo, private service: MetaService) {\n if (layout) {\n this.TempLayout = LayoutHelper.ParseLayout(layout);\n }\n if (pageInfo && pageInfo.CanEditInfo) {\n if (pageInfo.CanEditInfo.CanEdit) {\n const user = UsersService.ActiveUser.getValue();\n if (user && pageInfo.CanEditInfo.EditUserID == user.SID) {\n this.CanSaveValue = true;\n this.ViewModeValue = false;\n } else {\n LayoutEditDialog.ShowDialog((x) => {\n if (typeof x === 'boolean' && x) {\n this.onCheckOut();\n } else {\n this.CanCheckOutValue = true;\n LayoutEditService.LayoutEditClientChange.next();\n }\n });\n }\n } else {\n const text = new TranslateFormatText('@@LockedBy{0}');\n text.FormatParams.push(pageInfo.CanEditInfo.EditUserName);\n NotificationHelper.Info(text, '@@LockedObject');\n }\n }\n }\n\n onCheckOut() {\n if (this.pageInfo && this.service && this.layout) {\n this.service.RequestPageLock(this.layout).subscribe(x => {\n if (x && x.CanEditInfo) {\n this.pageInfo = x;\n this.PageInfoChangedSubject.next(x);\n this.TempLayout = LayoutHelper.ParseLayout(this.layout);\n if (x.CanEditInfo.CanEdit) {\n const text = new TranslateFormatText('@@Seite \\'{0}\\' erfolgreich gespeichert.');\n text.FormatParams.push(x.Caption);\n NotificationHelper.Success(text, new TranslateFormatText('@@Seite speichern'));\n this.ViewModeValue = false;\n this.CanCheckOutValue = false;\n this.CanSaveValue = true;\n LayoutEditService.LayoutEditClientChange.next();\n } else {\n const text = new TranslateFormatText(x.CanEditInfo.NewVersion ? '@@AlreadySavedBy{0}' : '@@LockedBy{0}');\n text.FormatParams.push(x.CanEditInfo.EditUserName);\n MessageBoxHelper.ShowDialog(text, new TranslateFormatText('@@LockedObject'),\n MessageBoxButtons.Ok, MessageBoxIcon.Information);\n }\n }\n });\n }\n }\n\n onSave() {\n return new Promise(resolve => {\n if (this.pageInfo && this.service && this.layout) {\n this.service.SavePageToChangeLog(this.layout).subscribe(x => {\n if (x) {\n this.pageInfo = x;\n this.PageInfoChangedSubject.next(x);\n this.TempLayout = LayoutHelper.ParseLayout(this.layout);\n const text = new TranslateFormatText('@@Seite \\'{0}\\' erfolgreich gespeichert.');\n text.FormatParams.push(x.Caption);\n NotificationHelper.Success(text, new TranslateFormatText('@@Seite speichern'));\n } else {\n NotificationHelper.Error(new TranslateFormatText('@@AlreadySavedByAdmin'),\n new TranslateFormatText('@@Seite speichern'));\n }\n resolve();\n });\n } else {\n resolve();\n }\n });\n }\n\n clear() {\n return new Promise(resolve => {\n this.checkForSave().then(() => {\n this.PageInfoChangedSubject.complete();\n resolve();\n });\n });\n }\n\n checkForSave() {\n return new Promise(resolve => {\n if (this.CanSaveValue && this.pageInfo) {\n if (this.layout) {\n const changes = LayoutHelper.CompareParsed(this.TempLayout, LayoutHelper.ParseLayout(this.layout), {\n CreateChangesTree: false,\n DeepComparison: false\n });\n if (changes.HasChanges) {\n MessageBoxHelper.ShowDialog(new TranslateFormatText('@@Wollen Sie vorher speichern?'),\n new TranslateFormatText('@@Speichern'), MessageBoxButtons.YesNo, MessageBoxIcon.Question).then(x => {\n if (x === MessageBoxResult.Yes) {\n this.onSave().then(() => {\n resolve();\n });\n } else {\n resolve();\n }\n });\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n }\n}\n","import { CacheService } from '../cache/cache.service';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { SideNavService } from '../services/sidenav.service';\nimport { UsersService } from '../services/users.service';\nimport config from '../../assets/config.json'\nexport class ImpersonateInfo {\n Rights;\n constructor(public Roles: string[]) {\n }\n}\n\nexport class PermissionHelper {\n\tpublic static ActiveContentPermissions: BehaviorSubject =\n\t\tnew BehaviorSubject(null);\n\tpublic static BaseLayoutPermissions: BehaviorSubject =\n\t\tnew BehaviorSubject(null);\n\tpublic static ActiveNavigationPermissions: BehaviorSubject =\n\t\tnew BehaviorSubject(null);\n\tpublic static Impersonate: BehaviorSubject =\n\t\tnew BehaviorSubject(null);\n\tpublic static EditPermission: BehaviorSubject =\n\t\tnew BehaviorSubject(false);\n\tpublic static ContentPermissionChanged: Subject =\n\t\tnew Subject();\n\n\tprivate static GetRoles() {\n\t\tconst roles = PermissionHelper.Impersonate.getValue();\n\t\tif (roles) {\n\t\t\treturn roles.Roles;\n\t\t}\n\t\tconst userJSON = localStorage.getItem('user');\n\t\tif (userJSON) {\n\t\t\tconst user = JSON.parse(userJSON);\n\t\t\treturn user.EffectiveRoles;\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic static GetContentPermissions(layoutKey) {\n\t\tconst promise = new Promise((resolve, reject) => {\n\t\t\tconst pSub =\n\t\t\t\tlayoutKey === 'baselayout'\n\t\t\t\t\t? PermissionHelper.BaseLayoutPermissions\n\t\t\t\t\t: PermissionHelper.ActiveContentPermissions;\n\t\t\tconst roles = PermissionHelper.GetRoles();\n\t\t\tif (roles) {\n\t\t\t\tconst length = roles.length;\n\t\t\t\tif (length > 0) {\n\t\t\t\t\tconst structKey =\n\t\t\t\t\t\tSideNavService.SelectedNavigationStructure.getValue();\n\t\t\t\t\tif (structKey) {\n\t\t\t\t\t\tCacheService.ReadNavigationStructure(structKey).then(\n\t\t\t\t\t\t\t(navStruct) => {\n\t\t\t\t\t\t\t\tif (navStruct) {\n\t\t\t\t\t\t\t\t\tlet count = 0;\n\t\t\t\t\t\t\t\t\tconst permissions = {};\n\t\t\t\t\t\t\t\t\troles.forEach((role) => {\n\t\t\t\t\t\t\t\t\t\tconst key = role + '_' + navStruct._Id + '_' + layoutKey;\n\t\t\t\t\t\t\t\t\t\tCacheService.ReadLayoutPermission(key).then((perm) => {\n\t\t\t\t\t\t\t\t\t\t\tPermissionHelper.FillPermission(permissions, perm);\n\t\t\t\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t\t\t\t\tif (count === length) {\n\t\t\t\t\t\t\t\t\t\t\t\tpSub.next(permissions);\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tpSub.next(null);\n\t\t\t\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tpSub.next(null);\n\t\t\tresolve(true);\n\t\t});\n\t\treturn promise;\n\t}\n\tprivate static FillPermission(permissions, perm) {\n\t\tif (permissions && perm && perm.Elements) {\n\t\t\tconst fields = Object.keys(perm.Elements);\n\t\t\tif (fields) {\n\t\t\t\tfields.forEach((field) => {\n\t\t\t\t\tconst source = perm.Elements[field];\n\t\t\t\t\tlet target = permissions[field];\n\t\t\t\t\tif (!target) {\n\t\t\t\t\t\ttarget = {};\n\t\t\t\t\t\tpermissions[field] = target;\n\t\t\t\t\t}\n\t\t\t\t\tif (source['Disabled']) {\n\t\t\t\t\t\ttarget['Disabled'] = source['Disabled'];\n\t\t\t\t\t}\n\t\t\t\t\tif (source['InVisible']) {\n\t\t\t\t\t\ttarget['InVisible'] = source['InVisible'];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\tpublic static GetNavigationPermissions() {\n\t\tconst promise = new Promise((resolve, reject) => {\n\t\t\tconst roles = PermissionHelper.GetRoles();\n\t\t\tif (roles) {\n\t\t\t\tconst length = roles.length;\n\t\t\t\tif (length > 0) {\n\t\t\t\t\tlet count = 0;\n\t\t\t\t\tconst permissions = {};\n\t\t\t\t\troles.forEach((role) => {\n\t\t\t\t\t\tCacheService.ReadNavigationPermission(role).then((perm) => {\n\t\t\t\t\t\t\tPermissionHelper.FillInvisible(permissions, perm);\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\tif (count === length) {\n\t\t\t\t\t\t\t\tPermissionHelper.ActiveNavigationPermissions.next(permissions);\n\t\t\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tPermissionHelper.ActiveNavigationPermissions.next(null);\n\t\t\t\t\tresolve(true);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tPermissionHelper.ActiveNavigationPermissions.next(null);\n\t\t\t\tresolve(true);\n\t\t\t}\n\t\t});\n\t\treturn promise;\n\t}\n\tprivate static FillInvisible(permissions, perm) {\n\t\tif (permissions && perm && perm.Elements) {\n\t\t\tconst fields = Object.keys(perm.Elements);\n\t\t\tif (fields) {\n\t\t\t\tfields.forEach((field) => {\n\t\t\t\t\tconst source = perm.Elements[field];\n\t\t\t\t\tif (typeof source === 'object' && source['InVisible']) {\n\t\t\t\t\t\tpermissions[field] = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\tpublic static IsAdmin() {\n\t\tconst userRights = UsersService.ActualUserRights.getValue();\n\t\treturn userRights && userRights.IsAdmin === true;\n\t}\n\tpublic static GetRight(type, allowed) {\n\t\tconst userRights = UsersService.ActualUserRights.getValue();\n\t\tif (userRights) {\n\t\t\tif (userRights.IsAdmin === true) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif (userRights.Rights) {\n\t\t\t\tconst exceptFreeAccess = [\n\t\t\t\t\t'evidanza.App.Shared.Security.UsermanagementRight',\n\t\t\t\t\t'evidanza.App.Shared.Security.AboutRight',\n\t\t\t\t\t'evidanza.App.Shared.Security.PageSettingsRight',\n\t\t\t\t];\n\t\t\t\tconst userRole = JSON.parse(localStorage.getItem('user'))?.Roles;\n\t\t\t\tif (userRole && userRole.length > 0 && userRole[0] === config.FREE_USER_ID) {\n\t\t\t\t\tif (exceptFreeAccess.includes(type)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn (userRights.Rights[type] & allowed) === allowed;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic static GetAppBuilderPermission() {\n\t\treturn PermissionHelper.GetRight(\n\t\t\t'evidanza.Core.Base.Security.DeveloperRight',\n\t\t\t1\n\t\t);\n\t}\n\tpublic static GetDebuggerPermission() {\n\t\treturn PermissionHelper.GetRight(\n\t\t\t'evidanza.Core.Base.Security.DeveloperRight',\n\t\t\t2\n\t\t);\n\t}\n\n\tpublic static GetImpersonatePermission() {\n\t\treturn (\n\t\t\tPermissionHelper.GetRight(\n\t\t\t\t'evidanza.Core.Base.Security.UserAdminRight',\n\t\t\t\t32768\n\t\t\t) && PermissionHelper.GetRight('evidanza.Core.ServiceBase.AccessRight', 2)\n\t\t);\n\t}\n\n\tpublic static OnContentPermissionChanged(key: string) {\n\t\tif (key) {\n\t\t\tconst splits = key.split('_');\n\t\t\tif (splits.length === 3) {\n\t\t\t\tconst roles = PermissionHelper.GetRoles();\n\t\t\t\tif (roles && roles.some((x) => x === splits[0])) {\n\t\t\t\t\tconst structKey =\n\t\t\t\t\t\tSideNavService.SelectedNavigationStructure.getValue();\n\t\t\t\t\tif (structKey && structKey === splits[1]) {\n\t\t\t\t\t\tif (splits[2] === 'baselayout') {\n\t\t\t\t\t\t\tPermissionHelper.GetContentPermissions('baselayout').then(\n\t\t\t\t\t\t\t\t() => {}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tPermissionHelper.ContentPermissionChanged.next(splits[2]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Platform } from \"@angular/cdk/platform\";\n\nexport class PlatformHelper {\n public static Platform;\n public static Initialize(platform: Platform) {\n PlatformHelper.Platform = platform;\n }\n}\n","export class PropertyMapper{\n public static MapProperty(source: any, target: any) {\n Object.keys(source).forEach(key => {\n target[key] = source[key];\n });\n }\n}","import { plainToClass } from 'class-transformer';\nimport { ValueFormulaNodeCalculator } from '../models/calculation/formula.node.calculator';\nimport { DataDescriptionRelational } from '../models/datadescription/relational/datadescriptionrelational.model';\nimport { RelQueryDef } from '../models/query/relquerydef.model';\nimport { RelRequestColumn } from '../models/query/relrequestcolumn.model';\nimport { FilterHelper } from './filter.helper';\nimport { AdvancedFormulaParser } from './formula.parser';\n\nexport class RelQueryHelper {\n public static GenerateQuery(DataDescription: DataDescriptionRelational, context): RelQueryDef {\n const retVal = new RelQueryDef();\n if (DataDescription) {\n DataDescription = plainToClass(DataDescriptionRelational, DataDescription)\n if (DataDescription.Fields && DataDescription.Fields.length > 0) {\n retVal.Columns = [];\n DataDescription.Fields.forEach((field) => {\n const column = new RelRequestColumn();\n column.ContainerID = field.ContainerID;\n column.ContainerUniqueID = field.ContainerUniqueID;\n column.DatasourceID = field.DataSourceID;\n column.FieldID = field.FieldID;\n column.UniqueID = field.ID;\n if (typeof field.Aggregation === 'number') {\n column.Aggregation = field.Aggregation;\n } \n retVal.Columns.push(column);\n });\n if (DataDescription.Relations) {\n retVal.Relations = DataDescription.Relations\n } else {\n retVal.Relations = [];\n }\n if (DataDescription.WhereFilter && DataDescription.WhereFilter.Filters) {\n let variables = [];\n if (context) {\n variables = FilterHelper.GetVariables(context.LayoutElement);\n }\n const calculator = new ValueFormulaNodeCalculator(false, variables, new Map());\n const parser = new AdvancedFormulaParser();\n DataDescription.WhereFilter.Filters.forEach(f => {\n let clone = JSON.parse(JSON.stringify(f));\n clone = FilterHelper.ReplaceVariables(clone, (value) => { return calculator.Calc(parser.Parse(value)).Value });\n if (!retVal.Filters) {\n retVal.Filters = [];\n }\n retVal.Filters.push(clone);\n });\n }\n }\n }\n return retVal;\n }\n}\n","import { MessageBoxHelper } from \"../components/dialogs/messagebox/messagebox.dialog\";\nimport { MessageBoxButtons } from \"../models/enums/messageboxbuttons.enum\";\nimport { MessageBoxIcon } from \"../models/enums/messageboxicon.enum\";\nimport { MessageBoxResult } from \"../models/enums/messageboxresult.enum\";\nimport { StandardRequestBase } from \"../services/request-base\";\nimport { TranslateFormatText } from \"./array.helpers\";\nimport { InjectorHelper, TranslateHelper } from \"./injector.helper\";\n\n\nexport class RelSourceHelper {\n\n static async GetValidRelation(dataModelID, container, targetContainers, usedRelations, allContainer, relations?) {\n let retVal = null;\n if (targetContainers && targetContainers.length > 0) {\n if (!relations) {\n const service = InjectorHelper.InjectorInstance.get(StandardRequestBase);\n relations = await service.executeGet('api/selfservice/datasettings',\n 'GetAllRelations', 'dataModel=' + dataModelID).toPromise();\n }\n const relInfo = RelSourceHelper.GetValidRelationInternal(container, targetContainers, usedRelations, relations);\n if (relInfo.RelInfo) {\n retVal = {\n Container: [container],\n RelDefs: [relInfo.RelInfo]\n };\n } else if (relInfo.ContRels.length > 0) {\n let path;\n relInfo.ContRels.some(cr => {\n const fromRelInfo =\n RelSourceHelper.GetValidRelationInternal({ SID: cr.Target }, targetContainers, [{ Relation: cr.SID }], relations);\n if (fromRelInfo.RelInfo) {\n path = [cr.SID, fromRelInfo.RelInfo.Relation];\n return true;\n } else {\n const paths = RelSourceHelper.GetRelPaths(fromRelInfo, targetContainers, [container.SID, cr.Target], relations);\n paths.forEach(p => {\n if (!path || p.length < path.length - 1) {\n path = [cr.SID].concat(p);\n }\n });\n }\n return false;\n });\n if (path) {\n let nextUniqueID = container.UniqueID;\n const addConts = [container];\n const addRels = [];\n let text = TranslateHelper.TranslatorInstance.instant('@@Folgende Container werden fuer eine Verbindung benoetigt') +\n ':\\n\\n';\n let actCont = container;\n for (let i = 0; i < path.length - 1; i++) {\n nextUniqueID++;\n const rel = RelSourceHelper.GetEntryBySID(relations, path[i]);\n let contObj;\n let relObj;\n if (rel.PrimaryContainer === actCont.SID) {\n contObj = RelSourceHelper.GetEntryBySID(allContainer, rel.SecondaryContainer);\n relObj = {\n FromContainerUniqueID: actCont.UniqueID,\n FromContainer: actCont.SID,\n FromDataSource: actCont.DataSourceId,\n ToContainerUniqueID: nextUniqueID,\n ToContainer: contObj.SID,\n ToDataSource: contObj.DataSourceId,\n Relation: rel.SID\n };\n } else {\n contObj = RelSourceHelper.GetEntryBySID(allContainer, rel.PrimaryContainer);\n relObj = {\n FromContainerUniqueID: nextUniqueID,\n FromContainer: contObj.SID,\n FromDataSource: contObj.DataSourceId,\n ToContainerUniqueID: actCont.UniqueID,\n ToContainer: actCont.SID,\n ToDataSource: actCont.DataSourceId,\n Relation: rel.SID\n };\n }\n text += contObj.Caption + '\\n';\n contObj.UniqueID = nextUniqueID;\n actCont = contObj;\n addConts.push(actCont);\n addRels.push(relObj);\n }\n const lastRel = RelSourceHelper.GetEntryBySID(relations, path[path.length - 1]);\n if (lastRel.PrimaryContainer === actCont.SID) {\n const sec = RelSourceHelper.GetEntryBySID(targetContainers, lastRel.SecondaryContainer);\n addRels.push({\n FromContainerUniqueID: actCont.UniqueID,\n FromContainer: actCont.SID,\n FromDataSource: actCont.DataSourceId,\n ToContainerUniqueID: sec.UniqueID,\n ToContainer: sec.SID,\n ToDataSource: sec.DataSourceId,\n Relation: lastRel.SID\n });\n } else {\n const prim = RelSourceHelper.GetEntryBySID(targetContainers, lastRel.PrimaryContainer);\n addRels.push({\n FromContainerUniqueID: prim.UniqueID,\n FromContainer: prim.SID,\n FromDataSource: prim.DataSourceId,\n ToContainerUniqueID: actCont.UniqueID,\n ToContainer: actCont.SID,\n ToDataSource: actCont.DataSourceId,\n Relation: lastRel.SID\n });\n }\n text += '\\n' + TranslateHelper.TranslatorInstance.instant('@@Wollen Sie die zusaetzlichen Container hinzufuegen?');\n const mbResult = await MessageBoxHelper.ShowDialog(new TranslateFormatText(text),\n new TranslateFormatText('@@Container hinzufuegen'), MessageBoxButtons.YesNo, MessageBoxIcon.Question);\n if (mbResult === MessageBoxResult.Yes) {\n retVal = {\n Container: addConts,\n RelDefs: addRels\n };\n } else {\n retVal = {\n Container: [],\n RelDefs: []\n };\n }\n }\n }\n }\n return retVal;\n }\n\n private static GetEntryBySID(list, sid) {\n let retVal = null;\n list.some(entry => {\n if (entry.SID === sid) {\n retVal = entry;\n return true;\n }\n return false;\n });\n return retVal;\n }\n\n private static GetRelPaths(relInfo, targetContainers, usedContainers, relations) {\n const retVal = [];\n relInfo.ContRels.forEach(cr => {\n if (!usedContainers.some(tc => tc === cr.Target)) {\n const fromRelInfo =\n RelSourceHelper.GetValidRelationInternal({ SID: cr.Target }, targetContainers, [{ Relation: cr.SID }], relations);\n if (fromRelInfo.RelInfo) {\n retVal.push([cr.SID, fromRelInfo.RelInfo.Relation]);\n } else {\n const paths = RelSourceHelper.GetRelPaths(fromRelInfo, targetContainers, usedContainers.concat([cr.Target]), relations);\n paths.forEach(p => {\n retVal.push([cr.SID].concat(p));\n });\n }\n }\n });\n return retVal;\n }\n\n private static GetValidRelationInternal(container, targetContainers, usedRelations, relations) {\n const retVal = {\n RelInfo: null,\n ContRels: []\n };\n if (relations && relations.length > 0) {\n relations.some(r => {\n if (usedRelations && usedRelations.some(ur => r.SID === ur.Relation)) {\n return false;\n }\n if (r.PrimaryContainer === container.SID) {\n retVal.ContRels.push({\n SID: r.SID,\n Target: r.SecondaryContainer\n });\n return targetContainers.some(uc => {\n if (uc.SID === r.SecondaryContainer) {\n retVal.RelInfo = {\n FromContainerUniqueID: container.UniqueID,\n FromContainer: container.SID,\n FromDataSource: container.DataSourceId,\n ToContainerUniqueID: uc.UniqueID,\n ToContainer: uc.SID,\n ToDataSource: uc.DataSourceId,\n Relation: r.SID\n };\n return true;\n }\n return false;\n });\n } else if (r.SecondaryContainer === container.SID) {\n retVal.ContRels.push({\n SID: r.SID,\n Target: r.PrimaryContainer\n });\n return targetContainers.some(uc => {\n if (uc.SID === r.PrimaryContainer) {\n retVal.RelInfo = {\n FromContainerUniqueID: uc.UniqueID,\n FromContainer: uc.SID,\n FromDataSource: uc.DataSourceId,\n ToContainerUniqueID: container.UniqueID,\n ToContainer: container.SID,\n ToDataSource: container.DataSourceId,\n Relation: r.SID\n };\n return true;\n }\n return false;\n });\n }\n return false;\n });\n }\n return retVal;\n }\n\n static FindConnection(sourceID, targetID, allRelations) {\n return RelSourceHelper.FindConnectionInternal(sourceID, targetID, allRelations, null);\n }\n\n private static FindConnectionInternal(sourceID, targetID, allRelations, actRel) {\n let retVal;\n allRelations.some(rel => {\n if (rel.Relation !== actRel) {\n let relTarget;\n if (rel.FromContainerUniqueID === sourceID) {\n relTarget = rel.ToContainerUniqueID;\n } else if (rel.ToContainerUniqueID === sourceID) {\n relTarget = rel.FromContainerUniqueID;\n }\n if (typeof relTarget === 'number') {\n if (relTarget === targetID) {\n retVal = rel;\n return true;\n } else {\n const nextStep = RelSourceHelper.FindConnectionInternal(relTarget, targetID, allRelations, rel.Relation);\n if (nextStep) {\n retVal = rel;\n return true;\n }\n }\n }\n }\n return false;\n });\n return retVal;\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { plainToClass } from \"class-transformer\";\nimport { LayoutElement } from \"../models/layoutelement.model\";\n\n@Pipe({ name: 'GenerateLayoutCopy', pure: true })\nexport class GenerateLayoutCopyPipe implements PipeTransform {\n transform(element) {\n let retVal = JSON.parse(JSON.stringify(element));\n retVal = plainToClass(LayoutElement, retVal);\n return retVal;\n }\n}\n\n\n@Pipe({ name: 'DOMRectToStyle', pure: true })\nexport class DOMRectToStylePipe implements PipeTransform {\n transform(value) {\n let retVal = {};\n if (value && value.rect) {\n let item = value.rect;\n retVal = {\n width: item.width + 'px',\n height: item.height + 'px',\n top: item.top + 'px',\n left: item.left + 'px',\n right: item.right + 'px',\n bottom: item.bottom + 'px',\n x: item.x + 'px',\n y: item.y + 'px',\n position: 'absolute'\n };\n }\n return retVal;\n }\n}","import { Directionality } from \"@angular/cdk/bidi\";\nimport { Subject } from \"rxjs\";\n\n// @dynamic\nexport class RTLHelper {\n static Directionality: Directionality;\n public static Initialize(dir: Directionality) {\n this.Directionality = dir;\n }\n private static _Direction = 'ltr';\n static get Direction() {\n return this._Direction;\n }\n static set Direction(value) {\n this._Direction = value;\n this.DirectionChanged.next(value);\n }\n public static DirectionChanged: Subject = new Subject();\n}\n","import { Subject } from 'rxjs';\nimport { OSSelectionRange, CopySelection, CellSelection } from '../models/basic/selection.model';\nimport { Column } from '../models/basic/column.model';\n\nexport class SelectionHelper {\n StartCell = new CellSelection();\n EndCell = new CellSelection();\n\n ColumnHighlight = '';\n\n private CurrentCellValue = new CellSelection();\n private MaxRow = Number.MIN_SAFE_INTEGER;\n private MinRow = Number.MAX_SAFE_INTEGER;\n\n private MaxColumn = Number.MIN_SAFE_INTEGER;\n private MinColumn = Number.MAX_SAFE_INTEGER;\n\n SetCurrentCell(value: CellSelection) {\n this.CheckRows();\n this.CheckCols();\n if (value.RowIndex > this.MaxRow) {\n this.MaxRow = value.RowIndex;\n }\n if (value.RowIndex < this.MinRow) {\n this.MinRow = value.RowIndex;\n }\n let col = this.cols.indexOf(value.ColumnName);\n if (col > this.MaxColumn) {\n this.MaxColumn = col;\n }\n if (col < this.MinColumn) {\n this.MinColumn = col;\n }\n this.ColumnHighlight = value.ColumnName;\n this.CurrentCellValue = value;\n }\n\n InitSelection() {\n this.MaxRow = Number.MIN_SAFE_INTEGER;\n this.MinRow = Number.MAX_SAFE_INTEGER;\n\n this.MaxColumn = Number.MIN_SAFE_INTEGER;\n this.MinColumn = Number.MAX_SAFE_INTEGER;\n }\n\n private rows = [];\n private cols = [];\n\n Table = {};\n Columns:Column[] = [];\n\n private CheckRows() {\n let rows;\n if (this.Table['DataSourceValue']) {\n rows = this.Table['DataSourceValue'].cachedData;\n }\n if (this.Table['RowsValue']) {\n rows = this.Table['RowsValue'];\n }\n if (rows) {\n if (this.rows.length !== rows.length) {\n this.rows = rows;\n }\n }\n }\n private CheckCols() {\n if (this.rows.length > 0) {\n let cols = Object.keys(this.rows[0].cols);\n if (this.cols.length !== cols.length) {\n this.cols = cols;\n }\n }\n }\n private Selection = new OSSelectionRange();\n SetHighlighting() {\n if (this.Table) {\n this.CheckRows();\n this.CheckCols();\n\n let StartRow = this.StartCell.RowIndex;\n let EndRow = this.CurrentCellValue.RowIndex;\n if (StartRow > EndRow) {\n let temp = StartRow;\n StartRow = EndRow;\n EndRow = temp;\n }\n let RowSpan = EndRow - StartRow;\n\n let StartColumn = this.cols.indexOf(this.StartCell.ColumnName);\n let EndColumn = this.cols.indexOf(this.CurrentCellValue.ColumnName);\n\n if (StartColumn > EndColumn) {\n let temp = StartColumn;\n StartColumn = EndColumn;\n EndColumn = temp;\n }\n let ColSpan = EndColumn - StartColumn;\n this.ClearHighlight();\n\n this.Selection.YStart = StartRow;\n this.Selection.YEnd = EndRow;\n this.Selection.XStart = StartColumn;\n this.Selection.XEnd = EndColumn;\n\n for (let row = StartRow; row <= EndRow; row++) {\n for (let col = StartColumn; col <= EndColumn; col++) {\n this.rows[row].cols[this.cols[col]].copyhighlight = true;\n }\n }\n }\n }\n\n Selecting = false;\n Copying = false;\n SelectionComplete() {\n console.log('Selection complete');\n console.log(this.StartCell);\n console.log(this.EndCell);\n if (this.rows) {\n let StartCol = this.cols.indexOf(this.StartCell.ColumnName);\n let EndCol = this.cols.indexOf(this.EndCell.ColumnName);\n\n if (StartCol > EndCol) {\n let temp = StartCol;\n StartCol = EndCol;\n EndCol = temp;\n }\n\n this.ClearSelection();\n\n this.Table['OSSelectionRanges'] = [new OSSelectionRange({\n YStart: this.StartCell.RowIndex,\n YEnd: this.EndCell.RowIndex,\n XStart: StartCol,\n XEnd: EndCol\n })];\n\n const selections = {};\n this.Table['OSSelectionRanges'].forEach(range => {\n for (let y = range.YStart; y <= range.YEnd; y++) {\n const rangeRow = this.rows[y];\n for (let x = range.XStart; x <= range.XEnd; x++) {\n const colName = this.cols[x];\n rangeRow.cols[colName].selected = true;\n selections[y + '_' + x] = {\n ColumnName: colName,\n RowIndex: y\n };\n }\n }\n });\n const selectionList = [];\n Object.keys(selections).forEach(x => {\n selectionList.push(selections[x]);\n });\n this.Table['CellSelectionChanged'].emit(selectionList);\n }\n };\n private ClearHighlight() {\n for (let row = this.MinRow; row <= this.MaxRow; row++) {\n for (let col = this.MinColumn; col <= this.MaxColumn; col++) {\n this.rows[row].cols[this.cols[col]].copyhighlight = false;\n }\n }\n this.rows[this.StartCell.RowIndex].cols[this.StartCell.ColumnName].copyhighlight = false;\n for (let col = this.MinColumn; col <= this.MaxColumn; col++) {\n this.rows[this.StartCell.RowIndex].cols[this.cols[col]].copyhighlight = false;\n }\n }\n private ClearSelection() {\n let OSSelectionRanges = this.Table['OSSelectionRanges'];\n if (OSSelectionRanges.length > 0) {\n if (OSSelectionRanges.length > 0) {\n OSSelectionRanges.forEach(range => {\n for (let y = range.YStart; y <= range.YEnd; y++) {\n const rangeRow = this.rows[y];\n for (let x = range.XStart; x <= range.XEnd; x++) {\n rangeRow.cols[this.cols[x]].selected = false;\n }\n }\n });\n }\n }\n }\n\n CopyComplete() {\n this.ClearHighlight();\n this.ClearSelection();\n\n this.Table['OSSelectionRanges'] = [Object.assign({},this.Selection)];\n\n const selections = {};\n this.Table['OSSelectionRanges'].forEach(range => {\n for (let y = range.YStart; y <= range.YEnd; y++) {\n const rangeRow = this.rows[y];\n for (let x = range.XStart; x <= range.XEnd; x++) {\n const colName = this.cols[x];\n rangeRow.cols[colName].selected = true;\n selections[y + '_' + x] = {\n ColumnName: colName,\n RowIndex: y\n };\n }\n }\n });\n const selectionList = [];\n Object.keys(selections).forEach(x => {\n selectionList.push(selections[x]);\n });\n this.Table['CellSelectionChanged'].emit(selectionList);\n\n let result = new CopySelection();\n result.StartCell = this.StartCell;\n result.Selection = this.Selection;\n\n this.Table['CopySelectionChanged'].emit(result);\n }\n private OldRow = 0;\n SetDescriptionHover() {\n //#region RowHighlight\n if (this.rows[this.OldRow] && this.rows[this.OldRow].cols && this.rows[this.OldRow].cols['fixedColumn']) {\n this.rows[this.OldRow].cols['fixedColumn'].highlight = false;\n }\n this.OldRow = this.CurrentCellValue.RowIndex;\n if (this.rows[this.CurrentCellValue.RowIndex] && this.rows[this.CurrentCellValue.RowIndex].cols && this.rows[this.CurrentCellValue.RowIndex].cols['fixedColumn']) {\n this.rows[this.CurrentCellValue.RowIndex].cols['fixedColumn'].highlight = true;\n }\n //#endregion\n }\n}","import { OfflineEndpointCollection } from '../models/offline/offline.model';\nimport { CapsuleEndpoints } from '../offline/endpoints/capsule.endpoints';\nimport { DynamicEndpoints } from '../offline/endpoints/dynamic.endpoints';\nimport { DynamicDataEndpoints } from '../offline/endpoints/dynamicdata.endpoints';\nimport { GlobalVariableEndpoints } from '../offline/endpoints/globalvariable.endpoints';\nimport { LanguageEndpoints } from '../offline/endpoints/language.endpoints';\nimport { MediaEndpoints } from '../offline/endpoints/media.endpoints';\nimport { MetaEndpoints } from '../offline/endpoints/meta.endpoints';\nimport { PermissionsEndpoints } from '../offline/endpoints/permissions.endpoints';\nimport { RolesEndpoints } from '../offline/endpoints/roles.endpoints';\nimport { SideNavEndpoints } from '../offline/endpoints/sidenav.endpoints';\nimport { TranslationsEndpoints } from '../offline/endpoints/translation.endpoints';\nimport { UserSettingsEndpoints } from '../offline/endpoints/usersettings.endpoints';\n\nexport const APP_OFFLINE_SERVICES = [\n new MetaEndpoints(),\n new MediaEndpoints(),\n new SideNavEndpoints(),\n new UserSettingsEndpoints(),\n new PermissionsEndpoints(),\n new DynamicEndpoints(),\n new DynamicDataEndpoints(),\n new RolesEndpoints(),\n new TranslationsEndpoints(),\n new LanguageEndpoints(),\n new GlobalVariableEndpoints(),\n new CapsuleEndpoints()\n]\n\n\nexport class ServiceRegistryHelper {\n public static SERVICEREGISTRY = {};\n public static EXTERNAL_OFFLINE_SERVICES: OfflineEndpointCollection[] = [];\n public static Build() {\n APP_OFFLINE_SERVICES.forEach((service: OfflineEndpointCollection) => {\n const BasePath = service.BasePath;\n service.EndPoints.forEach((endpoint) => {\n this.SERVICEREGISTRY[BasePath + endpoint.Name + \":\" + endpoint.Method] = endpoint;\n }); \n });\n this.EXTERNAL_OFFLINE_SERVICES.forEach((service: OfflineEndpointCollection) => {\n const BasePath = service.BasePath;\n service.EndPoints.forEach((endpoint) => {\n this.SERVICEREGISTRY[BasePath + endpoint.Name + \":\" + endpoint.Method] = endpoint;\n });\n });\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'splitDisplayName'\n})\nexport class SplitDisplayNamePipe implements PipeTransform {\n\n transform(value: string): string {\n if (!value) {\n return '';\n }\n // Check if the value contains an '@' symbol and split it\n const splitValue = value?.split('@');\n return splitValue[0]; // Return the first part before the '@' sign\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport moment from 'moment';\nimport { CacheService } from '../cache/cache.service';\nimport { LayoutUnit } from '../models/basic/layoutunit.model';\nimport { MediaSource } from '../models/datamodel/mediasource.model';\nimport { Alignment, FlexContentAlignment, FlexItemAlignment } from '../models/enums/alignment.enum';\nimport { BackgroundPosition, BackgroundRepeat, BackgroundSize } from '../models/enums/background.enum';\nimport { ControlStyle } from '../models/enums/controlstyle.enum';\nimport { LayoutPosition } from '../models/enums/layoutposition.enum';\nimport { ObjectFit } from '../models/enums/objectfit.enum';\nimport { Orientation } from '../models/enums/orientation.enum';\nimport { Overflow } from '../models/enums/overflow.enum';\nimport { PrimeFlexSizes } from '../models/enums/primeflexsizes.enum';\nimport { PropertyGroupDisplay } from '../models/enums/propertygroupdisplay.enum';\nimport { Resizeable } from '../models/enums/resizeable.enum';\nimport { TextOverflow } from '../models/enums/textoverflow.enum';\nimport { TransitionProperty } from '../models/enums/transitionproperty.enum';\nimport { TransitionTimingFunction } from '../models/enums/transitiontimingfunction.enum';\nimport { UnitType } from '../models/enums/unittype.enum';\nimport { WhiteSpace } from '../models/enums/whitespace.enum';\nimport { LayoutBase } from '../models/layoutbase.model';\nimport { LayoutElement } from '../models/layoutelement.model';\nimport { MenuTabLabelPosition } from '../models/menutab/menutab.property.model';\nimport { BorderSide } from '../models/style/borderside.model';\nimport { Color } from '../models/style/color.model';\nimport { Gradient } from '../models/style/gradient.model';\nimport { TranslatedString } from '../models/translatedstring.model';\nimport { TranslateHelper } from './injector.helper';\nimport { RTLHelper } from './rtl.helper';\nimport { ThemeHelper } from './theme.helpers';\n\n@Pipe({ name: 'BaseComponentStyle', pure: true })\nexport class BaseComponentStylePipe implements PipeTransform {\n LayoutElement;\n StyleRef;\n WorkflowStyles;\n MediaSource: any;\n transform(LayoutElement, RefreshCount) {\n // console.log(new Date().toJSON() + ' ' + LayoutElement.ID + ' Create BaseComponentStyle(' + RefreshCount + ')');\n const result = {};\n this.LayoutElement = LayoutElement;\n if (LayoutElement && LayoutElement.Element) {\n this.StyleRef = LayoutElement.Element.StyleRef;\n this.WorkflowStyles = LayoutElement.Element.WorkflowStyles;\n this.MediaSource = LayoutElement.Element.MediaSourceValue;\n\n if (this.StyleRef && Object.keys(this.StyleRef).length > 0) {\n this.BuildStyle(this.StyleRef, result);\n }\n this.BuildStyle(LayoutElement, result);\n if (this.WorkflowStyles && this.WorkflowStyles.length > 0) {\n this.WorkflowStyles.forEach(x => {\n this.BuildStyle(x, result);\n });\n }\n }\n // console.log(new Date().toJSON() + ' ' + LayoutElement.ID + ' StyleCreated BaseComponentStyle(' + RefreshCount + ')');\n return result;\n }\n BuildStyle(element, result) {\n if (element.Transitions && element.Transitions.length > 0) {\n result['transition'] = '';\n for (let i = 0; i < element.Transitions.length; i++) {\n const transition = element.Transitions[i];\n if (transition.Property != null) {\n result['transition'] += TransitionProperty[transition.Property];\n if (transition.Duration != null) {\n result['transition'] += ' ' + transition.Duration + 's';\n if (transition.TimingFunction != null) {\n result['transition'] += ' ' + TransitionTimingFunction[transition.TimingFunction];\n if (transition.Delay != null) {\n result['transition'] += ' ' + transition.Delay + 's';\n }\n }\n }\n if (i + 1 < element.Transitions.length) {\n result['transition'] += ',';\n }\n }\n }\n }\n //#region Font\n if (element.Font) {\n if (element.Font.Bold != null) {\n if (element.Font.Bold) {\n result['font-weight'] = 'bold';\n } else {\n // delete result['font-weight'];\n result['font-weight'] = 'normal';\n }\n }\n if (element.Font.Italic != null) {\n if (element.Font.Italic) {\n result['font-style'] = 'italic';\n } else {\n delete result['font-style'];\n }\n }\n if (element.Font.Underline != null) {\n if (element.Font.Underline) {\n result['text-decoration'] = 'underline';\n } else {\n delete result['text-decoration'];\n }\n }\n if (element.Font.FontFamilyName != null) {\n if (element.Font.FontFamilyName) {\n if (ThemeHelper.CustomFontsMap && ThemeHelper.CustomFontsMap[element.Font.FontFamilyName]) {\n result['font-family'] = 'var(' + ThemeHelper.CustomFontsMap[element.Font.FontFamilyName].VariableName + ')';\n } else {\n result['font-family'] = element.Font.FontFamilyName;\n }\n } else {\n delete result['font-family'];\n }\n }\n if (element.Font.FontSize != null) {\n if (element.Font.FontSize) {\n result['font-size'] = element.Font.FontSize + 'pt';\n } else {\n delete result['font-size'];\n }\n }\n if (element.Font.FontColor) {\n const colorText = Color.GetStyleText(element.Font.FontColor);\n if (colorText) {\n result['color'] = colorText;\n } else {\n delete result['color'];\n }\n }\n }\n //#endregion\n if (element.WhiteSpace != null) {\n result['white-space'] = WhiteSpace[element.WhiteSpace];\n }\n if (element.TextOverflow != null) {\n result['text-overflow'] = TextOverflow[element.TextOverflow];\n }\n if (element && element.Element && element.Element.ContainerSize) {\n result['width'] = element.Element.ContainerSize.Width;\n result['height'] = element.Element.ContainerSize.Height;\n }\n //#region Alignment\n if (element.ElementType !== 'grid') {\n switch (element.HorizontalContentAlignment) {\n case Alignment.Center:\n result['justify-content'] = 'center';\n break;\n case Alignment.End:\n result['justify-content'] = 'flex-end';\n break;\n case Alignment.Start:\n result['justify-content'] = 'flex-start';\n break;\n }\n\n switch (element.VerticalContentAlignment) {\n case Alignment.Start:\n result['align-items'] = 'flex-start';\n break;\n case Alignment.End:\n result['align-items'] = 'flex-end';\n break;\n case Alignment.Center:\n result['align-items'] = 'center';\n break;\n }\n }\n //#endregion\n //#region TextAlignment\n switch (element.HorizontalTextAlignment) {\n case Alignment.Center:\n result['text-align'] = 'center';\n break;\n case Alignment.End:\n result['text-align'] = 'end';\n break;\n case Alignment.Start:\n result['text-align'] = 'start';\n break;\n case Alignment.Stretch:\n result['text-align'] = 'justify';\n break;\n }\n if (element.ElementType === 'checkbox' || element.ElementType === 'icon' || element.ElementType === 'textblock') {\n switch (element.VerticalTextAlignment) {\n case Alignment.Start:\n result['align-items'] = 'start';\n break;\n case Alignment.End:\n result['align-items'] = 'end';\n break;\n case Alignment.Center:\n result['align-items'] = 'center';\n break;\n }\n } else {\n switch (element.VerticalTextAlignment) {\n case Alignment.Start:\n result['vertical-align'] = 'top';\n break;\n case Alignment.End:\n result['vertical-align'] = 'bottom';\n break;\n case Alignment.Center:\n result['vertical-align'] = 'middle';\n break;\n }\n }\n //#endregion\n if (!element.UseDecorationsOnLayout) {\n //#region Shadow\n if (element.BoxShadow && element.BoxShadow.length > 0) {\n let shadowtext = '';\n for (let i = 0; i < element.BoxShadow.length; i++) {\n const item = element.BoxShadow[i];\n let line = item.ShiftRight + 'px ' + item.ShiftDown + 'px ' + item.Blur + 'px ' + item.Spread + 'px ';\n if (item.Opacity != null) {\n let opa = item.Opacity;\n if (typeof item.Opacity != 'number') {\n opa = parseFloat(item.Opacity)\n }\n if (opa == 1) {\n line += item.Color;\n } else {\n let color = Color.FromHex(item.Color);\n color.A = Math.round(opa * 255);\n line += Color.GetStyleText(color);\n }\n } else {\n line += item.Color;\n }\n if ((i + 1) < element.BoxShadow.length) {\n line += ', ';\n }\n shadowtext += line;\n }\n if (shadowtext) {\n result['box-shadow'] = shadowtext;\n }\n }\n //#endregion\n //#region Border\n if (element.Border) {\n let style = BorderSide.BorderToStyle(element.Border.LeftBorder);\n if (element.Border.LeftBorder && style !== '') {\n result['border-left'] = style;\n }\n style = BorderSide.BorderToStyle(element.Border.TopBorder);\n if (element.Border.TopBorder && style !== '') {\n result['border-top'] = style;\n }\n style = BorderSide.BorderToStyle(element.Border.RightBorder);\n if (element.Border.RightBorder && style !== '') {\n result['border-right'] = style;\n }\n style = BorderSide.BorderToStyle(element.Border.BottomBorder);\n if (element.Border.BottomBorder && style) {\n result['border-bottom'] = style;\n }\n if (element.Border.BorderRadius) {\n style = LayoutUnit.ToStyle(element.Border.BorderRadius.TopLeft);\n if (element.Border.BorderRadius.TopLeft && style !== '') {\n result['border-top-left-radius'] = style;\n }\n style = LayoutUnit.ToStyle(element.Border.BorderRadius.TopRight);\n if (element.Border.BorderRadius.TopRight && style !== '') {\n result['border-top-right-radius'] = style;\n }\n style = LayoutUnit.ToStyle(element.Border.BorderRadius.BottomLeft);\n if (element.Border.BorderRadius.BottomLeft && style !== '') {\n result['border-bottom-left-radius'] = style;\n }\n style = LayoutUnit.ToStyle(element.Border.BorderRadius.BottomRight);\n if (element.Border.BorderRadius.BottomRight && style !== '') {\n result['border-bottom-right-radius'] = style;\n }\n }\n }\n //#endregion\n //#region Background\n const bg = element.BackgroundColor;\n if (bg) {\n const styles = Gradient.getStyleObject(bg);\n Object.keys(styles).forEach((key) => {\n result[key] = styles[key];\n });\n }\n if (element.BackgroundImage) {\n if (this.LayoutElement && this.LayoutElement.MediaSource) {\n if (this.MediaSource) {\n const url = MediaSource.GetURL(this.MediaSource, element.BackgroundImage);\n result['background-image'] = 'url(\\'' + url + '\\')';\n } else {\n CacheService.ReadMediaSourceSub(this.LayoutElement.MediaSource).subscribe((source) => {\n this.MediaSource = source;\n const url = MediaSource.GetURL(this.MediaSource, element.BackgroundImage);\n result['background-image'] = 'url(\\'' + url + '\\')';\n });\n }\n }\n }\n if (typeof element.BackgroundRepeat === 'number' && element.BackgroundRepeat >= 0) {\n result['background-repeat'] = BackgroundRepeat[element.BackgroundRepeat];\n }\n if (typeof element.BackgroundSize === 'number' && element.BackgroundSize >= 0) {\n result['background-size'] = BackgroundSize[element.BackgroundSize];\n }\n if (typeof element.BackgroundPosition === 'number' && element.BackgroundPosition >= 0) {\n result['background-position'] = BackgroundPosition[element.BackgroundPosition];\n }\n //#endregion\n }\n\n if (element.Visible === false) {\n result['display'] = 'none';\n } else if (element.Visible === true) {\n delete result['display'];\n }\n if (element.LayoutPosition != null) {\n result['position'] = LayoutPosition[element.LayoutPosition];\n }\n if (element.ImageFit != null) {\n result['object-fit'] = ObjectFit[element.ImageFit];\n }\n if (element.Cursor) {\n if (this.LayoutElement) {\n switch (this.LayoutElement.ElementType) {\n case 'button':\n case 'download':\n case 'tablecolumnvisibility':\n case 'upload':\n result['cursor'] = element.Cursor;\n break;\n }\n }\n }\n }\n}\n//#region LayoutItem\n@Pipe({ name: 'LayoutItemStyle', pure: true })\nexport class LayoutItemStylePipe implements PipeTransform {\n LayoutElement;\n StyleRef;\n WorkflowStyles;\n MediaSource: any;\n transform(LayoutElement, RefreshCount) {\n // console.log(new Date().toJSON() + ' ' + LayoutElement.ID + ' Create LayoutItemStyle(' + RefreshCount + ')');\n\n const result = {};\n this.LayoutElement = LayoutElement;\n if (LayoutElement && LayoutElement.Element) {\n this.StyleRef = LayoutElement.Element.StyleRef;\n this.WorkflowStyles = LayoutElement.Element.WorkflowStyles;\n this.MediaSource = LayoutElement.Element.MediaSourceValue;\n\n if (this.StyleRef && Object.keys(this.StyleRef).length > 0) {\n this.BuildStyle(this.StyleRef, result, LayoutElement.Element);\n }\n if (LayoutElement) {\n this.BuildStyle(LayoutElement, result, LayoutElement.Element);\n }\n if (this.WorkflowStyles && this.WorkflowStyles.length > 0) {\n this.WorkflowStyles.forEach(x => {\n this.BuildStyle(x, result, LayoutElement.Element);\n });\n }\n if (LayoutElement.Parent && LayoutElement.Parent.ElementType === 'flex') {\n const theme = ThemeHelper.AcitveTheme;\n if (theme && theme.ControlStyle === ControlStyle.Bootstrap) {\n const ignoreList = ['textblock', 'grid', 'bootstrapgrid', 'flex',\n 'canvas', 'raster', 'repeat', 'bootstraprepeat', 'template'];\n if (!ignoreList.some(x => x == LayoutElement.ElementType)) {\n switch (LayoutElement.Parent.Orientation) {\n case Orientation.Horizontal:\n case Orientation.HorizontalReverse:\n case Orientation.HorizontalWrapping:\n case Orientation.HorizontalReverseWrapping:\n if (!result['width'] && !result['min-width']) {\n result['min-width'] = \"100px\";\n }\n break;\n case Orientation.Vertical:\n case Orientation.VerticalReverse:\n case Orientation.VerticalWrapping:\n case Orientation.VerticalReverseWrapping:\n if (!result['height'] && !result['min-height']) {\n result['min-height'] = \"50px\";\n }\n break;\n }\n }\n }\n }\n }\n // console.log(new Date().toJSON() + ' ' + LayoutElement.ID + ' StyleCreated LayoutItemStyle(' + RefreshCount + ')');\n return result;\n }\n BuildStyle(element, result, control) {\n if (element.Transitions && element.Transitions.length > 0) {\n result['transition'] = '';\n for (let i = 0; i < element.Transitions.length; i++) {\n const transition = element.Transitions[i];\n if (transition.Property != null) {\n result['transition'] += TransitionProperty[transition.Property];\n if (transition.Duration != null) {\n result['transition'] += ' ' + transition.Duration + 's';\n if (transition.TimingFunction != null) {\n result['transition'] += ' ' + TransitionTimingFunction[transition.TimingFunction];\n if (transition.Delay != null) {\n result['transition'] += ' ' + transition.Delay + 's';\n }\n }\n }\n if (i + 1 < element.Transitions.length) {\n result['transition'] += ',';\n }\n }\n }\n }\n if (element.Font) {\n if (element.Font.Bold != null) {\n if (element.Font.Bold) {\n result['font-weight'] = 'bold';\n } else {\n delete result['font-weight'];\n // result['font-weight'] = 'normal';\n }\n }\n if (element.Font.Italic != null) {\n if (element.Font.Italic) {\n result['font-style'] = 'italic';\n } else {\n delete result['font-style'];\n }\n }\n if (element.Font.Underline != null) {\n if (element.Font.Underline) {\n result['text-decoration'] = 'underline';\n } else {\n delete result['text-decoration'];\n }\n }\n if (element.Font.FontFamilyName != null) {\n if (element.Font.FontFamilyName) {\n if (ThemeHelper.CustomFontsMap && ThemeHelper.CustomFontsMap[element.Font.FontFamilyName]) {\n result['font-family'] = 'var(' + ThemeHelper.CustomFontsMap[element.Font.FontFamilyName].VariableName + ')';\n } else {\n result['font-family'] = element.Font.FontFamilyName;\n }\n } else {\n delete result['font-family'];\n }\n }\n if (element.Font.FontSize != null) {\n if (element.Font.FontSize) {\n result['font-size'] = element.Font.FontSize + 'pt';\n } else {\n delete result['font-size'];\n }\n }\n if (element.Font.FontColor) {\n const colorText = Color.GetStyleText(element.Font.FontColor);\n if (colorText) {\n result['color'] = colorText;\n } else {\n delete result['color'];\n }\n }\n }\n if (element.WhiteSpace != null) {\n result['white-space'] = WhiteSpace[element.WhiteSpace];\n }\n if (element.TextOverflow != null) {\n result['text-overflow'] = TextOverflow[element.TextOverflow];\n }\n if (element.Width) {\n const style = LayoutUnit.ToStyle(element.Width);\n if (style !== '') {\n result['width'] = style;\n }\n }\n if (element.Height) {\n const style = LayoutUnit.ToStyle(element.Height);\n if (style !== '') {\n result['height'] = style;\n }\n }\n if (element.MinWidth) {\n const style = LayoutUnit.ToStyle(element.MinWidth);\n if (style !== '') {\n result['min-width'] = style;\n }\n }\n if (element.MinHeight) {\n const style = LayoutUnit.ToStyle(element.MinHeight);\n if (style !== '') {\n result['min-height'] = style;\n }\n }\n if (element.MaxWidth) {\n const style = LayoutUnit.ToStyle(element.MaxWidth);\n if (style !== '') {\n result['max-width'] = style;\n }\n }\n if (element.MaxHeight) {\n const style = LayoutUnit.ToStyle(element.MaxHeight);\n if (style !== '') {\n result['max-height'] = style;\n }\n }\n if (element.Margin) {\n const styleLeft = LayoutUnit.ToStyle(element.Margin.Left);\n if (element.Margin.Left && styleLeft) {\n result['margin-left'] = styleLeft;\n }\n const styleTop = LayoutUnit.ToStyle(element.Margin.Top);\n if (element.Margin.Top && styleTop) {\n result['margin-top'] = styleTop;\n }\n const styleRight = LayoutUnit.ToStyle(element.Margin.Right);\n if (element.Margin.Right && styleRight !== '') {\n result['margin-right'] = styleRight;\n }\n const styleBottom = LayoutUnit.ToStyle(element.Margin.Bottom);\n if (element.Margin.Bottom && styleBottom !== '') {\n result['margin-bottom'] = styleBottom;\n }\n //let minusWidth = '';\n //if (styleLeft !=='' && styleRight !== '') {\n // minusWidth = ' + ' + result['margin-left'] + ' - ' + result['margin-right'] + ')';\n //} else if (styleLeft !== '') {\n // minusWidth = ' + ' + result['margin-left'] + ')';\n //} else if (styleRight !== '') {\n // minusWidth = ' + ' + result['margin-right'] + ')';\n //}\n //if (minusWidth != '') {\n // if (result['width']) {\n // result['width'] = 'calc(' + result['width'] + minusWidth;\n // } else {\n // result['width'] = 'calc(100%' + minusWidth;\n // }\n //}\n //let minusHeight = '';\n //if (styleTop !== '' && styleBottom !== '') {\n // minusHeight = ' + ' + result['margin-top'] + ' - ' + result['margin-bottom'] + ')';\n //} else if (styleTop !== '') {\n // minusHeight = ' + ' + result['margin-top'] + ')';\n //} else if (styleBottom !== '') {\n // minusHeight = ' + ' + result['margin-bottom'] + ')';\n //}\n //if (minusHeight != '') {\n // if (result['height']) {\n // result['height'] = 'calc(' + result['height'] + minusHeight;\n // } else {\n // result['height'] = 'calc(100%' + minusHeight;\n // }\n //}\n }\n if (element.ZIndex != null) {\n result['z-index'] = element.ZIndex;\n if (control.Zindex != element.ZIndex) {\n control.ZIndex = element.ZIndex;\n if (control.Parent && control.Parent.Element && control.Parent.Element.cdRef) {\n control.Parent.Element.RefreshCount += 1;\n }\n }\n } else {\n if (control.ZIndex != null) {\n delete control.ZIndex;\n if (control.Parent && control.Parent.Element && control.Parent.Element.cdRef) {\n control.Parent.Element.RefreshCount += 1;\n }\n }\n }\n if (element.Scrollable) {\n result['overflow'] = 'auto';\n }\n if (element.Overflow != null) {\n result['overflow'] = Overflow[element.Overflow];\n } else {\n result['overflow'] = 'hidden';\n }\n switch (element.HorizontalContentAlignment) {\n case Alignment.Center:\n result['justify-self'] = 'center';\n break;\n case Alignment.End:\n result['justify-self'] = 'flex-end';\n break;\n case Alignment.Start:\n result['justify-self'] = 'flex-start';\n break;\n }\n switch (element.VerticalContentAlignment) {\n case Alignment.Start:\n result['align-self'] = 'flex-start';\n break;\n case Alignment.End:\n result['align-self'] = 'flex-end';\n break;\n case Alignment.Center:\n result['align-self'] = 'center';\n break;\n }\n\n //#region TextAlignment\n switch (element.HorizontalTextAlignment) {\n case Alignment.Center:\n result['text-align'] = 'center';\n break;\n case Alignment.End:\n result['text-align'] = 'end';\n break;\n case Alignment.Start:\n result['text-align'] = 'start';\n break;\n case Alignment.Stretch:\n result['text-align'] = 'justify';\n break;\n }\n\n switch (element.VerticalTextAlignment) {\n case Alignment.Start:\n result['vertical-align'] = 'top';\n break;\n case Alignment.End:\n result['vertical-align'] = 'bottom';\n break;\n case Alignment.Center:\n result['vertical-align'] = 'middle';\n break;\n }\n //#endregion\n\n if (element.Visible === false) {\n result['display'] = 'none';\n } else if (element.Visible === true) {\n delete result['display'];\n }\n\n if (element.Padding) {\n let style = LayoutUnit.ToStyle(element.Padding.Left);\n if (element.Padding.Left && style) {\n result['padding-left'] = style;\n }\n style = LayoutUnit.ToStyle(element.Padding.Top);\n if (element.Padding.Top && style) {\n result['padding-top'] = style;\n }\n style = LayoutUnit.ToStyle(element.Padding.Right);\n if (element.Padding.Right && style) {\n result['padding-right'] = style;\n }\n style = LayoutUnit.ToStyle(element.Padding.Bottom);\n if (element.Padding.Bottom && style) {\n result['padding-bottom'] = style;\n }\n }\n if (element.LayoutPosition != null) {\n result['position'] = LayoutPosition[element.LayoutPosition];\n }\n if (element.ImageFit != null) {\n result['object-fit'] = ObjectFit[element.ImageFit];\n }\n if (element.Location) {\n if (element.Location.Left && element.Location.Left.toStyle() !== '') {\n result['left'] = element.Location.Left.toStyle();\n }\n if (element.Location.Top && element.Location.Top.toStyle() !== '') {\n result['top'] = element.Location.Top.toStyle();\n }\n if (element.Location.Right && element.Location.Right.toStyle() !== '') {\n result['right'] = element.Location.Right.toStyle();\n }\n if (element.Location.Bottom && element.Location.Bottom.toStyle() !== '') {\n result['bottom'] = element.Location.Bottom.toStyle();\n }\n }\n if (element.UseDecorationsOnLayout) {\n //#region Shadow\n if (element.BoxShadow && element.BoxShadow.length > 0) {\n let shadowtext = '';\n for (let i = 0; i < element.BoxShadow.length; i++) {\n const item = element.BoxShadow[i];\n let line = item.ShiftRight + 'px ' + item.ShiftDown + 'px ' + item.Blur + 'px ' + item.Spread + 'px ';\n if (item.Opacity != null) {\n let opa = item.Opacity;\n if (typeof item.Opacity != 'number') {\n opa = parseFloat(item.Opacity)\n }\n if (opa == 1) {\n line += item.Color;\n } else {\n let color = Color.FromHex(item.Color);\n color.A = Math.round(opa * 255);\n line += Color.GetStyleText(color);\n }\n } else {\n line += item.Color;\n }\n if ((i + 1) < element.BoxShadow.length) {\n line += ', ';\n }\n shadowtext += line;\n }\n if (shadowtext) {\n result['box-shadow'] = shadowtext;\n }\n }\n //#endregion\n //#region Border\n if (element.Border) {\n let style = BorderSide.BorderToStyle(element.Border.LeftBorder);\n if (element.Border.LeftBorder && style !== '') {\n result['border-left'] = style;\n }\n style = BorderSide.BorderToStyle(element.Border.TopBorder);\n if (element.Border.TopBorder && style !== '') {\n result['border-top'] = style;\n }\n style = BorderSide.BorderToStyle(element.Border.RightBorder);\n if (element.Border.RightBorder && style !== '') {\n result['border-right'] = style;\n }\n style = BorderSide.BorderToStyle(element.Border.BottomBorder);\n if (element.Border.BottomBorder && style) {\n result['border-bottom'] = style;\n }\n if (element.Border.BorderRadius) {\n style = LayoutUnit.ToStyle(element.Border.BorderRadius.TopLeft);\n if (element.Border.BorderRadius.TopLeft && style !== '') {\n result['border-top-left-radius'] = style;\n }\n style = LayoutUnit.ToStyle(element.Border.BorderRadius.TopRight);\n if (element.Border.BorderRadius.TopRight && style !== '') {\n result['border-top-right-radius'] = style;\n }\n style = LayoutUnit.ToStyle(element.Border.BorderRadius.BottomLeft);\n if (element.Border.BorderRadius.BottomLeft && style !== '') {\n result['border-bottom-left-radius'] = style;\n }\n style = LayoutUnit.ToStyle(element.Border.BorderRadius.BottomRight);\n if (element.Border.BorderRadius.BottomRight && style !== '') {\n result['border-bottom-right-radius'] = style;\n }\n }\n }\n //#endregion\n //#region Background\n const bg = element.BackgroundColor;\n if (bg) {\n const styles = Gradient.getStyleObject(bg);\n Object.keys(styles).forEach((key) => {\n result[key] = styles[key];\n });\n }\n if (element.BackgroundImage) {\n if (this.LayoutElement && this.LayoutElement.MediaSource) {\n if (this.MediaSource) {\n const url = MediaSource.GetURL(this.MediaSource, element.BackgroundImage);\n result['background-image'] = 'url(\\'' + url + '\\')';\n } else {\n CacheService.ReadMediaSourceSub(this.LayoutElement.MediaSource).subscribe((source) => {\n this.MediaSource = source;\n const url = MediaSource.GetURL(this.MediaSource, element.BackgroundImage);\n result['background-image'] = 'url(\\'' + url + '\\')';\n });\n }\n }\n }\n if (typeof element.BackgroundRepeat === 'number' && element.BackgroundRepeat >= 0) {\n result['background-repeat'] = BackgroundRepeat[element.BackgroundRepeat];\n }\n if (typeof element.BackgroundSize === 'number' && element.BackgroundSize >= 0) {\n result['background-size'] = BackgroundSize[element.BackgroundSize];\n }\n if (typeof element.BackgroundPosition === 'number' && element.BackgroundPosition >= 0) {\n result['background-position'] = BackgroundPosition[element.BackgroundPosition];\n }\n //#endregion\n }\n let transformText = '';\n if (element.RotateX != null) {\n transformText += 'rotateX(' + element.RotateX + 'deg) ';\n }\n if (element.RotateY != null) {\n transformText += 'rotateY(' + element.RotateY + 'deg) ';\n }\n if (element.RotateZ != null) {\n transformText += 'rotateZ(' + element.RotateZ + 'deg) ';\n }\n if (element.TranslateX && element.TranslateX.Value != null) {\n transformText += 'translateX(' + element.TranslateX.toStyle() + ') ';\n }\n if (element.TranslateY && element.TranslateY.Value != null) {\n transformText += 'translateY(' + element.TranslateY.toStyle() + ') ';\n }\n if (element.TranslateZ && element.TranslateZ.Value != null) {\n transformText += 'translateZ(' + element.TranslateZ.toStyle() + ') ';\n }\n if (element.ScaleX) {\n transformText += 'scaleX(' + element.ScaleX + ') ';\n }\n if (element.ScaleY) {\n transformText += 'scaleY(' + element.ScaleY + ') ';\n }\n if (element.ScaleZ) {\n transformText += 'scaleZ(' + element.ScaleZ + ') ';\n }\n if (transformText) {\n result['transform'] = transformText;\n }\n if (element.Cursor) {\n result['cursor'] = element.Cursor;\n }\n }\n}\n@Pipe({ name: 'LayoutItemDisplay', pure: true })\nexport class LayoutItemDisplayPipe implements PipeTransform {\n transform(LayoutElement, RefreshCount) {\n const result = {};\n\n if (LayoutElement && LayoutElement.Element) {\n if (LayoutElement.ElementType === 'carousel') {\n return {\n display: 'grid'\n };\n }\n if (LayoutElement.Element.StyleRef && Object.keys(LayoutElement.Element.StyleRef).length > 0) {\n this.BuildStyle(LayoutElement.Element.StyleRef, result);\n }\n this.BuildStyle(LayoutElement, result);\n if (LayoutElement.Element.WorkflowStyles && LayoutElement.Element.WorkflowStyles.length > 0) {\n LayoutElement.Element.WorkflowStyles.forEach(x => {\n this.BuildStyle(x, result);\n });\n }\n }\n let retVal = null;\n if (result['justify-self'] || result['align-self']) {\n retVal = 'grid';\n delete result['justify-self'];\n delete result['align-self'];\n }\n\n return {\n display: retVal\n };\n }\n BuildStyle(element, result) {\n switch (element.HorizontalContentAlignment) {\n case Alignment.Center:\n result['justify-self'] = 'center';\n break;\n case Alignment.End:\n result['justify-self'] = 'flex-end';\n break;\n case Alignment.Start:\n result['justify-self'] = 'flex-start';\n break;\n }\n switch (element.VerticalContentAlignment) {\n case Alignment.Start:\n result['align-self'] = 'flex-start';\n break;\n case Alignment.End:\n result['align-self'] = 'flex-end';\n break;\n case Alignment.Center:\n result['align-self'] = 'center';\n break;\n }\n }\n}\n@Pipe({ name: 'LoadingStyleDefinition', pure: true })\nexport class LoadingStyleDefinitionPipe implements PipeTransform {\n transform(BaseStyle, LayoutElement) {\n const result = BaseStyle;\n if (LayoutElement && LayoutElement.Element) {\n if (LayoutElement.Element.IsComponent) {\n result['position'] = 'fixed';\n }\n }\n return result;\n }\n}\n//#endregion\n//#region Layouts\n//#region Grid\n@Pipe({ name: 'GridStyleDefinition', pure: true })\nexport class GridStyleDefinitionPipe implements PipeTransform {\n transform(BaseStyle, LayoutElement) {\n const result = BaseStyle;\n if (LayoutElement.ColumnDefinitions && LayoutElement.ColumnDefinitions.length > 0) {\n result['grid-template-columns'] = this.calculateSize(LayoutElement.ColumnDefinitions);\n }\n if (LayoutElement.RowDefinitions && LayoutElement.RowDefinitions.length > 0) {\n result['grid-template-rows'] = this.calculateSize(LayoutElement.RowDefinitions);\n }\n return result;\n }\n calculateSize(items: LayoutBase[]): string {\n let result = '';\n const tempItems = {};\n for (let i = 0; i < items.length; i++) {\n if (items[i].Size) {\n if (items[i].Size.Type == UnitType.Auto) {\n tempItems[i] = 'max-content';\n } else {\n tempItems[i] = LayoutUnit.ConvertFrom(items[i].Size);\n }\n }\n }\n Object.keys(tempItems).forEach((item) => {\n if (result.length > 0) {\n result += ' ';\n }\n result += tempItems[item];\n });\n return result;\n }\n}\n@Pipe({ name: 'GridCellStyle', pure: true })\nexport class GridCellStylePipe implements PipeTransform {\n transform(item, RefreshCount) {\n const result = {};\n\n if (item.Row) {\n result['grid-row'] = item.Row;\n if (item.RowSpan) {\n result['grid-row-start'] = item.Row;\n result['grid-row-end'] = item.Row + item.RowSpan;\n }\n }\n if (item.Column) {\n result['grid-column'] = item.Column;\n if (item.ColSpan) {\n result['grid-column-start'] = item.Column;\n result['grid-column-end'] = item.Column + item.ColSpan;\n }\n }\n if (item.Scrollable) {\n result['overflow'] = 'auto';\n } else if (item.CellOverflow != null) {\n result['overflow'] = Overflow[item.CellOverflow];\n }\n return result;\n }\n}\n@Pipe({ name: 'GridEditCellStyle', pure: true })\nexport class GridEditCellStylePipe implements PipeTransform {\n transform(item, drag) {\n const result = {};\n if (item.Row) {\n result['grid-row'] = item.Row;\n }\n if (item.Column) {\n result['grid-column'] = item.Column;\n }\n if (drag && !(item.Row == drag.Row && item.Column == drag.Column)) {\n result['z-index'] = 9999999999999999;\n }\n return result;\n }\n}\n@Pipe({ name: 'GridAlignmentStyle', pure: true })\nexport class GridAlignmentStylePipe implements PipeTransform {\n transform(item) {\n const result = {};\n switch (item.VerticalContentAlignment) {\n case Alignment.Start:\n result['justify-content'] = 'flex-start';\n break;\n case Alignment.End:\n result['justify-content'] = 'flex-end';\n break;\n case Alignment.Center:\n result['justify-content'] = 'center';\n break;\n }\n return result;\n }\n}\n@Pipe({ name: 'GridItemStyle', pure: true })\nexport class GridItemStylePipe implements PipeTransform {\n transform(item) {\n const alignObj = {\n HasHorizontalAlignment: false,\n HasVerticalAlignment: false\n };\n let retVal = {};\n if (item && item.Element && item.Element.createStyleInternal) {\n retVal = item.Element.createStyleInternal((elem, result) => {\n const ret = this.createItemStyleInternal(elem, result);\n if (ret.HasHorizontalAlignment) {\n alignObj.HasHorizontalAlignment = true;\n }\n if (ret.HasVerticalAlignment) {\n alignObj.HasVerticalAlignment = true;\n }\n });\n } else {\n const ret = this.createItemStyleInternal(item, retVal);\n if (ret.HasHorizontalAlignment) {\n alignObj.HasHorizontalAlignment = true;\n }\n if (ret.HasVerticalAlignment) {\n alignObj.HasVerticalAlignment = true;\n }\n }\n if (!alignObj.HasVerticalAlignment) {\n retVal['height'] = '100%';\n }\n if (!alignObj.HasHorizontalAlignment) {\n retVal['width'] = '100%';\n }\n return retVal;\n }\n\n createItemStyleInternal(element, result) {\n const alignObj = {\n HasHorizontalAlignment: false,\n HasVerticalAlignment: false\n };\n switch (element.HorizontalContentAlignment) {\n case Alignment.Center:\n result['align-self'] = 'center';\n alignObj.HasHorizontalAlignment = true;\n break;\n case Alignment.End:\n result['align-self'] = 'flex-end';\n alignObj.HasHorizontalAlignment = true;\n break;\n case Alignment.Start:\n result['align-self'] = 'flex-start';\n alignObj.HasHorizontalAlignment = true;\n break;\n }\n switch (element.VerticalContentAlignment) {\n case Alignment.Start:\n alignObj.HasVerticalAlignment = true;\n break;\n case Alignment.End:\n alignObj.HasVerticalAlignment = true;\n break;\n case Alignment.Center:\n alignObj.HasVerticalAlignment = true;\n break;\n }\n return alignObj;\n }\n}\n//#endregion\n//#region Flex\n@Pipe({ name: 'FlexAlign', pure: true })\nexport class FlexAlignPipe implements PipeTransform {\n transform(element, RefreshCount) {\n const result = {};\n if (element) {\n if (element.FlexAlignItems != null) {\n result['align-items'] = FlexItemAlignment[element.FlexAlignItems];\n }\n if (element.FlexAlignContent != null) {\n result['align-content'] = FlexContentAlignment[element.FlexAlignContent];\n }\n }\n return result;\n }\n}\n@Pipe({ name: 'FlexClass', pure: true })\nexport class FlexClassPipe implements PipeTransform {\n transform(element, RefreshCount) {\n let result = '';\n switch (element.Orientation) {\n case Orientation.Horizontal: result = 'flex-row'; break;\n case Orientation.HorizontalReverse: result = 'flex-row-reverse'; break;\n case Orientation.HorizontalWrapping: result = 'flex-row-wrapping'; break;\n case Orientation.HorizontalReverseWrapping: result = 'flex-row-reverse-wrapping'; break;\n case Orientation.Vertical: result = 'flex-column'; break;\n case Orientation.VerticalReverse: result = 'flex-column-reverse'; break;\n case Orientation.VerticalWrapping: result = 'flex-column-wrapping'; break;\n case Orientation.VerticalReverseWrapping: result = 'flex-column-reverse-wrapping'; break;\n }\n return result;\n }\n}\n@Pipe({ name: 'FlexItem', pure: true })\nexport class FlexItemPipe implements PipeTransform {\n\n Layout;\n\n transform(element, layout) {\n let result = {};\n this.Layout = layout;\n if (element && element.Element && element.Element.createStyleInternal) {\n result = element.Element.createStyleInternal((elem, r) => {\n this.createItemStyleInternal(elem, r);\n });\n } else {\n this.createItemStyleInternal(element, result);\n }\n return result;\n }\n createItemStyleInternal(elem, result) {\n switch (this.Layout.Orientation) {\n case Orientation.Horizontal:\n case Orientation.HorizontalReverse:\n case Orientation.HorizontalWrapping:\n case Orientation.HorizontalReverseWrapping:\n switch (elem.VerticalContentAlignment) {\n case Alignment.Start:\n result['align-self'] = 'flex-start';\n break;\n case Alignment.End:\n result['align-self'] = 'flex-end';\n break;\n case Alignment.Center:\n result['align-self'] = 'center';\n break;\n }\n break;\n case Orientation.Vertical:\n case Orientation.VerticalReverse:\n case Orientation.VerticalWrapping:\n case Orientation.VerticalReverseWrapping:\n switch (elem.HorizontalContentAlignment) {\n case Alignment.Center:\n result['align-self'] = 'center';\n break;\n case Alignment.End:\n result['align-self'] = 'flex-end';\n break;\n case Alignment.Start:\n result['align-self'] = 'flex-start';\n break;\n }\n }\n }\n}\n//#endregion\n@Pipe({ name: 'RepeatClass', pure: true })\nexport class RepeatClassPipe implements PipeTransform {\n\n Layout;\n\n transform(item, source) {\n if (item && source) {\n source.FlexFill = item.FlexFill;\n }\n if (item && item.FlexFill) {\n return 'fill';\n }\n if (source && source.FlexFill) {\n return 'fill';\n }\n }\n}\n@Pipe({ name: 'CanvasItemPosition', pure: true })\nexport class CanvasItemPositionPipe implements PipeTransform {\n transform(element, RefreshCount) {\n const result = {};\n if (element.Location) {\n if (RTLHelper.Direction === 'ltr') {\n if (element.Location.Left && LayoutUnit.ToStyle(element.Location.Left) !== '') {\n result['left'] = LayoutUnit.ToStyle(element.Location.Left);\n }\n if (element.Location.Right && LayoutUnit.ToStyle(element.Location.Right) !== '') {\n result['right'] = LayoutUnit.ToStyle(element.Location.Right);\n }\n } else {\n if (element.Location.Left && LayoutUnit.ToStyle(element.Location.Left) !== '') {\n result['right'] = LayoutUnit.ToStyle(element.Location.Left);\n }\n if (element.Location.Right && LayoutUnit.ToStyle(element.Location.Right) !== '') {\n result['left'] = LayoutUnit.ToStyle(element.Location.Right);\n }\n }\n if (element.Location.Top && LayoutUnit.ToStyle(element.Location.Top) !== '') {\n result['top'] = LayoutUnit.ToStyle(element.Location.Top);\n }\n if (element.Location.Bottom && LayoutUnit.ToStyle(element.Location.Bottom) !== '') {\n result['bottom'] = LayoutUnit.ToStyle(element.Location.Bottom);\n }\n }\n if (element.Width && LayoutUnit.ToStyle(element.Width) !== '') {\n result['width'] = LayoutUnit.ToStyle(element.Width);\n }\n if (element.Height && LayoutUnit.ToStyle(element.Height) !== '') {\n result['height'] = LayoutUnit.ToStyle(element.Height);\n }\n if (element.ZIndex) {\n result['z-index'] = element.ZIndex;\n }\n result['position'] = 'absolute';\n return result;\n }\n}\n//#endregion\n//#region Controls\n@Pipe({ name: 'FloatingLabel', pure: true })\nexport class FloatingLabelPipe implements PipeTransform {\n transform(element, Refresh) {\n const result = {};\n if (element.Font) {\n if (element.Font.Bold != null) {\n if (element.Font.Bold) {\n result['font-weight'] = 'bold';\n } else {\n // delete result['font-weight'];\n result['font-weight'] = 'normal';\n }\n }\n if (element.Font.Italic != null) {\n if (element.Font.Italic) {\n result['font-style'] = 'italic';\n } else {\n delete result['font-style'];\n }\n }\n if (element.Font.Underline != null) {\n if (element.Font.Underline) {\n result['text-decoration'] = 'underline';\n } else {\n delete result['text-decoration'];\n }\n }\n if (element.Font.FontFamilyName != null) {\n if (element.Font.FontFamilyName) {\n if (ThemeHelper.CustomFontsMap && ThemeHelper.CustomFontsMap[element.Font.FontFamilyName]) {\n result['font-family'] = 'var(' + ThemeHelper.CustomFontsMap[element.Font.FontFamilyName].VariableName + ')';\n } else {\n result['font-family'] = element.Font.FontFamilyName;\n }\n } else {\n delete result['font-family'];\n }\n }\n if (element.Font.FontSize != null) {\n if (element.Font.FontSize) {\n result['font-size'] = element.Font.FontSize + 'pt';\n } else {\n delete result['font-size'];\n }\n }\n if (element.Font.FontColor) {\n const colorText = Color.GetStyleText(element.Font.FontColor);\n if (colorText) {\n result['color'] = colorText;\n } else {\n delete result['color'];\n }\n }\n }\n return result;\n }\n}\n@Pipe({ name: 'TextblockStyle', pure: true })\nexport class TextblockStylePipe implements PipeTransform {\n LayoutElement;\n StyleRef;\n WorkflowStyles;\n MediaSource: any;\n transform(LayoutElement, RefreshCount) {\n const result = {};\n this.LayoutElement = LayoutElement;\n if (LayoutElement && LayoutElement.Element) {\n this.StyleRef = LayoutElement.Element.StyleRef;\n this.WorkflowStyles = LayoutElement.Element.WorkflowStyles;\n this.MediaSource = LayoutElement.Element.MediaSource;\n\n if (this.StyleRef && Object.keys(this.StyleRef).length > 0) {\n this.BuildStyle(this.StyleRef, result, LayoutElement.Element);\n }\n this.BuildStyle(LayoutElement, result, LayoutElement.Element);\n if (this.WorkflowStyles && this.WorkflowStyles.length > 0) {\n this.WorkflowStyles.forEach(x => {\n this.BuildStyle(x, result, LayoutElement.Element);\n });\n }\n }\n return result;\n }\n BuildStyle(element, result, control) {\n\n if (element.WhiteSpace != null) {\n result['white-space'] = WhiteSpace[element.WhiteSpace];\n }\n if (element.TextOverflow != null) {\n result['text-overflow'] = TextOverflow[element.TextOverflow];\n }\n if (element.Scrollable) {\n result['overflow'] = 'auto';\n } else if (element.Overflow != null) {\n result['overflow'] = Overflow[element.Overflow];\n } else {\n result['overflow'] = 'hidden';\n }\n }\n}\n@Pipe({ name: 'CarouselSize', pure: true })\nexport class CarouselSizePipe implements PipeTransform {\n LayoutElement;\n StyleRef;\n WorkflowStyles;\n MediaSource: any;\n transform(LayoutElement, RefreshCount) {\n const result = {};\n this.LayoutElement = LayoutElement;\n if (LayoutElement && LayoutElement.Element) {\n this.StyleRef = LayoutElement.Element.StyleRef;\n this.WorkflowStyles = LayoutElement.Element.WorkflowStyles;\n this.MediaSource = LayoutElement.Element.MediaSource;\n\n if (this.StyleRef && Object.keys(this.StyleRef).length > 0) {\n this.BuildStyle(this.StyleRef, result, LayoutElement.Element);\n }\n this.BuildStyle(LayoutElement, result, LayoutElement.Element);\n if (this.WorkflowStyles && this.WorkflowStyles.length > 0) {\n this.WorkflowStyles.forEach(x => {\n this.BuildStyle(x, result, LayoutElement.Element);\n });\n }\n }\n return result;\n }\n BuildStyle(element, result, control) {\n if (element.InnerMargin) {\n const styleLeft = LayoutUnit.ToStyle(element.InnerMargin.Left);\n if (element.InnerMargin.Left && styleLeft) {\n result['margin-left'] = styleLeft;\n }\n const styleTop = LayoutUnit.ToStyle(element.InnerMargin.Top);\n if (element.InnerMargin.Top && styleTop) {\n result['margin-top'] = styleTop;\n }\n const styleRight = LayoutUnit.ToStyle(element.InnerMargin.Right);\n if (element.InnerMargin.Right && styleRight !== '') {\n result['margin-right'] = styleRight;\n }\n const styleBottom = LayoutUnit.ToStyle(element.InnerMargin.Bottom);\n if (element.InnerMargin.Bottom && styleBottom !== '') {\n result['margin-bottom'] = styleBottom;\n }\n let minusWidth = '';\n if (styleLeft !=='' && styleRight !== '') {\n minusWidth = ' - ' + result['margin-left'] + ' - ' + result['margin-right'] + ')';\n } else if (styleLeft !== '') {\n minusWidth = ' - ' + result['margin-left'] + ')';\n } else if (styleRight !== '') {\n minusWidth = ' - ' + result['margin-right'] + ')';\n }\n if (minusWidth != '') {\n if (result['width']) {\n result['width'] = 'calc(' + result['width'] + minusWidth;\n } else {\n result['width'] = 'calc(100%' + minusWidth;\n }\n }\n let minusHeight = '';\n if (styleTop !== '' && styleBottom !== '') {\n minusHeight = ' - ' + result['margin-top'] + ' - ' + result['margin-bottom'] + ')';\n } else if (styleTop !== '') {\n minusHeight = ' - ' + result['margin-top'] + ')';\n } else if (styleBottom !== '') {\n minusHeight = ' - ' + result['margin-bottom'] + ')';\n }\n if (minusHeight != '') {\n if (result['height']) {\n result['height'] = 'calc(' + result['height'] + minusHeight;\n } else {\n result['height'] = 'calc(100%' + minusHeight;\n }\n }\n }\n }\n}\n@Pipe({ name: 'CarouselArrowSize', pure: true })\nexport class CarouselArrowSizePipe implements PipeTransform {\n transform(LayoutElement, RefreshCount, Type) {\n const result = {};\n\n switch (Type) {\n case '':\n if (LayoutElement.IconWidth) {\n result['width'] = LayoutUnit.ToStyle(LayoutElement.IconWidth);\n }\n if (LayoutElement.IconHeight) {\n result['height'] = LayoutUnit.ToStyle(LayoutElement.IconHeight);\n }\n break;\n case 'Nav':\n if (LayoutElement.IconWidthNav) {\n result['width'] = LayoutUnit.ToStyle(LayoutElement.IconWidthNav);\n }\n if (LayoutElement.IconHeightNav) {\n result['height'] = LayoutUnit.ToStyle(LayoutElement.IconHeightNav);\n }\n break;\n }\n\n \n return result;\n }\n}\n\n@Pipe({ name: 'ComboBoxStyle', pure: true })\nexport class ComboBoxStylePipe implements PipeTransform {\n transform(input, Height, MaxHeight, hsbv) {\n return {\n width: input.scrollWidth + 'px',\n height: Height + 'px',\n 'max-height': MaxHeight + 'px'\n };\n }\n}\n@Pipe({ name: 'ComboBoxHeight', pure: true })\nexport class ComboBoxHeightPipe implements PipeTransform {\n transform(scroller, component, scrollWidth) {\n if (scroller && scroller.viewport && scroller.viewport.elementRef && scroller.viewport.elementRef.nativeElement) {\n let element = scroller.viewport.elementRef.nativeElement;\n if (element.scrollWidth > element.offsetWidth) {\n component.HorizontalScrollBarVisible = true;\n } else {\n component.HorizontalScrollBarVisible = false;\n }\n } else {\n component.HorizontalScrollBarVisible = false;\n }\n\n return\n }\n}\n@Pipe({ name: 'ComboBoxFont', pure: true })\nexport class ComboBoxFontPipe implements PipeTransform {\n LayoutElement;\n StyleRef;\n WorkflowStyles;\n MediaSource: any;\n transform(LayoutElement, RefreshCount) {\n // console.log(new Date().toJSON() + ' ' + LayoutElement.ID + ' Create LayoutItemStyle(' + RefreshCount + ')');\n\n const result = {};\n this.LayoutElement = LayoutElement;\n if (LayoutElement && LayoutElement.Element) {\n this.StyleRef = LayoutElement.Element.StyleRef;\n this.WorkflowStyles = LayoutElement.Element.WorkflowStyles;\n this.MediaSource = LayoutElement.Element.MediaSourceValue;\n\n if (this.StyleRef && Object.keys(this.StyleRef).length > 0) {\n this.BuildStyle(this.StyleRef, result);\n }\n if (LayoutElement) {\n this.BuildStyle(LayoutElement, result);\n }\n if (this.WorkflowStyles && this.WorkflowStyles.length > 0) {\n this.WorkflowStyles.forEach(x => {\n this.BuildStyle(x, result);\n });\n }\n }\n // console.log(new Date().toJSON() + ' ' + LayoutElement.ID + ' StyleCreated LayoutItemStyle(' + RefreshCount + ')');\n return result;\n }\n BuildStyle(element, result) {\n if (element.Font) {\n if (element.Font.Bold != null) {\n if (element.Font.Bold) {\n result['font-weight'] = 'bold';\n } else {\n delete result['font-weight'];\n // result['font-weight'] = 'normal';\n }\n }\n if (element.Font.Italic != null) {\n if (element.Font.Italic) {\n result['font-style'] = 'italic';\n } else {\n delete result['font-style'];\n }\n }\n if (element.Font.Underline != null) {\n if (element.Font.Underline) {\n result['text-decoration'] = 'underline';\n } else {\n delete result['text-decoration'];\n }\n }\n if (element.Font.FontFamilyName != null) {\n if (element.Font.FontFamilyName) {\n if (ThemeHelper.CustomFontsMap && ThemeHelper.CustomFontsMap[element.Font.FontFamilyName]) {\n result['font-family'] = 'var(' + ThemeHelper.CustomFontsMap[element.Font.FontFamilyName].VariableName + ')';\n } else {\n result['font-family'] = element.Font.FontFamilyName;\n }\n } else {\n delete result['font-family'];\n }\n }\n if (element.Font.FontSize != null) {\n if (element.Font.FontSize) {\n result['font-size'] = element.Font.FontSize + 'pt';\n } else {\n delete result['font-size'];\n }\n }\n if (element.Font.FontColor) {\n const colorText = Color.GetStyleText(element.Font.FontColor);\n if (colorText) {\n result['color'] = colorText;\n } else {\n delete result['color'];\n }\n }\n }\n if (element.WhiteSpace != null) {\n result['white-space'] = WhiteSpace[element.WhiteSpace];\n }\n if (element.TextOverflow != null) {\n result['text-overflow'] = TextOverflow[element.TextOverflow];\n }\n\n return result;\n }\n}\n//#region Button\n@Pipe({ name: 'HorizontalButtonStyle', pure: true })\nexport class HorizontalButtonStylePipe implements PipeTransform {\n transform(element, RefreshCount) {\n const horStyle = {\n 'justify-content': 'center'\n };\n\n if (element) {\n const hor = element['text-align'];\n if (hor) {\n switch (hor) {\n case 'start':\n horStyle['justify-content'] = 'flex-start';\n break;\n case 'end':\n horStyle['justify-content'] = 'flex-end';\n break;\n }\n }\n\n }\n return horStyle;\n }\n}\n\n@Pipe({ name: 'VerticalButtonStyle', pure: true })\nexport class VerticalButtonStylePipe implements PipeTransform {\n transform(element, RefreshCount) {\n\n const vertStyle = {\n 'justify-content': 'center'\n };\n if (element) {\n const ver = element['vertical-align'];\n if (ver) {\n switch (ver) {\n case 'top':\n vertStyle['justify-content'] = 'flex-start';\n break;\n case 'bottom':\n vertStyle['justify-content'] = 'flex-end';\n break;\n }\n }\n }\n return vertStyle;\n }\n}\n\n@Pipe({ name: 'ButtonTextAlignment', pure: true })\nexport class ButtonTextAlignmentPipe implements PipeTransform {\n transform(element, RefreshCount) {\n const result = {};\n\n //#region TextAlignment\n switch (element.CaptionPosition) {\n case 'top':\n break;\n case 'right':\n break;\n case 'bottom':\n break;\n case 'left':\n break;\n }\n\n switch (element.HorizontalTextAlignment) {\n case Alignment.Center:\n result['text-align'] = 'center';\n break;\n case Alignment.End:\n result['text-align'] = 'end';\n break;\n case Alignment.Start:\n result['text-align'] = 'start';\n break;\n case Alignment.Stretch:\n result['text-align'] = 'justify';\n break;\n }\n\n switch (element.VerticalTextAlignment) {\n case Alignment.Start:\n result['align-self'] = 'flex-start';\n break;\n case Alignment.End:\n result['align-self'] = 'flex-end';\n break;\n case Alignment.Center:\n result['align-self'] = 'center';\n break;\n }\n //#endregion\n return result;\n }\n}\n//#endregion\n//#region InputGroup\n@Pipe({ name: 'InputGroup', pure: true })\nexport class InputGroupPipe implements PipeTransform {\n transform(LayoutElement, RefreshCount) {\n const result = {};\n result['width'] = '24px';\n const width = LayoutElement.Width;\n if (width) {\n const widthStyle = LayoutUnit.ToStyle(width);\n if (widthStyle) {\n result['width'] = widthStyle;\n }\n }\n return result;\n }\n}\n\n@Pipe({ name: 'InputGroupItemPosition', pure: true })\nexport class InputGroupItemPositionPipe implements PipeTransform {\n transform(items, before) {\n return items.filter((value) => value.IsBefore == before);\n }\n}\n//#endregion\n//#region DataTable Styles\n@Pipe({ name: 'DataTableHeaderStyle', pure: true })\nexport class DataTableHeaderStylePipe implements PipeTransform {\n transform(column, basestyle) {\n return {\n width: column.CalculatedWidth,\n //'min-width': column.CalculatedWidth,\n //'max-width': column.CalculatedWidth,\n background: basestyle.HeaderBackground,\n color: basestyle.HeaderForeground,\n 'border-color': basestyle.Line\n };\n }\n}\n@Pipe({ name: 'DataTableCellStyle', pure: true })\nexport class DataTableCellStylePipe implements PipeTransform {\n transform(column, basestyle) {\n return {\n width: column.CalculatedWidth,\n //'min-width': column.CalculatedWidth,\n //'max-width': column.CalculatedWidth,\n background: column.IsSticky ? basestyle.StickyBackground : null,\n 'border-color': basestyle.Line\n };\n }\n}\n@Pipe({ name: 'DataTableCellContent', pure: false })\nexport class DataTableCellContentPipe implements PipeTransform {\n\n static getText(data, column, enumsources) {\n let result = '';\n if (column) {\n if (column.Prefix) {\n result += column.Prefix;\n }\n if (data !== null && typeof (data) !== 'undefined') {\n if (column.Type === 'System.DateTime' && column.DateFormat) {\n const locMom = moment(data);\n if (column.DateFormatCulture) {\n locMom.locale(column.DateFormatCulture);\n }\n result += locMom.format(column.DateFormat);\n } else if (column.Type === 'System.Double' && column.NumericPrecision != null) {\n result += parseFloat(data).toFixed(column.NumericPrecision);\n } else if (column.IsEnum && enumsources) {\n const enumSource = enumsources[column.Type3];\n if (enumSource) {\n const kv = enumSource.find(x => x.Value === data);\n if (kv) {\n if (TranslateHelper.TranslatorInstance) {\n result += TranslateHelper.TranslatorInstance.instant(kv.Caption);\n } else {\n result += kv.Caption;\n }\n } else {\n result += data;\n }\n } else {\n result += data;\n }\n } else if (column.Type2 === \"a0c232a9-4ab7-444c-a7e2-d23899a5673b\" && typeof data === 'object') {\n result += TranslatedString.GetTranslation(data);\n } else {\n result += data;\n }\n }\n if (column.Suffix) {\n result += column.Suffix;\n }\n }\n return result;\n }\n\n transform(row, column, enumsources) {\n return DataTableCellContentPipe.getText(row.data[column.Name], column, enumsources);\n }\n}\n\n@Pipe({ name: 'DataTableIconCellContent', pure: false })\nexport class DataTableIconCellContentPipe implements PipeTransform {\n transform(row, column, enumsources) {\n const data = row.data[column.Name];\n let retVal = '';\n if (column) {\n if (column.IconMapping && data !== null && typeof (data) !== 'undefined') {\n if (column.IsEnum) {\n retVal = column.IconMapping[data];\n } else if (['a2eb35c4-56d5-4acc-a58e-ef855cb5086b', 'c02230ee-05fb-46d2-ab58-5b9dde1f32d5', 'a4299f61-eb3f-4b29-8c4e-144458d17048'].indexOf(column.Type2) > -1) {\n const numVal = Number(data);\n if (!isNaN(numVal)) {\n Object.keys(column.IconMapping).some(k => {\n const splits = k.split('|');\n let from = Number.NaN;\n let to = Number.NaN;\n if (splits[0]) {\n from = Number(splits[0]);\n }\n if (splits.length > 1 && splits[1]) {\n to = Number(splits[1]);\n }\n if (isNaN(from)) {\n if (!isNaN(to) && numVal < to) {\n retVal = column.IconMapping[k];\n return true;\n }\n } else {\n if (isNaN(to)) {\n if (from <= numVal) {\n retVal = column.IconMapping[k];\n return true;\n }\n } else {\n if (from <= numVal && numVal < to) {\n retVal = column.IconMapping[k];\n return true;\n }\n }\n }\n return false;\n });\n }\n } else if (column.Type2 == 'cfcb4295-9d1e-49b4-b466-3fe74d1b0c69') {\n const locMom = moment(data);\n if (locMom.isValid()) {\n Object.keys(column.IconMapping).some(k => {\n const splits = k.split('|');\n let from;\n let to;\n if (splits[0]) {\n from = moment(splits[0]);\n }\n if (splits.length > 1 && splits[1]) {\n to = moment(splits[1]);\n }\n if (from && from.isValid()) {\n if (to && to.isValid()) {\n if (locMom.isSameOrAfter(from) && locMom.isBefore(to)) {\n retVal = column.IconMapping[k];\n return true;\n }\n } else {\n if (locMom.isSameOrAfter(from)) {\n retVal = column.IconMapping[k];\n return true;\n }\n }\n } else {\n if (to && to.isValid()) {\n if (locMom.isBefore(to)) {\n retVal = column.IconMapping[k];\n return true;\n }\n }\n }\n return false;\n });\n }\n } else {\n const text = DataTableCellContentPipe.getText(data, column, enumsources);\n if (text) {\n retVal = column.IconMapping[text];\n }\n }\n }\n if (!retVal) {\n retVal = column.DefaultIcon;\n }\n }\n return retVal;\n }\n}\n\n//#endregion\n//#region TextArea\n@Pipe({ name: 'TextareaStyle', pure: true })\nexport class TextareaStylePipe implements PipeTransform {\n transform(BaseStyle, element) {\n\n\n switch (element.Resizeable) {\n case Resizeable.none:\n BaseStyle['resize'] = 'none';\n break;\n case Resizeable.horizontal:\n BaseStyle['resize'] = 'horizontal';\n break;\n case Resizeable.vertical:\n BaseStyle['resize'] = 'vertical';\n break;\n default:\n BaseStyle['resize'] = 'both';\n break;\n }\n return BaseStyle;\n }\n}\n//#endregion\n//#endregion\n@Pipe({ name: 'DisplayName', pure: true })\nexport class DisplayNamePipe implements PipeTransform {\n transform(element, CaptionGetter) {\n if (Array.isArray(element)) {\n let retVal = '';\n if (CaptionGetter) {\n for (let i = 0; i < element.length; i++) {\n const item = element[i];\n if (i > 0) {\n retVal += ', ';\n }\n retVal += CaptionGetter.GetCaption(item);\n }\n }\n return retVal;\n } else {\n if (CaptionGetter) {\n return CaptionGetter.GetCaption(element);\n }\n }\n return '';\n }\n}\n\n@Pipe({ name: 'DisplayMember', pure: true })\nexport class DisplayMemberPipe implements PipeTransform {\n transform(element, displayMemberPath) {\n if (Array.isArray(element)) {\n const list = [];\n if (displayMemberPath) {\n element.forEach(x => {\n if (typeof x === 'object') {\n list.push(x[displayMemberPath]);\n } else {\n list.push(x);\n }\n });\n } else {\n list.push(...element);\n }\n return list.join(', ');\n } else {\n if (displayMemberPath && typeof element === 'object') {\n return element[displayMemberPath];\n } else {\n return '' + element;\n }\n }\n }\n}\n\n@Pipe({ name: 'ComboDisplayName', pure: true })\nexport class ComboDisplayNamePipe implements PipeTransform {\n transform(element, CaptionGetter) {\n if (CaptionGetter && element) {\n if (Array.isArray(element)) {\n let retVal = '';\n for (let i = 0; i < element.length; i++) {\n const item = element[i];\n if (i > 0) {\n retVal += ', ';\n }\n retVal += CaptionGetter.GetCaption(item.data);\n }\n return retVal;\n } else {\n return CaptionGetter.GetCaption(element.data);\n }\n }\n return '';\n }\n}\n\n@Pipe({ name: 'IconStyle', pure: true })\nexport class IconStylePipe implements PipeTransform {\n transform(LayoutElement, RefreshCount) {\n const result = {};\n result['width'] = '24px';\n result['height'] = '24px';\n const iconWidth = LayoutElement.IconWidth;\n if (iconWidth) {\n const widthStyle = LayoutUnit.ToStyle(iconWidth);\n if (widthStyle) {\n result['width'] = widthStyle;\n }\n }\n const iconHeight = LayoutElement.IconHeight;\n if (iconHeight) {\n const heightStyle = LayoutUnit.ToStyle(iconHeight);\n if (heightStyle) {\n result['height'] = heightStyle;\n }\n }\n\n //#region IconPadding\n if (LayoutElement.IconPadding) {\n let style = LayoutUnit.ToStyle(LayoutElement.IconPadding.Left);\n if (LayoutElement.IconPadding.Left && style) {\n result['padding-left'] = style;\n }\n style = LayoutUnit.ToStyle(LayoutElement.IconPadding.Top);\n if (LayoutElement.IconPadding.Top && style) {\n result['padding-top'] = style;\n }\n style = LayoutUnit.ToStyle(LayoutElement.IconPadding.Right);\n if (LayoutElement.IconPadding.Right && style) {\n result['padding-right'] = style;\n }\n style = LayoutUnit.ToStyle(LayoutElement.IconPadding.Bottom);\n if (LayoutElement.IconPadding.Bottom && style) {\n result['padding-left'] = style;\n }\n }\n //#endregion\n\n\n //#region IconPadding\n if (LayoutElement.IconMargin) {\n let style = LayoutUnit.ToStyle(LayoutElement.IconMargin.Left);\n if (LayoutElement.IconMargin.Left && style) {\n result['margin-left'] = style;\n }\n style = LayoutUnit.ToStyle(LayoutElement.IconMargin.Top);\n if (LayoutElement.IconMargin.Top && style) {\n result['margin-top'] = style;\n }\n style = LayoutUnit.ToStyle(LayoutElement.IconMargin.Right);\n if (LayoutElement.IconMargin.Right && style) {\n result['margin-right'] = style;\n }\n style = LayoutUnit.ToStyle(LayoutElement.IconMargin.Bottom);\n if (LayoutElement.IconMargin.Bottom && style) {\n result['margin-bottom'] = style;\n }\n }\n //#endregion\n\n //#region IconAlignment\n switch (LayoutElement.IconAlignment) {\n case Alignment.Start:\n result['align-self'] = 'flex-start';\n break;\n case Alignment.End:\n result['align-self'] = 'flex-end';\n break;\n case Alignment.Center:\n result['align-self'] = 'center';\n break;\n case Alignment.Stretch:\n result['align-self'] = 'stretch';\n break;\n }\n //#endregion\n\n return result;\n }\n}\n\n@Pipe({ name: 'ConvertLayoutElement', pure: true })\nexport class ConvertLayoutElementPipe implements PipeTransform {\n transform(element) {\n const retVal = new LayoutElement();\n retVal.init(element);\n return retVal;\n }\n}\n\n@Pipe({ name: 'ContentPosition', pure: true })\nexport class ContentPositionPipe implements PipeTransform {\n LayoutElement;\n StyleRef;\n WorkflowStyles;\n MediaSource: any;\n transform(LayoutElement, RefreshCount) {\n const result = {};\n this.LayoutElement = LayoutElement;\n if (LayoutElement && LayoutElement.Element) {\n this.StyleRef = LayoutElement.Element.StyleRef;\n this.WorkflowStyles = LayoutElement.Element.WorkflowStyles;\n this.MediaSource = LayoutElement.Element.MediaSource;\n\n if (this.StyleRef) {\n this.BuildStyle(this.StyleRef, result);\n }\n if (LayoutElement) {\n this.BuildStyle(LayoutElement, result);\n }\n if (this.WorkflowStyles && this.WorkflowStyles.length > 0) {\n this.WorkflowStyles.forEach(x => {\n this.BuildStyle(x, result);\n });\n }\n }\n return result;\n }\n BuildStyle(element, result) {\n //#region TextAlignment\n switch (element.HorizontalTextAlignment) {\n case Alignment.Center:\n result['text-align'] = 'center';\n break;\n case Alignment.End:\n result['text-align'] = 'end';\n break;\n case Alignment.Start:\n result['text-align'] = 'start';\n break;\n case Alignment.Stretch:\n result['text-align'] = 'justify';\n break;\n }\n if (element.ElementType === 'checkbox' || element.ElementType === 'icon' || element.ElementType === 'textblock') {\n switch (element.VerticalTextAlignment) {\n case Alignment.Start:\n result['align-items'] = 'start';\n break;\n case Alignment.End:\n result['align-items'] = 'end';\n break;\n case Alignment.Center:\n result['align-items'] = 'center';\n break;\n }\n } else {\n switch (element.VerticalTextAlignment) {\n case Alignment.Start:\n result['vertical-align'] = 'top';\n break;\n case Alignment.End:\n result['vertical-align'] = 'bottom';\n break;\n case Alignment.Center:\n result['vertical-align'] = 'middle';\n break;\n }\n }\n //#endregion\n }\n}\n\n@Pipe({ name: 'LayoutItemHover', pure: true })\nexport class LayoutItemHoverPipe implements PipeTransform {\n transform(Selected, Hover) {\n if (Selected) {\n return 'layoutitem-edit-overlay-selected';\n }\n if (Hover) {\n return 'layoutitem-edit-overlay-hover';\n }\n return null;\n }\n}\n\n@Pipe({ name: 'GridItemHover', pure: true })\nexport class GridItemHoverPipe implements PipeTransform {\n transform(Selected, Hover) {\n if (Selected) {\n return 'editItem';\n }\n if (Hover) {\n return '';\n }\n return null;\n }\n}\n\n@Pipe({ name: 'TextBoxStyle', pure: true })\nexport class TextBoxStylePipe implements PipeTransform {\n transform(LayoutElement, RefreshCount) {\n const result = {};\n if (LayoutElement && LayoutElement.Element) {\n const styleRef = LayoutElement.Element.StyleRef;\n if (styleRef && Object.keys(styleRef).length > 0) {\n this.BuildStyle(styleRef, result);\n }\n this.BuildStyle(LayoutElement, result);\n const wfStyles = LayoutElement.Element.WorkflowStyles;\n if (wfStyles && wfStyles.length > 0) {\n wfStyles.forEach(x => {\n this.BuildStyle(x, result);\n });\n }\n }\n return result;\n }\n BuildStyle(element, result) {\n if (element.Font && element.Font.Underline != null) {\n if (element.Font.Underline) {\n result['text-decoration'] = 'underline';\n } else {\n delete result['text-decoration'];\n }\n }\n if (element.Cursor) {\n result['cursor'] = element.Cursor;\n }\n }\n}\n\n@Pipe({ name: 'PropertyGroupStyle', pure: true })\nexport class PropertyGroupStylePipe implements PipeTransform {\n transform(value) {\n let retVal:any = {}\n \n if (value && value.PropertyGroup) {\n let item = value.PropertyGroup;\n if (item.Display == PropertyGroupDisplay.Grid) {\n retVal.display = 'grid';\n if (item.Columns) {\n retVal['grid-template-columns'] = \"\";\n item.Columns.forEach((col) => {\n retVal['grid-template-columns'] += col+\" \";\n });\n }\n if (item.Rows) {\n retVal['grid-template-rows'] = \"\";\n item.Rows.forEach((row) => {\n retVal['grid-template-rows'] += row+\" \";\n });\n }\n }\n if (item.Display == PropertyGroupDisplay.Flex) {\n retVal.display = 'flex';\n }\n }\n return retVal;\n }\n}\n@Pipe({ name: 'ShadowPreview', pure: false })\nexport class ShadowPreviewPipe implements PipeTransform {\n transform(BoxShadow: any) {\n let result = {};\n if (BoxShadow) {\n if (Array.isArray(BoxShadow) && BoxShadow.length > 0) {\n let shadowtext = '';\n for (let i = 0; i < BoxShadow.length; i++) {\n const item = BoxShadow[i];\n let line = item.ShiftRight + 'px ' + item.ShiftDown + 'px ' + item.Blur + 'px ' + item.Spread + 'px ';\n if (item.Opacity != null) {\n let opa = item.Opacity;\n if (typeof item.Opacity != 'number') {\n opa = parseFloat(item.Opacity)\n }\n if (opa == 1) {\n line += item.Color;\n } else {\n let color = Color.FromHex(item.Color);\n color.A = Math.round(opa * 255);\n line += Color.GetStyleText(color);\n }\n } else {\n line += item.Color;\n }\n if ((i + 1) < BoxShadow.length) {\n line += ', ';\n }\n shadowtext += line;\n }\n if (shadowtext) {\n result['box-shadow'] = shadowtext;\n }\n }else if (typeof BoxShadow == 'object') {\n const item = BoxShadow;\n let line = item.ShiftRight + 'px ' + item.ShiftDown + 'px ' + item.Blur + 'px ' + item.Spread + 'px ';\n if (item.Opacity != null) {\n let opa = item.Opacity;\n if (typeof item.Opacity != 'number') {\n opa = parseFloat(item.Opacity)\n }\n if (opa == 1) {\n line += item.Color;\n } else {\n let color = Color.FromHex(item.Color);\n color.A = Math.round(opa * 255);\n line += Color.GetStyleText(color);\n }\n } else {\n line += item.Color;\n }\n \n result['box-shadow'] = line;\n }\n }\n \n return result;\n }\n\n}\n@Pipe({ name: 'SectionStyle', pure: true })\nexport class SectionStylePipe implements PipeTransform {\n transform(value) {\n let retVal: any = {}\n\n if (value) {\n if (value.Display == PropertyGroupDisplay.Grid) {\n retVal.display = 'grid';\n if (value.Columns) {\n retVal['grid-template-columns'] = \"\";\n value.Columns.forEach((col) => {\n retVal['grid-template-columns'] += col + \" \";\n });\n }\n if (value.Rows) {\n retVal['grid-template-rows'] = \"\";\n value.Rows.forEach((row) => {\n retVal['grid-template-rows'] += row + \" \";\n });\n }\n }\n if (value.Display == PropertyGroupDisplay.Flex) {\n retVal.display = 'flex';\n }\n }\n return retVal;\n }\n}\n@Pipe({ name: 'GenericItemLabelStyle', pure: true })\nexport class GenericItemLabelStylePipe implements PipeTransform {\n transform(item) {\n let retVal: any = {};//{ 'margin-right': (i + 1) % Columns > 0 ? '5px' : '0px', 'margin-left': (i + 1) % Columns == 0 ? '5px' : '0px' }\n\n if (item) {\n if (item.Label) {\n switch (item.LabelPosition) {\n case MenuTabLabelPosition.Top:\n retVal['padding-bottom'] = '5px';\n break;\n case MenuTabLabelPosition.Left:\n retVal['padding-right'] = '5px';\n break;\n case MenuTabLabelPosition.Right:\n retVal['padding-left'] = '5px';\n break;\n case MenuTabLabelPosition.Bottom:\n retVal['padding-top'] = '5px';\n break;\n default:\n retVal['padding-bottom'] = '5px';\n break;\n }\n if (item.LabelMinSize) {\n retVal['min-width'] = item.LabelMinSize;\n }\n }\n }\n return retVal;\n }\n}\n@Pipe({ name: 'GenericItemStyle', pure: true })\nexport class GenericItemStylePipe implements PipeTransform {\n transform(item) {\n let retVal: any = {};//{ 'margin-right': (i + 1) % Columns > 0 ? '5px' : '0px', 'margin-left': (i + 1) % Columns == 0 ? '5px' : '0px' }\n\n if (item) {\n retVal['overflow'] = 'hidden';\n retVal['padding'] = '5px';\n if (item.Row) {\n if (item.RowSpan) {\n retVal['grid-row-start'] = item.Row;\n retVal['grid-row-end'] = item.Row + item.RowSpan;\n } else {\n retVal['grid-row'] = item.Row;\n }\n }\n if (item.Column) {\n if (item.ColSpan) {\n retVal['grid-column-start'] = item.Column;\n retVal['grid-column-end'] = item.Column + item.ColSpan;\n } else {\n retVal['grid-column'] = item.Column;\n }\n }\n if (item.Label && item.LabelPosition) {\n retVal['display'] = 'flex';\n switch (item.LabelPosition) {\n case MenuTabLabelPosition.Top:\n retVal['flex-direction'] = 'column';\n retVal['align-items'] = 'stretch';\n break;\n case MenuTabLabelPosition.Left:\n retVal['flex-direction'] = 'row';\n retVal['align-items'] = 'center';\n break;\n case MenuTabLabelPosition.Right:\n retVal['flex-direction'] = 'row-reverse';\n retVal['align-items'] = 'center';\n break;\n case MenuTabLabelPosition.Bottom:\n retVal['flex-direction'] = 'column-reverse';\n retVal['align-items'] = 'stretch';\n break;\n }\n }\n }\n return retVal;\n }\n}\n\n@Pipe({ name: 'BootstrapGridItemClass', pure: true })\nexport class BootstrapGridItemClassPipe implements PipeTransform {\n transform(item, RefreshCount) {\n let retVal = \"\";\n if (item.ClassDefinitions) {\n let count = item.ClassDefinitions.length\n for (let i = 0; i < count; i++) {\n let cls = item.ClassDefinitions[i];\n if (cls.Column) {\n retVal += 'col-' + cls.Column;\n }\n if (cls.ColumnOffset) {\n retVal += 'col-offset-' + cls.ColumnOffset;\n }\n if (cls.ResponsiveSize != null) {\n retVal += ' ' + PrimeFlexSizes[cls.ResponsiveSize];\n if (i + 1 < count) {\n retVal += ':'\n }\n }\n }\n }\n return retVal;\n }\n}\n@Pipe({ name: 'CSSClass', pure: true })\nexport class CSSClassPipe implements PipeTransform {\n transform(item, RefreshCount) {\n let retVal = \"\";\n if (item.CSSClasses && item.CSSClasses.length > 0) {\n item.CSSClasses.forEach((css) => {\n retVal += 'customerclass_' + css.ClassName + ' ';\n })\n }\n if (item.UseBoxed) {\n retVal += 'p-container';\n if (item.BoxedSize != null) {\n retVal += '-' + PrimeFlexSizes[item.BoxedSize] + ' ';\n }\n }\n return retVal;\n }\n}","export const TaskRegistry = new Map();\n\nexport class TaskRegistryEntry {\n ID: string;\n Caption: string;\n SettingsControl;\n SettingsHelper: ATaskSettingsHelper;\n Executer;\n TaskType: TaskType;\n}\n\nexport abstract class ATaskSettingsHelper {\n abstract getCaption(task, dd): string;\n canExecute(reportObject): boolean {\n return true;\n }\n\n async Gettooltip(task: any, dd: any): Promise { return '' }; \n}\n\nexport enum TaskType {\n DataTask,\n FormatTask\n}\n","import { Observable, Subject } from 'rxjs';\nimport { LayoutEditDialog } from '../components/dialogs/layouteditdialog/layout.edit.dialog';\nimport { MessageBoxHelper } from '../components/dialogs/messagebox/messagebox.dialog';\nimport { MessageBoxButtons } from '../models/enums/messageboxbuttons.enum';\nimport { MessageBoxIcon } from '../models/enums/messageboxicon.enum';\nimport { MessageBoxResult } from '../models/enums/messageboxresult.enum';\nimport { ILayoutEditClient, LayoutEditService } from '../models/layout/layout.edit.client';\nimport { MetaService } from '../services/meta.service';\nimport { UsersService } from '../services/users.service';\nimport { TranslateFormatText } from './array.helpers';\nimport { LayoutHelper } from './layout.helper';\nimport { NotificationHelper } from './notification.helper';\n\nexport class TemplateEditClient implements ILayoutEditClient {\n private ViewModeValue = true;\n get ViewMode(): boolean {\n return this.ViewModeValue;\n }\n private CanCheckOutValue = false;\n get CanCheckOut(): boolean {\n return this.CanCheckOutValue;\n }\n private CanSaveValue = false;\n get CanSave(): boolean {\n return this.CanSaveValue;\n }\n get Layout() {\n return this.layout;\n }\n\n private TemplateInfoChangedSubject: Subject = new Subject();\n TemplateInfoChanged: Observable = this.TemplateInfoChangedSubject;\n\n private TempLayout;\n\n constructor(private layout, private templateInfo, private service: MetaService) {\n if (layout) {\n LayoutHelper.CheckTemplate(layout);\n this.TempLayout = LayoutHelper.ParseLayout(layout);\n }\n if (templateInfo && templateInfo.CanEditInfo && templateInfo.CanEditInfo.CanEdit) {\n const user = UsersService.ActiveUser.getValue();\n if (user && templateInfo.CanEditInfo.EditUserID == user.SID) {\n this.CanSaveValue = true;\n this.ViewModeValue = false;\n } else {\n LayoutEditDialog.ShowDialog((x) => {\n if (typeof x === 'boolean' && x) {\n this.onCheckOut();\n } else {\n this.CanCheckOutValue = true;\n LayoutEditService.LayoutEditClientChange.next();\n }\n });\n }\n }\n }\n\n onCheckOut() {\n if (this.templateInfo && this.service && this.layout) {\n this.service.RequestTemplateLock(this.layout).subscribe(x => {\n if (x && x.CanEditInfo) {\n this.templateInfo = x;\n this.TemplateInfoChangedSubject.next(x);\n this.TempLayout = LayoutHelper.ParseLayout(this.layout);\n if (x.CanEditInfo.CanEdit) {\n const text = new TranslateFormatText('@@Template \\'{0}\\' erfolgreich gespeichert.');\n text.FormatParams.push(x.Caption);\n NotificationHelper.Success(text, new TranslateFormatText('@@Template speichern'));\n this.ViewModeValue = false;\n this.CanCheckOutValue = false;\n this.CanSaveValue = true;\n LayoutEditService.LayoutEditClientChange.next();\n } else {\n const text = new TranslateFormatText(x.CanEditInfo.NewVersion ? '@@AlreadySavedBy{0}' : '@@LockedBy{0}');\n text.FormatParams.push(x.CanEditInfo.EditUserName);\n MessageBoxHelper.ShowDialog(text, new TranslateFormatText('@@LockedObject'),\n MessageBoxButtons.Ok, MessageBoxIcon.Information);\n }\n }\n });\n }\n }\n\n onSave() { \n return new Promise(resolve => {\n if (this.templateInfo && this.service && this.layout) {\n this.service.SaveTemplateToChangeLog(this.layout).subscribe(x => {\n if (x) {\n this.templateInfo = x;\n this.TemplateInfoChangedSubject.next(x);\n this.TempLayout = LayoutHelper.ParseLayout(this.layout);\n const text = new TranslateFormatText('@@Template \\'{0}\\' erfolgreich gespeichert.');\n text.FormatParams.push(x.Caption);\n NotificationHelper.Success(text, new TranslateFormatText('@@Template speichern'));\n } else {\n NotificationHelper.Error(new TranslateFormatText('@@AlreadySavedByAdmin'),\n new TranslateFormatText('@@Template speichern'));\n }\n resolve();\n });\n } else {\n resolve();\n }\n });\n }\n\n clear() {\n return new Promise(resolve => {\n if (this.CanSaveValue && this.templateInfo) {\n let askForSave = this.templateInfo.IsNew == true;\n if (!askForSave && this.layout) {\n const changes = LayoutHelper.CompareParsed(this.TempLayout, LayoutHelper.ParseLayout(this.layout), {\n CreateChangesTree: false,\n DeepComparison: false\n });\n askForSave = changes.HasChanges;\n }\n if (askForSave) {\n MessageBoxHelper.ShowDialog(new TranslateFormatText('@@Wollen Sie vorher speichern?'),\n new TranslateFormatText('@@Speichern'), MessageBoxButtons.YesNo, MessageBoxIcon.Question).then(x => {\n if (x === MessageBoxResult.Yes) {\n this.onSave().then(() => {\n this.TemplateInfoChangedSubject.complete();\n resolve();\n });\n } else {\n this.TemplateInfoChangedSubject.complete();\n resolve();\n }\n });\n } else {\n this.TemplateInfoChangedSubject.complete();\n resolve();\n }\n } else {\n this.TemplateInfoChangedSubject.complete();\n resolve();\n }\n });\n }\n}\n","import { MaterialCssVariables, MaterialCssVarsService } from 'angular-material-css-vars';\nimport { plainToClass } from 'class-transformer';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { CacheService } from '../cache/cache.service';\nimport { LayoutUnit } from '../models/basic/layoutunit.model';\nimport { CSSVarType } from '../models/enums/cssvartype.enum';\nimport { Color } from '../models/style/color.model';\nimport { Theme } from '../models/style/theme.model';\nimport { AppBuilderSettingsService } from '../services/appbuildersettings.service';\nimport { LayoutService } from '../services/layout.service';\nimport { MediaService } from '../services/media.service';\nimport { MetaService } from '../services/meta.service';\n\n// @dynamic\nexport class ThemeHelper {\n private static materialCssVarsService: MaterialCssVarsService;\n private static metaService: MetaService;\n private static appbuilderService: AppBuilderSettingsService;\n\n public static AcitveTheme: Theme;\n public static ActiveThemeChartPalette: string[];\n public static ActiveThemeChanged: Subject = new Subject();\n public static Themes;\n public static CustomFontSizes;\n public static CustomFonts;\n public static CustomFontsChanged: BehaviorSubject = new BehaviorSubject(null);\n public static CustomFontsMap;\n public static ThemesMap;\n public static Initialize(\n materialCssVarsService: MaterialCssVarsService,\n metaService: MetaService,\n appbuilderService: AppBuilderSettingsService\n ) {\n this.materialCssVarsService = materialCssVarsService;\n this.metaService = metaService;\n this.appbuilderService = appbuilderService;\n this.LoadThemes();\n }\n public static CSSFiles;\n private static CSSStyles = [];\n public static AvailableClassesSub: BehaviorSubject = new BehaviorSubject(null);\n private static insertAt(str, sub, pos) {\n return `${str.slice(0, pos)}${sub}${str.slice(pos)}`;\n }\n private static setCSS(files) {\n ThemeHelper.CSSFiles = files;\n const availableClasses:Array<{ClassName:string}> = [];\n if (files && files.length > 0) {\n const head = document.getElementsByTagName('head')[0];\n if (ThemeHelper.CSSStyles) {\n ThemeHelper.CSSStyles.forEach((style) => {\n try {\n head.removeChild(style);\n } catch {}\n });\n }\n if (!ThemeHelper.CSSStyles) {\n ThemeHelper.CSSStyles = [];\n }\n files.forEach((file) => {\n let style = document.createElement('style');\n style.type = 'text/css';\n\n let cssRules = ThemeHelper.ParseCSS(file.Text);\n if (cssRules && cssRules.length > 0) {\n for (let i = 0; i < cssRules.length; i++) {\n let rule = cssRules[i];\n if (rule['selectorText']) {\n let dotCount = (rule['selectorText'].match(/\\./g) || []).length;\n if (dotCount == 1) {\n availableClasses.push({\n ClassName: rule['selectorText'].substring(1),\n });\n }\n let rep = ThemeHelper.insertAt(rule['selectorText'], 'customerclass_', 1);\n file.Text = file.Text.replaceAll(rule['selectorText'], rep);\n }\n }\n }\n style.appendChild(document.createTextNode(file.Text));\n ThemeHelper.CSSStyles.push(style);\n ThemeHelper.AvailableClassesSub.next(availableClasses);\n head.appendChild(style);\n });\n }\n }\n public static LoadCSS(ids) {\n this.metaService.GetCustomCSSByIDs(ids).subscribe((files) => {\n this.setCSS(files)\n });\n }\n public static LoadCSSforDefault() {\n this.metaService.GetAllCustomCSS().subscribe(files => {\n this.setCSS(files) \n }) \n }\n private static ParseCSS(styleContent) {\n var doc = document.implementation.createHTMLDocument(''),\n styleElement = document.createElement('style');\n\n styleElement.textContent = styleContent;\n // the style will only be parsed once it is added to a document\n doc.body.appendChild(styleElement);\n\n return styleElement.sheet.cssRules;\n }\n public static LoadThemes() {\n return new Promise((resolve, reject) => {\n this.Themes = null;\n this.ThemesMap = {};\n this.metaService.GetAllThemes().subscribe((themes) => {\n this.Themes = themes;\n themes.forEach((theme) => {\n theme = plainToClass(Theme, theme);\n this.ThemesMap[theme.SID] = theme;\n });\n this.appbuilderService.ReadAll().subscribe((result) => {\n if (result && result.length > 0) {\n ThemeHelper.SetAppBuilderTheme(result[0]);\n }\n });\n resolve(true);\n });\n });\n }\n public static ActiveFontStyle = {};\n public static SetTheme(theme: Theme) {\n if (theme == null) {\n theme = Theme.GenerateFallback();\n }\n this.materialCssVarsService.setDarkTheme(theme.IsDarkTheme);\n if (theme.IsDarkTheme) {\n document.documentElement.style.setProperty('--surface-b', '#17212f');\n document.documentElement.style.setProperty('--paper-bg', '#393939');\n document.documentElement.style.setProperty('--text-color', 'rgba(255, 255, 255, 0.87)');\n } else {\n document.documentElement.style.setProperty('--surface-b', '#f8f9fa');\n document.documentElement.style.setProperty('--paper-bg', '#EFEFEF');\n document.documentElement.style.setProperty('--text-color', '#495057');\n }\n if (theme.Font) {\n if (theme.Font.Bold != null) {\n if (theme.Font.Bold) {\n document.documentElement.style.setProperty('--base-font-weight', 'bold');\n this.ActiveFontStyle['font-weight'] = 'bold';\n } else {\n document.documentElement.style.removeProperty('--base-font-weight');\n this.ActiveFontStyle['font-weight'] = 'normal';\n }\n }\n if (theme.Font.Italic != null) {\n if (theme.Font.Italic) {\n document.documentElement.style.setProperty('--base-font-style', 'italic');\n this.ActiveFontStyle['font-style'] = 'italic';\n } else {\n document.documentElement.style.removeProperty('--base-font-style');\n delete this.ActiveFontStyle['font-style'];\n }\n }\n if (theme.Font.Underline != null) {\n if (theme.Font.Underline) {\n document.documentElement.style.setProperty('--base-text-decoration', 'underline');\n this.ActiveFontStyle['text-decoration'] = 'underline';\n } else {\n document.documentElement.style.removeProperty('--base-text-decoration');\n delete this.ActiveFontStyle['text-decoration'];\n }\n }\n if (theme.Font.FontFamilyName != null) {\n if (theme.Font.FontFamilyName) {\n document.documentElement.style.setProperty('--base-font-family', theme.Font.FontFamilyName);\n this.ActiveFontStyle['font-family'] = theme.Font.FontFamilyName;\n } else {\n document.documentElement.style.setProperty('--base-font-family','serif');\n // delete this.ActiveFontStyle['font-family'];\n }\n }\n if (theme.Font.FontSize != null) {\n if (theme.Font.FontSize) {\n this.ActiveFontStyle['font-size'] = theme.Font.FontSize + 'pt';\n document.documentElement.style.setProperty('--base-font-size', this.ActiveFontStyle['font-size']);\n } else {\n document.documentElement.style.setProperty('--base-font-size','12px');\n // delete this.ActiveFontStyle['font-size'];\n }\n }\n } else {\n document.documentElement.style.removeProperty('--base-font-weight');\n document.documentElement.style.removeProperty('--base-font-size');\n document.documentElement.style.removeProperty('--base-font-family');\n document.documentElement.style.removeProperty('--base-text-decoration');\n document.documentElement.style.removeProperty('--base-font-style');\n\n delete this.ActiveFontStyle['font-weight'];\n delete this.ActiveFontStyle['font-style'];\n delete this.ActiveFontStyle['text-decoration'];\n delete this.ActiveFontStyle['font-family'];\n delete this.ActiveFontStyle['font-size'];\n }\n\n this.AcitveTheme = theme;\n this.ActiveThemeChanged.next(theme);\n if (theme.Primary) {\n const primHex = Color.HexFromColor(theme.Primary);\n this.materialCssVarsService.setPrimaryColor(primHex);\n document.documentElement.style.setProperty('--primary-color', primHex);\n document.documentElement.style.setProperty('--primary-gradient-bg', theme.PrimaryGradient);\n } else {\n document.documentElement.style.setProperty('--primary-color', '#4b7bd6ff');\n document.documentElement.style.setProperty('--primary-gradient-bg', 'linear-gradient(180deg, #76A4FC 0%, #626ED1 100%)');\n }\n if (theme.Accent) {\n const accentHex = Color.HexFromColor(theme.Accent);\n this.materialCssVarsService.setAccentColor(accentHex);\n document.documentElement.style.setProperty('--accent-color', accentHex);\n } else {\n const accentHex = '#05617dff';\n this.materialCssVarsService.setAccentColor(accentHex);\n document.documentElement.style.setProperty('--accent-color', accentHex);\n }\n if (theme.Warn) {\n const warnHex = Color.HexFromColor(theme.Warn);\n this.materialCssVarsService.setWarnColor(warnHex);\n document.documentElement.style.setProperty('--warn-color', warnHex);\n } else {\n const warnHex = '#c70a33ff';\n this.materialCssVarsService.setWarnColor(warnHex);\n document.documentElement.style.setProperty('--warn-color', warnHex);\n }\n if (!theme.IsDarkTheme) {\n if (theme.Background) {\n document.documentElement.style.setProperty('--background-color', Color.GetStyleText(theme.Background));\n } else {\n document.documentElement.style.setProperty('--background-color', '#ededed');\n }\n }\n if (theme.IsDarkTheme) {\n if (theme.DarkmodeBackground) {\n document.documentElement.style.setProperty('--background-color', Color.GetStyleText(theme.DarkmodeBackground));\n } else {\n }\n }\n if (!theme.IsDarkTheme) {\n if (theme.PaperColor) {\n document.documentElement.style.setProperty('--paper-bg', Color.GetStyleText(theme.PaperColor));\n } else {\n document.documentElement.style.setProperty('--paper-bg', '#f5f5f5ff');\n }\n }\n if (theme.IsDarkTheme) {\n if (theme.DarkmodePaperColor) {\n document.documentElement.style.setProperty('--paper-bg', Color.GetStyleText(theme.DarkmodePaperColor));\n } else {\n document.documentElement.style.setProperty('--paper-bg', '#393939ff');\n }\n }\n if (theme.BorderColor) {\n document.documentElement.style.setProperty('--border-color', Color.GetStyleText(theme.BorderColor));\n } else {\n document.documentElement.style.setProperty('--border-color', '#f5f5f5ff');\n }\n if (theme.BorderThickness?.Value > 0) {\n document.documentElement.style.setProperty('--border-thickness', LayoutUnit.ToStyle(theme.BorderThickness));\n } else {\n document.documentElement.style.setProperty('--border-thickness', '1px');\n }\n if (\n theme.BorderRadiusBottomLeft?.Value > 0 ||\n theme.BorderRadiusBottomRight?.Value > 0 ||\n theme.BorderRadiusTopLeft?.Value > 0 ||\n theme.BorderRadiusTopRight?.Value > 0\n ) {\n if (theme.BorderRadiusBottomLeft) {\n document.documentElement.style.setProperty('--border-radius-bottom-left', LayoutUnit.ToStyle(theme.BorderRadiusBottomLeft));\n }\n if (theme.BorderRadiusBottomRight) {\n document.documentElement.style.setProperty('--border-radius-bottom-right', LayoutUnit.ToStyle(theme.BorderRadiusBottomRight));\n }\n if (theme.BorderRadiusTopLeft) {\n document.documentElement.style.setProperty('--border-radius-top-left', LayoutUnit.ToStyle(theme.BorderRadiusTopLeft));\n }\n if (theme.BorderRadiusTopRight) {\n document.documentElement.style.setProperty('--border-radius-top-right', LayoutUnit.ToStyle(theme.BorderRadiusTopRight));\n }\n } else {\n document.documentElement.style.setProperty('--border-radius-bottom-left', '6px');\n document.documentElement.style.setProperty('--border-radius-bottom-right', '6px');\n document.documentElement.style.setProperty('--border-radius-top-left', '6px');\n document.documentElement.style.setProperty('--border-radius-top-right', '6px');\n }\n if (theme.BorderColor) {\n document.documentElement.style.setProperty('--border-color', Color.GetStyleText(theme.BorderColor));\n }\n if (theme.BorderFocusColor) {\n document.documentElement.style.setProperty('--border-focus-color', Color.GetStyleText(theme.BorderFocusColor));\n }\n if (theme.BorderHoverColor) {\n document.documentElement.style.setProperty('--border-hover-color', Color.GetStyleText(theme.BorderHoverColor));\n }\n if (theme.ShadowColor) {\n document.documentElement.style.setProperty('--shadow-color', Color.GetStyleText(theme.ShadowColor));\n }\n if (!theme.IsDarkTheme) {\n if (theme.Foreground) {\n document.documentElement.style.setProperty('--foreground-color', Color.GetStyleText(theme.Foreground));\n } else {\n document.documentElement.style.setProperty('--foreground-color', '#49454fff');\n }\n }\n if (theme.IsDarkTheme) {\n if (theme.DarkmodeForegroundText) {\n document.documentElement.style.setProperty('--foreground-text-color', Color.GetStyleText(theme.DarkmodeForegroundText));\n document.documentElement.style.setProperty('--foreground-color', Color.GetStyleText(theme.DarkmodeForegroundText));\n } else {\n document.documentElement.style.setProperty('--foreground-text-color', '#ffffffff');\n document.documentElement.style.setProperty('--foreground-color', '#ffffffff');\n }\n }\n if (!theme.IsDarkTheme) {\n if (theme.ForegroundText) {\n document.documentElement.style.setProperty('--foreground-text-color', Color.GetStyleText(theme.ForegroundText));\n } else {\n document.documentElement.style.setProperty('--foreground-text-color', '#49454fff');\n }\n }\n if (!theme.IsDarkTheme) {\n if (theme.ForegroundSecondaryText) {\n document.documentElement.style.setProperty('--foreground-secondary-text-color', Color.GetStyleText(theme.ForegroundSecondaryText));\n } else {\n document.documentElement.style.setProperty('--foreground-secondary-text-color', '#cac4d0ff');\n }\n }\n if (theme.ForegroundTextHover) {\n document.documentElement.style.setProperty('--foreground-text-hover-color', Color.GetStyleText(theme.ForegroundTextHover));\n } else {\n document.documentElement.style.setProperty('--foreground-text-hover-color', '#bfbfbfff');\n }\n\n if (theme.DataTableHeaderBackground) {\n document.documentElement.style.setProperty('--datatable-header-background', Color.GetStyleText(theme.DataTableHeaderBackground));\n }\n if (theme.DataTableHeaderForeground) {\n document.documentElement.style.setProperty('--datatable-header-foreground', Color.GetStyleText(theme.DataTableHeaderForeground));\n }\n if (theme.DataTableCellText) {\n document.documentElement.style.setProperty('--datatable-cell-text', Color.GetStyleText(theme.DataTableCellText));\n }\n if (theme.DataTableCellTextHover) {\n document.documentElement.style.setProperty('--datatable-cell-text-hover', Color.GetStyleText(theme.DataTableCellTextHover));\n }\n const dtcbh = Color.GetStyleText(theme.DataTableCellBackgroundHover);\n if (dtcbh) {\n document.documentElement.style.setProperty('--datatable-cell-background-hover', dtcbh);\n } else {\n document.documentElement.style.setProperty('--datatable-cell-background-hover', 'var(--primary-color)');\n }\n if (theme.DataTableLine) {\n document.documentElement.style.setProperty('--datatable-line', Color.GetStyleText(theme.DataTableLine));\n }\n if (theme.SpreadSheetHeaderBackground) {\n document.documentElement.style.setProperty('--spreadsheet-header-background', Color.GetStyleText(theme.SpreadSheetHeaderBackground));\n }\n if (theme.SpreadSheetHeaderForeground) {\n document.documentElement.style.setProperty('--spreadsheet-header-foreground', Color.GetStyleText(theme.SpreadSheetHeaderForeground));\n }\n if (theme.SpreadSheetCellText) {\n document.documentElement.style.setProperty('--spreadsheet-cell-text', Color.GetStyleText(theme.SpreadSheetCellText));\n }\n if (theme.SpreadSheetCellTextHover) {\n document.documentElement.style.setProperty('--spreadsheet-cell-text-hover', Color.GetStyleText(theme.SpreadSheetCellTextHover));\n }\n const sscbh = Color.GetStyleText(theme.SpreadSheetCellBackgroundHover);\n if (sscbh) {\n document.documentElement.style.setProperty('--spreadsheet-cell-background-hover', sscbh);\n } else {\n document.documentElement.style.setProperty('--spreadsheet-cell-background-hover', 'var(--primary-color)');\n }\n if (theme.SpreadSheetLine) {\n document.documentElement.style.setProperty('--spreadsheet-line', Color.GetStyleText(theme.SpreadSheetLine));\n }\n\n if (theme.BackgroundDisabledButton) {\n this.materialCssVarsService.setVariable(\n MaterialCssVariables.BackgroundDisabledButton,\n Color.ColorToRGBString(theme.BackgroundDisabledButton)\n );\n }\n if (theme.DarkAccentText) {\n this.materialCssVarsService.setVariable(MaterialCssVariables.DarkAccentText, Color.ColorToRGBString(theme.DarkAccentText));\n }\n if (theme.LightAccentText) {\n this.materialCssVarsService.setVariable(MaterialCssVariables.LightAccentText, Color.ColorToRGBString(theme.LightAccentText));\n } else {\n this.materialCssVarsService.setVariable(MaterialCssVariables.LightAccentText, '46, 44, 48');\n }\n if (theme.DarkWarnText) {\n this.materialCssVarsService.setVariable(MaterialCssVariables.DarkWarnText, Color.ColorToRGBString(theme.DarkWarnText));\n }\n if (theme.LightWarnText) {\n this.materialCssVarsService.setVariable(MaterialCssVariables.LightWarnText, Color.ColorToRGBString(theme.LightWarnText));\n }\n if (theme.BackgroundStatusBar) {\n this.materialCssVarsService.setVariable(MaterialCssVariables.BackgroundStatusBar, Color.ColorToRGBString(theme.BackgroundStatusBar));\n }\n if (theme.BackgroundAppBar) {\n this.materialCssVarsService.setVariable(MaterialCssVariables.BackgroundAppBar, Color.ColorToRGBString(theme.BackgroundAppBar));\n }\n if (theme.BackgroundBackground) {\n this.materialCssVarsService.setVariable(\n MaterialCssVariables.BackgroundBackground,\n Color.ColorToRGBString(theme.BackgroundBackground)\n );\n }\n if (theme.BackgroundHover) {\n this.materialCssVarsService.setVariable(MaterialCssVariables.BackgroundHover, Color.ColorToRGBString(theme.BackgroundHover));\n this.materialCssVarsService.setVariable(MaterialCssVariables.BackgroundHoverAlpha, Color.ColorToAlpha(theme.BackgroundHover));\n }\n if (theme.BackgroundCard) {\n this.materialCssVarsService.setVariable(MaterialCssVariables.BackgroundCard, Color.ColorToRGBString(theme.BackgroundCard));\n }\n if (theme.BackgroundDialog) {\n this.materialCssVarsService.setVariable(MaterialCssVariables.BackgroundDialog, Color.ColorToRGBString(theme.BackgroundDialog));\n }\n if (theme.BackgroundDisabledButton) {\n this.materialCssVarsService.setVariable(\n MaterialCssVariables.BackgroundDisabledButton,\n Color.ColorToRGBString(theme.BackgroundDisabledButton)\n );\n this.materialCssVarsService.setVariable(\n MaterialCssVariables.BackgroundDisabledButtonAlpha,\n Color.ColorToAlpha(theme.BackgroundDisabledButton)\n );\n }\n if (theme.BackgroundRaisedButton) {\n this.materialCssVarsService.setVariable(\n MaterialCssVariables.BackgroundRaisedButton,\n Color.ColorToRGBString(theme.BackgroundRaisedButton)\n );\n }\n if (theme.BackgroundFocusedButton) {\n this.materialCssVarsService.setVariable(\n MaterialCssVariables.BackgroundFocusedButton,\n Color.ColorToRGBString(theme.BackgroundFocusedButton)\n );\n }\n if (theme.BackgroundSelectedButton) {\n this.materialCssVarsService.setVariable(\n MaterialCssVariables.BackgroundSelectedButton,\n Color.ColorToRGBString(theme.BackgroundSelectedButton)\n );\n }\n if (theme.BackgroundSelectedDisabledButton) {\n this.materialCssVarsService.setVariable(\n MaterialCssVariables.BackgroundSelectedDisabledButton,\n Color.ColorToRGBString(theme.BackgroundSelectedDisabledButton)\n );\n }\n if (theme.BackgroundDisabledButtonToggle) {\n this.materialCssVarsService.setVariable(\n MaterialCssVariables.BackgroundDisabledButtonToggle,\n Color.ColorToRGBString(theme.BackgroundDisabledButtonToggle)\n );\n }\n if (theme.BackgroundUnselectedChip) {\n this.materialCssVarsService.setVariable(\n MaterialCssVariables.BackgroundUnselectedChip,\n Color.ColorToRGBString(theme.BackgroundUnselectedChip)\n );\n }\n if (theme.BackgroundDisabledListOption) {\n this.materialCssVarsService.setVariable(\n MaterialCssVariables.BackgroundDisabledListOption,\n Color.ColorToRGBString(theme.BackgroundDisabledListOption)\n );\n }\n\n if (theme.ForegroundBase) {\n this.materialCssVarsService.setVariable(MaterialCssVariables.ForegroundBase, Color.ColorToRGBString(theme.ForegroundBase));\n }\n if (theme.ForegroundDivider) {\n this.materialCssVarsService.setVariable(MaterialCssVariables.ForegroundDivider, Color.ColorToRGBString(theme.ForegroundDivider));\n this.materialCssVarsService.setVariable(MaterialCssVariables.ForegroundDividerAlpha, Color.ColorToAlpha(theme.ForegroundDivider));\n }\n if (theme.ForegroundDividers) {\n this.materialCssVarsService.setVariable(MaterialCssVariables.ForegroundDividers, Color.ColorToRGBString(theme.ForegroundDividers));\n }\n if (theme.ForegroundDisabled) {\n this.materialCssVarsService.setVariable(MaterialCssVariables.ForegroundDisabled, Color.ColorToRGBString(theme.ForegroundDisabled));\n this.materialCssVarsService.setVariable(MaterialCssVariables.ForegroundDisabledAlpha, Color.ColorToAlpha(theme.ForegroundDisabled));\n }\n if (theme.ForegroundDisabledButton) {\n this.materialCssVarsService.setVariable(\n MaterialCssVariables.ForegroundDisabledButton,\n Color.ColorToRGBString(theme.ForegroundDisabledButton)\n );\n this.materialCssVarsService.setVariable(\n MaterialCssVariables.ForegroundDisabledButtonAlpha,\n Color.ColorToAlpha(theme.ForegroundDisabledButton)\n );\n }\n if (theme.ForegroundDisabledText) {\n this.materialCssVarsService.setVariable(\n MaterialCssVariables.ForegroundDisabledText,\n Color.ColorToRGBString(theme.ForegroundDisabledText)\n );\n }\n if (theme.ForegroundElevation) {\n this.materialCssVarsService.setVariable(MaterialCssVariables.ForegroundElevation, Color.ColorToRGBString(theme.ForegroundElevation));\n }\n if (theme.ForegroundHintText) {\n this.materialCssVarsService.setVariable(MaterialCssVariables.ForegroundHintText, Color.ColorToRGBString(theme.ForegroundHintText));\n }\n if (theme.ForegroundSecondaryText) {\n this.materialCssVarsService.setVariable(\n MaterialCssVariables.ForegroundSecondaryText,\n Color.ColorToRGBString(theme.ForegroundSecondaryText)\n );\n this.materialCssVarsService.setVariable(\n MaterialCssVariables.ForegroundSecondaryTextAlpha,\n Color.ColorToAlpha(theme.ForegroundSecondaryText)\n );\n }\n if (theme.ForegroundIcon) {\n this.materialCssVarsService.setVariable(MaterialCssVariables.ForegroundIcon, Color.ColorToRGBString(theme.ForegroundIcon));\n this.materialCssVarsService.setVariable(MaterialCssVariables.ForegroundIconAlpha, Color.ColorToAlpha(theme.ForegroundIcon));\n }\n if (theme.ForegroundIcons) {\n this.materialCssVarsService.setVariable(MaterialCssVariables.ForegroundIcons, Color.ColorToRGBString(theme.ForegroundIcons));\n this.materialCssVarsService.setVariable(MaterialCssVariables.ForegroundIconsAlpha, Color.ColorToAlpha(theme.ForegroundIcons));\n }\n if (theme.DarkmodeForegroundText) {\n if (theme.IsDarkTheme) {\n this.materialCssVarsService.setVariable(MaterialCssVariables.ForegroundText, Color.ColorToRGBString(theme.DarkmodeForegroundText));\n }\n if (theme.IsDarkTheme) {\n this.materialCssVarsService.setVariable(\n MaterialCssVariables.ForegroundTextAlpha,\n Color.ColorToRGBString(theme.DarkmodeForegroundText)\n );\n }\n }\n if (theme.ForegroundText) {\n if (!theme.IsDarkTheme) {\n this.materialCssVarsService.setVariable(MaterialCssVariables.ForegroundText, Color.ColorToRGBString(theme.ForegroundText));\n }\n if (!theme.IsDarkTheme) {\n this.materialCssVarsService.setVariable(MaterialCssVariables.ForegroundTextAlpha, Color.ColorToRGBString(theme.ForegroundText));\n }\n }\n if (theme.ForegroundSliderMin) {\n this.materialCssVarsService.setVariable(MaterialCssVariables.ForegroundSliderMin, Color.ColorToRGBString(theme.ForegroundSliderMin));\n this.materialCssVarsService.setVariable(MaterialCssVariables.ForegroundSliderMinAlpha, Color.ColorToAlpha(theme.ForegroundSliderMin));\n }\n if (theme.ForegroundSliderOff) {\n this.materialCssVarsService.setVariable(MaterialCssVariables.ForegroundSliderOff, Color.ColorToRGBString(theme.ForegroundSliderOff));\n this.materialCssVarsService.setVariable(MaterialCssVariables.ForegroundSliderOffAlpha, Color.ColorToAlpha(theme.ForegroundSliderOff));\n }\n if (theme.ForegroundSliderOffActive) {\n this.materialCssVarsService.setVariable(\n MaterialCssVariables.ForegroundSliderOffActive,\n Color.ColorToRGBString(theme.ForegroundSliderOffActive)\n );\n this.materialCssVarsService.setVariable(\n MaterialCssVariables.ForegroundSliderOffActiveAlpha,\n Color.ColorToAlpha(theme.ForegroundSliderOffActive)\n );\n }\n if (theme.ChartPalette) {\n CacheService.ReadChartPaletteValues(theme.ChartPalette).then((x) => {\n this.ActiveThemeChartPalette = x;\n });\n }\n }\n public static LoadCustomCSSVariables() {\n this.metaService.GetAllCustomCSSVariables().subscribe((variables) => {\n if (variables) {\n LayoutService.CustomCSSVariables = variables;\n ThemeHelper.FillVariableMap();\n }\n });\n }\n\n private static FillVariableMap() {\n LayoutService.CSSVariablesMap = {};\n LayoutService.SystemCSSVariables.forEach((variable) => {\n LayoutService.CSSVariablesMap[variable.SID] = variable;\n });\n if (LayoutService.CustomCSSVariables) {\n LayoutService.CustomCSSVariables.forEach((variable) => {\n LayoutService.CSSVariablesMap[variable.SID] = variable;\n });\n }\n }\n\n public static SetCustomVariables() {\n this.CustomFontSizes = [8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72];\n this.CustomFonts = [];\n this.CustomFontsMap = {};\n if (LayoutService.CustomCSSVariables) {\n LayoutService.CustomCSSVariables.forEach((variable) => {\n document.documentElement.style.setProperty(variable.VariableName, variable.Value);\n });\n } else {\n this.metaService.GetAllCustomCSSVariables().subscribe((variables) => {\n if (variables) {\n LayoutService.CustomCSSVariables = variables;\n ThemeHelper.FillVariableMap();\n variables.forEach((variable) => {\n if (variable.VariableName) {\n document.documentElement.style.setProperty(variable.VariableName, variable.Value);\n }\n if (variable.Type == CSSVarType.FontSize) {\n try {\n this.CustomFontSizes.push(parseInt(variable.Value));\n } catch {}\n }\n if (variable.Type == CSSVarType.Font) {\n this.CustomFonts.push(variable.Name);\n this.CustomFontsMap[variable.Name] = variable;\n }\n });\n MediaService.CSSFontList.next(ThemeHelper.CustomFonts);\n }\n this.CustomFontSizes = this.CustomFontSizes.sort((a, b) => {\n if (a > b) {\n return 1;\n }\n if (a < b) {\n return -1;\n }\n return 0;\n });\n let fontSizeStyles = [];\n this.CustomFontSizes.forEach((size) => {\n fontSizeStyles.push(\n '.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=\"' +\n size +\n 'px\"]::before, .ql-snow .ql-picker.ql-size .ql-picker-label.ql-active[data-value=\"' +\n size +\n 'px\"]::before { content: \"' +\n size +\n '\"; }'\n );\n });\n if (fontSizeStyles.length > 0) {\n this.AppendCSS(fontSizeStyles);\n }\n });\n }\n }\n\n public static AppendCSS(value) {\n if (value && value.length > 0) {\n const head = document.getElementsByTagName('head')[0];\n const style = document.createElement('style');\n style.type = 'text/css';\n value.forEach((rule) => {\n style.appendChild(document.createTextNode(rule));\n });\n head.appendChild(style);\n }\n }\n\n public static SetAppBuilderTheme(theme) {\n if (theme) {\n if (theme.HoverBackground) {\n const primHex = Color.HexFromColor(theme.HoverBackground);\n document.documentElement.style.setProperty('--appbuilder-hover-background', primHex);\n }\n if (theme.Primary) {\n const primHex = Color.HexFromColor(theme.Primary);\n document.documentElement.style.setProperty('--appbuilder-primary-color', primHex);\n }\n if (theme.ActionsBackground) {\n const primHex = Color.HexFromColor(theme.ActionsBackground);\n document.documentElement.style.setProperty('--appbuilder-actions-background', primHex);\n }\n if (theme.Actions) {\n const primHex = Color.HexFromColor(theme.Actions);\n document.documentElement.style.setProperty('--appbuilder-actions-color', primHex);\n }\n if (theme.Hover) {\n const primHex = Color.HexFromColor(theme.Hover);\n document.documentElement.style.setProperty('--appbuilder-hover-color', primHex);\n } else {\n document.documentElement.style.setProperty('--appbuilder-hover-color', '#cfcfcf');\n }\n if (theme.ToolboxBackground) {\n const primHex = Color.HexFromColor(theme.ToolboxBackground);\n document.documentElement.style.setProperty('--appbuilder-toolbox-background', primHex);\n }\n if (theme.ToolboxColor) {\n const primHex = Color.HexFromColor(theme.ToolboxColor);\n document.documentElement.style.setProperty('--appbuilder-toolbox-color', primHex);\n }\n //#region WorkflowDefaults\n if (theme.WorkflowBackground) {\n const primHex = Color.HexFromColor(theme.WorkflowBackground);\n document.documentElement.style.setProperty('--workflow-background', primHex);\n }\n if (theme.WorkflowColor) {\n const primHex = Color.HexFromColor(theme.WorkflowColor);\n document.documentElement.style.setProperty('--workflow-color', primHex);\n }\n\n if (theme.WorkflowConditionBackground) {\n const primHex = Color.HexFromColor(theme.WorkflowConditionBackground);\n document.documentElement.style.setProperty('--workflow-condition-background', primHex);\n }\n if (theme.WorkflowConditionColor) {\n const primHex = Color.HexFromColor(theme.WorkflowConditionColor);\n document.documentElement.style.setProperty('--workflow-condition-color', primHex);\n }\n\n if (theme.WorkflowRemoveBackground) {\n const primHex = Color.HexFromColor(theme.WorkflowRemoveBackground);\n document.documentElement.style.setProperty('--workflow-remove-background', primHex);\n }\n if (theme.WorkflowRemoveColor) {\n const primHex = Color.HexFromColor(theme.WorkflowRemoveColor);\n document.documentElement.style.setProperty('--workflow-remove-color', primHex);\n }\n\n if (theme.WorkflowActionBackground) {\n const primHex = Color.HexFromColor(theme.WorkflowActionBackground);\n document.documentElement.style.setProperty('--workflow-action-background', primHex);\n }\n if (theme.WorkflowActionColor) {\n const primHex = Color.HexFromColor(theme.WorkflowActionColor);\n document.documentElement.style.setProperty('--workflow-action-color', primHex);\n }\n\n if (theme.WorkflowModuleBackground) {\n const primHex = Color.HexFromColor(theme.WorkflowModuleBackground);\n document.documentElement.style.setProperty('--workflow-module-background', primHex);\n }\n if (theme.WorkflowModuleColor) {\n const primHex = Color.HexFromColor(theme.WorkflowModuleColor);\n document.documentElement.style.setProperty('--workflow-module-color', primHex);\n }\n\n if (theme.WorkflowStartBackground) {\n const primHex = Color.HexFromColor(theme.WorkflowStartBackground);\n document.documentElement.style.setProperty('--workflow-start', primHex);\n }\n if (theme.WorkflowStartColor) {\n const primHex = Color.HexFromColor(theme.WorkflowStartColor);\n document.documentElement.style.setProperty('--workflow-start-color', primHex);\n }\n if (theme.WorkflowEndBackground) {\n const primHex = Color.HexFromColor(theme.WorkflowEndBackground);\n document.documentElement.style.setProperty('--workflow-end', primHex);\n }\n if (theme.WorkflowEndColor) {\n const primHex = Color.HexFromColor(theme.WorkflowEndColor);\n document.documentElement.style.setProperty('--workflow-end-color', primHex);\n }\n if (theme.WorkflowConnector) {\n const primHex = Color.HexFromColor(theme.WorkflowConnector);\n document.documentElement.style.setProperty('--workflow-connector-stroke-color', primHex);\n }\n if (theme.WorkflowConnectorHover) {\n const primHex = Color.HexFromColor(theme.WorkflowConnectorHover);\n document.documentElement.style.setProperty('--workflow-connector-stroke-hover', primHex);\n }\n if (theme.WorkflowConnectorLabelBackground) {\n const primHex = Color.HexFromColor(theme.WorkflowConnectorLabelBackground);\n document.documentElement.style.setProperty('--workflow-connector-label-background', primHex);\n }\n if (theme.WorkflowConnectorLabelText) {\n const primHex = Color.HexFromColor(theme.WorkflowConnectorLabelText);\n document.documentElement.style.setProperty('--workflow-connector-label-text', primHex);\n }\n if (theme.WorkflowBreakpointBackground) {\n const primHex = Color.HexFromColor(theme.WorkflowBreakpointBackground);\n document.documentElement.style.setProperty('--workflow-breakpoint-background', primHex);\n }\n if (theme.WorkflowBreakpointColor) {\n const primHex = Color.HexFromColor(theme.WorkflowBreakpointColor);\n document.documentElement.style.setProperty('--workflow-breakpoint-color', primHex);\n }\n if (theme.WorkflowBreakpointSelectedBackground) {\n const primHex = Color.HexFromColor(theme.WorkflowBreakpointSelectedBackground);\n document.documentElement.style.setProperty('--workflow-breakpoint-selected-background', primHex);\n }\n if (theme.WorkflowBreakpointSelectedColor) {\n const primHex = Color.HexFromColor(theme.WorkflowBreakpointSelectedColor);\n document.documentElement.style.setProperty('--workflow-breakpoint-selected-color', primHex);\n }\n //#endregion\n //#region WorkflowGroups\n let keys = Object.keys(theme);\n let filteredKeys = keys.filter((value) => value.startsWith('WorkflowGroup_'));\n if (filteredKeys && filteredKeys.length > 0) {\n filteredKeys.forEach((key) => {\n const primHex = Color.HexFromColor(theme[key]);\n let prop = key.replace('WorkflowGroup_', '');\n if (key.endsWith('_Background')) {\n prop = prop.replace('_Background', '-background');\n } else {\n prop = prop.replace('_Color', '-color');\n }\n document.documentElement.style.setProperty('--workflow-group-' + prop, primHex);\n });\n }\n //#endregion\n }\n }\n}\n","import { LevelType } from '../models/enums';\nimport { WhereSelects } from '../models/datadescription/multi/querydef.model';\nimport { DynamicTimeType, RangeOrientation } from '../models/enums/query.enum';\nimport { DynamicTimePoint, TimeReference } from '../models/time/dynamictimepoint.model';\n\nexport class TimeHelper {\n\n static GetDateTimeFromDynamicTimePointTimeType(dt: DynamicTimePoint, whereSelects: WhereSelects) {\n let retVal: Date = null;\n if (dt) {\n switch (dt.TimeType) {\n case DynamicTimeType.Now:\n retVal = new Date();\n if (dt.References && dt.References.length > 0) {\n const now = new Date(); // UTC???\n const references = [...dt.References];\n references.sort((a: TimeReference, b: TimeReference) => {\n return a.ReferenceDate.getTime() - b.ReferenceDate.getTime();\n });\n references.some(reference => {\n if (now >= reference.ReferenceDate) {\n retVal = new Date(reference.TargetDate);\n return false;\n }\n return true;\n });\n }\n break;\n case DynamicTimeType.Filter:\n switch (dt.Orientation) {\n case RangeOrientation.Start:\n retVal = new Date(whereSelects.Start);\n break;\n case RangeOrientation.End:\n retVal = new Date(whereSelects.End);\n break;\n }\n break;\n case DynamicTimeType.Fix:\n if (dt.FixTime) {\n retVal = new Date(dt.FixTime);\n }\n break;\n default:\n break;\n }\n }\n return retVal;\n }\n\n static GetDateTimeFromDynamicTimePointMovement(point: Date, timeMovement: Map) {\n let retVal: Date = null;\n if (point) {\n retVal = new Date(point);\n if (timeMovement) {\n timeMovement.forEach((value, key) => {\n if (value !== 0) {\n switch (key) {\n case LevelType.TimeYears:\n retVal.setFullYear(retVal.getFullYear() + value);\n break;\n case LevelType.TimeHalfYears:\n retVal.setMonth(retVal.getMonth() + value * 6);\n break;\n case LevelType.TimeQuarters:\n retVal.setMonth(retVal.getMonth() + value * 3);\n break;\n case LevelType.TimeMonths:\n retVal.setMonth(retVal.getMonth() + value);\n break;\n case LevelType.TimeWeeks:\n retVal.setDate(retVal.getDate() + value * 7);\n break;\n case LevelType.TimeDays:\n retVal.setDate(retVal.getDate() + value);\n break;\n }\n }\n });\n }\n }\n return retVal;\n }\n\n static GetDateTimeFromDynamicTimePointFixation(dtp: DynamicTimePoint, point: Date) {\n let retVal: Date = null;\n if (point) {\n retVal = new Date(point);\n if (dtp) {\n if (dtp.TimeFixation) {\n switch (dtp.FixationLevel) {\n case LevelType.TimeHalfYears:\n let hyMonth = 0;\n const halfYear = dtp.TimeFixation.get(LevelType.TimeHalfYears);\n if (halfYear >= 2) {\n hyMonth = 6;\n }\n let halfYearMonth = dtp.TimeFixation.get(LevelType.TimeMonths);\n if (typeof halfYearMonth === 'number' && halfYearMonth > 1) {\n if (halfYearMonth > 6) {\n halfYearMonth = 5;\n } else {\n halfYearMonth--;\n }\n hyMonth += halfYearMonth;\n }\n retVal.setMonth(hyMonth);\n TimeHelper.SetDay(dtp.TimeFixation.get(LevelType.TimeDays), retVal);\n break;\n case LevelType.TimeQuarters:\n let qMonth = 0;\n let quarter = dtp.TimeFixation.get(LevelType.TimeQuarters);\n if (typeof quarter === 'number' && quarter > 1) {\n if (quarter === 2) {\n qMonth = 3;\n } else if (quarter === 3) {\n qMonth = 6;\n } else {\n qMonth = 9;\n }\n }\n let quarterMonth = dtp.TimeFixation.get(LevelType.TimeMonths);\n if (typeof quarterMonth === 'number' && quarterMonth > 1) {\n if (quarterMonth > 3) {\n quarterMonth = 2;\n } else {\n quarterMonth--;\n }\n qMonth += quarterMonth;\n }\n retVal.setMonth(qMonth);\n TimeHelper.SetDay(dtp.TimeFixation.get(LevelType.TimeDays), retVal);\n break;\n case LevelType.TimeMonths:\n TimeHelper.SetDay(dtp.TimeFixation.get(LevelType.TimeDays), retVal);\n break;\n case LevelType.TimeWeeks:\n let dayDiff = dtp.TimeFixation.get(LevelType.TimeDays);\n if (typeof dayDiff === 'number') {\n if (dayDiff < 1) {\n dayDiff = 0;\n } else if (dayDiff > 7) {\n dayDiff = 6;\n } else {\n dayDiff--;\n }\n } else {\n dayDiff = 0;\n }\n retVal.setMonth(0);\n retVal.setDate(1);\n const dayOfWeek = retVal.getDay();\n if (dayOfWeek < 5) { // So (0) - Do (4)\n retVal.setDate(2 - dayOfWeek + dayDiff);\n } else { // Fr (5) oder Sa (6)\n retVal.setDate(2 + 7 - dayOfWeek + dayDiff);\n }\n let weekDiff = dtp.TimeFixation.get(LevelType.TimeWeeks);\n if (typeof weekDiff === 'number' && weekDiff > 1) {\n if (weekDiff > 53) {\n retVal.setDate(retVal.getDate() + 52 * 7);\n } else {\n retVal.setDate(retVal.getDate() + (weekDiff - 1) * 7);\n }\n }\n break;\n }\n }\n if (typeof dtp.SundayShift === 'number' && dtp.SundayShift !== 0 && retVal.getDay() === 0) {\n retVal.setDate(retVal.getDate() + dtp.SundayShift);\n }\n }\n }\n return retVal;\n }\n\n private static IsLeapYear(year: number) {\n return (year % 100 === 0) ? (year % 400 === 0) : (year % 4 === 0);\n }\n\n private static SetDay(dayVal: number, date: Date) {\n if (date) {\n if (typeof dayVal === 'number') {\n if (dayVal < 1) {\n dayVal = 1;\n } else if (dayVal > 28) {\n const month = date.getMonth();\n switch (month) {\n case 1: // Februar\n const year = date.getFullYear();\n if (TimeHelper.IsLeapYear(year)) {\n if (dayVal > 29) {\n dayVal = 29;\n }\n } else if (dayVal > 28) {\n dayVal = 28;\n }\n break;\n case 3: // April\n case 5: // Juni\n case 8: // September\n case 10: // November\n if (dayVal > 30) {\n dayVal = 30;\n }\n break;\n default:\n if (dayVal > 31) {\n dayVal = 31;\n }\n break;\n }\n }\n } else {\n dayVal = 1;\n }\n date.setDate(dayVal);\n }\n }\n}\n","import { TranslateService } from \"@ngx-translate/core\";\n\n// @dynamic\nexport class DataTableTranslateHelper {\n static TranslatorInstance: TranslateService;\n}\n","import {\n Directive,\n Output,\n Input,\n EventEmitter,\n HostBinding,\n HostListener\n} from '@angular/core';\n\n@Directive({\n selector: '[uploadDnd]'\n})\nexport class UploadDndDirective {\n @HostBinding('class.fileover') fileOver: boolean;\n @Output() fileDropped = new EventEmitter();\n\n // Dragover listener\n @HostListener('dragover', ['$event']) public onDragOver(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n this.fileOver = true;\n }\n\n // Dragleave listener\n @HostListener('dragleave', ['$event']) public onDragLeave(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n this.fileOver = false;\n }\n\n // Drop listener\n @HostListener('drop', ['$event']) public ondrop(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n this.fileOver = false;\n let files = evt.dataTransfer.files;\n if (files.length > 0) {\n this.fileDropped.emit(files);\n }\n }\n}","import { UUID } from \"angular2-uuid\";\nimport { Subject } from \"rxjs\";\nimport { UserSettingsService } from \"../services/usersettings.service\";\n\n// @dynamic\nexport class VariableHelper {\n private static usersettingsService: UserSettingsService = null;\n public static Initialize(service) {\n this.usersettingsService = service;\n }\n static DataTypes = [\n { Caption: '@@Text', Value: 'System.String' },\n { Caption: '@@Bool', Value: 'System.Boolean' },\n { Caption: '@@Ganzzahl', Value: 'System.Int32' },\n { Caption: '@@Gleitzahl', Value: 'System.Double' },\n { Caption: '@@Datum', Value: 'System.DateTime' },\n { Caption: '@@Objekt', Value: 'System.Object' },\n { Caption: '@@Liste', Value: 'List' }\n ];\n\n public static GetTypeCaption(dataType) {\n const dt = VariableHelper.DataTypes.find(x => x.Value === dataType);\n if (dt) {\n return dt.Caption;\n }\n return '';\n }\n\n public static GetTypeListTypeFromJSType(jsType) {\n if (typeof jsType === 'string') {\n switch (jsType) {\n case 'string':\n return 'System.String';\n case 'boolean':\n return 'System.Boolean';\n case 'number':\n return 'System.Double';\n case 'date':\n return 'System.DateTime';\n case 'object':\n return 'System.Object';\n }\n }\n return null;\n }\n\n public static CheckValueForType(type: string, val: any): boolean {\n const valType = typeof val;\n if (valType !== 'undefined' && val !== null) {\n switch (type) {\n case 'System.String':\n return valType === 'string';\n case 'System.Boolean':\n return valType === 'boolean';\n case 'System.Int32':\n case 'System.Double':\n return valType === 'number';\n case 'System.DateTime':\n return val instanceof Date;\n case 'System.Object':\n return valType === 'object';\n case 'List':\n return Array.isArray(val);\n }\n }\n return true;\n }\n\n public static ValueChanged(Layout, variable) {\n if (Layout && Layout.AutoSaveVariables && Layout.AutoSaveVariables.length > 0) {\n var item = Layout.AutoSaveVariables.find((value) => value.ID == variable.ID);\n if (item) {\n if (this.VariableSubscriptions[Layout._Id + '||' + variable.ID]) {\n this.VariableSubscriptions[Layout._Id + '||' + variable.ID].next(variable.Value);\n }\n this.usersettingsService.AddOrUpdate({\n LayoutID: Layout._Id,\n Value: JSON.stringify(variable.Value),\n ItemID: variable.ID\n }).subscribe();\n }\n }\n }\n public static FindLayout(Layout, ItemID) {\n if (Layout.Variables && Layout.Variables.length > 0) {\n let variable = Layout.Variables.find((value) => value.ID == ItemID);\n if (variable) {\n return Layout;\n }\n } \n if (Layout.Elements && Layout.Elements.length > 0) {\n for (let i = 0; i < Layout.Elements.length; i++) {\n let element = Layout.Elements[i];\n let variable = this.FindLayout(element, ItemID);\n if (variable) {\n return variable;\n }\n }\n }\n }\n\n public static ControlChanged(Layout, Element) {\n\n }\n\n public static LoadVariables(Layout) {\n return new Promise((resolve, reject) => {\n if (!this.ActiveVariables) {\n this.ActiveVariables = {};\n }\n if (!this.ActiveVariablesMap) {\n this.ActiveVariablesMap = {};\n }\n if (!this.AvailableVariables) {\n this.AvailableVariables = {};\n }\n if (!this.AvailableControls) {\n this.AvailableControls = {};\n }\n\n VariableHelper.AvailableVariables[Layout._Id] = [];\n VariableHelper.AvailableControls[Layout._Id] = [];\n\n this.FetchVariablesAndControls(Layout, Layout);\n if (Layout.AutoSaveVariables || Layout.ProfileVariables) {\n this.usersettingsService.ReadByLayout(Layout._Id).subscribe((variables) => {\n if (variables) {\n VariableHelper.ActiveVariables[Layout._Id] = variables;\n if (variables.length > 0) {\n variables.forEach((item) => {\n if (item.Value) {\n item.Value = JSON.parse(item.Value);\n }\n const toSet = VariableHelper.AvailableVariables[Layout._Id].find((value) => value.ID == item.ItemID);\n if (toSet) {\n toSet.Value = item.Value;\n }\n VariableHelper.ActiveVariablesMap[item.LayoutID + '||' + item.ItemID] = item;\n });\n }\n }\n resolve(true);\n });\n } else {\n resolve(true);\n }\n });\n }\n private static FetchVariablesAndControls(Layout, LayoutItem) {\n if (LayoutItem) {\n if (LayoutItem.Elements && LayoutItem.Elements.length > 0) {\n LayoutItem.Elements.forEach((item) => this.FetchVariablesAndControls(Layout, item));\n }\n if (LayoutItem.Variables && LayoutItem.Variables.length > 0) {\n LayoutItem.Variables.forEach((item) => {\n if (!item.ID) {\n item.ID = UUID.UUID();\n }\n })\n if (!VariableHelper.AvailableVariables[Layout._Id]) {\n VariableHelper.AvailableVariables[Layout._Id] = [];\n }\n VariableHelper.AvailableVariables[Layout._Id].push(...LayoutItem.Variables);\n }\n if (LayoutItem.ElementType == 'datatable' || LayoutItem.ElementType == 'tablecolumnvisibility') {\n if (!VariableHelper.AvailableControls[Layout._Id]) {\n VariableHelper.AvailableControls[Layout._Id] = [];\n }\n VariableHelper.AvailableControls[Layout._Id].push(LayoutItem);\n }\n }\n }\n //public static ValueChanged: Subject = new Subject();\n //public static ControlChanged: Subject = new Subject();\n\n public static VariableSubscriptions = {};\n public static ActiveVariables = null;\n public static ActiveVariablesMap = null;\n public static AvailableVariables = null;\n public static AvailableControls = null;\n}\nexport class ControlChanges {\n ID: string;\n Value: any;\n}","import { Observable, Subject } from 'rxjs';\n\nexport class InlineWorker {\n\n private readonly worker: Worker;\n private onMessage = new Subject();\n private onError = new Subject();\n\n constructor(func) {\n\n const WORKER_ENABLED = !!(Worker);\n\n if (WORKER_ENABLED) {\n const functionBody = func.toString().replace(/^[^{]*{\\s*/, '').replace(/\\s*}[^}]*$/, '');\n\n this.worker = new Worker(URL.createObjectURL(\n new Blob([functionBody], { type: 'text/javascript' })\n ));\n\n this.worker.onmessage = (data) => {\n this.onMessage.next(data);\n };\n\n this.worker.onerror = (data) => {\n this.onError.next(data);\n };\n\n } else {\n throw new Error('WebWorker is not enabled');\n }\n }\n\n postMessage(data) {\n this.worker.postMessage(JSON.parse(JSON.stringify(data)));\n }\n\n onmessage(): Observable {\n return this.onMessage.asObservable();\n }\n\n onerror(): Observable {\n return this.onError.asObservable();\n }\n\n terminate() {\n if (this.worker) {\n this.worker.terminate();\n }\n }\n}","import { deserialize, serialize } from 'class-transformer';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { DebugAttachInfo, DebugLogMessage, DebugLogMessageList, DebugSessionMessage, NextStepInfo } from '../models/workflow/debug.log.message';\nimport { WorkflowDebugSettings } from '../models/workflow/workflow.debug.settings';\nimport { NavigationService } from '../services/navigation.service';\nimport { SideNavService } from '../services/sidenav.service';\nimport { UsersService } from '../services/users.service';\nimport { WebsocketSubscription } from '../services/websocket.service';\nimport { WorkflowService } from '../services/workflow.service';\nimport { ClientHelper } from './client.helper';\nimport { InjectorHelper } from './injector.helper';\nimport { NotificationHelper } from './notification.helper';\nimport { PermissionHelper } from './permissions.helper';\n\nexport class WorkflowDebugHelper {\n private static SettingsSubscription: WebsocketSubscription;\n private static LogSubscription: WebsocketSubscription;\n private static DebugSubscription: WebsocketSubscription;\n private static CheckAttachTimeOut;\n public static DebugSettings = new BehaviorSubject(null);\n public static NextLog = new Subject();\n public static ClientIDAnswer = new Subject();\n public static DebugClient = new BehaviorSubject(null);\n public static OnAttachOrDetach = new Subject();\n public static NextStep = new Subject();\n public static DebugState = new Subject();\n\n public static Init() {\n WorkflowDebugHelper.UpdateSettingsInternal();\n WorkflowDebugHelper.DebugSettings.subscribe(x => {\n if (x && x.ShowServiceLogsOnTest) {\n if (!WorkflowDebugHelper.LogSubscription) {\n const user = UsersService.ActiveUser.getValue();\n if (user) {\n WorkflowDebugHelper.LogSubscription = new WebsocketSubscription('workflowLog_' + user.SID, 'DebugLogMessage', (x) => {\n const dlml = deserialize(DebugLogMessageList, x);\n if (dlml && dlml.List && dlml.List.length > 0 && dlml.List[0].ClientID !== ClientHelper.ClientID) {\n dlml.List.forEach(dlm => {\n WorkflowDebugHelper.NextLog.next(dlm);\n });\n }\n });\n }\n }\n } else if (WorkflowDebugHelper.LogSubscription) {\n WorkflowDebugHelper.LogSubscription.Unsubscribe();\n WorkflowDebugHelper.LogSubscription = null;\n }\n });\n WorkflowDebugHelper.SubscribeToWorkflowDebugChannel();\n NavigationService.OnUnload.subscribe(() => {\n WorkflowDebugHelper.Unsubscribe();\n });\n UsersService.BeforeLogout.subscribe(x => {\n WorkflowDebugHelper.Unsubscribe();\n });\n UsersService.Login.subscribe(x => {\n WorkflowDebugHelper.SubscribeToWorkflowDebugChannel();\n WorkflowDebugHelper.UpdateSettingsInternal();\n });\n const client = localStorage.getItem('DebugClient');\n if (client && client !== ClientHelper.ClientID) {\n WorkflowDebugHelper.SendOnWorkflowDebugChannel({\n Type: 'CheckAttachRequest',\n Content: {\n SendingClient: ClientHelper.ClientID,\n CheckClient: client\n }\n });\n this.CheckAttachTimeOut = setTimeout(() => {\n WorkflowDebugHelper.DetachAll();\n }, 5000);\n }\n }\n\n private static HandleDebugChannelMessage(message: string) {\n if (message) {\n const parsed = JSON.parse(message);\n if (parsed && parsed.Type) {\n const cont = parsed.Content;\n switch (parsed.Type) {\n case 'UpdateSettings':\n WorkflowDebugHelper.UpdateSettingsInternal();\n NotificationHelper.Info('@@SettingsRefresh', '@@Information');\n break;\n case 'ClientIDRequest':\n if (cont && cont.RequestingClient !== ClientHelper.ClientID) {\n window.setTimeout(() => {\n WorkflowDebugHelper.SendClientID();\n }, 50);\n }\n break;\n case 'ClientIDAnswer':\n if (cont) {\n WorkflowDebugHelper.ClientIDAnswer.next(cont);\n }\n break;\n case 'AttachRequest':\n if (WorkflowDebugHelper.CheckAttachTimeOut) {\n clearTimeout(WorkflowDebugHelper.CheckAttachTimeOut);\n }\n WorkflowDebugHelper.OnAttachOrDetach.next(null);\n if (cont && cont.AttachedClients && cont.DebugClient !== ClientHelper.ClientID) {\n if (cont.AttachedClients.some(x => x === ClientHelper.ClientID)) {\n WorkflowDebugHelper.DebugClient.next(cont.DebugClient);\n WorkflowDebugHelper.SubscribeToDebugSession(cont.DebugClient);\n }\n }\n break;\n case 'DetachRequest':\n WorkflowDebugHelper.OnAttachOrDetach.next(null);\n if (!cont || cont === ClientHelper.ClientID) {\n WorkflowDebugHelper.DebugClient.next(null);\n if (WorkflowDebugHelper.DebugSubscription) {\n WorkflowDebugHelper.DebugSubscription.Unsubscribe();\n WorkflowDebugHelper.DebugSubscription = null;\n }\n }\n break;\n case 'CheckAttachRequest':\n if (cont && cont.CheckClient === ClientHelper.ClientID) {\n window.setTimeout(() => {\n WorkflowDebugHelper.SendOnWorkflowDebugChannel({\n Type: 'CheckAttachAnswer',\n Content: cont.SendingClient \n });\n }, 50);\n }\n break;\n case 'CheckAttachAnswer':\n if (cont === ClientHelper.ClientID) {\n if (WorkflowDebugHelper.CheckAttachTimeOut) {\n clearTimeout(WorkflowDebugHelper.CheckAttachTimeOut);\n }\n }\n break; \n }\n }\n }\n }\n\n private static UpdateSettingsInternal() {\n if (PermissionHelper.GetDebuggerPermission()) {\n const settings = localStorage.getItem('WorkflowDebugSettings');\n WorkflowDebugHelper.DebugSettings.next(deserialize(WorkflowDebugSettings, settings ?? '{}'));\n } else {\n WorkflowDebugHelper.DebugSettings.next(new WorkflowDebugSettings());\n }\n }\n\n private static Unsubscribe() {\n if (WorkflowDebugHelper.SettingsSubscription) {\n WorkflowDebugHelper.SettingsSubscription.Unsubscribe();\n WorkflowDebugHelper.SettingsSubscription = null;\n }\n if (WorkflowDebugHelper.LogSubscription) {\n WorkflowDebugHelper.LogSubscription.Unsubscribe();\n WorkflowDebugHelper.LogSubscription = null;\n }\n if (WorkflowDebugHelper.DebugSubscription) {\n WorkflowDebugHelper.DebugSubscription.Unsubscribe();\n WorkflowDebugHelper.DebugSubscription = null;\n }\n const dc = localStorage.getItem('DebugClient');\n if (dc && dc === ClientHelper.ClientID) {\n WorkflowDebugHelper.DetachAll();\n }\n }\n\n public static UpdateSettings(settings: WorkflowDebugSettings) {\n if (!settings) {\n settings = new WorkflowDebugSettings();\n }\n localStorage.setItem('WorkflowDebugSettings', serialize(settings));\n WorkflowDebugHelper.SendOnWorkflowDebugChannel({\n Type: 'UpdateSettings'\n });\n }\n\n public static RequestClientIDs() {\n WorkflowDebugHelper.SendOnWorkflowDebugChannel({\n Type: 'ClientIDRequest',\n Content: {\n RequestingClient: ClientHelper.ClientID\n }\n });\n }\n\n private static SendClientID() {\n const dai = new DebugAttachInfo();\n dai.ClientID = ClientHelper.ClientID;\n dai.URL = SideNavService.InternalURL.getValue();\n WorkflowDebugHelper.SendOnWorkflowDebugChannel({\n Type: 'ClientIDAnswer',\n Content: dai\n });\n }\n\n public static AttachToClients(attachClients) {\n const debugClient = localStorage.getItem('DebugClient');\n let send = false;\n if (!debugClient) {\n localStorage.setItem('DebugClient', ClientHelper.ClientID);\n if (attachClients.some(x => x === ClientHelper.ClientID)) {\n WorkflowDebugHelper.DebugClient.next(ClientHelper.ClientID);\n }\n send = true;\n WorkflowDebugHelper.SubscribeToDebugSession(ClientHelper.ClientID);\n } else {\n send = debugClient === ClientHelper.ClientID;\n }\n if (send) {\n WorkflowDebugHelper.SendOnWorkflowDebugChannel({\n Type: 'AttachRequest',\n Content: {\n AttachedClients: attachClients,\n DebugClient: ClientHelper.ClientID\n }\n });\n }\n }\n\n public static DetachAll() {\n localStorage.removeItem('DebugClient');\n WorkflowDebugHelper.DebugClient.next(null);\n if (WorkflowDebugHelper.DebugSubscription) {\n WorkflowDebugHelper.DebugSubscription.Unsubscribe();\n WorkflowDebugHelper.DebugSubscription = null;\n }\n WorkflowDebugHelper.SendOnWorkflowDebugChannel({\n Type: 'DetachRequest'\n });\n }\n\n public static DetachClient(clientID: string) {\n if (clientID === ClientHelper.ClientID) {\n WorkflowDebugHelper.DebugClient.next(null);\n } else {\n WorkflowDebugHelper.SendOnWorkflowDebugChannel({\n Type: 'DetachRequest',\n Content: clientID\n });\n }\n }\n\n public static SendDebugMessage(message: DebugSessionMessage) {\n if (message) {\n if (message.Sender === message.Target) {\n WorkflowDebugHelper.HandleDebugSessionMessage(message);\n } else {\n const client = localStorage.getItem('DebugClient');\n if (client) {\n const wfService = InjectorHelper.InjectorInstance.get(WorkflowService);\n wfService.SendDebugMessage('debugSession_' + client, message).subscribe();\n }\n }\n }\n }\n\n private static HandleDebugSessionMessage(message: DebugSessionMessage) {\n switch (message.Type) {\n case 'WorkflowState':\n case 'WorkflowFinished':\n WorkflowDebugHelper.DebugState.next(message);\n break;\n case 'NextStep':\n window.setTimeout(() => {\n WorkflowDebugHelper.NextStep.next(message.Content);\n }, 100);\n break;\n }\n }\n\n private static SubscribeToWorkflowDebugChannel() {\n if (WorkflowDebugHelper.SettingsSubscription) {\n WorkflowDebugHelper.SettingsSubscription.Unsubscribe();\n WorkflowDebugHelper.SettingsSubscription = null;\n }\n const user = UsersService.ActiveUser.getValue();\n if (user) {\n WorkflowDebugHelper.SettingsSubscription = new WebsocketSubscription('workflowDebugChannel_' + user.SID, 'WorkflowDebugMessage', (x) => {\n WorkflowDebugHelper.HandleDebugChannelMessage(x);\n });\n }\n }\n\n private static SendOnWorkflowDebugChannel(message) {\n const user = UsersService.ActiveUser.getValue();\n if (user) {\n WebsocketSubscription.SendNotification('workflowDebugChannel_' + user.SID, 'WorkflowDebugMessage', message);\n }\n }\n\n private static SubscribeToDebugSession(clientID) {\n if (WorkflowDebugHelper.DebugSubscription) {\n WorkflowDebugHelper.DebugSubscription.Unsubscribe();\n WorkflowDebugHelper.DebugSubscription = null;\n }\n WorkflowDebugHelper.DebugSubscription = new WebsocketSubscription('debugSession_' + clientID, 'evidanza.App.Shared.Workflow.Data.DebugSessionMessage', (m) => {\n const message = deserialize(DebugSessionMessage, m);\n if (message && message.Target === ClientHelper.ClientID) {\n WorkflowDebugHelper.HandleDebugSessionMessage(message);\n }\n });\n }\n}\n","import { BackgroundColorAction } from \"../components/actions/style/backgroundcolor/backgroundcolor.action\";\nimport { BoldAction } from \"../components/actions/style/bold/bold.action\";\nimport { BorderAction } from \"../components/actions/style/border/border.action\";\nimport { EmptyAction } from \"../components/actions/style/empty/empty.action\";\nimport { FontColorAction } from \"../components/actions/style/fontcolor/fontcolor.action\";\nimport { FontFamilyAction } from \"../components/actions/style/fontfamily/fontfamily.action\";\nimport { FontSizeAction } from \"../components/actions/style/fontsize/fontsize.action\";\nimport { HorizontalAlignmentAction } from \"../components/actions/style/horizontalalignment/horizontalalignment.action\";\nimport { ItalicAction } from \"../components/actions/style/italic/italic.action\";\nimport { UnderlineAction } from \"../components/actions/style/underline/underline.action\";\nimport { VerticalAlignmentAction } from \"../components/actions/style/verticalalignment/verticalalignment.action\";\n\nexport const APP_ACTIONS = [\n EmptyAction,\n BoldAction,\n UnderlineAction,\n ItalicAction,\n FontFamilyAction,\n FontSizeAction,\n HorizontalAlignmentAction,\n VerticalAlignmentAction,\n FontColorAction,\n BorderAction,\n BackgroundColorAction\n];\n\n","import { PropertyControl } from '../components/common/propertyControl/property.control';\nimport { FormulaEditor } from '../components/common/formulaEditor/formulaEditor.control';\nimport { ComponentFilterControl } from '../components/common/componentfilter/componentfilter.control';\nimport { TimeSpanControl } from '../components/common/timespanControl/timespan.control';\nimport { BaseAction } from '../components/actions/base.action';\nimport { ContextMenuComponent } from '../components/common/contextmenu/contextmenu.component';\nimport { BaseTreeControl } from '../components/common/basetreecontrol/base.tree.control';\nimport { DropDownControl } from '../components/common/dropdowncontrol/dropdown.control';\nimport { NavigationTabsControl } from '../components/common/navigationcontrol/navigation.tabs';\nimport { NavigationControl } from '../components/common/navigationcontrol/navigation.control';\nimport { IndeterminateCheckbox } from '../components/common/indeterminatecheckbox/indeterminate.checkbox';\nimport { RequestOptionsControl } from '../components/common/requestoptions/request.options.control';\nimport { MenuTabControl } from '../appbuilder/common/menutabcontrol/menu.tab.control';\nimport { AccordionMenuControl } from '../appbuilder/common/menutabcontrol/accordion.menu.control';\nimport { CapsuleTagControl } from '../components/common/capsuletagcontrol/capsule.tag.control';\nimport { LayoutEditControl } from '../appbuilder/common/layouteditcontrol/layout.edit.control';\nimport { DataSourceSelectionControl } from '../components/common/datasourceselectioncontol/datasource.selection.control';\nimport { ScriptEditor } from '../components/common/scripteditor/scripteditor.control';\nimport { LayoutUnitThicknessComponent } from '../appbuilder/controls/layoutunitthickness/layoutunitthickness.component';\nimport { UserOverviewControl } from '../components/common/collaboration/user.overview.control';\nimport { BranchSelectControl } from '../components/common/development/branchselect/branchselect.control';\nimport { RepositorySelectControl } from '../components/common/development/repositoryselect/repositoryselect.control';\nimport { LogsdialogComponent } from '../settings/logsettings/logsdialog.component';\nimport { ComparsionOverlay } from '../components/common/overlays/comparison/comparison.overlay';\nimport { JiraControl } from '../components/common/jiracontrol/jira.control';\nimport { LogsdialogsystemComponent } from '../settings/logsettings/logsdialogsystem.component';\nimport { UnitSelectionControl } from '../appbuilder/controls/unittypeselection/unitselection.theme.control';\nimport { NavigationMenu } from \"../components/common/navigationmenu/navigation.menu\";\nimport {ListView} from \"../component_v2/listview/listview.component\"\nimport { CreateAppComponent } from '../component_v2/create-app/create-app.component';\n\nexport const APP_COMMON = [\n PropertyControl,\n FormulaEditor,\n ComponentFilterControl,\n TimeSpanControl,\n BaseAction,\n ContextMenuComponent,\n BaseTreeControl,\n DropDownControl,\n NavigationTabsControl,\n NavigationControl,\n IndeterminateCheckbox,\n RequestOptionsControl,\n MenuTabControl,\n AccordionMenuControl,\n CapsuleTagControl,\n LayoutEditControl,\n DataSourceSelectionControl,\n ScriptEditor,\n LayoutUnitThicknessComponent,\n UnitSelectionControl,\n UserOverviewControl,\n LogsdialogComponent,\n LogsdialogsystemComponent,\n BranchSelectControl,\n RepositorySelectControl,\n ComparsionOverlay,\n JiraControl,\n NavigationMenu,\n ListView,\n CreateAppComponent\n];\n","import { NestedMenuComponent } from \"../components/common/nestedmenu/nested.menu\";\n\n\nexport const MW_COMPONENTS = [\n NestedMenuComponent\n];","import { AboutControl } from '../components/common/aboutcontrol/about.control';\nimport { CronBuilder } from '../components/common/cronbuilder/cron.builder';\nimport { FormulaTextBox } from '../components/common/formulaEditor/formulatextbox.control';\nimport { UnitTypeSelectionControl } from '../appbuilder/controls/unittypeselection/unittypeselection.theme.control';\nimport { AccordionControl } from '../components/controls/accordion/accordion.control';\nimport { AdvancedFilterComponent } from '../components/controls/advancedfilter/advancedfilter.component';\nimport { ApplicationSwitcherComponent } from '../components/controls/appswitch/appswitch.component';\nimport { AutocompleteControl } from '../components/controls/autocomplete/autocomplete.control';\nimport { ButtonControl } from '../components/controls/button/button.control';\nimport { CarouselControl } from '../components/controls/carousel/carousel.control';\nimport { ChartsControl } from '../components/controls/charts/charts.control';\nimport { CheckBoxControl } from '../components/controls/checkbox/checkbox.control';\nimport { ChipListControl } from '../components/controls/chiplist/chiplist.control';\nimport { ComboBoxControl } from '../components/controls/combobox/combobox.control';\nimport { ContentControl } from '../components/controls/content/content.control';\nimport { DataCapsuleTagControl } from '../components/controls/datacapsuletag/data.capsule.tag.control';\nimport { DateTimePickerControl } from '../components/controls/datetimepicker/datetimepicker.control';\nimport { DownloadControl } from '../components/controls/download/download.control';\nimport { DropdownComponent } from '../components/controls/dropdown/dropdown.component';\nimport { EditorControl } from '../components/controls/editor/editor.control';\nimport { EmbedControl } from '../components/controls/embed/embed.control';\nimport { ColorPickerComponent } from '../components/controls/gradientpicker/colorpicker.control';\nimport { ColorPickerMenuComponent } from '../components/controls/gradientpicker/colorpickermenu.control';\nimport { GradientPicker } from '../components/controls/gradientpicker/gradientpicker.control';\nimport { IconControl } from '../components/controls/icon/icon.control';\nimport { IFrameControl } from '../components/controls/iframe/iframe.control';\nimport { ImageControl } from '../components/controls/image/image.control';\nimport { ImageEditorControl } from '../components/controls/imageeditor/imageeditor.control';\nimport { InputGroupControl } from '../components/controls/inputgroup/inputgroup.control';\nimport { LanguageMenu, LanguageMenuControl } from '../components/controls/languagemenu/language.menu';\nimport { LayoutItem } from '../components/controls/layoutitem/layout.item.component';\nimport { ListBoxControl } from '../components/controls/listbox/listbox.control';\nimport { SimpleListBoxControl } from '../components/controls/listbox/simple.listbox.control';\nimport { ListDetailControl } from '../components/controls/listdetail/listdetail.control';\nimport { LoadingComponent } from '../components/controls/loading/loading.component';\nimport { LoginControl } from '../components/controls/login/login.control';\nimport { MarkerControl } from '../components/controls/marker/marker.control';\nimport { MessageCenterControl } from '../components/controls/messagecenter/messagecenter.control';\nimport { NavigationTreeControl } from '../components/controls/navigationtree/navigationtree.control';\nimport { NavigationTreeItem } from '../components/controls/navigationtree/navigationtree.item';\nimport { ObjectViewerControl } from '../components/controls/objectviewer/objectviewer.control';\nimport { PageIndexComponent } from '../components/controls/output/page.index.component';\nimport { SumComponent } from '../components/controls/output/sum.component';\nimport { PDFViewerControl } from '../components/controls/pdfviewer/pdfviewer.control';\nimport { ProfileManagementControl } from '../components/controls/profilemanagement/profilemanagement.control';\nimport { QRComponent } from '../components/controls/qr/qr.component';\nimport { RadioButtonControl } from '../components/controls/radiobutton/radiobutton.control';\nimport { SchedulerControl } from '../components/controls/scheduler/scheduler.control';\nimport { SideNavControl } from '../components/controls/sidenav/sidenav.control';\nimport { SliderControl } from '../components/controls/slider/slider.control';\nimport { StepperControl } from '../components/controls/stepper/stepper.control';\nimport { TabControl } from '../components/controls/tab/tab.control';\nimport { EviTableColumnVisibilityControl } from '../components/controls/tables/columnvisibility/columnvisibility.control';\nimport { DataTableControl, EviTableHeaderCheckbox } from '../components/controls/tables/datatable/datatable.control';\nimport { PrimeTableControl } from '../components/controls/tables/primetable/primetable.control';\nimport { TextAreaControl } from '../components/controls/textarea/textarea.control';\nimport { TextBlockControl } from '../components/controls/textblock/textblock.control';\nimport { TextBoxControl } from '../components/controls/textbox/textbox.control';\nimport { ThemeSwitchControl } from '../components/controls/themeswitch/themeswitch.control';\nimport { TimespanControl } from '../components/controls/timespan/timespan.control';\nimport { ToggleButtonControl } from '../components/controls/togglebutton/togglebutton.control';\nimport { TranslationTextBoxComponent } from '../components/controls/translationtextbox/translation.textbox.component';\nimport { TranslationTextBox } from '../components/controls/translationtextbox/translation.textbox.control';\nimport { TranslationTextBoxDialog } from '../components/controls/translationtextbox/translation.textbox.dialog';\nimport { TreeControl } from '../components/controls/tree/tree.control';\nimport { TreeTableControl } from '../components/controls/treetable/treetable.control';\nimport { TreeTableItemControl } from '../components/controls/treetable/treetableitem.control';\nimport { UploadControl } from '../components/controls/upload/upload.control';\nimport { UserMenuControl } from '../components/controls/usermenu/usermenu.control';\nimport { VariableDefinitionControl } from '../components/controls/variable/variabledefinition.control';\nimport { VideoControl } from '../components/controls/video/video.control';\nimport { VjsPlayerComponent } from '../components/controls/video/videojs.player';\nimport { FileExplorerControl } from '../components/fileexplorer/fileexplorer.control';\nimport { SideNavLayout } from '../components/layouts/sidenav/sidenav.layout';\nimport { ChangeDataSourceAction } from '../settings/actions/datasource/changedatasource.action';\nimport { JobsLogsComponent } from '../settings/jobs/joblogs/jobs.logs';\nimport { JobsQueueComponent } from '../settings/jobs/queue/jobs.queue';\nimport { DataSourceStaticControl } from '../components/staticclasscontrols/datasource/datasource.static.control';\nimport { WorkflowStaticControl } from '../components/staticclasscontrols/workflow/workflow.static.control';\nimport { DebugWindow } from '../debugconsole/debug.window';\nimport { DebugWorkflowLog } from '../debugconsole/workflow/debug.workflow.log';\nimport { DebugWorkflowSettingsPage } from '../debugconsole/workflow/debug.workflow.settings.page';\nimport { DebugWorkflowConnectionPage } from '../debugconsole/workflow/debug.workflow.connection.page';\nimport { DebugWorkflowAttachDialog } from '../debugconsole/workflow/debug.workflow.attach.dialog';\nimport { DebugWorkflowBreakPointControl } from '../debugconsole/workflow/debug.workflow.breakpoint.control';\nimport { DebugWorkflowStateControl } from '../debugconsole/workflow/debug.workflow.state.control';\nimport {\n DebugScriptBreakpointControl, DebugScriptBreakpointSettingsControl\n} from '../debugconsole/workflow/debug.script.breakpoint.control';\nimport { HrefControl } from '../components/controls/href/href.control';\nimport { HyperPayControl } from '../components/controls/hyperpay/hyperpay.control';\nimport { DefaultGroupHeader } from '../components/common/default.group.header';\nimport { TextBlockDocumentHeader } from '../components/common/textblock.document.header';\nimport { VariableChooser } from '../components/common/variable.chooser';\nimport { FilterTreeControl, FilterTreeComponent } from '../components/controls/filter/filter.tree.control';\nimport { FilterTreeDialog } from '../components/controls/filter/filter.tree.dialog';\nimport { FromToFilter } from '../components/controls/filter/from.to.filter';\nimport { ContainerSelectDialog } from '../components/dialogs/containerSelect.dialog';\nimport { DatadescriptionControl } from '../components/dialogs/datadescription/datadescription.control';\nimport { DatadescriptionEditDialog } from '../components/dialogs/datadescription/datadescription.edit.dialog';\nimport { DatadescriptionMenuTab } from '../components/menutabs/datadescription/datadescription.menu.tab';\nimport { FromToFilterMenuTab } from '../components/menutabs/fromtofilter/from.to.filter.menu.tab';\nimport { ObjectCreatorSourceMultiDimensional } from '../components/multipanels/objectcreatorsource/objectcreatorsource.multidim';\nimport { ObjectCreatorSourceRelational } from '../components/multipanels/objectcreatorsource/objectcreatorsource.relational';\nimport { ObjectCreatorSourceTreeBase } from '../components/multipanels/objectcreatorsource/objectcreatorsourcetree.base';\nimport { ObjectCreatorSourceTreeLevel } from '../components/multipanels/objectcreatorsource/objectcreatorsourcetree.level';\nimport { ObjectCreatorSourceTreeMeasure } from '../components/multipanels/objectcreatorsource/objectcreatorsourcetree.measure';\nimport { ObjectCreatorSourceTreeSpecial } from '../components/multipanels/objectcreatorsource/objectcreatorsourcetree.special';\nimport { FilterPanelControl } from '../components/objectcreator/filter/filterpanel.control';\nimport { MeasureDefinitionsControl } from '../components/objectcreator/measuredefinition/measuredef.control';\nimport {\n DynamicTimeReferenceControl\n} from '../components/objectcreator/measuredefinition/panels/dynamictimereference/dynamictimereference.control';\nimport { ElementReferenceControl } from '../components/objectcreator/measuredefinition/panels/elementreference/elementreference.control';\nimport { ElementeReferenceTree } from '../components/objectcreator/measuredefinition/panels/elementreference/elementreference.tree';\nimport { ParentReferenceControl } from '../components/objectcreator/measuredefinition/panels/parentreference/parentreference.control';\nimport { AxisControl } from '../components/objectcreator/multidimensional/axis.control';\nimport { HeterogenAreaControl } from '../components/objectcreator/multidimensional/heterogenArea.control';\nimport { HeterogenSubAreaControl } from '../components/objectcreator/multidimensional/heterogenSubArea.control';\nimport { ObjectCreatorDropAreaCtrl } from '../components/objectcreator/objectcreator.droparea';\nimport { ObjectCreatorMainCtrl } from '../components/objectcreator/objectcreator.maincontrol';\nimport { ChartReportObject } from '../components/reportobjectcontrols/chart/chart.reportobject';\nimport { MacTableControl } from '../components/reportobjectcontrols/table/table.reportobject';\nimport { MultidimensionalVariablenItemControl } from '../components/objectcreator/variablenitem/multidimvariable.control';\nimport { FilterDropdownControl } from '../components/controls/filter/filter.dropdown.control';\nimport { NumberFormatPanel } from '../components/common/number.format.panel';\nimport { StyleControl } from '../components/common/style.control';\nimport { DataTaskPanel } from '../components/objectcreator/datataskpanel/datatask.panel';\nimport { ChartSeriesSettingsControl } from '../components/common/chart.series.settings.control';\nimport { MacPlanningControl } from '../components/reportobjectcontrols/planning/planning.reportobject';\nimport { ReferenceOverviewComponent } from '../components/controls/reference/reference.overview.component';\nimport { ReferenceAxisComponent } from '../components/controls/reference/reference.axis.component';\nimport { MeasureDefinitionRelationalControl } from '../components/objectcreator/measuredefrel/measuredef.rel.control';\nimport { JobInfoDialog } from '../settings/jobs/queue/job.info.dialog';\nimport { ReportControlsAccordion, ReportObjectsAccordion } from '../appbuilder/menutabs/controls/controls.menu.tab';\nimport { GMapControl } from '../components/controls/gmap/gmap.control';\nimport {SimpleReportingControl} from \"../components/controls/simplereporting/simplereporting.component\"\nimport { ReportingPreviewComponent } from \"../components/controls/simplereporting/preview-dialogue/preview-dialogue.component\"\nimport { ChartWrapperComponent } from '../components/controls/simplereporting/chartwrapper.component';\nimport {BasicDataTableControl} from \"../components/controls/tables/basic-ptable/basic-datatable.control\";\n\nexport const APP_CONTROLS = [\n LayoutItem,\n TextBoxControl,\n TextAreaControl,\n GradientPicker,\n CheckBoxControl,\n ComboBoxControl,\n ButtonControl,\n ToggleButtonControl,\n GMapControl,\n RadioButtonControl,\n DateTimePickerControl,\n SideNavControl,\n TreeControl,\n ListBoxControl,\n SimpleListBoxControl,\n ContentControl,\n TranslationTextBox,\n TranslationTextBoxDialog,\n TranslationTextBoxComponent,\n ListDetailControl,\n SideNavLayout,\n NavigationTreeControl,\n NavigationTreeItem,\n SliderControl,\n ImageControl,\n ObjectViewerControl,\n MarkerControl,\n TextBlockControl,\n LanguageMenu,\n LanguageMenuControl,\n AdvancedFilterComponent,\n LoginControl,\n LoadingComponent,\n UserMenuControl,\n EditorControl,\n DataTableControl,\n BasicDataTableControl,\n AccordionControl,\n TabControl,\n IFrameControl,\n EmbedControl,\n AutocompleteControl,\n CarouselControl,\n VideoControl,\n ChartsControl,\n UploadControl,\n SchedulerControl,\n FileExplorerControl,\n TreeTableControl,\n TreeTableItemControl,\n CronBuilder,\n ColorPickerComponent,\n FormulaTextBox,\n VariableDefinitionControl,\n ImageEditorControl,\n ChipListControl,\n ThemeSwitchControl,\n MessageCenterControl,\n UnitTypeSelectionControl,\n DropdownComponent,\n AboutControl,\n StepperControl,\n PDFViewerControl,\n ApplicationSwitcherComponent,\n JobsLogsComponent,\n JobsQueueComponent,\n JobInfoDialog,\n VjsPlayerComponent,\n ChangeDataSourceAction,\n EviTableColumnVisibilityControl,\n PageIndexComponent,\n SumComponent,\n ColorPickerMenuComponent,\n ProfileManagementControl,\n IconControl,\n TimespanControl,\n PrimeTableControl,\n InputGroupControl,\n DataCapsuleTagControl,\n EviTableHeaderCheckbox,\n DownloadControl,\n DebugWindow,\n DebugWorkflowLog,\n DebugWorkflowSettingsPage,\n DebugWorkflowConnectionPage,\n DebugWorkflowAttachDialog,\n DebugWorkflowBreakPointControl,\n DebugWorkflowStateControl,\n DebugScriptBreakpointControl,\n DebugScriptBreakpointSettingsControl,\n QRComponent,\n HrefControl,\n HyperPayControl,\n DefaultGroupHeader,\n TextBlockDocumentHeader,\n ObjectCreatorMainCtrl,\n ObjectCreatorDropAreaCtrl,\n ObjectCreatorSourceMultiDimensional,\n ObjectCreatorSourceRelational,\n ObjectCreatorSourceTreeBase,\n ObjectCreatorSourceTreeMeasure,\n ObjectCreatorSourceTreeLevel,\n ObjectCreatorSourceTreeSpecial,\n AxisControl,\n HeterogenAreaControl,\n HeterogenSubAreaControl,\n ReportControlsAccordion,\n ReportObjectsAccordion,\n // BaseReportObject,\n DatadescriptionMenuTab,\n DatadescriptionEditDialog,\n DatadescriptionControl,\n ContainerSelectDialog,\n MacTableControl,\n MacPlanningControl,\n ChartReportObject,\n FilterTreeControl,\n FilterTreeComponent,\n FilterDropdownControl,\n FilterTreeDialog,\n FilterPanelControl,\n MeasureDefinitionsControl,\n ElementReferenceControl,\n ElementeReferenceTree,\n ParentReferenceControl,\n DynamicTimeReferenceControl,\n VariableChooser,\n FromToFilter,\n FromToFilterMenuTab,\n MultidimensionalVariablenItemControl,\n StyleControl,\n NumberFormatPanel,\n DataTaskPanel,\n ChartSeriesSettingsControl,\n ReferenceOverviewComponent,\n ReferenceAxisComponent,\n MeasureDefinitionRelationalControl,\n SimpleReportingControl,\n ReportingPreviewComponent,\n ChartWrapperComponent\n];\n\nexport const APP_STATIC_CONTROLS = [\n DataSourceStaticControl,\n WorkflowStaticControl\n];\n","import { DataModelDetail } from '../settings/datamodel/datamodel.settings';\nimport { DataSourceDetail } from '../settings/datamodel/datasource/datasource.settings';\nimport { LiteDBPanel } from '../settings/datamodel/datasource/datasourcepanels/litedb/litedb.panel';\nimport { MongoDBPanel } from '../settings/datamodel/datasource/datasourcepanels/mongodb/mongodb.panel';\nimport { PostgreSQLPanel } from '../settings/datamodel/datasource/datasourcepanels/postgredb/postgredb.panel';\nimport { SQLDBPanel } from '../settings/datamodel/datasource/datasourcepanels/sqldb/sqldb.panel';\nimport { MediaSourceSettings, MediaSourceDetail } from '../settings/datamodel/mediasource/mediasource.settings';\nimport { ContainerEnumSettings, ContainerEnumDetail } from '../settings/datamodel/enum/containerenum.settings';\nimport { MySQLDBPanel } from '../settings/datamodel/datasource/datasourcepanels/mysqldb/mysqldb.panel';\nimport { OracleDBPanel } from '../settings/datamodel/datasource/datasourcepanels/oracledb/oracledb.panel';\nimport { ODBCDBPanel } from '../settings/datamodel/datasource/datasourcepanels/odbcdb/odbcdb.panel';\nimport { DataObjectSettings, DataObjectDetail } from '../settings/datamodel/dataobject/dataobject.settings';\nimport { CouchBasePanel } from '../settings/datamodel/datasource/datasourcepanels/couchbase/couchbase.panel';\nimport { MSDBPanel } from '../settings/datamodel/datasource/datasourcepanels/mediasourcedb/msdb.panel';\nimport { NoDBPanel } from '../settings/datamodel/datasource/datasourcepanels/nodatabase/nodatabase.panel';\nimport { ConnectorsPanel } from '../settings/datamodel/datasource/datasourcepanels/connectors/connectors.panel';\nimport { OpenAIPanel } from '../settings/datamodel/datasource/datasourcepanels/openai/openai.panel';\n\nexport const APP_DATAMODEL = [\n DataModelDetail,\n DataSourceDetail,\n LiteDBPanel,\n MongoDBPanel,\n PostgreSQLPanel,\n SQLDBPanel,\n OpenAIPanel,\n MediaSourceSettings,\n MediaSourceDetail,\n DataObjectSettings,\n DataObjectDetail,\n ContainerEnumSettings,\n ContainerEnumDetail,\n MySQLDBPanel,\n ODBCDBPanel,\n CouchBasePanel,\n MSDBPanel,\n NoDBPanel,\n ConnectorsPanel\n];\n","import { LayoutTree } from \"../components/controls/layout.tree\";\n\nexport const APP_DECLARATIONS = [\n LayoutTree\n];\n","import { DefineMemberAttributeDialog } from \"../components/dialogs/definememberattribute/definememberattribute.dialog\";\nimport { MessageBox } from \"../components/dialogs/messagebox/messagebox.dialog\";\nimport { TemplateDialog } from \"../components/dialogs/template/template.dialog\";\nimport { BaseDialog } from \"../components/dialogs/basedialog/base.dialog\";\nimport { TranslationDialog } from \"../components/dialogs/translationdialog/translation.dialog\";\nimport { AdvancedFilterDialog } from \"../components/dialogs/advancedfilter/advancedfilter.dialog\";\nimport { FormulaEditorDialog } from \"../components/common/formulaEditor/formulaEditor.control\";\nimport { FileExplorerDialog } from \"../components/fileexplorer/fileexplorer.dialog\";\nimport { ContentDialog } from \"../components/dialogs/content/content.dialog\";\nimport { CronBuilderDialog } from \"../components/common/cronbuilder/cron.builder.dialog\";\nimport { ObjectPreviewDialog } from \"../components/dialogs/objectpreview/object.preview.dialog\";\nimport { ActionDialog } from \"../components/dialogs/actions/action.dialog\";\nimport { MessageCenterDialog } from \"../components/controls/messagecenter/messagecenter.dialog\";\nimport { DataObjectFieldDialog } from \"../settings/datamodel/dataobject/dataobject.field.dialog\";\nimport { TranslationControl } from \"../components/dialogs/translationdialog/translation.control\";\nimport { DeploymentActionDialog } from \"../components/dialogs/deploymentaction/deploymentaction.dialog\";\nimport { WorkflowDebugDialog } from \"../components/dialogs/workflowdebug/workflowdebug.dialog\";\nimport { WorkflowNameChangeDialog } from \"../components/dialogs/workflowdebug/workflow.name.change.dialog\";\nimport { EventTreeDialog } from \"../components/dialogs/eventtree/event.tree.dialog\";\nimport { MonacoPreviewDialog } from \"../components/dialogs/monacopreview/monaco.preview.dialog\";\nimport { WebHookDialog } from \"../components/dialogs/webhookdialog/webhook.dialog\";\nimport { WorkflowUsageDialog } from \"../appbuilder/menutabs/workflow/workflow.usage.dialog\";\nimport { ConnectorWorkflowEditDialog } from \"../settings/connector/connector.workflow.edit.dialog\";\nimport { RequestNameDialog } from \"../components/dialogs/reqeustname/reqeustname.dialog\";\nimport { WorkflowEditDialog } from \"../workflow/workflow.edit.dialog\";\nimport { DataObjectTranslateDialog } from \"../settings/datamodel/dataobject/dataobject.translate.dialog\";\nimport { LayoutEditDialog } from \"../components/dialogs/layouteditdialog/layout.edit.dialog\";\nimport { ChangeKeyDialog } from \"../components/dialogs/changekeydialog/change.key.dialog\";\nimport { TourguideDialog } from \"../components/dialogs/tourguide/tourguide.dialog/tourguide.dialog.component\";\n\nexport const APP_DIALOGS = [\n DefineMemberAttributeDialog,\n MessageBox,\n TemplateDialog,\n BaseDialog,\n TranslationDialog,\n TranslationControl,\n WorkflowEditDialog,\n WorkflowDebugDialog,\n AdvancedFilterDialog,\n FormulaEditorDialog,\n FileExplorerDialog,\n ContentDialog,\n CronBuilderDialog,\n ObjectPreviewDialog,\n ActionDialog,\n MessageCenterDialog,\n DataObjectFieldDialog,\n DataObjectTranslateDialog,\n DeploymentActionDialog,\n WorkflowNameChangeDialog,\n EventTreeDialog,\n WebHookDialog,\n MonacoPreviewDialog,\n WorkflowUsageDialog,\n ConnectorWorkflowEditDialog,\n RequestNameDialog,\n LayoutEditDialog,\n ChangeKeyDialog,\n TourguideDialog,\n];\n","import { BaseTreeControl } from '../components/common/basetreecontrol/base.tree.control';\nimport { CapsuleTagControl } from '../components/common/capsuletagcontrol/capsule.tag.control';\nimport { DataSourceSelectionControl } from '../components/common/datasourceselectioncontol/datasource.selection.control';\nimport {\n DropDownButtonContentDirective, DropDownContentDirective, DropDownControl\n} from '../components/common/dropdowncontrol/dropdown.control';\nimport { FormulaEditor } from '../components/common/formulaEditor/formulaEditor.control';\nimport { FormulaTextBox } from '../components/common/formulaEditor/formulatextbox.control';\nimport { IndeterminateCheckbox } from '../components/common/indeterminatecheckbox/indeterminate.checkbox';\nimport { JiraControl } from '../components/common/jiracontrol/jira.control';\nimport { MenuTabControl } from '../appbuilder/common/menutabcontrol/menu.tab.control';\nimport { PropertyControl } from '../components/common/propertyControl/property.control';\nimport { RequestOptionsControl } from '../components/common/requestoptions/request.options.control';\nimport { TimeSpanControl } from '../components/common/timespanControl/timespan.control';\nimport { AdvancedFilterComponent } from '../components/controls/advancedfilter/advancedfilter.component';\nimport { ButtonControl } from '../components/controls/button/button.control';\nimport { CheckBoxControl } from '../components/controls/checkbox/checkbox.control';\nimport { ComboBoxControl } from '../components/controls/combobox/combobox.control';\nimport { DateTimePickerControl } from '../components/controls/datetimepicker/datetimepicker.control';\nimport { ColorPickerComponent } from '../components/controls/gradientpicker/colorpicker.control';\nimport { GradientPicker } from '../components/controls/gradientpicker/gradientpicker.control';\nimport { LayoutTree } from '../components/controls/layout.tree';\nimport { ListBoxControl } from '../components/controls/listbox/listbox.control';\nimport { SimpleListBoxControl } from '../components/controls/listbox/simple.listbox.control';\nimport { LoadingComponent } from '../components/controls/loading/loading.component';\nimport { DataTableControl } from '../components/controls/tables/datatable/datatable.control';\nimport { TextBoxControl } from '../components/controls/textbox/textbox.control';\nimport { TranslationTextBox } from '../components/controls/translationtextbox/translation.textbox.control';\nimport { TreeControl } from '../components/controls/tree/tree.control';\nimport { VariableDefinitionControl } from '../components/controls/variable/variabledefinition.control';\nimport { TranslationDialog } from '../components/dialogs/translationdialog/translation.dialog';\nimport { TemplateLayout } from '../components/layouts/template/template.layout';\nimport { ControlsMenuTab } from '../appbuilder/menutabs/controls/controls.menu.tab';\nimport { PropertiesMenuTab } from '../appbuilder/menutabs/properties/properties.menu.tab';\nimport { ABaseElementNameControl } from '../settings/common/abaseelement.name.control';\nimport { DBInfoInteractivePropertyControl } from '../settings/datamodel/datasource/datasourcepanels/dbinfo.interactive.property.control';\nimport { LayoutItemChooser } from '../workflow/modules/layout/layout.item.chooser';\nimport { WorkflowContainerChooser } from '../workflow/workflow.container.chooser';\nimport { WorkflowControl } from '../workflow/workflow.control';\nimport { GenericMenuTab } from '../appbuilder/menutabs/generic/generic.menu.tab';\nimport { RequestNameDialog } from \"../components/dialogs/reqeustname/reqeustname.dialog\";\nimport { QueryRelationOverview } from '../settings/datamodel/common/query.relation.overview';\nimport {BasicDataTableControl} from \"../components/controls/tables/basic-ptable/basic-datatable.control\";\n\nexport const MW_DIALOGS = [\n RequestNameDialog\n];\n\nexport const MW_EXPORTS = [\n QueryRelationOverview\n];\n\nexport const APP_EXPORTS = [\n PropertyControl,\n ABaseElementNameControl,\n TranslationDialog,\n TranslationTextBox,\n FormulaEditor,\n BaseTreeControl,\n TreeControl,\n AdvancedFilterComponent,\n IndeterminateCheckbox,\n RequestOptionsControl,\n ControlsMenuTab,\n PropertiesMenuTab,\n MenuTabControl,\n LayoutTree,\n CheckBoxControl,\n ListBoxControl,\n SimpleListBoxControl,\n ButtonControl,\n ComboBoxControl,\n TextBoxControl,\n LoadingComponent,\n FormulaTextBox,\n CapsuleTagControl,\n TimeSpanControl,\n DropDownControl,\n DropDownContentDirective,\n DropDownButtonContentDirective,\n TemplateLayout,\n DateTimePickerControl,\n WorkflowControl,\n ColorPickerComponent,\n VariableDefinitionControl,\n LayoutItemChooser,\n GradientPicker,\n DataSourceSelectionControl,\n DBInfoInteractivePropertyControl,\n WorkflowContainerChooser,\n DataTableControl,\n BasicDataTableControl,\n JiraControl,\n GenericMenuTab\n];\n","import { NodeContentDirective } from '../components/common/basetreecontrol/base.tree.control';\nimport {\n DOMValidatorDirective, DOWValidatorDirective, HoursValidatorDirective,\n MonthValidatorDirective, SecondsValidatorDirective, YearValidatorDirective\n} from '../components/common/cronbuilder/cron.builder';\nimport { DropDownButtonContentDirective, DropDownContentDirective } from '../components/common/dropdowncontrol/dropdown.control';\nimport { MenuTabMiddleContentDirective, MenuTabSpecialContentDirective } from '../appbuilder/common/menutabcontrol/menu.tab.control';\nimport { NavigationContentDirective } from '../components/common/navigationcontrol/navigation.control';\nimport { SeriesColumnsContentDirective } from '../appbuilder/menutabs/charts/series.menu.control';\nimport { FormatPipe } from '../helpers/array.helpers';\nimport { CallbackPipe, EnumToArrayPipe, FilterColumnsPipe, NavigationVisibilityPipe } from '../helpers/callback.pipe';\nimport { SplitDisplayNamePipe } from \"../helpers/splitDisplayName.pipe\";\nimport { ClickStopPropagation } from '../helpers/clickstoppropagation.directive';\nimport { FocusOnShowDirective } from '../helpers/focusonshow.directive';\nimport { DOMRectToStylePipe, GenerateLayoutCopyPipe } from '../helpers/render.helper';\nimport {\n BaseComponentStylePipe, BootstrapGridItemClassPipe, ButtonTextAlignmentPipe, CanvasItemPositionPipe, CarouselArrowSizePipe,\n CarouselSizePipe, ComboBoxFontPipe, ComboBoxHeightPipe, ComboBoxStylePipe, ComboDisplayNamePipe, ContentPositionPipe,\n ConvertLayoutElementPipe, CSSClassPipe, DataTableCellContentPipe, DataTableCellStylePipe, DataTableHeaderStylePipe,\n DataTableIconCellContentPipe, DisplayMemberPipe, DisplayNamePipe, FlexAlignPipe, FlexClassPipe, FlexItemPipe, FloatingLabelPipe,\n GenericItemLabelStylePipe, GenericItemStylePipe, GridAlignmentStylePipe, GridCellStylePipe, GridEditCellStylePipe, GridItemHoverPipe,\n GridItemStylePipe, GridStyleDefinitionPipe, HorizontalButtonStylePipe, IconStylePipe, InputGroupItemPositionPipe, InputGroupPipe,\n LayoutItemDisplayPipe, LayoutItemHoverPipe, LayoutItemStylePipe, LoadingStyleDefinitionPipe, PropertyGroupStylePipe, RepeatClassPipe,\n SectionStylePipe, ShadowPreviewPipe, TextareaStylePipe, TextblockStylePipe, TextBoxStylePipe, VerticalButtonStylePipe\n} from '../helpers/style.helper';\nimport { UploadDndDirective } from '../helpers/upload.dnd.directive';\nimport { ClickOutsideDirective } from '../helpers/clickOutside.directive';\nimport { FileDragDropDirective } from '../helpers/file-drag-drop.directive';\nexport const APP_PIPES = [\n CallbackPipe,\n SplitDisplayNamePipe,\n EnumToArrayPipe,\n FormatPipe,\n NavigationVisibilityPipe,\n GridAlignmentStylePipe,\n GridItemStylePipe,\n GridCellStylePipe,\n GridStyleDefinitionPipe,\n BaseComponentStylePipe,\n IconStylePipe,\n LoadingStyleDefinitionPipe,\n CanvasItemPositionPipe,\n FlexAlignPipe,\n FlexClassPipe,\n FlexItemPipe,\n FloatingLabelPipe,\n GridEditCellStylePipe,\n DisplayNamePipe,\n DisplayMemberPipe,\n ComboDisplayNamePipe,\n HorizontalButtonStylePipe,\n VerticalButtonStylePipe,\n ConvertLayoutElementPipe,\n LayoutItemStylePipe,\n LayoutItemDisplayPipe,\n ButtonTextAlignmentPipe,\n RepeatClassPipe,\n ContentPositionPipe,\n FilterColumnsPipe,\n DataTableHeaderStylePipe,\n DataTableCellStylePipe,\n DataTableCellContentPipe,\n DataTableIconCellContentPipe,\n TextblockStylePipe,\n InputGroupPipe,\n InputGroupItemPositionPipe,\n TextareaStylePipe,\n CarouselSizePipe,\n CarouselArrowSizePipe,\n ComboBoxFontPipe,\n ComboBoxStylePipe,\n ComboBoxHeightPipe,\n GenerateLayoutCopyPipe,\n LayoutItemHoverPipe,\n GridItemHoverPipe,\n DOMRectToStylePipe,\n TextBoxStylePipe,\n PropertyGroupStylePipe,\n GenericItemStylePipe,\n SectionStylePipe,\n GenericItemLabelStylePipe,\n ShadowPreviewPipe,\n BootstrapGridItemClassPipe,\n CSSClassPipe\n];\n\nexport const APP_DIRECTIVES = [\n ClickStopPropagation,\n SecondsValidatorDirective,\n HoursValidatorDirective,\n DOMValidatorDirective,\n MonthValidatorDirective,\n DOWValidatorDirective,\n YearValidatorDirective,\n FocusOnShowDirective,\n NodeContentDirective,\n DropDownButtonContentDirective,\n DropDownContentDirective,\n SeriesColumnsContentDirective,\n NavigationContentDirective,\n MenuTabSpecialContentDirective,\n MenuTabMiddleContentDirective,\n UploadDndDirective,\n ClickOutsideDirective,\n FileDragDropDirective\n];\n","import { RasterLayout } from \"../components/layouts/raster/raster.layout\";\nimport { FlexLayout } from \"../components/layouts/flex/flex.layout\";\nimport { GridLayout } from \"../components/layouts/grid/grid.layout\";\nimport { SideNavLayout } from \"../components/layouts/sidenav/sidenav.layout\";\nimport { BaseLayout } from \"../components/layouts/base/base.layout\";\nimport { OverlayLayout } from \"../appbuilder/layouts/overlay/overlay.layout\";\nimport { TemplateLayout } from \"../components/layouts/template/template.layout\";\nimport { NavigationLayout } from \"../components/layouts/navigation/navigation.layout\";\nimport { CanvasLayout } from \"../components/layouts/canvas/canvas.layout\";\nimport { RepeatingLayout } from \"../components/layouts/repeating/repeating.layout\";\nimport { WidgetLayout } from \"../components/layouts/widget/widget.layout\";\nimport { ExpansionPanelLayout } from '../components/layouts/expansionpanel/expansion.panel.layout';\nimport { BootstrapGridLayout } from \"../components/layouts/bootstrapgrid/bootstrapgrid.layout\";\nimport { BootstrapRepeatLayout } from \"../components/layouts/bootstraprepeat/bootstraprepeat.layout\";\n\nexport const APP_LAYOUTS = [\n RasterLayout,\n FlexLayout,\n OverlayLayout,\n GridLayout,\n SideNavLayout,\n BaseLayout,\n TemplateLayout,\n NavigationLayout,\n CanvasLayout,\n RepeatingLayout,\n NavigationLayout,\n WidgetLayout,\n ExpansionPanelLayout,\n BootstrapGridLayout,\n BootstrapRepeatLayout\n];\n","import { AmazonDrivePanel } from \"../settings/datamodel/mediasource/mediasourcepanel/amazondrive/amazondrive.panel\";\nimport { AzureBlobPanel } from \"../settings/datamodel/mediasource/mediasourcepanel/auzureblob/auzureblob.panel\";\nimport { BoxPanel } from \"../settings/datamodel/mediasource/mediasourcepanel/box/box.panel\";\nimport { DrobBoxPanel } from \"../settings/datamodel/mediasource/mediasourcepanel/dropbox/dropbox.panel\";\nimport { GoogleDrivePanel } from \"../settings/datamodel/mediasource/mediasourcepanel/googledrive/googledrive.panel\";\nimport { MinioPanel } from \"../settings/datamodel/mediasource/mediasourcepanel/minio/minio.panel\";\nimport { OneDrivePanel } from \"../settings/datamodel/mediasource/mediasourcepanel/onedrive/onedrive.panel\";\nimport { SharePointPanel } from \"../settings/datamodel/mediasource/mediasourcepanel/sharepoint/sharepoint.panel\";\n\nexport const APP_MEDIATYPES = [\n MinioPanel,\n DrobBoxPanel,\n GoogleDrivePanel,\n SharePointPanel,\n OneDrivePanel,\n AmazonDrivePanel,\n BoxPanel,\n AzureBlobPanel\n];","import { ChartsMenuTab } from '../appbuilder/menutabs/charts/charts.menu.tab';\nimport { SeriesMenuControl } from '../appbuilder/menutabs/charts/series.menu.control';\nimport {\n ColumnVisibilityMenuTab,\n ColumnVisibilityPropertyMenuTab,\n} from '../appbuilder/menutabs/columnvisibility/columnvisibility.menu.tab';\nimport { ContentMenuTab } from '../appbuilder/menutabs/content/content.menu.tab';\nimport {\n AMenuTabContent,\n AdvancedAccordion,\n ControlsMenuTab,\n ControlsMenuTabContent,\n LayoutAccordion,\n StaticAccordion,\n FormAccordion,\n DataAccordion,\n BlockAccordion,\n MediaAccordion,\n TemplateAccordion,\n WidgetAccordion,\n} from '../appbuilder/menutabs/controls/controls.menu.tab';\nimport { CustomEventsMenuTab } from '../appbuilder/menutabs/customevents/customevents.menu.tab';\nimport { DataBindingMenuTab } from '../appbuilder/menutabs/databinding/databinding.menu.tab';\nimport {\n DataTableColumnsMenuTab,\n DataTableFixedColumnsMenuTab,\n DataTableIconsMappingDialog,\n DataTableSettingsMenuTab,\n DataTableStyleMenuTab,\n} from '../appbuilder/menutabs/datatable/datatable.menu.tab';\nimport { EventsMenuTab } from '../appbuilder/menutabs/events/events.menu.tab';\nimport { GenericMenuTab } from '../appbuilder/menutabs/generic/generic.menu.tab';\nimport { LayoutMenuTab } from '../appbuilder/menutabs/layout/layout.menu.tab';\nimport { ListBoxMenuTab, ListBoxPropertyMenuTab, SimpleListBoxMenuTab } from '../appbuilder/menutabs/listbox/listbox.menu.tab';\nimport { PageSettingsMenuTab } from '../appbuilder/menutabs/pagesettings/pagesettings.menu.tab';\nimport { PropertiesMenuTab } from '../appbuilder/menutabs/properties/properties.menu.tab';\nimport { ResolutionMenuTab } from '../appbuilder/menutabs/resolution/resolution.menu.tab';\nimport { WorkflowMenuTabStatic } from '../appbuilder/menutabs/statics/workflow/workflow.static.menu.tab';\nimport { TemplateMenuTab } from '../appbuilder/menutabs/template/template.menu.tab';\nimport { TreeMenuTab } from '../appbuilder/menutabs/tree/tree.menu.tab';\nimport { TreeSettingsControl } from '../appbuilder/menutabs/tree/tree.settings.control';\nimport { VariablesMenuTab } from '../appbuilder/menutabs/variables/variables.menu.tab';\nimport { LogsWidgetMenu } from '../appbuilder/menutabs/widget/joblogs/joblogs.widget.menu';\nimport { JobsWidgetMenu } from '../appbuilder/menutabs/widget/jobs/jobs.widget.menu';\nimport { WidgetMenuTab } from '../appbuilder/menutabs/widget/widget.menu.tab';\nimport { WorkflowMenuTab } from '../appbuilder/menutabs/workflow/workflow.menu.tab';\n\nexport const APP_MENUTABS = [\n ContentMenuTab,\n WorkflowMenuTab,\n EventsMenuTab,\n ListBoxMenuTab,\n SimpleListBoxMenuTab,\n DataTableSettingsMenuTab,\n DataTableColumnsMenuTab,\n DataTableStyleMenuTab,\n DataTableFixedColumnsMenuTab,\n DataTableIconsMappingDialog,\n ChartsMenuTab,\n SeriesMenuControl,\n VariablesMenuTab,\n TreeMenuTab,\n TreeSettingsControl,\n DataBindingMenuTab,\n WorkflowMenuTabStatic,\n AMenuTabContent,\n ControlsMenuTabContent,\n AdvancedAccordion,\n StaticAccordion,\n FormAccordion,\n DataAccordion,\n BlockAccordion,\n MediaAccordion,\n LayoutAccordion,\n TemplateAccordion,\n WidgetAccordion,\n ControlsMenuTab,\n LayoutMenuTab,\n ResolutionMenuTab,\n PropertiesMenuTab,\n ListBoxPropertyMenuTab,\n ColumnVisibilityMenuTab,\n ColumnVisibilityPropertyMenuTab,\n PageSettingsMenuTab,\n CustomEventsMenuTab,\n GenericMenuTab,\n TemplateMenuTab,\n WidgetMenuTab,\n JobsWidgetMenu,\n LogsWidgetMenu,\n];","import { ObjectCreatorSourceMultiPanel } from \"../components/multipanels/objectcreatorsource/objectcreatorsource.multipanel\";\n\nexport const APP_MULTIPANELS = [\n ObjectCreatorSourceMultiPanel\n]\n","import { ExportService } from '../services/export.service';\nimport { DataPreviewService } from '../services/data.preview.service';\nimport { DataSettingsService } from '../services/data.settings.service';\nimport { QueryEngineService } from '../services/query.engine.service';\nimport { KPIService } from '../services/kpi.service';\nimport { RestService } from '../services/rest.service';\nimport { WorkflowWizardService } from '../services/workflow.wizard.service';\nimport { MessageSettingsService } from '../settings/messagesettings/MessageSettingsService';\n\nexport const MW_SERVICES = [\n ExportService,\n DataPreviewService,\n DataSettingsService,\n QueryEngineService,\n MessageSettingsService,\n KPIService,\n WorkflowWizardService,\n RestService\n];\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { NgModule } from '@angular/core';\nimport { OwlDateTimeModule, OwlNativeDateTimeModule } from '@danielmoncada/angular-datetime-picker';\nimport { FullCalendarModule } from '@fullcalendar/angular'; // the main connector. must go first\nimport dayGridPlugin from '@fullcalendar/daygrid'; // a plugin\nimport interactionPlugin from '@fullcalendar/interaction'; // a plugin\nimport listPlugin from '@fullcalendar/list'; // a plugin\nimport timePlugin from '@fullcalendar/timegrid'; // a plugin\nimport { GridsterModule } from 'angular-gridster2';\nimport { MentionModule } from 'angular-mentions';\nimport { ResizableModule } from 'angular-resizable-element';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { AngularDraggableModule } from 'angular2-draggable';\nimport { QueryBuilderModule } from \"angular2-query-builder\";\nimport { QRCodeModule } from 'angularx-qrcode';\nimport { SnotifyModule } from 'ng-snotify';\nimport { Ng2GoogleChartsModule } from 'ng2-google-charts';\nimport { PdfViewerModule } from 'ng2-pdf-viewer';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\nimport { NgxJsonViewerModule } from 'ngx-json-viewer';\nimport { MonacoEditorModule } from 'ngx-monaco-editor';\nimport { QuillModule } from 'ngx-quill';\nimport { SlickCarouselModule } from 'ngx-slick-carousel';\nimport { ToastUiImageEditorModule } from \"ngx-tui-image-editor\";\nimport { LazyLoadImageModule } from 'ng-lazyload-image';\n\n\nFullCalendarModule.registerPlugins([\n dayGridPlugin,\n interactionPlugin,\n listPlugin,\n timePlugin\n]);\n\n@NgModule({\n imports: [\n FullCalendarModule,\n GridsterModule,\n AngularDraggableModule,\n DragDropModule,\n SlickCarouselModule,\n QueryBuilderModule,\n SnotifyModule,\n OwlDateTimeModule,\n OwlNativeDateTimeModule,\n InfiniteScrollModule,\n ToastUiImageEditorModule,\n QRCodeModule,\n ResizableModule,\n QuillModule.forRoot(),\n MonacoEditorModule.forRoot(),\n NgxJsonViewerModule,\n PdfViewerModule,\n MentionModule,\n AngularResizeEventModule,\n Ng2GoogleChartsModule,\n LazyLoadImageModule\n ],\n exports: [\n FullCalendarModule,\n GridsterModule,\n AngularDraggableModule,\n DragDropModule,\n SlickCarouselModule,\n QueryBuilderModule,\n SnotifyModule,\n OwlDateTimeModule,\n OwlNativeDateTimeModule,\n InfiniteScrollModule,\n ToastUiImageEditorModule,\n QRCodeModule,\n ResizableModule,\n QuillModule,\n MonacoEditorModule,\n NgxJsonViewerModule,\n PdfViewerModule,\n MentionModule,\n AngularResizeEventModule,\n Ng2GoogleChartsModule,\n LazyLoadImageModule\n ]\n})\nexport class OthersModule { }\n","import { LoginComponent } from '../component_v2/login/login.component';\nimport { ContentPage } from '../components/pages/content.page';\nimport { NotFound404Page } from '../components/pages/404-page/not-found404.page';\nimport { PermissionDeniedPage } from '../components/pages/not-permitted.page';\nimport { SettingsPage } from '../components/pages/settings.page';\nimport {HeaderComponent} from \"../component_v2/header/header.component\";\nimport {ForgotPasswordComponent} from \"../component_v2/forgot-password/forgot-password.component\";\nimport {OTPDialogComponent} from \"../component_v2/forgot-password/OTPDialog/OTP-dialog\";\nimport { AccessDeniedPage } from '../components/pages/403-page/403-page.component';\nimport {IntegrationComponent} from \"../components/integration/integration.component\";\nimport { DashboardComponent } from '../component_v2/dashboard/dashboard.component';\nimport { WithoutDashboardComponent } from '../component_v2/dashboard/without-dashboard/without-dashboard.component';\nimport { MyAppsComponent } from '../component_v2/dashboard/my-apps/my-apps.component';\n\nexport const APP_PAGES = [\n NotFound404Page,\n ContentPage,\n SettingsPage,\n PermissionDeniedPage,\n LoginComponent,\n ForgotPasswordComponent,\n OTPDialogComponent,\n HeaderComponent,\n AccessDeniedPage,\n IntegrationComponent,\n DashboardComponent,\n WithoutDashboardComponent,\n MyAppsComponent\n];\n","import { DynamicComponentInjector } from '../services/dynamic.component.service';\nimport { SettingsService } from '../services/settings.service';\nimport { LayoutService } from '../services/layout.service';\nimport { DataService } from '../services/data.service';\nimport { MetaService, OutputService } from '../services/meta.service';\nimport { KeyboardShortcuts } from '../helpers/keyboard.helper';\nimport { WorkflowService } from '../services/workflow.service';\nimport {\n DataModelService, ContainerEnumService, SelfServiceSecurityService, SelfServiceObjectService\n} from '../services/datamodel.service';\nimport { DynamicDataService } from '../services/dynamicdata.service';\nimport { MediaService } from '../services/media.service';\nimport { StandardRequestBase } from '../services/request-base';\nimport { UsersService } from '../services/users.service';\nimport { SecurityService } from '../services/security.service';\nimport { WebsocketService } from '../services/websocket.service';\nimport { RolesService } from '../services/roles.service';\nimport { FormulaService } from '../services/formula.service';\nimport { LogsService } from '../services/logs.service';\nimport { PermissionsService } from '../services/permissions.service';\nimport { SchedulerService } from '../services/scheduler.service';\nimport { GlobalVariableService } from '../services/globalvariable.service';\nimport { LanguageService } from '../services/language.service';\nimport { TranslationService } from '../services/translation.service';\nimport { ScriptLibraryService } from '../services/scriptlibrary.service';\nimport { UserSettingsService } from '../services/usersettings.service';\nimport { OfflineService } from '../services/offline.service';\nimport { GeneralSettingsService } from '../services/generalsettings.service';\nimport { WebHookService } from '../services/webhook.service';\nimport { DebugService } from '../services/debug.service';\nimport { CanDeactivateContentPage } from '../app.routing';\nimport { MailSettingsService } from '../services/mailsettings.service';\nimport { CustomRestService } from '../services/customrest.service';\nimport { NumberCircleService } from '../services/numbercircle.service';\nimport { ConnectorService } from '../services/connector.service';\nimport { CollaborationService } from '../services/collaboration.service';\nimport { GitService } from '../services/git.service';\nimport { MonitoringService } from '../services/monitoring.service';\nimport { AppBuilderSettingsService } from '../services/appbuildersettings.service';\nimport { WorkerService } from '../services/worker.service';\nimport { DebugScriptBreakpointSettingsControl } from '../debugconsole/workflow/debug.script.breakpoint.control';\nimport { JiraService } from '../services/jira.service';\nimport { WebPushService } from '../services/webpush.service';\nimport { GADateTimeAdapter, GAIntl } from '../services/owl.services';\nimport { CapsuleService } from '../services/capsule.service';\nimport { ChangeLogService } from '../services/changelog.service';\nimport { VersioningService } from '../services/versioning.service';\nimport { AgentService } from '../services/agent.service';\nimport {ExternalRestEndPoint} from \"../services/external-rest-endpoints.service\";\nimport {MobileConfigService} from \"../services/mobile-config.service\";\nimport {GlobalSearchService} from \"../services/global-search.service\";\nimport { RefreshTokenService } from '../services/refresh-token.service';\n\nexport const APP_SERVICES = [\n AppBuilderSettingsService,\n DynamicComponentInjector,\n SettingsService,\n LayoutService,\n DataService,\n MetaService,\n KeyboardShortcuts,\n WorkflowService,\n DataModelService,\n DynamicDataService,\n MediaService,\n StandardRequestBase,\n UsersService,\n SecurityService,\n ContainerEnumService,\n WebsocketService,\n FormulaService,\n RolesService,\n PermissionsService,\n LogsService,\n SchedulerService,\n GlobalVariableService,\n SelfServiceSecurityService,\n SelfServiceObjectService,\n LanguageService,\n TranslationService,\n ScriptLibraryService,\n JiraService,\n AgentService,\n UserSettingsService,\n OfflineService,\n GeneralSettingsService,\n WebHookService,\n DebugService,\n CanDeactivateContentPage,\n OutputService,\n CustomRestService,\n MailSettingsService,\n NumberCircleService,\n ConnectorService,\n CollaborationService,\n MonitoringService,\n GitService,\n WebPushService,\n WorkerService,\n GADateTimeAdapter,\n GAIntl,\n CapsuleService,\n ChangeLogService,\n VersioningService,\n ExternalRestEndPoint,\n MobileConfigService,\n GlobalSearchService,\n RefreshTokenService,\n \n { provide: LayoutService.CONTAINER_DATA, useValue: undefined },\n { provide: DebugScriptBreakpointSettingsControl.SCRIPT_DEBUG_DATA, useValue: undefined }\n];\n","import { AboutSettings } from '../settings/about/about.settings';\nimport { DeploymentActionsDetail, DeploymentActionsSettings } from '../settings/actions/deployactions.settings';\nimport { AgentDetail, AgentSettings } from '../settings/agent/agent.settings';\nimport { CapsuleOverviewPage } from '../settings/capsuleoverview/capsule.overview.page';\nimport { ChangeLogOverview } from '../settings/changelogoverview/changelog.overview';\nimport { SaveChangeLogDialog } from '../settings/changelogoverview/save.changelog.dialog';\nimport { AppBuilderSettings } from '../settings/ci/appbuilder/appbuilder.settings';\nimport { ChartPaletteDetail, ChartPaletteSettings } from '../settings/ci/chartpalette/chart.palette.settings';\nimport { ControlStylesDetail, ControlStylesSettings } from '../settings/ci/controlstyles/control.styles.settings';\nimport { CustomCSSDetail, CustomCSSSettings } from '../settings/ci/customcss/customcss.settings';\nimport { CustomCSSVarsDetail, CustomCSSVarsSettings } from '../settings/ci/customcssvars/customcssvars.settings';\nimport { FontSettings } from '../settings/ci/fonts/font.settings';\nimport { IconSettings } from '../settings/ci/icons/icon.settings';\nimport { MetaTagsDetail, MetaTagsSettings } from '../settings/ci/tags/metatags.settings';\nimport { ThemesDetail, ThemeSettings } from '../settings/ci/theme/theme.settings';\nimport { ABaseElementNameControl } from '../settings/common/abaseelement.name.control';\nimport { ConnectorOverviewDetail, ConnectorOverviewSettings } from '../settings/connector/connector.overview.settings';\nimport { ConnectorScriptsDetail, ConnectorScriptsSettings } from '../settings/connector/scripts/connector.scripts.settings';\nimport { ConnectorWorkflowMappingSettings } from '../settings/connector/wfmapping/connector.wfmapping.settings';\nimport { DataModelSettings } from '../settings/datamodel/datamodel.settings';\nimport { DataSourceSettings } from '../settings/datamodel/datasource/datasource.settings';\nimport { DBInfoInteractivePropertyControl } from '../settings/datamodel/datasource/datasourcepanels/dbinfo.interactive.property.control';\nimport { MediaSourceSettings } from '../settings/datamodel/mediasource/mediasource.settings';\nimport { GitSettings } from '../settings/development/git/git.settings';\nimport { CustomRestDetail, CustomRestSettings } from '../settings/external/customrest/customrest.settings';\nimport { GeneralSettings } from '../settings/general/general.settings';\nimport { GlobalVariableDetail, GlobalVariableSettings } from '../settings/globalvariable/globalvariable.settings';\nimport { GroupDetail, GroupsSettings } from '../settings/groups/groups.settings';\nimport { JiraDetail, JiraSettings } from '../settings/jira/jira.settings';\nimport { JobsSettings } from '../settings/jobs/jobs.settings';\nimport { LanguageSettings } from '../settings/languages/languages.settings';\nimport { LayoutEventsDetail, LayoutEventsSettings } from '../settings/layoutevents/layout.events.settings';\nimport { LogsSettings } from '../settings/logsettings/logs.settings';\nimport { LogsMailDetail, LogsMailSettings } from '../settings/logsettings/logsmails/logsmails.settings';\nimport { MailDetail, MailSettings } from '../settings/mail/mail.settings';\nimport { NavigationOverviewDetail, NavigationOverwiewSettings } from '../settings/navigation/overview/navigation.overview.settings';\nimport { NavigationOverviewVersionSettings } from '../settings/navigation/overview/navigation.overview.version.settings';\nimport { NavigationStructureSettings } from '../settings/navigation/structure/navigation.structure.settings';\nimport { NumberCircleDetail, NumberCircleSettings } from '../settings/numbercircles/numbercircle.settings';\nimport { OutputDetail, OutputSettings } from '../settings/output/output.settings';\nimport { RepeatingChooser } from '../settings/output/repeating.chooser';\nimport { PagesDetail } from '../settings/pages/pages.detail';\nimport { PagesSettings } from '../settings/pages/pages.settings';\nimport { PagesVersionSettings } from '../settings/pages/pages.version.settings';\nimport { AmazonForm } from '../settings/provider/amazon/amazon.form';\nimport { AzureADForm } from '../settings/provider/azuread/azuread.form';\nimport { FacebookForm } from '../settings/provider/facebook/facebook.form';\nimport { GoogleForm } from '../settings/provider/google/google.form';\nimport { IdentityForm } from '../settings/provider/identity/identity.form';\nimport { IdentityMFAMailDialog } from '../settings/provider/identity/identity.mfa.mail.dialog';\nimport { InstagramForm } from '../settings/provider/instagram/instagram.form';\nimport { LdapForm } from '../settings/provider/ldap/ldap.form';\nimport { LinkdidForm } from '../settings/provider/linkdid/linkdid.form';\nimport { ProviderDetail, ProviderSettings } from '../settings/provider/provider.settings';\nimport { SimpleForm } from '../settings/provider/simple/simple.form';\nimport { TwitterForm } from '../settings/provider/twitter/twitter.form';\nimport { ChildRoleSettings } from '../settings/roles/childRoles/childroles.settings';\nimport { ContainerFieldSecDialog, ContainerSecuritySettings } from '../settings/roles/container/container.settings';\nimport { EnumSecuritySettings } from '../settings/roles/enumSec/enumsec.settings';\nimport { PermissionsPage } from '../settings/roles/permissions/permissions.page';\nimport { RoleDetail, RoleSettings } from '../settings/roles/roles.settings';\nimport { CCOTriggerControl } from '../settings/scheduler/controls/triggercontrols/cco.trigger.control';\nimport { FileSystemTriggerControl } from '../settings/scheduler/controls/triggercontrols/filesystem.trigger.control';\nimport { FTPTriggerControl } from '../settings/scheduler/controls/triggercontrols/ftp.trigger.control';\nimport { MailTriggerControl } from '../settings/scheduler/controls/triggercontrols/mail.trigger.control';\nimport { TimeTriggerControl } from '../settings/scheduler/controls/triggercontrols/time.trigger.control';\nimport { WebHookTriggerControl } from '../settings/scheduler/controls/triggercontrols/webhook.trigger.control';\nimport {\n CapsuleExportWorkerControl\n} from '../settings/scheduler/controls/workercontrols/capsuleexport/capsule.export.worker.control';\nimport {\n CapsuleImportWorkerControl\n} from '../settings/scheduler/controls/workercontrols/capsuleimport/capsule.import.worker.control';\nimport { DBBackupControl } from '../settings/scheduler/controls/workercontrols/dbbackup/dbbackup.worker.control';\nimport { WorkflowWorkerControl } from '../settings/scheduler/controls/workercontrols/workflow/workflow.worker.control';\nimport { SchedulerDetail, SchedulerSettings } from '../settings/scheduler/scheduler.settings';\nimport { ScriptLibraryDetail, ScriptLibrarySettings } from '../settings/scriptlibrary/scriptlibrary.settings';\nimport { ScriptLibraryVersionSettings } from '../settings/scriptlibrary/scriptlibrary.version.settings';\nimport { SystemPassThroughDetail, SystemPassThroughSettings } from '../settings/systemdatabase/systempassthrough.settings';\nimport { TemplateDetail, TemplateInfo, TemplateSettings } from '../settings/templates/templates.settings';\nimport { TemplatesVersionSettings } from '../settings/templates/templates.version.settings';\nimport { TranslationsSettings } from '../settings/translations/translations.settings';\nimport { UserProviderDetail, UserProviderSettings } from '../settings/user/user.provider.settings';\nimport { UserDetail, UserSettings } from '../settings/user/user.settings';\nimport { VersioningOverview } from '../settings/versioningoverview/versioning.overview';\nimport { EditWorkflowGroupDialog } from '../settings/workflow/edit.workflow.group.dialog';\nimport { WorkflowDetail, WorkflowSettings, WorkflowTemplateSettings } from '../settings/workflow/workflow.settings';\nimport { WorkflowVersionSettings } from '../settings/workflow/workflow.version.settings';\nimport {GenerateMobileAppComponent} from \"../components/generate-mobile-app/generate-mobile-app.component\";\nimport {SystemIconSettings} from \"../settings/ci/system-icons/system-icon.settings\";\nimport { HelpCenterComponent } from '../component_v2/help-center/help-center.component';\nimport {PersonalSettingsComponent} from \"../component_v2/personal-settings/personal-settings.component\";\nimport { HeaderComponent } from '../component_v2/header/header.component';\nimport { MessageCenterDialog } from '../component_v2/header/messagecenter.dialogue';\nimport { UserMenuControl } from '../component_v2/header/usermenu.component';\nimport { HelpMenuControl } from '../component_v2/header/help.menu/help.menu';\nimport { LiveAgentChatButtonComponent } from '../component_v2/help-center/live-agent-chat-button/live-agent-chat-button.component';\nimport {UserRoleSettings} from \"../settings/user-roles/user-roles.settings\";\nimport {UserPermissionsSettings} from \"../settings/user-permissions/user-permissions.settings\";\n\nexport const APP_SETTINGS = [\n WorkflowSettings,\n WorkflowTemplateSettings,\n WorkflowDetail,\n WorkflowVersionSettings,\n EditWorkflowGroupDialog,\n TemplateSettings,\n TemplateDetail,\n TemplatesVersionSettings,\n TemplateInfo,\n ProviderSettings,\n ProviderDetail,\n LdapForm,\n AzureADForm,\n AmazonForm,\n SimpleForm,\n GoogleForm,\n FacebookForm,\n IdentityForm,\n IdentityMFAMailDialog,\n InstagramForm,\n LinkdidForm,\n TwitterForm,\n MailSettings,\n MailDetail,\n LanguageSettings,\n TranslationsSettings,\n UserSettings,\n UserDetail,\n UserProviderSettings,\n UserProviderDetail,\n LogsSettings,\n JobsSettings,\n PermissionsPage,\n RoleSettings,\n RoleDetail,\n UserRoleSettings,\n UserPermissionsSettings,\n EnumSecuritySettings,\n ChildRoleSettings,\n GroupsSettings,\n GroupDetail,\n SchedulerSettings,\n SchedulerDetail,\n WorkflowWorkerControl,\n DBBackupControl,\n TimeTriggerControl,\n DataModelSettings,\n DataSourceSettings,\n ContainerSecuritySettings,\n ContainerFieldSecDialog,\n MediaSourceSettings,\n CapsuleExportWorkerControl,\n CapsuleImportWorkerControl,\n IconSettings,\n SystemIconSettings,\n FontSettings,\n GlobalVariableSettings,\n GlobalVariableDetail,\n MailTriggerControl,\n FTPTriggerControl,\n FileSystemTriggerControl,\n WebHookTriggerControl,\n CCOTriggerControl,\n //ContextMenuSettings,\n //ContextMenuDetail,\n ControlStylesSettings,\n ControlStylesDetail,\n ABaseElementNameControl,\n OutputSettings,\n OutputDetail,\n RepeatingChooser,\n AboutSettings,\n MetaTagsSettings,\n MetaTagsDetail,\n ThemeSettings,\n ThemesDetail,\n SystemPassThroughSettings,\n SystemPassThroughDetail,\n PagesSettings,\n PagesDetail,\n PagesVersionSettings,\n NavigationOverwiewSettings,\n NavigationOverviewDetail,\n NavigationOverviewVersionSettings,\n NavigationStructureSettings,\n //WidgetSettings,\n //WidgetDetail,\n DeploymentActionsSettings,\n DeploymentActionsDetail,\n CustomCSSVarsSettings,\n CustomCSSVarsDetail,\n ScriptLibrarySettings,\n ScriptLibraryDetail,\n ScriptLibraryVersionSettings,\n JiraSettings,\n JiraDetail,\n GeneralSettings,\n DBInfoInteractivePropertyControl,\n CustomRestSettings,\n CustomRestDetail,\n NumberCircleSettings,\n NumberCircleDetail,\n ConnectorOverviewSettings,\n ConnectorOverviewDetail,\n ConnectorScriptsSettings,\n ConnectorScriptsDetail,\n ConnectorWorkflowMappingSettings,\n LayoutEventsSettings,\n LayoutEventsDetail,\n LogsMailSettings,\n LogsMailDetail,\n GitSettings,\n AppBuilderSettings,\n CustomCSSSettings,\n CustomCSSDetail,\n ChartPaletteSettings,\n ChartPaletteDetail,\n CapsuleOverviewPage,\n ChangeLogOverview,\n SaveChangeLogDialog,\n VersioningOverview,\n AgentSettings,\n AgentDetail,\n HelpCenterComponent,\n GenerateMobileAppComponent,\n PersonalSettingsComponent,\n HeaderComponent,\n MessageCenterDialog,\n UserMenuControl,\n HelpMenuControl,\n LiveAgentChatButtonComponent,\n];\n","import { BorderThemeControl } from \"../appbuilder/controls/borderselection/borderselection.theme.control\";\nimport { BoxShadowThemeControl } from \"../appbuilder/controls/boxshadow/boxshadow.theme.control\";\nimport { ButtonThemeControl } from \"../appbuilder/controls/button/button.theme.control\";\nimport { CheckBoxThemeControl } from \"../appbuilder/controls/checkbox/checkbox.control\";\nimport { ColorpickerThemeControl } from \"../appbuilder/controls/colorpicker/colorpicker.theme.control\";\nimport { ComboboxThemeControl } from \"../appbuilder/controls/combobox/combobox.theme.control\";\nimport { DateTimeThemeControl } from \"../appbuilder/controls/datetime/datetime.control\";\nimport { FileSelectionThemeControl } from \"../appbuilder/controls/fileselection/fileselection.theme.control\";\nimport { FormulaTextBoxThemeControl } from \"../appbuilder/controls/formulabox/formula.textbox.theme.control\";\nimport { GradientpickerThemeControl } from \"../appbuilder/controls/gradientpicker/gradientpicker.theme.control\";\nimport { HeaderThemeControl } from \"../appbuilder/controls/header/header.theme.control\";\nimport { InputswitchThemeControl } from \"../appbuilder/controls/inputswitch/inputswitch.theme.control\";\nimport { ListBoxThemeControl } from \"../appbuilder/controls/listbox/listbox.theme.control\";\nimport { MonacoThemeControl } from \"../appbuilder/controls/monaco/monaco.theme.control\";\nimport { TextAreaThemeControl } from \"../appbuilder/controls/textarea/textarea.theme.control\";\nimport { TextboxThemeControl } from \"../appbuilder/controls/textbox/textbox.theme.control\";\nimport { TogglebuttonThemeControl } from \"../appbuilder/controls/togglebutton/togglebutton.theme.control\";\nimport { TogglebuttongroupThemeControl } from \"../appbuilder/controls/togglebuttongroup/togglebuttongroup.theme.control\";\nimport { TranslationTextBoxThemeControl } from \"../appbuilder/controls/translation/translation.textbox.theme.control\";\n\nexport const APP_THEME_CONTROLS = [\n ComboboxThemeControl,\n DateTimeThemeControl,\n TextboxThemeControl,\n InputswitchThemeControl,\n ColorpickerThemeControl,\n GradientpickerThemeControl,\n TogglebuttongroupThemeControl,\n TogglebuttonThemeControl,\n ButtonThemeControl,\n TranslationTextBoxThemeControl,\n CheckBoxThemeControl,\n ListBoxThemeControl,\n FormulaTextBoxThemeControl,\n FileSelectionThemeControl,\n TextAreaThemeControl,\n HeaderThemeControl,\n BorderThemeControl,\n BoxShadowThemeControl,\n MonacoThemeControl\n]","import { ActionsWidget } from \"../components/widgets/actions/actions.widget\";\n\nexport const APP_WIDGETS = [\n ActionsWidget\n];","import { LayoutWizardDialog } from '../components/wizards/layout/layout.wizard.dialog';\n\nexport const APP_WIZARDS = [\n LayoutWizardDialog\n];\n","import { NgModule } from \"@angular/core\";\nimport { ChartsModule } from \"../components/chart/chart.module\";\nimport { DataTableModule } from \"../components/datatable/datatable.module\";\n\n@NgModule({\n imports: [\n DataTableModule,\n ChartsModule\n ],\n exports: [\n DataTableModule,\n ChartsModule\n ]\n})\nexport class EviControlsModule { }","import { ContainerSelectDialog } from '../components/dialogs/containerSelect.dialog';\nimport { RelationOverviewDialogComponent } from '../components/dialogs/relation.overview.dialog';\nimport { TranslatedStringDialogComponent } from '../components/dialogs/translatedstring.dialog';\nimport { ConditionalFilterDialog } from '../components/menutabs/filtertree/conditional.filter.dialog';\nimport { DeleteTaskDialog } from '../components/objectcreator/helper/delete.task.dialog';\nimport { ReplaceElementDialog } from '../components/objectcreator/helper/replace.element.dialog';\n\nexport const MAC_DIALOGS = [\n ContainerSelectDialog,\n RelationOverviewDialogComponent,\n TranslatedStringDialogComponent,\n DeleteTaskDialog,\n ReplaceElementDialog,\n ConditionalFilterDialog\n];\n","import { MacTablePropertyMenuTab } from '../components/reportobjectmenus/table/mactable.menu.tab';\nimport { QuerySelectMenuTab } from '../components/reportobjectmenus/query/query.menu.tab';\nimport { ChartReportObjectMenuTab, ChartPropertyMenuTab } from '../components/reportobjectmenus/chart/chart.menu.tab';\nimport { SeriesReportObjectMenuControl } from '../components/reportobjectmenus/chart/series.menu.control';\nimport { FilterTreeMenuTab } from '../components/menutabs/filtertree/filtertree.menu.tab';\nimport { MacTableSumMenuTab } from '../components/reportobjectmenus/table/sum.menu.tab';\nimport { MacTableExpandMenuTab } from '../components/reportobjectmenus/table/expand.menu.tab';\nimport { MacTableFormatMenuTab } from '../components/reportobjectmenus/table/format.menu.tab';\nimport { MacTableSizeMenuTab } from '../components/reportobjectmenus/table/size.menu.tab';\nimport { MacTableFixMenuTab } from '../components/reportobjectmenus/table/fix.menu.tab';\nimport { FilterDropdownMenuTab } from '../components/menutabs/filtertree/filter.dropdown.menu.tab';\nimport { MacPlanningPropertyMenuTab } from '../components/reportobjectmenus/planning/planning.menu.tab';\nimport { QueriesSelectMenuTab } from '../components/reportobjectmenus/query/queries.menu.tab';\nimport { MacPlanningSizeMenuTab } from '../components/reportobjectmenus/planning/size.menu.tab';\nimport { MacPlanningActiveCellMenuTab } from '../components/reportobjectmenus/planning/activecell.menu.tab';\nimport { MacPlanningReferencesMenuTab } from '../components/reportobjectmenus/planning/references.menu.tab';\nimport { MacPlanningFormatMenuTab } from '../components/reportobjectmenus/planning/planning.format.menu.tab';\nimport { MacPlanningSheetsMenuTab } from '../components/reportobjectmenus/planning/sheets.menu.tab';\nimport { AxisMenuTab } from '../components/reportobjectmenus/chart/axis.menu.tab';\n\nexport const MAC_MENUTABS = [\n MacTablePropertyMenuTab,\n MacTableSumMenuTab,\n MacTableExpandMenuTab,\n MacTableFixMenuTab,\n MacTableFormatMenuTab,\n MacTableSizeMenuTab,\n QuerySelectMenuTab,\n QueriesSelectMenuTab,\n ChartReportObjectMenuTab,\n AxisMenuTab,\n SeriesReportObjectMenuControl,\n ChartPropertyMenuTab,\n FilterTreeMenuTab,\n FilterDropdownMenuTab,\n MacPlanningPropertyMenuTab,\n MacPlanningSizeMenuTab,\n MacPlanningActiveCellMenuTab,\n MacPlanningReferencesMenuTab,\n MacPlanningFormatMenuTab,\n MacPlanningSheetsMenuTab\n];\n","import { DatadescriptionService } from '../services/datadescription.service';\nimport { MacNavigationService } from '../services/navigation.service';\nimport { RelSourceService } from '../services/relSource.service';\nimport { MultiReportingService, ReportingService } from '../services/reporting.service';\nimport { DynamicTimeSettingsService } from '../services/dynamictimesettings.service';\nimport { SeriesColumnsContentDirective } from '../components/reportobjectmenus/chart/series.menu.control';\nimport { PlanningService } from '../services/planning.service';\n\nexport const MAC_SERVICES = [\n RelSourceService,\n ReportingService,\n DynamicTimeSettingsService,\n MacNavigationService,\n DatadescriptionService,\n MultiReportingService,\n PlanningService\n];\n\nexport const MAC_DIRECTIVES = [\n SeriesColumnsContentDirective\n];\n","import { NgModule } from '@angular/core';\nimport {\n MatMomentDateModule\n} from '@angular/material-moment-adapter';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTreeModule } from '@angular/material/tree';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatListModule } from '@angular/material/list';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport {MatSnackBarModule} from '@angular/material/snack-bar';\n@NgModule({\n imports: [\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatSidenavModule,\n MatToolbarModule,\n MatProgressBarModule,\n MatSelectModule,\n MatProgressSpinnerModule,\n MatCheckboxModule,\n MatRadioModule,\n MatDialogModule,\n MatExpansionModule,\n MatAutocompleteModule,\n MatDatepickerModule,\n MatMomentDateModule,\n MatTabsModule,\n MatSlideToggleModule,\n MatTooltipModule,\n MatChipsModule,\n MatGridListModule,\n MatSliderModule,\n MatPaginatorModule,\n MatTreeModule,\n MatStepperModule,\n ScrollingModule,\n PortalModule,\n BidiModule,\n ClipboardModule,\n MatBadgeModule,\n PlatformModule,\n MatChipsModule,\n MatSnackBarModule\n ],\n exports: [\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatSidenavModule,\n MatToolbarModule,\n MatProgressBarModule,\n MatSelectModule,\n MatProgressSpinnerModule,\n MatCheckboxModule,\n MatRadioModule,\n MatDialogModule,\n MatExpansionModule,\n MatAutocompleteModule,\n MatDatepickerModule,\n MatMomentDateModule,\n MatTabsModule,\n MatSlideToggleModule,\n MatTooltipModule,\n MatChipsModule,\n MatGridListModule,\n MatSliderModule,\n MatPaginatorModule,\n MatTreeModule,\n MatStepperModule,\n ScrollingModule,\n PortalModule,\n BidiModule,\n ClipboardModule,\n MatBadgeModule,\n PlatformModule,\n MatChipsModule,\n MatSnackBarModule\n ]\n})\nexport class MaterialModule { }\n","import { NgModule } from \"@angular/core\"\nimport { ChartModule } from \"primeng/chart\"\nimport { CheckboxModule } from \"primeng/checkbox\"\nimport { ChipsModule } from \"primeng/chips\"\nimport { DragDropModule } from \"primeng/dragdrop\"\nimport { FileUploadModule } from \"primeng/fileupload\"\nimport { InputTextModule } from \"primeng/inputtext\"\nimport { InputTextareaModule } from \"primeng/inputtextarea\"\nimport { SliderModule } from \"primeng/slider\"\nimport { AutoCompleteModule } from \"primeng/autocomplete\"\nimport { DropdownModule } from \"primeng/dropdown\"\nimport { MultiSelectModule } from \"primeng/multiselect\"\nimport { ListboxModule } from \"primeng/listbox\"\nimport { TabViewModule } from \"primeng/tabview\"\nimport { ColorPickerModule } from \"primeng/colorpicker\"\nimport { TableModule } from \"primeng/table\"\nimport { TreeModule } from \"primeng/tree\"\nimport { MegaMenuModule } from \"primeng/megamenu\"\nimport { VirtualScrollerModule } from \"primeng/virtualscroller\"\nimport { SplitterModule } from \"primeng/splitter\"\nimport { KeyFilterModule } from \"primeng/keyfilter\"\nimport { InputSwitchModule } from \"primeng/inputswitch\"\nimport { SelectButtonModule } from \"primeng/selectbutton\"\nimport { AccordionModule } from \"primeng/accordion\"\nimport { TooltipModule } from \"primeng/tooltip\"\nimport { ToggleButtonModule } from \"primeng/togglebutton\"\nimport { EditorModule } from \"primeng/editor\"\nimport { ImageModule } from \"primeng/image\"\nimport { CarouselModule } from \"primeng/carousel\"\nimport { ChipModule } from \"primeng/chip\"\nimport { DialogModule } from \"primeng/dialog\"\nimport { GalleriaModule } from \"primeng/galleria\"\n\n@NgModule({\n imports: [\n FileUploadModule,\n DragDropModule,\n SliderModule,\n ChartModule,\n InputTextModule,\n CheckboxModule,\n InputTextareaModule,\n ChipsModule,\n AutoCompleteModule,\n DropdownModule,\n MultiSelectModule,\n ListboxModule,\n TabViewModule,\n ColorPickerModule,\n TableModule,\n TreeModule,\n MegaMenuModule,\n VirtualScrollerModule,\n SplitterModule,\n InputSwitchModule,\n SelectButtonModule,\n KeyFilterModule,\n AccordionModule,\n TooltipModule,\n ToggleButtonModule,\n EditorModule,\n ImageModule,\n FileUploadModule,\n CarouselModule,\n ChipModule,\n DialogModule,\n GalleriaModule,\n ],\n exports: [\n FileUploadModule,\n DragDropModule,\n ChartModule,\n SliderModule,\n InputTextModule,\n CheckboxModule,\n InputTextareaModule,\n ChipsModule,\n AutoCompleteModule,\n DropdownModule,\n MultiSelectModule,\n ListboxModule,\n TabViewModule,\n ColorPickerModule,\n TableModule,\n TreeModule,\n MegaMenuModule,\n VirtualScrollerModule,\n SplitterModule,\n InputSwitchModule,\n SelectButtonModule,\n KeyFilterModule,\n AccordionModule,\n TooltipModule,\n ToggleButtonModule,\n EditorModule,\n ImageModule,\n FileUploadModule,\n CarouselModule,\n ChipModule,\n DialogModule,\n GalleriaModule,\n ],\n})\nexport class PrimeNgModule {}\n","import moment from 'moment';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { Platform } from '@angular/cdk/platform';\nimport { LocationStrategy } from '@angular/common';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { ChangeDetectorRef, Component, ElementRef, NgZone, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer, Meta, Title } from '@angular/platform-browser';\nimport { ActivatedRoute, NavigationEnd, NavigationStart, Router } from '@angular/router';\nimport { SwPush, SwUpdate } from '@angular/service-worker';\nimport { TranslateDefaultParser, TranslateService } from '@ngx-translate/core';\nimport { MaterialCssVarsService } from 'angular-material-css-vars';\nimport { ResizedEvent } from 'angular-resize-event';\nimport { plainToClass } from 'class-transformer';\nimport { SnotifyService } from 'ng-snotify';\nimport { FilterMatchMode, PrimeNGConfig } from 'primeng/api';\nimport { interval, Subject, Subscription } from \"rxjs\";\nimport { CacheService } from '../cache/cache.service';\nimport { DebugWindow } from '../debugconsole/debug.window';\nimport { AboutInfo } from '../helpers/about.info';\nimport { ClientHelper } from '../helpers/client.helper';\nimport { ClipboardHelper } from '../helpers/clipboard.helper';\nimport { GitHelper } from '../helpers/git.helper';\nimport { KeyboardShortcuts } from '../helpers/keyboard.helper';\nimport { LayoutHelper } from '../helpers/layout.helper';\nimport { LogoutHandler } from '../helpers/logout.handler';\nimport { NavigationHelper } from '../helpers/navigation.helper';\nimport { NetworkConnection } from '../helpers/network.helpers';\nimport { NotificationHelper } from '../helpers/notification.helper';\nimport { OfflineHelper } from '../helpers/offline.helper';\nimport { PermissionHelper } from '../helpers/permissions.helper';\nimport { PlatformHelper } from '../helpers/platform.helper';\nimport { RTLHelper } from '../helpers/rtl.helper';\nimport { ServiceRegistryHelper } from '../helpers/serviceregistry.helper';\nimport { ThemeHelper } from '../helpers/theme.helpers';\nimport { VariableHelper } from '../helpers/variable.helper';\nimport { WorkflowDebugHelper } from '../helpers/workflow.debug.helper';\nimport { MWSettingsRegistryHelper } from '../registries/settings/app.mw.settings';\nimport { MWWorkflowRegistryHelper } from '../registries/workflows/app.mw.workflow';\nimport { MACSettingsRegistryHelper } from '../registries/settings/mac.settings';\nimport { TaskRegistryHelper } from '../registries/tasks/mac.tasks';\nimport { MacWorkflowRegistryHelper } from '../registries/workflows/mac.workflows';\nimport { PageStatus } from '../models/page.status';\nimport { FormulaStatics } from '../models/basic/formulaEditor.model';\nimport { NotificationLevel } from '../models/enums/notificationlevel.enum';\nimport { OfflineStrategy } from '../models/enums/offlinestrategy.enum';\nimport { ViewType } from '../models/enums/viewtype.enum';\nimport { Layout } from '../models/layout.model';\nimport { Theme } from '../models/style/theme.model';\nimport { ActionRegistryHelper, DeploymentActionRegistryHelper } from '../registries/actions/actions.registry';\nimport { ComponentRegistryMac } from '../registries/controls/component.registry.mac.helper';\nimport { ComponentRegistryMiddle } from '../registries/controls/component.registry.middle.helper';\nimport { ComponentRegistryHelper } from '../registries/controls/component.registry';\nimport { SettingsRegistryHelper } from '../registries/settings/settings.registry';\nimport { WorkflowRegistryHelper } from '../registries/workflows/workflow.registry';\nimport { AppBuilderSettingsService } from '../services/appbuildersettings.service';\nimport { DataService } from '../services/data.service';\nimport { ContainerEnumService } from '../services/datamodel.service';\nimport { LAYOUTEVENTREGISTRY } from '../services/dynamic.component.service';\nimport { DynamicDataService } from '../services/dynamicdata.service';\nimport { GeneralSettingsService } from '../services/generalsettings.service';\nimport { GlobalVariableService } from '../services/globalvariable.service';\nimport { InterceptorSkipHeader } from '../services/interceptor.skip.header';\nimport { LanguageService } from '../services/language.service';\nimport { LayoutService } from '../services/layout.service';\nimport { MediaService } from '../services/media.service';\nimport { MetaService } from '../services/meta.service';\nimport { NavigationService } from '../services/navigation.service';\nimport { OfflineService } from '../services/offline.service';\nimport { PermissionsService } from '../services/permissions.service';\nimport { StandardRequestBase } from '../services/request-base';\nimport { RolesService } from '../services/roles.service';\nimport { SettingsService } from '../services/settings.service';\nimport { SideNavService } from '../services/sidenav.service';\nimport { UsersService } from '../services/users.service';\nimport { UserSettingsService } from '../services/usersettings.service';\nimport { WebPushService } from '../services/webpush.service';\nimport { WebsocketService } from '../services/websocket.service';\nimport { WorkerService } from '../services/worker.service';\nimport { WorkflowService } from '../services/workflow.service';\nimport { Location } from '@angular/common';\nimport * as CryptoJS from 'crypto-js';\ndeclare let FontFace: any;\n\n@Component({\n selector: 'appframework-root',\n templateUrl: './appframework.component.html',\n styleUrls: ['./appframework.component.css']\n})\nexport class AppFrameworkComponent implements OnInit, OnDestroy {\n //#region Properties\n unlisten;\n viewType: ViewType;\n Layout;\n User;\n Startup = true;\n menuOpen = false;\n OverlayStatus;\n LastWidth;\n Width;\n Height;\n ContentWidth;\n Loading = false;\n WebSocketActive = false;\n NoStructurePermission = false;\n LayoutEditMode = false;\n ActiveUrl;\n\n private _dirChangeSubscription = Subscription.EMPTY;\n Direction = 'ltr';\n\n @ViewChild('framework') frameworkRoot: ElementRef;\n //#endregion\n //#region Lifecycle\n constructor(private keyboardShortcuts: KeyboardShortcuts,\n private swPush: SwPush,\n private webpush: WebPushService,\n private translate: TranslateService,\n private iconRegistry: MatIconRegistry,\n private sanitizer: DomSanitizer,\n private http: HttpClient,\n private metaService: MetaService,\n private dataService: DataService,\n private rolesService: RolesService,\n private enumService: ContainerEnumService,\n private variableService: GlobalVariableService,\n private usersService: UsersService,\n private dynamicDataService: DynamicDataService,\n private router: Router,\n snotify: SnotifyService,\n private route: ActivatedRoute,\n private mediaService: MediaService,\n private languageService: LanguageService,\n private permissionService: PermissionsService,\n private generalSettingsService: GeneralSettingsService,\n private meta: Meta,\n private title: Title,\n private stdRequestBase: StandardRequestBase,\n private usersettingsServie: UserSettingsService,\n private materialCssVarsService: MaterialCssVarsService,\n private workflowService: WorkflowService,\n public workerService: WorkerService,\n private offlineService: OfflineService,\n private swUpdate: SwUpdate,\n private config: PrimeNGConfig,\n private cdRef: ChangeDetectorRef,\n dir: Directionality,\n private appbuilderService: AppBuilderSettingsService,\n private cb: Clipboard,\n location: LocationStrategy,\n public platform: Platform,\n ngZone: NgZone,\n private locationUrl: Location) {\n PlatformHelper.Initialize(platform);\n NetworkConnection.init();\n RTLHelper.Initialize(dir);\n this.Direction = RTLHelper.Direction;\n RTLHelper.DirectionChanged.subscribe((value) => {\n this.Direction = value;\n })\n router.events.forEach((ev) => {\n if (ev instanceof NavigationStart) {\n if (this.viewType === ViewType.Edit) {\n LayoutService.ViewType.next(ViewType.View);\n }\n if (ev.navigationTrigger == 'popstate') {\n NavigationService.PopState.next(ev);\n }\n NavigationService.NavigationStart.next(ev.url);\n //CollaborationHelper.SetActiveChannel(null);\n }\n if (ev instanceof NavigationEnd) {\n this.ActiveUrl = ev.url;\n NavigationService.ActiveURL.next(ev.url);\n if (ClientHelper.StartUpCompleted.getValue()) {\n this.checkNavigationStruct().then();\n }\n this.cdRef.detectChanges();\n NavigationService.NavigationEnd.next(ev.url);\n }\n });\n\n NotificationHelper.Initialize(snotify, translate);\n ClipboardHelper.Init();\n LayoutService.Loading.subscribe((state) => {\n this.Loading = state;\n });\n\n this.User = this.usersService.initUserFromLocalStorage();\n const loggedOut = LogoutHandler.Initialize(ngZone);\n if (loggedOut) {\n this.User = null;\n }\n\n LayoutService.Loading.next(true);\n\n window.addEventListener('beforeunload', (e) => {\n let closePrevented = LayoutService.ViewType.getValue() == ViewType.Edit || LayoutService.PreventBrowserClose.getValue();\n NavigationService.BeforeUnload.next(closePrevented);\n if (closePrevented) {\n\n e.preventDefault();\n e.returnValue = '';\n\n setTimeout(() => {\n setTimeout(() => {\n NavigationService.CancelUnload.next(null);\n }, 500);\n }, 50);\n\n return '';\n }\n\n delete e['returnValue'];\n });\n window.addEventListener('unload', (e) => {\n NavigationService.OnUnload.next(null);\n });\n location.onPopState((ev) => {\n NavigationService.OnPopState.next(null);\n });\n }\n SubscribeWebSocketMessage() {\n WebsocketService.MessageReceived.subscribe((response) => {\n const parsed = JSON.parse(response);\n if (parsed.Level == NotificationLevel.System && parsed.Type == 'evidanza.Core.Service.Meta.MetaUpdateNotification') {\n const content = JSON.parse(parsed.Content);\n if (content.Class == 'evidanza.App.Shared.Data.Theme') {\n ThemeHelper.LoadThemes().then(() => {\n this.CheckTheme(true);\n });\n } else if (content.Class == 'evidanza.App.Shared.Data.CustomCSSVariable') {\n ThemeHelper.LoadCustomCSSVariables();\n } else {\n CacheService.RefreshSpecific(content.Class, content.ID);\n }\n } else if (parsed.Type === 'evidanza.App.Shared.Notification.ClientNotification' || parsed.Type === 'evidanza.Core.Base.Notification.UpdateMessage') {\n NotificationHelper.HandleClientNotification(parsed);\n } else if (parsed.Type === 'evidanza.App.Shared.Notification.ErrorMessage') {\n NotificationHelper.HandleErrorNotification(parsed);\n } else if (parsed.Type === 'evidanza.App.Shared.Meta.ChangeLogUndoNotification' && this.User) {\n const content = JSON.parse(parsed.Content);\n if (content && content.UserID == this.User.SID) {\n NotificationHelper.HandleClientNotification(parsed);\n }\n }\n });\n }\n AppConfig;\n ngOnInit(): void {\n const currentUrl = this.locationUrl.path();\n this.config.filterMatchModeOptions = {\n text: [\n FilterMatchMode.EQUALS,\n FilterMatchMode.NOT_EQUALS,\n FilterMatchMode.CONTAINS\n ],\n numeric: [\n FilterMatchMode.EQUALS,\n FilterMatchMode.NOT_EQUALS,\n FilterMatchMode.LESS_THAN,\n FilterMatchMode.LESS_THAN_OR_EQUAL_TO,\n FilterMatchMode.GREATER_THAN,\n FilterMatchMode.GREATER_THAN_OR_EQUAL_TO\n ],\n date: [\n FilterMatchMode.EQUALS,\n FilterMatchMode.NOT_EQUALS,\n FilterMatchMode.LESS_THAN,\n FilterMatchMode.LESS_THAN_OR_EQUAL_TO,\n FilterMatchMode.GREATER_THAN,\n FilterMatchMode.GREATER_THAN_OR_EQUAL_TO\n ]\n }\n const headers = new HttpHeaders().set(InterceptorSkipHeader, '');\n this.http.get('assets/config.json', { headers }).subscribe((result) => {\n if (result) {\n this.AppConfig = result;\n if (result['CLIENT_VERSION'] == \"MaC\") {\n //MaC\n ComponentRegistryMac.Initialize();\n MACSettingsRegistryHelper.Build();\n TaskRegistryHelper.Build();\n MacWorkflowRegistryHelper.Build();\n NavigationService.SelectedPage.subscribe(p => {\n PageStatus.ActualState.next(new PageStatus());\n });\n //MaC\n\n //Middleware\n ComponentRegistryMiddle.Initialize();\n MWSettingsRegistryHelper.Build();\n MWWorkflowRegistryHelper.Build();\n //Middleware\n } else if (result['CLIENT_VERSION'] == \"Middleware\") {\n //Middleware\n ComponentRegistryMiddle.Initialize();\n MWSettingsRegistryHelper.Build();\n MWWorkflowRegistryHelper.Build();\n //Middleware\n }\n if (result['API_BASE_URL']) {\n SettingsService.API_BASE_URL.next(result['API_BASE_URL']);\n\n ServiceRegistryHelper.Build();\n OfflineHelper.Initialize(this.offlineService, this.stdRequestBase, this.dynamicDataService, UsersService.Login, UsersService.Logout);\n\n const cache_active = !result['DEACTIVATE_CLIENT_CACHE'];\n\n CacheService.Initialize(cache_active, this.metaService, this.dataService, this.enumService, this.mediaService,\n this.permissionService, this.generalSettingsService, this.rolesService, this.variableService, this.workflowService).then(() => {\n GitHelper.Initialize().then((initialized) => {\n this.ConfigLoaded();\n });\n });\n }\n if (result['WEBSOCKET_URL']) {\n SettingsService.WEBSOCKET_URL.next(result['WEBSOCKET_URL']);\n WebsocketService.Initialize(result['WEBSOCKET_URL'], result['USE_WORKER']);\n if (this.User) {\n WebsocketService.Start();\n }\n WebsocketService.Active.subscribe((val) => {\n if (val == true) {\n CacheService.Refresh();\n this.WebSocketActive = val;\n }\n });\n this.SubscribeWebSocketMessage();\n }\n }\n if (!this.User) {\n if (this.AppConfig) {\n let encrypted = this.encryptAPIKey(this.AppConfig[\"DefaultAccessToken\"])\n localStorage.setItem(\"token\", encrypted)\n }\n }\n });\n LayoutHelper.InitSelectionListeners();\n LayoutService.OverlayStatus.subscribe((status) => {\n this.OverlayStatus = status;\n if (status) {\n LayoutService.TriggerEventsInEditMode.next(false);\n }\n });\n LayoutService.ResolutionSelected.subscribe((width) => {\n this.Width = this.ContentWidth;\n this.ContentWidth = width;\n if (width) {\n LayoutService.RootSize.next({ Width: width, Height: this.Height });\n } else {\n LayoutService.RootSize.next(null);\n }\n this.SetContentStyle();\n });\n LayoutService.ViewType.subscribe((vt) => {\n this.viewType = vt;\n LayoutService.OverlayStatus.next(vt === ViewType.Edit);\n this.cdRef.detectChanges();\n });\n LayoutService.LayoutEditMode.subscribe((x) => {\n this.LayoutEditMode = x;\n this.cdRef.detectChanges();\n });\n // if (currentUrl == \"/default/settings\") {\n // this.router.navigate([currentUrl+'/dashboard']);\n // }\n }\n\n ConfigLoaded() {\n\n if (this.swUpdate.isEnabled) {\n\n this.swUpdate.available.subscribe(() => {\n\n if (confirm(\"New version available. Load New Version?\")) {\n\n window.location.reload();\n }\n });\n }\n //#region GeneralSettings\n SettingsService.GeneralSettings.subscribe((settings) => {\n if (settings) {\n if (settings.GoogleMeasurementID) {\n this.loadGoogleAnalytics(settings.GoogleMeasurementID);\n }\n localStorage.setItem(\"GeneralSettings\", JSON.stringify(settings));\n } else {\n localStorage.removeItem(\"GeneralSettings\");\n }\n LogoutHandler.SetLogoutTime(settings);\n });\n if (NetworkConnection.Online.getValue()) {\n this.generalSettingsService.ReadAll().subscribe((settings) => {\n if (settings && settings.length > 0) {\n const actSetting = settings[0];\n SettingsService.GeneralSettings.next(actSetting);\n if (!this.User && actSetting.AnonymousUser && actSetting.AnonymousUser !== '00000000-0000-0000-0000-000000000000') {\n this.usersService.executeAnonymousLogin(actSetting.AnonymousUser);\n }\n WebPushService.UseWebPush.next(actSetting.UseWebPush);\n if (this.User && actSetting.UseWebPush) {\n this.RequestSubscription();\n }\n } else {\n SettingsService.GeneralSettings.next({\n Offline: {\n Active: false,\n Strategy: OfflineStrategy.NetworkFirst\n }\n });\n }\n });\n }\n //#endregion\n //#region QueryParams\n this.route.queryParams.subscribe((params) => {\n if (params) {\n NavigationService.Params.next(params);\n if (params['token']) {\n const res = JSON.parse(params['token']);\n if (res) {\n this.usersService.setTokenResult(res).then(user => {\n this.User = user;\n const copy = {};\n Object.keys(params).forEach(k => {\n if (k != 'token') {\n copy[k] = params[k];\n }\n });\n this.router.navigate([], { relativeTo: this.route, queryParams: copy });\n });\n }\n }\n if (params['providerid']) {\n localStorage.setItem('providerid', params['providerid']);\n }\n if (params['userid']) {\n this.usersService.findUser(params['userid']).subscribe((res) => {\n if (res) {\n this.User = res;\n localStorage.setItem('user', JSON.stringify(this.User));\n }\n })\n }\n } else {\n NavigationService.Params.next(null);\n }\n });\n //#endregion\n //#region MetaTags\n this.metaService.GetTags().subscribe((tags) => {\n if (tags) {\n tags.forEach((tag) => {\n if (tag.Key === \"title\") {\n this.title.setTitle(tag.Value);\n }\n this.meta.updateTag({ name: tag.Key, content: tag.Value });\n });\n }\n });\n //#endregion\n VariableHelper.Initialize(this.usersettingsServie);\n //#region LoadCustomCSSVars\n ThemeHelper.Initialize(this.materialCssVarsService, this.metaService, this.appbuilderService);\n ThemeHelper.SetCustomVariables();\n ThemeHelper.SetTheme(null);\n //#endregion\n WorkflowDebugHelper.Init();\n //#region Translation\n this.translate.setDefaultLang('9');\n this.stdRequestBase.executeGet('config/api/config', 'GetSelectedLanguages').subscribe(languages => {\n if (languages && languages.length > 0) {\n let lang;\n let savedLang = localStorage.getItem('SelectedLanguage');\n if (savedLang) {\n lang = languages.find((value) => value.LCID == savedLang);\n } else {\n let userLang = navigator.language;\n lang = languages.find((value) => value.Name == userLang);\n }\n\n let defaultLang = languages.find(value => value.IsDefault);\n if (defaultLang) {\n this.translate.setDefaultLang('' + defaultLang.LCID);\n }\n if (lang) {\n this.translate.use('' + lang.LCID);\n moment.locale(lang.Name);\n } else if (defaultLang) {\n this.translate.use('' + defaultLang.LCID);\n }\n }\n });\n if (this.translate.parser instanceof TranslateDefaultParser) {\n this.translate.parser.templateMatcher = /{\\s?([^{}\\s]*)\\s?}/g;\n }\n this.translate.onLangChange.subscribe((event) => {\n this.stdRequestBase.executeGet('config/api/config', 'GetSelectedLanguages').subscribe(languages => {\n if (languages && languages.length > 0) {\n let lang;\n let savedLang = localStorage.getItem('SelectedLanguage');\n if (savedLang) {\n lang = languages.find((value) => value.LCID == savedLang);\n } else {\n let userLang = navigator.language;\n lang = languages.find((value) => value.Name == userLang);\n }\n if (lang) {\n RTLHelper.Direction = lang.IsRightToLeft ? 'rtl' : 'ltr';\n moment.locale(lang.Name);\n }\n LanguageService.SelectedLanguage.next(lang);\n LanguageService.LanguageChanged.next(lang);\n }\n });\n })\n //#endregion\n\n ComponentRegistryHelper.Build();\n WorkflowRegistryHelper.Build();\n SettingsRegistryHelper.Build();\n ActionRegistryHelper.Build();\n DeploymentActionRegistryHelper.Build();\n FormulaStatics.Init();\n //CollaborationHelper.Init();\n\n //#region MediaSources\n this.mediaService.GetAll().subscribe((data) => {\n MediaService.MediaSources.next(data);\n });\n //#endregion\n //#region languages\n this.languageService.getLanguages().subscribe((data) => {\n LanguageService.Languages.next(data);\n });\n //#endregion\n //#region User\n UsersService.Login.subscribe((user) => {\n this.User = user;\n WebsocketService.Start();\n NotificationHelper.ClearMessages();\n CacheService.NavigationPermissionChanged.next(null);\n CacheService.RefreshGlobalVariableValues().then(() => { });\n\n if (this.User && WebPushService.UseWebPush.getValue()) {\n this.RequestSubscription();\n }\n });\n UsersService.BeforeLogout.subscribe(() => {\n var sub = WebPushService.ActiveSubscription.getValue();\n if (sub && this.User && WebPushService.UseWebPush.getValue()) {\n this.webpush.deleteSubscription(sub).subscribe(() => { });\n }\n });\n UsersService.Logout.subscribe(() => {\n this.User = null;\n WebsocketService.Stop();\n NotificationHelper.ClearMessages();\n LayoutService.ViewType.next(ViewType.View);\n });\n //#endregion\n //#region GlobalVariables\n if (this.User) {\n CacheService.RefreshGlobalVariableValues().then(() => { });\n }\n //#endregion\n\n LayoutService.ViewType.next(ViewType.View);\n LayoutService.SelectedLayout.subscribe((layout) => {\n this.Layout = layout;\n //LayoutService.Selection.next(null);\n });\n LayoutService.Theme.subscribe((theme) => {\n if (theme) {\n localStorage.setItem('theme', theme);\n }\n });\n //#region Add Keyboard Listener\n this.unlisten = this.keyboardShortcuts.listen(\n {\n 'F2': (event: KeyboardEvent): void => {\n LayoutService.KeyPress.next(event);\n event.preventDefault();\n },\n 'F12': (event: KeyboardEvent): void => {\n if (PermissionHelper.GetDebuggerPermission()) {\n DebugWindow.SwitchDebug();\n event.preventDefault();\n }\n },\n 'del': (event: KeyboardEvent): void => {\n if (this.viewType == ViewType.Edit) {\n LayoutService.KeyPress.next(event);\n event.preventDefault();\n }\n },\n 's.Control': (event: KeyboardEvent): void => {\n if (event.ctrlKey && this.viewType == ViewType.Edit) {\n LayoutService.KeyPress.next(event);\n event.preventDefault();\n }\n },\n 'i.Control': (event: KeyboardEvent): void => {\n if (event.ctrlKey) {\n AboutInfo.GetAboutInfo().then(x => {\n if (x) {\n this.cb.copy(x.getInfoText());\n }\n });\n event.preventDefault();\n }\n }\n },\n {\n priority: 100,\n terminalWhitelist: ['Escape']\n }\n );\n //#endregion\n\n this.metaService.ReadEventInfos().subscribe(x => {\n if (x) {\n x.forEach(y => {\n LAYOUTEVENTREGISTRY.push({\n ID: y.SID,\n Trigger: new Subject()\n });\n });\n }\n this.LoadIcons();\n }, err => {\n console.log('Error while loading layout events: ' + err);\n this.LoadIcons();\n });\n }\n\n RequestSubscription() {\n this.swPush.requestSubscription({\n serverPublicKey: \"BFpoSRrrbkqF4Y6wAaZ4HFL8qQYCG8tgN030sk14fN0zKeqTnfPJ35__1T0WOwTJkopyEGCjuLSMMVMNBNjC8rs\"\n })\n .then(sub => this.webpush.SaveSubscription(sub).subscribe())\n .catch(err => console.error(\"Could not subscribe to notifications\", err));\n\n this.swPush.notificationClicks.subscribe(({ action, notification }) => {\n let act = action.split('_');\n let payload = notification.data.actionsData[act[act.length - 1]];\n switch (act[0]) {\n case 'openurl':\n window.open(payload, '_blank');\n break;\n case 'close':\n break;\n }\n });\n }\n\n LoadIcons() {\n this.mediaService.LoadAllIcons().subscribe(result => {\n if (result) {\n const imageURL = result.URL.replace('icons', 'images');\n MediaService.IconURL.next(result.URL);\n MediaService.ImageURL.next(imageURL);\n const iconList = [];\n const gadgetList = [];\n result.IconNames.forEach(icon => {\n const sani = this.sanitizer.bypassSecurityTrustResourceUrl(result.URL + icon + '.svg');\n this.iconRegistry.addSvgIcon(icon, sani);\n if (icon.startsWith('gadget/')) {\n gadgetList.push(icon);\n } else {\n iconList.push(icon);\n }\n });\n MediaService.IconList.next(iconList);\n MediaService.GadgetList.next(gadgetList);\n } else {\n console.log('No icons loaded.');\n }\n //#region Navigation\n this.LoadFonts();\n //#endregion\n }, err => {\n //#region Navigation\n console.log('Error while loading icons: ' + err);\n this.LoadFonts();\n //#endregion\n });\n }\n\n LoadFonts() {\n this.mediaService.LoadAllFonts().subscribe(result => {\n if (result) {\n let fontClasses = [];\n if (!result.FontNames || result.FontNames.length == 0) {\n fontClasses = null;\n }\n //fontClasses.cssRules = new CSSRuleList();\n result.FontNames.forEach(font => {\n let customFont = new FontFace(font, 'url(' + result.URL + font + '.ttf' + ')');\n fontClasses.push('.ql-font-' + font + ' { font-family:\"' + font + '\"}');\n fontClasses.push('.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=\"' + font + '\"]::before, .ql-snow .ql-picker.ql-font .ql-picker-item[data-value=\"' + font + '\"]::before { content: \"' + font + '\"; font-family: \"' + font + '\"; padding-right: 20px; }')\n customFont.load().then((res) => {\n const fonts: any = document['fonts'];\n fonts.add(res);\n }).catch((error) => {\n console.log(error)\n });\n });\n if (fontClasses != null) {\n ThemeHelper.AppendCSS(fontClasses);\n }\n MediaService.FontURL.next(result.URL);\n MediaService.CustomFontList.next(result.FontNames);\n } else {\n console.log('No fonts loaded.');\n }\n this.LoadProfilePicURL();\n }, err => {\n console.log('Error while loading fonts: ' + err);\n this.LoadProfilePicURL();\n });\n }\n\n LoadProfilePicURL() {\n this.mediaService.GetProfilePicURL().subscribe(result => {\n if (result) {\n MediaService.ProfilePicURL.next(result);\n }\n //#region Navigation\n this.LoadNavigationItems();\n //#endregion\n }, err => {\n //#region Navigation\n console.log('Error while loading profile pic url: ' + err);\n this.LoadNavigationItems();\n //#endregion\n });\n }\n\n LoadNavigationItems() {\n SideNavService.Reload.subscribe(key => {\n const actStruct = SideNavService.SelectedNavigationStructure.getValue();\n if (actStruct === key) {\n this.setNavigation(key);\n }\n });\n CacheService.NavigationPermissionChanged.subscribe(() => {\n this.updateNavigationPermissions();\n });\n CacheService.ContentPermissionChanged.subscribe(key => {\n PermissionHelper.OnContentPermissionChanged(key);\n });\n PermissionHelper.Impersonate.subscribe(() => {\n if (ClientHelper.StartUpCompleted.getValue()) {\n this.updateNavigationPermissions();\n }\n });\n PermissionHelper.GetNavigationPermissions().then(() => {\n this.checkNavigationStruct().then(() => {\n if (this.User) {\n PermissionHelper.GetNavigationPermissions().then(() => {\n this.Startup = false;\n LayoutService.Loading.next(false);\n ClientHelper.StartUpCompleted.next(true);\n });\n } else {\n this.Startup = false;\n LayoutService.Loading.next(false);\n ClientHelper.StartUpCompleted.next(true);\n }\n });\n });\n }\n\n ngOnDestroy(): void {\n (this.unlisten) && this.unlisten();\n this._dirChangeSubscription.unsubscribe();\n }\n //#endregion\n ContentStyle;\n ScreenSizes = [\n {\n key: \"sm\",\n maxwidth: 768\n },\n {\n key: \"md\",\n minwidth: 768,\n maxwidth: 992\n },\n {\n key: \"lg\",\n minwidth: 992,\n maxwidth: 1200\n },\n {\n key: \"xl\",\n minwidth: 1200\n }\n ]\n ActiveSize;\n onResized(event: ResizedEvent) {\n if (event && event.newRect) {\n this.ContentWidth = event.newRect.width;\n let size = this.ScreenSizes.find((item) => (((item.minwidth < this.ContentWidth) || item.minwidth == null) && ((item.maxwidth > this.ContentWidth) || item.maxwidth == null)));\n if (size) {\n if (size.key != this.ActiveSize) {\n this.ActiveSize = size.key;\n NavigationService.ScreenSize.next(this.ActiveSize);\n }\n }\n\n if (this.ContentWidth != this.LastWidth) {\n this.LastWidth = this.ContentWidth;\n LayoutService.RootSize.next({ Width: this.ContentWidth, Height: this.Height });\n this.checkLoginLayoutSize();\n }\n\n this.SetContentStyle();\n }\n }\n SetContentStyle() {\n const result = {};\n if (this.ContentWidth && this.Layout) {\n result['max-width'] = this.ContentWidth + 'px';\n result['margin-left'] = 'auto';\n result['margin-right'] = 'auto';\n } else {\n result['width'] = '100%';\n }\n result['height'] = '100%';\n this.ContentStyle = result;\n }\n setNavigation(key) {\n if (key) {\n CacheService.ReadNavigation(key).then(x => {\n const navigation = NavigationHelper.BuildNavigation(x);\n SideNavService.SelectedNavigation.next(navigation);\n this.cdRef.detectChanges();\n });\n } else {\n SideNavService.SelectedNavigation.next({ NavigationItems: [] });\n this.cdRef.detectChanges();\n }\n }\n private generatePhrase(n: number): string {\n const alphabet = 'abcdefghijklmnopqrstuvwxyz';\n const startIndex = (n - 1) % 26;\n const firstPart = alphabet.slice(startIndex);\n const secondPart = alphabet.slice(0, 16 - firstPart.length);\n\n return (firstPart + secondPart).slice(0, 16);\n }\n private encryptAPIKey(apiKey: string): string {\n const secretKey = this.generatePhrase(this.AppConfig[\"Intervals\"]);\n const key = CryptoJS.enc.Utf8.parse(secretKey);\n const iv = CryptoJS.lib.WordArray.random(16);\n\n const encrypted = CryptoJS.AES.encrypt(apiKey, key, {\n iv: iv,\n padding: CryptoJS.pad.Pkcs7,\n mode: CryptoJS.mode.CBC\n });\n\n // Combine IV and encrypted data (Base64 encode both)\n const result = iv.concat(encrypted.ciphertext).toString(CryptoJS.enc.Base64);\n return result;\n }\n private setShowLoginVal(val: boolean = true, callingAgain: boolean = false) {\n this.ShowLogin = val;\n this.cdRef.detectChanges();\n return;\n }\n ShowLogin: boolean = true;\n private setShowLogin(x) {\n const currentUrl = window.location.pathname;\n //check if landing page Login Required is set to false in main navigation\n if (x !== null) {\n // console.log(\"nav nodesss ---> \", this.NavigationNodes)\n let currentUrlParts = currentUrl?.toLowerCase().split(\"/\").slice(1, currentUrl.length);\n if (currentUrlParts.length > 1) {\n if (x[\"LoginRequired\"] == false) {\n //Check if landing page matches with current url\n let navURL = \"/\" + x[\"_key\"]?.toLowerCase() + x[\"LandingPage\"]?.toLowerCase();\n if (navURL == currentUrl?.toLowerCase()) {\n this.setShowLoginVal(false);\n return;\n }\n }\n if (this.NavigationNodes) {\n let publicNode = this.NavigationNodes.find((res) => {\n let url = \"/\" + res[\"StructureKey\"]?.toLowerCase() + res[\"Url\"]?.toLowerCase();\n if (url == currentUrl?.toLowerCase() && res[\"LoginRequired\"] == false) {\n return res\n }\n })\n if (publicNode) {\n this.setShowLoginVal(false);\n return;\n }\n else {\n this.setShowLoginVal(true);\n return;\n }\n }\n this.setShowLoginVal(true);\n return;\n //It should be matched with nodes as well as landing page\n }\n else if (currentUrlParts.length == 1) {\n //It should be matched with landing page only\n if (x[\"LoginRequired\"] == false) {\n let navURL = \"/\" + x[\"_key\"]?.toLowerCase();\n if (navURL == currentUrl?.toLowerCase()) {\n this.setShowLoginVal(false);\n return;\n }\n }\n else {\n this.setShowLoginVal(true);\n return;\n }\n }\n else {\n this.setShowLoginVal(true);\n return;\n }\n\n // if (x[\"LoginRequired\"] == false) {\n // let currentUrlParts = currentUrl.split(\"/\").slice(1, currentUrl.length);\n // let navURL = \"\";\n // if (currentUrlParts.length > 1) {\n // navURL = \"/\" + x[\"_key\"]?.toLowerCase() + x[\"LandingPage\"]?.toLowerCase();\n // }\n // else if (currentUrlParts.length == 1) {\n // navURL = \"/\" + x[\"_key\"]?.toLowerCase();\n // }\n // //Currentl url is same as login page\n // if (navURL == currentUrl?.toLowerCase()) {\n // this.ShowLogin = false;\n // this.isPublicNav = true;\n // this.cdRef.detectChanges();\n // }\n // }\n }\n else {\n this.setShowLoginVal(true, true);\n return;\n }\n }\n NavigationStructures;\n SelectedNavigationStructure;\n NavigationNodes;\n private checkNavigationStruct() {\n const promise = new Promise(resolve => {\n if (this.ActiveUrl) {\n const splits = this.ActiveUrl.split('/');\n if (splits.length > 1) {\n const structKey = splits[1];\n const actStruct = SideNavService.SelectedNavigationStructure.getValue();\n if (structKey) {\n let internalURL = '';\n for (let i = 2; i < splits.length; i++) {\n internalURL += '/' + splits[i];\n }\n const queryIndex = internalURL.indexOf('?');\n if (queryIndex > -1) {\n internalURL = internalURL.substring(0, queryIndex);\n }\n const toLower = structKey.toLowerCase();\n if (actStruct && actStruct.toLowerCase() === toLower) {\n this.metaService.GetNavigationStructureByKey(actStruct).subscribe(nav => {\n if (nav) {\n this.SelectedNavigationStructure = nav;\n }\n this.metaService.GetNavigationNodesForStructure(actStruct).subscribe(nodes => {\n if (nodes.length) {\n this.NavigationNodes = nodes;\n }\n this.setShowLogin(nav)\n })\n })\n SideNavService.InternalURL.next(internalURL);\n resolve(true);\n } else {\n this.metaService.GetNavigationStructures().subscribe(nsList => {\n this.NavigationStructures = nsList;\n const ns = nsList.find(x => x.Caption.toLowerCase() === toLower);\n if (ns) {\n this.metaService.LoadNavigationStructureByKey(ns.Caption).subscribe(x => {\n this.SelectedNavigationStructure = x;\n this.metaService.GetNavigationNodesForStructure(ns.Caption).subscribe(nodes => {\n this.NavigationNodes = nodes;\n this.setShowLogin(x);\n this.updateSideNav(x, internalURL);\n })\n this.setShowLogin(x);\n this.updateSideNav(x, internalURL);\n resolve(true);\n });\n } else {\n this.updateSideNav(null, '');\n resolve(true);\n }\n });\n }\n } else {\n this.metaService.GetDefaultNavigationStructure().subscribe(x => {\n if (x) {\n if (actStruct !== x._key) {\n this.updateSideNav(x, '');\n }\n let url = x._key;\n if (x.LandingPage) {\n url += x.LandingPage;\n }\n this.router.navigateByUrl(url);\n if (!ClientHelper.StartUpCompleted.getValue()) {\n this.checkNavigationStruct().then(() => {\n resolve(true);\n });\n }\n } else {\n this.updateSideNav(null, '');\n resolve(true);\n }\n });\n }\n return;\n }\n }\n this.updateSideNav(null, '');\n resolve(true);\n });\n return promise;\n }\n\n ActiveNavigation;\n DefaultLogin = NavigationHelper.GetDefaultLoginLayout();\n DefaultBaseLayout = NavigationHelper.GetDefaultBaseLayout();\n LoginLayout;\n ActiveLoginLayout;\n ActiveTheme;\n updateSideNav(sideNav, internalURL) {\n this.ActiveNavigation = sideNav;\n this.CheckTheme(false);\n if (sideNav) {\n SideNavService.SelectedNavigationStructure.next(sideNav._key);\n if (sideNav.BaseLayout) {\n let Elements = []\n if (sideNav._key === 'default') {\n Elements = sideNav.BaseLayout.Elements.filter(x => (x.Name !== 'Header' && x.Name !== 'Body'));\n let bodyElement = sideNav.BaseLayout.Elements.find(x => x.Name === 'Body');\n bodyElement._Row = 1;\n sideNav.BaseLayout.Elements = [bodyElement, ...Elements];\n sideNav.BaseLayout._rowDefinitions = sideNav.BaseLayout._rowDefinitions.slice(1)\n sideNav.BaseLayout.RowDefinitions = sideNav.BaseLayout.RowDefinitions.slice(1)\n }\n LayoutService.BaseLayout.next(plainToClass(Layout, sideNav.BaseLayout));\n } else {\n if (this.ShowLogin == false && !this.User) {\n // Elements = this.DefaultBaseLayout.Elements.filter(x => (x._Name !== 'Header' && x._Name !== 'Content'));\n // let bodyElement = this.DefaultBaseLayout.Elements.find(x => x._Name === 'Content');\n // bodyElement.Row = 1;\n // this.DefaultBaseLayout.Elements = [bodyElement, ...Elements];\n // this.DefaultBaseLayout[\"RowDefinitions\"] = this.DefaultBaseLayout[\"RowDefinitions\"].slice(1);\n let HeaderElement = this.DefaultBaseLayout.Elements.find((x) => x._Name == \"Header\")\n if (HeaderElement) {\n //Remove the user avatar from header only if no user is logged in\n let updatedHeaderElements = HeaderElement[\"Elements\"].filter((elem) => elem._Name !== \"usermenu_1\")\n HeaderElement[\"Elements\"] = updatedHeaderElements;\n HeaderElement[\"ColumnDefinitions\"] = HeaderElement[\"ColumnDefinitions\"].slice(0, HeaderElement[\"ColumnDefinitions\"].length - 1)\n }\n // this.DefaultBaseLayout.RowDefinitions = sideNav.BaseLayout.RowDefinitions.slice(1)\n }\n LayoutService.BaseLayout.next(this.DefaultBaseLayout);\n }\n let oldManifest = document.getElementById('manifest');\n if (oldManifest) {\n document.head.removeChild(oldManifest);\n }\n if (sideNav.PWAIcon) {\n let absurl = location.origin + \"/\" + sideNav._key;\n let iconUrl = sideNav.PWAIcon;\n let manifest = {\n name: sideNav._key,\n short_name: sideNav._key,\n background_color: \"#fafafa\",\n display: \"standalone\",\n scope: absurl,\n start_url: absurl,\n theme_color: \"#1976d2\",\n icons: [\n {\n \"src\": iconUrl,\n \"sizes\": \"72x72\",\n \"type\": \"image/png\",\n \"purpose\": \"maskable any\"\n },\n {\n \"src\": iconUrl,\n \"sizes\": \"96x96\",\n \"type\": \"image/png\",\n \"purpose\": \"maskable any\"\n },\n {\n \"src\": iconUrl,\n \"sizes\": \"128x128\",\n \"type\": \"image/png\",\n \"purpose\": \"maskable any\"\n },\n {\n \"src\": iconUrl,\n \"sizes\": \"144x144\",\n \"type\": \"image/png\",\n \"purpose\": \"maskable any\"\n },\n {\n \"src\": iconUrl,\n \"sizes\": \"152x152\",\n \"type\": \"image/png\",\n \"purpose\": \"maskable any\"\n },\n {\n \"src\": iconUrl,\n \"sizes\": \"192x192\",\n \"type\": \"image/png\",\n \"purpose\": \"maskable any\"\n },\n {\n \"src\": iconUrl,\n \"sizes\": \"384x384\",\n \"type\": \"image/png\",\n \"purpose\": \"maskable any\"\n },\n {\n \"src\": iconUrl,\n \"sizes\": \"512x512\",\n \"type\": \"image/png\",\n \"purpose\": \"maskable any\"\n }\n ]\n };\n let content = encodeURIComponent(JSON.stringify(manifest));\n let url = \"data:application/manifest+json,\" + content;\n let element = document.createElement('link');\n element.id = 'manifest';\n element.rel = 'manifest';\n element.href = url;\n document.head.appendChild(element);\n } else {\n let element = document.createElement('link');\n element.id = 'manifest';\n element.rel = 'manifest';\n element.href = 'manifest.webmanifest';\n document.head.appendChild(element);\n }\n //#region FavIcon\n let link = document.createElement('link'),\n oldLink = document.getElementById('favicon');\n link.id = 'favicon';\n if (oldLink) {\n document.head.removeChild(oldLink);\n }\n if (sideNav.FAVIcon) { \n link.rel = 'shortcut icon';\n link.href = sideNav.FAVIcon;\n } else {\n link.rel = 'icon';\n link.href = 'favicon.ico';\n }\n document.head.appendChild(link);\n //#endregion\n if (sideNav.CSSFiles) {\n if (sideNav._key === 'default') {\n ThemeHelper.LoadCSSforDefault();\n } else {\n ThemeHelper.LoadCSS(sideNav.CSSFiles);\n }\n }\n if (sideNav.LoginLayout) {\n this.LoginLayout = plainToClass(Layout, sideNav.LoginLayout);\n } else {\n this.LoginLayout = null;\n }\n SideNavService.InternalURL.next(internalURL);\n this.setNavigation(sideNav._key);\n const permissions = PermissionHelper.ActiveNavigationPermissions.getValue();\n this.NoStructurePermission = permissions && permissions[sideNav._Id] === true;\n NotificationHelper.IgnoreErrorMessages = sideNav.IgnoreErrorMessages == true;\n } else {\n SideNavService.SelectedNavigationStructure.next(null);\n LayoutService.BaseLayout.next(null);\n this.LoginLayout = null;\n SideNavService.InternalURL.next('');\n this.setNavigation(null);\n this.NoStructurePermission = false;\n NotificationHelper.IgnoreErrorMessages = false;\n }\n this.checkLoginLayoutSize();\n }\n checkLoginLayoutSize() {\n let active = null;\n if (this.LoginLayout) {\n active = this.LoginLayout;\n const size = LayoutService.RootSize.getValue();\n if (size && active.Resolutions) {\n const sizeLayout = active.Resolutions.find((value) => size.Width > value.FromWidth && size.Width <= value.ToWidth);\n if (sizeLayout) {\n active = sizeLayout;\n }\n }\n }\n this.ActiveLoginLayout = active;\n }\n CheckTheme(forceUpdate) {\n if (this.ActiveNavigation) {\n if (this.ActiveNavigation.DefaultTheme) {\n if (!ThemeHelper.AcitveTheme || ((!(this.ActiveNavigation.AvailableThemes && this.ActiveNavigation.AvailableThemes.length > 0 && ThemeHelper.AcitveTheme && this.ActiveNavigation.AvailableThemes.indexOf(ThemeHelper.AcitveTheme['SID']) > -1)) || forceUpdate)) {\n this.SetTheme(this.ActiveNavigation.DefaultTheme);\n }\n } else {\n this.SetDefaultTheme();\n }\n } else {\n ThemeHelper.SetTheme(null);\n this.ActiveTheme = ThemeHelper.AcitveTheme;\n }\n }\n SetTheme(ID) {\n this.ActiveTheme = null;\n if (ID) {\n this.metaService.GetTheme(ID).subscribe((theme) => {\n // localStorage.setItem('themeIDs', JSON.stringify({SID: theme.SID,Version: theme.Version}));\n if (theme) {\n theme = plainToClass(Theme, theme);\n ThemeHelper.SetTheme(theme);\n this.ActiveTheme = theme;\n } else {\n this.SetDefaultTheme();\n }\n });\n } else {\n this.SetDefaultTheme();\n }\n }\n SetDefaultTheme() {\n this.metaService.GetDefaultTheme().subscribe((theme) => {\n if (theme) {\n theme = plainToClass(Theme, theme);\n ThemeHelper.SetTheme(theme);\n } else {\n ThemeHelper.SetTheme(null);\n }\n this.ActiveTheme = ThemeHelper.AcitveTheme;\n });\n }\n updateNavigationPermissions() {\n PermissionHelper.GetNavigationPermissions().then(() => {\n const actStruct = SideNavService.SelectedNavigationStructure.getValue();\n const permissions = PermissionHelper.ActiveNavigationPermissions.getValue();\n if (permissions && actStruct) {\n CacheService.ReadNavigationStructure(actStruct).then(ns => {\n this.NoStructurePermission = permissions[ns._Id] === true;\n this.cdRef.detectChanges();\n });\n }\n this.setNavigation(actStruct);\n });\n }\n online = true;\n ChangeOnlineStatus() {\n this.online = !this.online;\n NetworkConnection.Online.next(this.online);\n }\n loadGoogleAnalytics(trackingID: string): void {\n\n let gaScript = document.createElement('script');\n gaScript.setAttribute('async', 'true');\n gaScript.setAttribute('src', `https://www.googletagmanager.com/gtag/js?id=${trackingID}`);\n\n let gaScript2 = document.createElement('script');\n gaScript2.innerText = `window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag(\\'js\\', new Date());gtag(\\'config\\', \\'${trackingID}\\');`;\n\n document.documentElement.firstChild.appendChild(gaScript);\n document.documentElement.firstChild.appendChild(gaScript2);\n }\n static delay(ms) {\n return interval(ms);\n }\n}\n","//#region Angular\n//#endregion\n//#region HTTP\n\nimport { CommonModule } from '@angular/common';\nimport { HttpClient, HttpClientModule, HTTP_INTERCEPTORS, HttpClientJsonpModule } from '@angular/common/http';\nimport { Injector, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\n//#endregion\n//#region Routing\nimport { Router, RouterModule } from '@angular/router';\n//#endregion\n//#region Translate\nimport { MissingTranslationHandler, TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { MaterialCssVarsModule } from 'angular-material-css-vars';\nimport 'chart.js/dist/chart.min.js';\nimport { SnotifyService, ToastDefaults } from 'ng-snotify';\nimport { TreeDragDropService } from 'primeng/api';\n//#endregion\nimport { routes } from '../app.routing';\n//#endregion\n//#region Injector\nimport { DialogHelper, InjectorHelper, RoutingHelper, TranslateHelper } from '../helpers/injector.helper';\nimport { APP_ACTIONS } from '../imports/app.actions';\nimport { APP_COMMON } from '../imports/app.common';\nimport { APP_CONTROLS, APP_STATIC_CONTROLS } from '../imports/app.controls';\nimport { APP_DATAMODEL } from '../imports/app.datamodel';\n//#endregion\n//#region includes\nimport { APP_DECLARATIONS } from '../imports/app.declarations';\nimport { APP_DIALOGS } from '../imports/app.dialogs';\nimport { APP_EXPORTS, MW_DIALOGS } from '../imports/app.exports';\nimport { APP_DIRECTIVES, APP_PIPES } from '../imports/app.helpers';\nimport { APP_LAYOUTS } from '../imports/app.layouts';\nimport { APP_MEDIATYPES } from '../imports/app.mediatypes';\nimport { APP_MENUTABS } from '../imports/app.menutabs';\nimport { OthersModule } from '../imports/app.others';\nimport { APP_PAGES } from '../imports/app.pages';\nimport { APP_SERVICES } from '../imports/app.services';\nimport { APP_SETTINGS } from '../imports/app.settings';\nimport { APP_THEME_CONTROLS } from '../imports/app.themecontrols';\nimport { APP_WIDGETS } from '../imports/app.widgets';\nimport { APP_WIZARDS } from '../imports/app.wizards';\nimport { EviControlsModule } from '../imports/evi.controls';\nimport { MaterialModule } from '../imports/material.module';\nimport { PrimeNgModule } from '../imports/primeng.module';\nimport { APP_DEPLOYMENTACTIONS_CONTROLS } from '../registries/actions/actions.registry';\nimport { APP_WORKFLOW } from '../registries/workflows/workflow.registry';\nimport { BasicAuthInterceptor } from '../services/basic_auth.interceptor';\nimport { AppMissingTranslationHandler, TranslationLoader } from '../services/translation.service';\nimport { AppFrameworkComponent } from './appframework.component';\nimport { VirtualScrollerModule } from 'ngx-virtual-scroller';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { APP_DATAMODEL_SETTINGS, APP_MW_SETTINGS, APP_MW_PIPES } from '../registries/settings/app.mw.settings';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\nimport { MonacoEditorModule } from 'ngx-monaco-editor';\nimport { MW_SERVICES } from '../imports/app.mw.services';\nimport { MW_WORKFLOW } from '../registries/workflows/app.mw.workflow';\nimport { DateTimeAdapter, OwlDateTimeIntl, OwlDateTimeModule, OwlNativeDateTimeModule, OWL_DATE_TIME_FORMATS, OWL_DATE_TIME_LOCALE } from '@danielmoncada/angular-datetime-picker';\nimport { MW_EXPORTS } from '../imports/app.exports';\nimport { QuillModule } from 'ngx-quill'\nimport { MW_COMPONENTS } from '../imports/app.components';\nimport { MAC_SERVICES, MAC_DIRECTIVES } from '../imports/mac.services';\nimport { APP_MULTIPANELS } from '../imports/app.multipanels';\nimport { ContextMenuModule } from 'primeng/contextmenu';\nimport { MAC_DIALOGS } from '../imports/mac.dialogs';\nimport { MAC_SETTINGS } from '../registries/settings/mac.settings';\nimport { MAC_MENUTABS } from '../imports/mac.menutabs';\nimport { MAC_TASKS } from '../registries/tasks/mac.tasks';\nimport { MAC_WORKFLOWS } from '../registries/workflows/mac.workflows';\nimport { AngularSplitModule } from 'angular-split';\nimport { GridsterModule } from 'angular-gridster2';\nimport { TabViewModule } from 'primeng/tabview';\nimport { AngularDraggableModule } from 'angular2-draggable';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { NgxJsonViewerModule } from 'ngx-json-viewer';\nimport { DataTableTranslateHelper } from '../helpers/translate.helper';\nimport { MatTooltipDefaultOptions, MAT_TOOLTIP_DEFAULT_OPTIONS } from '@angular/material/tooltip';\nimport { GADateTimeAdapter, GAIntl } from '../services/owl.services';\nimport { GoogleMapsModule} from '@angular/google-maps';\nimport {TourMatMenuModule} from \"ngx-ui-tour-md-menu\";\nimport {MatButtonModule} from \"@angular/material/button\";\nimport {MatIconModule} from \"@angular/material/icon\";\nimport { RefreshTokenInterceptor } from '../services/refresh.interceptor';\nimport { SharedModule } from '../shared-module/shared.module';\nimport { GoogleSigninComponent } from \"../component_v2/google-signin/google-signin.component\";\n// AoT requires an exported function for factories\nexport function HttpLoaderFactory(http: HttpClient) {\n return new TranslationLoader(http);\n}\n\nexport const TooltipOptions: MatTooltipDefaultOptions = {\n showDelay: 0,\n hideDelay: 0,\n touchendHideDelay: 0,\n disableTooltipInteractivity: true,\n}\n\n//#endregion\n@NgModule({\n declarations: [\n AppFrameworkComponent,\n // HeaderComponent,\n // MessageCenterDialog,\n APP_DECLARATIONS,\n APP_MENUTABS,\n APP_CONTROLS,\n APP_STATIC_CONTROLS,\n APP_THEME_CONTROLS,\n APP_DIALOGS,\n APP_PAGES,\n APP_LAYOUTS,\n APP_PIPES,\n APP_DIRECTIVES,\n APP_WORKFLOW,\n APP_ACTIONS,\n APP_DATAMODEL,\n APP_COMMON,\n APP_SETTINGS,\n APP_WIZARDS,\n APP_WIDGETS,\n APP_DEPLOYMENTACTIONS_CONTROLS,\n APP_MEDIATYPES,\n MW_COMPONENTS,\n APP_MW_SETTINGS,\n APP_DATAMODEL_SETTINGS,\n MW_WORKFLOW,\n APP_MW_PIPES,\n MW_DIALOGS,\n APP_MULTIPANELS,\n MAC_DIALOGS,\n MAC_SETTINGS,\n MAC_MENUTABS,\n MAC_TASKS,\n MAC_DIRECTIVES,\n MAC_WORKFLOWS,\n GoogleSigninComponent\n ],\n imports: [\n SharedModule,\n BrowserModule,\n BrowserAnimationsModule,\n FormsModule,\n ReactiveFormsModule,\n EviControlsModule,\n InfiniteScrollModule,\n MaterialModule,\n PrimeNgModule,\n MatButtonModule,\n MatIconModule,\n OwlDateTimeModule,\n QuillModule.forRoot(),\n OwlNativeDateTimeModule,\n MonacoEditorModule.forRoot(),\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n OthersModule,\n HttpClientModule,\n PrimeNgModule,\n VirtualScrollerModule,\n ContextMenuModule,\n DragDropModule,\n GridsterModule,\n TabViewModule,\n AngularDraggableModule,\n GoogleMapsModule,\n NgxJsonViewerModule,\n AngularSplitModule.forRoot(),\n RouterModule.forRoot(routes, {\n useHash: false\n }),\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient]\n },\n missingTranslationHandler: {\n provide: MissingTranslationHandler,\n useClass: AppMissingTranslationHandler\n }\n }),\n MaterialCssVarsModule.forRoot({\n isAutoContrast: true,\n darkThemeClass: 'isDarkTheme',\n lightThemeClass: 'isLightTheme',\n }),\n TourMatMenuModule.forRoot(),\n ],\n providers: [\n //provideHttpClient(withJsonpSupport()),\n { provide: 'SnotifyToastConfig', useValue: ToastDefaults },\n { provide: MAT_TOOLTIP_DEFAULT_OPTIONS, useValue: TooltipOptions },\n /*{ provide: OWL_DATE_TIME_LOCALE, useValue: 'de' },*/\n { provide: DateTimeAdapter, useClass: GADateTimeAdapter },\n { provide: OwlDateTimeIntl, useClass: GAIntl },\n SnotifyService,\n TreeDragDropService,\n APP_SERVICES,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: BasicAuthInterceptor,\n multi: true\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: RefreshTokenInterceptor,\n multi: true\n },\n MW_SERVICES,\n MAC_SERVICES\n ],\n exports: [\n AppFrameworkComponent,\n APP_EXPORTS,\n APP_DIRECTIVES,\n APP_PIPES,\n MW_EXPORTS,\n APP_MULTIPANELS,\n APP_CONTROLS,\n ContextMenuModule,\n MAC_DIALOGS,\n MAC_SETTINGS,\n MAC_MENUTABS,\n MAC_TASKS,\n MAC_DIRECTIVES,\n ]\n})\nexport class AppFrameworkModule {\n constructor(private injector: Injector, private dialog: MatDialog, private translate: TranslateService, private router: Router) {\n InjectorHelper.InjectorInstance = this.injector;\n DialogHelper.DialogInstance = this.dialog;\n TranslateHelper.TranslatorInstance = this.translate;\n DataTableTranslateHelper.TranslatorInstance = this.translate;\n RoutingHelper.Router = this.router;\n }\n}\n","import { UUID } from 'angular2-uuid';\nimport { TranslatedString } from './translatedstring.model';\n\nexport class ContainerClassObject {\n Fields = [];\n Name: string;\n DeleteComplete: boolean;\n UseVersioning: boolean;\n Editable: boolean;\n DataModelID: any;\n DataSourceId: any;\n StoreOffline: boolean;\n\n constructor() {\n this.Name = '';\n this.DeleteComplete = false;\n this.UseVersioning = false;\n this.Editable = false;\n this.StoreOffline = false;\n }\n}\n\nexport class AttributeProperty {\n Type: string;\n IsList: boolean;\n Index: number;\n IsMandatory: boolean;\n IsNullable: boolean;\n IsShared: boolean;\n IsReverse: boolean;\n IsReadOnly: boolean;\n IsPrimary: boolean;\n ID: string;\n Name: string;\n Caption: TranslatedString;\n AdvancedType: string;\n DataTyp: string;\n Default;\n\n constructor() {\n this.Type = '';\n this.IsList = false;\n this.Index = 0;\n this.IsMandatory = false;\n this.IsNullable = true;\n this.IsShared = false;\n this.IsReverse = false;\n this.IsReadOnly = false;\n this.IsPrimary = false;\n this.ID = UUID.UUID();\n this.Name = '';\n }\n\n public static GetFilterType(ap): string {\n if (ap) {\n if (ap.DataTyp) {\n return AttributeProperty.GetFilterTypeFromType(ap.DataTyp);\n }\n if (ap.Type) {\n return AttributeProperty.GetFilterTypeFromType(ap.Type);\n }\n }\n return '';\n }\n\n public static GetFilterTypeFromType(type): string {\n if (type) {\n switch (type) {\n case 'System.DateTime':\n return 'date';\n case 'System.String':\n case 'System.Guid':\n return 'string';\n case 'System.Int64':\n case 'System.Decimal':\n case 'System.Int32':\n case 'System.Double':\n case 'System.Int16':\n return 'number';\n case 'System.Boolean':\n return 'boolean';\n }\n }\n return '';\n }\n}\n","import { DeploymentAction, PrepareFunc } from \"./deploymentaction.model\"\nimport { InjectorHelper } from \"../../helpers/injector.helper\";\nimport { DataModelService } from \"../../services/datamodel.service\";\nimport { ChangeDataSourceAction } from \"../../settings/actions/datasource/changedatasource.action\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { DataSourceDetail } from \"../../settings/datamodel/datasource/datasource.settings\";\nimport { plainToClass } from \"class-transformer\";\nimport { DataSource } from \"../datamodel/datasource.model\";\nimport { DialogResult } from \"../enums/dialogresult.enum\";\n\nexport class ChangeDataSourceDeploymentAction implements DeploymentAction {\n SelectedItem;\n \n ID = '2a1b1a71-e311-4bac-8884-997da4630271';\n Name = '@@ChangeDataSource';\n Control = DataSourceDetail;\n Layout = null;\n Properties = null;\n Settings = ChangeDataSourceAction;\n Prepare = (item) => {\n this.PreparationDone.next(false);\n let service = InjectorHelper.InjectorInstance.get(DataModelService);\n service.GetDataSource(item.DataSourceID).subscribe((result) => {\n this.SelectedItem = plainToClass(DataSource, result);\n this.Properties = [{\n Key: 'SelectedItem', Value: this.SelectedItem\n }]\n this.PreparationDone.next(true);\n })\n };\n PreparationDone = new BehaviorSubject(false);\n Buttons = [\n {\n Caption: '@@Save',\n Execute: () => {\n let service = InjectorHelper.InjectorInstance.get(DataModelService);\n service.SaveDataSource(this.SelectedItem).subscribe();\n },\n CloseOnClick: true,\n CloseStatus: DialogResult.Ok\n },\n {\n Caption: '@@Cancel',\n Execute: null,\n CloseOnClick: true,\n CloseStatus: DialogResult.Cancel\n }\n ]\n}\n","const IGNORE_FIELDS = new Map();\nexport function JsonIgnore(cls: any, name: string) {\n let clsName = cls.constructor.name;\n let list: string[];\n\n if (IGNORE_FIELDS.has(clsName)) {\n list = IGNORE_FIELDS.get(clsName);\n } else {\n list = [];\n IGNORE_FIELDS.set(clsName, list);\n }\n\n list.push(name);\n}\n\nexport class Base {\n toJson(): any {\n let json = {};\n let ignore = IGNORE_FIELDS.get(this.constructor.name);\n Object.getOwnPropertyNames(this).filter(name => (!ignore || (ignore && ignore.indexOf(name) < 0))).forEach(name => {\n let value = this[name];\n if (value != null && value != undefined) {\n if (value instanceof Array) {\n let newArray = [];\n for (var i = 0; i < value.length; i++) {\n let iValue = value[i];\n if (iValue.subJson) {\n iValue = iValue.subJson();\n }\n newArray.push(iValue);\n }\n value = newArray;\n }\n else if (value.subJson) {\n value = value.subJson();\n }\n }\n json[name] = value;\n });\n return JSON.stringify(json);\n }\n\n subJson() {\n let json = {};\n let ignore = IGNORE_FIELDS.get(this.constructor.name);\n\n Object.getOwnPropertyNames(this).filter(name => (!ignore || (ignore && ignore.indexOf(name) < 0))).forEach(name => {\n let value = this[name];\n if (value != null && value != undefined) {\n if (value instanceof Array) {\n let newArray = [];\n for (var i = 0; i < value.length; i++) {\n let iValue = value[i];\n if (iValue.subJson) {\n iValue = iValue.subJson();\n }\n newArray.push(iValue);\n }\n value = newArray;\n }\n else if (value.subJson) {\n value = value.subJson();\n }\n }\n json[name] = value;\n });\n\n return json;\n }\n}\n","export enum CellContentType {\n Text,\n Icon\n}\n\nexport class CellContent {\n CellContentType: CellContentType = CellContentType.Text;\n Value;\n}\n","import { LayoutUnit } from './layoutunit.model';\n\nexport class Column {\n Caption: string;\n Data: string;\n Name: string;\n IsSortable: boolean = false;\n IsFilterable: boolean = false;\n IsCommaSeparated: boolean = false;\n OrderState:string = 'NONE';\n Type: string;\n Type2: string;\n Type3: string;\n Width: LayoutUnit;\n SearchValue: string = null;\n IsVisible: boolean = true;\n IsSticky: boolean = false;\n Prefix: string = null;\n Suffix: string = null;\n NumericPrecision: number = 0;\n DateFormat: string;\n Expandable: boolean = false;\n Children: Column[] = [];\n FixedChildren: Column[] = [];\n}\n","export const CURSOR_TYPES = [\n 'alias',\n 'all-scroll',\n 'auto',\n 'cell',\n 'col-resize',\n 'context-menu',\n 'copy',\n 'crosshair',\n 'default',\n 'e-resize',\n 'ew-resize',\n 'grab',\n 'grabbing',\n 'help',\n 'move',\n 'n-resize',\n 'ne-resize',\n 'nesw-resize',\n 'no-drop',\n 'none',\n 'not-allowed',\n 'ns-resize',\n 'nw-resize',\n 'nwse-resize',\n 'pointer',\n 'progress',\n 'row-resize',\n 's-resize',\n 'se-resize',\n 'sw-resize',\n 'text',\n 'vertical-text',\n 'w-resize',\n 'wait',\n 'zoom-in',\n 'zoom-out'\n];\n","export class CustomBaseStyle {\n HeaderBackground: string;\n HeaderForeground: string;\n Line: string;\n StickyBackground: string;\n}\n","import { TranslatedString } from '../translatedstring.model';\nimport { InjectorHelper } from '../../helpers/injector.helper';\nimport { FormulaService } from '../../services/formula.service';\nimport { Exclude, deserialize, plainToClass, Type } from 'class-transformer';\nimport { FormulaGroupEnum } from '../enums/formulagroupenum.enum';\nimport { OperationType } from '../enums/operationtype.enum';\nimport { BinaryOperation } from '../enums/binaryoperation.enum';\nimport { CompareType } from '../enums/comparetype.enum';\nimport { FormulaNodeType } from '../enums/formulanodetype.enum';\nimport { VariableDisplay } from '../enums/variabledisplay.enum';\nimport { ValueType } from '../enums/valuetype.enum';\n\nexport class FormulaStatics {\n static _KeyWords = new Map();\n static _FuncNameByKey = new Map();\n static IntMaxValue = 2147483647;\n\n static Init() {\n const service = InjectorHelper.InjectorInstance.get(FormulaService);\n service.GetFormulaKeys().subscribe((result) => {\n if (result) {\n const key = new Map();\n const funcName = new Map();\n result.forEach(k => {\n key.set(k.Name.toLowerCase(), k.Key);\n funcName.set(k.Key, k.Name);\n });\n FormulaStatics._KeyWords = key;\n FormulaStatics._FuncNameByKey = funcName;\n }\n });\n }\n}\n\nexport class VariablesNodeInformation {\n AliasKey = '';\n VariableID = '';\n IsUsedInFormula = false;\n VariableObject: any = null;\n Name = '';\n ToolTip: string;\n Children: VariablesNodeInformation[] = [];\n\n static FillKeyDict(list: VariablesNodeInformation[], dict: Map) {\n if (list && dict) {\n list.forEach(vni => {\n dict.set(vni.VariableID, vni.AliasKey);\n VariablesNodeInformation.FillKeyDict(vni.Children, dict);\n });\n }\n }\n}\n\nexport class NonClickableVariablesNodeInformation extends VariablesNodeInformation {\n Expand = false;\n}\n\nexport class FormulaInfo {\n Name: string;\n Description: string;\n Operation: string;\n Group: FormulaGroupEnum;\n}\n\nexport class Operation {\n Name = '';\n OperationValue: string;\n OperationType: OperationType = OperationType.None;\n CompareType: CompareType = CompareType.None;\n BinaryOperation: BinaryOperation = BinaryOperation.None;\n FunctionType: string;\n MinOperandCount = 0;\n MaxOperandCount: number = FormulaStatics.IntMaxValue;\n Description: string;\n}\n// @dynamic\nexport class FormulaNodeInformation {\n Value = 0;\n TextValue: string;\n DateValue: Date;\n BoolValue: boolean;\n SaveTag;\n Name: string;\n @Type(() => TranslatedString)\n TranslatedName: TranslatedString;\n Type: FormulaNodeType = FormulaNodeType.None;\n VariableID: string;\n SignIsNegative: boolean;\n @Type(() => Operation)\n Operation: Operation = new Operation();\n @Exclude()\n ParentNode: FormulaNodeInformation;\n @Type(() => FormulaNodeInformation)\n Operands: FormulaNodeInformation[] = [];\n AliasKey = '';\n DirectVariablePosition: number;\n\n static ApplyAliasKeys(keys: Map, formula: FormulaNodeInformation) {\n if (formula && keys) {\n if (formula.Type === FormulaNodeType.Variable) {\n const alias = keys.get(formula.VariableID);\n if (alias) {\n formula.AliasKey = alias;\n }\n }\n if (formula.Operands) {\n formula.Operands.forEach(node => {\n FormulaNodeInformation.ApplyAliasKeys(keys, node);\n });\n }\n }\n }\n\n static ToFormulaNodeInformation(val): FormulaNodeInformation {\n if (val) {\n if (val instanceof FormulaNodeInformation) {\n return val;\n }\n let retVal: FormulaNodeInformation;\n if (typeof val === 'object') {\n const tmp: any = plainToClass(FormulaNodeInformation, val);\n retVal = tmp;\n }\n if (typeof val === 'string') {\n retVal = deserialize(FormulaNodeInformation, val);\n }\n if (retVal) {\n retVal.SetParents();\n return retVal;\n }\n }\n return null;\n }\n\n toJSON() {\n const result = Object.assign({}, this);\n delete result.ParentNode;\n return result;\n }\n\n SetParents() {\n if (this.Operands.length > 0 && !this.Operands.some(x => x.Type !== FormulaNodeType.None)) {\n this.Operands = [];\n }\n this.Operands.forEach(op => {\n op.ParentNode = this;\n op.SetParents();\n });\n }\n\n ToString(uniqueNames: Map, variableDisplay: VariableDisplay, variablePrefix?: string, variableSuffix?: string): string {\n let retVal = '';\n if (this.Type === FormulaNodeType.Variable || this.Type === FormulaNodeType.SystemVariable) {\n let variable = '';\n switch (variableDisplay) {\n case VariableDisplay.NodeName:\n if (this.TranslatedName) {\n variable = TranslatedString.GetTranslation(this.TranslatedName);\n } else {\n variable = this.Name;\n }\n break;\n case VariableDisplay.VariableID:\n if (uniqueNames) {\n const name = uniqueNames.get(this.VariableID);\n if (name) {\n variable = name;\n } else {\n variable = this.VariableID;\n }\n } else {\n variable = this.VariableID;\n }\n break;\n case VariableDisplay.AliasKey:\n variable = this.AliasKey;\n break;\n case VariableDisplay.Tag:\n if (this.SaveTag) {\n variable = this.SaveTag.toString();\n } else {\n variable = '';\n }\n break;\n }\n if ((!variable || variable === '') && this.SaveTag) {\n variable = this.SaveTag.toString();\n }\n retVal = (variablePrefix || '') + (variable || '') + (variableSuffix || '');\n } else if (this.Type === FormulaNodeType.Value) {\n if (this.Value) {\n retVal = this.Value.toString();\n }\n } else if (this.Type === FormulaNodeType.DateValue) {\n if (this.DateValue) {\n retVal = '\\'' + this.DateValue.toLocaleDateString() + '\\'';\n }\n } else if (this.Type === FormulaNodeType.TextValue) {\n if (this.TextValue) {\n retVal = '\"' + this.TextValue + '\"';\n }\n } else if (this.Type === FormulaNodeType.BoolValue) {\n if (typeof this.BoolValue === 'boolean') {\n if (this.BoolValue) {\n retVal = 'true';\n } else {\n retVal = 'false';\n }\n }\n } else if (this.Type === FormulaNodeType.Operation) {\n retVal = this.GetOperationChain(uniqueNames, variableDisplay, variablePrefix, variableSuffix);\n }\n retVal = this.GetBrackets(retVal);\n retVal = this.GetSign(retVal);\n return retVal;\n }\n\n private GetOperationChain(dd: Map, variableDisplay: VariableDisplay, prefix: string, suffix: string): string {\n let retVal = '';\n let conj = '';\n let conjNeg = '';\n switch (this.Operation.OperationType) {\n case OperationType.Addition:\n conj = ' + ';\n conjNeg = ' - ';\n break;\n case OperationType.Multiplication:\n conj = ' * ';\n conjNeg = conj;\n break;\n case OperationType.Division:\n conj = ' / ';\n conjNeg = conj;\n break;\n case OperationType.Compare:\n switch (this.Operation.CompareType) {\n case CompareType.Equal:\n conj = ' = ';\n conjNeg = conj;\n break;\n case CompareType.Greater:\n conj = ' > ';\n conjNeg = conj;\n break;\n case CompareType.GreaterEqual:\n conj = ' >= ';\n conjNeg = conj;\n break;\n case CompareType.Smaller:\n conj = ' < ';\n conjNeg = conj;\n break;\n case CompareType.SmallerEqual:\n conj = ' <= ';\n conjNeg = conj;\n break;\n case CompareType.NotEqual:\n conj = ' <> ';\n conjNeg = conj;\n break;\n }\n break;\n case OperationType.Binary:\n case OperationType.Function:\n conj = ' ; ';\n conjNeg = conj;\n break;\n }\n\n for (let i = 0; i < this.Operands.length; i++) {\n const subNode = this.Operands[i];\n let nodeString = subNode.ToString(dd, variableDisplay, prefix, suffix);\n if (i === 0) {\n if (this.Type === FormulaNodeType.Operation && this.Operation.OperationType === OperationType.Addition &&\n subNode.SignIsNegative) {\n nodeString = '-' + nodeString;\n }\n retVal = nodeString;\n } else {\n retVal = retVal + (subNode.SignIsNegative ? conjNeg : conj) + nodeString;\n }\n }\n\n if (this.Type === FormulaNodeType.Operation) {\n if (this.Operation.OperationType === OperationType.Function) {\n const name = FormulaStatics._FuncNameByKey.get(this.Operation.FunctionType);\n if (name) {\n retVal = name + '(' + retVal + ')';\n }\n } else if (this.Operation.OperationType === OperationType.Binary) {\n switch (this.Operation.BinaryOperation) {\n case BinaryOperation.And:\n retVal = 'AND(' + retVal + ')';\n break;\n case BinaryOperation.Or:\n retVal = 'OR(' + retVal + ')';\n break;\n }\n }\n }\n return retVal;\n }\n\n private GetBrackets(nodeString: string): string {\n if (this.Type === FormulaNodeType.Operation) {\n if (this.Operation.OperationType === OperationType.Addition || this.Operation.OperationType === OperationType.Subtraktion) {\n if (this.ParentNode) {\n if (this.ParentNode.Type === FormulaNodeType.Operation &&\n this.ParentNode.Operation.OperationType === OperationType.Function) {\n return nodeString;\n } else {\n return '(' + nodeString + ')';\n }\n } else {\n return nodeString;\n }\n }\n if (this.Operation.OperationType !== OperationType.Function &&\n this.ParentNode && this.ParentNode.Type === FormulaNodeType.Operation\n && this.ParentNode.Operation.OperationType === OperationType.Division && this.Operands.length > 1) {\n return '(' + nodeString + ')';\n }\n if (this.Operation.OperationType === OperationType.Compare || this.Operation.OperationType === OperationType.Binary) {\n return nodeString;\n }\n if (this.SignIsNegative) {\n return '(' + nodeString + ')';\n }\n } else {\n if (this.ParentNode && this.ParentNode.Type === FormulaNodeType.Operation &&\n this.ParentNode.Operation.OperationType === OperationType.Division && this.Operands.length > 1) {\n return '(' + nodeString + ')';\n }\n }\n return nodeString;\n }\n\n private GetSign(nodeString: string): string {\n if (this.SignIsNegative) {\n if (!(this.ParentNode && this.ParentNode.Type === FormulaNodeType.Operation &&\n this.ParentNode.Operation.OperationType === OperationType.Addition)) {\n return '-' + nodeString;\n }\n }\n return nodeString;\n }\n\n AddOperand(child: FormulaNodeInformation): FormulaNodeInformation {\n if (child) {\n if (child.ParentNode) {\n child.ParentNode.DeleteOperand(child);\n }\n this.Operands.push(child);\n child.ParentNode = this;\n }\n return child;\n }\n\n DeleteOperand(child: FormulaNodeInformation): FormulaNodeInformation {\n const index = this.Operands.indexOf(child);\n if (index >= 0 && index < this.Operands.length) {\n this.Operands.splice(index, 1);\n }\n child.ParentNode = null;\n return child;\n }\n}\n\nexport class ValueAndType {\n Type: ValueType = ValueType.Null;\n Value = null;\n\n static GetValueTypeFromType(type): ValueType {\n if (type) {\n switch (type) {\n case 'System.DateTime':\n return ValueType.Datetime;\n case 'System.String':\n return ValueType.String;\n case 'System.Int16':\n case 'System.Int32':\n case 'System.Int64':\n return ValueType.Long;\n case 'System.Single':\n case 'System.Double':\n case 'System.Decimal':\n return ValueType.Double;\n case 'System.Boolean':\n return ValueType.Bool;\n default:\n return ValueType.Object;\n }\n }\n return ValueType.Null;\n }\n\n static GetValueAndTypeFromJSObject(obj): ValueAndType {\n const retVal = new ValueAndType();\n retVal.Value = obj;\n switch (typeof obj) {\n case 'string':\n retVal.Type = ValueType.String;\n break;\n case 'number':\n retVal.Type = ValueType.Double;\n break;\n case 'boolean':\n retVal.Type = ValueType.Bool;\n break;\n case 'object':\n if (obj instanceof Date) {\n retVal.Type = ValueType.Datetime;\n } else {\n retVal.Type = ValueType.Object;\n }\n break;\n }\n return retVal;\n }\n}\n","import { UnitType } from '../enums/unittype.enum';\n\nexport class LayoutUnit {\n Type: UnitType = UnitType.Pixel;\n Value: number;\n\n static ConvertTo(value: any): LayoutUnit {\n let result = new LayoutUnit();\n if (value) {\n value = value + '';\n if (value.indexOf('%') > 0) {\n result.Value = Number(value.substr(0, value.indexOf('%')));\n result.Type = UnitType.Percent;\n } else if (value.indexOf('px') > 0) {\n result.Value = Number(value.substr(0, value.indexOf('px')));\n result.Type = UnitType.Pixel;\n } else if (value.indexOf('em') > 0) {\n result.Value = Number(value.substr(0, value.indexOf('em')));\n result.Type = UnitType.em;\n } else if (value.indexOf('fr') > 0) {\n result.Value = Number(value.substr(0, value.indexOf('fr')));\n result.Type = UnitType.fr;\n } else if (value.indexOf('vh') > 0) {\n result.Value = Number(value.substr(0, value.indexOf('vh')));\n result.Type = UnitType.fr;\n } else if(value.indexOf('vw') > 0) {\n result.Value = Number(value.substr(0, value.indexOf('vw')));\n result.Type = UnitType.fr;\n } else if (value.indexOf('calc') > 0) {\n result.Value = value.substr(value.indexOf('calc') + 4, value.length() -1);\n result.Type = UnitType.calc;\n } else if (value == 'auto') {\n result.Type = UnitType.Auto;\n } else {\n result.Value = Number(value);\n result.Type = UnitType.Percent;\n }\n } else {\n result = null;\n }\n return result;\n }\n static ConvertFrom(value: LayoutUnit): any {\n if (value) {\n switch (value.Type) {\n case UnitType.Percent: return value.Value + '%';\n case UnitType.Pixel: return value.Value + 'px';\n case UnitType.em: return value.Value + 'em';\n case UnitType.fr: return value.Value + 'fr';\n case UnitType.vw: return value.Value + 'vw';\n case UnitType.vh: return value.Value + 'vh';\n case UnitType.calc: return 'calc(' + value.Value + ')';\n case UnitType.Rest:\n case UnitType.Auto: return 'auto';\n default: return value.Value;\n }\n }\n }\n static ToStyle(unit) {\n if (unit && unit.Type > -1 && (unit.Value != undefined || unit.Type == UnitType.Auto)) {\n switch (unit.Type) {\n case UnitType.Pixel:\n return unit.Value + \"px\";\n case UnitType.Percent:\n return unit.Value + \"%\";\n case UnitType.Auto:\n return \"auto\";\n case UnitType.em:\n return unit.Value + \"em\";\n case UnitType.fr:\n return unit.Value + \"fr\";\n case UnitType.vw:\n return unit.Value + \"vw\";\n case UnitType.vh:\n return unit.Value + \"vh\";\n case UnitType.calc:\n return 'calc(' + unit.Value + ')';\n }\n }\n return '';\n }\n toStyle() {\n return LayoutUnit.ToStyle(this);\n }\n isValid(): boolean {\n if (typeof this.Type === 'number') {\n switch (this.Type) {\n case UnitType.Pixel:\n case UnitType.Percent:\n case UnitType.em:\n case UnitType.fr:\n case UnitType.vw:\n case UnitType.vh:\n return typeof this.Value === 'number';\n case UnitType.Auto:\n case UnitType.Rest:\n case UnitType.calc:\n return true;\n }\n }\n return false;\n }\n toJSON() {\n let style = this.toStyle()\n if (style || this.Type == UnitType.Rest) {\n return this\n } else {\n return null\n }\n }\n}\n","import { LayoutUnit } from './layoutunit.model';\nimport { Type } from 'class-transformer';\n\n// @dynamic\nexport class LayoutUnitThickness {\n @Type(() => LayoutUnit)\n Left: LayoutUnit = new LayoutUnit();\n @Type(() => LayoutUnit)\n Right: LayoutUnit = new LayoutUnit();\n @Type(() => LayoutUnit)\n Top: LayoutUnit = new LayoutUnit();\n @Type(() => LayoutUnit)\n Bottom: LayoutUnit = new LayoutUnit();\n isValid() {\n return (this.Left && this.Left.isValid()) || (this.Top && this.Top.isValid()) ||\n (this.Right && this.Right.isValid()) || (this.Bottom && this.Left.isValid());\n }\n toJSON() {\n let left = LayoutUnit.ToStyle(this.Left);\n let right = LayoutUnit.ToStyle(this.Right);\n let top = LayoutUnit.ToStyle(this.Top);\n let bottom = LayoutUnit.ToStyle(this.Bottom);\n if (left || right || top || bottom) {\n return this\n } else {\n return null\n }\n }\n}\n","export class NavigationItem {\n Label: string;\n Url: string;\n IsVisible: boolean;\n IsNavigable: boolean;\n Id: string;\n Icon: string;\n children: NavigationItem[];\n}\n\nexport class NavigationStructureItem {\n Label: string;\n Url: string;\n Icon: string;\n children: NavigationStructureItem[];\n}\n","export class Point {\n X: number = 0;\n Y: number = 0;\n}\n","import { Subject } from 'rxjs';\n\nexport class Row {\n edit: boolean = false;\n selected: boolean = false;\n expanded: boolean = false;\n index: number = 0;\n data: any = {};\n styles: any = {};\n rowStyle: any = {};\n cols: any = {};\n Expandable: boolean = false;\n Children: Row[];\n RowExpand: Subject = new Subject();\n constructor() { }\n}\n","export class RowSelection {\n RowIndex: number;\n RowData: any;\n}\n\nexport class CellSelection {\n RowIndex: number;\n ColumnName: string;\n}\n\nexport class OSSelectionRange {\n XStart: number;\n XEnd: number;\n YStart: number;\n YEnd: number;\n UseXStartForShift = true;\n UseYStartForShift = true;\n\n constructor(init?: Partial) {\n Object.assign(this, init);\n }\n\n ContainsOnX(x: number): boolean {\n return this.XStart <= x && x <= this.XEnd;\n }\n\n ContainsOnY(y: number): boolean {\n return this.YStart <= y && y <= this.YEnd;\n }\n\n Contains(x: number, y: number) {\n return this.ContainsOnX(x) && this.ContainsOnY(y);\n }\n}\n\nexport class CopySelection {\n StartCell: CellSelection;\n Selection: OSSelectionRange\n}","import { AFormula, FormulaGroups } from './iformula';\nimport { ValueAndType } from '../basic/formulaEditor.model';\nimport { TranslateHelper } from '../../helpers/injector.helper';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { abs } from 'mathjs';\nimport { OperationType } from '../enums/operationtype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\n\nexport class AbsFormula extends AFormula {\n static StaticID = '1aa5d721-1d13-46ae-b254-b11276320f61';\n\n ID(): string {\n return AbsFormula.StaticID;\n }\n\n Name(): string {\n return 'Abs';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Angabe des Betrags des jeweiligen Werts');\n }\n\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 10;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n return this.Name() + '(' + TranslateHelper.TranslatorInstance.instant('@@Argument') + ')';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const retVal = new ValueAndType();\n if (args && args.length > 0) {\n const val = args[0];\n if (val && (val.Type === ValueType.Long || val.Type === ValueType.Double)) {\n const absVal = abs(val.Value);\n if (!isNaN(absVal)) {\n retVal.Type = val.Type;\n retVal.Value = absVal;\n }\n }\n }\n return retVal;\n }\n}\n","import { TranslateHelper } from \"../../helpers/injector.helper\";\nimport { ValueAndType } from \"../basic/formulaEditor.model\";\nimport { OperationType } from \"../enums/operationtype.enum\";\nimport { ValueType } from \"../enums/valuetype.enum\";\nimport { FormulaNodeCalculator } from \"./formula.node.calculator\";\nimport { AFormula, FormulaGroups } from \"./iformula\";\n\nexport abstract class AActualDate extends AFormula {\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Ausgabe des aktuellen Datums');\n }\n\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 100;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n return this.Name() + '()';\n }\n\n MinVariableCount(): number {\n return 0;\n }\n\n MaxVariableCount(): number {\n return 0;\n }\n}\n\nexport class ActualDate extends AActualDate {\n static StaticID: string = 'a036a575-934e-4d5f-b703-3c9fe34807cc';\n\n ID(): string {\n return ActualDate.StaticID;\n }\n\n Name(): string {\n return 'ActualDate';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n return {\n Type: ValueType.Datetime,\n Value: new Date()\n };\n }\n}\n\nexport class TodayFormula extends AActualDate {\n static StaticID: string = '3a240f9b-3b90-493b-b62a-0986d60e37c8';\n\n ID(): string {\n return TodayFormula.StaticID;\n }\n\n Name(): string {\n return 'Today';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const date = new Date();\n return {\n Type: ValueType.Datetime,\n Value: new Date(date.getFullYear(), date.getMonth(), date.getDate())\n };\n }\n}","import { PrimitiveFormula, FormulaGroups } from './iformula';\nimport { ValueAndType, FormulaStatics } from '../basic/formulaEditor.model';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { add } from 'mathjs';\nimport { OperationType } from '../enums/operationtype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\n\nexport class Addition extends PrimitiveFormula {\n static StaticID = 'f0379dab-a270-41a8-b327-79eb53546ddf';\n\n constructor() {\n super();\n this._ID = Addition.StaticID;\n this._Name = 'Addition';\n this._MaxVariableCount = FormulaStatics.IntMaxValue;\n this._MinVariableCount = 1;\n }\n\n CanCalcNulls(): boolean {\n return true;\n }\n Group(): string {\n return FormulaGroups.BasicOperations;\n }\n OrderID(): number {\n return 1;\n }\n OperationType(): OperationType {\n return OperationType.Addition;\n }\n OperationValue(): string {\n return '+';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const retVal = new ValueAndType();\n retVal.Type = maxType;\n if (args) {\n args.forEach((item) => {\n if (typeof item.Value !== 'undefined' && item.Value !== null) {\n if (retVal.Value === null) {\n if (maxType === ValueType.Long || maxType === ValueType.Double) {\n retVal.Value = item.Value;\n } else if (maxType === ValueType.String) {\n retVal.Value = String(item.Value);\n }\n } else {\n if (maxType === ValueType.Long || maxType === ValueType.Double) {\n retVal.Value = add(retVal.Value, item.Value);\n } else if (maxType === ValueType.String) {\n retVal.Value += String(item.Value);\n }\n }\n }\n });\n }\n return retVal;\n }\n}\n","import { TranslateHelper } from \"../../helpers/injector.helper\";\nimport { ValueAndType } from \"../basic/formulaEditor.model\";\nimport { BinaryOperation } from \"../enums/binaryoperation.enum\";\nimport { OperationType } from \"../enums/operationtype.enum\";\nimport { ValueType } from \"../enums/valuetype.enum\";\nimport { FormulaNodeCalculator } from \"./formula.node.calculator\";\nimport { FormulaGroups, PrimitiveFormula } from \"./iformula\";\n\nexport class And extends PrimitiveFormula {\n static StaticID: string = \"ca7dce01-6439-4e7f-95fb-2e0ae91d8403\";\n\n constructor() {\n super();\n this._ID = And.StaticID;\n this._Name = 'And';\n this._MaxVariableCount = 10000;\n }\n\n Group(): string {\n return FormulaGroups.Binary;\n }\n OrderID(): number {\n return 1;\n }\n OperationType(): OperationType {\n return OperationType.Binary;\n }\n BinaryOperation(): BinaryOperation {\n return BinaryOperation.And;\n }\n OperationValue(): string {\n return this.Name() + '(' + TranslateHelper.TranslatorInstance.instant('@@Wert1') + '; ...; ' + TranslateHelper.TranslatorInstance.instant('@@WertX') + ')';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n var retVal: ValueAndType = {\n Type: ValueType.Bool,\n Value: true\n };\n if (args) {\n args.some(function (item) {\n if (item.Type == ValueType.Bool) {\n if (typeof item.Value === 'boolean') {\n retVal.Value = retVal.Value && item.Value;\n } else {\n retVal.Value = false;\n }\n }\n return !retVal.Value;\n });\n }\n return retVal;\n }\n}","import { add, divide, floor } from 'mathjs';\nimport { FormulaStatics, ValueAndType } from '../basic/formulaEditor.model';\nimport { ValueType } from '../enums/valuetype.enum';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { RangeEnabledFormula } from './iformula';\n\nexport abstract class AAvg extends RangeEnabledFormula {\n protected _CountNull = true;\n protected _CountZero = true;\n\n CanCalcNulls(): boolean {\n return true;\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const retVal = new ValueAndType();\n if (args && (maxType === ValueType.Long || maxType === ValueType.Double)) {\n let count = 0;\n let value = null;\n args.forEach((item) => {\n if (typeof item.Value !== 'undefined' && item.Value !== null) {\n if (item.Type === ValueType.Range) {\n let sum = null;\n this.HandleNumericRange(item, (val) => {\n if (val === null || isNaN(val)) {\n if (this._CountNull) {\n count++;\n }\n } else {\n if (sum === null) {\n sum = val;\n } else {\n sum = add(sum, val);\n }\n if (val !== 0 || this._CountZero) {\n count++;\n }\n }\n });\n if (sum !== null) {\n if (value === null) {\n value = sum;\n } else {\n value = add(value, sum);\n }\n }\n } else {\n if (value === null) {\n value = item.Value;\n } else {\n value = add(value, item.Value);\n }\n if (value !== 0 || this._CountZero) {\n count++;\n }\n }\n } else if (this._CountNull) {\n count++;\n }\n });\n if (count > 0 && value !== null) {\n retVal.Type = maxType;\n retVal.Value = divide(value, count);\n if (maxType === ValueType.Long) {\n retVal.Value = floor(retVal.Value);\n }\n }\n }\n return retVal;\n }\n}\n\nexport class Avg extends AAvg {\n static StaticID = 'a72f1a6e-1b89-47f7-b6a3-a18fd8c676d5';\n\n constructor() {\n super();\n this._ID = Avg.StaticID;\n this._Name = 'Avg';\n this._MaxVariableCount = FormulaStatics.IntMaxValue;\n }\n}\n\nexport class AvgNonEmpty extends AAvg {\n static StaticID = '675b6398-8182-4530-8146-3985bf1b5e82';\n\n constructor() {\n super();\n this._ID = AvgNonEmpty.StaticID;\n this._Name = 'AvgNonEmpty';\n this._MaxVariableCount = FormulaStatics.IntMaxValue;\n this._CountNull = false;\n }\n}\n\nexport class AvgNonZero extends AAvg {\n static StaticID = '9c25aa22-27f3-4a6d-a304-ae4b07874340';\n\n constructor() {\n super();\n this._ID = AvgNonZero.StaticID;\n this._Name = 'AvgNonZero';\n this._MaxVariableCount = FormulaStatics.IntMaxValue;\n this._CountNull = false;\n this._CountZero = false;\n }\n}\n","import { AFormula, FormulaGroups } from \"./iformula\";\nimport { ValueAndType } from \"../basic/formulaEditor.model\";\nimport { TranslateHelper } from \"../../helpers/injector.helper\";\nimport { FormulaNodeCalculator } from \"./formula.node.calculator\";\nimport { OperationType } from \"../enums/operationtype.enum\";\nimport { ValueType } from \"../enums/valuetype.enum\";\n\nexport class DateAdd extends AFormula {\n static StaticID: string = '8381c267-0583-4758-8141-2285dd201fd3';\n\n ID(): string {\n return DateAdd.StaticID;\n }\n\n Name(): string {\n return 'DateAdd';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Ermoeglicht das Aufaddieren von Jahren, Monaten oder Tagen auf einen Datumswert');\n }\n\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 101;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n return this.Name() + '('\n + TranslateHelper.TranslatorInstance.instant('@@Datumswert') + '; '\n + TranslateHelper.TranslatorInstance.instant('@@Jahr') + '; '\n + TranslateHelper.TranslatorInstance.instant('@@Monat') + '; '\n + TranslateHelper.TranslatorInstance.instant('@@Tag') + ')';\n }\n\n MinVariableCount(): number {\n return 4;\n }\n\n MaxVariableCount(): number {\n return 4;\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n var retVal = new ValueAndType();\n if (args && args.length >= 4) {\n var date = args[0].Value;\n if (date instanceof Date) {\n var ms = date.getTime();\n if (!isNaN(ms)) {\n var retDate = new Date(ms);\n var year = Number(args[1].Value);\n if (isNaN(year)) {\n year = 0;\n }\n var month = Number(args[2].Value);\n if (isNaN(month)) {\n month = 0;\n }\n retDate.setMonth(retDate.getMonth() + year * 12 + month);\n var day = Number(args[3].Value);\n if (!isNaN(day)) {\n retDate = new Date(retDate.getTime() + day * 24 * 60 * 60 * 1000)\n }\n retVal.Type = ValueType.Datetime;\n retVal.Value = retDate;\n }\n }\n } \n return retVal;\n }\n}","import { TranslateHelper } from '../../helpers/injector.helper';\nimport { ValueAndType } from '../basic/formulaEditor.model';\nimport { OperationType } from '../enums/operationtype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { AFormula, FormulaGroups } from './iformula';\n\nexport class DayFormula extends AFormula {\n static StaticID = 'd36daed8-4604-4d7f-88d2-3bf4f67ea403';\n\n ID(): string {\n return DayFormula.StaticID;\n }\n\n Name(): string {\n return 'Day';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Gibt in Verbindung mit einer Zeitangabe den Tag aus');\n }\n\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 10;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n return this.Name() + '(' + TranslateHelper.TranslatorInstance.instant('@@Argument') + ')';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const retVal = new ValueAndType();\n if (maxType === ValueType.Datetime && args && args.length > 0) {\n const date = args[0].Value;\n if (date instanceof Date && !isNaN(date.getTime())) {\n retVal.Type = ValueType.Long;\n retVal.Value = date.getDate();\n }\n }\n return retVal;\n }\n}\n","import { AFormula, FormulaGroups } from './iformula';\nimport { ValueAndType } from '../basic/formulaEditor.model';\nimport { TranslateHelper } from '../../helpers/injector.helper';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { subtract, divide } from 'mathjs';\nimport { OperationType } from '../enums/operationtype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\n\nexport class DaysDiffFormula extends AFormula {\n static StaticID = 'd62ad3d3-1503-478c-b253-1b08491d9fd4';\n\n ID(): string {\n return DaysDiffFormula.StaticID;\n }\n\n Name(): string {\n return 'DaysDiff';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Tagesberechnung von einem Start- bis zu einem Enddatum');\n }\n\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 10;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n const date = TranslateHelper.TranslatorInstance.instant('@@Datum');\n return this.Name() + '(' + date + '; ' + date + ')';\n }\n\n MinVariableCount(): number {\n return 2;\n }\n\n MaxVariableCount(): number {\n return 2;\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const retVal = new ValueAndType();\n if (maxType === ValueType.Datetime && args && args.length >= 2) {\n const date1 = args[0].Value;\n if (date1 instanceof Date) {\n const date1Time = date1.getTime();\n if (!isNaN(date1Time)) {\n const date2 = args[1].Value;\n if (date2 instanceof Date) {\n const date2Time = date2.getTime();\n if (!isNaN(date2Time)) {\n retVal.Type = ValueType.Double;\n retVal.Value = divide(subtract(date1Time, date2Time), 86400000); // 24 * 60 * 60 * 1000\n }\n }\n }\n }\n }\n return retVal;\n }\n}\n","import { PrimitiveFormula, FormulaGroups } from './iformula';\nimport { ValueAndType, FormulaStatics } from '../basic/formulaEditor.model';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { divide, equal } from 'mathjs';\nimport { ValueType } from '../enums/valuetype.enum';\nimport { OperationType } from '../enums/operationtype.enum';\n\nexport class Division extends PrimitiveFormula {\n static StaticID = 'cdbf5044-69f7-45a8-bf60-01855f352f4d';\n\n constructor() {\n super();\n this._ID = Division.StaticID;\n this._Name = 'Divison';\n this._MaxVariableCount = FormulaStatics.IntMaxValue;\n }\n\n CanCalcNulls(): boolean {\n return true;\n }\n Group(): string {\n return FormulaGroups.BasicOperations;\n }\n OrderID(): number {\n return 4;\n }\n OperationType(): OperationType {\n return OperationType.Division;\n }\n OperationValue(): string {\n return '/';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const retVal = new ValueAndType();\n if (args) {\n let first = true;\n let actVal = null;\n args.some((item) => {\n if (first) {\n if (typeof item.Value === 'undefined' || item.Value == null) {\n return true;\n }\n if (maxType === ValueType.Long || maxType === ValueType.Double || maxType === ValueType.String) {\n actVal = item.Value;\n } else {\n return true;\n }\n } else {\n if (typeof item.Value !== 'undefined' && item.Value != null &&\n (maxType === ValueType.Long || maxType === ValueType.Double)) {\n if (equal(item.Value, 0)) {\n actVal = null;\n return true;\n } else {\n actVal = divide(actVal, item.Value);\n }\n } else {\n actVal = null;\n return true;\n }\n }\n first = false;\n return false;\n });\n if (actVal !== null) {\n retVal.Value = actVal;\n retVal.Type = ValueType.Double;\n }\n }\n return retVal;\n }\n}\n","import { ComparerFormula } from './iformula';\nimport { ValueAndType } from '../basic/formulaEditor.model';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { CompareType } from '../enums/comparetype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\n\nexport class Equal extends ComparerFormula {\n static StaticID: string = '2cd54f01-01cf-4c80-9cc6-59a14eddfb19';\n\n constructor() {\n super();\n this._ID = Equal.StaticID;\n this._Name = 'Gleich';\n }\n\n OrderID(): number {\n return 5;\n }\n CompareType(): CompareType {\n return CompareType.Equal;\n }\n OperationValue(): string {\n return '=';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const retVal: ValueAndType = {\n Type: ValueType.Bool,\n Value: false\n };\n if (args && args.length >= 2 && args[0] && args[1]) {\n if (args[0] && args[1]) {\n if (args[0].Type == ValueType.Null && args[1].Type == ValueType.Null) {\n retVal.Value = true;\n } else if (args[0].Type == ValueType.String || args[1].Type == ValueType.String) {\n retVal.Value = String(args[0].Value) === String(args[1].Value);\n } else if (args[0].Type == ValueType.Datetime || args[1].Type == ValueType.Datetime) {\n const now = new Date();\n let d1, d2;\n if (args[0].Value instanceof Date && !isNaN(args[0].Value.getTime())) {\n d1 = args[0].Value;\n } else {\n d1 = now;\n }\n if (args[1].Value instanceof Date && !isNaN(args[1].Value.getTime())) {\n d2 = args[1].Value;\n } else {\n d2 = now;\n }\n retVal.Value = d1 === d2;\n } else if (args[0].Type == ValueType.Double || args[1].Type == ValueType.Double ||\n args[0].Type == ValueType.Long || args[1].Type == ValueType.Long) {\n retVal.Value = Number(args[0].Value) === Number(args[1].Value);\n } else if (args[0].Type == ValueType.Bool && args[1].Type == ValueType.Bool) {\n retVal.Value = args[0].Value === args[1].Value;\n }\n } else {\n retVal.Value = true;\n }\n }\n return retVal;\n }\n}\n","import { CacheService } from '../../cache/cache.service';\nimport { AdvancedFormulaParser } from '../../helpers/formula.parser';\nimport { TranslateHelper } from '../../helpers/injector.helper';\nimport { FormulaNodeInformation, Operation, ValueAndType } from '../basic/formulaEditor.model';\nimport { BinaryOperation } from '../enums/binaryoperation.enum';\nimport { CompareType } from '../enums/comparetype.enum';\nimport { FormulaInputMode } from '../enums/formulainputmode.enum';\nimport { FormulaNodeType } from '../enums/formulanodetype.enum';\nimport { OperationType } from '../enums/operationtype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\nimport { Variable } from '../variable.model';\nimport { Addition } from './addition';\nimport { And } from './and';\nimport { Division } from './division';\nimport { Equal } from './equal';\nimport { FormulaRegistry } from './formula.registry';\nimport { Greater } from './greater';\nimport { GreaterEqual } from './greaterequal';\nimport { Multiplication } from './multiplication';\nimport { NotEqual } from './notequal';\nimport { Or } from './or';\nimport { Smaller } from './smaller';\nimport { SmallerEqual } from './smallerequal';\nimport { Subtraction } from './subtraction';\n\nexport abstract class FormulaNodeCalculator {\n protected _NullAs0: boolean;\n protected _SystemVariableList: Variable[] = [];\n private _SystemVariableDict: Map = new Map();\n protected _GlobalVariableList: Variable[] = [];\n private _GlobalVariableDict: Map = new Map();\n private _VariableNotFound: Set = new Set();\n\n static GetVariableValue(variable: Variable, nullAs0: boolean): ValueAndType {\n const retVal = new ValueAndType();\n if (variable) {\n if (typeof variable.Value !== 'undefined' && variable.Value !== null) {\n retVal.Type = ValueAndType.GetValueTypeFromType(variable.Type);\n retVal.Value = variable.Value;\n } else if (variable.Formula) {\n const parser = new AdvancedFormulaParser();\n parser.SetVariables([], FormulaInputMode.AliasKey);\n const fni = parser.Parse(variable.Formula);\n const calculator = new ValueFormulaNodeCalculator(nullAs0, [], new Map());\n const tmp = calculator.Calc(fni);\n if (tmp) {\n retVal.Type = tmp.Type;\n retVal.Value = tmp.Value;\n }\n }\n }\n return retVal;\n }\n\n constructor(nullAs0: boolean, variableList: Variable[]) {\n this._NullAs0 = nullAs0;\n this._SystemVariableList = variableList ? variableList : [];\n const globalvarableList = CacheService.GlobalVariablesValues.getValue();\n if (globalvarableList) {\n this._GlobalVariableList = globalvarableList;\n }\n }\n\n protected abstract GetVariableValue(item: FormulaNodeInformation): ValueAndType;\n\n Calc(node: FormulaNodeInformation): ValueAndType {\n let retVal = new ValueAndType();\n\n if (node.Operation.OperationType === OperationType.None) {\n retVal = this.GetValue(node);\n } else {\n retVal = this.CalcOperation(node.Operation, node.Operands);\n }\n this.CheckNegative(node, retVal);\n\n return retVal;\n }\n\n protected GetValue(item: FormulaNodeInformation): ValueAndType {\n switch (item.Type) {\n case FormulaNodeType.Value:\n return {\n Type: ValueType.Double,\n Value: item.Value\n };\n case FormulaNodeType.TextValue:\n return {\n Type: ValueType.String,\n Value: item.TextValue\n };\n case FormulaNodeType.DateValue:\n return {\n Type: ValueType.Datetime,\n Value: item.DateValue\n };\n case FormulaNodeType.BoolValue:\n return {\n Type: ValueType.Bool,\n Value: item.BoolValue\n };\n case FormulaNodeType.Operation:\n return this.CalcOperation(item.Operation, item.Operands);\n case FormulaNodeType.Variable:\n return this.GetVariableValue(item);\n case FormulaNodeType.None:\n return {\n Type: ValueType.String,\n Value: TranslateHelper.TranslatorInstance.instant('@@n. def.')\n };\n case FormulaNodeType.Placeholder:\n throw TranslateHelper.TranslatorInstance.instant('@@Formel enhaelt noch Platzhalter');\n case FormulaNodeType.SystemVariable:\n if (item.VariableID && item.VariableID.length > 0) {\n let id = item.VariableID;\n if (id[0] === '@') {\n id = id.substring(1);\n }\n if (!this._VariableNotFound.has(id)) {\n let tmp = this._SystemVariableDict.get(id);\n if (!tmp) {\n const sysVar = this._SystemVariableList.find(x => x.Name === id);\n if (sysVar) {\n tmp = FormulaNodeCalculator.GetVariableValue(sysVar, this._NullAs0);\n this._SystemVariableDict.set(id, tmp);\n } else {\n tmp = this._GlobalVariableDict.get(id);\n if (!tmp) {\n const globVar = this._GlobalVariableList.find(x => x.Name === id);\n if (globVar) {\n tmp = FormulaNodeCalculator.GetVariableValue(globVar, this._NullAs0);\n this._GlobalVariableDict.set(id, tmp);\n }\n }\n }\n }\n if (tmp) {\n return {\n Type: tmp.Type,\n Value: tmp.Value\n };\n } else {\n this._VariableNotFound.add(id);\n }\n }\n }\n break;\n }\n return null;\n }\n\n protected CalcOperation(fo: Operation, nodes: FormulaNodeInformation[]): ValueAndType {\n switch (fo.OperationType) {\n case OperationType.Addition:\n return this.CalcFormula(Addition.StaticID, nodes);\n case OperationType.Subtraktion:\n return this.CalcFormula(Subtraction.StaticID, nodes);\n case OperationType.Multiplication:\n return this.CalcFormula(Multiplication.StaticID, nodes);\n case OperationType.Division:\n return this.CalcFormula(Division.StaticID, nodes);\n case OperationType.Function:\n return this.CalcFormula(fo.FunctionType, nodes);\n case OperationType.Compare:\n switch (fo.CompareType) {\n case CompareType.Greater:\n return this.CalcFormula(Greater.StaticID, nodes);\n case CompareType.Smaller:\n return this.CalcFormula(Smaller.StaticID, nodes);\n case CompareType.Equal:\n return this.CalcFormula(Equal.StaticID, nodes);\n case CompareType.GreaterEqual:\n return this.CalcFormula(GreaterEqual.StaticID, nodes);\n case CompareType.SmallerEqual:\n return this.CalcFormula(SmallerEqual.StaticID, nodes);\n case CompareType.NotEqual:\n return this.CalcFormula(NotEqual.StaticID, nodes);\n }\n break;\n case OperationType.Binary:\n switch (fo.BinaryOperation) {\n case BinaryOperation.And:\n return this.CalcFormula(And.StaticID, nodes);\n case BinaryOperation.Or:\n return this.CalcFormula(Or.StaticID, nodes);\n }\n break;\n }\n return new ValueAndType();\n }\n\n protected CheckNegative(node: FormulaNodeInformation, vat: ValueAndType) {\n if (vat && node.SignIsNegative && (vat.Type === ValueType.Long || vat.Type === ValueType.Double)) {\n vat.Value = -vat.Value;\n }\n }\n\n private CalcFormula(guid: string, nodes: FormulaNodeInformation[]): ValueAndType {\n let retVal = new ValueAndType();\n const formula = FormulaRegistry.get(guid);\n if (nodes && nodes.length >= formula.MinVariableCount() && nodes.length <= formula.MaxVariableCount()) {\n const breakOnNull = !this._NullAs0 && !formula.CanCalcNulls();\n const values: ValueAndType[] = [];\n let maxType = ValueType.Null;\n if (!nodes.some(node => {\n let vat = this.GetValue(node);\n if (vat == null) {\n if (breakOnNull) {\n return true;\n } else {\n vat = {\n Type: ValueType.Double,\n Value: 0\n };\n }\n } else {\n this.CheckNegative(node, vat);\n }\n if (vat.Type === ValueType.Range) {\n if (Array.isArray(vat.Value)) {\n vat.Value.forEach(v => {\n if (maxType < v.Type) {\n maxType = v.Type;\n }\n });\n }\n } else if (maxType < vat.Type) {\n maxType = vat.Type;\n }\n values.push(vat);\n return false;\n })) {\n retVal = formula.Calc(this, maxType, values);\n }\n }\n return retVal;\n }\n}\n\nexport class ValueFormulaNodeCalculator extends FormulaNodeCalculator {\n private _Values: Map;\n\n constructor(nullAs0: boolean, variableList: Variable[], values: Map) {\n super(nullAs0, variableList);\n this.ReplaceNulls(values);\n this._Values = values;\n }\n\n private ReplaceNulls(values: Map) {\n if (values) {\n if (this._NullAs0) {\n const replaceList = [];\n values.forEach((v, k) => {\n if (v) {\n if ((typeof v.Value === 'undefined' || v.Value === null) &&\n (v.Type === ValueType.Double || v.Type === ValueType.Long)) {\n v.Value = 0;\n }\n } else {\n replaceList.push(k);\n }\n });\n replaceList.forEach(k => {\n const vt = new ValueAndType();\n vt.Type = ValueType.Double;\n vt.Value = 0;\n values.set(k, vt);\n });\n }\n }\n }\n\n protected GetVariableValue(item: FormulaNodeInformation): ValueAndType {\n const tmp = this._Values.get(item.VariableID);\n if (tmp) {\n return {\n Type: tmp.Type,\n Value: tmp.Value\n };\n }\n return null;\n }\n\n AddValue(key: string, val: ValueAndType) {\n if (this._NullAs0) {\n if (val) {\n if ((typeof val.Value === 'undefined' || val.Value === null) &&\n (val.Type === ValueType.Double || val.Type === ValueType.Long)) {\n val.Value = 0;\n }\n } else {\n val = new ValueAndType();\n val.Type = ValueType.Double;\n val.Value = 0;\n }\n }\n this._Values.set(key, val);\n }\n}\n\nexport class NumericFormulaNodeCalculator extends FormulaNodeCalculator {\n\n private _ValuesSelfService: number[];\n\n constructor(nullAs0: boolean, variableList: Variable[], values: number[]) {\n super(nullAs0, variableList);\n this._ValuesSelfService = values;\n }\n\n protected GetVariableValue(item: FormulaNodeInformation): ValueAndType {\n if (this._ValuesSelfService && item.DirectVariablePosition && item.DirectVariablePosition > 0 &&\n item.DirectVariablePosition < this._ValuesSelfService.length) {\n const val = this._ValuesSelfService[item.DirectVariablePosition];\n if (typeof val === 'number' && !Number.isNaN(val)) {\n return {\n Type: ValueType.Double,\n Value: val\n };\n }\n }\n return null;\n }\n\n Calc2(node: FormulaNodeInformation): number {\n const retVal = this.Calc(node);\n if (typeof retVal.Value === 'number') {\n return retVal.Value;\n }\n return Number.NaN;\n }\n}\n","import { IFormula } from './iformula';\nimport { Addition } from './addition';\nimport { Subtraction } from './subtraction';\nimport { Multiplication } from './multiplication';\nimport { Division } from './division';\nimport { Greater } from './greater';\nimport { Smaller } from './smaller';\nimport { Equal } from './equal';\nimport { GreaterEqual } from './greaterequal';\nimport { SmallerEqual } from './smallerequal';\nimport { NotEqual } from './notequal';\nimport { And } from './and';\nimport { Or } from './or';\nimport { AbsFormula } from './absformula';\nimport { ActualDate, TodayFormula } from './actualdate';\nimport { Avg, AvgNonEmpty, AvgNonZero } from './avg';\nimport { DateAdd } from './dateadd';\nimport { DayFormula } from './dayformula';\nimport { DaysDiffFormula } from './daysdiffformula';\nimport { IfThenElse } from './ifthenelse';\nimport { IndexOf } from './indexof';\nimport { LTrim } from './ltrim';\nimport { Max } from './max';\nimport { Min } from './min';\nimport { MonthFormula } from './monthformula';\nimport { RoundFormula } from './roundformula';\nimport { RTrim } from './rtrim';\nimport { StrLength } from './strlength';\nimport { SubString } from './substring';\nimport { Sum } from './sum';\nimport { ToDoubleFormula, ToLongFormula, ToStringFormula } from './todoubleformula';\nimport { ToLower } from './tolower';\nimport { ToUpper } from './toupper';\nimport { WeekFormula } from './weekformula';\nimport { YearFormula } from './yearformula';\nimport { IsNull } from './isnull';\nimport { Pow } from './pow';\nimport { SquareRoot } from './squareroot';\nimport { ToJSON } from './tojson';\nimport { ToObject } from './toobject';\nimport { GetProperty } from './getproperty';\nimport { NewGuid } from './newguid';\nimport { TranslateFormula } from './translateformula';\nimport { GenerateNull } from './generatenull';\n\nexport const FormulaRegistry = new Map([\n [Addition.StaticID, new Addition()],\n [Subtraction.StaticID, new Subtraction()],\n [Multiplication.StaticID, new Multiplication()],\n [Division.StaticID, new Division()],\n [Greater.StaticID, new Greater()],\n [Smaller.StaticID, new Smaller()],\n [Equal.StaticID, new Equal()],\n [GreaterEqual.StaticID, new GreaterEqual()],\n [SmallerEqual.StaticID, new SmallerEqual()],\n [NotEqual.StaticID, new NotEqual()],\n [And.StaticID, new And()],\n [Or.StaticID, new Or()],\n [AbsFormula.StaticID, new AbsFormula()],\n [ActualDate.StaticID, new ActualDate()],\n [Avg.StaticID, new Avg()],\n [AvgNonEmpty.StaticID, new AvgNonEmpty()],\n [AvgNonZero.StaticID, new AvgNonZero()],\n [DateAdd.StaticID, new DateAdd()],\n [DayFormula.StaticID, new DayFormula()],\n [DaysDiffFormula.StaticID, new DaysDiffFormula()],\n [IfThenElse.StaticID, new IfThenElse()],\n [IndexOf.StaticID, new IndexOf()],\n [LTrim.StaticID, new LTrim()],\n [Max.StaticID, new Max()],\n [Min.StaticID, new Min()],\n [MonthFormula.StaticID, new MonthFormula()],\n [RoundFormula.StaticID, new RoundFormula()],\n [RTrim.StaticID, new RTrim()],\n [StrLength.StaticID, new StrLength()],\n [SubString.StaticID, new SubString()],\n [Sum.StaticID, new Sum()],\n [TodayFormula.StaticID, new TodayFormula()],\n [ToDoubleFormula.StaticID, new ToDoubleFormula()],\n [ToLongFormula.StaticID, new ToLongFormula()],\n [ToStringFormula.StaticID, new ToStringFormula()],\n [ToLower.StaticID, new ToLower()],\n [ToUpper.StaticID, new ToUpper()],\n [WeekFormula.StaticID, new WeekFormula()],\n [YearFormula.StaticID, new YearFormula()],\n [IsNull.StaticID, new IsNull()],\n [Pow.StaticID, new Pow()],\n [SquareRoot.StaticID, new SquareRoot()],\n [ToJSON.StaticID, new ToJSON()],\n [ToObject.StaticID, new ToObject()],\n [GetProperty.StaticID, new GetProperty()],\n [NewGuid.StaticID, new NewGuid()],\n [TranslateFormula.StaticID, new TranslateFormula()],\n [GenerateNull.StaticID, new GenerateNull()]\n]);\n","import { TranslateHelper } from '../../helpers/injector.helper';\nimport { ValueAndType } from '../basic/formulaEditor.model';\nimport { OperationType } from '../enums/operationtype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { AFormula, FormulaGroups } from './iformula';\n\nexport class GenerateNull extends AFormula {\n static StaticID = 'ff21272f-d117-410f-9967-a81d90fcdc08';\n\n ID(): string {\n return GenerateNull.StaticID;\n }\n\n Name(): string {\n return 'GenerateNull';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Null erzeugen');\n }\n\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 1007;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n return this.Name() + '()';\n }\n\n MinVariableCount(): number {\n return 0;\n }\n\n MaxVariableCount(): number {\n return 0;\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const retVal = new ValueAndType();\n retVal.Type = ValueType.Null;\n retVal.Value = null;\n return retVal;\n }\n}\n","import { TranslateHelper } from '../../helpers/injector.helper';\nimport { ValueAndType } from '../basic/formulaEditor.model';\nimport { OperationType } from '../enums/operationtype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { AFormula, FormulaGroups } from './iformula';\n\nexport class GetProperty extends AFormula {\n static StaticID = '3b3d83da-fb28-443e-b9d8-c04c9216b97a';\n\n ID(): string {\n return GetProperty.StaticID;\n }\n\n Name(): string {\n return 'GetProperty';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Eigenschaft aus Objekt auslesen');\n }\n\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 1007;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n return this.Name() + '(' + TranslateHelper.TranslatorInstance.instant('@@Objekt') + '; '\n + TranslateHelper.TranslatorInstance.instant('@@Eigenschaft') + ')';\n }\n\n MinVariableCount(): number {\n return 2;\n }\n\n MaxVariableCount(): number {\n return 2;\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n let objVal;\n if (args && args.length > 1) {\n const obj = args[0];\n if (obj.Type === ValueType.Object) {\n const val = obj.Value;\n if (typeof val === 'object') {\n const prop = args[1];\n if (prop.Type === ValueType.String) {\n const propVal = prop.Value;\n if (typeof propVal === 'string') {\n objVal = val[propVal];\n }\n }\n }\n }\n }\n return ValueAndType.GetValueAndTypeFromJSObject(objVal);\n }\n}\n","import { ComparerFormula } from \"./iformula\";\nimport { ValueAndType } from \"../basic/formulaEditor.model\";\nimport { FormulaNodeCalculator } from \"./formula.node.calculator\";\nimport { CompareType } from \"../enums/comparetype.enum\";\nimport { ValueType } from \"../enums/valuetype.enum\";\n\nexport class Greater extends ComparerFormula {\n static StaticID: string = \"a4999078-6792-4aac-a510-f55c8dfe596e\";\n\n constructor() {\n super();\n this._ID = Greater.StaticID;\n this._Name = \"Groesser\";\n }\n\n OrderID(): number {\n return 1;\n }\n CompareType(): CompareType {\n return CompareType.Greater;\n }\n OperationValue(): string {\n return '>';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n var retVal: ValueAndType = {\n Type: ValueType.Bool,\n Value: false\n };\n if (args && args.length >= 2 && args[0] && args[1] && args[0].Type != ValueType.Null && args[1].Type != ValueType.Null) {\n if (args[0].Type == ValueType.String || args[1].Type == ValueType.String) {\n retVal.Value = String(args[0].Value).localeCompare(String(args[1].Value)) > 0;\n } else if (args[0].Type == ValueType.Datetime || args[1].Type == ValueType.Datetime) {\n var now = new Date();\n var d1, d2;\n if (args[0].Value instanceof Date && !isNaN(args[0].Value.getTime())) {\n d1 = args[0].Value;\n } else {\n d1 = now;\n }\n if (args[1].Value instanceof Date && !isNaN(args[1].Value.getTime())) {\n d2 = args[1].Value;\n } else {\n d2 = now;\n }\n retVal.Value = d1 > d2;\n } else if (args[0].Type == ValueType.Double || args[1].Type == ValueType.Double || args[0].Type == ValueType.Long || args[1].Type == ValueType.Long) {\n retVal.Value = Number(args[0].Value) > Number(args[1].Value);\n }\n }\n return retVal;\n }\n}","import { ValueAndType } from \"../basic/formulaEditor.model\";\nimport { CompareType } from \"../enums/comparetype.enum\";\nimport { ValueType } from \"../enums/valuetype.enum\";\nimport { FormulaNodeCalculator } from \"./formula.node.calculator\";\nimport { ComparerFormula } from \"./iformula\";\n\nexport class GreaterEqual extends ComparerFormula {\n static StaticID: string = \"a7c9595c-f901-4d24-a779-8a3106e99eea\";\n\n constructor() {\n super();\n this._ID = GreaterEqual.StaticID;\n this._Name = \"Groesser Gleich\";\n }\n\n OrderID(): number {\n return 2;\n }\n CompareType(): CompareType {\n return CompareType.GreaterEqual;\n }\n OperationValue(): string {\n return '>=';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n var retVal: ValueAndType = {\n Type: ValueType.Bool,\n Value: false\n };\n if (args && args.length >= 2 && args[0] && args[1] && args[0].Type != ValueType.Null && args[1].Type != ValueType.Null) {\n if (args[0].Type == ValueType.String || args[1].Type == ValueType.String) {\n retVal.Value = String(args[0].Value).localeCompare(String(args[1].Value)) >= 0;\n } else if (args[0].Type == ValueType.Datetime || args[1].Type == ValueType.Datetime) {\n var now = new Date();\n var d1, d2;\n if (args[0].Value instanceof Date && !isNaN(args[0].Value.getTime())) {\n d1 = args[0].Value;\n } else {\n d1 = now;\n }\n if (args[1].Value instanceof Date && !isNaN(args[1].Value.getTime())) {\n d2 = args[1].Value;\n } else {\n d2 = now;\n }\n retVal.Value = d1 >= d2;\n } else if (args[0].Type == ValueType.Double || args[1].Type == ValueType.Double || args[0].Type == ValueType.Long || args[1].Type == ValueType.Long) {\n retVal.Value = Number(args[0].Value) >= Number(args[1].Value);\n }\n }\n return retVal;\n }\n}","import { Operation, ValueAndType } from '../basic/formulaEditor.model';\nimport { BinaryOperation } from '../enums/binaryoperation.enum';\nimport { CompareType } from '../enums/comparetype.enum';\nimport { OperationType } from '../enums/operationtype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\n\nexport interface IFormula {\n ID(): string;\n Name(): string;\n Caption(): string;\n Description(): string;\n MinVariableCount(): number;\n MaxVariableCount(): number;\n Primitiv(): boolean;\n CanCalcNulls(): boolean;\n DontResolveRanges(): boolean;\n Advanced(): boolean;\n Group(): string;\n OrderID(): number;\n BinaryOperation(): BinaryOperation;\n CompareType(): CompareType;\n OperationType(): OperationType;\n OperationValue(): string;\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType;\n ToOperation(): Operation;\n}\n\nexport abstract class AFormula implements IFormula {\n abstract ID(): string;\n abstract Name(): string;\n Caption(): string {\n return '@@' + this.Name();\n }\n Description(): string {\n return this.Name();\n }\n MinVariableCount(): number {\n return 1;\n }\n MaxVariableCount(): number {\n return 1;\n }\n Primitiv(): boolean {\n return false;\n }\n CanCalcNulls(): boolean {\n return false;\n }\n DontResolveRanges(): boolean {\n return false;\n }\n Advanced(): boolean {\n return false;\n }\n abstract Group(): string;\n abstract OrderID(): number;\n BinaryOperation(): BinaryOperation {\n return BinaryOperation.None;\n }\n CompareType(): CompareType {\n return CompareType.None;\n }\n abstract OperationType(): OperationType;\n abstract OperationValue(): string;\n\n abstract Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType;\n\n ToOperation(): Operation {\n const retVal = new Operation();\n switch (this.OperationType()) {\n case OperationType.Binary:\n retVal.BinaryOperation = this.BinaryOperation();\n break;\n case OperationType.Compare:\n retVal.CompareType = this.CompareType();\n break;\n case OperationType.Function:\n retVal.FunctionType = this.ID();\n break;\n }\n retVal.MaxOperandCount = this.MaxVariableCount();\n retVal.MinOperandCount = this.MinVariableCount();\n retVal.Name = this.Caption(); // hier uebersetzen?\n retVal.OperationType = this.OperationType();\n retVal.OperationValue = this.OperationValue();\n retVal.Description = this.Description();\n return retVal;\n }\n}\n\nexport abstract class AAdvancedFormula extends AFormula {\n Advanced(): boolean {\n return true;\n }\n Group(): string {\n return '';\n }\n OperationType(): OperationType {\n return OperationType.None;\n }\n OperationValue(): string {\n return '';\n }\n OrderID(): number {\n return 0;\n }\n}\n\nexport abstract class PrimitiveFormula extends AFormula {\n protected _ID: string;\n protected _Name: string;\n protected _MinVariableCount = 2;\n protected _MaxVariableCount = 2;\n\n ID(): string {\n return this._ID;\n }\n Name(): string {\n return this._Name;\n }\n MinVariableCount(): number {\n return this._MinVariableCount;\n }\n MaxVariableCount(): number {\n return this._MaxVariableCount;\n }\n Primitiv(): boolean {\n return true;\n }\n}\n\nexport abstract class ComparerFormula extends PrimitiveFormula {\n CanCalcNulls(): boolean {\n return true;\n }\n Group(): string {\n return FormulaGroups.Comparisons;\n }\n OperationType(): OperationType {\n return OperationType.Compare;\n }\n}\n\nexport abstract class RangeEnabledFormula extends AAdvancedFormula {\n protected _ID: string;\n protected _Name: string;\n protected _MinVariableCount = 1;\n protected _MaxVariableCount = 1;\n\n ID(): string {\n return this._ID;\n }\n Name(): string {\n return this._Name;\n }\n MinVariableCount(): number {\n return this._MinVariableCount;\n }\n MaxVariableCount(): number {\n return this._MaxVariableCount;\n }\n\n protected HandleNumericRange(vat: ValueAndType, handler) {\n if (vat && Array.isArray(vat.Value)) {\n vat.Value.forEach(function (val) {\n if (typeof val === 'undefined' || val == null || typeof val.Value === 'undefined' || val.Value == null) {\n handler(null);\n } else {\n handler(Number(val.Value));\n }\n });\n }\n }\n\n protected GetStringRange(vat: ValueAndType): string[] {\n const retVal = [];\n if (vat && Array.isArray(vat.Value)) {\n vat.Value.forEach(function (val) {\n if (typeof val === 'undefined' || val == null || typeof val.Value === 'undefined' || val.Value == null) {\n retVal.push(null);\n } else {\n retVal.push(String(val.Value));\n }\n });\n }\n return retVal;\n }\n}\n\nexport class FormulaGroups {\n static GroupSeperator = '//';\n static BasicOperations = '@@Grundrechenarten';\n static Functions = '@@Funktionen';\n static Comparisons = '@@Vergleichsoperationen';\n static Binary = '@@Binaere Operationen';\n}\n","import { AFormula, FormulaGroups } from \"./iformula\";\nimport { ValueAndType } from \"../basic/formulaEditor.model\";\nimport { TranslateHelper } from \"../../helpers/injector.helper\";\nimport { FormulaNodeCalculator } from \"./formula.node.calculator\";\nimport { OperationType } from \"../enums/operationtype.enum\";\nimport { ValueType } from \"../enums/valuetype.enum\";\n\nexport class IfThenElse extends AFormula {\n static StaticID: string = '11c59750-0b1d-4f76-88f4-3c67555a7b20';\n\n ID(): string {\n return IfThenElse.StaticID;\n }\n\n Name(): string {\n return 'IfThenElse';\n }\n\n Caption(): string {\n return '@@Wenn Dann Sonst';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Pruefen von Bedingungen mittels Vergleichsoperatoren');\n }\n\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 1;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n return this.Name() + '('\n + TranslateHelper.TranslatorInstance.instant('@@Bedingung') + '; '\n + TranslateHelper.TranslatorInstance.instant('@@Dann') + '; '\n + TranslateHelper.TranslatorInstance.instant('@@Sonst') + ')';\n }\n\n MinVariableCount(): number {\n return 3;\n }\n\n MaxVariableCount(): number {\n return 3;\n }\n\n CanCalcNulls(): boolean {\n return true;\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n var retVal = new ValueAndType();\n if (args && args.length >= 3 && args[0].Type == ValueType.Bool && typeof args[0].Value === 'boolean') {\n if (args[0].Value) {\n retVal = args[1];\n } else {\n retVal = args[2];\n }\n }\n return retVal;\n }\n}","import { TranslateHelper } from \"../../helpers/injector.helper\";\nimport { ValueAndType } from \"../basic/formulaEditor.model\";\nimport { OperationType } from \"../enums/operationtype.enum\";\nimport { ValueType } from \"../enums/valuetype.enum\";\nimport { FormulaNodeCalculator } from \"./formula.node.calculator\";\nimport { AFormula, FormulaGroups } from \"./iformula\";\n\nexport class IndexOf extends AFormula {\n static StaticID: string = '4d2b45ea-6967-455c-8c67-cc00aaf5a22e';\n\n ID(): string {\n return IndexOf.StaticID;\n }\n\n Name(): string {\n return 'IndexOf';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Ausgabe des Index einer Zeichenkette innerhalb einer Zeichenkette');\n }\n\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 13;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n return this.Name() + '('\n + TranslateHelper.TranslatorInstance.instant('@@Text') + '; '\n + TranslateHelper.TranslatorInstance.instant('@@Search') + '; '\n + TranslateHelper.TranslatorInstance.instant('@@StartIndex') + ')';\n }\n\n MinVariableCount(): number {\n return 2;\n }\n\n MaxVariableCount(): number {\n return 3;\n }\n\n CanCalcNulls(): boolean {\n return true;\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n var retVal = new ValueAndType();\n retVal.Type = ValueType.Long;\n var text = '';\n var search = '';\n var startIndex = null;\n if (args && args.length >= 2) {\n if (typeof args[0].Value !== 'undefined' && args[0].Value != null) {\n text = String(args[0].Value);\n }\n if (typeof args[1].Value !== 'undefined' && args[1].Value != null) {\n search = String(args[1].Value);\n }\n if (args.length > 2) {\n startIndex = Number(args[2].Value);\n if (isNaN(startIndex)) {\n startIndex = null;\n } else {\n startIndex--;\n if (startIndex < 0) {\n startIndex = 0;\n }\n if (startIndex >= text.length) {\n startIndex = null;\n }\n }\n }\n }\n if (startIndex == null) {\n retVal.Value = text.indexOf(search);\n } else {\n retVal.Value = text.indexOf(search, startIndex);\n }\n return retVal;\n }\n}","import { TranslateHelper } from '../../helpers/injector.helper';\nimport { ValueAndType } from '../basic/formulaEditor.model';\nimport { OperationType } from '../enums/operationtype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { AFormula, FormulaGroups } from './iformula';\n\nexport class IsNull extends AFormula {\n static StaticID = '044604a3-2770-4a31-abf1-7f5f5ce9d893';\n\n ID(): string {\n return IsNull.StaticID;\n }\n Name(): string {\n return 'IsNull';\n }\n Group(): string {\n return FormulaGroups.Functions;\n }\n OrderID(): number {\n return 2;\n }\n OperationType(): OperationType {\n return OperationType.Function;\n }\n OperationValue(): string {\n return this.Name() + '(' + TranslateHelper.TranslatorInstance.instant('@@Argument') + ')';\n }\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const retVal = new ValueAndType();\n retVal.Type = ValueType.Bool;\n retVal.Value = false;\n if (args && args.length > 0) {\n const val = args[0];\n retVal.Value = val.Value === null || typeof val.Value === 'undefined';\n }\n return retVal;\n }\n}\n","import { TranslateHelper } from \"../../helpers/injector.helper\";\nimport { ValueAndType } from \"../basic/formulaEditor.model\";\nimport { OperationType } from \"../enums/operationtype.enum\";\nimport { ValueType } from \"../enums/valuetype.enum\";\nimport { FormulaNodeCalculator } from \"./formula.node.calculator\";\nimport { AFormula, FormulaGroups } from \"./iformula\";\n\nexport class LTrim extends AFormula {\n static StaticID: string = '4af96c39-b9ed-4088-95af-8bf3a94a1394';\n\n ID(): string {\n return LTrim.StaticID;\n }\n\n Name(): string {\n return 'LTrim';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Kuerzen einer Zeichenkette an der linken Seite');\n }\n\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 14;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n return this.Name() + '('\n + TranslateHelper.TranslatorInstance.instant('@@Text') + '; '\n + TranslateHelper.TranslatorInstance.instant('@@Zeichen') + ')';\n }\n\n MaxVariableCount(): number {\n return 2;\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n var retVal = new ValueAndType();\n retVal.Type = ValueType.String;\n retVal.Value = '';\n if (args && args.length > 0) {\n var text = '';\n var trimChar = ' ';\n if (typeof args[0].Value !== 'undefined' && args[0].Value != null) {\n text = String(args[0].Value);\n }\n if (args.length > 1 && typeof args[1].Value !== 'undefined' && args[1].Value != null) {\n var tc = String(args[1].Value);\n if (tc && tc.length > 0) {\n trimChar = tc[0];\n }\n }\n var index = 0;\n while (text.length > index && text[index] == trimChar) {\n index++;\n }\n retVal.Value = text.substr(index);\n }\n return retVal;\n }\n}","import { FormulaStatics, ValueAndType } from \"../basic/formulaEditor.model\";\nimport { ValueType } from \"../enums/valuetype.enum\";\nimport { FormulaNodeCalculator } from \"./formula.node.calculator\";\nimport { RangeEnabledFormula } from \"./iformula\";\n\nexport class Max extends RangeEnabledFormula {\n static StaticID: string = '52f35fa1-5fba-47c9-b7a3-628eccd86079';\n\n constructor() {\n super();\n this._ID = Max.StaticID;\n this._Name = 'Max';\n this._MaxVariableCount = FormulaStatics.IntMaxValue;\n }\n\n CanCalcNulls(): boolean {\n return true;\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n var retVal = new ValueAndType();\n retVal.Type = maxType;\n if (args && (maxType == ValueType.Long || maxType == ValueType.Double)) {\n var that = this;\n args.forEach(function (item) {\n if (typeof item.Value !== 'undefined' && item.Value != null) {\n if (item.Type == ValueType.Range) {\n that.HandleNumericRange(item, (val) => {\n if (val != null && !isNaN(val)) {\n if (retVal.Value == null || val > retVal.Value) {\n retVal.Value = val;\n }\n }\n });\n } else {\n var val = Number(item.Value);\n if (!isNaN(val)) {\n if (retVal.Value == null || val > retVal.Value) {\n retVal.Value = val;\n }\n }\n }\n }\n });\n }\n return retVal;\n }\n}","import { FormulaStatics, ValueAndType } from \"../basic/formulaEditor.model\";\nimport { ValueType } from \"../enums/valuetype.enum\";\nimport { FormulaNodeCalculator } from \"./formula.node.calculator\";\nimport { RangeEnabledFormula } from \"./iformula\";\n\nexport class Min extends RangeEnabledFormula {\n static StaticID: string = '0febaad5-668f-4cd3-84d5-077f0c16b862';\n\n constructor() {\n super();\n this._ID = Min.StaticID;\n this._Name = 'Min';\n this._MaxVariableCount = FormulaStatics.IntMaxValue;\n }\n\n CanCalcNulls(): boolean {\n return true;\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n var retVal = new ValueAndType();\n retVal.Type = maxType;\n if (args && (maxType == ValueType.Long || maxType == ValueType.Double)) {\n var that = this;\n args.forEach(function (item) {\n if (typeof item.Value !== 'undefined' && item.Value != null) {\n if (item.Type == ValueType.Range) {\n that.HandleNumericRange(item, (val) => {\n if (val != null && !isNaN(val)) {\n if (retVal.Value == null || val < retVal.Value) {\n retVal.Value = val;\n }\n }\n });\n } else {\n var val = Number(item.Value);\n if (!isNaN(val)) {\n if (retVal.Value == null || val < retVal.Value) {\n retVal.Value = val;\n }\n }\n }\n }\n });\n }\n return retVal;\n }\n}","import { TranslateHelper } from '../../helpers/injector.helper';\nimport { ValueAndType } from '../basic/formulaEditor.model';\nimport { OperationType } from '../enums/operationtype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { AFormula, FormulaGroups } from './iformula';\n\nexport class MonthFormula extends AFormula {\n static StaticID = 'beab2206-90a0-463d-9897-146d7fbaf546';\n\n ID(): string {\n return MonthFormula.StaticID;\n }\n\n Name(): string {\n return 'Month';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Gibt in Verbindung mit einer Zeitangabe den Monat aus');\n }\n\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 10;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n return this.Name() + '(' + TranslateHelper.TranslatorInstance.instant('@@Argument') + ')';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const retVal = new ValueAndType();\n if (maxType === ValueType.Datetime && args && args.length > 0) {\n const date = args[0].Value;\n if (date instanceof Date && !isNaN(date.getTime())) {\n retVal.Type = ValueType.Long;\n retVal.Value = date.getMonth() + 1;\n }\n }\n return retVal;\n }\n}\n","import { multiply } from 'mathjs';\nimport { FormulaStatics, ValueAndType } from '../basic/formulaEditor.model';\nimport { OperationType } from '../enums/operationtype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { FormulaGroups, PrimitiveFormula } from './iformula';\n\nexport class Multiplication extends PrimitiveFormula {\n static StaticID = 'b1fc1f52-ba41-46f2-a9ab-c6e2a23aa758';\n\n constructor() {\n super();\n this._ID = Multiplication.StaticID;\n this._Name = 'Multiplikation';\n this._MaxVariableCount = FormulaStatics.IntMaxValue;\n this._MinVariableCount = 1;\n }\n\n CanCalcNulls(): boolean {\n return true;\n }\n Group(): string {\n return FormulaGroups.BasicOperations;\n }\n OrderID(): number {\n return 3;\n }\n OperationType(): OperationType {\n return OperationType.Multiplication;\n }\n OperationValue(): string {\n return '*';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const retVal = new ValueAndType();\n if (args && (maxType === ValueType.Double || maxType === ValueType.Long)) {\n let calcVal = 1;\n args.some((item) => {\n if (typeof item.Value === 'undefined' || item.Value === null) {\n calcVal = null;\n return true;\n }\n calcVal = multiply(calcVal, item.Value);\n if (isNaN(calcVal)) {\n calcVal = null;\n return true;\n }\n return false;\n });\n if (calcVal !== null) {\n retVal.Type = maxType;\n retVal.Value = calcVal;\n }\n }\n return retVal;\n }\n}\n","import { UUID } from 'angular2-uuid';\nimport { TranslateHelper } from '../../helpers/injector.helper';\nimport { ValueAndType } from '../basic/formulaEditor.model';\nimport { OperationType } from '../enums/operationtype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { AFormula, FormulaGroups } from './iformula';\n\nexport class NewGuid extends AFormula {\n static StaticID = '55b4b581-adbe-421a-8ffe-db6bb78a48f4';\n\n ID(): string {\n return NewGuid.StaticID;\n }\n Name(): string {\n return 'NewGuid';\n }\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Neue Guid');\n }\n Group(): string {\n return FormulaGroups.Functions;\n }\n OrderID(): number {\n return 1500;\n }\n OperationType(): OperationType {\n return OperationType.Function;\n }\n OperationValue(): string {\n return this.Name() + '()';\n }\n MinVariableCount(): number {\n return 0;\n }\n MaxVariableCount(): number {\n return 0;\n }\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n return {\n Type: ValueType.Object,\n Value: UUID.UUID()\n };\n }\n}\n","import { ValueAndType } from '../basic/formulaEditor.model';\nimport { CompareType } from '../enums/comparetype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { ComparerFormula } from './iformula';\n\nexport class NotEqual extends ComparerFormula {\n static StaticID: string = '39a55ad6-ad95-451c-a74c-2dead533615e';\n\n constructor() {\n super();\n this._ID = NotEqual.StaticID;\n this._Name = 'Ungleich';\n }\n\n OrderID(): number {\n return 6;\n }\n CompareType(): CompareType {\n return CompareType.NotEqual;\n }\n OperationValue(): string {\n return '<>';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const retVal: ValueAndType = {\n Type: ValueType.Bool,\n Value: false\n };\n if (args && args.length >= 2 && args[0] && args[1]) {\n if (args[0] && args[1]) {\n if (args[0].Type == ValueType.Null && args[1].Type == ValueType.Null) {\n retVal.Value = true;\n } else if (args[0].Type == ValueType.String || args[1].Type == ValueType.String) {\n retVal.Value = String(args[0].Value) === String(args[1].Value);\n } else if (args[0].Type == ValueType.Datetime || args[1].Type == ValueType.Datetime) {\n const now = new Date();\n let d1, d2;\n if (args[0].Value instanceof Date && !isNaN(args[0].Value.getTime())) {\n d1 = args[0].Value;\n } else {\n d1 = now;\n }\n if (args[1].Value instanceof Date && !isNaN(args[1].Value.getTime())) {\n d2 = args[1].Value;\n } else {\n d2 = now;\n }\n retVal.Value = d1 === d2;\n } else if (args[0].Type == ValueType.Double || args[1].Type == ValueType.Double || args[0].Type == ValueType.Long || args[1].Type == ValueType.Long) {\n retVal.Value = Number(args[0].Value) === Number(args[1].Value);\n } else if (args[0].Type == ValueType.Bool && args[1].Type == ValueType.Bool) {\n retVal.Value = args[0].Value === args[1].Value;\n }\n } else {\n retVal.Value = true;\n }\n }\n retVal.Value = !retVal.Value;\n return retVal;\n }\n}\n","import { TranslateHelper } from \"../../helpers/injector.helper\";\nimport { ValueAndType } from \"../basic/formulaEditor.model\";\nimport { BinaryOperation } from \"../enums/binaryoperation.enum\";\nimport { OperationType } from \"../enums/operationtype.enum\";\nimport { ValueType } from \"../enums/valuetype.enum\";\nimport { FormulaNodeCalculator } from \"./formula.node.calculator\";\nimport { FormulaGroups, PrimitiveFormula } from \"./iformula\";\n\nexport class Or extends PrimitiveFormula {\n static StaticID: string = \"e56dee7b-2a88-4182-8589-3b4c91f78527\";\n\n constructor() {\n super();\n this._ID = Or.StaticID;\n this._Name = 'Or';\n this._MaxVariableCount = 10000;\n }\n\n Group(): string {\n return FormulaGroups.Binary;\n }\n OrderID(): number {\n return 2;\n }\n OperationType(): OperationType {\n return OperationType.Binary;\n }\n BinaryOperation(): BinaryOperation {\n return BinaryOperation.Or;\n }\n OperationValue(): string {\n return this.Name() + '(' + TranslateHelper.TranslatorInstance.instant('@@Wert1') + '; ...; ' + TranslateHelper.TranslatorInstance.instant('@@WertX') + ')';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n var retVal: ValueAndType = {\n Type: ValueType.Bool,\n Value: false\n };\n if (args) {\n args.some(function (item) {\n if (item.Type == ValueType.Bool) {\n if (typeof item.Value === 'boolean') {\n retVal.Value = retVal.Value || item.Value;\n }\n }\n return retVal.Value;\n });\n }\n return retVal;\n }\n}","import { pow } from 'mathjs';\nimport { TranslateHelper } from '../../helpers/injector.helper';\nimport { ValueAndType } from '../basic/formulaEditor.model';\nimport { OperationType } from '../enums/operationtype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { AFormula, FormulaGroups } from './iformula';\n\nexport class Pow extends AFormula {\n static StaticID = '44f02179-0fe6-461d-8cf5-6902f325a60e';\n\n ID(): string {\n return Pow.StaticID;\n }\n Name(): string {\n return 'Pow';\n }\n Caption(): string {\n return '@@Potenz';\n }\n Description(): string {\n return '@@Potenz Berechnung';\n }\n MinVariableCount(): number {\n return 2;\n }\n MaxVariableCount(): number {\n return 2;\n }\n Group(): string {\n return FormulaGroups.Functions;\n }\n OrderID(): number {\n return 1010;\n }\n OperationType(): OperationType {\n return OperationType.Function;\n }\n OperationValue(): string {\n return this.Name() + '(' + TranslateHelper.TranslatorInstance.instant('@@Wert') + '; '\n + TranslateHelper.TranslatorInstance.instant('@@Potenz') + ')';\n }\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const retVal = new ValueAndType();\n if (args && args.length > 1) {\n const first = args[0];\n const second = args[1];\n if ((first.Type === ValueType.Double && second.Type === ValueType.Double) ||\n (first.Type === ValueType.Long && second.Type === ValueType.Long)) {\n retVal.Type = ValueType.Double;\n retVal.Value = pow(first.Value, second.Value);\n }\n }\n return retVal;\n }\n}\n","import { equal, round } from 'mathjs';\nimport { TranslateHelper } from '../../helpers/injector.helper';\nimport { ValueAndType } from '../basic/formulaEditor.model';\nimport { OperationType } from '../enums/operationtype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { AFormula, FormulaGroups } from './iformula';\n\nexport class RoundFormula extends AFormula {\n static StaticID = '31b493c4-ef9f-435b-860f-76fdf4beb726';\n\n ID(): string {\n return RoundFormula.StaticID;\n }\n\n Name(): string {\n return 'Round';\n }\n\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 999;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n return this.Name() + '(' + TranslateHelper.TranslatorInstance.instant('@@Measure') + '; ' +\n TranslateHelper.TranslatorInstance.instant('@@Stellen') + ')';\n }\n\n MinVariableCount(): number {\n return 2;\n }\n\n MaxVariableCount(): number {\n return 2;\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const retVal = new ValueAndType();\n if (args && args.length > 1) {\n const num = args[0].Value;\n const digits = args[1].Value;\n if (typeof num === 'number' && typeof digits === 'number') {\n retVal.Value = round(num, digits);\n retVal.Type = ValueType.Double;\n if (equal(digits, 0)) {\n retVal.Type = ValueType.Long;\n }\n }\n }\n return retVal;\n }\n}\n","import { TranslateHelper } from \"../../helpers/injector.helper\";\nimport { ValueAndType } from \"../basic/formulaEditor.model\";\nimport { OperationType } from \"../enums/operationtype.enum\";\nimport { ValueType } from \"../enums/valuetype.enum\";\nimport { FormulaNodeCalculator } from \"./formula.node.calculator\";\nimport { AFormula, FormulaGroups } from \"./iformula\";\n\nexport class RTrim extends AFormula {\n static StaticID: string = '660d456f-3df4-40d2-a786-c9f7ea34f9ac';\n\n ID(): string {\n return RTrim.StaticID;\n }\n\n Name(): string {\n return 'RTrim';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Kuerzen einer Zeichenkette an der rechten Seite');\n }\n\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 15;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n return this.Name() + '('\n + TranslateHelper.TranslatorInstance.instant('@@Text') + '; '\n + TranslateHelper.TranslatorInstance.instant('@@Zeichen') + ')';\n }\n\n MaxVariableCount(): number {\n return 2;\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n var retVal = new ValueAndType();\n retVal.Type = ValueType.String;\n retVal.Value = '';\n if (args && args.length > 0) {\n var text = '';\n var trimChar = ' ';\n if (typeof args[0].Value !== 'undefined' && args[0].Value != null) {\n text = String(args[0].Value);\n }\n if (args.length > 1 && typeof args[1].Value !== 'undefined' && args[1].Value != null) {\n var tc = String(args[1].Value);\n if (tc && tc.length > 0) {\n trimChar = tc[0];\n }\n }\n var length = text.length;\n while (length > 0 && text[length - 1] == trimChar) {\n length--;\n }\n retVal.Value = text.substr(0, length);\n }\n return retVal;\n }\n}","import { ValueAndType } from \"../basic/formulaEditor.model\";\nimport { CompareType } from \"../enums/comparetype.enum\";\nimport { ValueType } from \"../enums/valuetype.enum\";\nimport { FormulaNodeCalculator } from \"./formula.node.calculator\";\nimport { ComparerFormula } from \"./iformula\";\n\nexport class Smaller extends ComparerFormula {\n static StaticID: string = \"eb852743-eb29-42f9-8b81-5e16c40339f1\";\n\n constructor() {\n super();\n this._ID = Smaller.StaticID;\n this._Name = \"Kleiner\";\n }\n\n OrderID(): number {\n return 3;\n }\n CompareType(): CompareType {\n return CompareType.Smaller;\n }\n OperationValue(): string {\n return '<';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n var retVal: ValueAndType = {\n Type: ValueType.Bool,\n Value: false\n };\n if (args && args.length >= 2 && args[0] && args[1] && args[0].Type != ValueType.Null && args[1].Type != ValueType.Null) {\n if (args[0].Type == ValueType.String || args[1].Type == ValueType.String) {\n retVal.Value = String(args[0].Value).localeCompare(String(args[1].Value)) < 0;\n } else if (args[0].Type == ValueType.Datetime || args[1].Type == ValueType.Datetime) {\n var now = new Date();\n var d1, d2;\n if (args[0].Value instanceof Date && !isNaN(args[0].Value.getTime())) {\n d1 = args[0].Value;\n } else {\n d1 = now;\n }\n if (args[1].Value instanceof Date && !isNaN(args[1].Value.getTime())) {\n d2 = args[1].Value;\n } else {\n d2 = now;\n }\n retVal.Value = d1 < d2;\n } else if (args[0].Type == ValueType.Double || args[1].Type == ValueType.Double || args[0].Type == ValueType.Long || args[1].Type == ValueType.Long) {\n retVal.Value = Number(args[0].Value) < Number(args[1].Value);\n }\n }\n return retVal;\n }\n}","import { ValueAndType } from \"../basic/formulaEditor.model\";\nimport { CompareType } from \"../enums/comparetype.enum\";\nimport { ValueType } from \"../enums/valuetype.enum\";\nimport { FormulaNodeCalculator } from \"./formula.node.calculator\";\nimport { ComparerFormula } from \"./iformula\";\n\nexport class SmallerEqual extends ComparerFormula {\n static StaticID: string = \"548e91bf-4af1-454a-b675-7ced661d5cc7\";\n\n constructor() {\n super();\n this._ID = SmallerEqual.StaticID;\n this._Name = \"Kleiner Gleich\";\n }\n\n OrderID(): number {\n return 4;\n }\n CompareType(): CompareType {\n return CompareType.SmallerEqual;\n }\n OperationValue(): string {\n return '<=';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n var retVal: ValueAndType = {\n Type: ValueType.Bool,\n Value: false\n };\n if (args && args.length >= 2 && args[0] && args[1] && args[0].Type != ValueType.Null && args[1].Type != ValueType.Null) {\n if (args[0].Type == ValueType.String || args[1].Type == ValueType.String) {\n retVal.Value = String(args[0].Value).localeCompare(String(args[1].Value)) <= 0;\n } else if (args[0].Type == ValueType.Datetime || args[1].Type == ValueType.Datetime) {\n var now = new Date();\n var d1, d2;\n if (args[0].Value instanceof Date && !isNaN(args[0].Value.getTime())) {\n d1 = args[0].Value;\n } else {\n d1 = now;\n }\n if (args[1].Value instanceof Date && !isNaN(args[1].Value.getTime())) {\n d2 = args[1].Value;\n } else {\n d2 = now;\n }\n retVal.Value = d1 <= d2;\n } else if (args[0].Type == ValueType.Double || args[1].Type == ValueType.Double || args[0].Type == ValueType.Long || args[1].Type == ValueType.Long) {\n retVal.Value = Number(args[0].Value) <= Number(args[1].Value);\n }\n }\n return retVal;\n }\n}","import { sqrt } from 'mathjs';\nimport { TranslateHelper } from '../../helpers/injector.helper';\nimport { ValueAndType } from '../basic/formulaEditor.model';\nimport { OperationType } from '../enums/operationtype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { AFormula, FormulaGroups } from './iformula';\n\nexport class SquareRoot extends AFormula {\n static StaticID = 'c5559f29-c210-424b-93bf-4af0982d63b2';\n\n ID(): string {\n return SquareRoot.StaticID;\n }\n Name(): string {\n return 'Sqrt';\n }\n Caption(): string {\n return '@@Wurzel';\n }\n Description(): string {\n return '@@Wurzel Berechnung';\n }\n Group(): string {\n return FormulaGroups.Functions;\n }\n OrderID(): number {\n return 1020;\n }\n OperationType(): OperationType {\n return OperationType.Function;\n }\n OperationValue(): string {\n return this.Name() + '(' + TranslateHelper.TranslatorInstance.instant('@@Wert') + ')';\n }\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const retVal = new ValueAndType();\n if (args && args.length > 0) {\n const first = args[0];\n if (first.Type === ValueType.Double || first.Type === ValueType.Long) {\n retVal.Type = ValueType.Double;\n retVal.Value = sqrt(first.Value);\n }\n }\n return retVal;\n }\n}\n","import { TranslateHelper } from \"../../helpers/injector.helper\";\nimport { ValueAndType } from \"../basic/formulaEditor.model\";\nimport { OperationType } from \"../enums/operationtype.enum\";\nimport { ValueType } from \"../enums/valuetype.enum\";\nimport { FormulaNodeCalculator } from \"./formula.node.calculator\";\nimport { AFormula, FormulaGroups } from \"./iformula\";\n\nexport class StrLength extends AFormula {\n static StaticID: string = '1859ba2e-493d-4b03-9921-ab9703160df1';\n\n ID(): string {\n return StrLength.StaticID;\n }\n\n Name(): string {\n return 'StrLength';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Ausgabe der Laenge einer Zeichenkette als Ganzzahl');\n }\n\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 16;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n return this.Name() + '(' + TranslateHelper.TranslatorInstance.instant('@@Text') + ')';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n var retVal = new ValueAndType();\n retVal.Type = ValueType.Long;\n var text = '';\n if (args && args.length > 0) {\n if (typeof args[0].Value !== 'undefined' && args[0].Value != null) {\n text = String(args[0].Value);\n }\n }\n retVal.Value = text.length;\n return retVal;\n }\n}","import { AFormula, FormulaGroups } from \"./iformula\";\nimport { ValueAndType } from \"../basic/formulaEditor.model\";\nimport { TranslateHelper } from \"../../helpers/injector.helper\";\nimport { FormulaNodeCalculator } from \"./formula.node.calculator\";\nimport { OperationType } from \"../enums/operationtype.enum\";\nimport { ValueType } from \"../enums/valuetype.enum\";\n\nexport class SubString extends AFormula {\n static StaticID: string = 'f5c5bdf9-7eeb-44d7-a44a-adc6a0ef637d';\n\n ID(): string {\n return SubString.StaticID;\n }\n\n Name(): string {\n return 'SubString';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Zurueckgeben einer bestimmten Zeichenfolge');\n }\n\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 2;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n return this.Name() + '('\n + TranslateHelper.TranslatorInstance.instant('@@Text') + '; '\n + TranslateHelper.TranslatorInstance.instant('@@Start') + '; '\n + TranslateHelper.TranslatorInstance.instant('@@{Anzahl}') + '; '\n + TranslateHelper.TranslatorInstance.instant('@@CodeDescription') + ')';\n }\n\n MinVariableCount(): number {\n return 2;\n }\n\n MaxVariableCount(): number {\n return 4;\n }\n\n CanCalcNulls(): boolean {\n return true;\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n var retVal = new ValueAndType();\n retVal.Type = ValueType.String;\n retVal.Value = '';\n var text = '';\n var startIndex = 0;\n var length = null;\n if (args && args.length > 1) {\n if (typeof args[0].Value !== 'undefined' && args[0].Value != null) {\n text = String(args[0].Value);\n }\n if (typeof args[1].Value !== 'undefined' && args[1].Value != null) {\n startIndex = Number(args[1].Value);\n if (isNaN(startIndex)) {\n startIndex = 0;\n } else if (startIndex < 0) {\n startIndex = 0;\n }\n }\n if (args.length > 2 && typeof args[2].Value !== 'undefined' && args[2].Value != null) {\n length = Number(args[2].Value);\n if (isNaN(length)) {\n length = null;\n }\n }\n } \n if (startIndex < text.length) {\n if (length) {\n retVal.Value = text.substr(startIndex, length);\n } else {\n retVal.Value = text.substr(startIndex);\n }\n }\n return retVal;\n }\n}","import { subtract } from 'mathjs';\nimport { FormulaStatics, ValueAndType } from '../basic/formulaEditor.model';\nimport { OperationType } from '../enums/operationtype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { FormulaGroups, PrimitiveFormula } from './iformula';\n\nexport class Subtraction extends PrimitiveFormula {\n static StaticID = 'f0bc0a39-2a60-4432-bf62-f537deb8b72b';\n\n constructor() {\n super();\n this._ID = Subtraction.StaticID;\n this._Name = 'Subtraktion';\n this._MaxVariableCount = FormulaStatics.IntMaxValue;\n this._MinVariableCount = 1;\n }\n\n CanCalcNulls(): boolean {\n return true;\n }\n Group(): string {\n return FormulaGroups.BasicOperations;\n }\n OrderID(): number {\n return 2;\n }\n OperationType(): OperationType {\n return OperationType.Subtraktion;\n }\n OperationValue(): string {\n return '-';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const retVal = new ValueAndType();\n if (args && (maxType === ValueType.Long || maxType === ValueType.Double || maxType === ValueType.String)) {\n let value = null;\n args.forEach((item) => {\n if (typeof item.Value !== 'undefined' && item.Value !== null) {\n if (value === null) {\n value = item.Value;\n } else {\n value = subtract(value, item.Value);\n }\n }\n });\n if (value !== null) {\n retVal.Value = value;\n retVal.Type = maxType;\n }\n }\n return retVal;\n }\n}\n","import { add } from 'mathjs';\nimport { FormulaStatics, ValueAndType } from '../basic/formulaEditor.model';\nimport { ValueType } from '../enums/valuetype.enum';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { RangeEnabledFormula } from './iformula';\n\nexport class Sum extends RangeEnabledFormula {\n static StaticID: string = 'd3e95252-f734-4ca3-b1fd-db404d5e1f0a';\n\n constructor() {\n super();\n this._ID = Sum.StaticID;\n this._Name = 'Sum';\n this._MaxVariableCount = FormulaStatics.IntMaxValue;\n }\n\n CanCalcNulls(): boolean {\n return true;\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const retVal = new ValueAndType();\n if (args && (maxType === ValueType.Long || maxType === ValueType.Double)) {\n let value = null;\n args.forEach((item) => {\n if (typeof item.Value !== 'undefined' && item.Value != null) {\n if (item.Type === ValueType.Range) {\n this.HandleNumericRange(item, (val) => {\n if (val !== null && !isNaN(val)) {\n if (value === null) {\n value = val;\n } else {\n value = add(value, val);\n }\n }\n });\n } else {\n if (value === null) {\n value = item.Value;\n } else {\n value = add(value, item.Value);\n }\n }\n }\n });\n if (value !== null) {\n retVal.Value = value;\n retVal.Type = maxType;\n }\n }\n return retVal;\n }\n}","import { TranslateHelper } from \"../../helpers/injector.helper\";\nimport { ValueAndType } from \"../basic/formulaEditor.model\";\nimport { OperationType } from \"../enums/operationtype.enum\";\nimport { ValueType } from \"../enums/valuetype.enum\";\nimport { FormulaNodeCalculator } from \"./formula.node.calculator\";\nimport { AFormula, FormulaGroups } from \"./iformula\";\n\nexport abstract class AToFormula extends AFormula {\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 10;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n return this.Name() + '(' + TranslateHelper.TranslatorInstance.instant('@@Argument') + '[; ' + TranslateHelper.TranslatorInstance.instant('@@Sprachcode') + '])';\n }\n\n MaxVariableCount(): number {\n return 2;\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n var retVal = new ValueAndType();\n if (args && args.length > 0) {\n if (typeof args[0].Value !== 'undefined' && args[0].Value != null) {\n\n // TODO: Culture???\n\n retVal = this.GetValue(args[0].Value, null); \n }\n }\n return retVal;\n }\n\n abstract GetValue(val, culture): ValueAndType;\n}\n\nexport class ToDoubleFormula extends AToFormula {\n static StaticID: string = 'ccb329e0-1d81-4262-9557-e04352082f9a';\n\n ID(): string {\n return ToDoubleFormula.StaticID;\n }\n\n Name(): string {\n return 'ToDouble';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Umwandlung des Zahlenformats zu Double');\n }\n\n GetValue(val, culture): ValueAndType {\n var number = Number(val);\n if (isNaN(number)) {\n number = 0;\n }\n return {\n Type: ValueType.Double,\n Value: number\n };\n }\n}\n\nexport class ToLongFormula extends AToFormula {\n static StaticID: string = 'e1bbe120-8019-47ca-8341-facc551ab642';\n\n ID(): string {\n return ToLongFormula.StaticID;\n }\n\n Name(): string {\n return 'ToLong';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Umwandlung des Zahlenformats zu Long');\n }\n\n GetValue(val, culture): ValueAndType {\n var number = Number(val);\n if (isNaN(number)) {\n number = 0;\n } else {\n number = Math.floor(number);\n }\n return {\n Type: ValueType.Long,\n Value: number\n };\n }\n}\n\nexport class ToStringFormula extends AToFormula {\n static StaticID: string = '5891c5b9-7434-45c8-814f-340352b45e56';\n\n ID(): string {\n return ToStringFormula.StaticID;\n }\n\n Name(): string {\n return 'ToString';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Umwandlung in einen string');\n }\n\n GetValue(val, culture): ValueAndType {\n return {\n Type: ValueType.String,\n Value: \"\" + val\n };\n }\n}","import { TranslateHelper } from '../../helpers/injector.helper';\nimport { ValueAndType } from '../basic/formulaEditor.model';\nimport { OperationType } from '../enums/operationtype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { AFormula, FormulaGroups } from './iformula';\n\nexport class ToJSON extends AFormula {\n static StaticID = '94169bb8-53b6-4a02-aae4-303dc3adccd4';\n\n ID(): string {\n return ToJSON.StaticID;\n }\n\n Name(): string {\n return 'ToJSON';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Zu JSON-String konvertieren');\n }\n\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 1005;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n return this.Name() + '(' + TranslateHelper.TranslatorInstance.instant('@@Wert') + ')';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const retVal = new ValueAndType();\n retVal.Type = ValueType.String;\n retVal.Value = '';\n if (args && args.length > 0) {\n const val = args[0].Value;\n if (typeof val !== 'undefined' && val !== null) {\n retVal.Value = JSON.stringify(val);\n }\n }\n return retVal;\n }\n}\n","import { TranslateHelper } from \"../../helpers/injector.helper\";\nimport { ValueAndType } from \"../basic/formulaEditor.model\";\nimport { OperationType } from \"../enums/operationtype.enum\";\nimport { ValueType } from \"../enums/valuetype.enum\";\nimport { FormulaNodeCalculator } from \"./formula.node.calculator\";\nimport { AFormula, FormulaGroups } from \"./iformula\";\n\nexport class ToLower extends AFormula {\n static StaticID: string = '315fe230-e16a-4e19-8163-e1b4a8e6cd80';\n\n ID(): string {\n return ToLower.StaticID;\n }\n\n Name(): string {\n return 'ToLower';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Zeichenkette alles klein schreiben');\n }\n\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 1001;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n return this.Name() + '(' + TranslateHelper.TranslatorInstance.instant('@@Text') + '; ' + TranslateHelper.TranslatorInstance.instant('@@CodeDescription') + ')';\n }\n\n MaxVariableCount(): number {\n return 2;\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n var retVal = new ValueAndType();\n retVal.Type = ValueType.String;\n var text = '';\n if (args && args.length > 0) {\n if (typeof args[0].Value === 'string' && args[0].Value != null) {\n text = args[0].Value;\n }\n }\n retVal.Value = text.toLowerCase();\n return retVal;\n }\n}","import { TranslateHelper } from '../../helpers/injector.helper';\nimport { ValueAndType } from '../basic/formulaEditor.model';\nimport { OperationType } from '../enums/operationtype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { AFormula, FormulaGroups } from './iformula';\n\nexport class ToObject extends AFormula {\n static StaticID = '062c9d5b-ca2a-4351-9291-364f7cdb5f9c';\n\n ID(): string {\n return ToObject.StaticID;\n }\n\n Name(): string {\n return 'ToObject';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Objekt aus JSON-String generieren');\n }\n\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 1006;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n return this.Name() + '(' + TranslateHelper.TranslatorInstance.instant('@@Text') + ')';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const retVal = new ValueAndType();\n if (args && args.length > 0) {\n const first = args[0];\n if (first.Type === ValueType.String) {\n const val = first.Value;\n if (typeof val !== 'undefined' && val !== null) {\n retVal.Type = ValueType.Object;\n retVal.Value = JSON.parse(val);\n }\n }\n }\n return retVal;\n }\n}\n","import { TranslateHelper } from \"../../helpers/injector.helper\";\nimport { ValueAndType } from \"../basic/formulaEditor.model\";\nimport { OperationType } from \"../enums/operationtype.enum\";\nimport { ValueType } from \"../enums/valuetype.enum\";\nimport { FormulaNodeCalculator } from \"./formula.node.calculator\";\nimport { AFormula, FormulaGroups } from \"./iformula\";\n\nexport class ToUpper extends AFormula {\n static StaticID: string = 'bc194b0e-4d43-403e-9cce-073128cd8f5b';\n\n ID(): string {\n return ToUpper.StaticID;\n }\n\n Name(): string {\n return 'ToUpper';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Zeichenkette alles gross schreiben');\n }\n\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 1000;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n return this.Name() + '(' + TranslateHelper.TranslatorInstance.instant('@@Text') + '; ' + TranslateHelper.TranslatorInstance.instant('@@CodeDescription') + ')';\n }\n\n MaxVariableCount(): number {\n return 2;\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n var retVal = new ValueAndType();\n retVal.Type = ValueType.String;\n var text = '';\n if (args && args.length > 0) {\n if (typeof args[0].Value === 'string' && args[0].Value != null) {\n text = args[0].Value;\n }\n }\n retVal.Value = text.toUpperCase();\n return retVal;\n }\n}","import { TranslateHelper } from '../../helpers/injector.helper';\nimport { ValueAndType } from '../basic/formulaEditor.model';\nimport { OperationType } from '../enums/operationtype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { AFormula, FormulaGroups } from './iformula';\n\nexport class TranslateFormula extends AFormula {\n static StaticID = 'aba5ad2b-3a81-4fd8-bc90-6ea891207497';\n\n ID(): string {\n return TranslateFormula.StaticID;\n }\n\n Name(): string {\n return 'Translate';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Text uebersetzen');\n }\n\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 1006;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n return this.Name() + '(' + TranslateHelper.TranslatorInstance.instant('@@Uebersetzen') + ')';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const retVal = new ValueAndType();\n retVal.Type = ValueType.String;\n retVal.Value = '';\n if (args && args.length > 0) {\n const val = args[0].Value;\n if (typeof val !== 'undefined' && val !== null) {\n retVal.Value = TranslateHelper.TranslatorInstance.instant('' + val);\n }\n }\n return retVal;\n }\n}\n","import { TranslateHelper } from '../../helpers/injector.helper';\nimport { ValueAndType } from '../basic/formulaEditor.model';\nimport { OperationType } from '../enums/operationtype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { AFormula, FormulaGroups } from './iformula';\n\nexport class WeekFormula extends AFormula {\n static StaticID = '5c78899d-1c3d-4182-8631-ab32f01c3c23';\n\n ID(): string {\n return WeekFormula.StaticID;\n }\n\n Name(): string {\n return 'Week';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Gibt in Verbindung mit einer Zeitangabe die Woche aus');\n }\n\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 10;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n return this.Name() + '(' + TranslateHelper.TranslatorInstance.instant('@@Argument') + ')';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const retVal = new ValueAndType();\n if (maxType === ValueType.Datetime && args && args.length > 0) {\n const date = args[0].Value;\n if (date instanceof Date && !isNaN(date.getTime())) {\n retVal.Type = ValueType.Long;\n // TODO: Culture???\n const tdt = new Date(date.valueOf());\n const dayn = (date.getDay() + 6) % 7;\n tdt.setDate(tdt.getDate() - dayn + 3);\n const firstThursday = tdt.valueOf();\n tdt.setMonth(0, 1);\n if (tdt.getDay() !== 4) {\n tdt.setMonth(0, 1 + ((4 - tdt.getDay()) + 7) % 7);\n }\n retVal.Value = 1 + Math.ceil((firstThursday - tdt.valueOf()) / 604800000);\n }\n }\n return retVal;\n }\n}\n","import { TranslateHelper } from '../../helpers/injector.helper';\nimport { ValueAndType } from '../basic/formulaEditor.model';\nimport { OperationType } from '../enums/operationtype.enum';\nimport { ValueType } from '../enums/valuetype.enum';\nimport { FormulaNodeCalculator } from './formula.node.calculator';\nimport { AFormula, FormulaGroups } from './iformula';\n\nexport class YearFormula extends AFormula {\n static StaticID = '7e99decd-df6c-4123-a4b7-39d0edfd0eec';\n\n ID(): string {\n return YearFormula.StaticID;\n }\n\n Name(): string {\n return 'Year';\n }\n\n Description(): string {\n return TranslateHelper.TranslatorInstance.instant('@@Gibt in Verbindung mit einer Zeitangabe das Jahr aus');\n }\n\n Group(): string {\n return FormulaGroups.Functions;\n }\n\n OrderID(): number {\n return 10;\n }\n\n OperationType(): OperationType {\n return OperationType.Function;\n }\n\n OperationValue(): string {\n return this.Name() + '(' + TranslateHelper.TranslatorInstance.instant('@@Argument') + ')';\n }\n\n Calc(fnc: FormulaNodeCalculator, maxType: ValueType, args?: ValueAndType[]): ValueAndType {\n const retVal = new ValueAndType();\n if (maxType === ValueType.Datetime && args && args.length > 0) {\n const date = args[0].Value;\n if (date instanceof Date && !isNaN(date.getTime())) {\n retVal.Type = ValueType.Long;\n retVal.Value = date.getFullYear();\n }\n }\n return retVal;\n }\n}\n","import { Subject } from 'rxjs';\n\nexport class ContextEvent {\n Element: any;\n Event: MouseEvent;\n}\n\nexport class ContextEventHelper {\n public static Open: Subject = new Subject();\n public static Close: Subject = new Subject();\n}\n","import { AxisNode } from '../datadescription/multi/multiresult.model';\n\nexport class MultidimensionalChartKeys {\n static AxisKey = 'xAxis';\n static GroupingKey = 'grouping';\n static BubbleStyle = 'BubbleStyle_';\n}\n\nexport class BubbleRow {\n Caption: string;\n XCoord: BubbleRowData;\n YCoord: BubbleRowData;\n Radius: BubbleRowData;\n MeasureAxisNode: AxisNode;\n OppositeAxisNode: AxisNode;\n GroupingKey: string;\n GroupingValue: string;\n StyleID = 0;\n\n toRow() {\n const row = {};\n row[MultidimensionalChartKeys.AxisKey] = this.Caption;\n row[this.XCoord.Caption] = this.XCoord.Value;\n row[this.YCoord.Caption] = this.YCoord.Value;\n row[this.GroupingKey] = this.StyleID > 0 ? MultidimensionalChartKeys.BubbleStyle + this.StyleID : this.GroupingValue;\n row[this.Radius.Caption] = this.Radius.Value;\n return row;\n }\n}\n\nexport class BubbleRowData {\n UniqueID: number;\n Caption: string;\n Value: any;\n}\n","import { ChartAnimationEasing } from '../enums/chartanimationeasing.enum';\nimport { AxisTextPosition } from '../enums/axistextposition.enum';\nimport { ChartLegendAlignment } from '../enums/chartlegendalignment.enum';\nimport { ChartLegendPosition } from '../enums/chartlegendposition.enum';\nimport { ChartStackType, ChartTrendlineType, ChartPieSliceText, ChartGeoResolution } from '../enums/chartcurvetype.enum';\nimport { PointShape } from '../enums/pointShape.enum';\nimport { SeriesType } from '../enums/seriestype.enum';\nimport { ChartToolTipTrigger } from '../enums/charttooltiptrigger.enum';\nimport { ChartType } from '../enums/charttype.enum';\nimport { WordTreeType } from '../enums/wordtreetype.enum';\nimport { Type } from 'class-transformer';\n\nexport class AnimationSettings {\n Duration: number;\n Easing: ChartAnimationEasing;\n StartUp: boolean;\n\n static GetDefault(): AnimationSettings {\n const retVal = new AnimationSettings();\n retVal.Duration = 0;\n retVal.Easing = ChartAnimationEasing.linear;\n retVal.StartUp = false;\n return retVal;\n }\n}\n\nexport class ChartTextStyle {\n Color: string;\n FontName: string;\n FontSize: number;\n Bold: boolean;\n Italic: boolean;\n}\n\nexport class GridLineSettings {\n Color: string;\n Count: number;\n}\n\n// @dynamic\nexport class AxisSettings {\n ReverseDirection: boolean;\n\n @Type(() => GridLineSettings)\n GridLines: GridLineSettings;\n @Type(() => GridLineSettings)\n MinorGridLines: GridLineSettings;\n\n TextPosition: AxisTextPosition;\n @Type(() => ChartTextStyle)\n TextStyle: ChartTextStyle;\n\n Title: string;\n @Type(() => ChartTextStyle)\n TitleTextStyle: ChartTextStyle;\n\n Format: string;\n}\n\nexport class AxisTick {\n Caption: string;\n Value;\n}\n\n// @dynamic\nexport class ContinuousAxisSettings extends AxisSettings {\n LogarithmicScaling: boolean;\n @Type(() => AxisTick)\n Ticks: AxisTick[] = [];\n @Type(() => AxisTick)\n MinValue: AxisTick;\n @Type(() => AxisTick)\n MaxValue: AxisTick;\n}\n\n// @dynamic\nexport class LegendSettings {\n Alignment: ChartLegendAlignment;\n Position: ChartLegendPosition;\n @Type(() => ChartTextStyle)\n TextStyle: ChartTextStyle;\n}\n\nexport class CandleStickColorSettings {\n Fill: string;\n Stroke: string;\n StrokeWidth: number;\n}\n\nexport class TrendLineSettings {\n Color: string;\n LabelInLegend: string;\n VisibleInLegend: boolean;\n LineWidth: number;\n Opacity: number;\n PointSize: number;\n PointsVisible: boolean;\n ShowR2: boolean;\n Type: ChartTrendlineType;\n Degree: number;\n}\n\n// @dynamic\nexport class SeriesSettings {\n Color: string;\n LegendLabel: string;\n VisibleInLegend: boolean;\n TargetAxis: number;\n Type: SeriesType;\n @Type(() => TrendLineSettings)\n TrendLine: TrendLineSettings;\n\n AreaOpacity: number;\n\n CurvedLine: boolean;\n LineDashStyle: number[];\n LineWidth: number;\n PointsVisible: boolean;\n\n PointShape: PointShape;\n PointSize: number;\n\n @Type(() => CandleStickColorSettings)\n FallingColor: CandleStickColorSettings;\n @Type(() => CandleStickColorSettings)\n RisingColor: CandleStickColorSettings;\n}\n\n// @dynamic\nexport class TooltipSettings {\n @Type(() => ChartTextStyle)\n TextStyle: ChartTextStyle;\n Trigger: ChartToolTipTrigger;\n}\n\nexport class AnnotationChartSettings {\n DisplayAnnotations: boolean;\n DisplayAnnotationsFilter: boolean;\n DisplayRangeSelector: boolean;\n DisplayZoomButtons: boolean;\n FillOpacity: number;\n SortAscending: boolean;\n SortColumn: number;\n Thickness: number;\n}\n\nexport class ColorAxisValue {\n Color: string;\n Value: number;\n}\n\n// @dynamic\nexport class BubbleChartSettings {\n Opacity: number;\n Stroke: string;\n @Type(() => ChartTextStyle)\n TextStyle: ChartTextStyle;\n MaxBubbleSize: number;\n MaxBubbleValue: number;\n MinBubbleSize: number;\n MinBubbleValue: number;\n\n @Type(() => ColorAxisValue)\n ColorValues: ColorAxisValue[] = [];\n\n ShowLegend: boolean;\n LegendPosition: ChartLegendAlignment;\n @Type(() => ChartTextStyle)\n LegendTextStyle: ChartTextStyle;\n LegendNumberFormat: string;\n}\n\n// @dynamic\nexport class SliceSettings {\n Color: string;\n Offset: number;\n @Type(() => ChartTextStyle)\n TextStyle: ChartTextStyle;\n}\n\n// @dynamic\nexport class PieChartSettings {\n Is3D: boolean;\n PieHole: number;\n SliceBorderColor: string;\n SliceText: ChartPieSliceText;\n @Type(() => ChartTextStyle)\n SliceTextStyle: ChartTextStyle;\n StartAngle: number;\n ResidueSliceColor: string;\n ResidueSliceLabel: string;\n ResidueThreshold: number;\n\n @Type(() => SliceSettings)\n Slices: SliceSettings[] = [];\n}\n\n// @dynamic\nexport class GeoChartSettings {\n Region: string;\n Resolution: ChartGeoResolution;\n @Type(() => ColorAxisValue)\n ColorValues: ColorAxisValue[] = [];\n}\n\nexport class MapChartSettings {\n // ???\n}\n\nexport class WordTreeChartSettings {\n Type: WordTreeType;\n}\n\nexport class GaugeArea {\n Color: string;\n From: number;\n To: number;\n}\n\n// @dynamic\nexport class GaugeChartSettings {\n @Type(() => GaugeArea)\n GreenArea: GaugeArea;\n @Type(() => GaugeArea)\n YellowArea: GaugeArea;\n @Type(() => GaugeArea)\n RedArea: GaugeArea;\n MajorTicks: string[] = [];\n MinorTicks: number;\n MinValue: number;\n MaxValue: number;\n}\n\n// @dynamic\nexport class TreeMapChartSettings {\n FontColor: string;\n HeaderColor: string;\n HeaderHeight: number;\n HeaderHighlightColor: string;\n HighlightOnHover: boolean;\n HintOpacity: number;\n MaxColor: string;\n MaxDepth: number;\n MaxHighlightColor: string;\n MaxPostDepth: number;\n MaxColorValue: number;\n MidColor: string;\n MidHighlightColor: string;\n MinColor: string;\n MinHighlightColor: string;\n MinColorValue: number;\n NoColor: string;\n NoHighlightColor: string;\n ShowScale: boolean;\n ShowTooltips: boolean;\n @Type(() => ChartTextStyle)\n TextStyle: ChartTextStyle;\n UseWeightedAverageForAggregation: boolean;\n}\n\n// @dynamic\nexport class GanttChartSettings {\n ArrowAngle: number;\n ArrowColor: string;\n ArrowLength: number;\n ArrowRadius: number;\n ArrowWidth: number;\n CornerRadius: number;\n BarHeight: number;\n CriticalPathEnabled: boolean;\n CriticalPathStroke: string;\n CriticalPathStrokeWidth: number;\n GridLineStroke: string;\n GridLineStrokeWidth: number;\n GridTrack: string;\n GridDarkTrack: string;\n @Type(() => ChartTextStyle)\n LabelStyle: ChartTextStyle;\n PercentEnabled: boolean;\n PercentFill: string;\n ShadowEnabled: boolean;\n ShadowColor: string;\n ShadowOffset: number;\n TrackHeight: number;\n}\n\n// @dynamic\nexport class CalendarChartSettings {\n @Type(() => ColorAxisValue)\n ColorValues: ColorAxisValue[] = [];\n CellBorderStroke: string;\n CellBorderStrokeWidth: number;\n CellBorderOpacity: number;\n CellSize: number;\n @Type(() => ChartTextStyle)\n DayOfWeekLabel: ChartTextStyle;\n FocusedCellBorderStroke: string;\n FocusedCellBorderStrokeWidth: number;\n FocusedCellBorderOpacity: number;\n @Type(() => ChartTextStyle)\n MonthLabel: ChartTextStyle;\n MonthBorderStroke: string;\n MonthBorderStrokeWidth: number;\n MonthBorderOpacity: number;\n UnUsedMonthBorderStroke: string;\n UnUsedMonthBorderStrokeWidth: number;\n UnUsedMonthBorderOpacity: number;\n}\n\n// @dynamic\nexport class TimelineChartSettings {\n AvoidOverlap: boolean;\n @Type(() => ChartTextStyle)\n BarLabelStyle: ChartTextStyle;\n ColorByRowLabel: boolean;\n GroupByRowLabel: boolean;\n @Type(() => ChartTextStyle)\n RowLabelStyle: ChartTextStyle;\n ShowBarLabels: boolean;\n ShowRowLabels: boolean;\n SingleColor: string;\n}\n\nexport class ColorRangeValue {\n Color: string;\n From: number;\n To: number;\n Caption: string;\n}\n\n// @dynamic\nexport class HeatMapChartSettings {\n @Type(() => ColorRangeValue)\n ColorValues: ColorRangeValue[] = [];\n}\n\n// @dynamic\nexport class ChartSettings {\n\n ChartType: ChartType;\n\n BackgroundColor: string;\n ChartPalette: string;\n SeriesColors: string[] = [];\n @Type(() => AnimationSettings)\n Animation: AnimationSettings;\n\n FontSize: number;\n FontName: string;\n\n AxisTextPosition: AxisTextPosition;\n @Type(() => AxisSettings)\n LabelAxis: AxisSettings;\n @Type(() => ContinuousAxisSettings)\n ValueAxes: ContinuousAxisSettings[] = [];\n\n Height: number;\n Width: number;\n\n IsStacked: ChartStackType;\n BarGroupWidth: string;\n InterpolateNulls: boolean;\n SwitchOrientation: boolean;\n ReverseCategories: boolean;\n\n @Type(() => LegendSettings)\n Legend: LegendSettings;\n\n @Type(() => SeriesSettings)\n Series: SeriesSettings[] = [];\n\n @Type(() => SeriesSettings)\n DefaultSeriesSetting: SeriesSettings;\n\n Title: string;\n TitlePosition: AxisTextPosition;\n\n Tooltip: TooltipSettings;\n\n @Type(() => AnnotationChartSettings)\n AnnotationSettings: AnnotationChartSettings;\n @Type(() => BubbleChartSettings)\n BubbleSettings: BubbleChartSettings;\n @Type(() => PieChartSettings)\n PieSettings: PieChartSettings;\n @Type(() => GeoChartSettings)\n GeoSettings: GeoChartSettings;\n @Type(() => MapChartSettings)\n MapSettings: MapChartSettings;\n @Type(() => WordTreeChartSettings)\n WordTreeSettings: WordTreeChartSettings;\n @Type(() => GaugeChartSettings)\n GaugeSettings: GaugeChartSettings;\n @Type(() => TreeMapChartSettings)\n TreeMapSettings: TreeMapChartSettings;\n @Type(() => GanttChartSettings)\n GanttSettings: GanttChartSettings;\n @Type(() => CalendarChartSettings)\n CalendarSettings: CalendarChartSettings;\n @Type(() => TimelineChartSettings)\n TimelineSettings: TimelineChartSettings;\n @Type(() => HeatMapChartSettings)\n HeatMapSettings: HeatMapChartSettings;\n\n static GetDefault(): ChartSettings {\n const retVal = new ChartSettings();\n retVal.ChartType = ChartType.ColumnChart;\n retVal.BackgroundColor = 'white';\n retVal.FontName = 'Arial';\n return retVal;\n }\n}\n","import { SideNavMode } from '../enums/sidenavmode.enum';\nimport { SideNavPosition } from '../enums/sidenavposition.enum';\nimport { LayoutBase } from '../layoutbase.model';\nimport { LayoutUnit } from '../basic/layoutunit.model';\nimport { UnitType } from '../enums/unittype.enum';\n\nexport class SideNav extends LayoutBase {\n Mode: SideNavMode = SideNavMode.over;\n Position: SideNavPosition = SideNavPosition.start;\n\n static GetDefault(): SideNav {\n const sideNav = new SideNav();\n sideNav.Mode = SideNavMode.push;\n sideNav.Width = new LayoutUnit();\n sideNav.Width.Value = 250;\n sideNav.Width.Type = UnitType.Pixel;\n sideNav.Height = new LayoutUnit();\n return sideNav;\n }\n}\n","import { DatadescriptionData } from \"./datadescriptiondata.model\";\n\nexport class DatadescriptionDescription {\n ID;\n Caption: string;\n Datadescription: DatadescriptionData;\n}\n","import { Type } from 'class-transformer';\nimport { Input, EventEmitter, Output, Directive } from \"@angular/core\";\nimport { DataDescriptionRelational } from \"./relational/datadescriptionrelational.model\";\nimport { DataDescription } from \"./multi/datadescription.model\";\nimport { UUID } from \"angular2-uuid\";\nimport { TranslatedString } from '../translatedstring.model';\n\n\n\n\n@Directive()\nexport class DatadescriptionData {\n //@Type(() => WorkflowModuleData)\n //Modules: WorkflowModuleData[] = [];\n //@Type(() => WorkflowConnectorData)\n //Connectors: WorkflowConnectorData[] = [];\n\n Datadescription: any = new DataDescriptionRelational();\n DataModelID: UUID;\n IsRelationalValue = true;\n\n\n @Input()\n get IsRelational() {\n return this.IsRelationalValue;\n }\n set IsRelational(val) {\n if (!this.Datadescription) {\n this.Datadescription = this.IsRelationalValue ? new DataDescriptionRelational() : new DataDescription();\n this.IsRelationalChange.emit(val);\n }\n else {\n if (val === false && this.Datadescription instanceof DataDescriptionRelational ||\n val === true && this.Datadescription instanceof DataDescription) {\n this.Datadescription = val ? new DataDescriptionRelational() : new DataDescription();\n this.IsRelationalChange.emit(val);\n }\n\n this.IsRelationalValue = val;\n }\n }\n\n\n\n @Output() IsRelationalChange = new EventEmitter();\n\n\n \n}\n\n\n\n\n// @dynamic\n@Directive()\nexport class DatadescriptionSaveObject extends DatadescriptionData {\n @Type(() => TranslatedString)\n Caption: TranslatedString;\n @Type(() => TranslatedString)\n Description: TranslatedString;\n\n //public static DeserializeModuleSettings(mod) {\n // if (mod) {\n // const retVal = Object.assign({}, mod);\n // if (typeof mod.Settings === 'string') {\n // const settings = JSON.parse(mod.Settings);\n // retVal.Settings = settings;\n // if (mod.SettingsType) {\n // const dataType = WF_SERVICE_SETTINGS.get(mod.SettingsType);\n // if (dataType) {\n // const dataTypeInstance: any = plainToClass(dataType, settings);\n // if (typeof dataTypeInstance.ExtendedDeserialize === 'function') {\n // dataTypeInstance.ExtendedDeserialize();\n // }\n // retVal.Settings = dataTypeInstance;\n // }\n // }\n // }\n // return retVal;\n // }\n // return null;\n //}\n\n //public static SerializeModuleSettings(mod) {\n // if (mod) {\n // if (typeof mod.Settings === 'object') {\n // if (typeof mod.Settings.ExtendedSerialize === 'function') {\n // mod.Settings.ExtendedSerialize(mod);\n // } else {\n // mod.Settings = JSON.stringify(mod.Settings);\n // }\n // }\n // }\n //}\n}\n\n","import { UUID } from 'angular2-uuid';\nimport { plainToClass, Type } from 'class-transformer';\nimport { Duration } from 'moment';\nimport { Subject } from 'rxjs';\nimport { Base, JsonIgnore } from '../../base.model';\nimport { FormulaNodeInformation } from '../../basic/formulaEditor.model';\nimport { AxisType } from '../../enums/query.enum';\nimport { TranslatedString } from '../../translatedstring.model';\nimport { FilterMultidimensional } from './filter/filterMultidimensional.model';\nimport { LevelNode } from './levelnode.model';\nimport { MeasureInfo } from './measureinfo.model';\nimport { QuerySettings } from './querysettings.model';\n\n// @dynamic\nexport class Tuple {\n @Type(() => LevelNode)\n Levels: LevelNode[] = [];\n HideRepeatedNames = false;\n}\n\n// @dynamic\nexport class DynamicElement {\n Active = true;\n /// \n /// Element, unter welches die berechnete Zeile gehängt werden soll (IMember)\n /// \n Parent: string;\n Level: UUID;\n Description: string;\n Code: string;\n\n @Type(() => FormulaNodeInformation)\n Formula: FormulaNodeInformation;\n}\n\n// @dynamic\nexport class HeterogenArea extends Base {\n\n @Type(() => TranslatedString)\n Caption: TranslatedString;\n @Type(() => Tuple)\n Tuples: Tuple[] = [];\n @Type(() => MeasureInfo)\n Measures: MeasureInfo[] = [];\n UniqueID = -1;\n EmptyElementCount = 0;\n\n get LevelCount(): number {\n let count = 0;\n this.Tuples.forEach(t => {\n count += t.Levels.length;\n });\n return count;\n }\n}\n\n// @dynamic\nexport class Axis {\n @Type(() => HeterogenArea)\n Areas: HeterogenArea[] = [];\n ShowAll = false;\n AxisType: AxisType;\n\n public constructor(init?: Partial) {\n Object.assign(this, init);\n }\n\n get HasAreas(): boolean {\n return this.Areas && this.Areas.some(area => {\n if (area.Measures && area.Measures.length > 0) {\n return true;\n }\n if (area.Tuples && area.Tuples.some(t => t.Levels && t.Levels.length > 0)) {\n return true;\n }\n return false;\n });\n }\n}\n\n// @dynamic\nexport class DataDescription extends Base {\n\n /// \n /// Die Liste der Data Tasks\n /// \n Tasks: any[] = [];\n\n SelectedCubes: any[];\n\n Filter: FilterMultidimensional[] = [];\n\n /// \n /// Die Datenbank aus der die Daten geliefert werden sollen\n /// \n DataModelID: UUID;\n\n @Type(() => Axis)\n XLevelNodes: Axis = new Axis({ AxisType: AxisType.X_Axis });\n\n @Type(() => Axis)\n YLevelNodes: Axis = new Axis({ AxisType: AxisType.Y_Axis });\n\n\n @Type(() => QuerySettings)\n AdvancedSettings: QuerySettings = new QuerySettings();\n\n /// \n /// Die Dynamischen Zeilen Elemente\n /// \n @Type(() => DynamicElement)\n DynamicRowElements: DynamicElement[] = [];\n\n // ToDo später\n Timeout: Duration;\n\n /// \n /// bei SlideObjectType Analyse_Table wird hier aufgezeigt ob die Analysetabelle als PowerGrid genutzt werden soll\n /// \n PowerGrid = false;\n\n @JsonIgnore\n Changed: Subject = new Subject();\n @JsonIgnore\n PowerGridDepth = 0;\n @JsonIgnore\n EffectiveUserName: string; // Analysisservername\n @JsonIgnore\n TopCount = -1;\n\n get LevelNodes(): Axis[] {\n return [this.XLevelNodes, this.YLevelNodes];\n }\n\n get ShowMeasureOnAxis(): AxisType {\n let axisType = AxisType.None;\n if (this.XLevelNodes.Areas.some(area => area.Measures && area.Measures.length > 0)) {\n axisType = this.XLevelNodes.AxisType;\n }\n if (axisType === AxisType.None && this.YLevelNodes.Areas.some(area => area.Measures && area.Measures.length > 0)) {\n axisType = this.YLevelNodes.AxisType;\n }\n return axisType === AxisType.None ? AxisType.X_Axis : axisType;\n }\n\n FireChanged() {\n this.Changed.next(null);\n }\n\n get MeasureInfos(): MeasureInfo[] {\n const measureinfos = [];\n this.XLevelNodes.Areas.forEach(a => {\n measureinfos.push(...a.Measures);\n });\n if (measureinfos.length === 0) {\n this.YLevelNodes.Areas.forEach(a => {\n measureinfos.push(...a.Measures);\n });\n }\n return measureinfos;\n }\n\n get IsEmpty(): boolean {\n return !this.XLevelNodes.HasAreas && !this.YLevelNodes.HasAreas;\n }\n\n clone(): DataDescription {\n let retVal;\n retVal = plainToClass(DataDescription, JSON.parse(JSON.stringify(this)));\n return retVal;\n }\n}\n","import { CodeDesc } from '../../../enums/query.enum';\nimport { UUID } from 'angular2-uuid';\nimport { FilterMultidimensional } from './filterMultidimensional.model';\nimport { WhereSelects } from '../querydef.model';\n\nexport class FilterElementSettings {\n CodeDesc: CodeDesc;\n DataModel: UUID;\n Hierarchy: UUID;\n Levels = [];\n MultiSelect: boolean;\n Relational: boolean;\n DataSource: any;\n Container: any;\n Field: any;\n FilterItems: FilterMultidimensional[];\n SavedSelection: WhereSelects[];\n}\n","import { UUID } from 'angular2-uuid';\nimport { Base, JsonIgnore } from '../../../../models/base.model';\nimport { WhereSelects } from '../querydef.model';\nimport { FilterSettingsMultidimensional } from './FilterSettingsMultidimensional.model';\n\nexport class FilterMultidimensional extends Base {\n\n Caption: any;\n\n Hierarchy: any;\n\n Dimension: any;\n\n Formula: string;\n\n Defaults: WhereSelects[] = [];\n\n FilterSettings: FilterSettingsMultidimensional;\n DatasourceID: UUID;\n Levels: UUID[];\n\n @JsonIgnore\n DefaultSelectsText = '[0]';\n}\n","import { UUID } from \"angular2-uuid\";\nimport { Type } from \"class-transformer\";\nimport { Base } from \"../../base.model\";\nimport { AxisType, CodeDesc } from \"../../enums/query.enum\";\nimport { SpecialElementType } from \"../../enums/specialElementType\";\nimport { TranslatedString } from \"../../translatedstring.model\";\n\n//export class CustomContent {\n// UniqueID: UUID;\n// UniqueKey: string;\n// Caption: string;\n// UnqiueName: string;\n//}\n\n//export class PlaningModuleDesignerJump {\n// IsActive: boolean = false;\n// Report: UUID;\n// LinkCube: UUID;\n// OnlyCheckOut: boolean = false;\n//}\n// @dynamic\nexport class LevelNode extends Base {\n /// \n /// Der Level\n /// \n Level: UUID;\n /// \n /// Dimension des Levels\n /// \n DimensionID: UUID;\n /// \n /// HierarchieID des Levels\n /// \n HierarchieID: UUID;\n /// \n /// Caption des Levels, zur Identifikation, falls Level auf Datenbank-Ebene nicht mehr vorhanden\n /// \n IdentityString: string;\n\n\n /// \n /// Die interne ID.\n /// \n UniqueID: number = -1;\n /// \n /// Die zugehörige Achse (X oder Y Achse)\n /// \n Axis: AxisType;\n /// \n /// Die Überschrift der LevelInfo\n /// \n @Type(() => TranslatedString)\n Caption: TranslatedString;\n /// \n /// Die Attribute die mit abgefragt werden sollen.\n /// \n Attributes: string[] = [];\n /// \n /// Wie die Level dargestellt werden soll.\n /// \n LevelDisplayType: CodeDesc = CodeDesc.Description;\n LevelDisplayAttribute: string;\n /// \n /// Gibt an, ob die Spalten dieses Levels in einer Tabelle angezeigt werden sollen oder nicht\n /// \n Hidden: boolean;\n\n Variable: string = '';\n\n SpecialElementType: SpecialElementType;\n //@Type(() => PlaningModuleDesignerJump)\n //ModuleDesignerJump: PlaningModuleDesignerJump;\n /// \n /// Custom Inhalt, falls die LevelNode weder einen CubeLevel noch ein Relationales Feld hat.\n /// \n //@Type(() => CustomContent)\n //Custom: CustomContent;\n\n /// \n /// Die Tiefe der Level in der Datadescription.\n /// \n //@JsonIgnore\n ///Depth: number;\n \n\n //@JsonIgnore\n //HeterogenAreaIndex: number;\n \n\n constructor();\n constructor(axistype?: AxisType) {\n super();\n if (axistype) {\n this.Axis = axistype;\n }\n }\n\n toString(): string {\n let result = \"\";\n if (this.Caption) {\n result = TranslatedString.GetTranslation(this.Caption);\n }\n //else if (this.Custom) {\n // result = this.Custom.Caption;\n //}\n if (result == \"\" && this.IdentityString) {\n result = this.IdentityString;\n }\n return result;\n }\n}\n","import { UUID } from 'angular2-uuid';\nimport { plainToClass, Type } from 'class-transformer';\nimport { VisibilityType } from '../../enums/oc.enum';\nimport { SpecialElementType } from '../../enums/specialElementType';\nimport { DynamicTimeRange } from '../../time/dynamictimerange.model';\nimport { TimeRangeReference } from '../../time/timerangereference.model';\nimport { FilterMultidimensional } from './filter/filterMultidimensional.model';\nimport { MeasureReportParameterReferencing } from './measurereportparameterref.model';\nimport { Aggregation } from '../../enums';\nimport { TranslatedString } from '../../translatedstring.model';\nimport { Base } from '../../base.model';\n\nexport class MeasureFunctionOffset {\n OffsetLevel: UUID;\n OffsetValue = 0;\n}\n\nexport class MeasureFunctionParentReferencing {\n PRHierarchy: UUID;\n PRValue = 0;\n}\n\nexport class MeasureFunctionAccumulation {\n UseColumns = false;\n UseYTD = false;\n UseMTD = false;\n UseWTD = false;\n UseRows = false;\n\n toString(): string {\n let result = '';\n if (this.UseColumns) {\n result = 'UseColumns';\n if (this.UseRows) {\n result += ' + UseRows';\n }\n } else if (this.UseRows) {\n result = 'UseRows';\n } else if (this.UseYTD) {\n result = 'UseYTD';\n }\n return result;\n }\n}\n\n// @dynamic\nexport class MeasureInfoDetails {\n @Type(() => DynamicTimeRange)\n MeasureDynamicTimeReferencing: DynamicTimeRange;\n @Type(() => TimeRangeReference)\n TimeRangeReference: TimeRangeReference = new TimeRangeReference();\n @Type(() => MeasureFunctionAccumulation)\n FunctionAccumulation: MeasureFunctionAccumulation;\n @Type(() => MeasureFunctionParentReferencing)\n FunctionParentReferencing: MeasureFunctionParentReferencing;\n @Type(() => MeasureFunctionOffset)\n FunctionOffset: MeasureFunctionOffset = new MeasureFunctionOffset();\n @Type(() => FilterMultidimensional)\n ReferencingSelects: FilterMultidimensional[] = [];\n @Type(() => MeasureReportParameterReferencing)\n ReportParameterReferencing: MeasureReportParameterReferencing;\n\n get ContainsAnyReferencing(): boolean {\n if (this.ReferencingSelects && this.ReferencingSelects.length > 0) {\n return true;\n }\n if (this.FunctionParentReferencing || this.TimeRangeReference || this.MeasureDynamicTimeReferencing) {\n return true;\n }\n return this.ReportParameterReferencing && this.ReportParameterReferencing.ParameterObjects &&\n this.ReportParameterReferencing.ParameterObjects.some(x => x.Dimension &&\n x.SelectedReportParameter && x.SelectedReportParameter.length > 0);\n }\n}\n// @dynamic\nexport class MeasureInfo extends Base {\n\n static Keys: string[] = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];\n\n QueryAttribute = false;\n Attribute: string;\n AttributeHierarchy: UUID;\n @Type(() => MeasureInfoDetails)\n Details: MeasureInfoDetails = new MeasureInfoDetails();\n Variable = '';\n SpecialElementType: SpecialElementType = SpecialElementType.None;\n Measure: UUID;\n Cube: UUID;\n // IdentityString: string; //??\n Position = -1;\n UniqueID = -1;\n Aggregation: Aggregation = Aggregation.Sum;\n @Type(() => TranslatedString)\n Caption: TranslatedString;\n\n VisibilityType: VisibilityType = VisibilityType.VisibleDefault;\n\n \n\n get IsVisible() {\n return this.VisibilityType !== VisibilityType.NonVisibleDefault && this.VisibilityType !== VisibilityType.NonVisibleForce;\n }\n\n\n \n\n public constructor(init?: Partial) {\n super();\n Object.assign(this, init);\n }\n\n duplicate(uniqueid: number): MeasureInfo {\n const result = this.clone();\n result.UniqueID = uniqueid;\n return result;\n }\n\n clone(): MeasureInfo {\n let retVal;\n retVal = plainToClass(MeasureInfo, JSON.parse(JSON.stringify(this)));\n return retVal;\n }\n\n ToStringWithNewLine(): string {\n return TranslatedString.GetTranslation(this.Caption);\n }\n\n toString(): string {\n let result = TranslatedString.GetTranslation(this.Caption);\n if (result) {\n result = result.replace(/(\\r\\n|\\n|\\r)/gm, '');\n }\n return result;\n }\n\n get Key(): string {\n let mod: number;\n let col: number = this.Position + 1;\n const result: string[] = [];\n result[0] = MeasureInfo.Keys[0];\n result[1] = MeasureInfo.Keys[0];\n for (let i = 1; i >= 0; i--) {\n mod = (col - i) % 26;\n col = Math.floor((col - mod) / 26);\n if (mod > -1) {\n result[i] = MeasureInfo.Keys[mod];\n }\n }\n return result[0] + result[1];\n }\n}\n","import { Type } from \"class-transformer\";\nimport { UUID } from \"angular2-uuid\";\n\n// @dynamic\nexport class MeasureReportParameterReferencing {\n @Type(() => ReportParameterReferencingObject)\n ParameterObjects: ReportParameterReferencingObject[] = [];\n}\n\nexport class ReportParameterReferencingObject {\n Dimension: UUID;\n SelectedReportParameter: UUID[] = [];\n}\n","import { Type, plainToClass } from 'class-transformer';\nimport { AxisType, MemberType, CellType, CodeDesc } from '../../enums/query.enum';\nimport { Duration } from 'moment';\nimport { UUID } from 'angular2-uuid';\n\nexport class MultiNode {\n InternalValue: any;\n CellType: CellType;\n Unit: string;\n X = 0;\n Y = 0;\n M = 0;\n StyleID = 0;\n\n get Value(): any {\n return this.InternalValue;\n }\n\n toString() {\n return this.CellType + ': ' + this.Value;\n }\n\n public constructor(init?: Partial) {\n Object.assign(this, init);\n }\n\n clone(): MultiNode {\n return plainToClass(MultiNode, JSON.parse(JSON.stringify(this)));\n }\n}\n\nexport class DummyInfo {\n AreaID = -1;\n\n clone(): DummyInfo {\n return plainToClass(DummyInfo, JSON.parse(JSON.stringify(this)));\n }\n}\n\n// @dynamic\nexport class AxisNode {\n MergePositions: Map = new Map();\n @Type(() => AxisNode)\n ChildrenDict: Map = new Map();\n @Type(() => AxisNode)\n Parent: AxisNode;\n @Type(() => AxisNode)\n Children: AxisNode[] = [];\n @Type(() => AxisNode)\n SumNode: AxisNode;\n Position = 0;\n Depth = 0;\n Axis: AxisType;\n IsCalculated = false;\n Key: string;\n Measure = false;\n Caption: string;\n Type: MemberType;\n Attributes: Map;\n MemberId: string;\n UniqueID = -1;\n UnaryOp = 1;\n Hierarchy: string;\n SearchChildrenKeyInternal: string;\n IsLastChild = false;\n Visible = true;\n CodeDescription: CodeDesc = CodeDesc.Description;\n StyleID = 0;\n DummyInfo: DummyInfo;\n\n static GetSearchChildrenKey(an: AxisNode) {\n if (an.SearchChildrenKeyInternal) {\n return an.SearchChildrenKeyInternal;\n }\n return an.UniqueID + '_' + an.MemberId;\n }\n\n static clone(node: AxisNode, withChildren: boolean): AxisNode {\n const retVal = Object.assign({}, node);\n retVal.MergePositions = new Map();\n retVal.ChildrenDict = new Map();\n retVal.Parent = null;\n retVal.Children = [];\n if (node.SumNode) {\n retVal.SumNode = AxisNode.clone(node.SumNode, false);\n }\n if (node.Attributes) {\n retVal.Attributes = new Map();\n node.Attributes.forEach((v, k) => {\n retVal.Attributes.set(k, v);\n });\n }\n if (node.DummyInfo) {\n retVal.DummyInfo = node.DummyInfo.clone();\n }\n if (withChildren && node.Children) {\n node.Children.forEach(child => {\n const clone = AxisNode.clone(child, true);\n clone.Parent = retVal;\n retVal.Children.push(clone);\n });\n }\n return retVal;\n }\n\n toString() {\n return this.Caption;\n }\n\n addChild(child: AxisNode) {\n this.Children.push(child);\n if (child) {\n this.ChildrenDict.set(AxisNode.GetSearchChildrenKey(child), child);\n }\n }\n\n public constructor(init?: Partial) {\n Object.assign(this, init);\n }\n}\n// @dynamic\nexport class Axis {\n Type: AxisType;\n ElementCount = 0;\n @Type(() => AxisNode)\n Nodes: AxisNode[] = [];\n @Type(() => AxisNode)\n SumNode: AxisNode;\n\n public constructor(init?: Partial) {\n Object.assign(this, init);\n }\n\n clone(): Axis {\n let retVal;\n retVal = plainToClass(Axis, JSON.parse(JSON.stringify(this)));\n return retVal;\n }\n}\n// @dynamic\nexport class MultiResult {\n ID: UUID;\n @Type(() => Axis)\n XAxis: Axis = new Axis({ Type: AxisType.X_Axis });\n @Type(() => Axis)\n YAxis: Axis = new Axis({ Type: AxisType.Y_Axis });\n @Type(() => Axis)\n Measures: Axis = new Axis({ Type: AxisType.Measure });\n @Type(() => MultiNode)\n Cells: MultiNode[][][] = [];\n Overalltime: Duration;\n}\n","import { UUID } from 'angular2-uuid';\nimport { Type } from 'class-transformer';\nimport { Cube, Dimension, Hierarchy, Level, Measure } from '../../../cache/multi/models/database.model';\nimport { FormulaNodeInformation } from '../../basic/formulaEditor.model';\nimport { Aggregation } from '../../enums';\nimport { AxisType, MeasureAccumulation } from '../../enums/query.enum';\nimport { MultiResult } from './multiresult.model';\n\nexport class OffsetDef {\n Member: string;\n Level: Level;\n Hierarchy: Hierarchy;\n Counter = 0;\n\n toJSON() {\n let result;\n result = Object.assign({}, this);\n if (this.Hierarchy) {\n result.Hierarchy = this.Hierarchy.ID;\n }\n if (this.Level) {\n result.Level = this.Level.ID;\n }\n return result;\n }\n}\n\nexport class LevelDef {\n Dimension: Dimension;\n Hierarchy: Hierarchy;\n Level: Level;\n UniqueID = -1;\n Attributes: string[];\n Depth = 0;\n TupleIndex = 0;\n\n toJSON() {\n let result;\n result = Object.assign({}, this);\n result.Dimension = this.Dimension.ID;\n result.Hierarchy = this.Hierarchy.ID;\n result.Level = this.Level.ID;\n return result;\n }\n}\n// @dynamic\nexport class AxisDef {\n AreaID: number;\n Type: AxisType;\n ShowAll = false;\n TopCount = -1;\n @Type(() => LevelDef)\n Levels: LevelDef[] = [];\n HasMeasures = false;\n}\n\nexport class WhereSelects {\n LevelId: UUID;\n MemberIds: string[];\n Start;\n End;\n}\n\nexport class HeterogenSettings {\n}\n\n// @dynamic\nexport class WhereOptions {\n IsOptional = false;\n @Type(() => HeterogenSettings)\n Heterogen: HeterogenSettings;\n}\n\n// @dynamic\nexport class WhereDef {\n DimensionId: UUID;\n HierarchyId: UUID;\n Formula: string;\n @Type(() => WhereOptions)\n Options: WhereOptions;\n @Type(() => WhereSelects)\n FixedMemberIds: WhereSelects[];\n Defaults: WhereSelects[];\n}\n\n// @dynamic\nexport class MeasureDef {\n QueryAttribute = false;\n Attribute: string;\n Key: string;\n Caption: string;\n Measure: Measure;\n AttributeHierarchy: Hierarchy;\n UniqueID = -1;\n ASFunctionType: Aggregation;\n @Type(() => OffsetDef)\n TimeRangeReference: OffsetDef;\n FunctionAccumulation: MeasureAccumulation;\n @Type(() => OffsetDef)\n FunctionParentReferencing: OffsetDef;\n @Type(() => OffsetDef)\n FunctionOffset: OffsetDef;\n @Type(() => WhereDef)\n ReferenceWhere: WhereDef[] = [];\n\n toJSON() {\n let result;\n result = Object.assign({}, this);\n result.Measure = this.Measure.ID;\n if (result.AttributeHierarchy) {\n result.AttributeHierarchy = this.AttributeHierarchy.ID;\n }\n return result;\n }\n}\n\n// @dynamic\nexport class DynamicElementDef {\n Parent: string;\n Level: Level;\n Hierarchy: Hierarchy;\n Description: string;\n Code: string;\n @Type(() => FormulaNodeInformation)\n Formula: FormulaNodeInformation;\n SolveOrder = -1;\n\n toJSON() {\n let result;\n result = Object.assign({}, this);\n if (this.Hierarchy) {\n result.Hierarchy = this.Hierarchy.ID;\n }\n if (this.Level) {\n result.Level = this.Level.ID;\n }\n return result;\n }\n}\n// @dynamic\nexport class QueryDef {\n ID: UUID;\n Cube: Cube;\n DatasourceID: UUID;\n AutomatedSolveOrder = false;\n EffectiveUserName: string;\n @Type(() => MeasureDef)\n Measures: MeasureDef[] = [];\n @Type(() => AxisDef)\n Axis: AxisDef[] = [];\n @Type(() => DynamicElementDef)\n DynamicElements: DynamicElementDef[] = [];\n DataModell: UUID;\n Variables = {};\n Where: WhereDef[] = [];\n HeterogenPosition: Map = new Map();\n MeasureOnAxis: AxisType;\n MultiResult: MultiResult;\n Index: number;\n\n toJSON() {\n let result;\n result = Object.assign({}, this);\n result.DatasourceID = this.Cube.Dimensions[0].DatasourceID;\n result.Cube = this.Cube.ID;\n if (this.Variables) {\n result.Variables = JSON.stringify(this.Variables);\n } else {\n result.Variables = '';\n }\n delete result.HeterogenPosition;\n delete result.MeasureOnAxis;\n delete result.MultiResult;\n delete result.Index;\n return result;\n }\n}\n","import { QueryType } from \"../../enums/query.enum\";\n\nexport class QuerySettings {\n SelType: QueryType = QueryType.Auto;\n UseOwnReferenceLogic: boolean = true;\n ParallelProcessing: boolean = true;\n AutomatedSolveOrder: boolean = true;\n AggregateSQL: boolean = false;\n UseGroupBy: boolean = true;\n RecalcParentChild: boolean = false;\n RecalcRBM: boolean = false;\n}\n","import { Base, JsonIgnore } from '../../base.model';\nimport { AttributeProperty } from '../../ContainerClassObject';\nimport { ResourceBase } from '../../enums/resourcebase.enum';\nimport { RequestFilter } from '../../rest/requestfilter';\n\nexport class DataDescriptionRelational extends Base {\n\n Fields = [];\n Relations = [];\n WhereFilter: RequestFilter;\n Top: number;\n\n ContainersValue: any[] = [];\n get Containers() {\n return this.ContainersValue;\n }\n set Containers(val) {\n this.ContainersValue = val;\n this.SetColumnsFilter();\n }\n\n @JsonIgnore\n ColumnsFilter: any[] = [];\n @JsonIgnore\n SetColumnsFilter() {\n const columns: any[] = [];\n if (this.Containers) {\n this.Containers.forEach((container) => {\n if (container && container.Fields && container.ResourceBase != ResourceBase.Filebase) {\n container.Fields.forEach(function (field) {\n columns.push({\n IsFilterable: true,\n PropertyName: field.Caption,\n Caption: field.Caption + ' [' + container.Caption + ']',\n Type: AttributeProperty.GetFilterTypeFromType(field.FieldType),\n AdditionalInfos: { FieldID: field.ID, ContainerID: container.SID, FieldUniqueID: field.UniqueID, ContainerUniqueID: container.UniqueID }\n });\n });\n }\n });\n }\n this.ColumnsFilter = columns;\n }\n\n Copy(): DataDescriptionRelational {\n var dd = new DataDescriptionRelational();\n return dd;\n }\n}\n","import { TranslatedString } from \"../translatedstring.model\";\nimport { Type } from \"class-transformer\";\n// @dynamic\nexport class ABaseElement {\n SID: string;\n Version: string;\n Name: string;\n @Type(() => TranslatedString)\n Caption: TranslatedString;\n Image: string;\n IsReadOnly: boolean = false;\n IsVisible: boolean = true;\n MetaTagID: string;\n}","import { UUID } from 'angular2-uuid';\nimport { FileMode } from '../enums/filemode.enum';\nimport { GuidRepresentation } from '../enums/guidrepresentation';\nimport { MongoAuthMechanism } from '../enums/mongoauthmechanism.enum';\nimport { MongoDBConnectionType } from '../enums/mongodbconnectiontype.enum';\nimport { MySqlSslMode } from '../enums/mysqlsslmode.enum';\n\nexport abstract class ADBInfo {\n Key = UUID.UUID();\n IsActive = true;\n Caption: string;\n Description: string;\n AgentId: string;\n UseAgent = false;\n InteractiveProperties: string[] = [];\n\n abstract getTypeName(): string;\n}\n\nexport class LiteDBInfo extends ADBInfo {\n Server: string;\n Port = 0;\n Database: string;\n EncryptionKey: string;\n CacheSize = 5000;\n Mode: FileMode = FileMode.Exclusive;\n Flush = false;\n\n getTypeName(): string {\n return 'evidanza.Database.LiteDBImpl.LiteDBInfo';\n }\n}\n\nexport class MongoDBInfo extends ADBInfo {\n ConnectionType: MongoDBConnectionType = 0;\n Server: string = null;\n Port = 0;\n Database: string = null;\n Username: string = null;\n Password: string = null;\n UseSsl: false;\n AuthMechanism: MongoAuthMechanism = 0;\n GuidRepresentation: GuidRepresentation = GuidRepresentation.CSharpLegacy;\n\n getTypeName(): string {\n return 'evidanza.Database.MongoDBImpl.MongoDBInfo';\n }\n}\n\nexport class OpenAIDBInfo extends ADBInfo {\n ApiKey: string = null;\n getTypeName(): string {\n return 'evidanza.Integrations.OpenAI.OpenAIDBInfo';\n }\n}\nexport class PGDBInfo extends ADBInfo {\n Server: string = null;\n Port = 0;\n Database: string = null;\n Username: string = null;\n Password: string = null;\n DTExecPath: string = null;\n SSPI = false;\n DeactivateRelReporting = false;\n Timeout = 30;\n Encrypt = false;\n Pooling = true;\n\n getTypeName(): string {\n return 'evidanza.Database.PostgreSql.PGDBInfo';\n }\n}\n\nexport class SQLDBInfo extends ADBInfo {\n Server: string;\n Port = 0;\n Database: string;\n Username: string;\n Password: string;\n DTExecPath: string;\n SSPI = true;\n DeactivateRelReporting = false;\n Timeout = 30;\n Encrypt = false;\n IsAzure = false;\n UseAzureAD = false;\n getTypeName(): string {\n return 'evidanza.Database.SQLServer.SQLDBInfo';\n }\n}\n\nexport class MySQLDBInfo extends ADBInfo {\n Server: string = null;\n Port = 0;\n Database: string = null;\n Username: string = null;\n Password: string = null;\n SSPI = false;\n SslMode: MySqlSslMode = MySqlSslMode.None;\n\n getTypeName(): string {\n return 'evidanza.Database.MySQLImpl.MySQLDBInfo';\n }\n}\n\nexport class OdbcDBInfo extends ADBInfo {\n ConnectionString: string;\n\n getTypeName(): string {\n return 'evidanza.Core.Database.Odbc.OdbcDBInfo';\n }\n}\n\nexport class CouchBaseDBInfo extends ADBInfo {\n Server: string = null;\n Port = 0;\n Database: string = null;\n Username: string = null;\n Password: string = null;\n\n getTypeName(): string {\n return 'evidanza.Database.Couchbase.CouchBaseDBInfo';\n }\n}\n\nexport class MSDBInfo extends ADBInfo {\n MediaSource: string = null;\n\n getTypeName(): string {\n return 'evidanza.App.Shared.NonDatabase.MSDB.MSDBInfo';\n }\n}\n\nexport class ConnDBInfo extends ADBInfo {\n ConnectorId: string = null;\n Values: any = {} ;\n\n getTypeName(): string {\n return 'evidanza.App.Shared.SelfService.Connector.ConnDBInfo';\n }\n}\n\n\nexport class NoDatasourceDBInfo extends ADBInfo {\n getTypeName(): string {\n return 'evidanza.App.Shared.SelfService.Connector.NoDatasourceDBInfo';\n }\n}\n\nexport class DBPanelInfo {\n DBInfoType;\n ControlType;\n}\n\nexport const TYPE_DICT = new Map([\n]);\n","import { ABaseElement } from \"./abaseelement.model\";\nimport { TranslatedString } from \"../translatedstring.model\";\nimport { Type } from \"class-transformer\";\n// @dynamic\nexport class DataModel extends ABaseElement {\n DefaultDataSource: string;\n //SpeedBaseSettings SpeedBaseSettings ???\n MaxSaveCombinations: number = 100000;\n @Type(() => TranslatedString)\n Description: TranslatedString;\n SelectTopRows: number = 1000;\n}","import { ABaseElement } from \"./abaseelement.model\";\nimport { ADBInfo } from \"./adbinfo.model\";\n\nexport class DataSource extends ABaseElement {\n Connection: string;\n DBInfoType; //Type???\n DataModelID: string;\n DTExecPath: string;\n DBInfo: ADBInfo;\n\n toJSON() {\n let result = Object.assign({}, this);\n if (result.DBInfo) {\n result.Connection = JSON.stringify(result.DBInfo);\n result.DBInfoType = result.DBInfo.getTypeName();\n delete result.DBInfo;\n } else {\n result.Connection = null;\n result.DBInfoType = null;\n }\n return result;\n }\n}","import { ABaseElement } from './abaseelement.model';\n\nexport class MediaSource extends ABaseElement {\n URL: string;\n Port: number;\n UserName: string;\n Password: string;\n BucketName: string;\n Private: boolean;\n NonEditable: boolean;\n ClientType: string;\n ClientId: string;\n ClientSecret: string;\n AccessToken: string;\n RefreshToken: string;\n ExpireAt: Date;\n RedirectUrl: string;\n UserId: string;\n Scopes: string;\n TenantId: string;\n SASCredentials: string;\n Region: string;\n\n static GetURL(mediaSource, fileName?): string {\n let retVal = '';\n if (mediaSource) {\n let protocol = 'http://';\n if (mediaSource.Port === 443) {\n protocol = 'https://';\n }\n if (mediaSource.ClientType === 'e44ba8e2-1955-4e0c-bfcf-c0ae5b20618d') {\n retVal = \"https://\" + mediaSource.BucketName + \".s3.\" + mediaSource.Region + \".amazonaws.com\";\n }\n else {\n retVal = protocol + mediaSource.URL + ':' + mediaSource.Port + '/' + mediaSource.BucketName;\n }\n \n if (fileName) {\n retVal += '/' + fileName;\n }\n }\n return retVal;\n }\n}\n\nexport class MediaPanelInfo {\n MediaType: string;\n ControlType;\n}\n\nexport const MEDIA_TYPE_DICT = new Map([]);\n","import { CollectionViewer } from '@angular/cdk/collections';\nimport { DataSource } from '@angular/cdk/table';\nimport { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';\nimport { Column } from '../basic/column.model';\nimport { Row } from '../basic/row.model';\nimport { CellSelection, RowSelection } from '../basic/selection.model';\nimport { ChartSettings } from '../controls/chart.model';\n\nexport abstract class ChartDataSource {\n\n public Data: Subject = new Subject();\n public Loading: BehaviorSubject = new BehaviorSubject(false);\n\n constructor(protected reportObject) {\n }\n\n abstract Refresh(chartSettings: ChartSettings);\n abstract UpdateChart(chartSettings: ChartSettings);\n}\n\nexport abstract class TableDataSource extends DataSource {\n\n Initialized: BehaviorSubject = new BehaviorSubject(false);\n Loading: BehaviorSubject = new BehaviorSubject(false);\n PagedData: Subject = new Subject();\n CellStyles: Subject = new Subject();\n Columns: Subject = new Subject();\n FixedRows: Subject = new Subject();\n FilteredCount: number = 0;\n cachedData = Array.from({ length: this.FilteredCount });\n protected dataStream = new BehaviorSubject<(any | undefined)[]>(this.cachedData);\n protected subscription = new Subscription();\n\n protected _pageSize = 300;\n protected fetchedPages = new Set();\n get pageSize() {\n return this._pageSize;\n }\n set pageSize(val) {\n this._pageSize = val;\n this.fetchedPages = new Set();\n }\n\n constructor(protected reportObject) {\n super();\n }\n\n fetchPage(page: number) {\n }\n\n private getPageForIndex(index: number): number {\n return Math.floor(index / this.pageSize);\n }\n\n connect(collectionViewer: CollectionViewer): Observable<(any | undefined)[]> {\n this.subscription = new Subscription();\n this.subscription.add(collectionViewer.viewChange.subscribe(range => {\n const startPage = this.getPageForIndex(range.start);\n const endPage = this.getPageForIndex(range.end - 1);\n for (let i = startPage; i <= endPage; i++) {\n this.fetchPage(i);\n }\n }));\n this.dataStream = new BehaviorSubject<(any | undefined)[]>(this.cachedData);\n return this.dataStream;\n }\n\n disconnect(): void {\n this.subscription.unsubscribe();\n this.dataStream.unsubscribe();\n }\n\n abstract Refresh();\n abstract GetSelectedCoordinatesFromRowSelection(selection: RowSelection[]): any[];\n abstract GetSelectedCoordinatesFromCellSelection(selection: CellSelection[]): any[];\n}\n","import { deserialize, plainToClass, serialize } from 'class-transformer';\nimport { QueryExecuter } from '../../components/query/executer.query';\nimport { MultiResultHelper } from '../../helpers/multiresult.helper';\nimport { TaskRegistry } from '../../helpers/task.registry';\nimport { Axis, DataDescription } from '../datadescription/multi/datadescription.model';\nimport { AxisNode, MultiResult } from '../datadescription/multi/multiresult.model';\nimport { VisibilityType } from '../enums/oc.enum';\nimport { AxisType } from '../enums/query.enum';\nimport { ChartStyleMerger, SeriesValueStyle } from '../styling/chart.style.merger';\nimport { ITaskExecuter } from '../tasks/atask.model';\nimport { ChartSeriesResult, RowInfo, SeriesInfo, SeriesValueInfo } from '../tasks/chartformattasks/chart.format.model';\nimport { ChartDataSource } from './chart.datasource';\nimport { PageStatus } from '../page.status';\nimport { AxisTick, ChartSettings, SeriesSettings } from '../controls/chart.model';\nimport { ChartType } from '../enums/charttype.enum';\nimport { CacheService } from '../../cache/cache.service';\nimport { ThemeHelper } from '../../helpers/theme.helpers';\nimport { BubbleRow, BubbleRowData, MultidimensionalChartKeys } from '../controls/chart.data.model';\n\nexport class MultidimensionalChartDataSource extends ChartDataSource { \n\n DataDescription: DataDescription;\n QueryID;\n LastMatrix: MultiResult;\n LastDataDescription: DataDescription;\n\n constructor(protected reportObject) {\n super(reportObject);\n if (reportObject && reportObject.Data) {\n this.QueryID = reportObject.Data.ID;\n this.DataDescription = plainToClass(DataDescription, reportObject.Data.Datadescription);\n }\n }\n\n private static GetSeries(result: MultiResult, dataDescription: DataDescription): ChartSeriesResult {\n const seriesList: SeriesInfo[] = [];\n const noLevelIndex = {\n Index: 0\n };\n dataDescription.YLevelNodes.Areas.forEach(a => {\n const areaNodes = MultiResultHelper.GetNodesFromArea(a, result.YAxis.Nodes, noLevelIndex);\n const mNodes = [];\n if (a.Measures && a.Measures.length > 0) {\n a.Measures.forEach(m => {\n if (m.VisibilityType !== VisibilityType.NonVisibleDefault && m.VisibilityType !== VisibilityType.NonVisibleForce) {\n const mNode = result.Measures.Nodes.find(x => x.UniqueID === m.UniqueID);\n if (mNode) {\n mNodes.push(mNode);\n }\n }\n });\n }\n areaNodes.Nodes.forEach(n => {\n if (n.Visible !== false) {\n if (areaNodes.Levels.length > 1) {\n MultiResultHelper.MergeLevels([n], areaNodes.Levels.length, (nodeList) => {\n const captions = [];\n nodeList.forEach(nl => {\n captions.push(nl.Caption);\n });\n const lastNode = nodeList[nodeList.length - 1];\n if (mNodes.length > 0) {\n mNodes.forEach(mNode => {\n seriesList.push(new SeriesInfo({\n Caption: [...captions, mNode.Caption].join(' - '),\n Key: lastNode.Position + '_' + mNode.Position,\n AxisNode: lastNode,\n MeasureNode: mNode\n }));\n });\n } else {\n seriesList.push(new SeriesInfo({\n Caption: captions.join(' - '),\n Key: '' + lastNode.Position,\n AxisNode: lastNode\n }));\n }\n });\n } else {\n if (mNodes.length > 0) {\n mNodes.forEach(mNode => {\n seriesList.push(new SeriesInfo({\n Caption: n.UniqueID === -1 ? mNode.Caption : n.Caption + ' - ' + mNode.Caption,\n Key: n.Position + '_' + mNode.Position,\n AxisNode: n,\n MeasureNode: mNode\n }));\n });\n } else {\n seriesList.push(new SeriesInfo({\n Caption: n.Caption,\n Key: '' + n.Position,\n AxisNode: n\n }));\n }\n }\n }\n });\n });\n\n const retVal = new ChartSeriesResult();\n if (seriesList.length > 0) {\n noLevelIndex.Index = 0;\n dataDescription.XLevelNodes.Areas.forEach(a => {\n const areaNodes = MultiResultHelper.GetNodesFromArea(a, result.XAxis.Nodes, noLevelIndex);\n const mNodes = [];\n if (a.Measures && a.Measures.length > 0) {\n a.Measures.forEach(m => {\n if (m.VisibilityType !== VisibilityType.NonVisibleDefault && m.VisibilityType !== VisibilityType.NonVisibleForce) {\n const mNode = result.Measures.Nodes.find(x => x.UniqueID === m.UniqueID);\n if (mNode) {\n mNodes.push(mNode);\n }\n }\n });\n }\n areaNodes.Nodes.forEach(opp => {\n if (opp.Visible !== false) {\n if (areaNodes.Levels.length > 1) {\n MultiResultHelper.MergeLevels([opp], areaNodes.Levels.length, (nodeList) => {\n const captions = [];\n nodeList.forEach(nl => {\n captions.push(nl.Caption);\n });\n const lastNode = nodeList[nodeList.length - 1];\n if (mNodes.length > 0) {\n mNodes.forEach(mNode => {\n seriesList.forEach(x => {\n const cell = MultiResultHelper.GetCellOrNull(result, lastNode, x.AxisNode, mNode);\n if (cell) {\n x.Values.push(new SeriesValueInfo({\n Index: retVal.Rows.length,\n Value: cell.InternalValue\n }));\n }\n });\n retVal.Rows.push(new RowInfo({\n Caption: [...captions, mNode.Caption].join(' - '),\n AxisNode: lastNode,\n MeasureNode: mNode\n }));\n });\n } else {\n seriesList.forEach(x => {\n if (x.MeasureNode) {\n const cell = MultiResultHelper.GetCellOrNull(result, lastNode, x.AxisNode, x.MeasureNode);\n if (cell) {\n x.Values.push(new SeriesValueInfo({\n Index: retVal.Rows.length,\n Value: cell.InternalValue\n }));\n }\n }\n });\n retVal.Rows.push(new RowInfo({\n Caption: captions.join(' - '),\n AxisNode: lastNode\n }));\n }\n });\n } else {\n if (mNodes.length > 0) {\n mNodes.forEach(mNode => {\n seriesList.forEach(x => {\n const cell = MultiResultHelper.GetCellOrNull(result, opp, x.AxisNode, mNode);\n if (cell) {\n x.Values.push(new SeriesValueInfo({\n Index: retVal.Rows.length,\n Value: cell.InternalValue\n }));\n }\n });\n retVal.Rows.push(new RowInfo({\n Caption: opp.UniqueID === -1 ? mNode.Caption : opp.Caption + ' - ' + mNode.Caption,\n AxisNode: opp,\n MeasureNode: mNode\n }));\n });\n } else {\n seriesList.forEach(x => {\n if (x.MeasureNode) {\n const cell = MultiResultHelper.GetCellOrNull(result, opp, x.AxisNode, x.MeasureNode);\n if (cell) {\n x.Values.push(new SeriesValueInfo({\n Index: retVal.Rows.length,\n Value: cell.InternalValue\n }));\n }\n }\n });\n retVal.Rows.push(new RowInfo({\n Caption: opp.Caption,\n AxisNode: opp\n }));\n }\n }\n }\n });\n });\n seriesList.forEach(series => {\n if (series.Values.some(x => x.Value != null)) {\n retVal.Series.push(series);\n }\n });\n }\n return retVal;\n }\n\n private static FillRows(measureAxisDD: Axis, oppositeAxisDD: Axis, measureAxisNodes: AxisNode[], oppositeAxisNodes: AxisNode[],\n measureNodes: AxisNode[], settingsSeries: SeriesSettings[], cellGetter) {\n const seriesList = [];\n const noLevelIndex = {\n Index: 0\n };\n measureAxisDD.Areas.forEach(a => {\n let areaNodes;\n if (a.Measures) {\n a.Measures.forEach(m => {\n const mNode = measureNodes.find(x => x.UniqueID === m.UniqueID);\n if (mNode) {\n if (!areaNodes) {\n areaNodes = MultiResultHelper.GetNodesFromArea(a, measureAxisNodes, noLevelIndex);\n }\n settingsSeries.forEach(s => {\n if (s['ColumnName'] === ('' + m.UniqueID)) {\n const json = serialize(s);\n areaNodes.Nodes.forEach(n => {\n if (n.Visible !== false) {\n if (areaNodes.Levels.length > 1) {\n MultiResultHelper.MergeLevels([n], areaNodes.Levels.length, (nodeList) => {\n const series = deserialize(SeriesSettings, json);\n const captions = [];\n nodeList.forEach(nl => {\n captions.push(nl.Caption);\n });\n captions.push(mNode.Caption);\n series['ColumnName'] = captions.join(' - ');\n const lastNode = nodeList[nodeList.length - 1];\n series['ColumnKey'] = lastNode.Position + '_' + mNode.Position;\n seriesList.push({\n Series: series,\n AxisNode: lastNode,\n MeasureNode: mNode,\n HasValue: false\n });\n });\n } else {\n const series = deserialize(SeriesSettings, json);\n if (n.UniqueID === -1) {\n series['ColumnName'] = mNode.Caption;\n } else {\n series['ColumnName'] = n.Caption + ' - ' + mNode.Caption;\n }\n series['ColumnKey'] = n.Position + '_' + mNode.Position;\n seriesList.push({\n Series: series,\n AxisNode: n,\n MeasureNode: mNode,\n HasValue: false\n });\n }\n }\n });\n }\n });\n }\n });\n }\n if (!areaNodes) {\n if (a.Tuples && a.Tuples.some(t => t.Levels && t.Levels.length > 0)) {\n } else {\n noLevelIndex.Index++;\n }\n }\n });\n\n const retVal = {\n Rows: [],\n Series: []\n };\n if (seriesList.length > 0) {\n noLevelIndex.Index = 0;\n oppositeAxisDD.Areas.forEach(a => {\n const areaNodes = MultiResultHelper.GetNodesFromArea(a, oppositeAxisNodes, noLevelIndex);\n areaNodes.Nodes.forEach(opp => {\n if (opp.Visible !== false) {\n if (areaNodes.Levels.length > 1) {\n MultiResultHelper.MergeLevels([opp], areaNodes.Levels.length, (nodeList) => {\n const captions = [];\n nodeList.forEach(nl => {\n captions.push(nl.Caption);\n });\n const row = {};\n row[MultidimensionalChartKeys.AxisKey] = captions.join(' - ');\n const lastNode = nodeList[nodeList.length - 1];\n seriesList.forEach(x => {\n const cell = cellGetter(x.AxisNode, x.MeasureNode, lastNode);\n if (cell) {\n row[x.Series['ColumnKey']] = cell.InternalValue;\n if (!x.HasValue) {\n x.HasValue = typeof cell.InternalValue !== 'undefined' && cell.InternalValue !== null;\n }\n }\n });\n retVal.Rows.push(row);\n });\n } else {\n const row = {};\n row[MultidimensionalChartKeys.AxisKey] = opp.Caption;\n seriesList.forEach(x => {\n const cell = cellGetter(x.AxisNode, x.MeasureNode, opp);\n if (cell) {\n row[x.Series['ColumnKey']] = cell.InternalValue;\n if (!x.HasValue) {\n x.HasValue = typeof cell.InternalValue !== 'undefined' && cell.InternalValue !== null;\n }\n }\n });\n retVal.Rows.push(row);\n }\n }\n });\n });\n seriesList.forEach(series => {\n if (series.HasValue) {\n retVal.Series.push(series.Series);\n }\n });\n }\n return retVal;\n }\n\n private static GetBubbleResult(measureAxisDD: Axis, oppositeAxisDD: Axis, measureAxisNodes: AxisNode[], oppositeAxisNodes: AxisNode[],\n measureNodes: AxisNode[], settingsSeries: SeriesSettings, cellGetter) {\n const seriesList = [];\n const noLevelIndex = {\n Index: 0\n };\n let groupingKey = MultidimensionalChartKeys.GroupingKey;\n let xMeasure, yMeasure, rMeasure;\n measureAxisDD.Areas.some(a => {\n if (a.Measures) {\n a.Measures.forEach(m => {\n const mNode = measureNodes.find(x => x.UniqueID === m.UniqueID);\n if (mNode) {\n if (settingsSeries['XValue'] === ('' + m.UniqueID)) {\n xMeasure = mNode;\n }\n if (settingsSeries['YValue'] === ('' + m.UniqueID)) {\n yMeasure = mNode;\n }\n if (settingsSeries['Radius'] === ('' + m.UniqueID)) {\n rMeasure = mNode;\n }\n }\n });\n if (xMeasure && yMeasure && rMeasure) {\n const areaNodes = MultiResultHelper.GetNodesFromArea(a, measureAxisNodes, noLevelIndex);\n if (areaNodes.Levels.length > 0) {\n const levelCaptions = [];\n areaNodes.Levels.forEach(x => {\n levelCaptions.push(x.toString());\n });\n groupingKey = levelCaptions.join(' - ');\n }\n areaNodes.Nodes.forEach(n => {\n if (n.Visible !== false) {\n if (areaNodes.Levels.length > 1) {\n MultiResultHelper.MergeLevels([n], areaNodes.Levels.length, (nodeList) => {\n const captions = [];\n nodeList.forEach(nl => {\n captions.push(nl.Caption);\n });\n const lastNode = nodeList[nodeList.length - 1];\n seriesList.push({\n Grouping: captions.join(' - '),\n AxisNode: lastNode\n });\n });\n } else {\n seriesList.push({\n Grouping: n.UniqueID === -1 ? '' : n.Caption,\n AxisNode: n\n });\n }\n }\n });\n return true;\n }\n }\n return false;\n });\n\n const retVal = {\n Rows: [],\n Series: []\n };\n\n if (seriesList.length > 0) {\n const json = serialize(settingsSeries);\n const series = deserialize(SeriesSettings, json);\n series['IDColumn'] = MultidimensionalChartKeys.AxisKey;\n series['XValue'] = xMeasure.Caption;\n series['YValue'] = yMeasure.Caption;\n series['Grouping'] = groupingKey;\n series['Radius'] = rMeasure.Caption;\n retVal.Series.push(series);\n noLevelIndex.Index = 0;\n oppositeAxisDD.Areas.forEach(a => {\n const areaNodes = MultiResultHelper.GetNodesFromArea(a, oppositeAxisNodes, noLevelIndex);\n areaNodes.Nodes.forEach(opp => {\n if (opp.Visible !== false) {\n if (areaNodes.Levels.length > 1) {\n MultiResultHelper.MergeLevels([opp], areaNodes.Levels.length, (nodeList) => {\n const captions = [];\n nodeList.forEach(nl => {\n captions.push(nl.Caption);\n });\n const caption = captions.join(' - ');\n const lastNode = nodeList[nodeList.length - 1];\n seriesList.forEach(x => {\n const xCell = cellGetter(x.AxisNode, xMeasure, lastNode);\n if (xCell && xCell.InternalValue != null) {\n const yCell = cellGetter(x.AxisNode, yMeasure, lastNode);\n if (yCell && yCell.InternalValue != null) {\n const rCell = cellGetter(x.AxisNode, rMeasure, lastNode);\n if (rCell && rCell.InternalValue != null) {\n const row = new BubbleRow();\n row.Caption = caption;\n row.GroupingKey = groupingKey;\n row.GroupingValue = x.Grouping;\n row.MeasureAxisNode = x.AxisNode;\n row.OppositeAxisNode = lastNode;\n const rad = new BubbleRowData();\n rad.Caption = rMeasure.Caption;\n rad.UniqueID = rMeasure.UniqueID;\n rad.Value = rCell.InternalValue;\n row.Radius = rad;\n const xCoord = new BubbleRowData();\n xCoord.Caption = xMeasure.Caption;\n xCoord.UniqueID = xMeasure.UniqueID;\n xCoord.Value = xCell.InternalValue;\n row.XCoord = xCoord;\n const yCoord = new BubbleRowData();\n yCoord.Caption = yMeasure.Caption;\n yCoord.UniqueID = yMeasure.UniqueID;\n yCoord.Value = yCell.InternalValue;\n row.YCoord = yCoord;\n retVal.Rows.push(row);\n }\n }\n }\n });\n });\n } else {\n seriesList.forEach(x => {\n const xCell = cellGetter(x.AxisNode, xMeasure, opp);\n if (xCell && xCell.InternalValue != null) {\n const yCell = cellGetter(x.AxisNode, yMeasure, opp);\n if (yCell && yCell.InternalValue != null) {\n const rCell = cellGetter(x.AxisNode, rMeasure, opp);\n if (rCell && rCell.InternalValue != null) {\n const row = new BubbleRow();\n row.Caption = opp.Caption;\n row.GroupingKey = groupingKey;\n row.GroupingValue = x.Grouping;\n row.MeasureAxisNode = x.AxisNode;\n row.OppositeAxisNode = opp;\n const rad = new BubbleRowData();\n rad.Caption = rMeasure.Caption;\n rad.UniqueID = rMeasure.UniqueID;\n rad.Value = rCell.InternalValue;\n row.Radius = rad;\n const xCoord = new BubbleRowData();\n xCoord.Caption = xMeasure.Caption;\n xCoord.UniqueID = xMeasure.UniqueID;\n xCoord.Value = xCell.InternalValue;\n row.XCoord = xCoord;\n const yCoord = new BubbleRowData();\n yCoord.Caption = yMeasure.Caption;\n yCoord.UniqueID = yMeasure.UniqueID;\n yCoord.Value = yCell.InternalValue;\n row.YCoord = yCoord;\n retVal.Rows.push(row);\n }\n }\n }\n });\n }\n }\n });\n });\n }\n return retVal;\n }\n\n private static GetCandleResult(measureAxisDD: Axis, oppositeAxisDD: Axis, measureAxisNodes: AxisNode[], oppositeAxisNodes: AxisNode[],\n measureNodes: AxisNode[], settingsSeries: SeriesSettings[], cellGetter) {\n const seriesList = [];\n const noLevelIndex = {\n Index: 0\n };\n measureAxisDD.Areas.forEach(a => {\n if (a.Measures) {\n let areaNodes;\n settingsSeries.forEach(s => {\n let min, init, final, max;\n a.Measures.forEach(m => {\n const mNode = measureNodes.find(x => x.UniqueID === m.UniqueID);\n if (mNode) {\n if (s['Minimum'] === ('' + m.UniqueID)) {\n min = mNode;\n }\n if (s['Initial'] === ('' + m.UniqueID)) {\n init = mNode;\n }\n if (s['Final'] === ('' + m.UniqueID)) {\n final = mNode;\n }\n if (s['Maximum'] === ('' + m.UniqueID)) {\n max = mNode;\n }\n }\n });\n if (min && init && final && max) {\n if (!areaNodes) {\n areaNodes = MultiResultHelper.GetNodesFromArea(a, measureAxisNodes, noLevelIndex);\n }\n const json = serialize(s);\n areaNodes.Nodes.forEach(n => {\n if (n.Visible !== false) {\n if (areaNodes.Levels.length > 1) {\n MultiResultHelper.MergeLevels([n], areaNodes.Levels.length, (nodeList) => {\n const series = deserialize(SeriesSettings, json);\n const captions = [];\n nodeList.forEach(nl => {\n captions.push(nl.Caption);\n });\n series.LegendLabel = captions.join(' - ');\n const lastNode = nodeList[nodeList.length - 1];\n series['Minimum'] = min.Position + '_' + lastNode.Position;\n series['Initial'] = init.Position + '_' + lastNode.Position;\n series['Final'] = final.Position + '_' + lastNode.Position;\n series['Maximum'] = max.Position + '_' + lastNode.Position;\n seriesList.push({\n Series: series,\n Min: min,\n Init: init,\n Final: final,\n Max: max,\n AxisNode: lastNode,\n HasValue: false\n });\n });\n } else {\n const series = deserialize(SeriesSettings, json);\n series.LegendLabel = n.UniqueID === -1 ? '' : n.Caption;\n series['Minimum'] = min.Position + '_' + n.Position;\n series['Initial'] = init.Position + '_' + n.Position;\n series['Final'] = final.Position + '_' + n.Position;\n series['Maximum'] = max.Position + '_' + n.Position;\n seriesList.push({\n Series: series,\n Min: min,\n Init: init,\n Final: final,\n Max: max,\n AxisNode: n,\n HasValue: false\n });\n }\n }\n });\n }\n });\n }\n });\n\n const retVal = {\n Rows: [],\n Series: []\n };\n\n if (seriesList.length > 0) {\n noLevelIndex.Index = 0;\n oppositeAxisDD.Areas.forEach(a => {\n const areaNodes = MultiResultHelper.GetNodesFromArea(a, oppositeAxisNodes, noLevelIndex);\n areaNodes.Nodes.forEach(opp => {\n if (opp.Visible !== false) {\n if (areaNodes.Levels.length > 1) {\n MultiResultHelper.MergeLevels([opp], areaNodes.Levels.length, (nodeList) => {\n const captions = [];\n nodeList.forEach(nl => {\n captions.push(nl.Caption);\n });\n const row = {};\n row[MultidimensionalChartKeys.AxisKey] = captions.join(' - ');\n const lastNode = nodeList[nodeList.length - 1];\n seriesList.forEach(x => {\n const minCell = cellGetter(x.AxisNode, x.Min, lastNode);\n if (minCell) {\n row[x.Series['Minimum']] = minCell.InternalValue;\n }\n const initCell = cellGetter(x.AxisNode, x.Init, lastNode);\n if (initCell) {\n row[x.Series['Initial']] = initCell.InternalValue;\n }\n const finalCell = cellGetter(x.AxisNode, x.Final, lastNode);\n if (finalCell) {\n row[x.Series['Final']] = finalCell.InternalValue;\n }\n const maxCell = cellGetter(x.AxisNode, x.Max, lastNode);\n if (maxCell) {\n row[x.Series['Maximum']] = maxCell.InternalValue;\n }\n });\n retVal.Rows.push(row);\n });\n } else {\n const row = {};\n row[MultidimensionalChartKeys.AxisKey] = opp.Caption;\n seriesList.forEach(x => {\n const minCell = cellGetter(x.AxisNode, x.Min, opp);\n if (minCell) {\n row[x.Series['Minimum']] = minCell.InternalValue;\n }\n const initCell = cellGetter(x.AxisNode, x.Init, opp);\n if (initCell) {\n row[x.Series['Initial']] = initCell.InternalValue;\n }\n const finalCell = cellGetter(x.AxisNode, x.Final, opp);\n if (finalCell) {\n row[x.Series['Final']] = finalCell.InternalValue;\n }\n const maxCell = cellGetter(x.AxisNode, x.Max, opp);\n if (maxCell) {\n row[x.Series['Maximum']] = maxCell.InternalValue;\n }\n });\n retVal.Rows.push(row);\n }\n }\n });\n });\n seriesList.forEach(series => {\n retVal.Series.push(series.Series);\n });\n }\n return retVal;\n }\n\n Refresh(chartSettings: ChartSettings) {\n if (this.DataDescription && chartSettings) {\n this.Loading.next(true);\n const executer = new QueryExecuter(this.DataDescription, this.QueryID);\n const context = {\n BaseReportObject: this.reportObject\n };\n executer.execute(context, true).then(matrix => {\n this.LastDataDescription = context['DataDescriptionClone'];\n this.LastMatrix = matrix;\n this.UpdateChart(chartSettings);\n this.Loading.next(false);\n });\n } else {\n this.LastMatrix = null;\n this.LastDataDescription = null;\n this.UpdateChart(chartSettings);\n }\n }\n\n async UpdateChart(chartSettings: ChartSettings) {\n const data = {\n Data: null,\n Settings: null\n };\n if (chartSettings) {\n const json = serialize(chartSettings);\n const settings = deserialize(ChartSettings, json);\n if (this.LastMatrix && this.LastDataDescription) {\n const matrix = this.LastMatrix;\n const dd = this.LastDataDescription;\n let result;\n const axisCol = {\n ColumnName: MultidimensionalChartKeys.AxisKey,\n ColumnKey: MultidimensionalChartKeys.AxisKey\n };\n switch (settings.ChartType) {\n case ChartType.AreaChart:\n case ChartType.BarChart:\n case ChartType.ColumnChart:\n case ChartType.ComboChart:\n case ChartType.LineChart:\n case ChartType.ScatterChart:\n case ChartType.SteppedAreaChart:\n settings['AxisColumn'] = axisCol;\n const seriesResult = MultidimensionalChartDataSource.GetSeries(matrix, dd);\n if (seriesResult.Rows.length > 0 && seriesResult.Series.length > 0) {\n const context = {\n ChartResult: seriesResult\n };\n let seriesMap = {};\n if (this.reportObject) {\n const le = this.reportObject.LayoutElement;\n if (le) {\n if (le.UsePaletteForSingleSeries && seriesResult.Series.length == 1) {\n const values = seriesResult.Series[0].Values;\n if (values && values.length > 0) {\n let colors: string[];\n if (chartSettings.ChartPalette) {\n colors = await CacheService.ReadChartPaletteValues(chartSettings.ChartPalette);\n }\n if (!colors || colors.length == 0) {\n if (Array.isArray(chartSettings.SeriesColors) && chartSettings.SeriesColors.length > 0) {\n colors = chartSettings.SeriesColors;\n } else if (ThemeHelper.ActiveThemeChartPalette) {\n colors = ThemeHelper.ActiveThemeChartPalette;\n }\n }\n if (colors && colors.length > 0) {\n const colorStyles = [];\n colors.forEach(x => {\n const svs = new SeriesValueStyle();\n svs.Color = x;\n colorStyles.push(svs);\n });\n const merger = ChartStyleMerger.GetChartStyleMerger(context);\n values.forEach(v => {\n const svs = colorStyles[(v.Index % colorStyles.length)];\n v.StyleID = merger.MergeStyle(v.StyleID, svs);\n });\n }\n }\n }\n if (le.FormatTasks) {\n for (let i = 0; i < le.FormatTasks.length; i++) {\n const task = le.FormatTasks[i];\n if (task && task.TaskType && task.QueryID === le.Query &&\n PageStatus.GetTaskActiveStatus(task, le.ID)) {\n const desc = TaskRegistry.get(task.TaskType);\n if (desc && desc.Executer) {\n if (!desc.SettingsHelper || desc.SettingsHelper.canExecute(this.reportObject)) {\n const executer: ITaskExecuter = new desc.Executer();\n // hier nicht Klon verwenden???\n await executer.Init(task, matrix, dd, context);\n // TODO: IsValid\n await executer.Execute();\n }\n }\n }\n }\n }\n if (le.AdditionalAxisMapping) {\n const entry = le.AdditionalAxisMapping[le.Query];\n if (entry) {\n seriesMap = entry;\n }\n }\n }\n }\n const rows = [];\n seriesResult.Rows.forEach(row => {\n const dataRow = {};\n dataRow[MultidimensionalChartKeys.AxisKey] = row.Caption;\n rows.push(dataRow);\n });\n settings.Series = [];\n\n const onlyPos = [true, true];\n seriesResult.Series.forEach(s => {\n const setting = ChartStyleMerger.GetSetting(s);\n let seriesKey = s.AxisNode.UniqueID + '_';\n if (s.MeasureNode) {\n seriesKey += s.MeasureNode.UniqueID;\n }\n if (seriesMap[seriesKey] === true) {\n setting.TargetAxis = 1;\n } else {\n setting.TargetAxis = 0;\n }\n const labelKey = setting['ColumnKey'] + '_SeriesLabel';\n if (s.LabelInfo && (s.LabelInfo.ShowCaption || s.LabelInfo.ShowValue)) {\n setting['LabelColumn'] = labelKey;\n }\n settings.Series.push(setting);\n s.Values.forEach(v => {\n const row = rows[v.Index];\n row[setting['ColumnKey']] = v.Value;\n if (typeof v.Value === 'number' && v.Value < 0) {\n onlyPos[setting.TargetAxis] = false;\n }\n if (v.StyleID > -1) {\n row[setting['StyleKey']] = '' + v.StyleID;\n }\n if (s.LabelInfo) {\n if (s.LabelInfo.ShowCaption) {\n let label = row[MultidimensionalChartKeys.AxisKey];\n if (s.LabelInfo.ShowValue) {\n label += ' - ' + v.Value;\n }\n row[labelKey] = label;\n } else if (s.LabelInfo.ShowValue) {\n row[labelKey] = v.Value;\n }\n }\n });\n });\n onlyPos.forEach((op, i) => {\n if (op) {\n // Bei Achsen mit nur positiven Werten den MinValue auf 0 setzen, weil das GoogleChart sonst bei zu grossen Werten die BaseLine abschneidet\n if (settings.ValueAxes && settings.ValueAxes.length > i) {\n const axis = settings.ValueAxes[i];\n if ((!axis.Ticks || axis.Ticks.length === 0) && !axis.MinValue) {\n axis.MinValue = new AxisTick();\n axis.MinValue.Value = 0;\n }\n }\n }\n });\n let styles;\n const csm: ChartStyleMerger = context['ChartStyleMerger'];\n if (csm) {\n styles = csm.GetStyleObject();\n }\n data.Data = {\n Data: rows,\n Styles: styles\n };\n }\n break;\n case ChartType.Histogram:\n case ChartType.heatmap:\n case ChartType.polarArea:\n case ChartType.radar:\n if (settings.Series.length > 0) {\n settings['AxisColumn'] = axisCol;\n if (dd.ShowMeasureOnAxis === AxisType.Y_Axis) {\n result = MultidimensionalChartDataSource.FillRows(dd.YLevelNodes, dd.XLevelNodes, matrix.YAxis.Nodes,\n matrix.XAxis.Nodes, matrix.Measures.Nodes, settings.Series, (mAxisPos, mPos, oppPos) => {\n return MultiResultHelper.GetCellOrNull(matrix, oppPos, mAxisPos, mPos);\n });\n } else {\n result = MultidimensionalChartDataSource.FillRows(dd.XLevelNodes, dd.YLevelNodes, matrix.XAxis.Nodes,\n matrix.YAxis.Nodes, matrix.Measures.Nodes, settings.Series, (mAxisPos, mPos, oppPos) => {\n return MultiResultHelper.GetCellOrNull(matrix, mAxisPos, oppPos, mPos);\n });\n }\n settings.Series = result.Series;\n data.Data = result.Rows;\n }\n break;\n case ChartType.PieChart:\n case ChartType.DonutChart:\n case ChartType.radialBar:\n case ChartType.Gauge:\n if (settings.Series.length > 0) {\n settings['AxisColumn'] = axisCol;\n if (dd.ShowMeasureOnAxis === AxisType.Y_Axis) {\n result = MultidimensionalChartDataSource.FillRows(dd.YLevelNodes, dd.XLevelNodes, matrix.YAxis.Nodes,\n matrix.XAxis.Nodes, matrix.Measures.Nodes, settings.Series, (mAxisPos, mPos, oppPos) => {\n return MultiResultHelper.GetCellOrNull(matrix, oppPos, mAxisPos, mPos);\n });\n } else {\n result = MultidimensionalChartDataSource.FillRows(dd.XLevelNodes, dd.YLevelNodes, matrix.XAxis.Nodes,\n matrix.YAxis.Nodes, matrix.Measures.Nodes, settings.Series, (mAxisPos, mPos, oppPos) => {\n return MultiResultHelper.GetCellOrNull(matrix, mAxisPos, oppPos, mPos);\n });\n }\n if (result.Series.length > 1) {\n result.Series.splice(1);\n }\n settings.Series = result.Series;\n data.Data = result.Rows;\n }\n break;\n case ChartType.BubbleChart:\n if (settings.Series.length > 0) {\n if (dd.ShowMeasureOnAxis === AxisType.Y_Axis) {\n result = MultidimensionalChartDataSource.GetBubbleResult(dd.YLevelNodes, dd.XLevelNodes, matrix.YAxis.Nodes,\n matrix.XAxis.Nodes, matrix.Measures.Nodes, settings.Series[0], (mAxisPos, mPos, oppPos) => {\n return MultiResultHelper.GetCellOrNull(matrix, oppPos, mAxisPos, mPos);\n });\n } else {\n result = MultidimensionalChartDataSource.GetBubbleResult(dd.XLevelNodes, dd.YLevelNodes, matrix.XAxis.Nodes,\n matrix.YAxis.Nodes, matrix.Measures.Nodes, settings.Series[0], (mAxisPos, mPos, oppPos) => {\n return MultiResultHelper.GetCellOrNull(matrix, mAxisPos, oppPos, mPos);\n });\n }\n const context = {\n BubbleResult: result,\n ChartStyleMerger: null\n };\n if (this.reportObject) {\n const le = this.reportObject.LayoutElement;\n if (le && le.FormatTasks) {\n for (let i = 0; i < le.FormatTasks.length; i++) {\n const task = le.FormatTasks[i];\n if (task && task.TaskType && task.QueryID === le.Query &&\n PageStatus.GetTaskActiveStatus(task, le.ID)) {\n const desc = TaskRegistry.get(task.TaskType);\n if (desc && desc.Executer) {\n if (!desc.SettingsHelper || desc.SettingsHelper.canExecute(this.reportObject)) {\n const executer: ITaskExecuter = new desc.Executer();\n // hier nicht Klon verwenden???\n await executer.Init(task, matrix, dd, context);\n // TODO: IsValid\n await executer.Execute();\n }\n }\n }\n }\n }\n }\n const dataRows = [];\n result.Rows.forEach(x => dataRows.push(x.toRow()));\n if (context.ChartStyleMerger) {\n const styleSeries = context.ChartStyleMerger.GetBubbleStyles();\n result.Series.push(...styleSeries);\n }\n settings.Series = result.Series;\n data.Data = dataRows;\n }\n break;\n case ChartType.CandlestickChart:\n if (settings.Series.length > 0) {\n settings['AxisColumn'] = axisCol;\n if (dd.ShowMeasureOnAxis === AxisType.Y_Axis) {\n result = MultidimensionalChartDataSource.GetCandleResult(dd.YLevelNodes, dd.XLevelNodes, matrix.YAxis.Nodes,\n matrix.XAxis.Nodes, matrix.Measures.Nodes, settings.Series, (mAxisPos, mPos, oppPos) => {\n return MultiResultHelper.GetCellOrNull(matrix, oppPos, mAxisPos, mPos);\n });\n } else {\n result = MultidimensionalChartDataSource.GetCandleResult(dd.XLevelNodes, dd.YLevelNodes, matrix.XAxis.Nodes,\n matrix.YAxis.Nodes, matrix.Measures.Nodes, settings.Series, (mAxisPos, mPos, oppPos) => {\n return MultiResultHelper.GetCellOrNull(matrix, mAxisPos, oppPos, mPos);\n });\n }\n settings.Series = result.Series;\n data.Data = result.Rows;\n if (result.Series && result.Series.length == 1 && result.Rows && result.Rows.length > 0 && this.reportObject) {\n const le = this.reportObject.LayoutElement;\n if (le && le.UsePaletteForSingleSeries) {\n let colors: string[];\n if (chartSettings.ChartPalette) {\n colors = await CacheService.ReadChartPaletteValues(chartSettings.ChartPalette);\n }\n if (!colors || colors.length == 0) {\n if (Array.isArray(chartSettings.SeriesColors) && chartSettings.SeriesColors.length > 0) {\n colors = chartSettings.SeriesColors;\n } else if (ThemeHelper.ActiveThemeChartPalette) {\n colors = ThemeHelper.ActiveThemeChartPalette;\n }\n }\n if (colors && colors.length > 0) {\n const styleKey = '_PalleteStyle_';\n result.Series[0]['StyleKey'] = styleKey;\n result.Rows.forEach((row, i) => {\n row[styleKey] = '' + (i % colors.length);\n });\n const styles = {};\n colors.forEach((y, i) => {\n styles['' + i] = y;\n });\n data.Data = {\n Data: result.Rows,\n Styles: styles\n };\n }\n }\n }\n }\n break;\n }\n }\n data.Settings = settings;\n }\n this.Data.next(data);\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { deserialize, plainToClass, serialize } from 'class-transformer';\nimport { ChartData } from '../../helpers/chart.data';\nimport { InjectorHelper } from '../../helpers/injector.helper';\nimport { RelQueryHelper } from '../../helpers/relquery.helper';\nimport { ReportingService } from '../../services/reporting.service';\nimport { ChartSettings } from '../controls/chart.model';\nimport { DataDescriptionRelational } from '../datadescription/relational/datadescriptionrelational.model';\nimport { ChartDataSource } from './chart.datasource';\n\nexport class RelationalChartDataSource extends ChartDataSource {\n DataDescription: DataDescriptionRelational;\n DataService: ReportingService;\n LastData;\n FieldMap;\n\n constructor(protected reportObject) {\n super(reportObject);\n const http = InjectorHelper.InjectorInstance.get(HttpClient);\n this.DataService = new ReportingService(http);\n if (reportObject && reportObject.Data) {\n this.DataDescription = plainToClass(DataDescriptionRelational, reportObject.Data.Datadescription);\n }\n }\n\n Refresh(chartSettings: ChartSettings) {\n if (this.DataDescription && this.DataDescription.Fields && chartSettings) {\n const dateFields = [];\n this.FieldMap = new Map();\n this.DataDescription.Fields.forEach(x => {\n this.FieldMap.set('' + x.ID, x);\n if (x.Type === 'System.DateTime') {\n dateFields.push(x.Name);\n }\n });\n this.Loading.next(true);\n this.DataService.ExecuteQuery(RelQueryHelper.GenerateQuery(this.DataDescription, this.reportObject)).subscribe((result) => {\n if (result) {\n if (result.length > 0 && dateFields.length > 0) {\n result.forEach(x => {\n dateFields.forEach(y => {\n const val = x[y];\n if (typeof val !== 'undefined' && val !== null && !(val instanceof Date)) {\n x[y] = new Date(val);\n }\n });\n });\n }\n this.LastData = result;\n this.UpdateChart(chartSettings);\n }\n this.Loading.next(false);\n });\n } else {\n this.LastData = null;\n this.FieldMap = new Map();\n this.UpdateChart(chartSettings);\n }\n }\n\n UpdateChart(chartSettings: ChartSettings) {\n if (chartSettings && this.LastData) {\n const json = serialize(chartSettings);\n const settings = deserialize(ChartSettings, json);\n if (settings.Series) {\n if (this.reportObject) {\n const le = this.reportObject.LayoutElement;\n if (le && le.UsePaletteForSingleSeries &&\n settings.Series && settings.Series.length == 1) {\n ChartData.GetPalette(settings).then(x => {\n if (x && x.length > 0) {\n const first = settings.Series[0];\n const field = this.FieldMap.get(first['ColumnName']);\n if (field) {\n first['ColumnKey'] = first['ColumnName'];\n first['ColumnName'] = field.Caption;\n }\n const styleKey = '_PalleteStyle_';\n first['StyleKey'] = styleKey;\n this.LastData.forEach((row, i) => {\n row[styleKey] = '' + (i % x.length);\n });\n const styles = {};\n x.forEach((y, i) => {\n styles['' + i] = y;\n });\n this.Data.next({\n Data: {\n Data: this.LastData,\n Styles: styles\n },\n Settings: settings\n });\n } else {\n settings.Series.forEach(s => {\n const field = this.FieldMap.get(s['ColumnName']);\n if (field) {\n s['ColumnKey'] = s['ColumnName'];\n s['ColumnName'] = field.Caption;\n }\n });\n this.Data.next({\n Data: this.LastData,\n Settings: settings\n });\n }\n });\n return;\n }\n }\n settings.Series.forEach(s => {\n const field = this.FieldMap.get(s['ColumnName']);\n if (field) {\n s['ColumnKey'] = s['ColumnName'];\n s['ColumnName'] = field.Caption;\n }\n });\n }\n this.Data.next({\n Data: this.LastData,\n Settings: settings\n });\n } else {\n this.Data.next({\n Data: null,\n Settings: null\n });\n }\n }\n}\n","import { deserialize, serialize } from 'class-transformer';\nimport { DataDescriptionHelper } from '../../components/query/ddhelper.query';\nimport { QueryExecuter } from '../../components/query/executer.query';\nimport { TranslateFormatText } from '../../helpers/array.helpers';\nimport { TranslateHelper } from '../../helpers/injector.helper';\nimport { MultiResultHelper } from '../../helpers/multiresult.helper';\nimport { NotificationHelper } from '../../helpers/notification.helper';\nimport { TaskRegistry } from '../../helpers/task.registry';\nimport { Column } from '../basic/column.model';\nimport { Row } from '../basic/row.model';\nimport { CellSelection, RowSelection } from '../basic/selection.model';\nimport { Axis, AxisNode, MultiNode, MultiResult } from '../datadescription/multi/multiresult.model';\nimport { WhereSelects } from '../datadescription/multi/querydef.model';\nimport { VisibilityType } from '../enums/oc.enum';\nimport { AxisType, CellType, CodeDesc } from '../enums/query.enum';\nimport { PageStatus } from '../page.status';\nimport {\n NodeInfo, ReportTableColumnSettings, ReportTableExpandedNodeInfo, ReportTableSettings\n} from '../reportobjects/reporttablesettings.model';\nimport { Border } from '../style/border.model';\nimport { BorderSide } from '../style/borderside.model';\nimport { Gradient } from '../style/gradient.model';\nimport { CellStyle } from '../styling/cell.style';\nimport { NumberFormat } from '../styling/number.format.model';\nimport { StyleMerger } from '../styling/styleMerger';\nimport { ITaskExecuter } from '../tasks/atask.model';\nimport { SumRowInfo, SumRowTaskExecuter, SumRowTaskFormatter } from '../tasks/defaulttasks/sum.row.task';\nimport { TranslatedString } from '../translatedstring.model';\nimport { TableDataSource } from './chart.datasource';\n\nexport class MultiDimensionalTableDataSource extends TableDataSource {\n\n private static _StandardDescriptionNodeWidth = 200;\n\n private Matrix: MultiResult;\n private _RootNodes = [];\n private _ColDescription = {};\n FixedRowsValue: Row[];\n\n private static GetColumns(node: AxisNode, levelLengths: number[], queryValues: ColumnQueryValues): Column[] {\n const retVal = [];\n if (levelLengths.length > 0) {\n if (node.Position !== -1 && node.Visible !== false) {\n MultiResultHelper.MergeLevels([node], levelLengths[0], nodeList => {\n const captions = [];\n const positions = [];\n\n nodeList.forEach(x => {\n let caption = '';\n const cd: CodeDesc = x.CodeDescription;\n switch (cd) {\n case CodeDesc.Description:\n caption = x.Caption;\n break;\n case CodeDesc.Code:\n caption = x.Key;\n break;\n case CodeDesc.CodeDescription:\n caption = x.Key + '_' + x.Caption;\n break;\n case CodeDesc.None:\n caption = '';\n break;\n default:\n caption = x.Caption;\n break;\n }\n captions.push(caption);\n positions.push('' + x.Position);\n });\n\n const toPushColumn = new Column();\n toPushColumn.Caption = captions.join(' - ');\n toPushColumn.Name = positions.join('_');\n\n const lastNode = nodeList[nodeList.length - 1];\n toPushColumn['StyleID'] = lastNode.StyleID;\n const fixedChildren = [];\n if (lastNode.Children && lastNode.Children.length > 0) {\n const nextLevels = levelLengths.slice(1);\n if (queryValues.Pivot) {\n const childList = [];\n lastNode.Children.forEach(child => {\n const childNodes = MultiDimensionalTableDataSource.GetColumns(child, nextLevels, queryValues);\n childList.push(...childNodes);\n });\n if (childList.length > 0) {\n toPushColumn.Expandable = true;\n toPushColumn.Children = childList;\n }\n if (queryValues.Measures) {\n queryValues.Measures.forEach(m => {\n const measureCol = new Column();\n measureCol.Caption = m.Caption;\n measureCol.Name = toPushColumn.Name + '_' + m.Position;\n measureCol['StyleID'] = m.StyleID;\n measureCol['MeasureUniqueID'] = m.UniqueID;\n fixedChildren.push(measureCol);\n queryValues.ColumnDescriptions[measureCol.Name] = { X: lastNode.Position, M: m.Position };\n });\n }\n } else {\n lastNode.Children.forEach(child => {\n const childNodes = MultiDimensionalTableDataSource.GetColumns(child, nextLevels, queryValues);\n fixedChildren.push(...childNodes);\n });\n }\n } else if (queryValues.Measures) {\n queryValues.Measures.forEach(m => {\n const measureCol = new Column();\n measureCol.Caption = m.Caption;\n measureCol.Name = toPushColumn.Name + '_' + m.Position;\n measureCol['StyleID'] = m.StyleID;\n measureCol['MeasureUniqueID'] = m.UniqueID;\n fixedChildren.push(measureCol);\n queryValues.ColumnDescriptions[measureCol.Name] = { X: lastNode.Position, M: m.Position };\n });\n }\n if (fixedChildren.length > 0) {\n toPushColumn.FixedChildren = fixedChildren;\n } else if (!toPushColumn.Children || toPushColumn.Children.length === 0) {\n queryValues.ColumnDescriptions[toPushColumn.Name] = { X: lastNode.Position };\n }\n retVal.push(toPushColumn);\n });\n }\n }\n return retVal;\n } \n\n private static GetExpandedRows(row: Row): Row[] {\n const retVal = [];\n if (row.Children) {\n row.Children.forEach(child => {\n retVal.push(child);\n if (child.expanded) {\n retVal.push(...MultiDimensionalTableDataSource.GetExpandedRows(child));\n }\n });\n }\n return retVal;\n }\n\n private static GetExpandedRowCount(row: Row): number {\n let retVal = 0;\n if (row.Children) {\n row.Children.forEach(child => {\n retVal++;\n if (child.expanded) {\n retVal += MultiDimensionalTableDataSource.GetExpandedRowCount(child);\n }\n });\n }\n return retVal;\n }\n\n private static AppendMatrix(node: AxisNode, newMatrix: MultiResult, context: any) {\n if (context && context.ReloadInfo && context.ReloadInfo.ParentMatrix) {\n const oldMatrix = context.ReloadInfo.ParentMatrix;\n const children = [];\n const newOldY = new Map();\n newMatrix.YAxis.Nodes.forEach(yNode => {\n yNode.Parent = node;\n MultiDimensionalTableDataSource.appendTupleYRecursive(yNode, newOldY, node.Depth + 1, oldMatrix.YAxis);\n children.push(yNode);\n });\n node.Children = children;\n\n if (newMatrix.YAxis.SumNode) {\n const snPos = newMatrix.YAxis.SumNode.Position;\n newMatrix.YAxis.SumNode.Position = oldMatrix.YAxis.ElementCount++;\n newOldY.set(snPos, newMatrix.YAxis.SumNode.Position);\n newMatrix.YAxis.SumNode.Depth = node.Depth + 1;\n node.SumNode = newMatrix.YAxis.SumNode;\n }\n\n const newOldX = new Map();\n MultiDimensionalTableDataSource.appendTupleXRecursive(newMatrix.XAxis.Nodes, oldMatrix.XAxis.Nodes, newOldX);\n if (newMatrix.XAxis.SumNode && oldMatrix.XAxis.SumNode) {\n newOldX.set(newMatrix.XAxis.SumNode.Position, oldMatrix.XAxis.SumNode.Position);\n }\n\n const newOldM = new Map();\n newMatrix.Measures.Nodes.forEach(mNode => {\n const mOrig = oldMatrix.Measures.Nodes.find(on => on.UniqueID === mNode.UniqueID);\n if (mOrig) {\n newOldM.set(mNode.Position, mOrig.Position);\n } else {\n const text = '@@Es kamen mehr Werte zurueck als bei der original Abfrage!';\n NotificationHelper.Error(text, '@@Fehler');\n throw new Error(text);\n }\n });\n\n newOldX.forEach((xNew, xOld) => {\n const xArrayOld = newMatrix.Cells[xOld];\n if (xArrayOld) {\n let xArrayNew = oldMatrix.Cells[xNew];\n if (!xArrayNew) {\n xArrayNew = [];\n oldMatrix.Cells[xNew] = xArrayNew;\n }\n newOldY.forEach((yNew, yOld) => {\n const yArrayOld = xArrayOld[yOld];\n if (yArrayOld) {\n let yArrayNew = xArrayNew[yNew];\n if (!yArrayNew) {\n yArrayNew = [];\n xArrayNew[yNew] = yArrayNew;\n }\n newOldM.forEach((mNew, mOld) => {\n const mNodeOld = yArrayOld[mOld];\n if (mNodeOld) {\n mNodeOld.X = xNew;\n mNodeOld.Y = yNew;\n mNodeOld.M = mNew;\n yArrayNew[mNew] = mNodeOld;\n }\n });\n }\n });\n }\n });\n }\n }\n\n private static appendTupleXRecursive(newNodes: AxisNode[], oldNodes: AxisNode[], newOldX: Map) {\n newNodes.forEach(xTuple => {\n let xOrig;\n if (xTuple.DummyInfo) {\n xOrig = oldNodes.find(on => on.DummyInfo && on.DummyInfo.AreaID === xTuple.DummyInfo.AreaID);\n } else {\n xOrig = oldNodes.find(on => on.UniqueID === xTuple.UniqueID && on.MemberId === xTuple.MemberId);\n }\n if (xOrig) {\n newOldX.set(xTuple.Position, xOrig.Position);\n MultiDimensionalTableDataSource.appendTupleXRecursive(xTuple.Children, xOrig.Children, newOldX);\n if (xTuple.SumNode && xOrig.SumNode) {\n newOldX.set(xTuple.SumNode.Position, xOrig.SumNode.Position);\n }\n } else {\n const text = '@@Es kamen mehr X-Elemente zurueck als bei der original Abfrage!';\n NotificationHelper.Error(text, '@@Fehler');\n throw new Error(text);\n }\n });\n }\n\n private static appendTupleYRecursive(node: AxisNode, newOldY: Map, depth: number, axis: Axis) {\n const newPos = node.Position;\n node.Position = axis.ElementCount++;\n newOldY.set(newPos, node.Position);\n node.Depth = depth;\n if (node.Children) {\n node.Children.forEach(child => {\n MultiDimensionalTableDataSource.appendTupleYRecursive(child, newOldY, depth + 1, axis);\n });\n }\n if (node.SumNode) {\n const snPos = node.SumNode.Position;\n node.SumNode.Position = axis.ElementCount++;\n newOldY.set(snPos, node.SumNode.Position);\n node.SumNode.Depth = depth;\n }\n }\n\n private static async FormatMatrix(matrix: MultiResult, useClone: boolean, context) {\n if (matrix) {\n const styleMerger = StyleMerger.GetStyleMerger(context);\n\n SumRowTaskFormatter.FormatSumRows(matrix, styleMerger);\n\n let tableSettings;\n if (context.BaseReportObject && context.BaseReportObject.LayoutElement) {\n tableSettings = context.BaseReportObject.LayoutElement.TableSettings;\n }\n\n // Default Border\n let borderStyle;\n if (tableSettings && tableSettings.ShowLines === true) {\n borderStyle = new CellStyle();\n borderStyle.Border = new Border();\n borderStyle.Border.RightBorder = StyleMerger.GetBorder(1, 232, 232, 232);\n borderStyle.Border.BottomBorder = StyleMerger.GetBorder(1, 232, 232, 232);\n\n styleMerger['DefaultCellStyle'] = '' + styleMerger.MergeStyle(0, borderStyle);\n\n MultiResultHelper.ExecuteOnAllNodes(matrix.YAxis, (node) => {\n node.StyleID = styleMerger.MergeStyle(node.StyleID, borderStyle);\n }, true);\n }\n\n let formatXNodes = false;\n if (context.DataDescriptionOriginal.ShowMeasureOnAxis === AxisType.X_Axis) {\n const headerLeaveStyle = new CellStyle();\n headerLeaveStyle.Border = new Border();\n headerLeaveStyle.Border.BottomBorder = StyleMerger.GetBorder(2, 127, 127, 127);\n if (tableSettings && tableSettings.HideMeasureHeader === true) {\n headerLeaveStyle.Visible = false;\n formatXNodes = true;\n }\n matrix.Measures.Nodes.forEach(node => {\n node.StyleID = styleMerger.MergeStyle(node.StyleID, headerLeaveStyle);\n });\n } else {\n formatXNodes = true;\n if (borderStyle) {\n matrix.Measures.Nodes.forEach(node => {\n node.StyleID = styleMerger.MergeStyle(node.StyleID, borderStyle);\n });\n }\n }\n if (formatXNodes) {\n const headerLeaveStyle = new CellStyle();\n headerLeaveStyle.Border = new Border();\n headerLeaveStyle.Border.BottomBorder = StyleMerger.GetBorder(2, 127, 127, 127);\n MultiResultHelper.ExecuteOnAllNodes(matrix.XAxis, (node) => {\n if (!node.Children || node.Children.length === 0) {\n node.StyleID = styleMerger.MergeStyle(node.StyleID, headerLeaveStyle);\n }\n }, true);\n }\n\n // Default-Numeric-Formatierung\n const defStyle = new CellStyle();\n defStyle.HorizontalContentAlignment = 2;\n defStyle.NumberFormat = new NumberFormat();\n\n matrix.Cells.forEach((x, xPos) => {\n x.forEach((y, yPos) => {\n y.forEach((m, mPos) => {\n if (borderStyle) {\n if (!m) {\n m = new MultiNode({\n M: mPos,\n X: xPos,\n Y: yPos\n });\n y[mPos] = m;\n }\n m.StyleID = styleMerger.MergeStyle(m.StyleID, borderStyle);\n }\n if (m && (m.CellType === CellType.Double || m.CellType === CellType.Long)) {\n m.StyleID = styleMerger.MergeStyle(m.StyleID, defStyle);\n }\n });\n });\n });\n const reportObject = context.BaseReportObject;\n const dd = useClone ? context.DataDescriptionClone : context.DataDescriptionOriginal;\n if (reportObject && reportObject.LayoutElement && reportObject.LayoutElement.FormatTasks) {\n for (let i = 0; i < reportObject.LayoutElement.FormatTasks.length; i++) {\n const task = reportObject.LayoutElement.FormatTasks[i];\n if (task && task.TaskType && PageStatus.GetTaskActiveStatus(task, reportObject.LayoutElement.ID) && task.QueryID === reportObject.LayoutElement.Query) {\n const desc = TaskRegistry.get(task.TaskType);\n if (desc && desc.Executer) {\n const executer: ITaskExecuter = new desc.Executer();\n await executer.Init(task, matrix, dd, context);\n // TODO: IsValid\n await executer.Execute();\n }\n }\n }\n }\n }\n }\n\n private static RemoveHiddenColumns(columns: Column[], hiddenColumns) {\n for (let i = 0; i < columns.length; i++) {\n const col = columns[i];\n if (hiddenColumns[col.Name] === true) {\n columns.splice(i, 1);\n i--;\n } else {\n let oldChildrenCount = 0;\n let newChildrenCount = 0;\n if (col.Children) {\n oldChildrenCount += col.Children.length;\n MultiDimensionalTableDataSource.RemoveHiddenColumns(col.Children, hiddenColumns);\n newChildrenCount += col.Children.length;\n }\n if (col.FixedChildren) {\n oldChildrenCount += col.FixedChildren.length;\n MultiDimensionalTableDataSource.RemoveHiddenColumns(col.FixedChildren, hiddenColumns);\n newChildrenCount += col.FixedChildren.length;\n }\n if (oldChildrenCount > 0 && newChildrenCount === 0) {\n columns.splice(i, 1);\n i--;\n }\n }\n }\n }\n\n private static SaveExpandedNodes(list, rows, currentPath) {\n if (rows) {\n rows.forEach(row => {\n if (row.Expandable && row.expanded) {\n const info = new ReportTableExpandedNodeInfo();\n info.Path.push(...currentPath);\n const nodeInfo = new NodeInfo();\n nodeInfo.UniqueID = row.UniqueID;\n nodeInfo.MemberID = row.MemberID;\n info.Path.push(nodeInfo);\n list.push(info);\n MultiDimensionalTableDataSource.SaveExpandedNodes(list, row.Children, [...info.Path]);\n }\n });\n }\n }\n\n private static HideEmptyColumns(columns: Column[], rows: Row[], colDescriptions) {\n const hiddenCols = {};\n let anyHidden = false;\n Object.keys(colDescriptions).forEach(cd => {\n let found = false;\n rows.some(row => {\n if (row.data) {\n const val = row.data[cd];\n if (val != null && val !== '') {\n found = true;\n }\n }\n return found;\n });\n if (!found) {\n hiddenCols[cd] = true;\n anyHidden = true;\n }\n });\n if (anyHidden) {\n MultiDimensionalTableDataSource.RemoveHiddenColumns(columns, hiddenCols);\n }\n }\n\n private static SplitFixedColumns(cols: Column[], column: { fixCount: number, index: number, copiedCols: string[] }): Column[] {\n const retVal = [];\n for (let i = 0; i < cols.length; i++) {\n const c = cols[i];\n if (c.Children && c.Children.length > 0) {\n const childLength = c.Children.length;\n const copied = MultiDimensionalTableDataSource.SplitFixedColumns(c.Children, column);\n if (copied.length < childLength) {\n const json = serialize(c);\n const copy = deserialize(Column, json);\n column.copiedCols.push(copy.Name);\n copy.Name += '_c';\n copy.IsSticky = true;\n copy.Children = copied;\n retVal.push(copy);\n break;\n } else {\n c.IsSticky = true;\n c.Children.push(...copied);\n retVal.push(...cols.splice(i, 1));\n i--;\n if (column.index === column.fixCount) {\n break;\n }\n }\n } else {\n if (column.index < column.fixCount) {\n c.IsSticky = true;\n retVal.push(...cols.splice(i, 1));\n i--;\n column.index++;\n } else {\n break;\n }\n }\n }\n return retVal;\n }\n\n private static GetExpandQueries(expandList: NodeInfo[][], axisNodes: AxisNode[]): ExpandQuery[] {\n const expandQueryMap = {};\n const expandQueryList = [];\n expandList.forEach(x => {\n if (x && x.length > 0) {\n const first = x[0];\n const key = first.UniqueID + '_' + first.MemberID;\n let expQ: ExpandQuery = expandQueryMap[key];\n if (expQ) {\n if (x.length > 1) {\n expQ.ExpandList.push(x.slice(1));\n }\n } else {\n const an = MultiResultHelper.FindAxisNodeByIDs(axisNodes, first.UniqueID, first.MemberID);\n if (an && (!an.Children || an.Children.length === 0)) {\n expQ = new ExpandQuery();\n expQ.ExpandNode = an;\n if (x.length > 1) {\n expQ.ExpandList.push(x.slice(1));\n }\n expandQueryMap[key] = expQ;\n expandQueryList.push(expQ);\n }\n }\n }\n });\n return expandQueryList;\n }\n\n private static ExpandRows(rows: Row[]): Row[] {\n const result = [];\n rows.forEach(row => {\n result.push(row);\n if (row.Expandable && row.expanded && row.Children) {\n result.push(...MultiDimensionalTableDataSource.ExpandRows(row.Children));\n }\n });\n return result;\n }\n\n static SetWidthOnLeaves(columns: Column[], defaultWidth: number, columnSettings: ReportTableColumnSettings) {\n if (columns) {\n columns.forEach(col => {\n delete col['CalculatedWidth'];\n if (col.Children && col.Children.length > 0) {\n MultiDimensionalTableDataSource.SetWidthOnLeaves(col.Children, defaultWidth, columnSettings);\n }\n if (col.FixedChildren && col.FixedChildren.length > 0) {\n MultiDimensionalTableDataSource.SetWidthOnLeaves(col.FixedChildren, defaultWidth, columnSettings);\n } else {\n let width = defaultWidth;\n if (columnSettings) {\n const id = col['MeasureUniqueID'];\n if (typeof id === 'number') {\n if (columnSettings.MeasuresWidths) {\n const mWidth = columnSettings.MeasuresWidths[id];\n if (typeof mWidth === 'number') {\n width = mWidth;\n }\n }\n } else if (typeof columnSettings.NonMeasureWidth === 'number') {\n width = columnSettings.NonMeasureWidth;\n }\n }\n const widthObj: any = {\n Value: width,\n Type: 0 // Pixel\n };\n col.Width = widthObj;\n }\n });\n }\n }\n\n static GetFixedChildrenLeaves(column: Column): Column[] {\n const retVal = [];\n if (column.FixedChildren && column.FixedChildren.length > 0) {\n column.FixedChildren.forEach(child => {\n retVal.push(...MultiDimensionalTableDataSource.GetFixedChildrenLeaves(child));\n });\n } else {\n retVal.push(column);\n }\n return retVal;\n }\n\n constructor(protected reportObject) {\n super(reportObject);\n }\n\n async Refresh() {\n if (this.Loading.getValue()) {\n const text = '@@Das Objekt {0} wird gerade geladen. Erneute Aktualisierung wurde unterbunden.';\n const tft = new TranslateFormatText(text);\n tft.FormatParams.push(this.reportObject.LayoutElement.Name);\n NotificationHelper.Info(tft, new TranslateFormatText('@@Erneutes Laden'));\n } else {\n this.Loading.next(true);\n this.Initialized.next(true);\n try {\n this._RootNodes = [];\n\n if (this.reportObject.LayoutElement.TableSettings == null) {\n this.reportObject.LayoutElement.TableSettings = new ReportTableSettings();\n }\n const tableSettings: ReportTableSettings = this.reportObject.LayoutElement.TableSettings;\n\n if (this.reportObject.DataDescription) {\n this.reportObject.DataDescription.PowerGrid = tableSettings.ReloadOnExpand;\n }\n\n const executer = new QueryExecuter(this.reportObject.DataDescription, this.reportObject.Data.ID);\n\n const context = { BaseReportObject: this.reportObject };\n\n const matrix = await executer.execute(context, true);\n\n const allRows = [];\n const columns = [];\n let cellStyles = {};\n if (matrix) {\n try {\n const sri = new SumRowInfo();\n sri.ShowTotal = tableSettings.ShowOnlySumRow || tableSettings.ShowSumRowTop || tableSettings.ShowSumRowBottom;\n sri.ShowTotalOnX = tableSettings.ShowColumnSum;\n sri.ShowRowsSummary = tableSettings.ShowRowSum;\n sri.SumRowText = TranslatedString.GetTranslation(tableSettings.SumRowText);\n if (!sri.SumRowText) {\n sri.SumRowText = TranslateHelper.TranslatorInstance.instant('@@Gesamt');\n }\n if (sri.ShowTotal || sri.ShowTotalOnX || sri.ShowRowsSummary) {\n // hier nicht Klon verwenden???\n await SumRowTaskExecuter.Execute(matrix, this.reportObject.DataDescription, sri, context['Variables'], context['CalcTaskExecuter']);\n }\n\n await MultiDimensionalTableDataSource.FormatMatrix(matrix, true, context);\n\n if (tableSettings.ReloadOnExpand && tableSettings.ReExpand && tableSettings.ExpandedYNodes) {\n const nodeInfos = [];\n tableSettings.ExpandedYNodes.forEach(x => {\n if (x.Path && x.Path.length > 0) {\n nodeInfos.push(x.Path);\n }\n });\n const expandQueryList = MultiDimensionalTableDataSource.GetExpandQueries(nodeInfos, matrix.YAxis.Nodes);\n for (let i = 0; i < expandQueryList.length; i++) {\n await this.ExpandMatrix(expandQueryList[i], matrix, context['StyleMerger']);\n }\n }\n\n const result = this.GenerateColumnsAndRows(tableSettings, matrix, context);\n\n this.Matrix = matrix;\n this._RootNodes = result.Rows;\n this._ColDescription = result.ColumnDescriptions;\n\n if (tableSettings.ReExpand && tableSettings.ExpandedYNodes && tableSettings.ExpandedYNodes.length > 0) {\n allRows.push(...MultiDimensionalTableDataSource.ExpandRows(result.Rows));\n } else {\n allRows.push(...result.Rows);\n }\n allRows.forEach((x, i) => {\n x.index = i;\n });\n\n if (tableSettings.FixRows && tableSettings.FixRowsValue > 0) {\n this.FixedRowsValue = allRows.splice(0, tableSettings.FixRowsValue);\n } else {\n this.FixedRowsValue = null;\n }\n\n columns.push(...result.Columns);\n\n if (context['StyleMerger']) {\n cellStyles = context['StyleMerger'].GetStyleObject();\n }\n } catch (e) {\n console.log(e);\n this.FixedRowsValue = null;\n }\n } else {\n this.FixedRowsValue = null;\n }\n if (columns.length === 0) {\n const emptyCol = new Column();\n emptyCol.Caption = '';\n columns.push(emptyCol);\n }\n\n this.PagedData.next(allRows);\n this.cachedData = allRows;\n this.dataStream.next(this.cachedData);\n this.FixedRows.next(this.FixedRowsValue);\n this.Columns.next(columns);\n this.CellStyles.next(cellStyles);\n\n window.setTimeout(() => {\n this.reportObject.cdRef.detectChanges();\n window.setTimeout(() => {\n this.reportObject.cdRef.detectChanges();\n }, 150);\n }, 50);\n } finally {\n this.Loading.next(false);\n }\n }\n }\n\n private GenerateColumnsAndRows(tableSettings: ReportTableSettings, matrix: MultiResult, context): DataResult {\n const cols = [];\n let noLevelIndex = 0;\n let colSumCol: Column;\n if (matrix.XAxis.SumNode && tableSettings.ShowColumnSum) {\n colSumCol = new Column();\n colSumCol.Caption = TranslatedString.GetTranslation(tableSettings.SumRowText);\n if (!colSumCol.Caption) {\n colSumCol.Caption = TranslateHelper.TranslatorInstance.instant('@@Gesamt');\n }\n colSumCol.Name = '' + matrix.XAxis.SumNode.Position;\n colSumCol['StyleID'] = matrix.XAxis.SumNode.StyleID;\n cols.push(colSumCol);\n }\n const colDescriptions = {};\n const clonedDD = context.DataDescriptionClone;\n const measuresOnX = clonedDD.ShowMeasureOnAxis === AxisType.X_Axis;\n if (measuresOnX) {\n clonedDD.XLevelNodes.Areas.forEach(area => {\n if (area.Tuples && area.Tuples.length > 0) {\n const firstTuple = area.Tuples[0];\n if (firstTuple.Levels && firstTuple.Levels.length > 0) {\n const idLevel = firstTuple.Levels[0];\n const levelLengths = [];\n area.Tuples.forEach(t => {\n levelLengths.push(t.Levels.length);\n });\n const colQuery = new ColumnQueryValues();\n colQuery.ColumnDescriptions = colDescriptions;\n colQuery.Pivot = tableSettings.Pivot;\n if (area.Measures && area.Measures.length > 0) {\n colQuery.Measures = [];\n area.Measures.forEach(x => {\n if (x.VisibilityType !== VisibilityType.NonVisibleForce &&\n x.VisibilityType !== VisibilityType.NonVisibleDefault) {\n const m = matrix.Measures.Nodes.find(y => y.UniqueID === x.UniqueID);\n if (m) {\n colQuery.Measures.push(m);\n if (colSumCol) {\n const measureCol = new Column();\n measureCol.Caption = m.Caption;\n measureCol.Name = colSumCol.Name + '_' + m.Position;\n measureCol['StyleID'] = m.StyleID;\n measureCol['MeasureUniqueID'] = m.UniqueID;\n colDescriptions[measureCol.Name] = {\n M: m.Position,\n X: matrix.XAxis.SumNode.Position\n };\n colSumCol.FixedChildren.push(measureCol);\n }\n }\n }\n });\n }\n let found = false;\n matrix.XAxis.Nodes.some(node => {\n if (node.UniqueID === idLevel.UniqueID) {\n const nodeCols = MultiDimensionalTableDataSource.GetColumns(node, levelLengths, colQuery);\n cols.push(...nodeCols);\n found = true;\n return false;\n } else if (found && node.MemberId === 'MaCTopDownRemainder') {\n const remainderCol = new Column();\n remainderCol.Caption = node.Caption;\n remainderCol.Name = '' + node.Position;\n remainderCol['StyleID'] = node.StyleID;\n if (colQuery.Measures) {\n colQuery.Measures.forEach(m => {\n const measureCol = new Column();\n measureCol.Caption = m.Caption;\n measureCol.Name = node.Position + '_' + m.Position;\n measureCol['StyleID'] = m.StyleID;\n measureCol['MeasureUniqueID'] = m.UniqueID;\n colDescriptions[measureCol.Name] = {\n M: m.Position,\n X: node.Position\n };\n remainderCol.FixedChildren.push(measureCol);\n });\n }\n cols.push(remainderCol);\n }\n return found;\n });\n }\n } else if (area.Measures && area.Measures.length > 0) {\n let innerIndex = 0;\n let xPos;\n if (matrix.XAxis.Nodes.length === 0) {\n xPos = 0;\n } else {\n matrix.XAxis.Nodes.some(node => {\n if (node.UniqueID === -1) { // Dummy Node\n if (innerIndex < noLevelIndex) {\n innerIndex++;\n } else {\n noLevelIndex++;\n xPos = node.Position;\n return true;\n }\n }\n return false;\n });\n }\n area.Measures.forEach(x => {\n if (x.VisibilityType !== VisibilityType.NonVisibleForce && x.VisibilityType !== VisibilityType.NonVisibleDefault) {\n const m = matrix.Measures.Nodes.find(y => y.UniqueID === x.UniqueID);\n if (m) {\n const measureCol = new Column();\n measureCol.Caption = m.Caption;\n measureCol.Name = xPos + '_' + m.Position;\n measureCol['StyleID'] = m.StyleID;\n measureCol['MeasureUniqueID'] = m.UniqueID;\n cols.push(measureCol);\n colDescriptions[measureCol.Name] = { M: m.Position, X: xPos };\n\n if (colSumCol) {\n const sumMeasureCol = new Column();\n sumMeasureCol.Caption = m.Caption;\n sumMeasureCol.Name = colSumCol.Name + '_' + m.Position;\n sumMeasureCol['StyleID'] = m.StyleID;\n sumMeasureCol['MeasureUniqueID'] = m.UniqueID;\n colDescriptions[sumMeasureCol.Name] = { M: m.Position, X: matrix.XAxis.SumNode.Position };\n colSumCol.FixedChildren.push(sumMeasureCol);\n }\n }\n }\n });\n }\n });\n if (colSumCol && colSumCol.FixedChildren.length === 0) {\n colDescriptions[colSumCol.Name] = { X: matrix.XAxis.SumNode.Position };\n }\n } else {\n if (colSumCol) {\n colDescriptions[colSumCol.Name] = { X: matrix.XAxis.SumNode.Position };\n }\n const map = new Map();\n clonedDD.XLevelNodes.Areas.forEach(area => {\n if (area.Tuples && area.Tuples.length > 0) {\n const firstTuple = area.Tuples[0];\n if (firstTuple.Levels && firstTuple.Levels.length > 0) {\n const levelLengths = [];\n area.Tuples.forEach(t => {\n levelLengths.push(t.Levels.length);\n });\n map.set(firstTuple.Levels[0].UniqueID, levelLengths);\n }\n }\n });\n const colQuery = new ColumnQueryValues();\n colQuery.ColumnDescriptions = colDescriptions;\n colQuery.Pivot = tableSettings.Pivot;\n matrix.XAxis.Nodes.forEach(node => {\n const mapEntry = map.get(node.UniqueID);\n if (mapEntry) {\n const nodeCols = MultiDimensionalTableDataSource.GetColumns(node, mapEntry, colQuery);\n cols.push(...nodeCols);\n } else {\n const otherCol = new Column();\n otherCol.Caption = node.Caption;\n otherCol.Name = '' + node.Position;\n otherCol['StyleID'] = node.StyleID;\n cols.push(otherCol);\n }\n });\n }\n const styleMerger = context.StyleMerger;\n let sumRows;\n const allRows = [];\n let fixedRowCount = tableSettings.FixRows ? tableSettings.FixRowsValue : 0;\n if ((tableSettings.ShowOnlySumRow || tableSettings.ShowSumRowTop) && matrix.YAxis.SumNode) {\n const rowQuery = new RowQueryValues();\n rowQuery.Matrix = matrix;\n rowQuery.ColumnDescriptions = colDescriptions;\n rowQuery.StyleMerger = styleMerger;\n rowQuery.TableSettings = tableSettings;\n rowQuery.MeasuresOnX = measuresOnX;\n rowQuery.FixedRowCount = fixedRowCount;\n if (!measuresOnX) {\n rowQuery.Measures = [];\n clonedDD.YLevelNodes.Areas.forEach(area => {\n area.Measures.forEach(m => {\n if (m.VisibilityType !== VisibilityType.NonVisibleForce &&\n m.VisibilityType !== VisibilityType.NonVisibleDefault) {\n const mNode = matrix.Measures.Nodes.find(x => x.UniqueID === m.UniqueID);\n if (mNode) {\n rowQuery.Measures.push(mNode);\n }\n }\n });\n });\n }\n sumRows = this.GetRows(matrix.YAxis.SumNode, [1], 0, rowQuery, null, null);\n allRows.push(...sumRows);\n }\n\n const desColList = [];\n let noLevelCount = 0;\n const hiddenLevels = [];\n if (context.HiddenLevels) {\n hiddenLevels.push(...context.HiddenLevels);\n }\n const yMap = new Map();\n let expRows;\n if (tableSettings.ReExpand && tableSettings.ExpandedYNodes) {\n expRows = [];\n tableSettings.ExpandedYNodes.forEach(x => {\n if (x.Path && x.Path.length > 0) {\n expRows.push(x.Path);\n }\n });\n }\n const alternating = new AlternatingRowInfo();\n alternating.UseAlternatingColors = tableSettings.UseAlternatingColors;\n alternating.FirstAlternatingColor = tableSettings.FirstAlternatingColor;\n alternating.SecondAlternatingColor = tableSettings.SecondAlternatingColor;\n context.DataDescriptionOriginal.YLevelNodes.Areas.forEach(area => {\n if (area.Tuples && area.Tuples.length > 0) {\n const levelLengths = [];\n let firstTuple;\n area.Tuples.forEach(tuple => {\n if (tuple.Levels) {\n let levLengths = 0;\n tuple.Levels.forEach((l) => {\n if (!hiddenLevels.some(hl => hl === l.UniqueID) && !l.Hidden) {\n while (desColList.length <= levLengths) {\n desColList.push({\n StyleID: 0,\n Name: 'descColumn_' + levLengths,\n LevelInfos: []\n });\n }\n desColList[levLengths].LevelInfos.push({\n Caption: l.toString(),\n UniqueID: l.UniqueID\n });\n levLengths++;\n }\n });\n if (levLengths > 0) {\n levelLengths.push(levLengths);\n if (!firstTuple) {\n firstTuple = tuple;\n }\n }\n }\n });\n if (firstTuple) {\n const idLevel = firstTuple.Levels[0];\n yMap.set(idLevel.UniqueID, levelLengths);\n if (!measuresOnX && !tableSettings.ShowOnlySumRow) {\n const rowQuery = new RowQueryValues();\n rowQuery.Matrix = matrix;\n rowQuery.ColumnDescriptions = colDescriptions;\n rowQuery.HideEmpty = tableSettings.HideEmptyRowsAndColumns;\n rowQuery.MeasuresOnX = measuresOnX;\n rowQuery.StyleMerger = styleMerger;\n rowQuery.TableSettings = tableSettings;\n rowQuery.FixedRowCount = fixedRowCount;\n if (area.Measures && area.Measures.length > 0) {\n rowQuery.Measures = [];\n area.Measures.forEach(m => {\n if (m.VisibilityType !== VisibilityType.NonVisibleForce &&\n m.VisibilityType !== VisibilityType.NonVisibleDefault) {\n const mNode = matrix.Measures.Nodes.find(x => x.UniqueID === m.UniqueID);\n if (mNode) {\n rowQuery.Measures.push(mNode);\n }\n }\n });\n }\n let found = false;\n matrix.YAxis.Nodes.some(node => {\n if (node.UniqueID === idLevel.UniqueID) {\n const rL = this.GetRows(node, levelLengths, 0, rowQuery, expRows, alternating);\n allRows.push(...rL);\n found = true;\n return false;\n } else if (found && node.MemberId === 'MaCTopDownRemainder') {\n rowQuery.HideEmpty = false;\n const rL = this.GetRows(node, [1], 0, rowQuery, null, alternating);\n allRows.push(...rL);\n }\n return found;\n });\n }\n }\n } else {\n if (!tableSettings.ShowOnlySumRow) {\n if (area.Measures && area.Measures.length > 0) {\n const rowQuery = new RowQueryValues();\n rowQuery.Matrix = matrix;\n rowQuery.ColumnDescriptions = colDescriptions;\n rowQuery.HideEmpty = tableSettings.HideEmptyRowsAndColumns;\n rowQuery.Measures = [];\n rowQuery.MeasuresOnX = measuresOnX;\n rowQuery.StyleMerger = styleMerger;\n rowQuery.TableSettings = tableSettings;\n rowQuery.FixedRowCount = fixedRowCount;\n area.Measures.forEach(m => {\n if (m.VisibilityType !== VisibilityType.NonVisibleForce &&\n m.VisibilityType !== VisibilityType.NonVisibleDefault) {\n const mNode = matrix.Measures.Nodes.find(x => x.UniqueID === m.UniqueID);\n if (mNode) {\n rowQuery.Measures.push(mNode);\n }\n }\n });\n if (rowQuery.Measures.length > 0) {\n let innerCount = 0;\n matrix.YAxis.Nodes.some(node => {\n if (node.UniqueID === -1) {\n if (innerCount === noLevelCount) {\n const rows = this.GetRows(node, [1], 0, rowQuery, expRows, alternating);\n allRows.push(...rows);\n return true;\n }\n innerCount++;\n }\n return false;\n });\n }\n }\n noLevelCount++;\n }\n }\n });\n if (measuresOnX) {\n if (!tableSettings.ShowOnlySumRow) {\n const rowQuery = new RowQueryValues();\n rowQuery.Matrix = matrix;\n rowQuery.ColumnDescriptions = colDescriptions;\n rowQuery.HideEmpty = tableSettings.HideEmptyRowsAndColumns;\n rowQuery.MeasuresOnX = measuresOnX;\n rowQuery.StyleMerger = styleMerger;\n rowQuery.TableSettings = tableSettings;\n rowQuery.FixedRowCount = fixedRowCount;\n matrix.YAxis.Nodes.some(node => {\n const mapEntry = yMap.get(node.UniqueID);\n const levelLengths = [1];\n if (mapEntry) {\n levelLengths.splice(0, 1, ...mapEntry);\n }\n const rL = this.GetRows(node, levelLengths, 0, rowQuery, expRows, alternating);\n allRows.push(...rL);\n });\n }\n } else {\n if (tableSettings.HideMeasureHeader !== true) {\n desColList.push({\n StyleID: 0,\n Name: 'descColumn_M',\n LevelInfos: []\n });\n }\n }\n if (tableSettings.ShowSumRowBottom) {\n if (sumRows) {\n allRows.push(...sumRows);\n } else if (matrix.YAxis.SumNode) {\n const rowQuery = new RowQueryValues();\n rowQuery.Matrix = matrix;\n rowQuery.ColumnDescriptions = colDescriptions;\n rowQuery.MeasuresOnX = measuresOnX;\n rowQuery.StyleMerger = styleMerger;\n rowQuery.TableSettings = tableSettings;\n rowQuery.FixedRowCount = fixedRowCount;\n if (!measuresOnX) {\n rowQuery.Measures = [];\n clonedDD.YLevelNodes.Areas.forEach(area => {\n area.Measures.forEach(m => {\n const mNode = matrix.Measures.Nodes.find(x => x.UniqueID === m.UniqueID);\n if (mNode) {\n rowQuery.Measures.push(mNode);\n }\n });\n });\n }\n sumRows = this.GetRows(matrix.YAxis.SumNode, [1], 0, rowQuery, null, null);\n allRows.push(...sumRows);\n }\n }\n\n if (tableSettings.FixColumns) {\n const info = {\n fixCount: tableSettings.FixColumnsValue - desColList.length,\n index: 0,\n copiedCols: []\n };\n if (info.fixCount > 0) {\n const copiedCols = MultiDimensionalTableDataSource.SplitFixedColumns(cols, info);\n cols.splice(0, 0, ...copiedCols);\n if (info.copiedCols.length > 0) {\n allRows.forEach(row => {\n info.copiedCols.forEach(cc => {\n row[cc + '_c'] = row[cc];\n });\n });\n }\n }\n }\n\n let colWidth = 100;\n if (tableSettings.FixColumnWidth) {\n colWidth = tableSettings.FixColumnWidthValue;\n }\n MultiDimensionalTableDataSource.SetWidthOnLeaves(cols, colWidth, tableSettings.ColumnSettings);\n\n this.ExecuteDescriptionHeaderTasks(desColList, styleMerger);\n\n desColList.forEach((dc, i) => {\n const descColumn = new Column();\n descColumn.Caption = ' ';\n if (tableSettings.AutoDescriptionColumnHeader) {\n const captions = [];\n dc.LevelInfos.forEach(x => {\n captions.push(x.Caption);\n });\n if (captions.length > 0) {\n descColumn.Caption = captions.join(' / ');\n }\n }\n descColumn.Name = dc.Name;\n descColumn.IsSticky = tableSettings.FixDescriptionColumn || (tableSettings.FixColumns && tableSettings.FixColumnsValue > i);\n const descColWidth: any = {\n Type: 0, // Pixel\n Value: MultiDimensionalTableDataSource._StandardDescriptionNodeWidth\n };\n descColumn.Width = descColWidth;\n if (tableSettings.ColumnSettings && tableSettings.ColumnSettings.DescriptionColumnsWidths &&\n tableSettings.ColumnSettings.DescriptionColumnsWidths.length > i) {\n const savedWidth = tableSettings.ColumnSettings.DescriptionColumnsWidths[i];\n if (typeof savedWidth === 'number') {\n descColumn.Width.Value = savedWidth;\n }\n }\n descColumn['StyleID'] = dc.StyleID;\n cols.splice(i, 0, descColumn);\n });\n\n if (tableSettings.HideEmptyRowsAndColumns) {\n MultiDimensionalTableDataSource.HideEmptyColumns(cols, allRows, colDescriptions);\n }\n\n return {\n Columns: cols,\n Rows: allRows,\n ColumnDescriptions: colDescriptions\n };\n }\n\n private GetRows(node: AxisNode, levelLengths: number[], depth: number, queryValues: RowQueryValues,\n expRows: NodeInfo[][], alternating: AlternatingRowInfo): Row[] {\n const retVal = [];\n if (node.Position !== -1 && node.Visible !== false && levelLengths.length > 0) {\n const idList = [];\n const rowDescs = [];\n MultiResultHelper.MergeLevels([node], levelLengths[0], nodeList => {\n const lastNode = nodeList[nodeList.length - 1];\n const yPos = lastNode.Position;\n const nodeRows = [];\n const row = {};\n const cols = {};\n const style = {};\n for (let i = 0; i < nodeList.length; i++) {\n const x = nodeList[i];\n let showCaption = true;\n if (queryValues.TableSettings.CombineCells) {\n const nodeKey = AxisNode.GetSearchChildrenKey(x);\n if (idList.length <= i) {\n idList[i] = nodeKey;\n } else {\n if (idList[i] != nodeKey) {\n idList[i] = nodeKey;\n } else {\n showCaption = false;\n }\n }\n }\n\n let caption = '';\n if (showCaption) {\n const cd: CodeDesc = x.CodeDescription;\n\n switch (cd) {\n case CodeDesc.Description:\n caption = x.Caption;\n break;\n case CodeDesc.Code:\n caption = x.Key;\n break;\n case CodeDesc.CodeDescription:\n caption = x.Key + '_' + x.Caption;\n break;\n case CodeDesc.None:\n caption = '';\n break;\n default:\n caption = x.Caption;\n break;\n }\n }\n row['descColumn_' + i] = caption;\n cols['descColumn_' + i] = {\n selected: false,\n edit: false,\n tabindex: 0,\n editable: false\n };\n if (typeof x.StyleID === 'number') {\n style['descColumn_' + i] = '' + x.StyleID;\n }\n }\n\n if (queryValues.Measures) {\n queryValues.Measures.forEach((m, mIndex) => {\n const mRow = {\n 'descColumn_M': m.Caption\n };\n const mCols = {\n 'descColumn_M': {\n selected: false,\n edit: false,\n tabindex: 0,\n editable: false\n }\n };\n const mStyle = {};\n if (typeof m.StyleID === 'number') {\n mStyle['descColumn_M'] = m.StyleID;\n }\n let hasValue = false;\n Object.keys(queryValues.ColumnDescriptions).forEach(cd => {\n mCols[cd] = {\n selected: false,\n edit: false,\n tabindex: 0,\n editable: false\n };\n let cellVal = '';\n let cellStyle;\n const xPos = queryValues.ColumnDescriptions[cd].X;\n const xArray = queryValues.Matrix.Cells[xPos];\n if (xArray) {\n const yArray = xArray[yPos];\n if (yArray) {\n const mVal = yArray[m.Position];\n if (mVal) {\n if (mVal.InternalValue != null) {\n cellVal = mVal.InternalValue;\n hasValue = true;\n }\n if (typeof mVal.StyleID === 'number') {\n cellStyle = '' + mVal.StyleID;\n if (queryValues.StyleMerger) {\n const newVal = queryValues.StyleMerger.ApplySpecialStyle(mVal);\n if (newVal) {\n cellVal = newVal;\n }\n }\n }\n }\n }\n }\n mRow[cd] = cellVal;\n if (cellStyle) {\n mStyle[cd] = cellStyle;\n } else if (queryValues.StyleMerger) {\n mStyle[cd] = queryValues.StyleMerger['DefaultCellStyle'];\n }\n });\n if (!queryValues.HideEmpty || hasValue) {\n if (queryValues.TableSettings.CombineCells && mIndex > 0) {\n Object.keys(row).forEach(rk => {\n mRow[rk] = '';\n });\n } else {\n Object.assign(mRow, row);\n }\n Object.assign(mCols, cols)\n Object.assign(mStyle, style);\n\n const rowToPush = new Row();\n rowToPush.data = mRow;\n rowToPush.cols = mCols;\n rowToPush.styles = mStyle;\n rowToPush.Children = null;\n rowToPush['YPos'] = yPos;\n rowToPush['MPos'] = m.Position;\n rowToPush['Depth'] = depth;\n rowToPush['UniqueID'] = lastNode.UniqueID;\n rowToPush['MemberID'] = lastNode.MemberId;\n if (alternating) {\n rowToPush.rowStyle = alternating.getRowStyle();\n }\n nodeRows.push(rowToPush);\n }\n });\n } else if (queryValues.MeasuresOnX) {\n let hasValue = false;\n Object.keys(queryValues.ColumnDescriptions).forEach(cd => {\n cols[cd] = {\n selected: false,\n edit: false,\n tabindex: 0,\n editable: false\n };\n let cellVal = '';\n let cellStyle;\n const colDesc = queryValues.ColumnDescriptions[cd];\n const xArray = queryValues.Matrix.Cells[colDesc.X];\n if (xArray) {\n const yArray = xArray[yPos];\n if (yArray) {\n const mVal = yArray[colDesc.M];\n if (mVal) {\n if (mVal.InternalValue != null) {\n cellVal = mVal.InternalValue;\n hasValue = true;\n }\n if (typeof mVal.StyleID === 'number') {\n cellStyle = '' + mVal.StyleID;\n if (queryValues.StyleMerger) {\n const newVal = queryValues.StyleMerger.ApplySpecialStyle(mVal);\n if (newVal) {\n cellVal = newVal;\n }\n }\n }\n }\n }\n }\n row[cd] = cellVal;\n if (cellStyle) {\n style[cd] = cellStyle;\n } else if (queryValues.StyleMerger) {\n style[cd] = queryValues.StyleMerger['DefaultCellStyle'];\n }\n });\n if (!queryValues.HideEmpty || hasValue) {\n const rowToPush = new Row();\n rowToPush.data = row;\n rowToPush.cols = cols;\n rowToPush.styles = style;\n rowToPush.Children = null;\n rowToPush['YPos'] = yPos;\n rowToPush['Depth'] = depth;\n rowToPush['UniqueID'] = lastNode.UniqueID;\n rowToPush['MemberID'] = lastNode.MemberId;\n if (alternating) {\n rowToPush.rowStyle = alternating.getRowStyle();\n }\n nodeRows.push(rowToPush);\n }\n }\n if (nodeRows.length > 0) {\n if (queryValues.TableSettings.CombineCells && queryValues.TableSettings.ShowLines) {\n nodeRows.forEach(nr => {\n rowDescs.push({\n List: [...idList],\n Row: nr\n });\n });\n }\n retVal.push(...nodeRows);\n const expandableRow = nodeRows[0];\n expandableRow.Expandable = this.RowHasChildren(lastNode);\n if (expandableRow.Expandable) {\n let newAlternate;\n if (alternating) {\n newAlternate = alternating.clone();\n }\n if (expRows) {\n const nextExpRows = [];\n expRows.forEach(x => {\n if (x.length > 0 && x[0].UniqueID === lastNode.UniqueID && x[0].MemberID === lastNode.MemberId) {\n expandableRow.expanded = true;\n if (x.length > 1) {\n nextExpRows.push(x.slice(1));\n }\n }\n });\n if (expandableRow.expanded && lastNode.Children && lastNode.Children.length > 0) {\n const nextLevels = levelLengths.slice(1);\n const childList = [];\n\n lastNode.Children.forEach(child => {\n const rows = this.GetRows(child, nextLevels, depth + 1, queryValues, nextExpRows, newAlternate);\n childList.push(...rows);\n });\n if (lastNode.SumNode) {\n const rows = this.GetRows(lastNode.SumNode, nextLevels, depth + 1, queryValues, nextExpRows, null);\n childList.push(...rows);\n }\n expandableRow.Children = childList;\n }\n }\n expandableRow.RowExpand.subscribe(() => {\n const saveExpRows = [];\n MultiDimensionalTableDataSource.SaveExpandedNodes(saveExpRows, this._RootNodes, []);\n queryValues.TableSettings.ExpandedYNodes = saveExpRows;\n if (expandableRow.expanded) {\n const childList = [];\n if (expandableRow.Children) {\n childList.push(...MultiDimensionalTableDataSource.GetExpandedRows(expandableRow));\n } else {\n if (lastNode.Children && lastNode.Children.length > 0) {\n const nextLevels = levelLengths.slice(1);\n lastNode.Children.forEach(child => {\n const rows = this.GetRows(child, nextLevels, depth + 1, queryValues, null, newAlternate);\n childList.push(...rows);\n });\n if (lastNode.SumNode) {\n const rows = this.GetRows(lastNode.SumNode, nextLevels, depth + 1, queryValues, null, null);\n childList.push(...rows);\n }\n } else {\n const loadingRow = new Row();\n loadingRow.data = {\n descColumn_0: TranslateHelper.TranslatorInstance.instant('@@Loading...')\n };\n loadingRow.cols = {\n descColumn_0: {\n selected: false,\n edit: false,\n tabindex: 0,\n editable: false\n }\n };\n loadingRow.styles = {\n descColumn_0: '0'\n };\n loadingRow['Depth'] = depth + 1;\n loadingRow['IsLoadingNode'] = true;\n childList.push(loadingRow);\n this.loadOnDemand(lastNode, queryValues.Matrix, queryValues.StyleMerger).then((styleObj) => {\n if (styleObj) {\n this.CellStyles.next(styleObj);\n }\n const nextLevels = levelLengths.slice(1);\n const newChildList = [];\n lastNode.Children.forEach(child => {\n const rows = this.GetRows(child, nextLevels, depth + 1, queryValues, null, newAlternate);\n newChildList.push(...rows);\n });\n if (lastNode.SumNode) {\n const rows = this.GetRows(lastNode.SumNode, nextLevels, depth + 1, queryValues, null, null);\n newChildList.push(...rows);\n }\n expandableRow.Children = newChildList;\n if (expandableRow.expanded) {\n this.updateRows(expandableRow, nodeRows.length, newChildList, queryValues.FixedRowCount, true);\n }\n });\n }\n expandableRow.Children = childList;\n }\n this.updateRows(expandableRow, nodeRows.length, childList, queryValues.FixedRowCount, false);\n } else {\n const rowCount = MultiDimensionalTableDataSource.GetExpandedRowCount(expandableRow);\n if (queryValues.FixedRowCount > 0 && this.FixedRowsValue) {\n const fixedIndex = this.FixedRowsValue.indexOf(expandableRow);\n if (fixedIndex > -1) {\n const all = [...this.FixedRowsValue, ...this.cachedData];\n const index = fixedIndex + nodeRows.length;\n all.splice(index, rowCount);\n all.forEach((x, i) => { x.index = i; });\n this.FixedRowsValue = all.splice(0, queryValues.FixedRowCount);\n this.FixedRows.next(this.FixedRowsValue);\n this.cachedData = all;\n this.dataStream.next(this.cachedData);\n return;\n }\n }\n\n const index = this.cachedData.indexOf(expandableRow) + nodeRows.length;\n this.cachedData.splice(index, rowCount);\n for (let i = index; i < this.cachedData.length; i++) {\n this.cachedData[i].index = i + queryValues.FixedRowCount;\n }\n this.dataStream.next(this.cachedData);\n }\n });\n }\n }\n });\n if (queryValues.StyleMerger && rowDescs.length > 1) {\n const defStyleNumText = queryValues.StyleMerger['DefaultCellStyle'];\n if (defStyleNumText) {\n const defNum = Number(defStyleNumText);\n if (!isNaN(defNum)) {\n const defStyle = queryValues.StyleMerger.GetStyle(defNum);\n if (defStyle && defStyle.Border && defStyle.Border.BottomBorder) {\n const borderText = BorderSide.BorderToStyle(defStyle.Border.BottomBorder);\n const noBottomBorderStyle = new CellStyle();\n noBottomBorderStyle.Border = new Border();\n noBottomBorderStyle.Border.BottomBorder = StyleMerger.GetBorder(1, 255, 255, 255, 0);\n let last = rowDescs[rowDescs.length - 1];\n for (let i = rowDescs.length - 2; i >= 0; i--) {\n const act = rowDescs[i];\n for (let j = act.List.length - 1; j >= 0; j--) {\n if (last.List[j] == act.List[j]) {\n const actStyle = act.Row.styles['descColumn_' + j];\n if (actStyle) {\n const num = Number(actStyle);\n if (!isNaN(num)) {\n const style = queryValues.StyleMerger.GetStyle(num);\n if (style && style.Border && style.Border.BottomBorder && BorderSide.BorderToStyle(style.Border.BottomBorder) == borderText) {\n act.Row.styles['descColumn_' + j] = queryValues.StyleMerger.MergeStyle(num, noBottomBorderStyle);\n }\n }\n }\n }\n }\n last = act;\n }\n }\n }\n }\n }\n }\n return retVal;\n }\n\n private updateRows(expandableRow, additionalCount, childList, fixedRowCount: number, checkLoading: boolean) {\n if (fixedRowCount > 0 && this.FixedRowsValue) {\n const fixedIndex = this.FixedRowsValue.indexOf(expandableRow);\n if (fixedIndex > -1) {\n const all = [...this.FixedRowsValue, ...this.cachedData];\n const index = fixedIndex + additionalCount;\n const splice = checkLoading && index < all.length && all[index].IsLoadingNode === true ? 1 : 0;\n all.splice(index, splice, ...childList);\n all.forEach((x, i) => { x.index = i; });\n this.FixedRowsValue = all.splice(0, fixedRowCount);\n this.FixedRows.next(this.FixedRowsValue);\n this.cachedData = all;\n this.dataStream.next(this.cachedData);\n return;\n }\n }\n const index = this.cachedData.indexOf(expandableRow) + additionalCount;\n const splice = checkLoading && index < this.cachedData.length && this.cachedData[index].IsLoadingNode === true ? 1 : 0;\n this.cachedData.splice(index, splice, ...childList);\n for (let i = index; i < this.cachedData.length; i++) {\n this.cachedData[i].index = i + fixedRowCount;\n }\n this.dataStream.next(this.cachedData);\n }\n\n private ExecuteDescriptionHeaderTasks(descriptionColumnList, styleMerger: StyleMerger) {\n if (styleMerger) {\n const headerLeaveStyle = new CellStyle();\n headerLeaveStyle.Border = new Border();\n headerLeaveStyle.Border.BottomBorder = StyleMerger.GetBorder(2, 127, 127, 127);\n descriptionColumnList.forEach(x => {\n x.StyleID = styleMerger.MergeStyle(x.StyleID, headerLeaveStyle);\n });\n if (this.reportObject && this.reportObject.LayoutElement && this.reportObject.LayoutElement.FormatTasks) {\n for (let i = 0; i < this.reportObject.LayoutElement.FormatTasks.length; i++) {\n const task = this.reportObject.LayoutElement.FormatTasks[i];\n if (task && task.TaskType === 'columndescriptionheaderformattingtask' && PageStatus.GetTaskActiveStatus(task, this.reportObject.LayoutElement.ID)\n && task.QueryID === this.reportObject.LayoutElement.Query && task.Style) {\n delete task.Style['MergeID'];\n if (typeof task.LevelUniqueID === 'number' && task.LevelUniqueID > -1) {\n descriptionColumnList.some(x => {\n if (x.LevelInfos.some(l => l.UniqueID === task.LevelUniqueID)) {\n x.StyleID = styleMerger.MergeStyle(x.StyleID, task.Style);\n return true;\n }\n return false;\n });\n } else if (typeof task.ColumnIndex === 'number' && task.ColumnIndex > -1\n && task.ColumnIndex < descriptionColumnList.length) {\n const dc = descriptionColumnList[task.ColumnIndex];\n dc.StyleID = styleMerger.MergeStyle(dc.StyleID, task.Style);\n }\n }\n }\n }\n }\n }\n\n GetSelectedCoordinatesFromRowSelection(selection: RowSelection[]): any[] {\n const retVal = [];\n if (selection && this.Matrix && this.reportObject) {\n const dd = this.reportObject.DataDescription;\n if (dd) {\n const measuresOnX = dd.ShowMeasureOnAxis === AxisType.X_Axis;\n selection.forEach(sel => {\n if (typeof sel.RowIndex === 'number') {\n const row = this.GetRowOnIndex(sel.RowIndex);\n if (row) {\n const selCor = new SelectedCoordinate();\n if (typeof row.YPos === 'number') {\n let yNode = MultiResultHelper.FindAxisNodeByPosition(this.Matrix.YAxis.Nodes, row.YPos);\n while (yNode) {\n const ln = DataDescriptionHelper.FindLevelNodeByIDInternal(dd.YLevelNodes, yNode.UniqueID);\n if (ln) {\n const ws = new WhereSelects();\n ws.LevelId = ln.Level;\n ws.MemberIds = [yNode.MemberId];\n ws['MemberCaptions'] = [yNode.Caption];\n selCor.YPath.splice(0, 0, ws);\n } else {\n selCor.YPath.splice(0);\n break;\n }\n yNode = yNode.Parent;\n }\n }\n if (!measuresOnX && typeof row.MPos === 'number') {\n selCor.Measure = this.Matrix.Measures.Nodes.find(x => x.Position === row.MPos);\n }\n retVal.push(selCor);\n }\n }\n });\n }\n }\n return retVal;\n }\n\n GetSelectedCoordinatesFromCellSelection(selection: CellSelection[]): any[] {\n const retVal = [];\n if (selection && this.Matrix && this._ColDescription && this.reportObject) {\n const dd = this.reportObject.DataDescription;\n if (dd) {\n const measuresOnX = dd.ShowMeasureOnAxis === AxisType.X_Axis;\n selection.forEach(sel => {\n const selCor = new SelectedCoordinate();\n const colDesc = this._ColDescription[sel.ColumnName];\n if (colDesc) {\n if (typeof colDesc.X === 'number') {\n let xNode = MultiResultHelper.FindAxisNodeByPosition(this.Matrix.XAxis.Nodes, colDesc.X);\n while (xNode) {\n const ln = DataDescriptionHelper.FindLevelNodeByIDInternal(dd.XLevelNodes, xNode.UniqueID);\n if (ln) {\n const ws = new WhereSelects();\n ws.LevelId = ln.Level;\n ws.MemberIds = [xNode.MemberId];\n ws['MemberCaptions'] = [xNode.Caption];\n selCor.XPath.splice(0, 0, ws);\n } else {\n selCor.XPath.splice(0);\n break;\n }\n xNode = xNode.Parent;\n }\n }\n if (measuresOnX && typeof colDesc.M === 'number') {\n selCor.Measure = this.Matrix.Measures.Nodes.find(x => x.Position === colDesc.M);\n }\n }\n if (typeof sel.RowIndex === 'number') {\n const row = this.GetRowOnIndex(sel.RowIndex);\n if (row) {\n if (typeof row.YPos === 'number') {\n let yNode = MultiResultHelper.FindAxisNodeByPosition(this.Matrix.YAxis.Nodes, row.YPos);\n while (yNode) {\n const ln = DataDescriptionHelper.FindLevelNodeByIDInternal(dd.YLevelNodes, yNode.UniqueID);\n if (ln) {\n const ws = new WhereSelects();\n ws.LevelId = ln.Level;\n ws.MemberIds = [yNode.MemberId];\n ws['MemberCaptions'] = [yNode.Caption];\n selCor.YPath.splice(0, 0, ws);\n } else {\n selCor.YPath.splice(0);\n break;\n }\n yNode = yNode.Parent;\n }\n }\n if (!measuresOnX && typeof row.MPos === 'number') {\n selCor.Measure = this.Matrix.Measures.Nodes.find(x => x.Position === row.MPos);\n }\n }\n }\n retVal.push(selCor);\n });\n }\n }\n return retVal;\n }\n\n private GetRowOnIndex(index: number) {\n if (index > -1) {\n if (this.FixedRowsValue) {\n if (index < this.FixedRowsValue.length) {\n return this.FixedRowsValue[index];\n } else {\n index -= this.FixedRowsValue.length;\n }\n }\n if (index < this.cachedData.length) {\n return this.cachedData[index];\n }\n }\n return null;\n }\n\n private RowHasChildren(node: AxisNode): boolean {\n let retVal = false;\n if (node) {\n if (node.Children && node.Children.length > 0) {\n retVal = true;\n } else if (this.reportObject && this.reportObject.LayoutElement && this.reportObject.LayoutElement.TableSettings &&\n this.reportObject.LayoutElement.TableSettings.ReloadOnExpand === true && this.reportObject.DataDescription &&\n this.reportObject.DataDescription.YLevelNodes && this.reportObject.DataDescription.YLevelNodes.Areas) {\n this.reportObject.DataDescription.YLevelNodes.Areas.some(area => {\n return area && area.Tuples && area.Tuples.some((t, i) => {\n if (t && t.Levels && t.Levels.some(l => l.UniqueID === node.UniqueID)) {\n retVal = area.Tuples.length > i + 1;\n return true;\n }\n return false;\n });\n });\n }\n }\n return retVal;\n }\n\n private loadOnDemand(node: AxisNode, matrix: MultiResult, styleMerger: StyleMerger): Promise {\n const promise = new Promise((resolve, reject) => {\n const executer = new QueryExecuter(this.reportObject.DataDescription, this.reportObject.Data.ID);\n const context = {\n BaseReportObject: this.reportObject,\n ReloadInfo: {\n ReloadTupleY: node,\n ParentMatrix: matrix\n },\n StyleMerger: styleMerger\n };\n let styleCount = 0;\n if (styleMerger) {\n styleCount = styleMerger.StyleCount;\n }\n executer.execute(context, true).then(result => {\n const le = this.reportObject.LayoutElement;\n if (le && le.TableSettings && (le.TableSettings.ShowRowSum || le.TableSettings.ShowColumnSum)) {\n const sri = new SumRowInfo();\n sri.ShowTotal = le.TableSettings.ShowRowSum;\n sri.ShowTotalOnX = le.TableSettings.ShowColumnSum;\n sri.ShowRowsSummary = le.TableSettings.ShowRowSum;\n // hier nicht Klon verwenden???\n SumRowTaskExecuter.Execute(result, this.reportObject.DataDescription, sri,\n context['Variables'], context['CalcTaskExecuter']).then(() => {\n MultiDimensionalTableDataSource.FormatMatrix(result, true, context).then(() => {\n try {\n MultiDimensionalTableDataSource.AppendMatrix(node, result, context);\n if (context.StyleMerger && context.StyleMerger.StyleCount !== styleCount) {\n resolve(context.StyleMerger.GetStyleObject());\n } else {\n resolve(null);\n }\n } catch (e) {\n reject(e);\n }\n }).catch(e => reject(e));\n }).catch(e => reject(e));\n } else {\n MultiDimensionalTableDataSource.FormatMatrix(result, true, context).then(() => {\n try {\n MultiDimensionalTableDataSource.AppendMatrix(node, result, context);\n if (context.StyleMerger && context.StyleMerger.StyleCount !== styleCount) {\n resolve(context.StyleMerger.GetStyleObject());\n } else {\n resolve(null);\n }\n } catch (e) {\n reject(e);\n }\n }).catch(e => reject(e));\n }\n }).catch(e => reject(e));\n });\n return promise;\n }\n\n private async ExpandMatrix(expandQuery: ExpandQuery, matrix: MultiResult, styleMerger: StyleMerger) {\n await this.loadOnDemand(expandQuery.ExpandNode, matrix, styleMerger);\n const nextExpQ = MultiDimensionalTableDataSource.GetExpandQueries(expandQuery.ExpandList, expandQuery.ExpandNode.Children);\n for (let i = 0; i < nextExpQ.length; i++) {\n await this.ExpandMatrix(nextExpQ[i], matrix, styleMerger);\n }\n }\n}\n\nexport class SelectedCoordinate {\n XPath: WhereSelects[] = [];\n YPath: WhereSelects[] = [];\n Measure: AxisNode;\n}\n\nexport class ColumnQueryValues {\n ColumnDescriptions;\n Measures: AxisNode[];\n Pivot = false;\n}\n\nexport class RowQueryValues {\n Matrix: MultiResult;\n ColumnDescriptions;\n Measures: AxisNode[];\n StyleMerger: StyleMerger;\n TableSettings: ReportTableSettings;\n HideEmpty = false;\n MeasuresOnX = true;\n FixedRowCount = 0;\n}\n\nexport class DataResult {\n Columns: Column[];\n Rows: Row[];\n ColumnDescriptions;\n}\n\nexport class ExpandQuery {\n ExpandNode: AxisNode;\n ExpandList: NodeInfo[][] = [];\n}\n\nexport class AlternatingRowInfo {\n UseAlternatingColors = false;\n FirstAlternatingColor: Gradient;\n SecondAlternatingColor: Gradient;\n StartIndex = 0;\n\n clone() {\n const retVal = new AlternatingRowInfo();\n retVal.UseAlternatingColors = this.UseAlternatingColors;\n retVal.FirstAlternatingColor = this.FirstAlternatingColor;\n retVal.SecondAlternatingColor = this.SecondAlternatingColor;\n retVal.StartIndex = this.StartIndex;\n return retVal;\n }\n\n getRowStyle() {\n let retVal = {};\n if (this.UseAlternatingColors) {\n retVal = Gradient.getStyleObject(this.StartIndex % 2 == 0 ? this.FirstAlternatingColor : this.SecondAlternatingColor);\n this.StartIndex++;\n }\n return retVal;\n }\n}\n","import { Subject } from 'rxjs';\nimport { QueryExecuter } from '../../components/query/executer.query';\nimport { AdvancedFormulaParser } from '../../helpers/formula.parser';\nimport { InjectorHelper } from '../../helpers/injector.helper';\nimport { TaskRegistry } from '../../helpers/task.registry';\nimport { PlanningService } from '../../services/planning.service';\nimport { Column } from '../basic/column.model';\nimport { ValueAndType } from '../basic/formulaEditor.model';\nimport { LayoutUnit } from '../basic/layoutunit.model';\nimport { Row } from '../basic/row.model';\nimport { CellSelection, CopySelection, RowSelection } from '../basic/selection.model';\nimport { ValueFormulaNodeCalculator } from '../calculation/formula.node.calculator';\nimport { GradientType } from '../enums/gradienttype.enum';\nimport { PlanType } from '../enums/plantype.enum';\nimport { UnitType } from '../enums/unittype.enum';\nimport { VariableDisplay } from '../enums/variabledisplay.enum';\nimport { PlanElement, PlanValue, PlanValues } from '../planning/planvalues.model';\nimport { Border } from '../style/border.model';\nimport { BorderSide } from '../style/borderside.model';\nimport { Color } from '../style/color.model';\nimport { Gradient } from '../style/gradient.model';\nimport { GradientStopColor } from '../style/gradientstopcolor.model';\nimport { CellStyle } from '../styling/cell.style';\nimport { StyleMerger } from '../styling/styleMerger';\nimport { IPlanningTaskExecuter } from '../tasks/atask.model';\nimport { PlanningCellFormattingTaskExecuter } from '../tasks/planning/cell.formatting.task';\nimport { PlanningContentFormattingTaskExecuter } from '../tasks/planning/content.formatting.task';\nimport { PlanningHeaderFormattingTaskExecuter } from '../tasks/planning/header.formatting.task';\nimport { PlanningRowDescFormattingTaskExecuter } from '../tasks/planning/rowdesc.formatting.task';\nimport { TaskHelper } from '../tasks/task.helper';\nimport { TableDataSource } from './chart.datasource';\n\nexport class PlanningTableDataSource extends TableDataSource {\n\n ActiveSheet;\n //#region Properties\n private Matrices: {};\n private References;\n private Cells;\n private ExecutionContext;\n private CustomContentStyle;\n Columns: Subject = new Subject();\n private ColumnsValue = {};\n Data: Subject = new Subject();\n RowsValue = {};\n private planningService: PlanningService;\n //#endregion\n\n constructor(protected reportObject) {\n super(reportObject);\n this.planningService = InjectorHelper.InjectorInstance.get(PlanningService);\n }\n\n GetSelectedCoordinatesFromRowSelection(selection: RowSelection[]): any[] {\n throw new Error(\"Method not implemented.\");\n }\n GetSelectedCoordinatesFromCellSelection(selection: CellSelection[]): any[] {\n throw new Error(\"Method not implemented.\");\n }\n\n async Refresh() {\n this.Initialized.next(true);\n this.Loading.next(true);\n this.ExecutionContext = {};\n this.ExecutionContext['Styles'] = { BaseReportObject: this.reportObject };\n this.Matrices = {};\n if (this.reportObject.DataValue) {\n for (let i = 0; i < this.reportObject.DataValue.length; i++) {\n let data = this.reportObject.DataValue[i];\n if (!data.IsRelational) {\n this.ExecutionContext[data.ID] = { BaseReportObject: this.reportObject };\n const executer = new QueryExecuter(this.reportObject.DataDescriptions[data.ID], data.ID);\n this.Matrices[data.ID] = await executer.execute(this.ExecutionContext[data.ID], true);\n }\n }\n }\n this.GenerateColumnsAndRows();\n }\n async RefreshStyles() {\n for (let she = 0; she < this.reportObject.LayoutElement.Sheets.length; she++) {\n let sheet = this.reportObject.LayoutElement.Sheets[she];\n const styleMerger = StyleMerger.GetStyleMerger(this.ExecutionContext['Styles']);\n await this.CreateCustomGridStyles(this.cachedData, this.ColumnsValue[sheet.Name]);\n await this.CreateCustomCellStyles(this.cachedData, this.ColumnsValue[sheet.Name]);\n\n let cellStyles = {};\n if (styleMerger) {\n cellStyles = styleMerger.GetStyleObject();\n }\n this.CellStyles.next(cellStyles);\n }\n this.Data.next(this.RowsValue);\n }\n RefreshCalculations() {\n this.RefreshCellsAndReferences();\n for (let she = 0; she < this.reportObject.LayoutElement.Sheets.length; she++) {\n let sheet = this.reportObject.LayoutElement.Sheets[she];\n let refKeys = Object.keys(this.References[sheet.Name]);\n let refcount = refKeys.length;\n for (let i = 0; i < refcount; i++) {\n let reference = this.References[sheet.Name][refKeys[i]];\n reference.Value = this.GetMatrixValue(reference, sheet.Name);\n }\n let cellKeys = Object.keys(this.Cells[sheet.Name]);\n let cellcount = cellKeys.length;\n for (let i = 0; i < cellcount; i++) {\n let cell = this.Cells[sheet.Name][cellKeys[i]];\n if (cell.Formula) {\n this.RowsValue[sheet.Name][cell.Row].data[cell.Column] = this.GetFormulaValue(cell.Formula);\n }\n this.RowsValue[sheet.Name][cell.Row]['internal'][cell.Column] = this.RowsValue[sheet.Name][cell.Row].data[cell.Column];\n if (this.CustomContentStyle && this.CustomContentStyle.NumberFormat) {\n this.RowsValue[sheet.Name][cell.Row].data[cell.Column] = TaskHelper.GetFormatedValue(this.RowsValue[sheet.Name][cell.Row]['internal'][cell.Column], this.CustomContentStyle.NumberFormat);\n }\n }\n }\n this.RefreshStyles();\n }\n RefreshCellsAndReferences() {\n this.References = {};\n this.Cells = {};\n for (let she = 0; she < this.reportObject.LayoutElement.Sheets.length; she++) {\n let sheet = this.reportObject.LayoutElement.Sheets[she];\n for (let i = 0; i < sheet.TableSize.Rows; i++) {\n this.ColumnsValue[sheet.Name].forEach((col) => {\n if (col.Name != 'fixedColumn') {\n if (this.reportObject.LayoutElement.CellDescriptions && this.reportObject.LayoutElement.CellDescriptions[sheet.Name] && this.reportObject.LayoutElement.CellDescriptions[sheet.Name][i] && this.reportObject.LayoutElement.CellDescriptions[sheet.Name][i][col.Name]) {\n let formula = this.reportObject.LayoutElement.CellDescriptions[sheet.Name][i][col.Name].ViewFormula;\n if (this.reportObject.LayoutElement.CellDescriptions[sheet.Name][i][col.Name].UseReference) {\n if (!this.References[sheet.Name]) {\n this.References[sheet.Name] = {}\n }\n this.References[sheet.Name][col.Name + (i + 1)] = this.reportObject.LayoutElement.CellDescriptions[sheet.Name][i][col.Name].Reference;\n if (!formula) {\n formula = col.Name + (i + 1);\n }\n }\n if (!this.Cells[sheet.Name]) {\n this.Cells[sheet.Name] = {}\n }\n this.Cells[sheet.Name][col.Name + (i + 1)] = {\n Formula: formula,\n Row: i,\n Column: col.Name\n };\n }\n }\n })\n }\n }\n }\n\n async SaveChanges(values) {\n let retVal = {};\n if (values) {\n values.forEach((value) => {\n let cellRef = this.References[value.Sheet][value.ColumnName + (value.RowIndex + 1)];\n if (cellRef.DataDescriptionID && !retVal[cellRef.DataDescriptionID]) {\n retVal[cellRef.DataDescriptionID] = {}\n }\n let item = new PlanValue();\n item.Value = parseFloat(value.NewValue);\n item.OldValue = value.OldValue;\n item.Type = cellRef.PlanType != null ? cellRef.PlanType : PlanType.Equal;\n item.XElements = [];\n item.YElements = [];\n if (cellRef.UseMeasure) {\n item.MeasureUniqueId = cellRef.Measure;\n let X = this.References[value.Sheet][cellRef.XLevel];\n let Y = this.References[value.Sheet][cellRef.YLevel];\n if (!retVal[cellRef.DataDescriptionID][item.MeasureUniqueId]) {\n retVal[cellRef.DataDescriptionID][item.MeasureUniqueId] = [];\n }\n item[X.Axis + 'Elements'].push(this.CreatePlanElement(X, X.Axis));\n item[Y.Axis + 'Elements'].push(this.CreatePlanElement(Y, Y.Axis));\n retVal[cellRef.DataDescriptionID][item.MeasureUniqueId].push(item);\n } else if (cellRef.UseFullReference) {\n let X = this.GetActiveArea(cellRef.X);\n item['XElements'].push(this.CreatePlanElement(cellRef, 'X'));\n let Y = this.GetActiveArea(cellRef.Y);\n item['YElements'].push(this.CreatePlanElement(cellRef, 'Y'));\n if (X.MeasureID != null) {\n item.MeasureUniqueId = X.MeasureID;\n } else if (Y.MeasureID != null) {\n item.MeasureUniqueId = Y.MeasureID;\n }\n }\n })\n let datadescriptions = Object.keys(retVal);\n for (let ds = 0; ds < datadescriptions.length; ds++) {\n let dsid = datadescriptions[ds];\n let measureIDS = Object.keys(retVal[dsid]);\n measureIDS.forEach((measure) => {\n let queryDef = null;\n this.ExecutionContext[dsid].QueryDefinitions.forEach((qd) => {\n let query = qd.Measures.find((value) => {\n return value.UniqueID == measure\n })\n if (query) {\n queryDef = qd;\n }\n })\n let saveObject = new PlanValues();\n saveObject.Values = retVal[dsid][measure];\n saveObject.Query = queryDef;\n this.planningService.SaveValues(saveObject).subscribe();\n })\n }\n }\n }\n CreatePlanElement(Reference, Axis) {\n let level = this.GetMatrixLevel(this.Matrices[Reference.DataDescriptionID][Axis + 'Axis'], Reference, Axis);\n\n let element = new PlanElement();\n element.ElementId = level.Key;\n element.UniqueId = level.UniqueID;\n return element;\n }\n private GetMatrixLevel(Matrix, Reference, Axis) {\n let retVal = null;\n\n if (Reference.MemberIndex != null) {\n let nodes = this.GetLevelNodes(Matrix.Nodes, Reference);\n retVal = nodes[Reference.MemberIndex];\n }\n\n if (Reference != null) {\n let area = this.GetActiveArea(Reference[Axis]);\n let levels = Object.keys(area.Levels);\n let items = Matrix.Nodes;\n for (let levelindex = 0; levelindex < levels.length; levelindex++) {\n let level = area.Levels[levels[levelindex]];\n if (level.MemberID == null) {\n break;\n }\n let res = items.find((value) => {\n return value.UniqueID == level.LevelID && value.MemberId == level.MemberID;\n });\n if (res) {\n retVal = res;\n }\n if (res.Children && res.Children.length > 0) {\n items = res.Children;\n } else {\n break;\n }\n }\n }\n return retVal;\n }\n private async GenerateColumnsAndRows() {\n const styleMerger = StyleMerger.GetStyleMerger(this.ExecutionContext['Styles']);\n\n await this.CreateDefaultGridStyles(styleMerger);\n await this.CreateCustomGridStyles(null, null);\n if (this.reportObject.LayoutElement.Sheets && this.reportObject.LayoutElement.Sheets.length > 0) {\n this.Cells = {};\n this.References = {};\n //#region Create Rows & Fill References/Cells\n for (let she = 0; she < this.reportObject.LayoutElement.Sheets.length; she++) {\n let sheet = this.reportObject.LayoutElement.Sheets[she];\n if (!sheet.TableSize) {\n this.reportObject.LayoutElement.TableSize = {\n Columns: 26,\n Rows: 100\n }\n }\n\n //#region Columns\n if (!this.ColumnsValue[sheet.Name]) {\n this.ColumnsValue[sheet.Name] = [];\n }\n const cols = [];\n cols.push({\n Caption: '',\n Name: 'fixedColumn',\n Data: 'fixedColumn',\n IsSortable: false,\n IsFilterable: false,\n IsCommaSeparated: false,\n OrderState: 'NONE',\n Width: {\n Value: 50,\n Type: UnitType.Pixel\n },\n SearchValue: null,\n IsVisible: true,\n IsSticky: true,\n Prefix: '',\n Suffix: '',\n NumericPrecision: 0,\n DateFormat: '',\n Expandable: false,\n StyleID: parseInt(styleMerger[\"DefaultHeaderStyle\"])\n });\n const chars = this.GenerateCharArray(sheet.TableSize.Columns);\n for (let i = 0; i < chars.length; i++) {\n const char = chars[i];\n cols.push({\n Caption: char,\n Name: char,\n Data: char,\n IsSortable: false,\n IsFilterable: false,\n IsCommaSeparated: false,\n OrderState: 'NONE',\n Width: {\n Value: 100,\n Type: UnitType.Pixel\n },\n SearchValue: null,\n IsVisible: true,\n IsSticky: false,\n Prefix: '',\n Suffix: '',\n NumericPrecision: 0,\n DateFormat: '',\n Expandable: false,\n StyleID: parseInt(styleMerger[\"DefaultHeaderStyle\"])\n });\n }\n this.ColumnsValue[sheet.Name] = cols;\n //#endregion\n //#region Rows\n if (!this.RowsValue[sheet.Name]) {\n this.RowsValue[sheet.Name] = [];\n } \n const rows = [];\n this.reportObject.LayoutElement.References.forEach((ref) => {\n this.References[ref.Name] = ref;\n });\n for (let i = 0; i < sheet.TableSize.Rows; i++) {\n let row = new Row();\n row.data = {};\n row['internal'] = {};\n row.index = i;\n const colDesc = {};\n cols.forEach((col) => {\n colDesc[col.Name] = {};\n })\n row.cols = colDesc;\n const styleDesc = {};\n cols.forEach((col) => {\n if (col.Name != 'fixedColumn') {\n styleDesc[col.Name] = styleMerger[\"DefaultCellStyle\"];\n } else {\n styleDesc[col.Name] = styleMerger[\"DefaultRowDescStyle\"];\n }\n })\n row.styles = styleDesc;\n cols.forEach((col) => {\n if (col.Name != 'fixedColumn') {\n if (this.reportObject.LayoutElement.CellDescriptions && this.reportObject.LayoutElement.CellDescriptions[sheet.Name] && this.reportObject.LayoutElement.CellDescriptions[sheet.Name][i] && this.reportObject.LayoutElement.CellDescriptions[sheet.Name][i][col.Name]) {\n let formula = this.reportObject.LayoutElement.CellDescriptions[sheet.Name][i][col.Name].ViewFormula;\n if (this.reportObject.LayoutElement.CellDescriptions[sheet.Name][i][col.Name].UseReference) {\n if (!this.References[sheet.Name]) {\n this.References[sheet.Name] = {};\n }\n this.References[sheet.Name][col.Name + (i + 1)] = this.reportObject.LayoutElement.CellDescriptions[sheet.Name][i][col.Name].Reference;\n if (!formula) {\n formula = col.Name + (i + 1);\n }\n }\n if (!this.Cells[sheet.Name]) {\n this.Cells[sheet.Name] = {};\n }\n this.Cells[sheet.Name][col.Name + (i + 1)] = {\n Formula: formula,\n Row: i,\n Column: col.Name\n };\n } else {\n row.data[col.Name] = '';\n row['internal'][col.Name] = null;\n }\n }\n });\n row.data['fixedColumn'] = i + 1;\n rows.push(row);\n }\n if (this.References && this.References[sheet.Name]) {\n let refKeys = Object.keys(this.References[sheet.Name]);\n let refcount = refKeys.length;\n for (let i = 0; i < refcount; i++) {\n let reference = this.References[sheet.Name][refKeys[i]];\n reference.Value = this.GetMatrixValue(reference, sheet.Name);\n }\n }\n await this.CreateCustomCellStyles(rows, cols);\n this.RowsValue[sheet.Name] = rows;\n //#endregion\n }\n //#endregion\n //#region Fill Row values\n for (let she = 0; she < this.reportObject.LayoutElement.Sheets.length; she++) {\n let sheet = this.reportObject.LayoutElement.Sheets[she];\n if (this.Cells && this.Cells[sheet.Name]) {\n Object.keys(this.Cells[sheet.Name]).forEach(async (key) => {\n let cell = this.Cells[sheet.Name][key];\n if (cell.Formula) {\n this.RowsValue[sheet.Name][cell.Row].data[cell.Column] = await this.GetFormulaValue(cell.Formula);\n }\n this.RowsValue[sheet.Name][cell.Row]['internal'][cell.Column] = this.RowsValue[sheet.Name][cell.Row].data[cell.Column];\n if (this.CustomContentStyle && this.CustomContentStyle.NumberFormat) {\n this.RowsValue[sheet.Name][cell.Row].data[cell.Column] = TaskHelper.GetFormatedValue(this.RowsValue[sheet.Name][cell.Row]['internal'][cell.Column], this.CustomContentStyle.NumberFormat);\n }\n })\n }\n }\n //#endregion\n }\n \n this.Columns.next(this.ColumnsValue);\n this.Data.next(this.RowsValue);\n\n let cellStyles = {};\n if (styleMerger) {\n cellStyles = styleMerger.GetStyleObject();\n }\n this.CellStyles.next(cellStyles);\n\n this.Loading.next(false);\n }\n\n CellCopy(value: CopySelection) {\n const cols = Object.keys(this.RowsValue[this.ActiveSheet.Name][0].cols);\n let ColumnIndex = cols.indexOf(value.StartCell.ColumnName);\n\n const Parser = new AdvancedFormulaParser();\n\n if (value.Selection.YStart == value.StartCell.RowIndex) {\n for (let row = value.Selection.YStart, rowindex = 0; row <= value.Selection.YEnd; row++, rowindex++) {\n if (row != value.StartCell.RowIndex) {\n this.UpdateDescription(cols, 'row', row, rowindex, Parser, value.StartCell);\n }\n let cell = {\n RowIndex: row,\n ColumnName: value.StartCell.ColumnName\n }\n if (value.Selection.XStart == ColumnIndex) {\n for (let col = value.Selection.XStart + 1, colindex = 1; col <= value.Selection.XEnd; col++, colindex++) {\n this.UpdateDescription(cols, 'column', col, colindex, Parser, cell);\n }\n }\n if (value.Selection.XEnd == ColumnIndex) {\n for (let col = value.Selection.XEnd - 1, colindex = -1; col >= value.Selection.XStart; col--, colindex--) {\n this.UpdateDescription(cols, 'column', col, colindex, Parser, cell);\n }\n }\n }\n } else if (value.Selection.YEnd == value.StartCell.RowIndex) {\n for (let row = value.Selection.YEnd, rowindex = 0; row >= value.Selection.YStart; row--, rowindex--) {\n if (row != value.StartCell.RowIndex) {\n this.UpdateDescription(cols, 'row', row, rowindex, Parser, value.StartCell);\n }\n let cell = {\n RowIndex: row,\n ColumnName: value.StartCell.ColumnName\n }\n if (value.Selection.XStart == ColumnIndex) {\n for (let col = value.Selection.XStart + 1, colindex = 1; col <= value.Selection.XEnd; col++, colindex++) {\n this.UpdateDescription(cols, 'column', col, colindex, Parser, cell);\n }\n }\n if (value.Selection.XEnd == ColumnIndex) {\n for (let col = value.Selection.XEnd - 1, colindex = -1; col >= value.Selection.XStart; col--, colindex--) {\n this.UpdateDescription(cols, 'column', col, colindex, Parser, cell);\n }\n }\n }\n }\n\n this.RefreshCalculations();\n }\n UpdateDescription(cols, type, index, value, Parser, start) {\n let CellDescriptions = this.reportObject.LayoutElement.CellDescriptions[this.ActiveSheet.Name];\n let StartCell = {};\n if (CellDescriptions[start.RowIndex] && CellDescriptions[start.RowIndex][start.ColumnName]) {\n StartCell = CellDescriptions[start.RowIndex][start.ColumnName];\n }\n let RowValue = 0;\n let ColumnName = '';\n if (type == 'column') {\n if (StartCell['Reference'] && StartCell['Reference'].XLevel) {\n RowValue = parseInt(StartCell['Reference'].XLevel.match(/\\d/g).join(''));\n ColumnName = StartCell['Reference'].XLevel.replace(/[0-9]/g, '');\n }\n let Description = JSON.parse(JSON.stringify(StartCell));\n \n if (Description.ViewFormula) {\n const formulaDescription = Parser.Parse(Description.ViewFormula);\n this.UpdateFormula(formulaDescription, cols, type, value);\n Description.ViewFormula = formulaDescription.ToString(null, VariableDisplay.NodeName);\n }\n if (Description.UseReference) {\n if (Description.Reference.UseLevel) {\n Description.Reference.MemberIndex += value;\n }\n if (Description.Reference.UseMeasure) {\n Description.Reference.XLevel = cols[cols.indexOf(ColumnName) + value] + RowValue;\n }\n this.References[this.ActiveSheet.Name][cols[index] + (start.RowIndex + 1)] = Description.Reference;\n } else {\n delete this.References[this.ActiveSheet.Name][cols[index] + (start.RowIndex + 1)];\n }\n\n CellDescriptions[start.RowIndex][cols[index]] = Description;\n this.Cells[this.ActiveSheet.Name][cols[index] + (start.RowIndex + 1)] = {\n Formula: Description.ViewFormula ? Description.ViewFormula : cols[index] + (start.RowIndex + 1),\n Row: start.RowIndex,\n Column: cols[index]\n };\n }\n if (type == 'row') {\n if (StartCell['Reference'] && StartCell['Reference'].YLevel) {\n RowValue = parseInt(StartCell['Reference'].YLevel.match(/\\d/g).join(''));\n ColumnName = StartCell['Reference'].YLevel.replace(/[0-9]/g, '');\n }\n if (!CellDescriptions[index]) {\n CellDescriptions[index] = {};\n }\n let Description = JSON.parse(JSON.stringify(StartCell));\n \n if (Description.ViewFormula) {\n const formulaDescription = Parser.Parse(Description.ViewFormula);\n this.UpdateFormula(formulaDescription, cols, type, value);\n Description.ViewFormula = formulaDescription.ToString(null, VariableDisplay.NodeName);\n }\n if (Description.UseReference) {\n if (Description.Reference.UseLevel) {\n Description.Reference.MemberIndex += value;\n }\n if (Description.Reference.UseMeasure) {\n Description.Reference.YLevel = ColumnName + (RowValue + value);\n }\n this.References[this.ActiveSheet.Name][start.ColumnName + (index + 1)] = Description.Reference;\n } else {\n delete this.References[this.ActiveSheet.Name][start.ColumnName + (index + 1)];\n }\n CellDescriptions[index][start.ColumnName] = Description;\n this.Cells[this.ActiveSheet.Name][start.ColumnName + (index+1)] = {\n Formula: Description.ViewFormula ? Description.ViewFormula : start.ColumnName + (index + 1),\n Row: index,\n Column: start.ColumnName\n };\n }\n }\n UpdateFormula(operand, cols, type, value) {\n let operandName = null;\n let sheet = null;\n let containsd = false;\n if (operand.Name) {\n containsd = operand.Name.indexOf('$') !== -1;\n let val = this.GetOperandAndSheet(operand);\n operandName = val.Operand;\n sheet = val.Sheet;\n }\n if (operand.VariableID != null) {\n if (this.References[sheet][operandName] || this.Cells[sheet][operandName]) {\n if (!containsd) {\n const RowValue = parseInt(operandName.match(/\\d/g).join(''));\n const ColumnName = operandName.replace(/[0-9]/g, '');\n if (type == 'column') {\n operand.Name = cols[cols.indexOf(ColumnName) + value] + RowValue;\n }\n if (type == 'row') {\n operand.Name = ColumnName + (RowValue + value);\n }\n if (sheet !== this.ActiveSheet.Name) {\n operand.Name = sheet + '.' + operand.Name;\n }\n operand.AliasKey = operand.Name;\n operand.SaveTag = operand.Name;\n operand.VariableID = operand.Name;\n }\n }\n }\n if (operand.Operands && operand.Operands.length > 0) {\n for (let i = 0; i < operand.Operands.length; i++) {\n this.UpdateFormula(operand.Operands[i], cols, type, value);\n }\n }\n }\n\n //#region Styles\n private GetBorder(thickness, colorR, colorG, colorB) {\n const retVal = new BorderSide();\n retVal.Thickness = new LayoutUnit();\n retVal.Thickness.Type = UnitType.Pixel;\n retVal.Thickness.Value = thickness;\n retVal.Color = new Gradient();\n const color = new GradientStopColor();\n color.Color = new Color();\n color.Color.R = colorR;\n color.Color.G = colorG;\n color.Color.B = colorB;\n retVal.Color.Colors.push(color);\n retVal.Color.Type = GradientType.Solid;\n return retVal;\n }\n private CreateDefaultGridStyles(styleMerger) {\n // Default Border\n const borderStyle = new CellStyle();\n borderStyle.Border = new Border();\n borderStyle.Border.RightBorder = this.GetBorder(1, 232, 232, 232);\n borderStyle.Border.BottomBorder = this.GetBorder(1, 232, 232, 232);\n styleMerger[\"DefaultCellStyle\"] = '' + styleMerger.MergeStyle(0, borderStyle);\n\n\n const headerStyle = new CellStyle();\n headerStyle.Border = new Border();\n headerStyle.Border.BottomBorder = this.GetBorder(2, 127, 127, 127);\n headerStyle.Border.TopBorder = this.GetBorder(2, 127, 127, 127);\n headerStyle.Border.RightBorder = this.GetBorder(2, 127, 127, 127);\n headerStyle.BackgroundColor = new Gradient();\n const color = new GradientStopColor();\n color.Color = new Color();\n color.Color.R = 170;\n color.Color.G = 170;\n color.Color.B = 170;\n headerStyle.BackgroundColor.Colors.push(color);\n headerStyle.BackgroundColor.Type = GradientType.Solid;\n\n styleMerger[\"DefaultHeaderStyle\"] = '' + styleMerger.MergeStyle(0, headerStyle);\n\n const rowsDescLeaveStyle = new CellStyle();\n rowsDescLeaveStyle.Border = new Border();\n rowsDescLeaveStyle.Border.BottomBorder = this.GetBorder(2, 127, 127, 127);\n rowsDescLeaveStyle.Border.LeftBorder = this.GetBorder(2, 127, 127, 127);\n rowsDescLeaveStyle.Border.RightBorder = this.GetBorder(2, 127, 127, 127);\n rowsDescLeaveStyle.BackgroundColor = new Gradient();\n const cellcolor = new GradientStopColor();\n cellcolor.Color = new Color();\n cellcolor.Color.R = 170;\n cellcolor.Color.G = 170;\n cellcolor.Color.B = 170;\n rowsDescLeaveStyle.BackgroundColor.Colors.push(cellcolor);\n rowsDescLeaveStyle.BackgroundColor.Type = GradientType.Solid;\n\n styleMerger[\"DefaultRowDescStyle\"] = '' + styleMerger.MergeStyle(0, rowsDescLeaveStyle);\n }\n private async CreateCustomGridStyles(Rows, Columns) {\n if (this.reportObject && this.reportObject.LayoutElement && this.reportObject.LayoutElement.FormatTasks) {\n for (let i = 0; i < this.reportObject.LayoutElement.FormatTasks.length; i++) {\n const task = this.reportObject.LayoutElement.FormatTasks[i];\n if (task && task.TaskType && task.IsActive === true &&\n (task.TaskType == PlanningContentFormattingTaskExecuter.TaskID ||\n task.TaskType == PlanningHeaderFormattingTaskExecuter.TaskID ||\n task.TaskType == PlanningRowDescFormattingTaskExecuter.TaskID)) {\n const desc = TaskRegistry.get(task.TaskType);\n if (desc && desc.Executer) {\n const executer: IPlanningTaskExecuter = new desc.Executer();\n await executer.Init(task, Rows, Columns, this.ExecutionContext['Styles']);\n await executer.Execute();\n }\n if (task.TaskType == PlanningContentFormattingTaskExecuter.TaskID) {\n this.CustomContentStyle = task.Style;\n }\n }\n }\n }\n }\n private async CreateCustomCellStyles(Rows: Row[], Columns: Column[]) {\n if (this.reportObject && this.reportObject.LayoutElement && this.reportObject.LayoutElement.Sheets && this.ActiveSheet && this.reportObject.LayoutElement.Sheets[this.ActiveSheet.Name] && this.reportObject.LayoutElement.Sheets[this.ActiveSheet.Name].FormatTasks) {\n for (let i = 0; i < this.reportObject.LayoutElement.FormatTasks.length; i++) {\n const task = this.reportObject.LayoutElement.FormatTasks[i];\n if (task && task.TaskType && task.IsActive === true && task.TaskType == PlanningCellFormattingTaskExecuter.TaskID) {\n const desc = TaskRegistry.get(task.TaskType);\n if (desc && desc.Executer) {\n const executer: IPlanningTaskExecuter = new desc.Executer();\n await executer.Init(task, Rows, Columns, this.ExecutionContext['Styles']);\n await executer.Execute();\n }\n }\n }\n }\n }\n //#endregion\n //#region Helper\n private GenerateCharArray(size) {\n const result = [];\n const aIndex = 'A'.charCodeAt(0);\n const zIndex = 'Z'.charCodeAt(0);\n const count = (zIndex - aIndex) + 1;\n for (let i = 0; i < size; ++i) {\n let t = 0;\n if (i < count) {\n t = 0;\n } else if (i > 0) {\n t = Math.floor(i / count);\n }\n let retVal = '';\n if (t > 0) {\n retVal += String.fromCharCode(aIndex + (t-1));\n }\n let index = aIndex + (i - (count * t));\n retVal += String.fromCharCode(index);\n result.push(retVal);\n }\n return result;\n }\n //#endregion\n //#region DataHandling\n private GetMatrixValue(Variable, Sheet) {\n let retVal = null;\n if (Variable.DataDescriptionID && this.Matrices[Variable.DataDescriptionID]) {\n if (Variable.UseLevel || Variable.UseMeasure) {\n retVal = this.GetReferenceValue(Variable, Sheet);\n } else {\n let xArea = this.GetActiveArea(Variable.X);\n let x = this.GetPosition(this.Matrices[Variable.DataDescriptionID].XAxis, Variable.X, xArea.Index);\n let yArea = this.GetActiveArea(Variable.Y);\n let y = this.GetPosition(this.Matrices[Variable.DataDescriptionID].YAxis, Variable.Y, yArea.Index);\n let measureID = 0;\n if (xArea.MeasureID != null) {\n measureID = xArea.MeasureID;\n }\n if (yArea.MeasureID != null) {\n measureID = yArea.MeasureID;\n }\n let m = this.GetMeasurePosition(this.Matrices[Variable.DataDescriptionID].Measures, measureID);\n\n if (x != null && y != null && m != null) {\n let cell = this.Matrices[Variable.DataDescriptionID].Cells[x][y][m];\n retVal = ValueAndType.GetValueAndTypeFromJSObject(cell.InternalValue);\n }\n }\n }\n return retVal;\n }\n private GetActiveArea(Axis) {\n let retVal = null;\n let areas = Object.keys(Axis);\n for (let areaindex = 0; areaindex < areas.length; areaindex++) {\n let area = Axis[areas[areaindex]];\n if (area.Selected) {\n area.Index = areas[areaindex];\n retVal = area;\n }\n }\n return retVal;\n }\n private GetPosition(Matrix, Axis, Area) {\n let retVal = null;\n if (Area != null) {\n let area = Axis[Area];\n let levels = Object.keys(area.Levels);\n let items = Matrix.Nodes;\n for (let levelindex = 0; levelindex < levels.length; levelindex++) {\n let level = area.Levels[levels[levelindex]];\n if (level.MemberID == null) {\n break;\n }\n let res = items.find((value) => {\n return value.UniqueID == level.LevelID && value.MemberId == level.MemberID;\n });\n if (res) {\n retVal = res.Position;\n }\n if (res.Children && res.Children.length > 0) {\n items = res.Children;\n } else {\n break;\n }\n }\n }\n return retVal;\n }\n private GetMeasurePosition(Matrix, MeasureID) {\n let retVal = null;\n let res = Matrix.Nodes.find((value) => {\n return value.UniqueID == MeasureID;\n });\n if (res) {\n retVal = res.Position;\n }\n return retVal;\n }\n private GetFormulaValue(formula) {\n let retVal = '';\n if (formula) {\n const Parser = new AdvancedFormulaParser();\n const formulaDescription = Parser.Parse(formula);\n let Values = new Map();\n let Variables = [];\n \n this.FillVariablesAndValues(formulaDescription, Values, Variables);\n\n let circular = false;\n for (let [k, v] of Values) {\n if (v != null && v.Value == '!CircularDependency!') {\n circular = true;\n }\n }\n if (circular) {\n retVal = '!CircularDependecy!';\n } else {\n let Calculator = new ValueFormulaNodeCalculator(false, Variables ? Variables : [], Values);\n try {\n const res = Calculator.Calc(formulaDescription);\n if (res != null) {\n retVal = res.Value;\n }\n } catch {\n retVal = '!CalculationError!'\n }\n }\n }\n return retVal;\n }\n private GetReferenceValue(reference, Sheet) {\n let retVal = null;\n if (reference.UseLevel) {\n if (reference.Axis == 'X') {\n let nodes = this.GetLevelNodes(this.Matrices[reference.DataDescriptionID].XAxis.Nodes, reference);\n if (nodes && nodes.length > reference.MemberIndex && reference.MemberIndex >= 0) {\n retVal = ValueAndType.GetValueAndTypeFromJSObject(nodes[reference.MemberIndex].Caption);\n }\n }\n if (reference.Axis == 'Y') {\n let nodes = this.GetLevelNodes(this.Matrices[reference.DataDescriptionID].YAxis.Nodes, reference);\n if (nodes && nodes.length > reference.MemberIndex && reference.MemberIndex >= 0) {\n retVal = ValueAndType.GetValueAndTypeFromJSObject(nodes[reference.MemberIndex].Caption);\n }\n }\n }\n if (reference.UseMeasure) {\n let x = null;\n if (reference.XLevel && this.References[Sheet][reference.XLevel]) {\n let ref = this.References[Sheet][reference.XLevel];\n if (ref) {\n let ds = this.ExecutionContext[reference.DataDescriptionID].BaseReportObject.DataDescriptionsValue[ref.DataDescriptionID];\n if (ds) {\n let nodes = this.GetLevelNodes(this.Matrices[ref.DataDescriptionID].XAxis.Nodes, ref);\n\n if (nodes && nodes.length > ref.MemberIndex) {\n x = nodes[ref.MemberIndex].Position;\n }\n }\n }\n }\n let y = null;\n if (reference.YLevel && this.References[Sheet][reference.YLevel]) {\n let ref = this.References[Sheet][reference.YLevel];\n if (ref) {\n let ds = this.ExecutionContext[reference.DataDescriptionID].BaseReportObject.DataDescriptionsValue[ref.DataDescriptionID];\n if (ds) {\n let nodes = this.GetLevelNodes(this.Matrices[ref.DataDescriptionID].YAxis.Nodes, ref);\n if (nodes && nodes.length > ref.MemberIndex) {\n y = nodes[ref.MemberIndex].Position;\n }\n }\n }\n }\n if (x != null && y != null) {\n let node = this.Matrices[reference.DataDescriptionID].Measures.Nodes.find((value) => {\n return value.UniqueID == reference.Measure;\n });\n if (node) {\n let m = node.Position;\n\n let cell = this.Matrices[reference.DataDescriptionID].Cells[x][y][m];\n retVal = ValueAndType.GetValueAndTypeFromJSObject(cell?cell.InternalValue:'');\n reference.Value = retVal;\n }\n }\n }\n return retVal;\n }\n private GetLevelNodes(Nodes, reference) {\n let retVal = [];\n for (let i = 0; i < Nodes.length; i++) {\n let node = Nodes[i];\n if (node.UniqueID == reference.Level) {\n retVal.push(node);\n }\n if (node.Children && node.Children.length > 0) {\n retVal.push(...this.GetLevelNodes(node.Children, reference));\n }\n }\n return retVal;\n }\n private FillVariablesAndValues(operand, Values, Variables) {\n let retVal = {\n Variable: null,\n Value: null\n }\n let val = this.GetOperandAndSheet(operand);\n let operandName = val.Operand;\n let sheet = val.Sheet;\n if (operand.VariableID != null) {\n if (this.References[sheet][operandName]) {\n retVal.Value = this.References[sheet][operandName].Value;\n } else if (this.Cells[sheet][operandName]) {\n if (!this.Cells[sheet][operandName].Calculated) {\n if (!this.CheckCircular(operand, this.Cells[sheet][operandName].Formula,null)) {\n this.Cells[sheet][operandName].Value = this.GetFormulaValue(this.Cells[sheet][operandName].Formula);\n this.Cells[sheet][operandName].Calculated = true;\n } else {\n this.Cells[sheet][operandName].Value = '!CircularDependency!';\n this.Cells[sheet][operandName].Calculated = true;\n }\n }\n retVal.Value = ValueAndType.GetValueAndTypeFromJSObject(this.Cells[sheet][operandName].Value);\n }\n retVal.Variable = operandName;\n Values.set(operand.Name, retVal.Value);\n Variables.push(retVal.Variable);\n }\n if (operand.Operands && operand.Operands.length > 0) {\n for (let i = 0; i < operand.Operands.length; i++) {\n this.FillVariablesAndValues(operand.Operands[i], Values, Variables);\n }\n }\n }\n GetOperandAndSheet(operand) {\n let retVal = {\n Operand: null,\n Sheet: null\n };\n\n let operandName = null;\n if (operand.Name) {\n operandName = operand.Name.replace('$', '');\n }\n let sheet = this.ActiveSheet.Name;\n if (operandName && operandName.indexOf('.') > -1) {\n let name = operandName.substring(0, operand.Name.indexOf('.'));\n if (this.Cells[name]) {\n sheet = name;\n operandName = operandName.substring(operand.Name.indexOf('.') + 1);\n }\n }\n\n retVal.Operand = operandName;\n retVal.Sheet = sheet;\n\n return retVal;\n }\n private CheckCircular(operand, formula, operands) {\n let retVal = false;\n let val = this.GetOperandAndSheet(operand);\n let operandName = val.Operand;\n let sheet = val.Sheet;\n if (formula) {\n const Parser = new AdvancedFormulaParser();\n const formulaDescription = Parser.Parse(formula);\n if (formulaDescription.Operands && formulaDescription.Operands.length > 0) {\n for (let i = 0; i < formulaDescription.Operands.length; i++) {\n let op = formulaDescription.Operands[i];\n if (op.Name) {\n let opName = op.Name.replace('$', '');\n if (opName != null && operandName != null && operandName == opName) {\n return true;\n }\n if (opName && this.Cells[sheet][opName]) {\n retVal = this.CheckCircular(operand, this.Cells[sheet][opName].Formula, null);\n }\n }\n if (op.Operands.length > 0) {\n retVal = this.CheckCircular(operand, null, op.Operands);\n }\n }\n }\n }\n if (operands) {\n for (let i = 0; i < operands.Operands.length; i++) {\n let op = operands.Operands[i];\n if (op.Name) {\n let opName = op.Name.replace('$', '');\n if (opName != null && operandName != null && operandName == opName) {\n return true;\n }\n if (opName && this.Cells[sheet][opName]) {\n retVal = this.CheckCircular(operand, this.Cells[sheet][opName].Formula, null);\n }\n }\n if (op.Operands.length > 0) {\n retVal = this.CheckCircular(operand, null, op.Operands);\n }\n }\n }\n return retVal;;\n }\n //#endregion\n}","import { HttpClient } from '@angular/common/http';\nimport { InjectorHelper } from '../../helpers/injector.helper';\nimport { RelQueryHelper } from '../../helpers/relquery.helper';\nimport { ReportingService } from '../../services/reporting.service';\nimport { Column } from '../basic/column.model';\nimport { LayoutUnit } from '../basic/layoutunit.model';\nimport { Row } from '../basic/row.model';\nimport { VisibilityType } from '../enums/oc.enum';\nimport { PagingType } from '../enums/pagingtype.enum';\nimport { UnitType } from '../enums/unittype.enum';\nimport { ReportTableSettings } from '../reportobjects/reporttablesettings.model';\nimport { Border } from '../style/border.model';\nimport { Gradient } from '../style/gradient.model';\nimport { CellStyle } from '../styling/cell.style';\nimport { StyleMerger } from '../styling/styleMerger';\nimport { TranslatedString } from '../translatedstring.model';\nimport { TableDataSource } from './chart.datasource';\n\nexport class RelationalTableDataSource extends TableDataSource {\n\n public UseCaching;\n public PagingType: PagingType = PagingType.Scroll;\n private DataService: ReportingService;\n\n constructor(protected reportObject) {\n super(reportObject);\n const http = InjectorHelper.InjectorInstance.get(HttpClient);\n this.DataService = new ReportingService(http);\n }\n\n public Refresh() {\n this.fetchedPages = new Set();\n this.Initialized.next(true);\n this.Loading.next(true);\n if (this.reportObject.LayoutElement.TableSettings == null) {\n this.reportObject.LayoutElement.TableSettings = new ReportTableSettings();\n }\n const tableSettings: ReportTableSettings = this.reportObject.LayoutElement.TableSettings;\n const dd = this.reportObject.DataDescription;\n const query = RelQueryHelper.GenerateQuery(dd, this.reportObject);\n this.DataService.ExecuteQuery(query).subscribe((result) => {\n const columns = [];\n const hiddenCols = {};\n if (dd && dd.Fields && dd.Fields.length > 0) {\n dd.Fields.forEach((field) => {\n if (typeof field.VisibilityType === 'number') {\n switch (field.VisibilityType) {\n case VisibilityType.NonVisibleDefault:\n case VisibilityType.NonVisibleForce:\n return;\n }\n }\n const width = new LayoutUnit();\n width.Type = UnitType.Percent;\n let caption = TranslatedString.GetTranslation(field.TranslatedCaption);\n if (!caption) {\n caption = field.Caption\n };\n columns.push({\n Caption: caption,\n Name: field.ID,\n Width: width\n });\n hiddenCols[field.ID] = true;\n });\n }\n const rows = [];\n if (result) {\n this.FilteredCount = result.length;\n if (result) {\n let tabIndex = 0;\n result.forEach((item, i) => {\n const cols = {};\n columns.forEach((column) => {\n cols[column.Name] = {\n selected: false,\n edit: false,\n tabindex: tabIndex++,\n editable: false\n };\n if (item) {\n const val = item[column.Name];\n if (val != null && val !== '') {\n delete hiddenCols[column.Name];\n }\n }\n });\n const row = new Row();\n row.data = item;\n row.cols = cols;\n row.index = i;\n if (tableSettings.UseAlternatingColors) {\n row.rowStyle = Gradient.getStyleObject(i % 2 == 0 ? tableSettings.FirstAlternatingColor : tableSettings.SecondAlternatingColor);\n }\n rows.push(row);\n });\n }\n }\n if (tableSettings.HideEmptyRowsAndColumns) {\n for (let i = columns.length - 1; i >= 0; i--) {\n if (hiddenCols[columns[i].Name] === true) {\n columns.splice(i, 1);\n }\n }\n }\n let fixedColCount = 0;\n if (tableSettings.FixColumns) {\n fixedColCount = tableSettings.FixColumnsValue;\n }\n if (tableSettings.FixColumnWidth) {\n columns.forEach((col,i) => {\n col.Width.Type = UnitType.Pixel;\n col.Width.Value = tableSettings.FixColumnWidthValue;\n col.IsSticky = i < fixedColCount;\n });\n } else {\n const widthVal = 100 / columns.length;\n columns.forEach((col,i) => {\n col.Width.Value = widthVal;\n col.IsSticky = i < fixedColCount;\n });\n }\n this.FormatResult(columns, rows).then(cellStyles => {\n let fixedRows = null;\n if (tableSettings.FixRows && tableSettings.FixRowsValue > 0) {\n fixedRows = rows.splice(0, tableSettings.FixRowsValue);\n }\n this.PagedData.next(rows);\n this.cachedData = rows;\n this.dataStream.next(this.cachedData);\n this.FixedRows.next(fixedRows);\n this.Columns.next(columns);\n this.CellStyles.next(cellStyles);\n this.Loading.next(false);\n });\n });\n }\n\n private async FormatResult(columns: Column[], rows: Row[]) {\n const styleMerger = new StyleMerger();\n\n const styleMatrix = {};\n\n // Default Border\n if (this.reportObject && this.reportObject.LayoutElement) {\n const tableSettings = this.reportObject.LayoutElement.TableSettings;\n if (tableSettings && tableSettings.ShowLines === true) {\n const borderStyle = new CellStyle();\n borderStyle.Border = new Border();\n borderStyle.Border.RightBorder = StyleMerger.GetBorder(1, 232, 232, 232);\n borderStyle.Border.BottomBorder = StyleMerger.GetBorder(1, 232, 232, 232);\n\n const defaultCellStyle = styleMerger.MergeStyle(0, borderStyle);\n\n for (let i = 0; i < rows.length; i++) {\n const styles = {};\n columns.forEach(col => {\n styles[col.Name] = defaultCellStyle;\n });\n styleMatrix[i] = styles;\n }\n }\n }\n\n const headerLeaveStyle = new CellStyle();\n headerLeaveStyle.Border = new Border();\n headerLeaveStyle.Border.BottomBorder = StyleMerger.GetBorder(2, 127, 127, 127);\n const styleID = styleMerger.MergeStyle(0, headerLeaveStyle);\n columns.forEach(col => {\n col['StyleID'] = styleID;\n });\n\n rows.forEach((row, i) => {\n const styles = styleMatrix[i];\n if (styles) {\n Object.keys(styles).forEach(k => {\n styles[k] = '' + styles[k];\n });\n row.styles = styles;\n }\n });\n\n return styleMerger.GetStyleObject();\n }\n\n GetSelectedCoordinatesFromRowSelection(selection: import(\"../basic/selection.model\").RowSelection[]): any[] {\n throw new Error('Method not implemented.');\n }\n GetSelectedCoordinatesFromCellSelection(selection: import(\"../basic/selection.model\").CellSelection[]): any[] {\n throw new Error('Method not implemented.');\n }\n}\n","export enum DimensionType {\n Unknown = 0,\n Time = 1,\n Measure = 2,\n Other = 3,\n No_Aggr = 4,\n Quantitative = 5,\n Accounts = 6,\n Customers = 7,\n Products = 8,\n Scenario = 9,\n Utility = 10,\n Currency = 11,\n Rates = 12,\n Channel = 13,\n Promotion = 14,\n Organization = 15,\n BillOfMaterials = 16,\n Geography = 17\n}\n\nexport enum LevelType {\n Regular = 0,\n All = 1,\n Calculated = 2,\n Time = 4,\n Reserved1 = 8,\n TimeYears = 20,\n TimeHalfYears = 36,\n TimeQuarters = 68,\n TimeMonths = 132,\n TimeWeeks = 260,\n TimeDays = 516,\n TimeHours = 772,\n TimeMinutes = 1028,\n TimeSeconds = 2052,\n TimeUndefined = 4100,\n OrgUnit = 4113,\n BomResource = 4114,\n Quantitative = 4115,\n Account = 4116,\n Scenario = 4117,\n Utility = 4118,\n Customer = 4129,\n CustomerGroup = 4130,\n CustomerHousehold = 4131,\n Product = 4145,\n ProductGroup = 4146,\n Person = 4161,\n Company = 4162,\n CurrencySource = 4177,\n CurrencyDestination = 4178,\n Channel = 4193,\n Representative = 4194,\n Promotion = 4209,\n GeoContinent = 8193,\n GeoRegion = 8194,\n GeoCountry = 8195,\n GeoStateOrProvince = 8196,\n GeoCounty = 8197,\n GeoCity = 8198,\n GeoPostalCode = 8199,\n GeoPoint = 8200\n}\n\nexport enum Aggregation {\n None = 0,\n Sum = 1,\n Max = 2,\n Min = 3,\n Avg = 4,\n Count = 5,\n NotSet = 6,\n DistinctCount = 7\n}\n\nexport enum MeasureType {\n Double,\n Long,\n DateTime,\n String\n}\n\nexport enum FtpEncryptionMode {\n None,\n Implicit,\n Explicit,\n Auto\n}\n\nexport enum FtpDataConnectionType {\n //\n // Summary:\n // This type of data connection attempts to use the EPSV command and if the server\n // does not support EPSV it falls back to the PASV command before giving up unless\n // you are connected via IPv6 in which case the PASV command is not supported.\n AutoPassive = 0,\n //\n // Summary:\n // Passive data connection. EPSV is a better option if it's supported. Passive connections\n // connect to the IP address dictated by the server which may or may not be accessible\n // by the client for example a server behind a NAT device may give an IP address\n // on its local network that is inaccessible to the client. Please note that IPv6\n // does not support this type data connection. If you ask for PASV and are connected\n // via IPv6 EPSV will automatically be used in its place.\n PASV = 1,\n //\n // Summary:\n // Same as PASV except the host supplied by the server is ignored and the data connection\n // is made to the same address that the control connection is connected to. This\n // is useful in scenarios where the server supplies a private/non-routable network\n // address in the PASV response. It's functionally identical to EPSV except some\n // servers may not implement the EPSV command. Please note that IPv6 does not support\n // this type data connection. If you ask for PASV and are connected via IPv6 EPSV\n // will automatically be used in its place.\n PASVEX = 2,\n //\n // Summary:\n // Extended passive data connection, recommended. Works the same as a PASV connection\n // except the server does not dictate an IP address to connect to, instead the passive\n // connection goes to the same address used in the control connection. This type\n // of data connection supports IPv4 and IPv6.\n EPSV = 3,\n //\n // Summary:\n // This type of data connection attempts to use the EPRT command and if the server\n // does not support EPRT it falls back to the PORT command before giving up unless\n // you are connected via IPv6 in which case the PORT command is not supported.\n AutoActive = 4,\n //\n // Summary:\n // Active data connection, not recommended unless you have a specific reason for\n // using this type. Creates a listening socket on the client which requires firewall\n // exceptions on the client system as well as client network when connecting to\n // a server outside of the client's network. In addition the IP address of the interface\n // used to connect to the server is the address the server is told to connect to\n // which, if behind a NAT device, may be inaccessible to the server. This type of\n // data connection is not supported by IPv6. If you specify PORT and are connected\n // via IPv6 EPRT will automatically be used instead.\n PORT = 5,\n //\n // Summary:\n // Extended active data connection, not recommended unless you have a specific reason\n // for using this type. Creates a listening socket on the client which requires\n // firewall exceptions on the client as well as client network when connecting to\n // a server outside of the client's network. The server connects to the IP address\n // it sees the client coming from. This type of data connection supports IPv4 and\n // IPv6.\n EPRT = 6\n}","export enum ActionSize {\n Small,\n Medium,\n Large\n}\n","export enum Alignment {\n Start,\n Center,\n End,\n Stretch\n}\nexport enum FlexItemAlignment {\n 'flex-start',\n 'flex-end',\n center,\n baseline,\n stretch,\n inherit,\n initial,\n unset\n}\nexport enum FlexContentAlignment {\n 'flex-start',\n 'flex-end',\n center,\n 'space-between',\n 'space-around',\n stretch,\n inherit,\n initial,\n unset\n}","export enum AnimationMode {\n slide,\n fade\n}","export enum AxisTextPosition {\n out,\n in,\n none\n}","export enum BackgroundSize {\n auto,\n contain,\n cover,\n inherit,\n initial,\n unset\n}\n\nexport enum BackgroundPosition {\n bottom,\n center,\n left,\n right,\n top,\n inherit,\n initial,\n unset\n}\n\nexport enum BackgroundRepeat {\n 'no-repeat',\n repeat,\n 'repeat-x',\n 'repeat-y',\n round,\n space,\n inherit,\n initial,\n unset\n}\n","export enum BinaryOperation {\n And,\n Or,\n None\n}","export enum BodyType {\n SelfDefined,\n Status,\n ActualParameter\n}\n","export enum BorderStyle {\n Solid,\n Dashed,\n Dotted,\n Double\n}\n","export enum CalendarView {\n dayGridMonth,\n dayGridWeek,\n timeGridWeek,\n timeGridDay,\n listWeek\n}\n","export enum CCOType {\n None,\n Save,\n Delete\n}\n","export enum ChartAnimationEasing {\n linear,\n in,\n out,\n inAndOut\n}","export enum ChartComponent {\n None,\n Google,\n Apex,\n PrimeNG,\n Sunburst\n}\n","export enum ChartCurveType {\n none,\n function\n}\n\nexport enum ChartStackType {\n false,\n true,\n percent,\n relative,\n absolute\n}\n\nexport enum ChartTrendlineType {\n linear,\n exponential,\n polynomial\n}\n\nexport enum ChartPieSliceText {\n none,\n label,\n value,\n percentage\n}\n\nexport enum ChartGeoResolution {\n countries,\n provinces,\n metros\n}\n","export enum ChartLegendAlignment {\n start,\n center,\n end\n}","export enum ChartLegendPosition {\n bottom,\n left,\n in,\n none,\n right,\n top\n}","export enum ChartToolTipTrigger {\n focus,\n none,\n selection\n}","export enum ChartType {\n AnnotationChart,//0\n AreaChart,//1\n BarChart,//2\n Bar,//3\n BubbleChart,//4\n ColumnChart,//5\n ComboChart,//6\n CandlestickChart,//7\n DonutChart,//8\n GeoChart,//9\n Histogram,//10\n LineChart,//11\n Line,//12\n Map,//13\n PieChart,//14\n ScatterChart,//15\n SteppedAreaChart,//16\n //Trendline,//17\n //WaterfallChart,//18\n WordTree,//17\n OrgChart,//18\n Gauge,//19\n radar,//20\n polarArea,//21\n TreeMap,//22\n Gantt,//23\n Calendar,//24\n Timeline,//25\n Interval,//26\n radialBar,//27\n heatmap,//28\n Sunburst//29\n}","export enum Comparer {\n Equal,\n NotEqual,\n Between,\n NotBetween,\n Greater,\n Smaller,\n GreaterEqual,\n SmallerEqual,\n Like,\n In,\n NotIn,\n SizeEqual,\n SizeGreater,\n SizeGreaterEqual,\n SizeSmaller,\n SizeSmallerEqual,\n NotLike\n}\n","export enum CompareType {\n Greater,\n Smaller,\n Equal,\n GreaterEqual,\n SmallerEqual,\n None,\n NotEqual\n}\n","export enum ComponentCategory {\n Text,\n Button,\n Data,\n Media,\n ExternalContent,\n Layout,\n Other\n}","export enum ConditionDataType {\n Bool,\n Text,\n Numeric,\n Date\n}\n","export enum ConditionOperator {\n Equal = 1,\n NonEqual = 2,\n Between = 3,\n NotBetween = 4,\n Less = 5,\n Greater = 6,\n GreatorOrEqual = 7,\n LessOrEqual = 8,\n IsNull = 9,\n NotNull = 10\n}","export enum ConnectionStatusEnum {\n Online,\n Offline\n}\n","export enum Concat {\n And,\n Or\n}\n","export enum ContentType {\n Grid,\n Raster,\n Flex,\n Canvas,\n Bootstrapgrid\n}\n","export enum ControlStyle {\n Material,\n Bootstrap\n}\n","export enum CSSVarType {\n Color,\n Font,\n FontSize\n}\n","export enum CustomRestEndpointType {\n Save,\n ForceSave,\n Delete,\n ForceDelete,\n DeleteByFilter,\n SearchObjects,\n CountObjects,\n OpenCachedQuery,\n CloseCachedQuery,\n ExecuteCachedCountQuery,\n ExecuteCachedQuery,\n ExecuteCount,\n ExecuteQuery,\n ExecuteObjectQuery\n}","export enum DialogButton {\n Ok = 0,\n Cancel = 1,\n OkCancel = 2,\n None = 3\n}\n","export enum DialogResult {\n None = 0,\n Ok = 1,\n Cancel = 2\n}","export enum DialogType {\n MessageBox,\n Content,\n Template\n}\n","export enum DropState {\n None,\n Before,\n Inner,\n After\n}","import { TranslatedString } from '../translatedstring.model';\n\nexport class EnumValue {\n private EnumServiceValue;\n\n get Value() {\n if (this.EnumServiceValue) {\n return this.EnumServiceValue.Value;\n }\n return null;\n }\n\n get Caption() {\n if (this.EnumServiceValue) {\n if (this.EnumServiceValue.Translation) {\n return TranslatedString.GetTranslation(this.EnumServiceValue.Translation);\n }\n if (this.EnumServiceValue.Name) {\n return this.EnumServiceValue.Name;\n }\n return this.EnumServiceValue.Caption;\n }\n return null;\n }\n\n constructor(enumServiceValue) {\n this.EnumServiceValue = enumServiceValue;\n }\n}\n","export enum QRErrorCorrectionLevel {\n L,\n M,\n Q,\n H\n}","export enum EventActionType {\n Workflow,\n Variable\n}\n","export enum ExpandState {\n None,\n Overlay,\n Expanded\n}\n","export enum FileMode {\n Shared = 0,\n Exclusive = 1,\n ReadOnly = 2\n}","export enum FormulaGroupEnum {\n None = 0x00,\n BasicOperations = 0x01,\n Functions = 0x02,\n Comparisons = 0x04,\n Binary = 0x08,\n All = BasicOperations | Functions | Comparisons | Binary\n}\n","export enum FormulaInputMode {\n AliasKey,\n VariableName\n}","export enum FormulaNodeType {\n Value,\n Operation,\n Variable,\n Placeholder,\n None,\n TextValue,\n DateValue,\n BoolValue,\n SystemVariable\n}\n","export enum GitFileStatus {\n ' ',\n 'M',\n 'D',\n '?',\n}\n","export enum GradientType {\n None,\n Solid,\n Gradient,\n Picture\n}\n","export enum GuidRepresentation {\n Unspecified,\n Standard,\n CSharpLegacy,\n JavaLegacy,\n PythonLegacy\n}","export enum IndexType {\n First,\n Last,\n Custom\n}\n","export enum KeyFilter {\n pint,\n int,\n pnum,\n money,\n num,\n hex,\n email,\n alpha,\n alhpanum,\n regex\n}","export enum LanguageMenuText {\n None,\n ShortName,\n LongName,\n Both,\n Translation\n}\n\n","export enum LayoutChangeType {\n PropertyChange,\n PositionChange,\n ElementAdded,\n ElementRemoved,\n MultiPropertyChange,\n WorkflowChange,\n WorkflowAdded,\n WorkflowRemoved,\n ResolutionAdded,\n ResolutionRemoved,\n MultiPositionChange,\n}\n","export enum LayoutPosition {\n absolute,\n fixed,\n inherit,\n initial,\n relative,\n revert,\n static,\n sticky,\n unset\n}","export enum LineType {\n None,\n Comment,\n Let,\n Set,\n If,\n ElseIf,\n While,\n Switch,\n Case,\n Break,\n Continute,\n For,\n Try,\n Catch,\n Finally,\n Return,\n Throw,\n Other\n}","export enum LoginError {\n None,\n Password,\n Authorization,\n Disabled,\n MFA,\n ParentDisabled\n}","export enum LogLevel {\n None = 0,\n Critical = 1,\n Error = 2,\n Warning = 3,\n Information = 4,\n Debug = 5,\n Trace = 6\n}\n","export enum LogStatus {\n None,\n Error,\n Info,\n Warning\n}","export enum MailAuthType {\n Basic,\n OAuth\n}\n","export enum MailProvider {\n Exchange\n}\n\n","export enum MenuTabPosition {\n Left,\n Right,\n Navi\n}","export enum MessageBoxButtons {\n None = 0,\n Ok = 1,\n OkCancel = 2,\n YesNo = 3,\n YesNoAbort = 4\n}","export enum MessageBoxIcon {\n None = 0,\n Information = 1,\n Warning = 2,\n Question = 3,\n Error = 4,\n}","export enum MessageBoxResult {\n None = 0,\n Ok = 1,\n Cancel = 2,\n Abort = 3,\n Yes = 4,\n No = 5\n}","export enum MessageType {\n Success,\n Warning,\n Error,\n Information,\n}","export enum MethodType {\n None = 0,\n Get = 1,\n Put = 2,\n Post = 4,\n Delete = 8,\n Options = 16\n}\n","export enum MFATypes {\n App,\n SMS,\n Email\n}\n","export enum MongoAuthMechanism {\n \"SHA1\",\n \"SHA256\"\n}","export enum MongoDBConnectionType {\n Single,\n Cluster\n}\n","export enum monitoringChartFunctions {\n CountByType,\n CountByDay,\n CountByHour,\n CountByLevel,\n CountWorkflowByUser,\n CountWorkflowByType,\n CountWorkflowSuccessful,\n CountByDayWorkflow\n}\n","export enum MySqlSslMode {\n None = 0,\n Preferred = 1,\n Required = 2,\n VerifyCA = 3,\n VerifyFull = 4\n}","export enum NotificationLevel\n{\n System,\n Critical,\n Error,\n Warning,\n Information\n}","export enum ObjectFit {\n none,\n fill,\n contain,\n cover,\n 'scale-down'\n}\n","export enum OcDragItemType {\n Fields,\n Level,\n Measure,\n LevelAndMeasure\n}\n","export enum VisibilityType\n{\n None,\n VisibleDefault,\n NonVisibleDefault,\n VisibleForce,\n NonVisibleForce\n}","export enum OfflineStrategy {\n NetworkFirst,\n NetworkOnly,\n CacheFirst,\n CacheOnly\n}","export enum OperationType {\n Addition,\n Multiplication,\n Division,\n Function,\n Compare,\n Binary,\n Subtraktion,\n None\n}","export enum Operator {\n None,\n Add,\n Sub,\n Div,\n Multi,\n Equal,\n Less,\n Great,\n LessEqual,\n GreatEqual,\n NotEqual,\n Or,\n And,\n Not,\n New,\n NewArray,\n NewDynamic,\n Function,\n Value,\n Void,\n Get,\n Enumerator,\n ArrayAccess,\n VariableProperty,\n If,\n InlineFunction,\n Increase,\n Decrease,\n IncreaseBefore,\n DecreaseBefore,\n IncreaseAfter,\n DecreaseAfter,\n Set,\n TypeOf,\n Chain,\n}","export enum Order {\n ASC,\n DESC\n}\n","export enum Orientation {\n Horizontal,\n Vertical,\n HorizontalWrapping,\n VerticalWrapping,\n HorizontalReverse,\n VerticalReverse,\n HorizontalReverseWrapping,\n VerticalReverseWrapping\n}\n","export enum OutputPageType {\n Single,\n Multi\n}\n","export enum Overflow {\n visible,\n hidden,\n scroll,\n auto,\n inherit\n}","export enum Page {\n All,\n App,\n Ribbon,\n Layout,\n Print,\n None\n}","export enum PagingType {\n Scroll,\n Pager,\n Endless\n}\n","export enum PickerMode {\n popup,\n dialog\n}","export enum StartView {\n month,\n year,\n \"multi-years\"\n}","export enum PickerType {\n both,\n calendar,\n timer\n}\n","export enum PlanType {\n Equal,\n Percent,\n Increment\n}","export enum PointShape {\n circle,\n triangle,\n square,\n diamond,\n star,\n polygon\n}","export enum PrimeFlexSizes {\n sm,\n md,\n lg,\n xl\n}","export enum PropertyGroupDisplay {\n Grid,\n Flex\n}","export enum ProviderChoice {\n Control,\n Formula,\n Fixed\n}\n","export enum QueryType {\n Auto,\n Normal,\n SubSelect,\n SubCube\n}\n\nexport enum CellType {\n Double = 0x01,\n Long = 0x02,\n String = 0x04,\n DateTime = 0x08,\n ListBaseObject = 0x10\n}\n\nexport enum MemberType {\n Unknown = 0,\n Regular = 1,\n All = 2,\n Measure = 3,\n Calculated = 4\n}\n\nexport enum AxisType {\n None = 0,\n X_Axis = 1,\n Y_Axis = 2,\n Measure = 3\n}\n\nexport enum AttributeUsage {\n Regular,\n Key,\n Parent\n}\n\nexport enum MeasureDataType {\n SmallInt = 2,\n Integer = 3,\n Single = 4,\n Double = 5,\n Currency = 6,\n Date = 7,\n Boolean = 11,\n TinyInt = 16,\n UnsignedTinyInt = 17,\n UnsignedSmallInt = 18,\n UnsignedInt = 19,\n BigInt = 20,\n UnsignedBigInt = 21,\n WChar = 130,\n Inherited = 131\n}\n\nexport enum MeasureAccumulation {\n None,\n YTD,\n MTD,\n WTD\n}\n\nexport enum SelectionType {\n None,\n ObjectSelect,\n SlideSelect,\n SlideFilter,\n MasterChild,\n QuickLinks,\n DrillDown,\n DrillThrough,\n PowerGrid,\n PlanGrid,\n Reference,\n Security,\n Heterogen\n}\n\nexport enum CodeDesc {\n /// \n /// Kein Text\n /// \n None,\n /// \n /// Nur der Code\n /// \n Code,\n /// \n /// Nur die Description.\n /// \n Description,\n /// \n /// Code + Description\n /// \n CodeDescription,\n /// \n /// Ein bestimmtes Attribut\n /// \n Attribute\n}\n\nexport enum DynamicTimeType {\n Now,\n Filter,\n Fix,\n DBSelect\n}\n\nexport enum RangeOrientation {\n End,\n Start,\n}\n\nexport enum DefaultTaskPosition {\n BeforeDataTasks,\n BetweenDataAndFormatTasks,\n AfterFormatTasks\n}\n","export enum Resizeable {\n both,\n horizontal,\n vertical,\n none\n}","export enum ResourceBase {\n Database = 0,\n Filebase = 1\n}\n","export enum ResponsiveType {\n Scroll,\n Accordion\n}\n","export enum SelectMode {\n 'single',\n 'multi',\n 'os',\n 'fire&forget'\n}","export enum SeriesType {\n line,\n area,\n bars,\n candlesticks,\n steppedArea\n}","export enum SideNavMode {\n over,\n side,\n push\n}\n","export enum SideNavPosition {\n start,\n end\n}\n","export enum SliderOrientation {\n Horizontal,\n Vertical\n}\n","export enum SortType\n {\n Code,\n Caption,\n Attribute,\n Measure\n}\n\nexport enum TaskAxisLevel {\n XAxis = -11,\n YAxis =-22\n}","export enum SpecialElementType {\n None,\n CalculatedElement,\n EmptyElement,\n Variable\n}","export enum StepperOrientation {\n Vertical,\n Horizontal\n}\n","export enum SyncStatus {\n Waiting,\n Processing,\n Success,\n Error\n}","export enum TableStyle {\n DataTable,\n SpreadSheet\n}\n","export enum TagType {\n span,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6\n}","export enum TextComparison {\n Equals = 0,\n NonEquals = 1,\n Contains = 2,\n StartsWith = 3,\n EndsWith = 4,\n IsNullOrEmpty = 5\n}\n","export enum TextOverflow {\n clip,\n ellipsis,\n inherit,\n initial,\n unset\n}","export enum TransitionProperty {\n all,\n width,\n height,\n 'background-color',\n color,\n transform\n}\n","export enum TransitionTimingFunction {\n linear,\n ease,\n 'ease-in',\n 'ease-out',\n 'ease-in-out',\n}\n","export enum TriggerQueueState {\n Waiting,\n Queued,\n Running\n}\n","export enum TriggerState {\n New,\n Waiting,\n Queued,\n Running,\n Deactivated,\n Deleted\n}\n","export enum UnitType {\n Pixel,\n Percent,\n em,\n Auto,\n Rest,\n fr,\n vw,\n vh,\n calc\n}\n","export enum ValueType {\n /// \n /// Wert ist NULL.\n /// \n Null = 0x0001,\n /// \n /// Wert ist ein Boolean.\n /// \n Bool = 0x0002,\n /// \n /// Wert ist Long.\n /// \n Long = 0x0004,\n /// \n /// Wert ist Datetime\n /// \n Datetime = 0x0008,\n /// \n /// Wert ist Double\n /// \n Double = 0x0010,\n /// \n /// Wert ist String.\n /// \n String = 0x0020,\n /// \n /// Wert ist ein Bild.\n /// \n Picture = 0x0040,\n Spark = 0x0080,\n Range = 0x0100,\n Object = 0x0200,\n List = 0x0400,\n}","export enum VariableDisplay {\n NodeName,\n VariableID,\n AliasKey,\n Tag\n}","export enum ViewType {\n Edit,\n View\n}\n","export enum WhiteSpace {\n normal,\n nowrap,\n pre,\n \"pre-wrap\",\n \"pre-line\",\n \"break-spaces\",\n\n}","export enum WordTreeType {\n prefix,\n suffix,\n double\n}","export enum WorkflowErrorType {\n None,\n MessageCenter\n}\n","export enum WorkflowParameterType {\n Boolean,\n String,\n Long,\n Double,\n DateTime,\n Password\n}\n","export enum WorkflowType {\n Client,\n Service,\n Both\n}\n","export enum WorkflowViewType {\n Start,\n Condition,\n Action,\n End\n}","import { TreeNode } from \"primeng/api\";\nimport { LayoutElement } from \"../layoutelement.model\";\nimport { WorkflowData } from \"../workflow/workflow.model\";\n\nexport class GitComparison {\n DocumentA: GitComparisonDocument;\n DocumentB: GitComparisonDocument;\n HasChanges: boolean = false;\n ChangesTree: any[] = [];\n Changes: {};\n}\n\nexport class GitComparisonDocument {\n Layout: LayoutElement;\n Workflows: object;\n Compare: object;\n}\n\nexport class GitComparisonElement {\n Parent: LayoutElement;\n ParentID: string;\n Layout: LayoutElement;\n JSON: string;\n Position: number;\n ElementType: string;\n}\n\nexport class GitComparisonWorkflow {\n Data: WorkflowData;\n JSON: string;\n}\n\nexport class GitComparisonOptions {\n CreateChangesTree: boolean = true;\n DeepComparison: boolean = false;\n}\n\nexport class GitComparisonDiff {\n Type: GitDiffType = GitDiffType.NONE;\n\n Key: string;\n\n Source: object;\n SourceJSON: string;\n\n Modified: object;\n ModifiedJSON: string;\n\n //InternalChanges: GitComparisonDiff[];\n\n ChangeType: GitDiffChangeType = GitDiffChangeType.NONE;\n}\n\nexport enum GitDiffChangeType {\n NONE,\n ADD,\n REMOVE,\n MODIFIED\n}\nexport enum GitDiffType {\n NONE,\n LAYOUTELEMENT,\n WORKFLOW,\n OTHER\n}","import { Type } from 'class-transformer';\nimport { ViewType } from './enums/viewtype.enum';\nimport { LayoutBase } from './layoutbase.model';\nimport { LayoutElement } from './layoutelement.model';\nimport { Variable } from './variable.model';\nimport { WorkflowDescription } from './workflow/workflow.model';\n\n// @dynamic\nexport class Layout extends LayoutBase {\n _Id;\n @Type(() => LayoutElement)\n Elements: LayoutElement[] = [];\n @Type(() => LayoutElement)\n Resolutions: LayoutElement[] = [];\n @Type(() => WorkflowDescription)\n Workflows: WorkflowDescription[] = [];\n @Type(() => Variable)\n Variables: Variable[];\n SetViewType(vt: ViewType) {\n this.ViewType = vt;\n if (this.Elements) {\n this.Elements.forEach((item) => {\n item.SetViewType(vt);\n });\n }\n this.ValuesChanged.next(null);\n }\n toJSON() {\n const result = super.toJSON();\n if (result.Variables && result.Variables.length > 0) {\n const copyList = [];\n result.Variables.forEach((v) => {\n const varCopy = Object.assign({}, v);\n delete varCopy.Value;\n copyList.push(varCopy);\n });\n result.Variables = copyList;\n }\n return result;\n }\n}\n","import { LayoutChangeType } from '../enums/layoutchangetype.enum';\n\nexport class LayoutChange {\n LayoutChangeType: LayoutChangeType;\n ChangeValue: any;\n ResolutionID: string;\n}\n\nexport class LayoutPropertyChangeValue {\n ElementID: string;\n PropertyName: string;\n Value: any;\n}\n\nexport class PropertyChangeValue {\n PropertyName: string;\n Value: any;\n}\n\nexport class MultiPropertyChangeValue {\n ElementIDs: string[] = [];\n Properties: PropertyChangeValue[] = [];\n}\n\nexport class MultiLayoutPropertyChangeValue {\n Elements: MultiPropertyChangeValue[] = [];\n}\n\nexport class LayoutPositionChangeValue {\n ElementID: string;\n OldParentID: string;\n NewParentID: string;\n Index: number;\n}\n\nexport class PositionChangeElementValue {\n ElementID: string;\n DropIndex: number;\n}\n\nexport class PositionChangeSourceValue {\n Elements: PositionChangeElementValue[] = [];\n ParentID: string;\n}\n\nexport class MultiLayoutPositionChangeValue {\n Elements: PositionChangeSourceValue[] = [];\n NewParentID: string;\n Index: number;\n}\n\nexport class LayoutElementAddedValue {\n ParentID: string;\n Index: number;\n ElementContent: string;\n}\n\nexport class LayoutElementRemovedValue {\n ElementID: string;\n ElementName: string;\n ParentID: string;\n}\n\nexport class MultiLayoutWorkflowChangeValue {\n LayoutID: string;\n Workflows: string[] = [];\n}\n\nexport class WorkflowAddedValue {\n LayoutID: string;\n Workflow: string;\n}\n\nexport class WorkflowRemovedValue {\n LayoutID: string;\n WorkflowID: string;\n WorkflowCaption: string;\n}\n\nexport class ResolutionAddedValue {\n Resolution: string;\n}\n\nexport class ResolutionRemovedValue {\n ResolutionID: string;\n ResolutionName: string;\n}\n","import { Observable, Subject } from 'rxjs';\nimport { VariableHelper } from '../../helpers/variable.helper';\nimport { LayoutService } from '../../services/layout.service';\nimport { ViewType } from '../enums/viewtype.enum';\n\nexport interface ILayoutEditClient {\n get ViewMode(): boolean;\n get CanCheckOut(): boolean;\n get CanSave(): boolean;\n get Layout();\n\n\n onCheckOut();\n onSave();\n clear(): Promise;\n}\n\nexport class LayoutEditService {\n private static ActualLayoutEditClientSubject: Subject = new Subject();\n public static ActualLayoutEditClient: Observable = LayoutEditService.ActualLayoutEditClientSubject;\n private static ActiveClients: { Client: ILayoutEditClient, SetLayoutMode: boolean }[] = [];\n public static LayoutEditClientChange: Subject = new Subject();\n\n public static SetNext(client: ILayoutEditClient, setLayoutMode: boolean) {\n if (client) {\n const clientObject = {\n Client: client,\n SetLayoutMode: setLayoutMode\n };\n LayoutEditService.ActiveClients.push(clientObject);\n LayoutEditService.SelectClient(clientObject);\n }\n }\n\n public static CloseActual() {\n LayoutService.ResolutionSelected.next(null); //Cancel preview on edit cancel for page builder\n if (LayoutEditService.ActiveClients.length > 0) {\n const actVal = LayoutEditService.ActiveClients.pop();\n actVal.Client.clear().then(() => {\n let client;\n if (LayoutEditService.ActiveClients.length > 0) {\n client = LayoutEditService.ActiveClients[LayoutEditService.ActiveClients.length - 1];\n }\n LayoutEditService.SelectClient(client);\n });\n } else {\n LayoutEditService.SelectClient(null);\n }\n }\n\n private static SelectClient(client: { Client: ILayoutEditClient, SetLayoutMode: boolean }) {\n if (client) {\n const layout = client.Client.Layout;\n VariableHelper.LoadVariables(layout);\n LayoutService.SelectedLayout.next(layout);\n LayoutService.SelectedItem.next(layout);\n LayoutEditService.ActualLayoutEditClientSubject.next(client.Client);\n if (LayoutService.LayoutEditMode.getValue() != client.SetLayoutMode) {\n LayoutService.LayoutEditMode.next(client.SetLayoutMode);\n }\n } else {\n LayoutEditService.ActualLayoutEditClientSubject.next(null);\n if (LayoutService.LayoutEditMode.getValue()) {\n LayoutService.LayoutEditMode.next(false);\n }\n if (LayoutService.ViewType.getValue() == ViewType.Edit) {\n LayoutService.ViewType.next(ViewType.View);\n }\n }\n }\n\n public static async CloseAll() {\n for (let i = LayoutEditService.ActiveClients.length - 1; i >= 0; i--) {\n const actClient = LayoutEditService.ActiveClients[i];\n await actClient.Client.clear();\n }\n LayoutEditService.ActiveClients = [];\n LayoutEditService.SelectClient(null);\n }\n}\n","import { LayoutElement } from \"../layoutelement.model\";\n\nexport class Raster extends LayoutElement {\n RasterOptions: any;\n}\n","import { UUID } from 'angular2-uuid';\nimport { plainToClass, Type } from 'class-transformer';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { Base, JsonIgnore } from './base.model';\nimport { LayoutUnit } from './basic/layoutunit.model';\nimport { LayoutUnitThickness } from './basic/layoutunitthickness.model';\nimport { NavigationItem } from './basic/navigationitem.model';\nimport { Alignment } from './enums/alignment.enum';\nimport { ContentType } from './enums/contenttype.enum';\nimport { EventActionType } from './enums/eventactiontype.enum';\nimport { ViewType } from './enums/viewtype.enum';\nimport { Border } from './style/border.model';\nimport { Font } from './style/font.model';\nimport { Gradient } from './style/gradient.model';\n\n// @dynamic\nexport class StyleBase extends Base {\n //#region Size\n @Type(() => LayoutUnit)\n Width: LayoutUnit;\n @Type(() => LayoutUnit)\n Height: LayoutUnit;\n @Type(() => LayoutUnit)\n MinWidth: LayoutUnit;\n @Type(() => LayoutUnit)\n MinHeight: LayoutUnit;\n @Type(() => LayoutUnit)\n MaxWidth: LayoutUnit;\n @Type(() => LayoutUnit)\n MaxHeight: LayoutUnit;\n @Type(() => LayoutUnit)\n TranslateX: LayoutUnit;\n @Type(() => LayoutUnit)\n TranslateY: LayoutUnit;\n @Type(() => LayoutUnit)\n TranslateZ: LayoutUnit;\n RotateX: number;\n RotateY: number;\n RotateZ: number;\n ScaleX: number;\n ScaleY: number;\n ScaleZ: number;\n ZIndex: number;\n TabIndex: number;\n //#endregion\n\n @Type(() => LayoutUnitThickness)\n Margin: LayoutUnitThickness;\n\n @Type(() => LayoutUnitThickness)\n Padding: LayoutUnitThickness;\n\n @Type(() => LayoutUnitThickness)\n Location: LayoutUnitThickness;\n\n //#region Styling\n @Type(() => Border)\n Border: Border;\n @Type(() => Font)\n Font: Font;\n @Type(() => Gradient)\n BackgroundColor: Gradient;\n HorizontalContentAlignment: Alignment;\n VerticalContentAlignment: Alignment;\n\n HorizontalTextAlignment: Alignment;\n VerticalTextAlignment: Alignment;\n //#endregion\n\n Visible: boolean;\n\n //#region Editable\n private _Editable: boolean;\n get Editable(): boolean {\n return this._Editable;\n }\n set Editable(val: boolean) {\n this._Editable = val;\n this.EditableChanged.next(val);\n }\n\n @JsonIgnore\n @Type(() => Subject)\n public EditableChanged = new Subject();\n //#endregion\n\n static applyToObject(selItem: any, styleJSON: string): string[] {\n const retVal = [];\n if (typeof selItem === 'object') {\n const style = plainToClass(StyleBase, JSON.parse(styleJSON));\n if (style.Width && style.Width.isValid()) {\n selItem.Width = style.Width;\n retVal.push('Width');\n }\n if (style.Height && style.Height.isValid()) {\n selItem.Height = style.Height;\n retVal.push('Height');\n }\n if (style.TranslateX && style.TranslateX.isValid()) {\n selItem.TranslateX = style.TranslateX;\n retVal.push('TranslateX');\n }\n if (style.TranslateY && style.TranslateY.isValid()) {\n selItem.TranslateY = style.TranslateY;\n retVal.push('TranslateY');\n }\n if (style.TranslateZ && style.TranslateZ.isValid()) {\n selItem.TranslateZ = style.TranslateZ;\n retVal.push('TranslateZ');\n }\n if (typeof style.RotateX === 'number') {\n selItem.RotateX = style.RotateX;\n retVal.push('RotateX');\n }\n if (typeof style.RotateY === 'number') {\n selItem.RotateY = style.RotateY;\n retVal.push('RotateY');\n }\n if (typeof style.RotateZ === 'number') {\n selItem.RotateZ = style.RotateZ;\n retVal.push('RotateZ');\n }\n if (typeof style.ScaleX === 'number') {\n selItem.ScaleX = style.ScaleX;\n retVal.push('ScaleX');\n }\n if (typeof style.ScaleY === 'number') {\n selItem.ScaleY = style.ScaleY;\n retVal.push('ScaleY');\n }\n if (typeof style.ScaleZ === 'number') {\n selItem.ScaleZ = style.ScaleZ;\n retVal.push('ScaleZ');\n }\n if (typeof style.ZIndex === 'number') {\n selItem.ZIndex = style.ZIndex;\n retVal.push('ZIndex');\n }\n if (typeof style.TabIndex === 'number') {\n selItem.TabIndex = style.TabIndex;\n retVal.push('TabIndex');\n }\n if (style.Margin && style.Margin.isValid()) {\n selItem.Margin = style.Margin;\n retVal.push('Margin');\n }\n if (style.Padding && style.Padding.isValid()) {\n selItem.Padding = style.Padding;\n retVal.push('Padding');\n }\n if (style.Location && style.Location.isValid()) {\n selItem.Location = style.Location;\n retVal.push('Location');\n }\n if (style.Border && style.Border.isValid()) {\n selItem.Border = style.Border;\n retVal.push('Border');\n }\n if (style.Font) {\n if (selItem.Font) {\n style.Font.applyToOtherFont(selItem.Font);\n } else {\n selItem.Font = style.Font;\n }\n retVal.push('Font');\n }\n if (style.BackgroundColor) {\n selItem.BackgroundColor = style.BackgroundColor;\n retVal.push('BackgroundColor');\n }\n if (typeof style.HorizontalContentAlignment === 'number') {\n selItem.HorizontalContentAlignment = style.HorizontalContentAlignment;\n retVal.push('HorizontalContentAlignment');\n }\n if (typeof style.VerticalContentAlignment === 'number') {\n selItem.VerticalContentAlignment = style.VerticalContentAlignment;\n retVal.push('VerticalContentAlignment');\n }\n if (typeof style.HorizontalTextAlignment === 'number') {\n selItem.HorizontalTextAlignment = style.HorizontalTextAlignment;\n retVal.push('HorizontalTextAlignment');\n }\n if (typeof style.VerticalTextAlignment === 'number') {\n selItem.VerticalTextAlignment = style.VerticalTextAlignment;\n retVal.push('VerticalTextAlignment');\n }\n if (typeof style.Visible === 'boolean') {\n selItem.Visible = style.Visible;\n retVal.push('Visible');\n }\n if (typeof style._Editable === 'boolean') {\n selItem._Editable = style._Editable;\n retVal.push('_Editable');\n }\n }\n return retVal;\n }\n\n toJSON() {\n const result = Object.assign({}, this);\n delete result.EditableChanged;\n return result;\n }\n}\n\n// @dynamic\nexport class LayoutBase extends StyleBase {\n ID = UUID.UUID();\n //#region Position\n @Type(() => LayoutUnit)\n X: LayoutUnit;\n @Type(() => LayoutUnit)\n Y: LayoutUnit;\n //#endregion\n //#region Size\n @Type(() => LayoutUnit)\n Size: LayoutUnit;\n Scrollable: boolean;\n //#endregion\n\n @Type(() => LayoutUnitThickness)\n Location: LayoutUnitThickness;\n\n @JsonIgnore\n Selected = false;\n\n @JsonIgnore\n public ViewType: ViewType = ViewType.View;\n\n public ContentType: ContentType;\n _Name;\n get Name() {\n return this._Name;\n }\n set Name(val) {\n this._Name = val;\n }\n\n @JsonIgnore\n @Type(() => Subject)\n public ValuesChanged = new Subject();\n @JsonIgnore\n @Type(() => Subject)\n public WorkflowStyleChanged = new Subject();\n @Type(() => Subject)\n DataBindingChanged: Subject = new Subject();\n @Type(() => Subject)\n ComponentChanged: Subject = new Subject();\n\n @Type(() => BehaviorSubject)\n Initialized: BehaviorSubject = new BehaviorSubject(false);\n\n @Type(() => NavigationItem)\n public NavigationItems: NavigationItem[];\n //#region ColumnSettings\n\n //#region Column\n private _Column = 1;\n get Column(): number {\n return this._Column;\n }\n set Column(val: number) {\n this._Column = val;\n }\n //#endregion\n //#region ColSpan\n private _ColSpan: number;\n get ColSpan(): number {\n return this._ColSpan;\n }\n set ColSpan(val: number) {\n this._ColSpan = val;\n }\n //#endregion\n //#endregion\n //#region RowSettings\n\n //#region Row\n private _Row = 1;\n get Row(): number {\n return this._Row;\n }\n set Row(val: number) {\n this._Row = val;\n }\n //#endregion\n //#region RowSpan\n private _RowSpan: number;\n get RowSpan(): number {\n return this._RowSpan;\n }\n set RowSpan(val: number) {\n this._RowSpan = val;\n }\n //#endregion\n //#endregion\n\n //#region Events\n @Type(() => EventData)\n Events: EventData[] = [];\n //#endregion\n Element: any;\n CapsuleTag: string;\n constructor() {\n super();\n this.Visible = true;\n }\n toJSON() {\n const result = super.toJSON();\n delete result.Initialized;\n delete result.Selected;\n delete result.ViewType;\n delete result.ValuesChanged;\n delete result.WorkflowStyleChanged;\n delete result.DataBindingChanged;\n delete result.ComponentChanged;\n delete result.Element;\n delete result['Parent'];\n delete result['MetaTableProperties'];\n if (result['ElementType'] != 'raster') {\n delete result['RasterOptions'];\n }\n if (result['ElementType'] != 'grid') {\n delete result['ColumnDefinitions'];\n delete result['RowDefinitions'];\n }\n if (!(result['ElementType'] == 'button' || result['ElementType'] == 'upload' || result['ElementType'] == 'download' || result['ElementType'] == 'tablecolumnvisibility')) {\n delete result['IconMargin'];\n delete result['IconPadding'];\n }\n if (!(result['ElementType'] == 'button' || result['ElementType'] == 'upload' || result['ElementType'] == 'download' || result['ElementType'] == 'tablecolumnvisibility' ||\n result['ElementType'] == 'icon' || result['ElementType'] == 'usermenu' || result['ElementType'] == 'sidenav-toggle')) {\n delete result['Icon'];\n delete result['IconWidth'];\n delete result['IconHeight'];\n }\n if (this.Events) {\n if (this.Events.length == 0) {\n delete result.Events;\n } else {\n let notNull = this.Events.filter((v) => v != null && v.toJSON && v.toJSON() != null);\n if (!notNull) {\n delete result.Events;\n }\n }\n }\n result['Name'] = result._Name;\n delete result._Name;\n if (result['ElementType'] === 'template' && result['LoadByReference']) {\n delete result['Elements'];\n }\n return result;\n }\n}\n// @dynamic\nexport class EventData {\n EventID: string;\n @Type(() => EventAction)\n Handlers: EventAction[] = [];\n toJSON? = () => {\n if (!this.Handlers || this.Handlers.length == 0) {\n return null;\n } else {\n return this;\n }\n }\n}\n\nexport class EventAction {\n ActionType: EventActionType = EventActionType.Workflow;\n Action: string;\n}\n\n\n\nexport class ElementProperty {\n Caption: string;\n PropertyName: string;\n DataType: string;\n\n constructor(propName: string, dataType: string, caption: string) {\n this.PropertyName = propName;\n this.DataType = dataType;\n this.Caption = caption;\n }\n}\n","import { Type } from 'class-transformer';\nimport { Subject } from 'rxjs';\nimport { LayoutService } from '../services/layout.service';\nimport { LayoutUnit } from './basic/layoutunit.model';\nimport { ViewType } from './enums/viewtype.enum';\nimport { MultiPropertyChangeValue } from './layout/layout.change.model';\nimport { LayoutBase } from './layoutbase.model';\nimport { Variable } from './variable.model';\n// @dynamic\nexport class LayoutElement extends LayoutBase {\n ElementType: string;\n Settings: string;\n RowDefinitions: any;\n Caption: string;\n _Name;\n @Type(() => LayoutElement)\n Elements: LayoutElement[] = [];\n @Type(() => Subject)\n ElementSet: Subject = new Subject();\n //#region X\n x;\n //#endregion\n //#region Y\n y;\n //#endregion\n //#region Width\n get width() {\n return LayoutUnit.ConvertFrom(this.Width);\n }\n set width(value) {\n this.Width = LayoutUnit.ConvertTo(value);\n }\n //#endregion\n //#region Height\n get height() {\n return LayoutUnit.ConvertFrom(this.Height);\n }\n set height(value) {\n this.Height = LayoutUnit.ConvertTo(value);\n }\n //#endregion\n\n //#region Size\n get size() {\n return LayoutUnit.ConvertFrom(this.Size);\n }\n set size(value) {\n this.Size = LayoutUnit.ConvertTo(value);\n }\n //#endregion\n cols: number;\n rows: number;\n Variables: Variable[];\n\n SetViewType(vt: ViewType) {\n if (this.ViewType != vt) {\n this.ViewType = vt;\n if (this.Elements) {\n this.Elements.forEach((item) => {\n item.SetViewType(vt);\n });\n }\n }\n }\n\n toJSON() {\n const result = super.toJSON();\n delete result.ElementSet;\n if (result.Variables && result.Variables.length > 0) {\n const copyList = [];\n result.Variables.forEach((v) => {\n const varCopy = Object.assign({}, v);\n delete varCopy.Value;\n copyList.push(varCopy);\n });\n result.Variables = copyList;\n }\n return result;\n }\n copy() {\n const result = new LayoutElement();\n const keys = Object.keys(this);\n keys.forEach((key) => {\n result[key] = this[key];\n });\n return result;\n }\n init(item) {\n const keys = Object.keys(item);\n keys.forEach((key) => {\n this[key] = item[key];\n });\n }\n}\n// @dynamic\nexport class MultiLayoutElement extends LayoutBase {\n constructor() {\n super();\n if (this.ValuesChanged) {\n this.ValuesChanged.subscribe((x) => {\n if (this.LayoutElements && this.LayoutElements.length > 0) {\n if (typeof x === 'string') {\n const val = this[x];\n const mlpcv = new MultiPropertyChangeValue();\n mlpcv.Properties.push({\n PropertyName: x,\n Value: val\n });\n this.LayoutElements.forEach((element) => {\n element[x] = val;\n element.ValuesChanged.next();\n mlpcv.ElementIDs.push(element.ID);\n });\n LayoutService.OnMultiLayoutPropertyChanged([mlpcv]);\n } else if (Array.isArray(x) && x.length > 0) {\n const mlpcv = new MultiPropertyChangeValue();\n x.forEach(y => {\n const val = this[y];\n mlpcv.Properties.push({\n PropertyName: y,\n Value: val\n });\n this.LayoutElements.forEach(element => {\n element[y] = val;\n element.ValuesChanged.next();\n mlpcv.ElementIDs.push(element.ID);\n });\n });\n LayoutService.OnMultiLayoutPropertyChanged([mlpcv]);\n }\n }\n });\n }\n }\n\n LayoutElements = [];\n}\n","import { ComponentPortal } from \"@angular/cdk/portal\"\n\nexport class MenuTabProperty {\n ID: string\n Section?: string\n Parent: string\n Content: any\n Type?: any\n \n Column?: number = 1\n Row?: number = 1\n ColSpan?: number = 1\n RowSpan?: number = 1\n InitArgs?: any;\n Path?: MenuTabPropertyPath\n DataSource?: any;\n Label?: string\n LabelPosition?: MenuTabLabelPosition = MenuTabLabelPosition.None;\n LabelMinSize?: string;\n Icon?: string\n IconPosition?: MenuTabLabelPosition = MenuTabLabelPosition.None;\n Properties?:MenuTabProperty[]\n CheckVisibility? = (item, entry?, context?) => {\n return true;\n }\n}\nexport class MenuTabPropertyPath {\n Path: string\n Type: any\n Sub?: MenuTabPropertyPath\n}\nexport enum MenuTabLabelPosition {\n None,\n Top,\n Left,\n Right,\n Bottom\n}","import { MessageType } from '../enums/messagetype.enum';\n\nexport class ReceivedMessage {\n MessageType: MessageType;\n Title: string;\n Content: string;\n Read: boolean;\n CreateDate: Date;\n}","import { MethodType } from \"../enums/methodtype.enum\";\n\n\nexport class OfflineEndpoint {\n Name: string;\n Method: MethodType;\n execute(params?: any, body?: any) {\n\n }\n}\nexport class OfflineEndpointCollection {\n BasePath: string;\n EndPoints: OfflineEndpoint[];\n}","import { VisibilityType } from './enums/oc.enum';\nimport { BehaviorSubject } from 'rxjs';\nimport { UUID } from 'angular2-uuid';\n\nexport class PageStatus {\n ViewInfos: ViewInfo[] = [];\n TaskActiveInfos: Map = new Map();\n\n static ActualState: BehaviorSubject = new BehaviorSubject(new PageStatus());\n\n static GetTaskActiveStatus(task, objectID): boolean {\n const pagestatus = PageStatus.ActualState.getValue();\n const activities = pagestatus.TaskActiveInfos.get(objectID)\n if (typeof activities !== 'undefined') {\n const setting = activities.find(x => x.TaskID === task.ID);\n if (typeof setting !== 'undefined') {\n switch (setting.ActivityType) {\n case TaskActivityType.SetActive:\n return true;\n case TaskActivityType.SetInactive:\n return false;\n case TaskActivityType.SwitchActivity:\n if (typeof setting.ActualState === 'undefined') {\n setting.ActualState = !task.IsActive;\n } else {\n setting.ActualState = !setting.ActualState;\n }\n return setting.ActualState;\n default:\n return true;\n }\n }\n }\n return task.IsActive;\n }\n}\n\nexport class ViewInfo {\n QueryID;\n Entries: ViewInfoEntry[] = [];\n}\n\nexport class ViewInfoEntry {\n WorkflowID;\n ModuleID;\n ObjectIDs = [];\n Settings: ViewSetting[] = [];\n}\n\nexport class ViewSetting {\n ElementID: number;\n VisibleState: VisibilityType = VisibilityType.None;\n}\n\nexport class ActivityData {\n ObjectID;\n QueryDataTasks: TaskActivity[] = [];\n ObjectDataTasks: TaskActivity[] = [];\n ObjectFormatTasks: TaskActivity[] = [];\n}\n\nexport class TaskActivity {\n TaskID;\n ActivityType: TaskActivityType = TaskActivityType.None;\n}\nexport enum TaskActivityType {\n None,\n SetActive,\n SetInactive,\n SwitchActivity\n}\n","export class CellReference {\n public Name: string;\n public DataDescriptionID: string;\n public X: {};\n public Y: {};\n}\nexport class CellReferenceArea {\n public Selected: boolean;\n public AreaID: string;\n public Levels: {};\n public MeasureID: string;\n}\nexport class CellReferenceLevel {\n public Selected: boolean;\n public MemberID: string;\n public LevelID: string;\n}","import { QueryDef } from \"../datadescription/multi/querydef.model\";\nimport { PlanType } from \"../enums/plantype.enum\";\n\nexport class PlanValues {\n Query: QueryDef;\n Values: PlanValue[];\n}\nexport class PlanValue {\n Value: number;\n OldValue: number;\n MeasureUniqueId: number;\n AlternateMeasureUniqueId: number;\n Type: PlanType;\n XElements: PlanElement[];\n YElements: PlanElement[];\n}\nexport class PlanElement {\n UniqueId: number;\n ElementId: string;\n}","export class RelColumn\n{\n public UniqueID: number;\n public FieldID: string;\n public ContainerID: string;\n public ContainerUniqueID: number;\n public DatasourceID: string;\n}\n","import { RelFilterColumn } from \"./relfiltercolumn.model\";\nimport { RelSortColumn } from \"./relsortcolumn.model\";\nimport { RelRequestColumn } from \"./relrequestcolumn.model\";\nimport { RelColumn } from \"./relcolumn.model\";\nimport { RelationDefinition } from \"./relationdefinition.model\";\n\nexport class RelQueryDef\n{\n public AdditionalCount: number = -1;\n public Filters: RelFilterColumn[];\n public Sort: RelSortColumn[];\n public Columns: RelRequestColumn[];\n public AdditionalColumns: RelColumn[];\n public StartRow: number;\n public EndRow: number;\n public Top: number;\n public Relations: RelationDefinition[];\n}\n","import { RelColumn } from \"./relcolumn.model\";\nimport { Aggregation } from \"../enums\";\n\nexport class RelRequestColumn extends RelColumn\n{\n public IsCommaSeparated: boolean;\n public Aggregation: Aggregation;\n}\n","import { Type } from 'class-transformer';\nimport { Gradient } from '../style/gradient.model';\nimport { TranslatedString } from '../translatedstring.model';\n\nexport class ReportTableColumnSettings {\n DescriptionColumnsWidths: number[];\n MeasuresWidths;\n NonMeasureWidth: number;\n}\n\nexport class NodeInfo {\n UniqueID: number;\n MemberID: string;\n}\n\nexport class ReportTableExpandedNodeInfo {\n Path: NodeInfo[] = [];\n}\n\nexport class ReportTableSettings {\n\n //#region Aufklappen\n ReExpand = false;\n ReloadOnExpand = true;\n Pivot = false;\n ExpandedYNodes: ReportTableExpandedNodeInfo[] = [];\n //#endregion\n\n //#region Fixieren\n FixDescriptionColumn = true;\n FixColumns = false;\n FixColumnsValue = 0;\n FixRows = false;\n FixRowsValue = 0;\n //#endregion\n\n //#region Format\n ShowLines = true;\n HideDescriptionColumnHeader = false;\n HideMeasureHeader = false;\n AutoDescriptionColumnHeader = false;\n HideEmptyRowsAndColumns = false;\n UseAlternatingColors = false;\n FirstAlternatingColor: Gradient;\n SecondAlternatingColor: Gradient;\n CombineCells = false;\n IgnoreHover = false;\n //#endregion\n\n //#region Size\n OptColumnWidthContent = false;\n OptColumnWidthDescription = false;\n FixColumnHeight = false;\n FixColumnHeightValue = 20;\n FixColumnWidth = false;\n FixColumnWidthValue = 100;\n ColumnSettings: ReportTableColumnSettings;\n //#endregion\n\n //#region Summen\n ShowOnlySumRow = false;\n ShowSumRowTop = false;\n ShowSumRowBottom = false;\n ShowColumnSum = false;\n ShowRowSum = false;\n @Type(() => TranslatedString)\n SumRowText: TranslatedString;\n //#endregion\n}\n","export class MappingStructure {\n Create: RestMapping = new RestMapping();\n Read: RestMapping[] = [];\n Update: RestMapping[] = [];\n Replace: RestMapping = new RestMapping();\n Delete: RestMapping[] = [];\n Count: RestMapping[] = [];\n}\n\nexport class RestMapping {\n EndpointID: string;\n Name: string;\n Parameters: MappingParameter[];\n Body: BodyMapping;\n}\nexport class BodyMapping {\n ObjectID: string;\n Parameters: MappingParameter[];\n}\n\nexport class WhereStruct {\n ColumnName: string;\n Property: WhereProps;\n Convert: string;\n}\nexport class OrderStruct {\n ColumnName: string;\n Property: OrderProps;\n Convert: string;\n}\nexport class UpdateStruct {\n ColumnName: string;\n}\nexport class SelectStruct {\n Seperator: string;\n}\nexport class FixedStruct {\n Formula: string;\n}\nexport class PagingStruct {\n Formula: string;\n}\n\nexport class MappingParameter {\n ParameterType: ParameterType;\n ParameterName: string;\n StructureType: StructureType = StructureType.NONE;\n IsRequired: boolean;\n Where: WhereStruct = new WhereStruct();\n Order: OrderStruct = new OrderStruct();\n Update: UpdateStruct = new UpdateStruct();\n Select: SelectStruct = new SelectStruct();\n Fixed: FixedStruct = new FixedStruct();\n Paging: PagingStruct = new PagingStruct();\n}\n\nexport enum WhereProps {\n Name,\n Comparer,\n Value,\n Value2\n}\nexport enum OrderProps {\n Name,\n Direction\n}\nexport enum StructureType {\n NONE = 100,\n WHERE = 0,\n ORDER = 1,\n UPDATE = 2,\n SELECT = 3,\n FIXED = 4,\n PAGING = 5\n}\nexport enum ParameterType {\n Query = 0,\n Header = 1,\n Path = 2,\n Cookie = 3,\n None = 4\n}","export class RequestColumn {\n Name: string;\n IsCommaSeparated: boolean;\n}","import { Comparer } from \"../enums/comparer.enum\";\nimport { Concat } from \"../enums/contact.enum\";\n\nexport class RequestFilter {\n Name: string;\n Value: any;\n Value2: any;\n Operator: Comparer;\n ConcatOperator: Concat;\n Filters: RequestFilter[];\n AdditionalInfos: any;\n IsOptional = false;\n\n public static GetTextForComparer(comparer) {\n switch (comparer) {\n case Comparer.Equal: return '=';\n case Comparer.NotEqual: return '!=';\n case Comparer.Smaller: return '<';\n case Comparer.SmallerEqual: return '<=';\n case Comparer.Greater: return '>';\n case Comparer.GreaterEqual: return '>=';\n case Comparer.Like: return 'like';\n case Comparer.NotLike: return 'notlike';\n case Comparer.In: return 'in';\n case Comparer.NotIn: return 'notin';\n case Comparer.Between: return 'between';\n case Comparer.NotBetween: return 'notbetween';\n default: return null;\n }\n }\n\n public static GetComparerFromText(text) {\n switch (text) {\n case '=': return Comparer.Equal;\n case '!=': return Comparer.NotEqual;\n case '<': return Comparer.Smaller;\n case '<=': return Comparer.SmallerEqual;\n case '>': return Comparer.Greater;\n case '>=': return Comparer.GreaterEqual;\n case 'like': return Comparer.Like;\n case 'notlike': return Comparer.NotLike;\n case 'in': return Comparer.In;\n case 'notin': return Comparer.NotIn;\n case 'between': return Comparer.Between;\n case 'notbetween': return Comparer.NotBetween;\n default: return null;\n }\n }\n\n public static GetComparerForType(type: string): string[] {\n const retVal = [];\n switch (type) {\n case 'string':\n retVal.push(this.GetTextForComparer(Comparer.Equal));\n retVal.push(this.GetTextForComparer(Comparer.NotEqual));\n retVal.push(this.GetTextForComparer(Comparer.Like));\n retVal.push(this.GetTextForComparer(Comparer.NotLike));\n retVal.push(this.GetTextForComparer(Comparer.In));\n retVal.push(this.GetTextForComparer(Comparer.NotIn));\n retVal.push(this.GetTextForComparer(Comparer.Between));\n retVal.push(this.GetTextForComparer(Comparer.NotBetween));\n break;\n case 'date':\n case 'number':\n case 'float':\n retVal.push(this.GetTextForComparer(Comparer.Equal));\n retVal.push(this.GetTextForComparer(Comparer.NotEqual));\n retVal.push(this.GetTextForComparer(Comparer.Smaller));\n retVal.push(this.GetTextForComparer(Comparer.SmallerEqual));\n retVal.push(this.GetTextForComparer(Comparer.Greater));\n retVal.push(this.GetTextForComparer(Comparer.GreaterEqual));\n retVal.push(this.GetTextForComparer(Comparer.In));\n retVal.push(this.GetTextForComparer(Comparer.NotIn));\n retVal.push(this.GetTextForComparer(Comparer.Between));\n retVal.push(this.GetTextForComparer(Comparer.NotBetween));\n break;\n case 'boolean':\n retVal.push(this.GetTextForComparer(Comparer.Equal));\n retVal.push(this.GetTextForComparer(Comparer.NotEqual));\n break;\n }\n return retVal;\n }\n\n public static getRequestFilterText(reqFilter): string {\n if (reqFilter.Filters && reqFilter.Filters.length > 0) {\n if (reqFilter.Filters.length > 1) {\n const retVal = [];\n reqFilter.Filters.forEach((filter) => {\n retVal.push(RequestFilter.getRequestFilterText(filter));\n });\n return '(' + retVal.join(reqFilter.ConcatOperator === Concat.And ? ' AND ' : ' OR ') + ')';\n } else {\n return RequestFilter.getRequestFilterText(reqFilter.Filters[0]);\n }\n } else {\n let retVal = reqFilter.Name + ' ' + RequestFilter.GetTextForComparer(reqFilter.Operator) + ' ' + reqFilter.Value;\n if (reqFilter.Operator === Comparer.Between || reqFilter.Operator === Comparer.NotBetween) {\n retVal += ' and ' + reqFilter.Value2;\n }\n return retVal;\n }\n }\n}\n","import { RequestFilter } from './requestfilter';\nimport { RequestSort } from './requestsort';\nimport { RequestColumn } from './requestcolumn';\n\nexport class RequestOptions {\n\tFilters: Array = [];\n\tSort: Array = [];\n\tColumns: Array = [];\n\tStartRow = 0;\n\tEndRow = 300;\n GroupBy?: Array = null;\n Aggregations?: Array = [];\n\tGroupByDate?: { Field: string, GroupingLevel:string } = null;\n\tstatic CleanRequestOptions(): RequestOptions {\n\t\tconst retVal = new RequestOptions();\n\t\tretVal.StartRow = null;\n\t\tretVal.EndRow = null;\n\t\treturn retVal;\n\t}\n}\n","import { Type } from \"class-transformer\";\nimport { MethodType } from \"../enums/methodtype.enum\";\n\nexport class RequestParameters {\n Name: string;\n Value: string;\n Type: string;\n}\n// @dynamic\nexport class DataPreviewInfo {\n Name: string;\n Resource: string;\n ContainerType: string;\n @Type(() => RequestParameters)\n Parameters: RequestParameters[] = [];\n Methodtype: MethodType;\n Options: Map = new Map();\n Fields: string[] = [];\n\n toJSON() {\n let result;\n result = Object.assign({}, this);\n let options = {};\n if (result.Options && typeof result.Options.forEach === 'function') {\n result.Options.forEach(function (v, k) {\n options[k] = v;\n });\n result.Options = options;\n }\n return result;\n }\n}\n\n","import { Order } from \"../enums/order.enum\";\n\n\nexport class RequestSort {\n Name: string;\n Order: Order;\n Position: number;\n}\n","import { Type } from 'class-transformer';\nimport { ACTIONS_REGISTRY } from '../../registries/actions/actions.registry';\nimport { ActionSize } from '../enums/actionsize.enum';\nimport { LayoutElement } from '../layoutelement.model';\n\n\n// @dynamic\nexport class Action extends LayoutElement {\n get Name() {\n return this._Name;\n }\n set Name(val) {\n this._Name = val;\n this.Component = ACTIONS_REGISTRY.get(val);\n }\n Component: any;\n Label: string;\n Icon: string;\n Tooltip: string;\n ActionSize: ActionSize = ActionSize.Small;\n\n KeepOpen: boolean;\n IsContextMenu: boolean;\n\n @Type(() => Action)\n Elements: LayoutElement[] = [];\n\n toJSON() {\n const result = super.toJSON();\n delete result.Component;\n return result;\n }\n}\n","import { UUID } from \"angular2-uuid\";\nimport { SelectionType } from \"../enums/query.enum\";\nimport { plainToClass } from \"class-transformer\";\n\nexport class Select {\n Hierarchy: UUID;\n Level: UUID;\n Member: UUID;\n AttributLevel: UUID;\n NegativeTag: boolean = false;\n SelectionType: SelectionType;\n AttributeValue: string;\n AttributeName: string;\n FromDate: Date;\n ToDate: Date;\n\n get IsAttribute(): boolean {\n return this.AttributLevel != null;\n }\n\n public constructor(init?: Partial