{"version":3,"sources":["webpack:///webpack/bootstrap d622163326724bd9578d","webpack:///external \"jQuery\"","webpack:////Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/swiper/dist/js/swiper.esm.bundle.js","webpack:////Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/ssr-window/dist/ssr-window.esm.js","webpack:///./scripts/main.js","webpack:////Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/picturefill/dist/picturefill.min.js","webpack:///(webpack)/buildin/amd-options.js","webpack:////Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/lazysizes/plugins/bgset/ls.bgset.min.js","webpack:////Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/lazysizes/lazysizes.js","webpack:////Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/lazysizes/lazysizes.min.js","webpack:////Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/vide/dist/jquery.vide.min.js","webpack:///./scripts/util/Router.js","webpack:///./scripts/util/camelCase.js","webpack:///./scripts/routes/common.js","webpack:////Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/slim-select/dist/slimselect.min.js","webpack:////Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/baguettebox.js/dist/baguetteBox.min.js","webpack:///./scripts/leap/map/api.js","webpack:///./scripts/leap/map/map.js","webpack:///./scripts/leap/components/accordion.js","webpack:///./scripts/leap/components/gallery.js","webpack:///./scripts/leap/components/slider.js","webpack:////Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/dom7/dist/dom7.modular.js","webpack:///./scripts/leap/components/testimonial-slider.js","webpack:///./scripts/leap/components/flyout.js","webpack:///./scripts/leap/components/sticky-header.js","webpack:///./scripts/leap/utilities.js","webpack:///./scripts/leap/components/nav.js","webpack:///./scripts/leap/tools/magic.js","webpack:////Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/scrollmagic/scrollmagic/uncompressed/ScrollMagic.js","webpack:////Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/hoverintent/dist/hoverintent.min.js","webpack:////Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/priority-nav/dist/priority-nav.min.js","webpack:////Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/jquery-pjax/jquery.pjax.js","webpack:///./scripts/routes/home.js","webpack:///./scripts/routes/about.js","webpack:///./styles/main.scss?c83e"],"names":["const","let","i","slideChanged","super","setTranslate","this","arguments","k"],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;AC7DA,wB;;;;;;;;ACAA;AAAA;;;;;;;;;;;;AAY8V;AAChT;;AAE9CA,GAAK,CAAC,OAAO,GAAG;EACd,kFAAQ;EACR,wFAAW;EACX,kFAAQ;EACR,wFAAW;EACX,0EAAI;EACJ,sFAAU;EACV,0EAAI;EACJ,oFAAS;EACT,sFAAU;EACV,sEAAE;EACF,wEAAG;EACH,gFAAO;EACP,4FAAa;EACb,sFAAU;EACV,wFAAW;EACX,8EAAM;EACN,wEAAG;EACH,0EAAI;EACJ,0EAAI;EACJ,0EAAI;EACJ,sEAAE;EACF,4EAAK;EACL,sEAAE;EACF,8EAAM;EACN,gFAAO;EACP,0EAAI;EACJ,gFAAO;EACP,0EAAI;EACJ,gFAAO;EACP,8EAAM;EACN,gFAAO;EACP,gFAAO;EACP,0EAAI;EACJ,kFAAQ;EACR,8EAAM;EACN,wEAAG;EACH,8EAAM;CACP,CAAC;;AAEF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,UAAU,EAAK;EAC3C,iEAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACxC,CAAC,CAAC;;AAEHA,GAAK,CAAC,KAAK,GAAG;EACZ,WAAW,uBAAC,GAAG,EAAE;IACfA,GAAK,CAAC,MAAM,GAAG,GAAG,CAAC;IACnB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG,EAAK;MACnC,IAAI;QACF,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;OACpB,CAAC,OAAO,CAAC,EAAE;;OAEX;MACD,IAAI;QACF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;OACpB,CAAC,OAAO,CAAC,EAAE;;OAEX;KACF,CAAC,CAAC;GACJ;EACD,QAAQ,oBAAC,QAAQ,EAAE,KAAS,EAAE,CAAN;iCAAA,GAAG,CAAC;AAAG;IAC7B,OAAO,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;GACpC;EACD,GAAG,iBAAG;IACJ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;GACnB;EACD,YAAY,wBAAC,EAAE,EAAE,IAAU,EAAE,CAAR;+BAAA,GAAG,GAAG;AAAG;IAC5BC,GAAG,CAAC,MAAM,CAAC;IACXA,GAAG,CAAC,YAAY,CAAC;IACjBA,GAAG,CAAC,eAAe,CAAC;;IAEpBD,GAAK,CAAC,QAAQ,GAAG,0DAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;;IAEnD,IAAI,0DAAM,CAAC,eAAe,EAAE;MAC1B,YAAY,GAAG,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,eAAe,CAAC;MAC9D,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACtC,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAC,EAAI,UAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,IAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;OAClF;;;MAGD,eAAe,GAAG,IAAI,0DAAM,CAAC,eAAe,CAAC,YAAY,KAAK,MAAM,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC;KAC3F,MAAM;MACL,eAAe,GAAG,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;MAC3N,MAAM,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KAChD;;IAED,IAAI,IAAI,KAAK,GAAG,EAAE;;MAEhB,IAAI,0DAAM,CAAC,eAAe,EAAE,cAAY,GAAG,eAAe,CAAC,GAAG,CAAC;;WAE1D,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE,cAAY,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;;WAEhE,cAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;KAC3C;IACD,IAAI,IAAI,KAAK,GAAG,EAAE;;MAEhB,IAAI,0DAAM,CAAC,eAAe,EAAE,cAAY,GAAG,eAAe,CAAC,GAAG,CAAC;;WAE1D,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE,cAAY,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;;WAEhE,cAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;KAC3C;IACD,OAAO,YAAY,IAAI,CAAC,CAAC;GAC1B;EACD,aAAa,yBAAC,GAAG,EAAE;IACjBA,GAAK,CAAC,KAAK,GAAG,EAAE,CAAC;IACjBC,GAAG,CAAC,UAAU,GAAG,GAAG,IAAI,0DAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC7CA,GAAG,CAAC,CAAC,CAAC;IACNA,GAAG,CAAC,MAAM,CAAC;IACXA,GAAG,CAAC,KAAK,CAAC;IACVA,GAAG,CAAC,MAAM,CAAC;IACX,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE;MACvD,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;MACjF,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,oBAAU,EAAI,mBAAU,KAAK,EAAE,IAAC,CAAC;MACvE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;;MAEvB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QAC9B,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClD,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW,GAAG,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;OACxH;KACF;IACD,OAAO,KAAK,CAAC;GACd;EACD,QAAQ,oBAAC,CAAC,EAAE;IACV,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC;GACzF;EACD,MAAM,kBAAQ,EAAE,CAAC;;;AAAA;IACfD,GAAK,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,KAAKC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;MACvCD,GAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;MAC3B,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI,EAAE;QACnDA,GAAK,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAClD,KAAKC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,GAAG,EAAE,SAAS,IAAI,CAAC,EAAE;UAC/ED,GAAK,CAAC,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;UACrCA,GAAK,CAAC,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;UAClE,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;YACzC,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE;cACtE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;aAChD,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE;cAC9E,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;cACjB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;aAChD,MAAM;cACL,EAAE,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;aACnC;WACF;SACF;OACF;KACF;IACD,OAAO,EAAE,CAAC;GACX;CACF,CAAC;;AAEFA,GAAK,CAAC,OAAO,GAAG,CAAC,SAAS,OAAO,GAAG;EAClCA,GAAK,CAAC,OAAO,GAAG,4DAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;EAC9C,OAAO;IACL,KAAK,EAAE,CAAC,0DAAM,CAAC,SAAS,IAAI,0DAAM,CAAC,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,UAAU,GAAG;MACrF,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,0DAAM,CAAC,IAAI,CAAC,0DAAM,CAAC,aAAa,IAAI,4DAAQ,YAAY,0DAAM,CAAC,aAAa,CAAC,CAAC,CAAC;KAC7G,EAAE,CAAC;;IAEJ,aAAa,EAAE,CAAC,CAAC,CAAC,0DAAM,CAAC,SAAS,CAAC,cAAc,IAAI,0DAAM,CAAC,YAAY,CAAC;IACzE,qBAAqB,EAAE,CAAC,CAAC,0DAAM,CAAC,SAAS,CAAC,gBAAgB;;IAE1D,UAAU,EAAE,CAAC,SAAS,eAAe,GAAG;MACtCA,GAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;MAC5B,OAAO,CAAC,YAAY,IAAI,KAAK,IAAI,kBAAkB,IAAI,KAAK,IAAI,eAAe,IAAI,KAAK,CAAC,CAAC;KAC3F,EAAE,CAAC;IACJ,YAAY,EAAE,CAAC,0DAAM,CAAC,SAAS,IAAI,0DAAM,CAAC,SAAS,CAAC,eAAe,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,iBAAiB,GAAG;MAC7GA,GAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;MAC5B,OAAO,CAAC,mBAAmB,IAAI,KAAK,IAAI,gBAAgB,IAAI,KAAK,IAAI,cAAc,IAAI,KAAK,IAAI,eAAe,IAAI,KAAK,IAAI,aAAa,IAAI,KAAK,CAAC,CAAC;KACrJ,EAAE,CAAC;;IAEJ,OAAO,EAAE,CAAC,SAAS,YAAY,GAAG;MAChCA,GAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;MAC5BA,GAAK,CAAC,SAAS,GAAG,CAAC,wKAAwK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;MACxM,KAAKC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QAC5C,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,SAAO,IAAI,CAAC;OACxC;MACD,OAAO,KAAK,CAAC;KACd,EAAE,CAAC;;IAEJ,QAAQ,EAAE,CAAC,SAAS,aAAa,GAAG;MAClC,OAAO,CAAC,kBAAkB,IAAI,0DAAM,IAAI,wBAAwB,IAAI,0DAAM,CAAC,CAAC;KAC7E,EAAE,CAAC;;IAEJ,eAAe,EAAE,CAAC,SAAS,oBAAoB,GAAG;MAChDA,GAAG,CAAC,eAAe,GAAG,KAAK,CAAC;MAC5B,IAAI;QACFD,GAAK,CAAC,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE;;UAEhD,GAAG,iBAAG;YACJ,eAAe,GAAG,IAAI,CAAC;WACxB;SACF,CAAC,CAAC;QACH,0DAAM,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;OAC5D,CAAC,OAAO,CAAC,EAAE;;OAEX;MACD,OAAO,eAAe,CAAC;KACxB,EAAE,CAAC;;IAEJ,QAAQ,EAAE,CAAC,SAAS,aAAa,GAAG;MAClC,OAAO,gBAAgB,IAAI,0DAAM,CAAC;KACnC,EAAE,CAAC;GACL,CAAC;CACH,EAAE,CAAC,CAAC;;AAEL,IAAM,WAAW,GACf,oBAAW,CAAC,MAAW,EAAE,CAAP;iCAAA,GAAG,EAAE;AAAG;EACxBA,GAAK,CAAC,IAAI,GAAG,IAAI,CAAC;EAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;;EAErB;EACA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;;EAE1B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;IACjC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAC,SAAS,EAAK;MACjD,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;EACL,CAAC;AACH,CAAC;;yCAAA;AACD,wBAAE,gBAAC,MAAM,EAAE,OAAO,EAAE;EAClBA,GAAK,CAAC,IAAI,GAAG,IAAI,CAAC;EAClB,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,SAAO,IAAI,CAAC;EAC/C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAC,KAAK,EAAK;IACnC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,MAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IACnE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;EAC5C,CAAC,CAAC,CAAC;EACH,OAAO,IAAI,CAAC;AACd,CAAC;AACD,0BAAI,kBAAC,MAAM,EAAE,OAAO,EAAE;EACpBA,GAAK,CAAC,IAAI,GAAG,IAAI,CAAC;EAClB,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,SAAO,IAAI,CAAC;EAC/C,SAAS,WAAW,CAAQ,EAAE,CAAC;;;AAAA;IAC7B,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;EAChC,CAAC;EACD,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACtC,CAAC;AACD,yBAAG,iBAAC,MAAM,EAAE,OAAO,EAAE;EACnBA,GAAK,CAAC,IAAI,GAAG,IAAI,CAAC;EAClB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAC,KAAK,EAAK;IACnC,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;MAClC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IACnC,CAAC,MAAM;MACL,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAC,YAAY,EAAE,QAAQ,EAAK;QAC9D,IAAI,YAAY,KAAK,OAAO,EAAE;UAC5B,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC;MACH,CAAC,CAAC,CAAC;IACL,CAAC;EACH,CAAC,CAAC,CAAC;EACH,OAAO,IAAI,CAAC;AACd,CAAC;AACD,0BAAI,kBAAQ,EAAE,CAAC;;;AAAA;EACbA,GAAK,CAAC,IAAI,GAAG,IAAI,CAAC;EAClB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,SAAO,IAAI,CAAC;EACvCC,GAAG,CAAC,MAAM,CAAC;EACXA,GAAG,CAAC,OAAO,CAAC;EACZA,GAAG,CAAC,OAAO,CAAC;EACZ,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;IACzD,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACrC,OAAO,GAAG,IAAI,CAAC;EACjB,CAAC,MAAM;IACL,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACxB,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvB,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;EACpC,CAAC;EACDD,GAAK,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;EACvE,WAAW,CAAC,OAAO,CAAC,UAAC,KAAK,EAAK;IAC7B,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;MAC/BA,GAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;MACpB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAC,YAAY,EAAK;QACpD,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;MAC9B,CAAC,CAAC,CAAC;MACH,QAAQ,CAAC,OAAO,CAAC,UAAC,YAAY,EAAK;QACjC,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;MACvC,CAAC,CAAC,CAAC;IACL,CAAC;EACH,CAAC,CAAC,CAAC;EACH,OAAO,IAAI,CAAC;AACd,CAAC;AACD,sCAAgB,8BAAC,cAAc,EAAE;EAC/BA,GAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;EACtB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAO;EAC9B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,UAAU,EAAK;IACpDA,GAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5C;IACA,IAAI,MAAM,CAAC,MAAM,EAAE;MACjB,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;EACH,CAAC,CAAC,CAAC;AACL,CAAC;AACD,gCAAU,wBAAC,aAAkB,EAAE,CAAP;iDAAA,GAAG,EAAE;AAAG;EAC9BA,GAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;EACtB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAO;EAC9B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,UAAU,EAAK;IACpDA,GAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5CA,GAAK,CAAC,YAAY,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACrD;IACA,IAAI,MAAM,CAAC,QAAQ,EAAE;MACnB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAC,cAAc,EAAK;QACvDA,GAAK,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QACnD,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;UACpC,QAAQ,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvD,CAAC,MAAM;UACL,QAAQ,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC;QACxC,CAAC;MACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD;IACA,IAAI,MAAM,CAAC,EAAE,IAAI,QAAQ,CAAC,EAAE,EAAE;MAC5B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAC,eAAe,EAAK;QAClD,QAAQ,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;MAC3D,CAAC,CAAC,CAAC;IACL,CAAC;;IAED;IACA,IAAI,MAAM,CAAC,MAAM,EAAE;MACjB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;EACH,CAAC,CAAC,CAAC;AACL,CAAC;AACD,gBAAW,UAAU,iBAAC,UAAU,EAAE;EAChCA,GAAK,CAAC,KAAK,GAAG,IAAI,CAAC;EACnB,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,SAAO;EACvB,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACxB,CAAC;AACD,YAAO,aAAa,2BAAC,MAAiB,EAAE,CAAC;;;AAAA;EACvCA,GAAK,CAAC,KAAK,GAAG,IAAI,CAAC;EACnB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,OAAK,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC;EAC3DA,GAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,EAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,OAAE,IAAE,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;EAC9F,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;EACvC;EACA,IAAI,MAAM,CAAC,KAAK,EAAE;IAChB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG,EAAK;MACzC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;EACL,CAAC;EACD;EACA,IAAI,MAAM,CAAC,MAAM,EAAE;IACjB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG,EAAK;MAC1C,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;EACL,CAAC;EACD;EACA,IAAI,MAAM,CAAC,OAAO,EAAE;IAClB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;EACtC,CAAC;EACD,OAAO,KAAK,CAAC;AACf,CAAC;AACD,YAAO,GAAG,iBAAC,MAAiB,EAAE,CAAC;;;AAAA;EAC7BA,GAAK,CAAC,KAAK,GAAG,IAAI,CAAC;EACnB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;IACzB,MAAM,CAAC,OAAO,CAAC,WAAC,EAAI,cAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAC,CAAC;IAC5C,OAAO,KAAK,CAAC;EACf,CAAC;EACD,OAAO,KAAK,CAAC,aAAa,OAAC,eAAM,WAAK,MAAM,GAAC,CAAC;AAChD,CAAC,CACF;;wDAAA;;AAED,IAAI,UAAU,GAAG,YAAY;EAC3BA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACpBC,GAAG,CAAC,KAAK,CAAC;EACVA,GAAG,CAAC,MAAM,CAAC;EACXD,GAAK,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;EACvB,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,WAAW,EAAE;IAC9C,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;GAC7B,MAAM;IACL,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;GAC5B;EACD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE;IAC/C,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;GAC/B,MAAM;IACL,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;GAC9B;EACD,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE;IACnF,OAAO;GACR;;;EAGD,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC;EAC/F,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC;;EAEjG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;IACnB,YAAK;IACL,cAAM;IACN,IAAI,EAAE,MAAM,CAAC,YAAY,EAAE,GAAG,KAAK,GAAG,MAAM;GAC7C,CAAC,CAAC;CACJ,CAAC;;AAEF,IAAI,YAAY,GAAG,YAAY;EAC7BA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACpBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;;EAG3B,cAAU;EAAQ,cAAU;EAAE,OAAG;EAAE,YAAQ,mBAClC;EACXA,GAAK,CAAC,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAE,IAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;EACnEA,GAAK,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;EAC3DA,GAAK,CAAC,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;EAC9EC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;EAClBD,GAAK,CAAC,UAAU,GAAG,EAAE,CAAC;EACtBA,GAAK,CAAC,eAAe,GAAG,EAAE,CAAC;;EAE3BC,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC;EAC7C,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE;IACtC,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;GACvD;;EAEDA,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,iBAAiB,CAAC;EAC3C,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;IACrC,WAAW,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;GACrD;;EAEDD,GAAK,CAAC,oBAAoB,GAAG,YAAY,CAAC;EAC1CA,GAAK,CAAC,sBAAsB,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;EACtDA,GAAK,CAAC,wBAAwB,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;;EAExDC,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;EACvCA,GAAG,CAAC,aAAa,GAAG,CAAC,YAAY,CAAC;EAClCA,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC;EACtBA,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;EACjB,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE;IACrC,OAAO;GACR;EACD,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;IACtE,YAAY,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC;GAC/E;;EAED,MAAM,CAAC,WAAW,GAAG,CAAC,YAAY,CAAC;;;EAGnC,IAAI,GAAG,EAAE,QAAM,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;OAClD,QAAM,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;;EAEvDA,GAAG,CAAC,sBAAsB,CAAC;EAC3B,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC,EAAE;IAC9B,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE;MACtG,sBAAsB,GAAG,YAAY,CAAC;KACvC,MAAM;MACL,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC;KACpG;IACD,IAAI,MAAM,CAAC,aAAa,KAAK,MAAM,IAAI,MAAM,CAAC,mBAAmB,KAAK,KAAK,EAAE;MAC3E,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;KAC1G;GACF;;;EAGDA,GAAG,CAAC,SAAS,CAAC;EACdD,GAAK,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;EAC/CA,GAAK,CAAC,YAAY,GAAG,sBAAsB,GAAG,eAAe,CAAC;EAC9DA,GAAK,CAAC,cAAc,GAAG,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,eAAe,GAAG,YAAY,CAAC,GAAG,YAAY,CAAC,CAAC;EAC/F,KAAKC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE;IACxC,SAAS,GAAG,CAAC,CAAC;IACdD,GAAK,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC,EAAE;;MAE9BC,GAAG,CAAC,kBAAkB,YAAC;MACvBA,GAAG,CAAC,MAAM,YAAC;MACXA,GAAG,CAAC,GAAG,YAAC;MACR,IAAI,MAAM,CAAC,mBAAmB,KAAK,QAAQ,EAAE;QAC3C,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC;QACzC,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;QACrC,IAAI,MAAM,GAAG,cAAc,IAAI,CAAC,MAAM,KAAK,cAAc,IAAI,GAAG,KAAK,eAAe,GAAG,CAAC,CAAC,EAAE;UACzF,GAAG,IAAI,CAAC,CAAC;UACT,IAAI,GAAG,IAAI,eAAe,EAAE;YAC1B,GAAG,GAAG,CAAC,CAAC;YACR,MAAM,IAAI,CAAC,CAAC;WACb;SACF;QACD,kBAAkB,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,sBAAsB,CAAC,GAAG,eAAe,CAAC,CAAC;QACjF,KAAK;WACF,GAAG,CAAC;YACH,2BAA2B,EAAE,kBAAkB;YAC/C,wBAAwB,EAAE,kBAAkB;YAC5C,gBAAgB,EAAE,kBAAkB;YACpC,eAAe,EAAE,kBAAkB;YACnC,KAAK,EAAE,kBAAkB;WAC1B,CAAC,CAAC;OACN,MAAM;QACL,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;QACnC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC;OACnC;MACD,KAAK;SACF,GAAG;UACF,UAAQ,IAAE,MAAM,CAAC,YAAY,EAAE,GAAG,KAAK,GAAG,MAAM,EAAE;UAClD,CAAC,GAAG,KAAK,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAG,MAAM,CAAC,YAAY,QAAG,CAAC,CAAC;SACnE;SACA,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC;SAClC,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;KACjC;IACD,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,MAAM,EAAE,WAAS;IAC9C,IAAI,MAAM,CAAC,aAAa,KAAK,MAAM,EAAE;MACnC,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;MACrF,IAAI,MAAM,CAAC,YAAY,EAAE,WAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;KAC5D,MAAM;MACL,SAAS,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;MAC9F,IAAI,MAAM,CAAC,YAAY,EAAE,WAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;;MAE3D,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;QACb,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE;UACzB,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAM,SAAS,OAAI,CAAC;SAC1C,MAAM;UACL,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAM,SAAS,OAAI,CAAC;SAC3C;OACF;KACF;IACD,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;MACb,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,SAAS,CAAC;KACvC;IACD,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;;IAGhC,IAAI,MAAM,CAAC,cAAc,EAAE;MACzB,aAAa,GAAG,aAAa,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;MACrF,IAAI,aAAa,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,eAAa,GAAG,aAAa,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;MACpG,IAAI,CAAC,KAAK,CAAC,EAAE,eAAa,GAAG,aAAa,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;MAC7E,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,eAAa,GAAG,CAAC,CAAC;MAC1D,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,cAAc,KAAK,CAAC,EAAE,UAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;MAC3E,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAChC,MAAM;MACL,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,cAAc,KAAK,CAAC,EAAE,UAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;MAC3E,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;MAC/B,aAAa,GAAG,aAAa,GAAG,SAAS,GAAG,YAAY,CAAC;KAC1D;;IAED,MAAM,CAAC,WAAW,IAAI,SAAS,GAAG,YAAY,CAAC;;IAE/C,aAAa,GAAG,SAAS,CAAC;;IAE1B,QAAQ,IAAI,CAAC,CAAC;GACf;EACD,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC;EAC5EA,GAAG,CAAC,aAAa,CAAC;;EAElB;IACE,GAAG,IAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,EAAE;IACjF,UAAU,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,YAAY,QAAG,CAAC,EAAE,CAAC,CAAC;GAC5E;EACD,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,cAAc,EAAE;IAC7C,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE,YAAU,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,YAAY,QAAG,CAAC,EAAE,CAAC,CAAC;SACjG,YAAU,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,YAAY,QAAG,CAAC,EAAE,CAAC,CAAC;GAClF;;EAED,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC,EAAE;IAC9B,MAAM,CAAC,WAAW,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,sBAAsB,CAAC;IAChF,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC;IAClG,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE,YAAU,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,YAAY,QAAG,CAAC,EAAE,CAAC,CAAC;SACjG,YAAU,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,YAAY,QAAG,CAAC,EAAE,CAAC,CAAC;IACjF,IAAI,MAAM,CAAC,cAAc,EAAE;MACzB,aAAa,GAAG,EAAE,CAAC;MACnB,KAAKA,GAAG,CAACC,GAAC,GAAG,CAAC,EAAEA,GAAC,GAAG,QAAQ,CAAC,MAAM,EAAEA,GAAC,IAAI,CAAC,EAAE;QAC3C,IAAI,QAAQ,CAACA,GAAC,CAAC,GAAG,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAa,CAAC,IAAI,CAAC,QAAQ,CAACA,GAAC,CAAC,CAAC,CAAC;OACrF;MACD,QAAQ,GAAG,aAAa,CAAC;KAC1B;GACF;;;EAGD,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;IAC1B,aAAa,GAAG,EAAE,CAAC;IACnB,KAAKD,GAAG,CAACC,GAAC,GAAG,CAAC,EAAEA,GAAC,GAAG,QAAQ,CAAC,MAAM,EAAEA,GAAC,IAAI,CAAC,EAAE;MAC3C,IAAI,QAAQ,CAACA,GAAC,CAAC,IAAI,MAAM,CAAC,WAAW,GAAG,UAAU,EAAE;QAClD,aAAa,CAAC,IAAI,CAAC,QAAQ,CAACA,GAAC,CAAC,CAAC,CAAC;OACjC;KACF;IACD,QAAQ,GAAG,aAAa,CAAC;IACzB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;MAC/F,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC;KAChD;GACF;EACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,UAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;;EAE1C,IAAI,MAAM,CAAC,YAAY,KAAK,CAAC,EAAE;IAC7B,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE;MACzB,IAAI,GAAG,EAAE,QAAM,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAG,YAAY,OAAG,CAAC,EAAE,CAAC,CAAC;WACpD,QAAM,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAG,YAAY,OAAG,CAAC,EAAE,CAAC,CAAC;KACvD,MAAM,QAAM,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAG,YAAY,OAAG,CAAC,EAAE,CAAC,CAAC;GAC1D;;EAED,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;IACnB,cAAM;IACN,kBAAQ;IACR,sBAAU;IACV,gCAAe;GAChB,CAAC,CAAC;;EAEH,IAAI,YAAY,KAAK,oBAAoB,EAAE;IACzC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;GACnC;EACD,IAAI,QAAQ,CAAC,MAAM,KAAK,sBAAsB,EAAE;IAC9C,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,QAAM,CAAC,aAAa,EAAE,CAAC;IACxD,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;GACrC;EACD,IAAI,UAAU,CAAC,MAAM,KAAK,wBAAwB,EAAE;IAClD,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;GACvC;;EAED,IAAI,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,qBAAqB,EAAE;IAC9D,MAAM,CAAC,kBAAkB,EAAE,CAAC;GAC7B;CACF,CAAC;;AAEF,IAAI,gBAAgB,GAAG,YAAY;EACjCF,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACpBA,GAAK,CAAC,YAAY,GAAG,EAAE,CAAC;EACxBC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;EAClBA,GAAG,CAAC,CAAC,CAAC;;;EAGN,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,KAAK,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE;IAC7E,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;MAC9DD,GAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC;MACxC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAM;MAC3C,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAClD;GACF,MAAM;IACL,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;GAC5D;;;EAGD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IAC3C,IAAI,OAAO,YAAY,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;MAC1CA,GAAK,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;MAC5C,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;KACrD;GACF;;;EAGD,IAAI,SAAS,EAAE,QAAM,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAG,SAAS,OAAG,CAAC,CAAC,CAAC;CAClE,CAAC;;AAEF,IAAI,kBAAkB,GAAG,YAAY;EACnCA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACpBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;EAC7B,KAAKC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IACzC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;GAClG;CACF,CAAC;;AAEF,IAAI,oBAAoB,GAAG,UAAU,SAA+B,EAAE,CAAxB;uCAAA,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC;AAAG;EACrED,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACpBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;;EAErB,UAAM;EAAE,OAAG,cAAY;;EAE/B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,SAAO;EAChC,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,KAAK,WAAW,EAAE,QAAM,CAAC,kBAAkB,EAAE,CAAC;;EAEpFC,GAAG,CAAC,YAAY,GAAG,CAAC,SAAS,CAAC;EAC9B,IAAI,GAAG,EAAE,cAAY,GAAG,SAAS,CAAC;;;EAGlC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;;EAE7C,KAAKA,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IACzCD,GAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxBA,GAAK,CAAC,aAAa;MACjB;QACE,CAAC,YAAY,GAAG,CAAC,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,iBAAiB;OAC/F,GAAG,CAAC,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,qBAAqB,EAAE;MAChCA,GAAK,CAAC,WAAW,GAAG,CAAC,CAAC,YAAY,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;MAC9DA,GAAK,CAAC,UAAU,GAAG,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;MAC3DA,GAAK,CAAC,SAAS;gBACL,CAAC,WAAW,IAAI,CAAC,IAAI,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC/C,CAAC,UAAU,GAAG,CAAC,IAAI,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC;gBAC7C,CAAC,WAAW,IAAI,CAAC,IAAI,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;MAC1D,IAAI,SAAS,EAAE;QACb,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;OACjD;KACF;IACD,KAAK,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;GACvD;CACF,CAAC;;AAEF,IAAI,cAAc,GAAG,UAAU,SAA+B,EAAE,CAAxB;uCAAA,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC;AAAG;EAC/DA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACpBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;;EAE7BA,GAAK,CAAC,cAAc,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;EAC/D,YAAQ;EAAE,eAAW;EAAE,SAAK,gBAAY;EAC9CA,GAAK,CAAC,YAAY,GAAG,WAAW,CAAC;EACjCA,GAAK,CAAC,MAAM,GAAG,KAAK,CAAC;EACrB,IAAI,cAAc,KAAK,CAAC,EAAE;IACxB,QAAQ,GAAG,CAAC,CAAC;IACb,WAAW,GAAG,IAAI,CAAC;IACnB,KAAK,GAAG,IAAI,CAAC;GACd,MAAM;IACL,QAAQ,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAClE,WAAW,GAAG,QAAQ,IAAI,CAAC,CAAC;IAC5B,KAAK,GAAG,QAAQ,IAAI,CAAC,CAAC;GACvB;EACD,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;IACnB,kBAAQ;IACR,wBAAW;IACX,YAAK;GACN,CAAC,CAAC;;EAEH,IAAI,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,qBAAqB,EAAE,QAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;;EAEvG,IAAI,WAAW,IAAI,CAAC,YAAY,EAAE;IAChC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;GACtC;EACD,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE;IACpB,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;GAChC;EACD,IAAI,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE;IACxD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;GACzB;;EAED,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;CACnC,CAAC;;AAEF,IAAI,mBAAmB,GAAG,YAAY;EACpCA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;;EAGlB,UAAM;EAAE,UAAM;EAAE,cAAU;EAAE,eAAW;EAAE,aAAS,oBACzC;EACXA,GAAK,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;;EAE3D,MAAM,CAAC,WAAW,CAAC,EAAG,MAAM,CAAC,gBAAgB,OAAE,IAAE,MAAM,CAAC,cAAc,OAAE,IAAE,MAAM,CAAC,cAAc,OAAE,IAAE,MAAM,CAAC,yBAAyB,OAAE,IAAE,MAAM,CAAC,uBAAuB,OAAE,IAAE,MAAM,CAAC,uBAAuB,EAAE,CAAC,CAAC;;EAE3MC,GAAG,CAAC,WAAW,CAAC;EAChB,IAAI,SAAS,EAAE;IACb,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAE,IAAE,MAAM,CAAC,UAAU,iCAA2B,GAAE,WAAW,QAAG,CAAC,CAAC,CAAC;GACzG,MAAM;IACL,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;GACtC;;;EAGD,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;;EAE9C,IAAI,MAAM,CAAC,IAAI,EAAE;;IAEf,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE;MACpD,UAAU;SACP,QAAQ,CAAC,IAAE,IAAE,MAAM,CAAC,UAAU,YAAO,IAAE,MAAM,CAAC,mBAAmB,kCAA4B,GAAE,SAAS,QAAG,CAAC,CAAC;SAC7G,QAAQ,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;KAC/C,MAAM;MACL,UAAU;SACP,QAAQ,CAAC,IAAE,IAAE,MAAM,CAAC,UAAU,OAAE,IAAE,MAAM,CAAC,mBAAmB,iCAA2B,GAAE,SAAS,QAAG,CAAC,CAAC;SACvG,QAAQ,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;KAC/C;GACF;;EAEDA,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,IAAE,IAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;EACnG,IAAI,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;IACzC,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzB,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;GAC3C;;EAEDA,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,IAAE,IAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;EACnG,IAAI,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;IACzC,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;GAC3C;EACD,IAAI,MAAM,CAAC,IAAI,EAAE;;IAEf,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE;MAClD,UAAU;SACP,QAAQ,CAAC,IAAE,IAAE,MAAM,CAAC,UAAU,YAAO,IAAE,MAAM,CAAC,mBAAmB,kCAA4B,IAAE,SAAS,CAAC,IAAI,CAAC,yBAAyB,CAAC,SAAG,CAAC,CAAC;SAC7I,QAAQ,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;KAC7C,MAAM;MACL,UAAU;SACP,QAAQ,CAAC,IAAE,IAAE,MAAM,CAAC,UAAU,OAAE,IAAE,MAAM,CAAC,mBAAmB,iCAA2B,IAAE,SAAS,CAAC,IAAI,CAAC,yBAAyB,CAAC,SAAG,CAAC,CAAC;SACvI,QAAQ,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;KAC7C;IACD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE;MAClD,UAAU;SACP,QAAQ,CAAC,IAAE,IAAE,MAAM,CAAC,UAAU,YAAO,IAAE,MAAM,CAAC,mBAAmB,kCAA4B,IAAE,SAAS,CAAC,IAAI,CAAC,yBAAyB,CAAC,SAAG,CAAC,CAAC;SAC7I,QAAQ,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;KAC7C,MAAM;MACL,UAAU;SACP,QAAQ,CAAC,IAAE,IAAE,MAAM,CAAC,UAAU,OAAE,IAAE,MAAM,CAAC,mBAAmB,iCAA2B,IAAE,SAAS,CAAC,IAAI,CAAC,yBAAyB,CAAC,SAAG,CAAC,CAAC;SACvI,QAAQ,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;KAC7C;GACF;CACF,CAAC;;AAEF,IAAI,iBAAiB,GAAG,UAAU,cAAc,EAAE;EAChDD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACpBA,GAAK,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;EAElE,cAAU;EAAE,YAAQ;EAAE,UAAM;EAAe,iBAAa;EAAa,qBAAiB;EAAa,qBAAiB,oBAC3G;EACXC,GAAG,CAAC,WAAW,GAAG,cAAc,CAAC;EACjCA,GAAG,CAAC,SAAS,CAAC;EACd,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE;IACtC,KAAKA,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;MAC7C,IAAI,OAAO,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,WAAW,EAAE;QAC5C,IAAI,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,SAAS,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;UAC3G,WAAW,GAAG,CAAC,CAAC;SACjB,MAAM,IAAI,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,SAAS,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;UACtE,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;SACrB;OACF,MAAM,IAAI,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;QACrC,WAAW,GAAG,CAAC,CAAC;OACjB;KACF;;IAED,IAAI,MAAM,CAAC,mBAAmB,EAAE;MAC9B,IAAI,WAAW,GAAG,CAAC,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE,aAAW,GAAG,CAAC,CAAC;KAC5E;GACF;EACD,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;IACpC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;GACzC,MAAM;IACL,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;GAC7D;EACD,IAAI,SAAS,IAAI,QAAQ,CAAC,MAAM,EAAE,WAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;EAClE,IAAI,WAAW,KAAK,aAAa,EAAE;IACjC,IAAI,SAAS,KAAK,iBAAiB,EAAE;MACnC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;MAC7B,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;KAChC;IACD,OAAO;GACR;;;EAGDD,GAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,WAAW,EAAE,EAAE,CAAC,CAAC;;EAE7G,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;IACnB,oBAAS;IACT,oBAAS;IACT,4BAAa;IACb,wBAAW;GACZ,CAAC,CAAC;EACH,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;EACjC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;EAC/B,IAAI,iBAAiB,KAAK,SAAS,EAAE;IACnC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;GAChC;EACD,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;CAC5B,CAAC;;AAEF,IAAI,kBAAkB,GAAG,UAAU,CAAC,EAAE;EACpCA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACpBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;EAC7BA,GAAK,CAAC,KAAK,GAAG,yEAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAE,IAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;EAC9DC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;EACvB,IAAI,KAAK,EAAE;IACT,KAAKA,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;MAChD,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,YAAU,GAAG,IAAI,CAAC;KACnD;GACF;;EAED,IAAI,KAAK,IAAI,UAAU,EAAE;IACvB,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE;MACnD,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAC,yEAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,EAAE,CAAC,CAAC;KAC9E,MAAM;MACL,MAAM,CAAC,YAAY,GAAG,yEAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;KACxC;GACF,MAAM;IACL,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC;IAChC,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC;IAChC,OAAO;GACR;EACD,IAAI,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,WAAW,EAAE;IACjH,MAAM,CAAC,mBAAmB,EAAE,CAAC;GAC9B;CACF,CAAC;;AAEF,IAAI,MAAM,GAAG;EACX,sBAAU;EACV,0BAAY;EACZ,kCAAgB;EAChB,sCAAkB;EAClB,0CAAoB;EACpB,8BAAc;EACd,wCAAmB;EACnB,oCAAiB;EACjB,sCAAkB;CACnB,CAAC;;AAEF,IAAI,YAAY,GAAG,UAAU,IAAsC,EAAE,CAApC;6BAAA,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,GAAG,GAAG,GAAG;AAAG;EACpED,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;;EAGlB,UAAM;EAAE,OAAG;EAAE,aAAS;EAAE,cAAU,qBACzB;;EAEX,IAAI,MAAM,CAAC,gBAAgB,EAAE;IAC3B,OAAO,GAAG,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;GACrC;;EAEDC,GAAG,CAAC,gBAAgB,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;EAC/D,IAAI,GAAG,EAAE,kBAAgB,GAAG,CAAC,gBAAgB,CAAC;;EAE9C,OAAO,gBAAgB,IAAI,CAAC,CAAC;CAC9B,CAAC;;AAEF,IAAI,YAAY,GAAG,UAAU,SAAS,EAAE,YAAY,EAAE;EACpDD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EAElB,OAAG;EAAE,UAAM;EAAE,cAAU;EAAE,YAAQ,mBACxB;EACXC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;EACVA,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;EACVD,GAAK,CAAC,CAAC,GAAG,CAAC,CAAC;;EAEZ,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE;IACzB,CAAC,GAAG,GAAG,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;GAClC,MAAM;IACL,CAAC,GAAG,SAAS,CAAC;GACf;;EAED,IAAI,MAAM,CAAC,YAAY,EAAE;IACvB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;GACnB;;EAED,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;IAC5B,IAAI,OAAO,CAAC,YAAY,EAAE,YAAU,CAAC,SAAS,CAAC,eAAa,GAAE,CAAC,SAAK,GAAE,CAAC,SAAK,GAAE,CAAC,QAAI,CAAC,CAAC,CAAC;SACjF,YAAU,CAAC,SAAS,CAAC,aAAW,GAAE,CAAC,SAAK,GAAE,CAAC,QAAI,CAAC,CAAC,CAAC;GACxD;;EAED,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;;;EAGjDC,GAAG,CAAC,WAAW,CAAC;EAChBD,GAAK,CAAC,cAAc,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;EACrE,IAAI,cAAc,KAAK,CAAC,EAAE;IACxB,WAAW,GAAG,CAAC,CAAC;GACjB,MAAM;IACL,WAAW,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;GACtE;EACD,IAAI,WAAW,KAAK,QAAQ,EAAE;IAC5B,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;GAClC;;EAED,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;CAC7D,CAAC;;AAEF,IAAI,YAAY,GAAG,YAAY;EAC7B,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5B,CAAC;;AAEF,IAAI,YAAY,GAAG,YAAY;EAC7B,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;CACnD,CAAC;;AAEF,IAAI,SAAS,GAAG;EACd,0BAAY;EACZ,0BAAY;EACZ,0BAAY;EACZ,0BAAY;CACb,CAAC;;AAEF,IAAI,aAAa,GAAG,UAAU,QAAQ,EAAE,YAAY,EAAE;EACpDA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;;EAEpB,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;;EAEvC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;CACtD,CAAC;;AAEF,IAAI,eAAe,GAAG,UAAU,YAAmB,EAAE,SAAS,EAAE,CAApB;6CAAA,GAAG,IAAI;AAAc;EAC/DA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACZ,eAAW;EAAE,UAAM;EAAE,iBAAa,wBAAY;EACtD,IAAI,MAAM,CAAC,UAAU,EAAE;IACrB,MAAM,CAAC,gBAAgB,EAAE,CAAC;GAC3B;;EAEDC,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC;EACpB,IAAI,CAAC,GAAG,EAAE;IACR,IAAI,WAAW,GAAG,aAAa,EAAE,KAAG,GAAG,MAAM,CAAC;SACzC,IAAI,WAAW,GAAG,aAAa,EAAE,KAAG,GAAG,MAAM,CAAC;SAC9C,KAAG,GAAG,OAAO,CAAC;GACpB;;EAED,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;;EAE/B,IAAI,YAAY,IAAI,WAAW,KAAK,aAAa,EAAE;IACjD,IAAI,GAAG,KAAK,OAAO,EAAE;MACnB,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;MACzC,OAAO;KACR;IACD,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC1C,IAAI,GAAG,KAAK,MAAM,EAAE;MAClB,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;KACzC,MAAM;MACL,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;KACzC;GACF;CACF,CAAC;;AAEF,IAAI,eAAe,GAAG,UAAU,YAAmB,EAAE,SAAS,EAAE,CAApB;6CAAA,GAAG,IAAI;AAAc;EAC/DD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACZ,eAAW;EAAE,iBAAa,wBAAY;EAC9C,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;EACzB,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;;EAExBC,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC;EACpB,IAAI,CAAC,GAAG,EAAE;IACR,IAAI,WAAW,GAAG,aAAa,EAAE,KAAG,GAAG,MAAM,CAAC;SACzC,IAAI,WAAW,GAAG,aAAa,EAAE,KAAG,GAAG,MAAM,CAAC;SAC9C,KAAG,GAAG,OAAO,CAAC;GACpB;;EAED,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;;EAE7B,IAAI,YAAY,IAAI,WAAW,KAAK,aAAa,EAAE;IACjD,IAAI,GAAG,KAAK,OAAO,EAAE;MACnB,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;MACvC,OAAO;KACR;IACD,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACxC,IAAI,GAAG,KAAK,MAAM,EAAE;MAClB,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;KACvC,MAAM;MACL,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;KACvC;GACF;CACF,CAAC;;AAEF,IAAI,YAAY,GAAG;EACjB,4BAAa;EACb,gCAAe;EACf,aAAa,EAAE,eAAe;CAC/B,CAAC;;AAEF,IAAI,OAAO,GAAG,UAAU,QAAY,EAAE,KAAyB,EAAE,YAAmB,EAAE,QAAQ,EAAE,CAAhE;qCAAA,GAAG,CAAC,CAAO;+BAAA,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAc;6CAAA,GAAG,IAAI;AAAa;EAC/FD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACpBC,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC;EAC1B,IAAI,UAAU,GAAG,CAAC,EAAE,YAAU,GAAG,CAAC,CAAC;;EAGjC,UAAM;EAAE,YAAQ;EAAE,cAAU;EAAE,iBAAa;EAAE,eAAW;EAAE,OAAG;EAAE,cAAU,qBAChE;EACX,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,8BAA8B,EAAE;IAC7D,OAAO,KAAK,CAAC;GACd;;EAEDA,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;EAC/D,IAAI,SAAS,IAAI,QAAQ,CAAC,MAAM,EAAE,WAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;;EAElE,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,YAAY,EAAE;IACtF,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;GACvC;;EAEDD,GAAK,CAAC,SAAS,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;;;EAGvC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;;;EAGjC,IAAI,MAAM,CAAC,mBAAmB,EAAE;IAC9B,KAAKC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;MAC7C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE;QACnE,UAAU,GAAG,CAAC,CAAC;OAChB;KACF;GACF;;EAED,IAAI,MAAM,CAAC,WAAW,IAAI,UAAU,KAAK,WAAW,EAAE;IACpD,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,EAAE;MAC/F,OAAO,KAAK,CAAC;KACd;IACD,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,EAAE;MAC/F,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,KAAK,UAAU,EAAE,SAAO,KAAK,CAAC;KACrD;GACF;;EAEDA,GAAG,CAAC,SAAS,CAAC;EACd,IAAI,UAAU,GAAG,WAAW,EAAE,WAAS,GAAG,MAAM,CAAC;OAC5C,IAAI,UAAU,GAAG,WAAW,EAAE,WAAS,GAAG,MAAM,CAAC;OACjD,WAAS,GAAG,OAAO,CAAC;;;;EAIzB,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,SAAS,KAAK,MAAM,CAAC,SAAS,CAAC,EAAE;IACxF,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;;IAErC,IAAI,MAAM,CAAC,UAAU,EAAE;MACrB,MAAM,CAAC,gBAAgB,EAAE,CAAC;KAC3B;IACD,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE;MAC7B,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;KAChC;IACD,IAAI,SAAS,KAAK,OAAO,EAAE;MACzB,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;MAChD,MAAM,CAAC,aAAa,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;KAC/C;IACD,OAAO,KAAK,CAAC;GACd;;EAED,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;IACtC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAC7B,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtD,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAChD,MAAM,CAAC,aAAa,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;GAC/C,MAAM;IACL,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAC7B,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtD,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;MACrB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;MACxB,UAAU,CAAC,aAAa,CAAC,YAAM;QAC7B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,SAAO;QACxC,MAAM,CAAC,aAAa,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;OAC/C,CAAC,CAAC;KACJ;GACF;;EAED,OAAO,IAAI,CAAC;CACb,CAAC;;AAEF,IAAI,WAAW,GAAG,UAAU,QAAY,EAAE,KAAyB,EAAE,YAAmB,EAAE,QAAQ,EAAE,CAAhE;qCAAA,GAAG,CAAC,CAAO;+BAAA,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAc;6CAAA,GAAG,IAAI;AAAa;EACnGD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACpBC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;EACxB,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;IACtB,QAAQ,IAAI,MAAM,CAAC,YAAY,CAAC;GACjC;;EAED,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;CAChE,CAAC;;;AAGF,IAAI,SAAS,GAAG,UAAU,KAAyB,EAAE,YAAmB,EAAE,QAAQ,EAAE,CAArD;+BAAA,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAc;6CAAA,GAAG,IAAI;AAAa;EACnFD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACZ,UAAM;EAAE,aAAS,oBAAY;EACrC,IAAI,MAAM,CAAC,IAAI,EAAE;IACf,IAAI,SAAS,EAAE,SAAO,KAAK,CAAC;IAC5B,MAAM,CAAC,OAAO,EAAE,CAAC;;IAEjB,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACrD,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;GAClG;EACD,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;CAClG,CAAC;;;AAGF,IAAI,SAAS,GAAG,UAAU,KAAyB,EAAE,YAAmB,EAAE,QAAQ,EAAE,CAArD;+BAAA,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAc;6CAAA,GAAG,IAAI;AAAa;EACnFA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACZ,UAAM;EAAE,aAAS,oBAAY;;EAErC,IAAI,MAAM,CAAC,IAAI,EAAE;IACf,IAAI,SAAS,EAAE,SAAO,KAAK,CAAC;IAC5B,MAAM,CAAC,OAAO,EAAE,CAAC;;IAEjB,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACrD,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;GAC9E;EACD,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;CAC9E,CAAC;;;AAGF,IAAI,UAAU,GAAG,UAAU,KAAyB,EAAE,YAAmB,EAAE,QAAQ,EAAE,CAArD;+BAAA,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAc;6CAAA,GAAG,IAAI;AAAa;EACpFA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACpB,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;CAC1E,CAAC;;AAEF,IAAI,mBAAmB,GAAG,YAAY;EACpCA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACZ,UAAM;EAAE,cAAU,qBAAY;;EAEtCA,GAAK,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,KAAK,MAAM,GAAG,MAAM,CAAC,oBAAoB,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC;EAC7GC,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;EACvCA,GAAG,CAAC,SAAS,CAAC;EACd,IAAI,MAAM,CAAC,IAAI,EAAE;IACf,IAAI,MAAM,CAAC,SAAS,EAAE,SAAO;IAC7B,SAAS,GAAG,QAAQ,CAAC,yEAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,EAAE,CAAC,CAAC;IACjF,IAAI,MAAM,CAAC,cAAc,EAAE;MACzB;QACE,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;QAC1D,CAAC,YAAY,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;QACnF;QACA,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,YAAY,GAAG,UAAU;WACtB,QAAQ,CAAC,IAAE,IAAE,MAAM,CAAC,UAAU,iCAA2B,GAAE,SAAS,cAAS,IAAE,MAAM,CAAC,mBAAmB,OAAE,CAAC,CAAC;WAC7G,EAAE,CAAC,CAAC,CAAC;WACL,KAAK,EAAE,CAAC;;QAEX,KAAK,CAAC,QAAQ,CAAC,YAAM;UACnB,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;SAC9B,CAAC,CAAC;OACJ,MAAM;QACL,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;OAC9B;KACF,MAAM,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,EAAE;MAC9D,MAAM,CAAC,OAAO,EAAE,CAAC;MACjB,YAAY,GAAG,UAAU;SACtB,QAAQ,CAAC,IAAE,IAAE,MAAM,CAAC,UAAU,iCAA2B,GAAE,SAAS,cAAS,IAAE,MAAM,CAAC,mBAAmB,OAAE,CAAC,CAAC;SAC7G,EAAE,CAAC,CAAC,CAAC;SACL,KAAK,EAAE,CAAC;;MAEX,KAAK,CAAC,QAAQ,CAAC,YAAM;QACnB,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;OAC9B,CAAC,CAAC;KACJ,MAAM;MACL,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;KAC9B;GACF,MAAM;IACL,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;GAC9B;CACF,CAAC;;AAEF,IAAI,KAAK,GAAG;EACV,gBAAO;EACP,wBAAW;EACX,oBAAS;EACT,oBAAS;EACT,sBAAU;EACV,wCAAmB;CACpB,CAAC;;AAEF,IAAI,UAAU,GAAG,YAAY;EAC3BD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACZ,UAAM;EAAE,cAAU,qBAAY;;EAEtC,UAAU,CAAC,QAAQ,CAAC,IAAE,IAAE,MAAM,CAAC,UAAU,OAAE,IAAE,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;;EAEpFC,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAE,IAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;;EAE1D,IAAI,MAAM,CAAC,sBAAsB,EAAE;IACjCD,GAAK,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IACvF,IAAI,cAAc,KAAK,MAAM,CAAC,cAAc,EAAE;MAC5C,KAAKC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,IAAI,CAAC,EAAE;QAC1CD,GAAK,CAAC,SAAS,GAAG,yEAAC,CAAC,4DAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAG,MAAM,CAAC,UAAU,OAAE,IAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;QAC9G,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;OAC9B;MACD,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAE,IAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;KACvD;GACF;;EAED,IAAI,MAAM,CAAC,aAAa,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,QAAM,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;;EAEjG,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;EAChF,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,oBAAoB,CAAC;EACnD,IAAI,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE;IACvC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;GACrC;;EAEDA,GAAK,CAAC,aAAa,GAAG,EAAE,CAAC;EACzBA,GAAK,CAAC,YAAY,GAAG,EAAE,CAAC;EACxB,MAAM,CAAC,IAAI,CAAC,UAAC,QAAQ,EAAE,EAAE,EAAK;IAC5BA,GAAK,CAAC,KAAK,GAAG,yEAAC,CAAC,EAAE,CAAC,CAAC;IACpB,IAAI,QAAQ,GAAG,MAAM,CAAC,YAAY,EAAE,cAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1D,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,eAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxG,KAAK,CAAC,IAAI,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;GACjD,CAAC,CAAC;EACH,KAAKC,GAAG,CAACC,GAAC,GAAG,CAAC,EAAEA,GAAC,GAAG,YAAY,CAAC,MAAM,EAAEA,GAAC,IAAI,CAAC,EAAE;IAC/C,UAAU,CAAC,MAAM,CAAC,yEAAC,CAAC,YAAY,CAACA,GAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;GAC5F;EACD,KAAKD,GAAG,CAACC,GAAC,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,EAAEA,GAAC,IAAI,CAAC,EAAEA,GAAC,IAAI,CAAC,EAAE;IACrD,UAAU,CAAC,OAAO,CAAC,yEAAC,CAAC,aAAa,CAACA,GAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;GAC9F;CACF,CAAC;;AAEF,IAAI,OAAO,GAAG,YAAY;EACxBF,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EAElB,UAAM;EAAE,eAAW;EAAE,UAAM;EAAE,gBAAY;EAAE,kBAAc;EAAE,kBAAc;EAAE,YAAQ;EAAE,OAAG,cAC/E;EACXC,GAAG,CAAC,QAAQ,CAAC;EACb,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;EAC7B,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;;EAE7BD,GAAK,CAAC,aAAa,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;EAC7CA,GAAK,CAAC,IAAI,GAAG,aAAa,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;;;;EAInD,IAAI,WAAW,GAAG,YAAY,EAAE;IAC9B,QAAQ,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;IAC9D,QAAQ,IAAI,YAAY,CAAC;IACzBA,GAAK,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9D,IAAI,YAAY,IAAI,IAAI,KAAK,CAAC,EAAE;MAC9B,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;KAC1E;GACF,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,KAAK,MAAM,IAAI,WAAW,IAAI,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,EAAE;;IAE7I,QAAQ,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,WAAW,GAAG,YAAY,CAAC;IACvD,QAAQ,IAAI,YAAY,CAAC;IACzBA,GAAK,CAACG,cAAY,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9D,IAAIA,cAAY,IAAI,IAAI,KAAK,CAAC,EAAE;MAC9B,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;KAC1E;GACF;EACD,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;EACvC,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;CACxC,CAAC;;AAEF,IAAI,WAAW,GAAG,YAAY;EAC5BH,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACZ,cAAU;EAAE,UAAM;EAAE,UAAM,iBAAY;EAC9C,UAAU,CAAC,QAAQ,CAAC,IAAE,IAAE,MAAM,CAAC,UAAU,OAAE,IAAE,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;EACpF,MAAM,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;CAC9C,CAAC;;AAEF,IAAI,IAAI,GAAG;EACT,sBAAU;EACV,gBAAO;EACP,wBAAW;CACZ,CAAC;;AAEF,IAAI,aAAa,GAAG,UAAU,MAAM,EAAE;EACpCA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACpB,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,SAAO;EAC1DA,GAAK,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;EACrB,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;EACzB,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,kBAAkB,GAAG,cAAc,CAAC;EAC/D,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,cAAc,GAAG,WAAW,CAAC;EACxD,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;CAChD,CAAC;;AAEF,IAAI,eAAe,GAAG,YAAY;EAChCA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACpB,IAAI,OAAO,CAAC,KAAK,EAAE,SAAO;EAC1B,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;CAC7B,CAAC;;AAEF,IAAI,UAAU,GAAG;EACf,4BAAa;EACb,gCAAe;CAChB,CAAC;;AAEF,IAAI,WAAW,GAAG,UAAU,MAAM,EAAE;EAClCA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACZ,cAAU;EAAE,UAAM,iBAAY;EACtC,IAAI,MAAM,CAAC,IAAI,EAAE;IACf,MAAM,CAAC,WAAW,EAAE,CAAC;GACtB;EACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,QAAQ,IAAI,MAAM,EAAE;IACpD,KAAKC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;MACzC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,YAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7C;GACF,MAAM;IACL,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;GAC3B;EACD,IAAI,MAAM,CAAC,IAAI,EAAE;IACf,MAAM,CAAC,UAAU,EAAE,CAAC;GACrB;EACD,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;IAC1C,MAAM,CAAC,MAAM,EAAE,CAAC;GACjB;CACF,CAAC;;AAEF,IAAI,YAAY,GAAG,UAAU,MAAM,EAAE;EACnCD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACZ,UAAM;EAAE,cAAU;EAAE,eAAW,sBAAY;;EAEnD,IAAI,MAAM,CAAC,IAAI,EAAE;IACf,MAAM,CAAC,WAAW,EAAE,CAAC;GACtB;EACDC,GAAG,CAAC,cAAc,GAAG,WAAW,GAAG,CAAC,CAAC;EACrC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,QAAQ,IAAI,MAAM,EAAE;IACpD,KAAKA,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;MACzC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,YAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9C;IACD,cAAc,GAAG,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;GAC9C,MAAM;IACL,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;GAC5B;EACD,IAAI,MAAM,CAAC,IAAI,EAAE;IACf,MAAM,CAAC,UAAU,EAAE,CAAC;GACrB;EACD,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;IAC1C,MAAM,CAAC,MAAM,EAAE,CAAC;GACjB;EACD,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;CAC1C,CAAC;;AAEF,IAAI,WAAW,GAAG,UAAU,aAAa,EAAE;EACzCD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACZ,UAAM;EAAE,cAAU;EAAE,eAAW,sBAAY;;EAEnD,IAAI,MAAM,CAAC,IAAI,EAAE;IACf,MAAM,CAAC,WAAW,EAAE,CAAC;IACrB,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAE,IAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;GAC9D;EACDC,GAAG,CAAC,cAAc,GAAG,WAAW,CAAC;EACjCA,GAAG,CAAC,aAAa,CAAC;;EAElB,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,QAAQ,IAAI,aAAa,EAAE;IAClE,KAAKA,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;MAChD,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;MACjC,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,QAAM,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC;MAC3E,IAAI,aAAa,GAAG,cAAc,EAAE,gBAAc,IAAI,CAAC,CAAC;KACzD;IACD,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;GAC9C,MAAM;IACL,aAAa,GAAG,aAAa,CAAC;IAC9B,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,QAAM,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3E,IAAI,aAAa,GAAG,cAAc,EAAE,gBAAc,IAAI,CAAC,CAAC;IACxD,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;GAC9C;;EAED,IAAI,MAAM,CAAC,IAAI,EAAE;IACf,MAAM,CAAC,UAAU,EAAE,CAAC;GACrB;;EAED,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;IAC1C,MAAM,CAAC,MAAM,EAAE,CAAC;GACjB;EACD,IAAI,MAAM,CAAC,IAAI,EAAE;IACf,MAAM,CAAC,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;GAChE,MAAM;IACL,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;GAC1C;CACF,CAAC;;AAEF,IAAI,eAAe,GAAG,YAAY;EAChCD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;;EAEpBA,GAAK,CAAC,aAAa,GAAG,EAAE,CAAC;EACzB,KAAKC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IAChD,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;GACvB;EACD,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;CACnC,CAAC;;AAEF,IAAI,YAAY,GAAG;EACjB,wBAAW;EACX,0BAAY;EACZ,wBAAW;EACX,gCAAe;CAChB,CAAC;;AAEFD,GAAK,CAAC,MAAM,GAAG,CAAC,SAAS,MAAM,GAAG;EAChCA,GAAK,CAAC,EAAE,GAAG,0DAAM,CAAC,SAAS,CAAC,SAAS,CAAC;;EAEtCA,GAAK,CAAC,MAAM,GAAG;IACb,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,KAAK;IACd,aAAa,EAAE,KAAK;IACpB,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,0DAAM,CAAC,OAAO,IAAI,0DAAM,CAAC,QAAQ;IAC1C,QAAQ,EAAE,0DAAM,CAAC,OAAO,IAAI,0DAAM,CAAC,QAAQ;GAC5C,CAAC;;EAEFA,GAAK,CAAC,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;EAC9DA,GAAK,CAAC,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;EACxDA,GAAK,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;EAC9CA,GAAK,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;EACjDA,GAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;;;;EAI/D,IAAI,OAAO,EAAE;IACX,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC;IACtB,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;GACvB;;EAED,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE;IACvB,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC;IACtB,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,aAAa,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;GAChE;EACD,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE;IAC1B,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC;IAClB,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC;GACnB;;EAED,IAAI,MAAM,IAAI,CAAC,IAAI,EAAE;IACnB,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;GACtB;EACD,IAAI,IAAI,EAAE;IACR,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC9C,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;GACpB;EACD,IAAI,IAAI,EAAE;IACR,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IAC/D,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;GACtB;;EAED,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;IACjE,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;MAC3C,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KACxE;GACF;;;EAGD,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;;;EAGlE,MAAM,CAAC,OAAO,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;;;EAGpF,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,KAAK,KAAK,EAAE;IACpCA,GAAK,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjDA,GAAK,CAAC,YAAY,GAAG,4DAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;IACrE,MAAM,CAAC,SAAS;MACd,CAAC,MAAM,CAAC,OAAO;MACf,CAAC,IAAI,IAAI,MAAM,CAAC;MAChB,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;MAChF,YAAY,IAAI,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;GACnF;;;EAGD,MAAM,CAAC,UAAU,GAAG,0DAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC;;;EAGjD,OAAO,MAAM,CAAC;CACf,EAAE,CAAC,CAAC;;AAEL,IAAI,YAAY,GAAG,UAAU,KAAK,EAAE;EAClCA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACpBA,GAAK,CAAC,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;EAC/B,UAAM;EAAE,WAAO,kBAAY;EACnC,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,8BAA8B,EAAE;IAC7D,OAAO;GACR;EACDC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;EACd,IAAI,CAAC,CAAC,aAAa,EAAE,GAAC,GAAG,CAAC,CAAC,aAAa,CAAC;EACzC,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC;EAC/C,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,SAAO;EACnE,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,SAAO;EACjD,IAAI,MAAM,CAAC,SAAS,IAAI,yEAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,GAAG,IAAE,IAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;IACjI,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,OAAO;GACR;EACD,IAAI,MAAM,CAAC,YAAY,EAAE;IACvB,IAAI,CAAC,yEAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,SAAO;GACnD;;EAED,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,KAAK,YAAY,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;EAChF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,KAAK,YAAY,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;EAChFD,GAAK,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;EAChCA,GAAK,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;;;;EAIhC;IACE,MAAM,CAAC,GAAG;IACV,CAAC,MAAM,CAAC,OAAO;IACf,MAAM,CAAC,qBAAqB;IAC5B,CAAC,MAAM,IAAI,MAAM,CAAC,qBAAqB,CAAC;IACxC,CAAC,MAAM,IAAI,0DAAM,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,qBAAqB,CAAC;IAC9D;IACA,OAAO;GACR;;EAED,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;IACpB,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,KAAK;IACd,mBAAmB,EAAE,IAAI;IACzB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,SAAS;GACvB,CAAC,CAAC;;EAEH,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;EACxB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;EACxB,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;EACrC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;EACzB,MAAM,CAAC,UAAU,EAAE,CAAC;EACpB,MAAM,CAAC,cAAc,GAAG,SAAS,CAAC;EAClC,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,SAAO,CAAC,kBAAkB,GAAG,KAAK,CAAC;EAC7D,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE;IAC3BC,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;IAC1B,IAAI,yEAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,gBAAc,GAAG,KAAK,CAAC;IACjE;MACE,4DAAQ,CAAC,aAAa;MACtB,yEAAC,CAAC,4DAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;MAClD,4DAAQ,CAAC,aAAa,KAAK,CAAC,CAAC,MAAM;MACnC;MACA,4DAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;KAC/B;IACD,IAAI,cAAc,IAAI,MAAM,CAAC,cAAc,EAAE;MAC3C,CAAC,CAAC,cAAc,EAAE,CAAC;KACpB;GACF;EACD,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;CAC9B,CAAC;;AAEF,IAAI,WAAW,GAAG,UAAU,KAAK,EAAE;EACjCD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACpBA,GAAK,CAAC,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;EAC/B,UAAM;EAAE,WAAO;EAAE,OAAG,cAAY;EACxCC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;EACd,IAAI,CAAC,CAAC,aAAa,EAAE,GAAC,GAAG,CAAC,CAAC,aAAa,CAAC;EACzC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;IACtB,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,EAAE;MAC9C,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;KACrC;IACD,OAAO;GACR;EACD,IAAI,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,SAAO;EAC3DD,GAAK,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,WAAW,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;EAC1EA,GAAK,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,WAAW,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;EAC1E,IAAI,CAAC,CAAC,uBAAuB,EAAE;IAC7B,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;IACvB,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;IACvB,OAAO;GACR;EACD,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;;IAE1B,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,IAAI,OAAO,CAAC,SAAS,EAAE;MACrB,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;QACpB,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;OAChB,CAAC,CAAC;MACH,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;KACtC;IACD,OAAO;GACR;EACD,IAAI,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC,mBAAmB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;IACtE,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;;MAEvB;QACE,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACrE,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACrE;QACA,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;QAC1B,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;QACxB,OAAO;OACR;KACF,MAAM;MACL,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;MACrE,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;MACrE;MACA,OAAO;KACR;GACF;EACD,IAAI,OAAO,CAAC,YAAY,IAAI,4DAAQ,CAAC,aAAa,EAAE;IAClD,IAAI,CAAC,CAAC,MAAM,KAAK,4DAAQ,CAAC,aAAa,IAAI,yEAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;MAC/E,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;MACvB,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;MAC1B,OAAO;KACR;GACF;EACD,IAAI,OAAO,CAAC,mBAAmB,EAAE;IAC/B,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;GAC7B;EACD,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,SAAO;;EAE1D,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;EACzB,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;;EAEzBA,GAAK,CAAC,KAAK,GAAG,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;EAChDA,GAAK,CAAC,KAAK,GAAG,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;;EAEhD,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,WAAW,EAAE;IAC9CC,GAAG,CAAC,UAAU,CAAC;IACf,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE;MAClI,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;KAC7B,MAAM;;MAEL,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE;QAC3C,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;QAC5E,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,UAAU,GAAG,MAAM,CAAC,UAAU,GAAG,CAAC,EAAE,GAAG,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;OACtH;KACF;GACF;EACD,IAAI,OAAO,CAAC,WAAW,EAAE;IACvB,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;GACrC;EACD,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE;IACtC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,MAAM,EAAE;MAC9E,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;KAC5B;GACF;EACD,IAAI,OAAO,CAAC,WAAW,EAAE;IACvB,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;IAC1B,OAAO;GACR;EACD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;IACxB,OAAO;GACR;EACD,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;EAC1B,CAAC,CAAC,cAAc,EAAE,CAAC;EACnB,IAAI,MAAM,CAAC,wBAAwB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;IACrD,CAAC,CAAC,eAAe,EAAE,CAAC;GACrB;;EAED,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;IACpB,IAAI,MAAM,CAAC,IAAI,EAAE;MACf,MAAM,CAAC,OAAO,EAAE,CAAC;KAClB;IACD,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAC/C,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,MAAM,CAAC,SAAS,EAAE;MACpB,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;KAChE;IACD,OAAO,CAAC,mBAAmB,GAAG,KAAK,CAAC;;IAEpC,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,cAAc,KAAK,IAAI,IAAI,MAAM,CAAC,cAAc,KAAK,IAAI,CAAC,EAAE;MAC3F,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KAC5B;IACD,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;GACnC;EACD,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;EAC7B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;;EAEvBA,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC;EACjD,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;;EAEpB,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC;EAC1B,IAAI,GAAG,EAAE,MAAI,GAAG,CAAC,IAAI,CAAC;;EAEtB,MAAM,CAAC,cAAc,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC;EACnD,OAAO,CAAC,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC;;EAEzDA,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC;EAC/BA,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;EAC7C,IAAI,MAAM,CAAC,mBAAmB,EAAE;IAC9B,eAAe,GAAG,CAAC,CAAC;GACrB;EACD,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,gBAAgB,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE;IAClE,mBAAmB,GAAG,KAAK,CAAC;IAC5B,IAAI,MAAM,CAAC,UAAU,EAAE,SAAO,CAAC,gBAAgB,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,WAAC,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,EAAI,eAAe,GAAC,CAAC;GAC/J,MAAM,IAAI,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,gBAAgB,GAAG,MAAM,CAAC,YAAY,EAAE,EAAE;IACvE,mBAAmB,GAAG,KAAK,CAAC;IAC5B,IAAI,MAAM,CAAC,UAAU,EAAE,SAAO,CAAC,gBAAgB,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,WAAC,MAAM,CAAC,YAAY,EAAE,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,EAAI,eAAe,GAAC,CAAC;GAC9J;;EAED,IAAI,mBAAmB,EAAE;IACvB,CAAC,CAAC,uBAAuB,GAAG,IAAI,CAAC;GAClC;;;EAGD,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,KAAK,MAAM,IAAI,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,cAAc,EAAE;IACnH,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;GACnD;EACD,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,KAAK,MAAM,IAAI,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,cAAc,EAAE;IACnH,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;GACnD;;;;EAID,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE;IACxB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,kBAAkB,EAAE;MACnE,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;QAC/B,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAClC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;QAClD,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7G,OAAO;OACR;KACF,MAAM;MACL,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;MAClD,OAAO;KACR;GACF;;EAED,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,SAAO;;;EAGjC,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,qBAAqB,EAAE;IACjF,MAAM,CAAC,iBAAiB,EAAE,CAAC;IAC3B,MAAM,CAAC,mBAAmB,EAAE,CAAC;GAC9B;EACD,IAAI,MAAM,CAAC,QAAQ,EAAE;;IAEnB,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;MACnC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QACtB,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAC9D,IAAI,EAAE,OAAO,CAAC,cAAc;OAC7B,CAAC,CAAC;KACJ;IACD,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;MACtB,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,UAAU,GAAG,UAAU,CAAC;MAClE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE;KAClB,CAAC,CAAC;GACJ;;EAED,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;;EAEhD,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC/C,CAAC;;AAEF,IAAI,UAAU,GAAG,UAAU,KAAK,EAAE;EAChCD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACpBA,GAAK,CAAC,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;;EAGrC,UAAM;EAAE,WAAO;EAAE,OAAG;EAAE,cAAU;EAAE,cAAU;EAAE,YAAQ,mBAC7C;EACXC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;EACd,IAAI,CAAC,CAAC,aAAa,EAAE,GAAC,GAAG,CAAC,CAAC,aAAa,CAAC;EACzC,IAAI,OAAO,CAAC,mBAAmB,EAAE;IAC/B,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;GAC5B;EACD,OAAO,CAAC,mBAAmB,GAAG,KAAK,CAAC;EACpC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;IACtB,IAAI,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,EAAE;MACxC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KAC7B;IACD,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;IACxB,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;IAC5B,OAAO;GACR;;EAED,IAAI,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,cAAc,KAAK,IAAI,IAAI,MAAM,CAAC,cAAc,KAAK,IAAI,CAAC,EAAE;IACnI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;GAC7B;;;EAGDD,GAAK,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;EACjCA,GAAK,CAAC,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;;;EAGvD,IAAI,MAAM,CAAC,UAAU,EAAE;IACrB,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtB,IAAI,QAAQ,GAAG,GAAG,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,GAAG,EAAE;MAClE,IAAI,OAAO,CAAC,YAAY,EAAE,cAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;MAC7D,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAM;QAC1C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,SAAO;QACxC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;OACzB,EAAE,GAAG,CAAC,CAAC;KACT;IACD,IAAI,QAAQ,GAAG,GAAG,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,GAAG,EAAE;MAClE,IAAI,OAAO,CAAC,YAAY,EAAE,cAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;MAC7D,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;KAC7B;GACF;;EAED,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;EACpC,KAAK,CAAC,QAAQ,CAAC,YAAM;IACnB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAM,CAAC,UAAU,GAAG,IAAI,CAAC;GACjD,CAAC,CAAC;;EAEH,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,OAAO,CAAC,gBAAgB,KAAK,OAAO,CAAC,cAAc,EAAE;IACjJ,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;IAC1B,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;IACxB,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;IAC5B,OAAO;GACR;EACD,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;EAC1B,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;EACxB,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;;EAE5BC,GAAG,CAAC,UAAU,CAAC;EACf,IAAI,MAAM,CAAC,YAAY,EAAE;IACvB,UAAU,GAAG,GAAG,GAAG,MAAM,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;GACzD,MAAM;IACL,UAAU,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC;GACxC;EACD,IAAI,MAAM,CAAC,QAAQ,EAAE;IACnB,IAAI,UAAU,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE;MACvC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;MACnC,OAAO;KACR,MAAM,IAAI,UAAU,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE;MAC9C,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE;QAC1C,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;OACrC,MAAM;QACL,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;OAC1C;MACD,OAAO;KACR;;IAED,IAAI,MAAM,CAAC,gBAAgB,EAAE;MAC3B,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACjCD,GAAK,CAAC,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;QAC/CA,GAAK,CAAC,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;;QAE/CA,GAAK,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;QACjEA,GAAK,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;QACrD,MAAM,CAAC,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;QAClC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;QACrB,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,uBAAuB,EAAE;UAC9D,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;SACrB;;;QAGD,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE;UAC1D,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;SACrB;OACF,MAAM;QACL,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;OACrB;MACD,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,6BAA6B,CAAC;;MAExD,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;MAC9BC,GAAG,CAAC,gBAAgB,GAAG,IAAI,GAAG,MAAM,CAAC,qBAAqB,CAAC;MAC3DD,GAAK,CAAC,gBAAgB,GAAG,MAAM,CAAC,QAAQ,GAAG,gBAAgB,CAAC;;MAE5DC,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,GAAG,gBAAgB,CAAC;MACtD,IAAI,GAAG,EAAE,aAAW,GAAG,CAAC,WAAW,CAAC;MACpCA,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;MACrBA,GAAG,CAAC,mBAAmB,CAAC;MACxBD,GAAK,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,2BAA2B,CAAC;MACzF,IAAI,WAAW,GAAG,MAAM,CAAC,YAAY,EAAE,EAAE;QACvC,IAAI,MAAM,CAAC,sBAAsB,EAAE;UACjC,IAAI,WAAW,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE;YACvD,WAAW,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,YAAY,CAAC;WACpD;UACD,mBAAmB,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;UAC5C,QAAQ,GAAG,IAAI,CAAC;UAChB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;SACpC,MAAM;UACL,WAAW,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;SACrC;OACF,MAAM,IAAI,WAAW,GAAG,MAAM,CAAC,YAAY,EAAE,EAAE;QAC9C,IAAI,MAAM,CAAC,sBAAsB,EAAE;UACjC,IAAI,WAAW,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,YAAY,EAAE;YACtD,WAAW,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,YAAY,CAAC;WACpD;UACD,mBAAmB,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;UAC5C,QAAQ,GAAG,IAAI,CAAC;UAChB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;SACpC,MAAM;UACL,WAAW,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;SACrC;OACF,MAAM,IAAI,MAAM,CAAC,cAAc,EAAE;QAChCC,GAAG,CAAC,SAAS,CAAC;QACd,KAAKA,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;UAC3C,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE;YAC9B,SAAS,GAAG,CAAC,CAAC;YACd,MAAM;WACP;SACF;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,MAAM,CAAC,cAAc,KAAK,MAAM,EAAE;UACrI,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;SACnC,MAAM;UACL,WAAW,GAAG,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;SACvC;QACD,WAAW,GAAG,CAAC,WAAW,CAAC;OAC5B;;MAED,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE;QACzB,IAAI,GAAG,EAAE;UACP,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;SAClF,MAAM;UACL,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;SACjF;OACF,MAAM,IAAI,MAAM,CAAC,cAAc,EAAE;QAChC,MAAM,CAAC,UAAU,EAAE,CAAC;QACpB,OAAO;OACR;;MAED,IAAI,MAAM,CAAC,sBAAsB,IAAI,QAAQ,EAAE;QAC7C,MAAM,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QAC3C,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QACvC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACjC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;QACpD,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,UAAU,CAAC,aAAa,CAAC,YAAM;UAC7B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,SAAO;UACxE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;;UAE9B,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;UACnC,MAAM,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;UACzC,UAAU,CAAC,aAAa,CAAC,YAAM;YAC7B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,SAAO;YACxC,MAAM,CAAC,aAAa,EAAE,CAAC;WACxB,CAAC,CAAC;SACJ,CAAC,CAAC;OACJ,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE;QAC1B,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACnC,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QACvC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACjC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;UACrB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;UACxB,UAAU,CAAC,aAAa,CAAC,YAAM;YAC7B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,SAAO;YACxC,MAAM,CAAC,aAAa,EAAE,CAAC;WACxB,CAAC,CAAC;SACJ;OACF,MAAM;QACL,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;OACpC;;MAED,MAAM,CAAC,iBAAiB,EAAE,CAAC;MAC3B,MAAM,CAAC,mBAAmB,EAAE,CAAC;KAC9B;IACD,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,QAAQ,IAAI,MAAM,CAAC,YAAY,EAAE;MAC/D,MAAM,CAAC,cAAc,EAAE,CAAC;MACxB,MAAM,CAAC,iBAAiB,EAAE,CAAC;MAC3B,MAAM,CAAC,mBAAmB,EAAE,CAAC;KAC9B;IACD,OAAO;GACR;;;EAGDA,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;EAClBA,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;EAC1C,KAAKA,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,MAAM,CAAC,cAAc,EAAE;IACjE,IAAI,OAAO,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,WAAW,EAAE;MAChE,IAAI,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,GAAG,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,EAAE;QACrF,SAAS,GAAG,CAAC,CAAC;QACd,SAAS,GAAG,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;OACnE;KACF,MAAM,IAAI,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;MACtC,SAAS,GAAG,CAAC,CAAC;MACd,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACnF;GACF;;;EAGDD,GAAK,CAAC,KAAK,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC;;EAE/D,IAAI,QAAQ,GAAG,MAAM,CAAC,YAAY,EAAE;;IAElC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;MACtB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;MACnC,OAAO;KACR;IACD,IAAI,MAAM,CAAC,cAAc,KAAK,MAAM,EAAE;MACpC,IAAI,KAAK,IAAI,MAAM,CAAC,eAAe,EAAE,QAAM,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;WAClF,QAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;KAChC;IACD,IAAI,MAAM,CAAC,cAAc,KAAK,MAAM,EAAE;MACpC,IAAI,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,EAAE,QAAM,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;WACvF,QAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;KAChC;GACF,MAAM;;IAEL,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;MACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;MACnC,OAAO;KACR;IACD,IAAI,MAAM,CAAC,cAAc,KAAK,MAAM,EAAE;MACpC,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;KACnD;IACD,IAAI,MAAM,CAAC,cAAc,KAAK,MAAM,EAAE;MACpC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;KAC3B;GACF;CACF,CAAC;;AAEF,IAAI,QAAQ,GAAG,YAAY;EACzBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;;EAEZ,UAAM;EAAE,MAAE,aAAY;;EAE9B,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,KAAK,CAAC,EAAE,SAAO;;;EAGvC,IAAI,MAAM,CAAC,WAAW,EAAE;IACtB,MAAM,CAAC,aAAa,EAAE,CAAC;GACxB;;;EAGO,kBAAc;EAAE,kBAAc,yBAAY;;;EAGlD,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;EAC7B,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;;EAE7B,MAAM,CAAC,UAAU,EAAE,CAAC;EACpB,MAAM,CAAC,YAAY,EAAE,CAAC;;EAEtB,IAAI,MAAM,CAAC,QAAQ,EAAE;IACnBA,GAAK,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IACxG,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAClC,MAAM,CAAC,iBAAiB,EAAE,CAAC;IAC3B,MAAM,CAAC,mBAAmB,EAAE,CAAC;;IAE7B,IAAI,MAAM,CAAC,UAAU,EAAE;MACrB,MAAM,CAAC,gBAAgB,EAAE,CAAC;KAC3B;GACF,MAAM;IACL,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,KAAK,MAAM,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE;MAClH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;KAC1D,MAAM;MACL,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;KACpD;GACF;;EAED,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;EACvC,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;CACxC,CAAC;;AAEF,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE;EACzBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACpB,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;IACtB,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,GAAC,CAAC,cAAc,EAAE,CAAC;IACpD,IAAI,MAAM,CAAC,MAAM,CAAC,wBAAwB,IAAI,MAAM,CAAC,SAAS,EAAE;MAC9D,CAAC,CAAC,eAAe,EAAE,CAAC;MACpB,CAAC,CAAC,wBAAwB,EAAE,CAAC;KAC9B;GACF;CACF,CAAC;;AAEF,SAAS,YAAY,GAAG;EACtBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EAElB,UAAM;EAAE,eAAW;EAAE,MAAE;EAAE,aAAS,oBACzB;;EAEX;IACE,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;GAC7C;;EAED,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;;EAEtCA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,iBAAiB,KAAK,WAAW,GAAG,EAAE,GAAG,SAAS,CAAC;EACzEA,GAAK,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;;;EAGhC;IACE,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,qBAAqB,CAAC,EAAE;MAC9E,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;MACvE,4DAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;MACzE,4DAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;KACtE,MAAM;MACL,IAAI,OAAO,CAAC,KAAK,EAAE;QACjBA,GAAK,CAAC,eAAe,GAAG,WAAW,CAAC,KAAK,KAAK,YAAY,IAAI,OAAO,CAAC,eAAe,IAAI,MAAM,CAAC,gBAAgB,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QAC7J,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QACjF,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,eAAe,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAO,EAAE,GAAG,OAAO,CAAC,CAAC;QAC/H,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;OAC9E;MACD,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE;QACtH,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACjE,4DAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACpE,4DAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;OAChE;KACF;;IAED,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,wBAAwB,EAAE;MAC3D,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KACxD;GACF;;;EAGD,MAAM,CAAC,EAAE,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;CAC9C;;AAED,SAAS,YAAY,GAAG;EACtBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;;EAGlB,UAAM;EAAE,eAAW;EAAE,MAAE;EAAE,aAAS,oBACzB;;EAEXA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,iBAAiB,KAAK,WAAW,GAAG,EAAE,GAAG,SAAS,CAAC;EACzEA,GAAK,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;;;EAGhC;IACE,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,qBAAqB,CAAC,EAAE;MAC9E,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;MAC1E,4DAAQ,CAAC,mBAAmB,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;MAC5E,4DAAQ,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;KACzE,MAAM;MACL,IAAI,OAAO,CAAC,KAAK,EAAE;QACjBA,GAAK,CAAC,eAAe,GAAG,WAAW,CAAC,KAAK,KAAK,cAAc,IAAI,OAAO,CAAC,eAAe,IAAI,MAAM,CAAC,gBAAgB,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QAC/J,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QACpF,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC1E,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;OACjF;MACD,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE;QACtH,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACpE,4DAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACvE,4DAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;OACnE;KACF;;IAED,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,wBAAwB,EAAE;MAC3D,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KAC3D;GACF;;;EAGD,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;CAC/C;;AAED,IAAI,MAAM,GAAG;EACX,0BAAY;EACZ,0BAAY;CACb,CAAC;;AAEF,IAAI,aAAa,GAAG,YAAY;EAC9BA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACZ,eAAW;EAAiB,uFAAC;EAAE,UAAM,iBAAY;EACzDA,GAAK,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;EACvC,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,SAAO;;EAEnFA,GAAK,CAAC,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;EACrD,IAAI,UAAU,IAAI,MAAM,CAAC,iBAAiB,KAAK,UAAU,EAAE;IACzDA,GAAK,CAAC,iBAAiB,GAAG,UAAU,IAAI,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC;IACtGA,GAAK,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa,CAAC,CAAC;;IAE9F,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;;IAE/C,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;MACnB,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc;MAC5C,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc;MAC5C,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc;KAC7C,CAAC,CAAC;;IAEH,MAAM,CAAC,iBAAiB,GAAG,UAAU,CAAC;;IAEtC,IAAI,WAAW,EAAE;MACf,MAAM,CAAC,WAAW,EAAE,CAAC;MACrB,MAAM,CAAC,UAAU,EAAE,CAAC;MACpB,MAAM,CAAC,YAAY,EAAE,CAAC;MACtB,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,GAAG,YAAY,CAAC,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;KAC9E;IACD,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;GAC9C;CACF,CAAC;;AAEF,IAAI,aAAa,GAAG,UAAU,WAAW,EAAE;;EAEzC,IAAI,CAAC,WAAW,EAAE,SAAO,SAAS,CAAC;EACnCC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;EACvBD,GAAK,CAAC,MAAM,GAAG,EAAE,CAAC;EAClB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,UAAC,KAAK,EAAK;IAC1C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;GACpB,CAAC,CAAC;EACH,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,EAAK,iBAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,IAAC,CAAC;EACzD,KAAKC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IACzCD,GAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,KAAK,IAAI,0DAAM,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE;MAC7C,UAAU,GAAG,KAAK,CAAC;KACpB;GACF;EACD,OAAO,UAAU,IAAI,KAAK,CAAC;CAC5B,CAAC;;AAEF,IAAI,WAAW,GAAG,EAAE,4BAAa,EAAE,4BAAa,EAAE,CAAC;;AAEnDA,GAAK,CAAC,OAAO,GAAG,CAAC,SAAS,OAAO,GAAG;EAClC,SAAS,QAAQ,GAAG;IAClBA,GAAK,CAAC,EAAE,GAAG,0DAAM,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;GAC7F;EACD,OAAO;IACL,IAAI,EAAE,CAAC,CAAC,0DAAM,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,0DAAM,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;IACnG,QAAQ,EAAE,QAAQ,EAAE;IACpB,WAAW,EAAE,8CAA8C,CAAC,IAAI,CAAC,0DAAM,CAAC,SAAS,CAAC,SAAS,CAAC;GAC7F,CAAC;CACH,EAAE,CAAC,CAAC;;AAEL,IAAI,UAAU,GAAG,YAAY;EAC3BA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EAElB,cAAU;EAAE,UAAM;EAAE,OAAG;EAAE,OAAG,cACnB;EACXA,GAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;;EAEpB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;;EAEhC,IAAI,MAAM,CAAC,QAAQ,EAAE;IACnB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;GAC5B;EACD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;IACpB,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;GAC7B;EACD,IAAI,MAAM,CAAC,UAAU,EAAE;IACrB,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;GAC7B;EACD,IAAI,GAAG,EAAE;IACP,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;GACtB;EACD,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC,EAAE;IAC9B,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;GAC3B;EACD,IAAI,MAAM,CAAC,OAAO,EAAE;IAClB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;GAC1B;EACD,IAAI,MAAM,CAAC,GAAG,EAAE;IACd,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;GACtB;;EAED,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,qBAAqB,CAAC,EAAE;IAC5E,QAAQ,CAAC,IAAI,CAAC,OAAK,IAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;GAC1C;;EAED,QAAQ,CAAC,OAAO,CAAC,UAAC,MAAM,EAAK;IAC3B,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC;GACzD,CAAC,CAAC;;EAEH,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;CACpC,CAAC;;AAEF,IAAI,aAAa,GAAG,YAAY;EAC9BA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACZ,OAAG;EAAE,cAAU,qBAAY;;EAEnC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;CACvC,CAAC;;AAEF,IAAI,OAAO,GAAG,EAAE,sBAAU,EAAE,4BAAa,EAAE,CAAC;;AAE5C,IAAI,SAAS,GAAG,UAAU,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE;EACjFC,GAAG,CAAC,KAAK,CAAC;EACV,SAAS,OAAO,GAAG;IACjB,IAAI,QAAQ,EAAE,UAAQ,EAAE,CAAC;GAC1B;EACD,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,gBAAgB,EAAE;IAC1C,IAAI,GAAG,EAAE;MACP,KAAK,GAAG,IAAI,0DAAM,CAAC,KAAK,EAAE,CAAC;MAC3B,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC;MACvB,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;MACxB,IAAI,KAAK,EAAE;QACT,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;OACrB;MACD,IAAI,MAAM,EAAE;QACV,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;OACvB;MACD,IAAI,GAAG,EAAE;QACP,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;OACjB;KACF,MAAM;MACL,OAAO,EAAE,CAAC;KACX;GACF,MAAM;;IAEL,OAAO,EAAE,CAAC;GACX;CACF,CAAC;;AAEF,IAAI,aAAa,GAAG,YAAY;EAC9BD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACpB,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EAC7C,SAAS,OAAO,GAAG;IACjB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,SAAO;IAC5F,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,QAAM,CAAC,YAAY,IAAI,CAAC,CAAC;IAChE,IAAI,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE;MACtD,IAAI,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,QAAM,CAAC,MAAM,EAAE,CAAC;MACvD,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAC5B;GACF;EACD,KAAKC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IACtDD,GAAK,CAAC,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,CAAC,SAAS;MACd,OAAO;MACP,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;MACjD,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC;MAChD,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;MAC9C,IAAI;MACJ,OAAO;KACR,CAAC;GACH;CACF,CAAC;;AAEF,IAAI,MAAM,GAAG;EACX,oBAAS;EACT,4BAAa;CACd,CAAC;;AAEF,SAAS,aAAa,GAAG;EACvBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;EACpBA,GAAK,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;;EAElC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;EAC/C,MAAM,CAAC,cAAc,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;;EAEzC,IAAI,SAAS,IAAI,SAAS,KAAK,MAAM,CAAC,QAAQ,EAAE;IAC9C,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;GAC5B;CACF;;AAED,IAAI,eAAe,GAAG,EAAE,4BAAa,EAAE,CAAC;;AAExC,IAAI,QAAQ,GAAG;EACb,IAAI,EAAE,IAAI;EACV,SAAS,EAAE,YAAY;EACvB,iBAAiB,EAAE,WAAW;EAC9B,YAAY,EAAE,CAAC;EACf,KAAK,EAAE,GAAG;;EAEV,8BAA8B,EAAE,KAAK;;;EAGrC,qBAAqB,EAAE,KAAK;EAC5B,qBAAqB,EAAE,EAAE;;;EAGzB,QAAQ,EAAE,KAAK;EACf,gBAAgB,EAAE,IAAI;EACtB,qBAAqB,EAAE,CAAC;EACxB,sBAAsB,EAAE,IAAI;EAC5B,2BAA2B,EAAE,CAAC;EAC9B,6BAA6B,EAAE,CAAC;EAChC,cAAc,EAAE,KAAK;EACrB,uBAAuB,EAAE,IAAI;;;EAG7B,UAAU,EAAE,KAAK;;;EAGjB,cAAc,EAAE,KAAK;;;EAGrB,gBAAgB,EAAE,KAAK;;;EAGvB,MAAM,EAAE,OAAO;;;EAGf,WAAW,EAAE,SAAS;;;EAGtB,YAAY,EAAE,CAAC;EACf,aAAa,EAAE,CAAC;EAChB,eAAe,EAAE,CAAC;EAClB,mBAAmB,EAAE,QAAQ;EAC7B,cAAc,EAAE,CAAC;EACjB,cAAc,EAAE,KAAK;EACrB,kBAAkB,EAAE,CAAC;EACrB,iBAAiB,EAAE,CAAC;EACpB,mBAAmB,EAAE,IAAI;;;EAGzB,aAAa,EAAE,KAAK;;;EAGpB,YAAY,EAAE,KAAK;;;EAGnB,UAAU,EAAE,CAAC;EACb,UAAU,EAAE,EAAE;EACd,aAAa,EAAE,IAAI;EACnB,WAAW,EAAE,IAAI;EACjB,UAAU,EAAE,IAAI;EAChB,eAAe,EAAE,GAAG;EACpB,YAAY,EAAE,GAAG;EACjB,YAAY,EAAE,IAAI;EAClB,cAAc,EAAE,IAAI;EACpB,SAAS,EAAE,CAAC;EACZ,wBAAwB,EAAE,IAAI;EAC9B,mBAAmB,EAAE,KAAK;;;EAG1B,iBAAiB,EAAE,IAAI;;;EAGvB,UAAU,EAAE,IAAI;EAChB,eAAe,EAAE,IAAI;;;EAGrB,mBAAmB,EAAE,KAAK;EAC1B,qBAAqB,EAAE,KAAK;;;EAG5B,UAAU,EAAE,KAAK;;;EAGjB,aAAa,EAAE,IAAI;EACnB,wBAAwB,EAAE,IAAI;EAC9B,mBAAmB,EAAE,KAAK;;;EAG1B,aAAa,EAAE,IAAI;EACnB,mBAAmB,EAAE,IAAI;;;EAGzB,IAAI,EAAE,KAAK;EACX,oBAAoB,EAAE,CAAC;EACvB,YAAY,EAAE,IAAI;EAClB,sBAAsB,EAAE,KAAK;;;EAG7B,cAAc,EAAE,IAAI;EACpB,cAAc,EAAE,IAAI;EACpB,YAAY,EAAE,IAAI;EAClB,SAAS,EAAE,IAAI;EACf,cAAc,EAAE,mBAAmB;EACnC,iBAAiB,EAAE,IAAI;;;EAGvB,gBAAgB,EAAE,IAAI;;;EAGtB,sBAAsB,EAAE,mBAAmB;EAC3C,UAAU,EAAE,cAAc;EAC1B,eAAe,EAAE,8BAA8B;EAC/C,gBAAgB,EAAE,qBAAqB;EACvC,yBAAyB,EAAE,+BAA+B;EAC1D,iBAAiB,EAAE,sBAAsB;EACzC,mBAAmB,EAAE,wBAAwB;EAC7C,cAAc,EAAE,mBAAmB;EACnC,uBAAuB,EAAE,6BAA6B;EACtD,cAAc,EAAE,mBAAmB;EACnC,uBAAuB,EAAE,6BAA6B;EACtD,YAAY,EAAE,gBAAgB;;;EAG9B,kBAAkB,EAAE,IAAI;CACzB,CAAC;;AAEFA,GAAK,CAAC,UAAU,GAAG;EACjB,cAAM;EACN,oBAAS;EACT,UAAU,EAAE,YAAY;EACxB,YAAK;EACL,UAAI;EACJ,sBAAU;EACV,0BAAY;EACZ,cAAM;EACN,wBAAW;EACX,aAAa,EAAE,eAAe;EAC9B,gBAAO;EACP,cAAM;CACP,CAAC;;AAEFA,GAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC;;AAE5B,IAAM,QAAQ,GAAoB;EAChC,iBAAW,CAAQ,EAAE,CAAC;;;AAAA;IACpBC,GAAG,CAAC,EAAE,CAAC;IACPA,GAAG,CAAC,MAAM,CAAC;IACX,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,MAAM,EAAE;MAC9E,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;KAClB,MAAM;MACL;MAAe,cAAd,IAAI,oBAAL,aAAmB,CAAC;KACrB;IACD,IAAI,CAAC,MAAM,EAAE,QAAM,GAAG,EAAE,CAAC;;IAEzB,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAClC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,QAAM,CAAC,EAAE,GAAG,EAAE,CAAC;;IAErCG,WAAK,MAAC,YAAM,CAAC,CAAC;;IAEd,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAC,cAAc,EAAK;MAClD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,UAAC,WAAW,EAAK;QAC/D,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;UACpC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,CAAC;SAC3E;OACF,CAAC,CAAC;KACJ,CAAC,CAAC;;;IAGHJ,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,WAAW,EAAE;MACzC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;KACrB;IACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,UAAU,EAAK;MAClDA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;MAC1C,IAAI,MAAM,CAAC,MAAM,EAAE;QACjBA,GAAK,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACtDA,GAAK,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACpD,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,SAAO;QAC7C,IAAI,CAAC,CAAC,eAAe,IAAI,MAAM,IAAI,SAAS,IAAI,YAAY,CAAC,EAAE,SAAO;QACtE,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE;UACpC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;SAC7C;QACD;UACE,OAAO,MAAM,CAAC,eAAe,CAAC,KAAK,QAAQ;UAC3C,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC;UACvC;UACA,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;SACxC;QACD,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,QAAM,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;OAC5E;KACF,CAAC,CAAC;;;IAGHA,GAAK,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;;;IAGtC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACzE,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;;;IAG/C,MAAM,CAAC,CAAC,GAAG,iEAAC,CAAC;;;IAGbA,GAAK,CAAC,GAAG,GAAG,yEAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;;IAEZ,IAAI,CAAC,EAAE,EAAE;MACP,OAAO,SAAS,CAAC;KAClB;;IAED,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;MAClBA,GAAK,CAAC,OAAO,GAAG,EAAE,CAAC;MACnB,GAAG,CAAC,IAAI,CAAC,UAAC,QAAQ,EAAE,WAAW,EAAK;QAClCA,GAAK,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;OACvC,CAAC,CAAC;MACH,OAAO,OAAO,CAAC;KAChB;;IAED,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;IACnB,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;;;IAG3BA,GAAK,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAE,IAAE,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;;;IAGlE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;MACnB,QAAG;MACH,MAAE;MACF,sBAAU;MACV,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;;;MAGxB,UAAU,EAAE,EAAE;;;MAGd,MAAM,EAAE,yEAAC,EAAE;MACX,UAAU,EAAE,EAAE;MACd,QAAQ,EAAE,EAAE;MACZ,eAAe,EAAE,EAAE;;;MAGnB,YAAY,0BAAG;QACb,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,KAAK,YAAY,CAAC;OACjD;MACD,UAAU,wBAAG;QACX,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,KAAK,UAAU,CAAC;OAC/C;;MAED,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,KAAK,YAAY,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC;MACnH,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,aAAa;;;MAGrD,WAAW,EAAE,CAAC;MACd,SAAS,EAAE,CAAC;;;MAGZ,WAAW,EAAE,IAAI;MACjB,KAAK,EAAE,KAAK;;;MAGZ,SAAS,EAAE,CAAC;MACZ,QAAQ,EAAE,CAAC;MACX,QAAQ,EAAE,CAAC;MACX,SAAS,EAAE,KAAK;;;MAGhB,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc;MAC5C,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc;;;MAG5C,WAAW,EAAE,CAAC,SAAS,WAAW,GAAG;QACnCA,GAAK,CAAC,KAAK,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QACtDC,GAAG,CAAC,OAAO,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACpD,IAAI,OAAO,CAAC,aAAa,EAAE;UACzB,OAAO,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;SACvD,MAAM,IAAI,OAAO,CAAC,qBAAqB,EAAE;UACxC,OAAO,GAAG,CAAC,eAAe,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;SAC7D;QACD,MAAM,CAAC,gBAAgB,GAAG;UACxB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;UACf,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;UACd,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;SACd,CAAC;QACF,MAAM,CAAC,kBAAkB,GAAG;UAC1B,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;UACjB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;UAChB,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;SAChB,CAAC;QACF,OAAO,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC;OAC5G,EAAE,CAAC;MACJ,eAAe,EAAE;QACf,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,SAAS;QAClB,mBAAmB,EAAE,SAAS;QAC9B,cAAc,EAAE,SAAS;QACzB,WAAW,EAAE,SAAS;QACtB,gBAAgB,EAAE,SAAS;QAC3B,cAAc,EAAE,SAAS;QACzB,kBAAkB,EAAE,SAAS;;QAE7B,YAAY,EAAE,gDAAgD;;QAE9D,aAAa,EAAE,KAAK,CAAC,GAAG,EAAE;QAC1B,YAAY,EAAE,SAAS;;QAEvB,UAAU,EAAE,EAAE;QACd,mBAAmB,EAAE,SAAS;QAC9B,YAAY,EAAE,SAAS;QACvB,WAAW,EAAE,SAAS;OACvB;;;MAGD,UAAU,EAAE,IAAI;;;MAGhB,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc;;MAE5C,OAAO,EAAE;QACP,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,CAAC;QACT,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,IAAI,EAAE,CAAC;OACR;;;MAGD,YAAY,EAAE,EAAE;MAChB,YAAY,EAAE,CAAC;;KAEhB,CAAC,CAAC;;;IAGH,MAAM,CAAC,UAAU,EAAE,CAAC;;;IAGpB,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;MACtB,MAAM,CAAC,IAAI,EAAE,CAAC;KACf;;;IAGD,OAAO,MAAM,CAAC;GACf;;;;;;gFAAA;EACD,uCAAoB,oCAAG;IACrBD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IAElB,UAAM;IAAE,UAAM;IAAE,cAAU;IAAQ,cAAU;IAAE,eAAW,sBAChD;IACXC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,MAAM,CAAC,cAAc,EAAE;MACzBA,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC;MACpDA,GAAG,CAAC,SAAS,CAAC;MACd,KAAKA,GAAG,CAAC,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACvD,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE;UAC3B,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;UACvC,GAAG,IAAI,CAAC,CAAC;UACT,IAAI,SAAS,GAAG,UAAU,EAAE,WAAS,GAAG,IAAI,CAAC;SAC9C;OACF;MACD,KAAKA,GAAG,CAACC,GAAC,GAAG,WAAW,GAAG,CAAC,EAAEA,GAAC,IAAI,CAAC,EAAEA,GAAC,IAAI,CAAC,EAAE;QAC5C,IAAI,MAAM,CAACA,GAAC,CAAC,IAAI,CAAC,SAAS,EAAE;UAC3B,SAAS,IAAI,MAAM,CAACA,GAAC,CAAC,CAAC,eAAe,CAAC;UACvC,GAAG,IAAI,CAAC,CAAC;UACT,IAAI,SAAS,GAAG,UAAU,EAAE,WAAS,GAAG,IAAI,CAAC;SAC9C;OACF;KACF,MAAM;MACL,KAAKD,GAAG,CAACC,GAAC,GAAG,WAAW,GAAG,CAAC,EAAEA,GAAC,GAAG,MAAM,CAAC,MAAM,EAAEA,GAAC,IAAI,CAAC,EAAE;QACvD,IAAI,UAAU,CAACA,GAAC,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,UAAU,EAAE;UACxD,GAAG,IAAI,CAAC,CAAC;SACV;OACF;KACF;IACD,OAAO,GAAG,CAAC;GACZ;EACD,yBAAM,sBAAG;IACPF,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,SAAO;IACxC,MAAM,CAAC,UAAU,EAAE,CAAC;IACpB,MAAM,CAAC,YAAY,EAAE,CAAC;IACtB,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,MAAM,CAAC,mBAAmB,EAAE,CAAC;;IAE7B,SAAS,YAAY,GAAG;MACtBA,GAAK,CAAC,cAAc,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;MAC7EA,GAAK,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;MACtG,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;MAClC,MAAM,CAAC,iBAAiB,EAAE,CAAC;MAC3B,MAAM,CAAC,mBAAmB,EAAE,CAAC;KAC9B;IACDC,GAAG,CAAC,UAAU,CAAC;IACf,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;MAC1B,YAAY,EAAE,CAAC;MACf,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE;QAC5B,MAAM,CAAC,gBAAgB,EAAE,CAAC;OAC3B;KACF,MAAM;MACL,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,KAAK,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE;QAChI,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;OACvE,MAAM;QACL,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;OACjE;MACD,IAAI,CAAC,UAAU,EAAE;QACf,YAAY,EAAE,CAAC;OAChB;KACF;IACD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;GACvB;EACD,uBAAI,oBAAG;IACLD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,MAAM,CAAC,WAAW,EAAE,SAAO;;IAE/B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;;;IAG1B,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;MAC7B,MAAM,CAAC,aAAa,EAAE,CAAC;KACxB;;;IAGD,MAAM,CAAC,UAAU,EAAE,CAAC;;;IAGpB,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;MACtB,MAAM,CAAC,UAAU,EAAE,CAAC;KACrB;;;IAGD,MAAM,CAAC,UAAU,EAAE,CAAC;;;IAGpB,MAAM,CAAC,YAAY,EAAE,CAAC;;IAEtB,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE;MAC/B,MAAM,CAAC,aAAa,EAAE,CAAC;KACxB;;;IAGD,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE;MAC5B,MAAM,CAAC,aAAa,EAAE,CAAC;KACxB;;IAED,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE;MAC/B,MAAM,CAAC,aAAa,EAAE,CAAC;KACxB;;;IAGD,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;MACtB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;KACvG,MAAM;MACL,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;KACjF;;;IAGD,MAAM,CAAC,YAAY,EAAE,CAAC;;;IAGtB,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;;;IAG1B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;GACrB;EACD,0BAAO,qBAAC,cAAqB,EAAE,WAAkB,EAAE,CAA7B;mDAAA,GAAG,IAAI,CAAa;6CAAA,GAAG,IAAI;AAAG;IAClDA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IAElB,UAAM;IAAE,OAAG;IAAE,cAAU;IAAE,UAAM,iBACtB;IACX,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;;;IAG7B,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;;;IAG3B,MAAM,CAAC,YAAY,EAAE,CAAC;;;IAGtB,IAAI,MAAM,CAAC,IAAI,EAAE;MACf,MAAM,CAAC,WAAW,EAAE,CAAC;KACtB;;;IAGD,IAAI,WAAW,EAAE;MACf,MAAM,CAAC,aAAa,EAAE,CAAC;MACvB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;MACxB,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;MAC/B,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;QAC3B,MAAM;WACH,WAAW,CAAC;YACX,MAAM,CAAC,iBAAiB;YACxB,MAAM,CAAC,gBAAgB;YACvB,MAAM,CAAC,cAAc;YACrB,MAAM,CAAC,cAAc,CACvB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;WACX,UAAU,CAAC,OAAO,CAAC;WACnB,UAAU,CAAC,yBAAyB,CAAC;WACrC,UAAU,CAAC,oBAAoB,CAAC;WAChC,UAAU,CAAC,iBAAiB,CAAC,CAAC;OAClC;KACF;;IAED,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;;IAGvB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,UAAC,SAAS,EAAK;MACzD,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;KACvB,CAAC,CAAC;;IAEH,IAAI,cAAc,KAAK,KAAK,EAAE;MAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;MAC5B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;MAChC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;KAC3B;IACD,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;GACzB;EACD,SAAO,cAAc,4BAAC,WAAW,EAAE;IACjC,KAAK,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;GAC7C;EACD,kBAAW,gBAAgB,mBAAG;IAC5B,OAAO,gBAAgB,CAAC;GACzB;EACD,kBAAW,QAAQ,mBAAG;IACpB,OAAO,QAAQ,CAAC;GACjB;EACD,kBAAW,KAAK,mBAAG;IACjB,OAAO,WAAW,CAAC;GACpB;EACD,kBAAW,CAAC,mBAAG;IACb,OAAO,iEAAC,CAAC;GACV,CACF;;;;;EApYsB,WAoYtB;;AAED,IAAI,QAAQ,GAAG;EACb,IAAI,EAAE,QAAQ;EACd,KAAK,EAAE;IACL,MAAM,EAAE,MAAM;GACf;EACD,MAAM,EAAE;IACN,MAAM,EAAE,MAAM;GACf;CACF,CAAC;;AAEF,IAAI,SAAS,GAAG;EACd,IAAI,EAAE,SAAS;EACf,KAAK,EAAE;IACL,OAAO,EAAE,OAAO;GACjB;EACD,MAAM,EAAE;IACN,OAAO,EAAE,OAAO;GACjB;CACF,CAAC;;AAEF,IAAI,SAAS,GAAG;EACd,IAAI,EAAE,SAAS;EACf,KAAK,EAAE;IACL,OAAO,EAAE,OAAO;GACjB;EACD,MAAM,EAAE;IACN,OAAO,EAAE,OAAO;GACjB;CACF,CAAC;;AAEF,IAAI,MAAM,GAAG;EACX,IAAI,EAAE,QAAQ;EACd,MAAM,oBAAG;IACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;MACnB,MAAM,EAAE;QACN,aAAa,2BAAG;UACd,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,SAAO;UAC/D,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;UAC5B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACvB;QACD,wBAAwB,sCAAG;UACzB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,SAAO;UAC/D,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAClC;OACF;KACF,CAAC,CAAC;GACJ;EACD,EAAE,EAAE;IACF,IAAI,kBAAG;MACLA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;;MAEpB,0DAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;;;MAG/D,0DAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;KACtF;IACD,OAAO,qBAAG;MACRA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,0DAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;MAClE,0DAAM,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;KACzF;GACF;CACF,CAAC;;AAEFA,GAAK,CAAC,QAAQ,GAAG;EACf,IAAI,EAAE,0DAAM,CAAC,gBAAgB,IAAI,0DAAM,CAAC,sBAAsB;EAC9D,MAAM,kBAAC,MAAM,EAAE,OAAY,EAAE,CAAP;qCAAA,GAAG,EAAE;AAAG;IAC5BA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;;IAEpBA,GAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC;IACnCA,GAAK,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,UAAC,SAAS,EAAK;MAC/C,SAAS,CAAC,OAAO,CAAC,UAAC,QAAQ,EAAK;QAC9B,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;OACzC,CAAC,CAAC;KACJ,CAAC,CAAC;;IAEH,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE;MACvB,UAAU,EAAE,OAAO,OAAO,CAAC,UAAU,KAAK,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC,UAAU;MACjF,SAAS,EAAE,OAAO,OAAO,CAAC,SAAS,KAAK,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS;MAC9E,aAAa,EAAE,OAAO,OAAO,CAAC,aAAa,KAAK,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC,aAAa;KAC3F,CAAC,CAAC;;IAEH,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;GAC1C;EACD,IAAI,kBAAG;IACLA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAO;IACzD,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE;MAChCA,GAAK,CAAC,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;MAC9C,KAAKC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACnD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;OAC7C;KACF;;IAED,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;;;IAG5D,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;GACrE;EACD,OAAO,qBAAG;IACRD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,UAAC,QAAQ,EAAK;MAC9C,QAAQ,CAAC,UAAU,EAAE,CAAC;KACvB,CAAC,CAAC;IACH,MAAM,CAAC,QAAQ,CAAC,SAAS,GAAG,EAAE,CAAC;GAChC;CACF,CAAC;;AAEF,IAAI,UAAU,GAAG;EACf,IAAI,EAAE,UAAU;EAChB,MAAM,EAAE;IACN,QAAQ,EAAE,KAAK;IACf,cAAc,EAAE,KAAK;GACtB;EACD,MAAM,oBAAG;IACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;MACnB,QAAQ,EAAE;QACR,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACpC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QACtC,SAAS,EAAE,EAAE;OACd;KACF,CAAC,CAAC;GACJ;EACD,EAAE,EAAE;IACF,IAAI,kBAAG;MACLA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACxB;IACD,OAAO,qBAAG;MACRA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;KAC3B;GACF;CACF,CAAC;;AAEFA,GAAK,CAAC,OAAO,GAAG;EACd,MAAM,kBAAC,KAAK,EAAE;IACZA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACmC,UAAG,MAAM,CAAC,MAAM;IAA/D,iBAAa;IAAE,kBAAc;IAAE,kBAAc,sBAAmB;IAQvE,YAAG,MAAM,CAAC,OAAO;IANV,gBAAY;IACd,cAAU;IACd,UAAM;IACM,sBAAkB;IAC9B,eAAW;IACH,kBAAc,gBACL;IACnB,MAAM,CAAC,iBAAiB,EAAE,CAAC;IAC3BA,GAAK,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;;IAE5CC,GAAG,CAAC,UAAU,CAAC;IACf,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE,YAAU,GAAG,OAAO,CAAC;SACzD,YAAU,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC;;IAEzDA,GAAG,CAAC,WAAW,CAAC;IAChBA,GAAG,CAAC,YAAY,CAAC;IACjB,IAAI,cAAc,EAAE;MAClB,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC;MAC7D,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC;KAC/D,MAAM;MACL,WAAW,GAAG,aAAa,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;MACnD,YAAY,GAAG,cAAc,CAAC;KAC/B;IACDD,GAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC;IAC5DA,GAAK,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,WAAW,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzEA,GAAK,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;;IAE/E,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;MAC3B,UAAI;MACJ,MAAE;MACF,MAAM,EAAE,SAAS;MACjB,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAC,CAAC;;IAEH,SAAS,UAAU,GAAG;MACpB,MAAM,CAAC,YAAY,EAAE,CAAC;MACtB,MAAM,CAAC,cAAc,EAAE,CAAC;MACxB,MAAM,CAAC,mBAAmB,EAAE,CAAC;MAC7B,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;QAC7C,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;OACpB;KACF;;IAED,IAAI,YAAY,KAAK,IAAI,IAAI,UAAU,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;MACxD,IAAI,MAAM,CAAC,UAAU,KAAK,kBAAkB,IAAI,SAAS,KAAK,cAAc,EAAE;QAC5E,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAG,SAAS,OAAG,CAAC,CAAC,CAAC;OACjD;MACD,MAAM,CAAC,cAAc,EAAE,CAAC;MACxB,OAAO;KACR;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE;MACxC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE;QAChD,MAAM,EAAE,SAAS;QACjB,UAAI;QACJ,MAAE;QACF,MAAM,EAAE,CAAC,SAAS,SAAS,GAAG;UAC5BA,GAAK,CAAC,cAAc,GAAG,EAAE,CAAC;UAC1B,KAAKC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;YAClC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;WAChC;UACD,OAAO,cAAc,CAAC;SACvB,EAAE,CAAC;OACL,CAAC,CAAC;MACH,UAAU,EAAE,CAAC;MACb,OAAO;KACR;IACDD,GAAK,CAAC,cAAc,GAAG,EAAE,CAAC;IAC1BA,GAAK,CAAC,aAAa,GAAG,EAAE,CAAC;IACzB,IAAI,KAAK,EAAE;MACT,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAE,IAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;KACjE,MAAM;MACL,KAAKC,GAAG,CAAC,CAAC,GAAG,YAAY,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE;QAClD,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;UACtB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAE,IAAE,MAAM,CAAC,MAAM,CAAC,UAAU,iCAA2B,GAAE,CAAC,QAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjG;OACF;KACF;IACD,KAAKA,GAAG,CAACC,GAAC,GAAG,CAAC,EAAEA,GAAC,GAAG,MAAM,CAAC,MAAM,EAAEA,GAAC,IAAI,CAAC,EAAE;MACzC,IAAIA,GAAC,IAAI,IAAI,IAAIA,GAAC,IAAI,EAAE,EAAE;QACxB,IAAI,OAAO,UAAU,KAAK,WAAW,IAAI,KAAK,EAAE;UAC9C,aAAa,CAAC,IAAI,CAACA,GAAC,CAAC,CAAC;SACvB,MAAM;UACL,IAAIA,GAAC,GAAG,UAAU,EAAE,eAAa,CAAC,IAAI,CAACA,GAAC,CAAC,CAAC;UAC1C,IAAIA,GAAC,GAAG,YAAY,EAAE,gBAAc,CAAC,IAAI,CAACA,GAAC,CAAC,CAAC;SAC9C;OACF;KACF;IACD,aAAa,CAAC,OAAO,CAAC,UAAC,QAAQ,EAAK;MAClC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;KACnE,CAAC,CAAC;IACH,cAAc,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,EAAK,UAAC,GAAG,CAAC,IAAC,CAAC,OAAO,CAAC,UAAC,QAAQ,EAAK;MACzD,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;KACpE,CAAC,CAAC;IACH,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAG,SAAS,OAAG,CAAC,CAAC,CAAC;IAC9E,UAAU,EAAE,CAAC;GACd;EACD,WAAW,uBAAC,KAAK,EAAE,QAAQ,EAAE;IAC3BF,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;IACrC,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;MAClD,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;KACvC;IACDA,GAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,WAAW;QAC/B,yEAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnD,yEAAC,CAAC,gBAAa,IAAE,MAAM,CAAC,MAAM,CAAC,UAAU,mCAA4B,GAAE,QAAQ,QAAG,GAAE,KAAK,WAAO,CAAC,CAAC,CAAC;IACvG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,UAAQ,CAAC,IAAI,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;IAClG,IAAI,MAAM,CAAC,KAAK,EAAE,QAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IAC5D,OAAO,QAAQ,CAAC;GACjB;EACD,WAAW,uBAAC,KAAK,EAAE;IACjBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;GAC7B;EACD,YAAY,wBAAC,KAAK,EAAE;IAClBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE;MAC/BA,GAAK,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;MACnCA,GAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;MACpB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAC,WAAW,EAAK;QAC1C,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;OAChD,CAAC,CAAC;MACH,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;KACjC;IACD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;GACrB;CACF,CAAC;;AAEF,IAAI,SAAS,GAAG;EACd,IAAI,EAAE,SAAS;EACf,MAAM,EAAE;IACN,OAAO,EAAE;MACP,OAAO,EAAE,KAAK;MACd,MAAM,EAAE,EAAE;MACV,KAAK,EAAE,IAAI;MACX,WAAW,EAAE,IAAI;MACjB,cAAc,EAAE,IAAI;KACrB;GACF;EACD,MAAM,oBAAG;IACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;MACnB,OAAO,EAAE;QACP,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACnC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7C,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/C,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7C,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM;QACpC,KAAK,EAAE,EAAE;OACV;KACF,CAAC,CAAC;GACJ;EACD,EAAE,EAAE;IACF,UAAU,wBAAG;MACXA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,SAAO;MAC3C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,aAAQ,CAAC,CAAC,CAAC;MACzEA,GAAK,CAAC,eAAe,GAAG;QACtB,mBAAmB,EAAE,IAAI;OAC1B,CAAC;MACF,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;MAC7C,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;;MAErD,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;KACzB;IACD,YAAY,0BAAG;MACbA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,SAAO;MAC3C,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;KACzB;GACF;CACF,CAAC;;AAEFA,GAAK,CAAC,QAAQ,GAAG;EACf,MAAM,kBAAC,KAAK,EAAE;IACZA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IACd,IAAI,CAAC,CAAC,aAAa,EAAE,GAAC,GAAG,CAAC,CAAC,aAAa,CAAC;IACzCD,GAAK,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC;;IAEnC,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE;MAC1G,OAAO,KAAK,CAAC;KACd;IACD,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE;MAC1G,OAAO,KAAK,CAAC;KACd;IACD,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,EAAE;MACpD,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,4DAAQ,CAAC,aAAa,IAAI,4DAAQ,CAAC,aAAa,CAAC,QAAQ,IAAI,CAAC,4DAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,OAAO,IAAI,4DAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,EAAE;MAC5L,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;MAC/FC,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;;MAEnB,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAE,IAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAE,IAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1I,OAAO,SAAS,CAAC;OAClB;MACDD,GAAK,CAAC,WAAW,GAAG,0DAAM,CAAC,UAAU,CAAC;MACtCA,GAAK,CAAC,YAAY,GAAG,0DAAM,CAAC,WAAW,CAAC;MACxCA,GAAK,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;MACzC,IAAI,MAAM,CAAC,GAAG,EAAE,cAAY,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;MAC9DA,GAAK,CAAC,WAAW,GAAG;QAClB,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;QACrC,CAAC,YAAY,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC;QACpD,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;QACrD,CAAC,YAAY,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CACtE,CAAC,CAAC;MACF,KAAKC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QAC9CD,GAAK,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC7B;UACE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,WAAW;UACxC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,YAAY;UACzC;UACA,MAAM,GAAG,IAAI,CAAC;SACf;OACF;MACD,IAAI,CAAC,MAAM,EAAE,SAAO,SAAS,CAAC;KAC/B;IACD,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE;MACzB,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC1B,IAAI,CAAC,CAAC,cAAc,EAAE,GAAC,CAAC,cAAc,EAAE,CAAC;aACpC,GAAC,CAAC,WAAW,GAAG,KAAK,CAAC;OAC5B;MACD,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,QAAM,CAAC,SAAS,EAAE,CAAC;MAChF,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,QAAM,CAAC,SAAS,EAAE,CAAC;KACjF,MAAM;MACL,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC1B,IAAI,CAAC,CAAC,cAAc,EAAE,GAAC,CAAC,cAAc,EAAE,CAAC;aACpC,GAAC,CAAC,WAAW,GAAG,KAAK,CAAC;OAC5B;MACD,IAAI,EAAE,KAAK,EAAE,EAAE,QAAM,CAAC,SAAS,EAAE,CAAC;MAClC,IAAI,EAAE,KAAK,EAAE,EAAE,QAAM,CAAC,SAAS,EAAE,CAAC;KACnC;IACD,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC5B,OAAO,SAAS,CAAC;GAClB;EACD,MAAM,oBAAG;IACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAO;IACpC,yEAAC,CAAC,4DAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;GAChC;EACD,OAAO,qBAAG;IACRA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAO;IACrC,yEAAC,CAAC,4DAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;GACjC;CACF,CAAC;;AAEF,IAAI,UAAU,GAAG;EACf,IAAI,EAAE,UAAU;EAChB,MAAM,EAAE;IACN,QAAQ,EAAE;MACR,OAAO,EAAE,KAAK;MACd,cAAc,EAAE,IAAI;KACrB;GACF;EACD,MAAM,oBAAG;IACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;MACnB,QAAQ,EAAE;QACR,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACpC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QACtC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;OACrC;KACF,CAAC,CAAC;GACJ;EACD,EAAE,EAAE;IACF,IAAI,kBAAG;MACLA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;QAClC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;OAC1B;KACF;IACD,OAAO,qBAAG;MACRA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;QAC3B,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;OAC3B;KACF;GACF;CACF,CAAC;;AAEF,SAAS,gBAAgB,GAAG;EAC1BA,GAAK,CAAC,SAAS,GAAG,SAAS,CAAC;EAC5BC,GAAG,CAAC,WAAW,GAAG,SAAS,IAAI,4DAAQ,CAAC;;EAExC,IAAI,CAAC,WAAW,EAAE;IAChBD,GAAK,CAAC,OAAO,GAAG,4DAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC3C,WAAW,GAAG,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,UAAU,CAAC;GACxD;;EAED,IAAI,CAAC,WAAW;IACd,4DAAQ,CAAC,cAAc;IACvB,4DAAQ,CAAC,cAAc,CAAC,UAAU;;;IAGlC,4DAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,IAAI;IACnD;;IAEA,WAAW,GAAG,4DAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;GACzE;;EAED,OAAO,WAAW,CAAC;CACpB;AACDA,GAAK,CAAC,UAAU,GAAG;EACjB,cAAc,EAAE,KAAK,CAAC,GAAG,EAAE;EAC3B,KAAK,EAAE,CAAC,SAAS,QAAQ,GAAG;IAC1B,IAAI,0DAAM,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAO,gBAAgB,CAAC;IAChF,OAAO,gBAAgB,EAAE,GAAG,OAAO,GAAG,YAAY,CAAC;GACpD,EAAE,CAAC;EACJ,SAAS,qBAAC,CAAC,EAAE;;IAEXA,GAAK,CAAC,UAAU,GAAG,EAAE,CAAC;IACtBA,GAAK,CAAC,WAAW,GAAG,EAAE,CAAC;IACvBA,GAAK,CAAC,WAAW,GAAG,GAAG,CAAC;;IAExBC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACXA,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACXA,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACXA,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;;;IAGX,IAAI,QAAQ,IAAI,CAAC,EAAE;MACjB,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;KACf;IACD,IAAI,YAAY,IAAI,CAAC,EAAE;MACrB,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC;KAC1B;IACD,IAAI,aAAa,IAAI,CAAC,EAAE;MACtB,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC;KAC3B;IACD,IAAI,aAAa,IAAI,CAAC,EAAE;MACtB,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC;KAC3B;;;IAGD,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,eAAe,EAAE;MAC/C,EAAE,GAAG,EAAE,CAAC;MACR,EAAE,GAAG,CAAC,CAAC;KACR;;IAED,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC;IACrB,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC;;IAErB,IAAI,QAAQ,IAAI,CAAC,EAAE;MACjB,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;KACf;IACD,IAAI,QAAQ,IAAI,CAAC,EAAE;MACjB,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;KACf;;IAED,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE;MAC7B,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,EAAE;QACrB,EAAE,IAAI,WAAW,CAAC;QAClB,EAAE,IAAI,WAAW,CAAC;OACnB,MAAM;QACL,EAAE,IAAI,WAAW,CAAC;QAClB,EAAE,IAAI,WAAW,CAAC;OACnB;KACF;;;IAGD,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;MACb,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;KACxB;IACD,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;MACb,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;KACxB;;IAED,OAAO;MACL,KAAK,EAAE,EAAE;MACT,KAAK,EAAE,EAAE;MACT,MAAM,EAAE,EAAE;MACV,MAAM,EAAE,EAAE;KACX,CAAC;GACH;EACD,MAAM,kBAAC,KAAK,EAAE;IACZA,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IACdD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;IACxC,IAAI,CAAC,CAAC,aAAa,EAAE,GAAC,GAAG,CAAC,CAAC,aAAa,CAAC;IACzCC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;IACdD,GAAK,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;;IAEtCA,GAAK,CAAC,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;;IAExC,IAAI,MAAM,CAAC,WAAW,EAAE;MACtB,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE;QACzB,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAK,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;aACvF,SAAO,IAAI,CAAC;OAClB,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAK,GAAG,OAAO,CAAC,MAAM,CAAC;WAClF,SAAO,IAAI,CAAC;KAClB,MAAM;MACL,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,SAAS,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;KAC7G;;IAED,IAAI,KAAK,KAAK,CAAC,EAAE,SAAO,IAAI,CAAC;;IAE7B,IAAI,MAAM,CAAC,MAAM,EAAE,OAAK,GAAG,CAAC,KAAK,CAAC;;IAElC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;MAC3B,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,cAAc,GAAG,EAAE,EAAE;QACvD,IAAI,KAAK,GAAG,CAAC,EAAE;UACb,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YAC9D,MAAM,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;WAC1B,MAAM,IAAI,MAAM,CAAC,cAAc,EAAE,SAAO,IAAI,CAAC;SAC/C,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;UAC3E,MAAM,CAAC,SAAS,EAAE,CAAC;UACnB,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;SAC1B,MAAM,IAAI,MAAM,CAAC,cAAc,EAAE,SAAO,IAAI,CAAC;OAC/C;MACD,MAAM,CAAC,UAAU,CAAC,cAAc,GAAG,CAAC,IAAI,0DAAM,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;KAClE,MAAM;;MAELC,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;MACpED,GAAK,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC;MACxCA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;;MAE5B,IAAI,QAAQ,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE,UAAQ,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;MACxE,IAAI,QAAQ,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE,UAAQ,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;;MAExE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;MACxB,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;MAC9B,MAAM,CAAC,cAAc,EAAE,CAAC;MACxB,MAAM,CAAC,iBAAiB,EAAE,CAAC;MAC3B,MAAM,CAAC,mBAAmB,EAAE,CAAC;;MAE7B,IAAI,CAAC,CAAC,YAAY,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;QACtE,MAAM,CAAC,mBAAmB,EAAE,CAAC;OAC9B;;MAED,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE;QAChC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAM;UAC/C,MAAM,CAAC,UAAU,EAAE,CAAC;SACrB,EAAE,GAAG,CAAC,CAAC;OACT;;MAED,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;;;MAGzB,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,4BAA4B,EAAE,QAAM,CAAC,YAAY,EAAE,CAAC;;MAEhG,IAAI,QAAQ,KAAK,MAAM,CAAC,YAAY,EAAE,IAAI,QAAQ,KAAK,MAAM,CAAC,YAAY,EAAE,EAAE,SAAO,IAAI,CAAC;KAC3F;;IAED,IAAI,CAAC,CAAC,cAAc,EAAE,GAAC,CAAC,cAAc,EAAE,CAAC;SACpC,GAAC,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,OAAO,KAAK,CAAC;GACd;EACD,MAAM,oBAAG;IACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAO,KAAK,CAAC;IACpC,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,SAAO,KAAK,CAAC;IAC5CC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;IACxB,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,KAAK,WAAW,EAAE;MACzD,MAAM,GAAG,yEAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;KACnD;IACD,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;IACjC,OAAO,IAAI,CAAC;GACb;EACD,OAAO,qBAAG;IACRD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAO,KAAK,CAAC;IACpC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,SAAO,KAAK,CAAC;IAC7CC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;IACxB,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,KAAK,WAAW,EAAE;MACzD,MAAM,GAAG,yEAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;KACnD;IACD,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,CAAC,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;IAClC,OAAO,IAAI,CAAC;GACb;CACF,CAAC;;AAEF,IAAI,YAAY,GAAG;EACjB,IAAI,EAAE,YAAY;EAClB,MAAM,EAAE;IACN,UAAU,EAAE;MACV,OAAO,EAAE,KAAK;MACd,cAAc,EAAE,KAAK;MACrB,MAAM,EAAE,KAAK;MACb,WAAW,EAAE,KAAK;MAClB,WAAW,EAAE,CAAC;MACd,YAAY,EAAE,WAAW;KAC1B;GACF;EACD,MAAM,oBAAG;IACPD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;MACnB,UAAU,EAAE;QACV,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACtC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QACxC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACtC,cAAc,EAAE,KAAK,CAAC,GAAG,EAAE;OAC5B;KACF,CAAC,CAAC;GACJ;EACD,EAAE,EAAE;IACF,IAAI,kBAAG;MACLA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,QAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;KAClE;IACD,OAAO,qBAAG;MACRA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,QAAM,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;KAC5D;GACF;CACF,CAAC;;AAEFA,GAAK,CAAC,UAAU,GAAG;EACjB,MAAM,oBAAG;;IAEPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;;IAExC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAO;IACL,UAAG,MAAM,CAAC,UAAU;IAAtC,WAAO;IAAE,WAAO,eAAuB;;IAE/C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;MACjC,IAAI,MAAM,CAAC,WAAW,EAAE;QACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;OACxC,MAAM;QACL,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;OAC3C;MACD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,QAAQ,GAAG,UAAU,GAAG,aAAa,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;KACxG;IACD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;MACjC,IAAI,MAAM,CAAC,KAAK,EAAE;QAChB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;OACxC,MAAM;QACL,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;OAC3C;MACD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,QAAQ,GAAG,UAAU,GAAG,aAAa,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;KACxG;GACF;EACD,IAAI,kBAAG;IACLA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;IACxC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,SAAO;;IAE9CC,GAAG,CAAC,OAAO,CAAC;IACZA,GAAG,CAAC,OAAO,CAAC;IACZ,IAAI,MAAM,CAAC,MAAM,EAAE;MACjB,OAAO,GAAG,yEAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;MAC3B;QACE,MAAM,CAAC,MAAM,CAAC,iBAAiB;QAC/B,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;QACjC,OAAO,CAAC,MAAM,GAAG,CAAC;QAClB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;QAC3C;QACA,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;OAC1C;KACF;IACD,IAAI,MAAM,CAAC,MAAM,EAAE;MACjB,OAAO,GAAG,yEAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;MAC3B;QACE,MAAM,CAAC,MAAM,CAAC,iBAAiB;QAC/B,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;QACjC,OAAO,CAAC,MAAM,GAAG,CAAC;QAClB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;QAC3C;QACA,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;OAC1C;KACF;;IAED,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;MACjC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC,EAAK;QACzB,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAO;QAChD,MAAM,CAAC,SAAS,EAAE,CAAC;OACpB,CAAC,CAAC;KACJ;IACD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;MACjC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC,EAAK;QACzB,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAO;QACtD,MAAM,CAAC,SAAS,EAAE,CAAC;OACpB,CAAC,CAAC;KACJ;;IAED,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE;MAC9B,gBAAO;MACP,MAAM,EAAE,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC;MAC7B,gBAAO;MACP,MAAM,EAAE,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC;KAC9B,CAAC,CAAC;GACJ;EACD,OAAO,qBAAG;IACRD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACM,UAAG,MAAM,CAAC,UAAU;IAAtC,WAAO;IAAE,WAAO,eAAuB;IAC/C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;MAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;MACrB,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;KAC7D;IACD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;MAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;MACrB,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;KAC7D;GACF;CACF,CAAC;;AAEF,IAAI,YAAY,GAAG;EACjB,IAAI,EAAE,YAAY;EAClB,MAAM,EAAE;IACN,UAAU,EAAE;MACV,MAAM,EAAE,IAAI;MACZ,MAAM,EAAE,IAAI;;MAEZ,WAAW,EAAE,KAAK;MAClB,aAAa,EAAE,wBAAwB;MACvC,WAAW,EAAE,sBAAsB;MACnC,SAAS,EAAE,oBAAoB;KAChC;GACF;EACD,MAAM,oBAAG;IACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;MACnB,UAAU,EAAE;QACV,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAClC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACtC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;OACzC;KACF,CAAC,CAAC;GACJ;EACD,EAAE,EAAE;IACF,IAAI,kBAAG;MACLA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;MACzB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;KAC5B;IACD,MAAM,oBAAG;MACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;KAC5B;IACD,QAAQ,sBAAG;MACTA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;KAC5B;IACD,OAAO,qBAAG;MACRA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;KAC7B;IACD,KAAK,iBAAC,CAAC,EAAE;MACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACM,UAAG,MAAM,CAAC,UAAU;MAAtC,WAAO;MAAE,WAAO,eAAuB;MAC/C;QACE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW;QACpC,CAAC,yEAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC;QACxB,CAAC,yEAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC;QACxB;QACA,IAAI,OAAO,EAAE,SAAO,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACvE,IAAI,OAAO,EAAE,SAAO,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;OACxE;KACF;GACF;CACF,CAAC;;AAEFA,GAAK,CAAC,UAAU,GAAG;EACjB,MAAM,oBAAG;;IAEPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IACvBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,SAAO;IAChHA,GAAK,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3HA,GAAK,CAAC,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;;IAElCC,GAAG,CAAC,OAAO,CAAC;IACZD,GAAK,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;IACjJ,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;MACtB,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;MAC/F,IAAI,OAAO,GAAG,YAAY,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,EAAE;QAC1D,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;OACvD;MACD,IAAI,OAAO,GAAG,KAAK,GAAG,CAAC,EAAE,SAAO,IAAI,KAAK,CAAC;MAC1C,IAAI,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE,SAAO,GAAG,KAAK,GAAG,OAAO,CAAC;KAC1F,MAAM,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,WAAW,EAAE;MAClD,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC;KAC5B,MAAM;MACL,OAAO,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;KACnC;;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;MAClGA,GAAK,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;MAC1CC,GAAG,CAAC,UAAU,CAAC;MACfA,GAAG,CAAC,SAAS,CAAC;MACdA,GAAG,CAAC,QAAQ,CAAC;MACb,IAAI,MAAM,CAAC,cAAc,EAAE;QACzB,MAAM,CAAC,UAAU,CAAC,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,YAAY,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC;QACzG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,OAAO,GAAG,QAAQ,EAAE,EAAG,MAAM,CAAC,UAAU,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC,kBAAkB,GAAG,CAAC,CAAC,QAAG,CAAC,CAAC,CAAC;QAC3H,IAAI,MAAM,CAAC,kBAAkB,GAAG,CAAC,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE;UACvE,IAAI,OAAO,GAAG,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,UAAU,CAAC,kBAAkB,GAAG,CAAC,MAAM,CAAC,kBAAkB,GAAG,CAAC,CAAC,EAAE;YAC5G,MAAM,CAAC,UAAU,CAAC,kBAAkB,IAAI,CAAC,CAAC;WAC3C,MAAM,IAAI,OAAO,GAAG,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,UAAU,CAAC,kBAAkB,GAAG,CAAC,EAAE;YACrF,MAAM,CAAC,UAAU,CAAC,kBAAkB,IAAI,CAAC,CAAC;WAC3C;SACF;QACD,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAC5D,SAAS,GAAG,UAAU,GAAG,CAAC,MAAM,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;QACzD,QAAQ,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;OACzC;MACD,OAAO,CAAC,WAAW,CAAC,EAAG,MAAM,CAAC,iBAAiB,OAAE,IAAE,MAAM,CAAC,iBAAiB,YAAO,IAAE,MAAM,CAAC,iBAAiB,iBAAY,IAAE,MAAM,CAAC,iBAAiB,YAAO,IAAE,MAAM,CAAC,iBAAiB,iBAAY,IAAE,MAAM,CAAC,iBAAiB,WAAM,CAAC,CAAC,CAAC;MAClO,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;QAClB,OAAO,CAAC,IAAI,CAAC,UAAC,QAAQ,EAAE,MAAM,EAAK;UACjCD,GAAK,CAAC,OAAO,GAAG,yEAAC,CAAC,MAAM,CAAC,CAAC;UAC1BA,GAAK,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;UACpC,IAAI,WAAW,KAAK,OAAO,EAAE;YAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;WAC5C;UACD,IAAI,MAAM,CAAC,cAAc,EAAE;YACzB,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,IAAI,SAAS,EAAE;cACzD,OAAO,CAAC,QAAQ,CAAC,EAAG,MAAM,CAAC,iBAAiB,WAAM,CAAC,CAAC,CAAC;aACtD;YACD,IAAI,WAAW,KAAK,UAAU,EAAE;cAC9B,OAAO;iBACJ,IAAI,EAAE;iBACN,QAAQ,CAAC,EAAG,MAAM,CAAC,iBAAiB,WAAM,CAAC,CAAC;iBAC5C,IAAI,EAAE;iBACN,QAAQ,CAAC,EAAG,MAAM,CAAC,iBAAiB,gBAAW,CAAC,CAAC,CAAC;aACtD;YACD,IAAI,WAAW,KAAK,SAAS,EAAE;cAC7B,OAAO;iBACJ,IAAI,EAAE;iBACN,QAAQ,CAAC,EAAG,MAAM,CAAC,iBAAiB,WAAM,CAAC,CAAC;iBAC5C,IAAI,EAAE;iBACN,QAAQ,CAAC,EAAG,MAAM,CAAC,iBAAiB,gBAAW,CAAC,CAAC,CAAC;aACtD;WACF;SACF,CAAC,CAAC;OACJ,MAAM;QACLA,GAAK,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,cAAc,EAAE;UACzBA,GAAK,CAAC,qBAAqB,GAAG,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;UACrDA,GAAK,CAAC,oBAAoB,GAAG,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;UACnD,KAAKC,GAAG,CAAC,CAAC,GAAG,UAAU,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE;YAC/C,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAG,MAAM,CAAC,iBAAiB,WAAM,CAAC,CAAC,CAAC;WAC5D;UACD,qBAAqB;aAClB,IAAI,EAAE;aACN,QAAQ,CAAC,EAAG,MAAM,CAAC,iBAAiB,WAAM,CAAC,CAAC;aAC5C,IAAI,EAAE;aACN,QAAQ,CAAC,EAAG,MAAM,CAAC,iBAAiB,gBAAW,CAAC,CAAC,CAAC;UACrD,oBAAoB;aACjB,IAAI,EAAE;aACN,QAAQ,CAAC,EAAG,MAAM,CAAC,iBAAiB,WAAM,CAAC,CAAC;aAC5C,IAAI,EAAE;aACN,QAAQ,CAAC,EAAG,MAAM,CAAC,iBAAiB,gBAAW,CAAC,CAAC,CAAC;SACtD;OACF;MACD,IAAI,MAAM,CAAC,cAAc,EAAE;QACzBD,GAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;QACrFA,GAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACjKA,GAAK,CAAC,UAAU,GAAG,GAAG,GAAG,OAAO,GAAG,MAAM,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,UAAU,GAAG,KAAK,EAAE,CAAG,aAAa,OAAG,CAAC,CAAC,CAAC;OAC/E;KACF;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;MAC9B,GAAG,CAAC,IAAI,CAAC,IAAE,IAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;MACtD,GAAG,CAAC,IAAI,CAAC,IAAE,IAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/C;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;MACjCA,GAAK,CAAC,KAAK,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;MACpCC,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;MACnBA,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;MACf,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE;QAC1B,MAAM,GAAG,KAAK,CAAC;QACf,MAAM,GAAG,CAAC,CAAC;OACZ;MACD,GAAG,CAAC,IAAI,CAAC,IAAE,IAAE,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,SAAS,CAAC,6BAA2B,GAAE,MAAM,cAAU,GAAE,MAAM,MAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACjJ;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,YAAY,EAAE;MACnD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;MAC1D,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KACjD,MAAM;MACL,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KACjD;IACD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,QAAQ,GAAG,UAAU,GAAG,aAAa,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;GACpG;EACD,MAAM,oBAAG;;IAEPD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,SAAO;IAChHA,GAAK,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;;IAE3HA,GAAK,CAAC,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;IAClCC,GAAG,CAAC,cAAc,GAAG,EAAE,CAAC;IACxB,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;MAC7BD,GAAK,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;MAC3J,KAAKC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE;QAC3C,IAAI,MAAM,CAAC,YAAY,EAAE;UACvB,cAAc,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;SAC3E,MAAM;UACL,cAAc,IAAI,GAAE,IAAE,MAAM,CAAC,aAAa,eAAS,IAAE,MAAM,CAAC,WAAW,WAAK,IAAE,MAAM,CAAC,aAAa,OAAG,CAAC;SACvG;OACF;MACD,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;MACzB,MAAM,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAE,IAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;KAChE;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;MAC9B,IAAI,MAAM,CAAC,cAAc,EAAE;QACzB,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;OAC7F,MAAM;QACL,cAAc;QACd,gBAAc,IAAE,MAAM,CAAC,YAAY,gBAAW;QAC9C,KAAK;QACL,gBAAc,IAAE,MAAM,CAAC,UAAU,gBAAW,CAAC;OAC9C;MACD,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KAC1B;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;MACjC,IAAI,MAAM,CAAC,iBAAiB,EAAE;QAC5B,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC;OACrF,MAAM;QACL,cAAc,GAAG,gBAAc,IAAE,MAAM,CAAC,oBAAoB,gBAAW,CAAC;OACzE;MACD,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KAC1B;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;MAC5B,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KAC3D;GACF;EACD,IAAI,kBAAG;IACLD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,SAAO;;IAEvBC,GAAG,CAAC,GAAG,GAAG,yEAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,SAAO;;IAE7B;MACE,MAAM,CAAC,MAAM,CAAC,iBAAiB;MAC/B,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ;MAC7B,GAAG,CAAC,MAAM,GAAG,CAAC;MACd,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC;MACvC;MACA,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KAClC;;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,EAAE;MACjD,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;KACrC;;IAED,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;;IAEjD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,cAAc,EAAE;MACtD,GAAG,CAAC,QAAQ,CAAC,GAAC,IAAE,MAAM,CAAC,aAAa,KAAG,MAAM,CAAC,IAAI,cAAS,CAAC,CAAC,CAAC;MAC9D,MAAM,CAAC,UAAU,CAAC,kBAAkB,GAAG,CAAC,CAAC;MACzC,IAAI,MAAM,CAAC,kBAAkB,GAAG,CAAC,EAAE;QACjC,MAAM,CAAC,kBAAkB,GAAG,CAAC,CAAC;OAC/B;KACF;;IAED,IAAI,MAAM,CAAC,SAAS,EAAE;MACpB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,IAAE,IAAE,MAAM,CAAC,WAAW,EAAE,EAAE,SAAS,OAAO,CAAC,CAAC,EAAE;QAC5D,CAAC,CAAC,cAAc,EAAE,CAAC;QACnBA,GAAG,CAAC,QAAQ,GAAG,yEAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;QAC9D,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAQ,IAAI,MAAM,CAAC,YAAY,CAAC;QACxD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;OAC1B,CAAC,CAAC;KACJ;;IAED,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE;MAC9B,QAAG;MACH,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;KACX,CAAC,CAAC;GACJ;EACD,OAAO,qBAAG;IACRD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,SAAO;IAChHA,GAAK,CAAC,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;;IAElC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACpC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,QAAM,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC/F,IAAI,MAAM,CAAC,SAAS,EAAE;MACpB,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAE,IAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;KAC5C;GACF;CACF,CAAC;;AAEF,IAAI,YAAY,GAAG;EACjB,IAAI,EAAE,YAAY;EAClB,MAAM,EAAE;IACN,UAAU,EAAE;MACV,EAAE,EAAE,IAAI;MACR,aAAa,EAAE,MAAM;MACrB,SAAS,EAAE,KAAK;MAChB,WAAW,EAAE,KAAK;MAClB,YAAY,EAAE,IAAI;MAClB,iBAAiB,EAAE,IAAI;MACvB,cAAc,EAAE,IAAI;MACpB,YAAY,EAAE,IAAI;MAClB,IAAI,EAAE,SAAS;MACf,cAAc,EAAE,KAAK;MACrB,kBAAkB,EAAE,CAAC;MACrB,WAAW,EAAE,0BAA0B;MACvC,iBAAiB,EAAE,iCAAiC;MACpD,aAAa,EAAE,oBAAoB;MACnC,YAAY,EAAE,2BAA2B;MACzC,UAAU,EAAE,yBAAyB;MACrC,WAAW,EAAE,0BAA0B;MACvC,oBAAoB,EAAE,oCAAoC;MAC1D,cAAc,EAAE,6BAA6B;MAC7C,SAAS,EAAE,wBAAwB;KACpC;GACF;EACD,MAAM,oBAAG;IACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;MACnB,UAAU,EAAE;QACV,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAClC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACtC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACtC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QACxC,kBAAkB,EAAE,CAAC;OACtB;KACF,CAAC,CAAC;GACJ;EACD,EAAE,EAAE;IACF,IAAI,kBAAG;MACLA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;MACzB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;MAC3B,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;KAC5B;IACD,iBAAiB,+BAAG;MAClBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QACtB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;OAC5B,MAAM,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,WAAW,EAAE;QAClD,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;OAC5B;KACF;IACD,eAAe,6BAAG;MAChBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QACvB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;OAC5B;KACF;IACD,kBAAkB,gCAAG;MACnBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QACtB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;OAC5B;KACF;IACD,oBAAoB,kCAAG;MACrBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QACvB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;OAC5B;KACF;IACD,OAAO,qBAAG;MACRA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;KAC7B;IACD,KAAK,iBAAC,CAAC,EAAE;MACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB;QACE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;QAC3B,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW;QACpC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC;QAChC,CAAC,yEAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC;QAC3D;QACA,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;OACzE;KACF;GACF;CACF,CAAC;;AAEFA,GAAK,CAAC,SAAS,GAAG;EAChB,YAAY,0BAAG;IACbA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,SAAO;IACxD,aAAS;IAAE,OAAG;IAAE,YAAQ,mBAAY;IAE1C,YAAQ;IAAE,aAAS;IAAE,WAAO;IAAE,OAAG,iBACrB;IACdA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;;IAEvCC,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC;IACvBA,GAAG,CAAC,MAAM,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC;IAC/C,IAAI,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE;MAChC,MAAM,GAAG,CAAC,MAAM,CAAC;MACjB,IAAI,MAAM,GAAG,CAAC,EAAE;QACd,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;QAC5B,MAAM,GAAG,CAAC,CAAC;OACZ,MAAM,IAAI,CAAC,MAAM,GAAG,QAAQ,GAAG,SAAS,EAAE;QACzC,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;OAC9B;KACF,MAAM,IAAI,MAAM,GAAG,CAAC,EAAE;MACrB,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;MAC5B,MAAM,GAAG,CAAC,CAAC;KACZ,MAAM,IAAI,MAAM,GAAG,QAAQ,GAAG,SAAS,EAAE;MACxC,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;KAC9B;IACD,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE;MACzB,IAAI,OAAO,CAAC,YAAY,EAAE;QACxB,OAAO,CAAC,SAAS,CAAC,eAAa,GAAE,MAAM,cAAU,CAAC,CAAC,CAAC;OACrD,MAAM;QACL,OAAO,CAAC,SAAS,CAAC,cAAY,GAAE,MAAM,QAAI,CAAC,CAAC,CAAC;OAC9C;MACD,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAM,OAAO,OAAI,CAAC;KACzC,MAAM;MACL,IAAI,OAAO,CAAC,YAAY,EAAE;QACxB,OAAO,CAAC,SAAS,CAAC,oBAAkB,GAAE,MAAM,WAAO,CAAC,CAAC,CAAC;OACvD,MAAM;QACL,OAAO,CAAC,SAAS,CAAC,cAAY,GAAE,MAAM,QAAI,CAAC,CAAC,CAAC;OAC9C;MACD,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAM,OAAO,OAAI,CAAC;KAC1C;IACD,IAAI,MAAM,CAAC,IAAI,EAAE;MACf,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;MACvC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;MACzB,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,CAAC,YAAM;QAC1C,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;QACzB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;OACrB,EAAE,IAAI,CAAC,CAAC;KACV;GACF;EACD,aAAa,yBAAC,QAAQ,EAAE;IACtBD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,SAAO;IAChE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;GAC/C;EACD,UAAU,wBAAG;IACXA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,SAAO;;IAExD,aAAS,oBAAY;IACrB,WAAO;IAAE,OAAG,iBAAe;;IAEnC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;IAC5B,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;IAC7BA,GAAK,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;;IAEnFA,GAAK,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;IACjDA,GAAK,CAAC,WAAW,GAAG,OAAO,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACxDC,GAAG,CAAC,QAAQ,CAAC;IACb,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,KAAK,MAAM,EAAE;MAC/C,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;KAChC,MAAM;MACL,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;KAC3D;;IAED,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE;MACzB,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAM,QAAQ,OAAI,CAAC;KAC1C,MAAM;MACL,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAM,QAAQ,OAAI,CAAC;KAC3C;;IAED,IAAI,OAAO,IAAI,CAAC,EAAE;MAChB,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;KAC/B,MAAM;MACL,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;KAC3B;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE;MAC/B,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;KAC1B;IACD,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE;MACtB,oBAAS;MACT,gBAAO;MACP,wBAAW;MACX,kBAAQ;KACT,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,QAAQ,GAAG,UAAU,GAAG,aAAa,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;GAC/H;EACD,eAAe,2BAAC,CAAC,EAAE;IACjBD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACZ,aAAS,oBAAY;IACrB,OAAG;IAAE,YAAQ;IAAE,aAAS,uBAAe;;IAE/CC,GAAG,CAAC,eAAe,CAAC;IACpB,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE;MACzB,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;KAC3H,MAAM;MACL,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;KAC3H;IACDA,GAAG,CAAC,aAAa,CAAC;IAClB,aAAa,GAAG,CAAC,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC;IACrI,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,IAAI,MAAM,CAAC,GAAG,EAAE;MACd,aAAa,GAAG,CAAC,GAAG,aAAa,CAAC;KACnC;;IAEDD,GAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC;;IAE3G,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,CAAC,iBAAiB,EAAE,CAAC;IAC3B,MAAM,CAAC,mBAAmB,EAAE,CAAC;GAC9B;EACD,WAAW,uBAAC,CAAC,EAAE;IACbA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,aAAS;IAAE,cAAU,qBAAY;IACjC,OAAG;IAAE,WAAO,qBAAe;IACnC,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;IAClC,CAAC,CAAC,cAAc,EAAE,CAAC;IACnB,CAAC,CAAC,eAAe,EAAE,CAAC;;IAEpB,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACxB,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;;IAE7B,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;;IAE3C,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAClB,IAAI,MAAM,CAAC,IAAI,EAAE;MACf,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;KACvB;IACD,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;GACtC;EACD,UAAU,sBAAC,CAAC,EAAE;IACZA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACZ,aAAS;IAAE,cAAU,qBAAY;IACjC,OAAG;IAAE,WAAO,qBAAe;;IAEnC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,SAAO;IACxC,IAAI,CAAC,CAAC,cAAc,EAAE,GAAC,CAAC,cAAc,EAAE,CAAC;SACpC,GAAC,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC7B,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACzB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAClB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;GACrC;EACD,SAAS,qBAAC,CAAC,EAAE;IACXA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;;IAEpBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,aAAS,oBAAY;IACrB,OAAG,iBAAe;;IAE1B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,SAAO;IACxC,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC;IACnC,IAAI,MAAM,CAAC,IAAI,EAAE;MACf,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;MAC3C,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAM;QAClD,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACtB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;OACrB,EAAE,IAAI,CAAC,CAAC;KACV;IACD,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,aAAa,EAAE;MACxB,MAAM,CAAC,UAAU,EAAE,CAAC;KACrB;GACF;EACD,eAAe,6BAAG;IAChBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,SAAO;IAEtC,aAAS;IAAE,eAAW;IAAE,sBAAkB;IAAE,UAAM,iBACzC;IACXA,GAAK,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;IAC1BA,GAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACtBA,GAAK,CAAC,cAAc,GAAG,OAAO,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACtHA,GAAK,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACtH,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,qBAAqB,CAAC,EAAE;MAC9E,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;MAChG,4DAAQ,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;MAChG,4DAAQ,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;KAChG,MAAM;MACL,IAAI,OAAO,CAAC,KAAK,EAAE;QACjB,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACzF,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACvF,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;OACvF;MACD,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE;QACtH,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACnF,4DAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACpF,4DAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;OACnF;KACF;GACF;EACD,gBAAgB,8BAAG;IACjBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,SAAO;IAEtC,aAAS;IAAE,eAAW;IAAE,sBAAkB;IAAE,UAAM,iBACzC;IACXA,GAAK,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;IAC1BA,GAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACtBA,GAAK,CAAC,cAAc,GAAG,OAAO,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACtHA,GAAK,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACtH,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,qBAAqB,CAAC,EAAE;MAC9E,MAAM,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;MACnG,4DAAQ,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;MACnG,4DAAQ,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;KACnG,MAAM;MACL,IAAI,OAAO,CAAC,KAAK,EAAE;QACjB,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAC5F,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC1F,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;OAC1F;MACD,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE;QACtH,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACtF,4DAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACvF,4DAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;OACtF;KACF;GACF;EACD,IAAI,kBAAG;IACLA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,SAAO;IAChC,aAAS;IAAO,aAAS,cAAY;IAC7CA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;;IAEvCC,GAAG,CAAC,GAAG,GAAG,yEAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvB,IAAI,MAAM,CAAC,MAAM,CAAC,iBAAiB,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;MAChI,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KACjC;;IAEDA,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAE,IAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;IAChE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;MACxB,OAAO,GAAG,yEAAC,CAAC,gBAAa,IAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,eAAS,CAAC,CAAC,CAAC;MACxE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KACrB;;IAED,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE;MACtB,QAAG;MACH,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;MACV,gBAAO;MACP,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;KACnB,CAAC,CAAC;;IAEH,IAAI,MAAM,CAAC,SAAS,EAAE;MACpB,SAAS,CAAC,eAAe,EAAE,CAAC;KAC7B;GACF;EACD,OAAO,qBAAG;IACRD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;GACrC;CACF,CAAC;;AAEF,IAAI,WAAW,GAAG;EAChB,IAAI,EAAE,WAAW;EACjB,MAAM,EAAE;IACN,SAAS,EAAE;MACT,EAAE,EAAE,IAAI;MACR,QAAQ,EAAE,MAAM;MAChB,IAAI,EAAE,KAAK;MACX,SAAS,EAAE,KAAK;MAChB,aAAa,EAAE,IAAI;MACnB,SAAS,EAAE,uBAAuB;MAClC,SAAS,EAAE,uBAAuB;KACnC;GACF;EACD,MAAM,oBAAG;IACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;MACnB,SAAS,EAAE;QACT,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QACjC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QACvC,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7C,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;QACjD,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;QACnD,eAAe,EAAE,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;QACvD,gBAAgB,EAAE,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;QACzD,eAAe,EAAE,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;QACvD,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/C,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7C,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3C,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,IAAI;OAClB;KACF,CAAC,CAAC;GACJ;EACD,EAAE,EAAE;IACF,IAAI,kBAAG;MACLA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;MACxB,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;MAC9B,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;KACjC;IACD,MAAM,oBAAG;MACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;KAC/B;IACD,MAAM,oBAAG;MACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;KAC/B;IACD,cAAc,4BAAG;MACfA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;KAC/B;IACD,YAAY,0BAAG;MACbA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;KACjC;IACD,aAAa,yBAAC,QAAQ,EAAE;MACtBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;KAC1C;IACD,OAAO,qBAAG;MACRA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;KAC5B;GACF;CACF,CAAC;;AAEFA,GAAK,CAAC,QAAQ,GAAG;EACf,YAAY,wBAAC,EAAE,EAAE,QAAQ,EAAE;IACzBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACZ,OAAG,cAAY;;IAEvBA,GAAK,CAAC,GAAG,GAAG,yEAAC,CAAC,EAAE,CAAC,CAAC;IAClBA,GAAK,CAAC,SAAS,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;;IAE/BA,GAAK,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,GAAG,CAAC;IAClDC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC3CA,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC3CD,GAAK,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACrDA,GAAK,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;;IAEzD,IAAI,CAAC,IAAI,CAAC,EAAE;MACV,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;MACb,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;KACd,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE;MAChC,CAAC,GAAG,CAAC,CAAC;MACN,CAAC,GAAG,GAAG,CAAC;KACT,MAAM;MACL,CAAC,GAAG,CAAC,CAAC;MACN,CAAC,GAAG,GAAG,CAAC;KACT;;IAED,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;MACzB,CAAC,GAAG,CAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,GAAG,SAAS,OAAG,CAAC;KAClD,MAAM;MACL,CAAC,GAAG,CAAG,CAAC,GAAG,QAAQ,GAAG,SAAS,QAAI,CAAC;KACrC;IACD,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;MACzB,CAAC,GAAG,CAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,OAAG,CAAC;KACtC,MAAM;MACL,CAAC,GAAG,CAAG,CAAC,GAAG,QAAQ,QAAI,CAAC;KACzB;;IAED,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,EAAE;MACtDA,GAAK,CAAC,cAAc,GAAG,OAAO,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;MAC5E,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc,CAAC;KACvC;IACD,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,IAAI,EAAE;MAClD,GAAG,CAAC,SAAS,CAAC,eAAa,GAAE,CAAC,OAAG,GAAE,CAAC,WAAO,CAAC,CAAC,CAAC;KAC/C,MAAM;MACLA,GAAK,CAAC,YAAY,GAAG,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;MACtE,GAAG,CAAC,SAAS,CAAC,eAAa,GAAE,CAAC,OAAG,GAAE,CAAC,kBAAc,GAAE,YAAY,MAAE,CAAC,CAAC,CAAC;KACtE;GACF;EACD,YAAY,0BAAG;IACbA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IAElB,OAAG;IAAE,UAAM;IAAE,YAAQ;IAAE,YAAQ,mBACtB;IACX,GAAG,CAAC,QAAQ,CAAC,4EAA4E,CAAC;OACvF,IAAI,CAAC,UAAC,QAAQ,EAAE,EAAE,EAAK;QACtB,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;OAC5C,CAAC,CAAC;IACL,MAAM,CAAC,IAAI,CAAC,UAAC,UAAU,EAAE,OAAO,EAAK;MACnCC,GAAG,CAAC,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC;MACrC,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,KAAK,MAAM,EAAE;QAC9E,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;OACjF;MACD,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;MACzD,yEAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,4EAA4E,CAAC;SAC1F,IAAI,CAAC,UAAC,QAAQ,EAAE,EAAE,EAAK;UACtB,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;SACjD,CAAC,CAAC;KACN,CAAC,CAAC;GACJ;EACD,aAAa,yBAAC,QAA4B,EAAE,CAAtB;uCAAA,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK;AAAG;IAC3CD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACZ,OAAG,cAAY;IACvB,GAAG,CAAC,IAAI,CAAC,4EAA4E,CAAC;OACnF,IAAI,CAAC,UAAC,QAAQ,EAAE,UAAU,EAAK;QAC9BA,GAAK,CAAC,WAAW,GAAG,yEAAC,CAAC,UAAU,CAAC,CAAC;QAClCC,GAAG,CAAC,gBAAgB,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,+BAA+B,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC;QACnG,IAAI,QAAQ,KAAK,CAAC,EAAE,kBAAgB,GAAG,CAAC,CAAC;QACzC,WAAW,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;OAC1C,CAAC,CAAC;GACN;CACF,CAAC;;AAEF,IAAI,UAAU,GAAG;EACf,IAAI,EAAE,UAAU;EAChB,MAAM,EAAE;IACN,QAAQ,EAAE;MACR,OAAO,EAAE,KAAK;KACf;GACF;EACD,MAAM,oBAAG;IACPD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;MACnB,QAAQ,EAAE;QACR,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;QAChD,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;QAChD,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;OACnD;KACF,CAAC,CAAC;GACJ;EACD,EAAE,EAAE;IACF,UAAU,wBAAG;MACXA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAO;MAC5C,MAAM,CAAC,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC;KAC1C;IACD,IAAI,kBAAG;MACLA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAO;MACpC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;KAChC;IACD,YAAY,0BAAG;MACbA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAO;MACpC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;KAChC;IACD,aAAa,yBAAC,QAAQ,EAAE;MACtBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAO;MACpC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;KACzC;GACF;CACF,CAAC;;AAEFA,GAAK,CAAC,IAAI,GAAG;;EAEX,yBAAyB,qCAAC,CAAC,EAAE;IAC3B,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,SAAO,CAAC,CAAC;IACzCA,GAAK,CAAC,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACpCA,GAAK,CAAC,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACpCA,GAAK,CAAC,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACpCA,GAAK,CAAC,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACpCA,GAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,WAAC,EAAE,GAAG,EAAE,CAAC,EAAI,CAAC,GAAC,GAAG,CAAC,WAAC,EAAE,GAAG,EAAE,CAAC,EAAI,CAAC,GAAC,CAAC,CAAC;IAChE,OAAO,QAAQ,CAAC;GACjB;;EAED,cAAc,0BAAC,CAAC,EAAE;IAChBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IAClCA,GAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACjB,WAAO,gBAAU;IACzB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAChC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAC9B,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;MACrB,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;QACtF,OAAO;OACR;MACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;MAC/B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;KACxD;IACD,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE;MACjD,OAAO,CAAC,QAAQ,GAAG,yEAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;MACxD,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,SAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;MAC3F,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;MAC7D,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,IAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;MAC5E,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC;MACpF,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;QACrC,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC7B,OAAO;OACR;KACF;IACD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;GAC9B;EACD,eAAe,2BAAC,CAAC,EAAE;IACjBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IAClCA,GAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACjB,WAAO,gBAAU;IACzB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;MACrB,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;QACpF,OAAO;OACR;MACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;MAC7B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;KACvD;IACD,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,SAAO;IAC/D,IAAI,OAAO,CAAC,QAAQ,EAAE;MACpB,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;KACjD,MAAM;MACL,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;KAC3E;IACD,IAAI,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE;MACjC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,WAAC,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAI,GAAG,GAAC,CAAC;KACtF;IACD,IAAI,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;MAChC,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,WAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAI,GAAG,GAAC,CAAC;KACpF;IACD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,4BAA0B,IAAE,IAAI,CAAC,KAAK,OAAE,CAAC,CAAC,CAAC;GACvE;EACD,YAAY,wBAAC,CAAC,EAAE;IACdA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IAClCA,GAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACjB,WAAO,gBAAU;IACzB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;MACrB,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;QACtD,OAAO;OACR;MACD,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;QACtG,OAAO;OACR;MACD,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;MAChC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;KAC/B;IACD,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,SAAO;IAC/D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,4BAA0B,IAAE,IAAI,CAAC,KAAK,OAAE,CAAC,CAAC,CAAC;IACtG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;IAC/B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACvB,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,SAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;GACpD;EACD,YAAY,wBAAC,CAAC,EAAE;IACdA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACjB,WAAO;IAAE,SAAK,cAAU;IAChC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,SAAO;IAC/D,IAAI,KAAK,CAAC,SAAS,EAAE,SAAO;IAC5B,IAAI,MAAM,CAAC,OAAO,EAAE,GAAC,CAAC,cAAc,EAAE,CAAC;IACvC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,YAAY,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IACpF,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,YAAY,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;GACrF;EACD,WAAW,uBAAC,CAAC,EAAE;IACbA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACjB,WAAO;IAAE,SAAK;IAAE,YAAQ,iBAAU;IAC1C,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,SAAO;IAC/D,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAO;;IAElD,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;MAClB,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;MAC9C,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;MAChD,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;MACrE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;MACrE,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;MACrD,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;MACvD,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;MACnC,IAAI,MAAM,CAAC,GAAG,EAAE,OAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;MAC7C,IAAI,MAAM,CAAC,GAAG,EAAE,OAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;KAC9C;;IAEDA,GAAK,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC7CA,GAAK,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;;IAE/C,IAAI,WAAW,GAAG,OAAO,CAAC,UAAU,IAAI,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,SAAO;;IAEnF,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzE,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;;IAEzB,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,WAAW,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IACrF,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,WAAW,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;;IAErF,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;MACrC;QACE,MAAM,CAAC,YAAY,EAAE;QACrB;UACE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;UACtG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;SACvG;QACD;QACA,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QACxB,OAAO;OACR,MAAM;QACL,CAAC,MAAM,CAAC,YAAY,EAAE;QACtB;UACE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;UACtG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;SACvG;QACD;QACA,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QACxB,OAAO;OACR;KACF;IACD,CAAC,CAAC,cAAc,EAAE,CAAC;IACnB,CAAC,CAAC,eAAe,EAAE,CAAC;;IAEpB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAChF,KAAK,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;;IAEhF,IAAI,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE;MAC/B,KAAK,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,WAAC,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAI,GAAG,GAAC,CAAC;KAClF;IACD,IAAI,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE;MAC/B,KAAK,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,WAAC,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAI,GAAG,GAAC,CAAC;KAClF;;IAED,IAAI,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE;MAC/B,KAAK,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,WAAC,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAI,GAAG,GAAC,CAAC;KAClF;IACD,IAAI,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE;MAC/B,KAAK,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,WAAC,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAI,GAAG,GAAC,CAAC;KAClF;;;IAGD,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAQ,CAAC,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;IAC7E,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAQ,CAAC,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;IAC7E,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvD,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtG,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtG,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,UAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;IAClF,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,UAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;IAClF,QAAQ,CAAC,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;IAChD,QAAQ,CAAC,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;IAChD,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;;IAE/B,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,eAAa,IAAE,KAAK,CAAC,QAAQ,UAAK,IAAE,KAAK,CAAC,QAAQ,WAAM,CAAC,CAAC,CAAC;GAC3F;EACD,UAAU,wBAAG;IACXA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACjB,WAAO;IAAE,SAAK;IAAE,YAAQ,iBAAU;IAC1C,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,SAAO;IAC/D,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;MACtC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;MACxB,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;MACtB,OAAO;KACR;IACD,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;IACxB,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;IACtBC,GAAG,CAAC,iBAAiB,GAAG,GAAG,CAAC;IAC5BA,GAAG,CAAC,iBAAiB,GAAG,GAAG,CAAC;IAC5BD,GAAK,CAAC,iBAAiB,GAAG,QAAQ,CAAC,CAAC,GAAG,iBAAiB,CAAC;IACzDA,GAAK,CAAC,YAAY,GAAG,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC;IACxDA,GAAK,CAAC,iBAAiB,GAAG,QAAQ,CAAC,CAAC,GAAG,iBAAiB,CAAC;IACzDA,GAAK,CAAC,YAAY,GAAG,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC;;;IAGxD,IAAI,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,mBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjG,IAAI,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,mBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjGA,GAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;;IAExE,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC;IAC9B,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC;;;IAG9BA,GAAK,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC7CA,GAAK,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;IAC/C,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzE,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5E,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;;IAE5E,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,eAAa,IAAE,KAAK,CAAC,QAAQ,UAAK,IAAE,KAAK,CAAC,QAAQ,WAAM,CAAC,CAAC,CAAC;GACxH;EACD,eAAe,6BAAG;IAChBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACjB,WAAO,gBAAU;IACzB,IAAI,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,WAAW,EAAE;MACnE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;MAC1D,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;MACrD,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;MAC7B,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;MAC7B,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;;MAEjC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;MACf,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;KACvB;GACF;;EAED,MAAM,kBAAC,CAAC,EAAE;IACRA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;;IAEzB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;;MAElC,IAAI,CAAC,GAAG,EAAE,CAAC;KACZ,MAAM;;MAEL,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KACZ;GACF;EACD,EAAE,gBAAC,CAAC,EAAE;IACJA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;;IAEpBA,GAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,WAAO;IAAE,SAAK,cAAU;;IAEhC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;MACrB,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,YAAY,GAAG,yEAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;MACvG,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;MAC7D,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,IAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;KAC7E;IACD,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,SAAO;;IAE/D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAC,IAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;;IAExDC,GAAG,CAAC,MAAM,CAAC;IACXA,GAAG,CAAC,MAAM,CAAC;IACXA,GAAG,CAAC,OAAO,CAAC;IACZA,GAAG,CAAC,OAAO,CAAC;IACZA,GAAG,CAAC,KAAK,CAAC;IACVA,GAAG,CAAC,KAAK,CAAC;IACVA,GAAG,CAAC,UAAU,CAAC;IACfA,GAAG,CAAC,UAAU,CAAC;IACfA,GAAG,CAAC,UAAU,CAAC;IACfA,GAAG,CAAC,WAAW,CAAC;IAChBA,GAAG,CAAC,WAAW,CAAC;IAChBA,GAAG,CAAC,YAAY,CAAC;IACjBA,GAAG,CAAC,aAAa,CAAC;IAClBA,GAAG,CAAC,aAAa,CAAC;IAClBA,GAAG,CAAC,aAAa,CAAC;IAClBA,GAAG,CAAC,aAAa,CAAC;IAClBA,GAAG,CAAC,UAAU,CAAC;IACfA,GAAG,CAAC,WAAW,CAAC;;IAEhB,IAAI,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC,KAAK,WAAW,IAAI,CAAC,EAAE;MACpD,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,UAAU,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;MACrE,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,UAAU,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;KACtE,MAAM;MACL,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;MAC9B,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;KAC/B;;IAED,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC;IAC9E,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC;IACrF,IAAI,CAAC,EAAE;MACL,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;MAC7C,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;MAC/C,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;MACzC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC;MACxC,KAAK,GAAG,CAAC,OAAO,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;MAC9C,KAAK,GAAG,CAAC,OAAO,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;;MAE/C,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;MAC7C,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;MAC/C,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;MACtC,YAAY,GAAG,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;;MAExC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;MACpE,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;MACtE,aAAa,GAAG,CAAC,aAAa,CAAC;MAC/B,aAAa,GAAG,CAAC,aAAa,CAAC;;MAE/B,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;MAChC,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;;MAEhC,IAAI,UAAU,GAAG,aAAa,EAAE;QAC9B,UAAU,GAAG,aAAa,CAAC;OAC5B;MACD,IAAI,UAAU,GAAG,aAAa,EAAE;QAC9B,UAAU,GAAG,aAAa,CAAC;OAC5B;;MAED,IAAI,UAAU,GAAG,aAAa,EAAE;QAC9B,UAAU,GAAG,aAAa,CAAC;OAC5B;MACD,IAAI,UAAU,GAAG,aAAa,EAAE;QAC9B,UAAU,GAAG,aAAa,CAAC;OAC5B;KACF,MAAM;MACL,UAAU,GAAG,CAAC,CAAC;MACf,UAAU,GAAG,CAAC,CAAC;KAChB;IACD,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,eAAa,GAAE,UAAU,SAAK,GAAE,UAAU,UAAM,CAAC,CAAC,CAAC;IAClG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,4BAA0B,IAAE,IAAI,CAAC,KAAK,OAAE,CAAC,CAAC,CAAC;GACvF;EACD,GAAG,iBAAG;IACJD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;;IAEpBA,GAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,WAAO,gBAAU;;IAEzB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;MACrB,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,YAAY,GAAG,yEAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;MACvG,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;MAC7D,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,IAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;KAC7E;IACD,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,SAAO;;IAE/D,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACf,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;IACtB,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACrE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;IAC1E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAC,IAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC3D,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;GAC9B;;EAED,MAAM,oBAAG;IACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,IAAI,IAAI,CAAC,OAAO,EAAE,SAAO;IACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;;IAEpBA,GAAK,CAAC,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,KAAK,YAAY,IAAI,OAAO,CAAC,eAAe,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;;;IAG3K,IAAI,OAAO,CAAC,QAAQ,EAAE;MACpB,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;MAC5F,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;MAC9F,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;KACzF,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,KAAK,YAAY,EAAE;MACpD,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;MACtG,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;MACtG,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;KACnG;;;IAGD,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,IAAE,IAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;GAC1G;EACD,OAAO,qBAAG;IACRA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAO;;IAE1B,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;;IAE5BA,GAAK,CAAC,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,KAAK,YAAY,IAAI,OAAO,CAAC,eAAe,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;;;IAG3K,IAAI,OAAO,CAAC,QAAQ,EAAE;MACpB,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,EAAE,eAAe,EAAE,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;MAC7F,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;MAC/F,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,eAAe,EAAE,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;KAC1F,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,KAAK,YAAY,EAAE;MACpD,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;MACvG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;MACvG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;KACpG;;;IAGD,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,IAAE,IAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;GAC3G;CACF,CAAC;;AAEF,IAAI,MAAM,GAAG;EACX,IAAI,EAAE,MAAM;EACZ,MAAM,EAAE;IACN,IAAI,EAAE;MACJ,OAAO,EAAE,KAAK;MACd,QAAQ,EAAE,CAAC;MACX,QAAQ,EAAE,CAAC;MACX,MAAM,EAAE,IAAI;MACZ,cAAc,EAAE,uBAAuB;MACvC,gBAAgB,EAAE,qBAAqB;KACxC;GACF;EACD,MAAM,oBAAG;IACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,IAAI,GAAG;MACX,OAAO,EAAE,KAAK;MACd,KAAK,EAAE,CAAC;MACR,YAAY,EAAE,CAAC;MACf,SAAS,EAAE,KAAK;MAChB,OAAO,EAAE;QACP,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,SAAS;QACtB,QAAQ,EAAE,SAAS;QACnB,YAAY,EAAE,SAAS;QACvB,QAAQ,EAAE,CAAC;OACZ;MACD,KAAK,EAAE;QACL,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,EAAE;QAChB,cAAc,EAAE,EAAE;OACnB;MACD,QAAQ,EAAE;QACR,CAAC,EAAE,SAAS;QACZ,CAAC,EAAE,SAAS;QACZ,aAAa,EAAE,SAAS;QACxB,aAAa,EAAE,SAAS;QACxB,QAAQ,EAAE,SAAS;OACpB;KACF,CAAC;IACF,CAAC,8HAA8H,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAC,UAAU,EAAK;MAClK,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAClD,CAAC,CAAC;IACH,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;MACnB,UAAI;KACL,CAAC,CAAC;GACJ;EACD,EAAE,EAAE;IACF,IAAI,kBAAG;MACLA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;QAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;OACtB;KACF;IACD,OAAO,qBAAG;MACRA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;KACvB;IACD,UAAU,sBAAC,CAAC,EAAE;MACZA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAO;MACjC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;KAC7B;IACD,QAAQ,oBAAC,CAAC,EAAE;MACVA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAO;MACjC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KAC3B;IACD,SAAS,qBAAC,CAAC,EAAE;MACXA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE;QAClF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;OACvB;KACF;IACD,aAAa,2BAAG;MACdA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;QACrD,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;OAC/B;KACF;GACF;CACF,CAAC;;AAEFA,GAAK,CAAC,IAAI,GAAG;EACX,WAAW,uBAAC,QAAQ,EAAE,eAAsB,EAAE,CAAT;qDAAA,GAAG,IAAI;AAAG;IAC7CA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IAClC,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,SAAO;IAC5C,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,SAAO;IACvCA,GAAK,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;;IAElEA,GAAK,CAAC,QAAQ,GAAG,SAAS;QACtB,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAE,IAAE,MAAM,CAAC,MAAM,CAAC,UAAU,iCAA2B,GAAE,QAAQ,QAAG,CAAC,CAAC;QACjG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;;IAE/BC,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAE,IAAE,MAAM,CAAC,YAAY,YAAO,IAAE,MAAM,CAAC,WAAW,aAAQ,IAAE,MAAM,CAAC,YAAY,OAAE,CAAC,CAAC,CAAC;IAChH,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;MAC/H,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;KACpC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,SAAO;;IAEjC,OAAO,CAAC,IAAI,CAAC,UAAC,UAAU,EAAE,OAAO,EAAK;MACpCD,GAAK,CAAC,QAAQ,GAAG,yEAAC,CAAC,OAAO,CAAC,CAAC;MAC5B,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;;MAEvCA,GAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;MACpDA,GAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;MACtCA,GAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;MAC5CA,GAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;;MAE1C,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,YAAM;QAC7E,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,SAAO;QAC1H,IAAI,UAAU,EAAE;UACd,QAAQ,CAAC,GAAG,CAAC,kBAAkB,EAAE,SAAM,GAAE,UAAU,QAAG,CAAC,CAAC,CAAC;UACzD,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;SACxC,MAAM;UACL,IAAI,MAAM,EAAE;YACV,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAChC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;WACpC;UACD,IAAI,KAAK,EAAE;YACT,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC9B,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;WACnC;UACD,IAAI,GAAG,EAAE;YACP,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC1B,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;WACjC;SACF;;QAED,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACvE,QAAQ,CAAC,IAAI,CAAC,IAAE,IAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QACpD,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,eAAe,EAAE;UACzCA,GAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;UACpE,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE;YACxDA,GAAK,CAAC,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,8BAA2B,GAAE,kBAAkB,cAAS,IAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB,OAAE,CAAC,CAAC,CAAC;YACjJ,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;WACvD,MAAM;YACLA,GAAK,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAE,IAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB,iCAA2B,GAAE,kBAAkB,QAAG,CAAC,CAAC,CAAC;YAC7I,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;WACzD;SACF;QACD,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;OACzD,CAAC,CAAC;;MAEH,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;KACxD,CAAC,CAAC;GACJ;EACD,IAAI,kBAAG;IACLA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IAElB,cAAU;IAAU,gBAAY;IAAE,UAAM;IAAE,eAAW,sBAC5C;IACXA,GAAK,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;IACjEA,GAAK,CAAC,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC;;IAEjCC,GAAG,CAAC,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;IAC/C,IAAI,aAAa,KAAK,MAAM,EAAE;MAC5B,aAAa,GAAG,CAAC,CAAC;KACnB;;IAED,SAAS,UAAU,CAAC,QAAQ,EAAE;MAC5B,IAAI,SAAS,EAAE;QACb,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAE,IAAE,YAAY,CAAC,UAAU,iCAA2B,GAAE,QAAQ,QAAG,CAAC,CAAC,CAAC,MAAM,EAAE;UACpG,OAAO,IAAI,CAAC;SACb;OACF,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,SAAO,IAAI,CAAC;MACzC,OAAO,KAAK,CAAC;KACd;IACD,SAAS,UAAU,CAAC,OAAO,EAAE;MAC3B,IAAI,SAAS,EAAE;QACb,OAAO,yEAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;OACnD;MACD,OAAO,yEAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;KAC3B;;IAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAM,CAAC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAC3E,IAAI,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE;MACvC,UAAU,CAAC,QAAQ,CAAC,IAAE,IAAE,YAAY,CAAC,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,UAAC,OAAO,EAAE,OAAO,EAAK;QACnFD,GAAK,CAAC,QAAQ,GAAG,SAAS,GAAG,yEAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,yEAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QAC7F,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;OACnC,CAAC,CAAC;KACJ,MAAM,IAAI,aAAa,GAAG,CAAC,EAAE;MAC5B,KAAKC,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,WAAW,GAAG,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE;QACjE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,QAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;OAC/C;KACF,MAAM;MACL,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;KACtC;IACD,IAAI,MAAM,CAAC,YAAY,EAAE;MACvB,IAAI,aAAa,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,kBAAkB,GAAG,CAAC,CAAC,EAAE;QACrFD,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC;QACzCA,GAAK,CAAC,GAAG,GAAG,aAAa,CAAC;QAC1BA,GAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACpFA,GAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;;QAElE,KAAKC,GAAG,CAACC,GAAC,GAAG,WAAW,GAAG,aAAa,EAAEA,GAAC,GAAG,QAAQ,EAAEA,GAAC,IAAI,CAAC,EAAE;UAC9D,IAAI,UAAU,CAACA,GAAC,CAAC,EAAE,QAAM,CAAC,IAAI,CAAC,WAAW,CAACA,GAAC,CAAC,CAAC;SAC/C;;QAED,KAAKD,GAAG,CAACC,GAAC,GAAG,QAAQ,EAAEA,GAAC,GAAG,WAAW,EAAEA,GAAC,IAAI,CAAC,EAAE;UAC9C,IAAI,UAAU,CAACA,GAAC,CAAC,EAAE,QAAM,CAAC,IAAI,CAAC,WAAW,CAACA,GAAC,CAAC,CAAC;SAC/C;OACF,MAAM;QACLF,GAAK,CAAC,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAE,IAAE,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;QACzE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,QAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;;QAEzEA,GAAK,CAAC,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAE,IAAE,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;QACzE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,QAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;OAC1E;KACF;GACF;CACF,CAAC;;AAEF,IAAI,MAAM,GAAG;EACX,IAAI,EAAE,MAAM;EACZ,MAAM,EAAE;IACN,IAAI,EAAE;MACJ,OAAO,EAAE,KAAK;MACd,YAAY,EAAE,KAAK;MACnB,kBAAkB,EAAE,CAAC;MACrB,qBAAqB,EAAE,KAAK;;MAE5B,YAAY,EAAE,aAAa;MAC3B,YAAY,EAAE,qBAAqB;MACnC,WAAW,EAAE,oBAAoB;MACjC,cAAc,EAAE,uBAAuB;KACxC;GACF;EACD,MAAM,oBAAG;IACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;MACnB,IAAI,EAAE;QACJ,kBAAkB,EAAE,KAAK;QACzB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5B,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;OAC3C;KACF,CAAC,CAAC;GACJ;EACD,EAAE,EAAE;IACF,UAAU,wBAAG;MACXA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE;QAC7D,MAAM,CAAC,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC;OACrC;KACF;IACD,IAAI,kBAAG;MACLA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,KAAK,CAAC,EAAE;QACzF,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;OACpB;KACF;IACD,MAAM,oBAAG;MACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE;QAC3D,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;OACpB;KACF;IACD,MAAM,oBAAG;MACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;QAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;OACpB;KACF;IACD,iBAAiB,+BAAG;MAClBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;QAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;OACpB;KACF;IACD,eAAe,6BAAG;MAChBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;QAC9B,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;UAC9H,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SACpB;OACF;KACF;IACD,aAAa,2BAAG;MACdA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;QAC3E,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;OACpB;KACF;GACF;CACF,CAAC;;;AAGFA,GAAK,CAAC,UAAU,GAAG;EACjB,YAAY,EAAE,SAAS,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE;IACxCA,GAAK,CAAC,YAAY,GAAG,CAAC,SAAS,MAAM,GAAG;MACtCC,GAAG,CAAC,QAAQ,CAAC;MACbA,GAAG,CAAC,QAAQ,CAAC;MACbA,GAAG,CAAC,KAAK,CAAC;MACV,OAAO,UAAC,KAAK,EAAE,GAAG,EAAK;QACrB,QAAQ,GAAG,CAAC,CAAC,CAAC;QACd,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;QACxB,OAAO,QAAQ,GAAG,QAAQ,GAAG,CAAC,EAAE;UAC9B,KAAK,GAAG,QAAQ,GAAG,QAAQ,IAAI,CAAC,CAAC;UACjC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE;YACvB,QAAQ,GAAG,KAAK,CAAC;WAClB,MAAM;YACL,QAAQ,GAAG,KAAK,CAAC;WAClB;SACF;QACD,OAAO,QAAQ,CAAC;OACjB,CAAC;KACH,EAAE,CAAC,CAAC;IACL,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACX,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;;;;IAI9BA,GAAG,CAAC,EAAE,CAAC;IACPA,GAAG,CAAC,EAAE,CAAC;;IAEP,IAAI,CAAC,WAAW,GAAG,SAAS,WAAW,CAAC,EAAE,EAAE;MAC1C,IAAI,CAAC,EAAE,EAAE,SAAO,CAAC,CAAC;;;MAGlB,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;MAC9B,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;;;;MAIZ,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KACnG,CAAC;IACF,OAAO,IAAI,CAAC;GACb;;EAED,sBAAsB,kCAAC,CAAC,EAAE;IACxBD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE;MAC7B,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI;QAC3C,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC;QAC5D,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;KAC5D;GACF;EACD,YAAY,wBAACK,cAAY,EAAE,YAAY,EAAE;IACvCL,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;IAC7CC,GAAG,CAAC,UAAU,CAAC;IACfA,GAAG,CAAC,mBAAmB,CAAC;IACxB,SAAS,sBAAsB,CAAC,CAAC,EAAE;;;;;MAKjCD,GAAK,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;MACtG,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,OAAO,EAAE;QAC3C,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;;;QAG5C,mBAAmB,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC;OACzE;;MAED,IAAI,CAAC,mBAAmB,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,WAAW,EAAE;QACvE,UAAU,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QACrG,mBAAmB,GAAG,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;OAC7F;;MAED,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE;QACpC,mBAAmB,GAAG,CAAC,CAAC,YAAY,EAAE,GAAG,mBAAmB,CAAC;OAC9D;MACD,CAAC,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;MACtC,CAAC,CAAC,YAAY,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;MAC5C,CAAC,CAAC,iBAAiB,EAAE,CAAC;MACtB,CAAC,CAAC,mBAAmB,EAAE,CAAC;KACzB;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;MAC7B,KAAKC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QAC7C,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,YAAY,IAAI,UAAU,CAAC,CAAC,CAAC,YAAY,QAAQ,EAAE;UACvE,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SACvC;OACF;KACF,MAAM,IAAI,UAAU,YAAY,QAAQ,IAAI,YAAY,KAAK,UAAU,EAAE;MACxE,sBAAsB,CAAC,UAAU,CAAC,CAAC;KACpC;GACF;EACD,aAAa,yBAAC,QAAQ,EAAE,YAAY,EAAE;IACpCD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;IAC7CC,GAAG,CAAC,CAAC,CAAC;IACN,SAAS,uBAAuB,CAAC,CAAC,EAAE;MAClC,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;MAClC,IAAI,QAAQ,KAAK,CAAC,EAAE;QAClB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,YAAM;UAC/B,IAAI,CAAC,UAAU,EAAE,SAAO;UACxB,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,OAAO,EAAE;YAC5D,CAAC,CAAC,OAAO,EAAE,CAAC;WACb;UACD,CAAC,CAAC,aAAa,EAAE,CAAC;SACnB,CAAC,CAAC;OACJ;KACF;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;MAC7B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACzC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,YAAY,IAAI,UAAU,CAAC,CAAC,CAAC,YAAY,QAAQ,EAAE;UACvE,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SACxC;OACF;KACF,MAAM,IAAI,UAAU,YAAY,QAAQ,IAAI,YAAY,KAAK,UAAU,EAAE;MACxE,uBAAuB,CAAC,UAAU,CAAC,CAAC;KACrC;GACF;CACF,CAAC;AACF,IAAI,YAAY,GAAG;EACjB,IAAI,EAAE,YAAY;EAClB,MAAM,EAAE;IACN,UAAU,EAAE;MACV,OAAO,EAAE,SAAS;MAClB,OAAO,EAAE,KAAK;MACd,EAAE,EAAE,OAAO;KACZ;GACF;EACD,MAAM,oBAAG;IACPD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;MACnB,UAAU,EAAE;QACV,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO;QACzC,sBAAsB,EAAE,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC;QACtE,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;QAClD,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;OACrD;KACF,CAAC,CAAC;GACJ;EACD,EAAE,EAAE;IACF,MAAM,oBAAG;MACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,SAAO;MACvC,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE;QAC5B,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;QACrC,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;OACjC;KACF;IACD,MAAM,oBAAG;MACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,SAAO;MACvC,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE;QAC5B,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;QACrC,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;OACjC;KACF;IACD,cAAc,4BAAG;MACfA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,SAAO;MACvC,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE;QAC5B,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;QACrC,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;OACjC;KACF;IACD,YAAY,wBAAC,SAAS,EAAE,YAAY,EAAE;MACpCA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,SAAO;MACvC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;KACzD;IACD,aAAa,yBAAC,QAAQ,EAAE,YAAY,EAAE;MACpCA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,SAAO;MACvC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;KACzD;GACF;CACF,CAAC;;AAEFA,GAAK,CAAC,IAAI,GAAG;EACX,eAAe,2BAAC,GAAG,EAAE;IACnB,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC1B,OAAO,GAAG,CAAC;GACZ;EACD,SAAS,qBAAC,GAAG,EAAE,IAAI,EAAE;IACnB,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACvB,OAAO,GAAG,CAAC;GACZ;EACD,UAAU,sBAAC,GAAG,EAAE,KAAK,EAAE;IACrB,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAC9B,OAAO,GAAG,CAAC;GACZ;EACD,SAAS,qBAAC,GAAG,EAAE;IACb,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAChC,OAAO,GAAG,CAAC;GACZ;EACD,QAAQ,oBAAC,GAAG,EAAE;IACZ,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACjC,OAAO,GAAG,CAAC;GACZ;EACD,UAAU,sBAAC,CAAC,EAAE;IACZA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IAClC,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE,EAAE,SAAO;IAC7BA,GAAK,CAAC,SAAS,GAAG,yEAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,IAAI,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;MAC7F,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QAC1C,MAAM,CAAC,SAAS,EAAE,CAAC;OACpB;MACD,IAAI,MAAM,CAAC,KAAK,EAAE;QAChB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;OAC7C,MAAM;QACL,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;OAC7C;KACF;IACD,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,IAAI,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;MAC7F,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QAChD,MAAM,CAAC,SAAS,EAAE,CAAC;OACpB;MACD,IAAI,MAAM,CAAC,WAAW,EAAE;QACtB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;OAC9C,MAAM;QACL,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;OAC7C;KACF;IACD,IAAI,MAAM,CAAC,UAAU,IAAI,SAAS,CAAC,EAAE,CAAC,IAAE,IAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE;MACjF,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;KACtB;GACF;EACD,MAAM,kBAAC,OAAO,EAAE;IACdA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;IAC5C,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,SAAO;IACtC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;GAC5B;EACD,gBAAgB,8BAAG;IACjBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;;IAEpB,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAO;IACL,UAAG,MAAM,CAAC,UAAU;IAAtC,WAAO;IAAE,WAAO,eAAuB;;IAE/C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;MACjC,IAAI,MAAM,CAAC,WAAW,EAAE;QACtB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;OAChC,MAAM;QACL,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;OAC/B;KACF;IACD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;MACjC,IAAI,MAAM,CAAC,KAAK,EAAE;QAChB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;OAChC,MAAM;QACL,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;OAC/B;KACF;GACF;EACD,gBAAgB,8BAAG;IACjBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IAClC,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE;MAC5H,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,WAAW,EAAE,QAAQ,EAAK;QACxDA,GAAK,CAAC,SAAS,GAAG,yEAAC,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,uBAAuB,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;OAC/G,CAAC,CAAC;KACJ;GACF;EACD,IAAI,kBAAG;IACLA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;;IAEpB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;;IAG1CA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IAClCC,GAAG,CAAC,OAAO,CAAC;IACZA,GAAG,CAAC,OAAO,CAAC;IACZ,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE;MAClD,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;KACrC;IACD,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE;MAClD,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;KACrC;IACD,IAAI,OAAO,EAAE;MACX,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;MACrC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;MACzC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;MACzD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC/C;IACD,IAAI,OAAO,EAAE;MACX,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;MACrC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;MACzC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;MACzD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC/C;;;IAGD,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE;MAC5H,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,IAAE,IAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACzG;GACF;EACD,OAAO,qBAAG;IACRD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,QAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;;IAEjGC,GAAG,CAAC,OAAO,CAAC;IACZA,GAAG,CAAC,OAAO,CAAC;IACZ,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE;MAClD,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;KACrC;IACD,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE;MAClD,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;KACrC;IACD,IAAI,OAAO,EAAE;MACX,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAChD;IACD,IAAI,OAAO,EAAE;MACX,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAChD;;;IAGD,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE;MAC5H,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,IAAE,IAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC1G;GACF;CACF,CAAC;AACF,IAAI,IAAI,GAAG;EACT,IAAI,EAAE,MAAM;EACZ,MAAM,EAAE;IACN,IAAI,EAAE;MACJ,OAAO,EAAE,KAAK;MACd,iBAAiB,EAAE,qBAAqB;MACxC,gBAAgB,EAAE,gBAAgB;MAClC,gBAAgB,EAAE,YAAY;MAC9B,iBAAiB,EAAE,yBAAyB;MAC5C,gBAAgB,EAAE,wBAAwB;MAC1C,uBAAuB,EAAE,uBAAuB;KACjD;GACF;EACD,MAAM,oBAAG;IACPD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;MACnB,IAAI,EAAE;QACJ,UAAU,EAAE,yEAAC,CAAC,iBAAc,IAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,6DAAmD,CAAC,CAAC;OACxH;KACF,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAC,UAAU,EAAK;MACxC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACzD,CAAC,CAAC;GACJ;EACD,EAAE,EAAE;IACF,IAAI,kBAAG;MACLA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAO;MACxC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;MACnB,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAChC;IACD,MAAM,oBAAG;MACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAO;MACxC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAChC;IACD,QAAQ,sBAAG;MACTA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAO;MACxC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAChC;IACD,gBAAgB,8BAAG;MACjBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAO;MACxC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAChC;IACD,OAAO,qBAAG;MACRA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAO;MACxC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;KACvB;GACF;CACF,CAAC;;AAEFA,GAAK,CAAC,OAAO,GAAG;EACd,IAAI,kBAAG;IACLA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,SAAO;IACnC,IAAI,CAAC,0DAAM,CAAC,OAAO,IAAI,CAAC,0DAAM,CAAC,OAAO,CAAC,SAAS,EAAE;MAChD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;MACtC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;MAC5C,OAAO;KACR;IACDA,GAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IACxC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,SAAO;IACvD,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAChF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE;MACvC,0DAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;KACxE;GACF;EACD,OAAO,qBAAG;IACRA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE;MACvC,0DAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;KAC3E;GACF;EACD,kBAAkB,gCAAG;IACnBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAC/C,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;GACtF;EACD,aAAa,2BAAG;IACdA,GAAK,CAAC,SAAS,GAAG,0DAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,cAAI,EAAI,aAAI,KAAK,EAAE,IAAC,CAAC;IAC3FA,GAAK,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;IAC/BA,GAAK,CAAC,GAAG,GAAG,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACjCA,GAAK,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACnC,OAAO,EAAE,QAAG,EAAE,YAAK,EAAE,CAAC;GACvB;EACD,UAAU,sBAAC,GAAG,EAAE,QAAQ,EAAE;IACxBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,SAAO;IAC1EA,GAAK,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IACzCC,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IACxD,IAAI,CAAC,0DAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;MAC3C,KAAK,GAAM,GAAG,MAAE,GAAE,KAAO,CAAC;KAC3B;IACDD,GAAK,CAAC,YAAY,GAAG,0DAAM,CAAC,OAAO,CAAC,KAAK,CAAC;IAC1C,IAAI,YAAY,IAAI,YAAY,CAAC,KAAK,KAAK,KAAK,EAAE;MAChD,OAAO;KACR;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE;MACtC,0DAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,YAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;KACrD,MAAM;MACL,0DAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,YAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;KAClD;GACF;EACD,OAAO,mBAAC,OAAO,EAAE;IACf,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE;OACpC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;OACpB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;OACvB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;OACpB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;OAClB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;GACvB;EACD,aAAa,yBAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE;IACxCA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,KAAK,EAAE;MACT,KAAKC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACjED,GAAK,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClCA,GAAK,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QACjE,IAAI,YAAY,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE;UAChFA,GAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;UAC/B,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;SAC/C;OACF;KACF,MAAM;MACL,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;KACxC;GACF;CACF,CAAC;;AAEF,IAAI,SAAS,GAAG;EACd,IAAI,EAAE,SAAS;EACf,MAAM,EAAE;IACN,OAAO,EAAE;MACP,OAAO,EAAE,KAAK;MACd,YAAY,EAAE,KAAK;MACnB,GAAG,EAAE,QAAQ;KACd;GACF;EACD,MAAM,oBAAG;IACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;MACnB,OAAO,EAAE;QACP,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/B,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3C,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3D,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;QACjD,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;OACtC;KACF,CAAC,CAAC;GACJ;EACD,EAAE,EAAE;IACF,IAAI,kBAAG;MACLA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE;QACjC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;OACvB;KACF;IACD,OAAO,qBAAG;MACRA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE;QACjC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;OAC1B;KACF;IACD,aAAa,2BAAG;MACdA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE;QAC9B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;OAC1E;KACF;GACF;CACF,CAAC;;AAEFA,GAAK,CAAC,cAAc,GAAG;EACrB,WAAW,yBAAG;IACZA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,OAAO,GAAG,4DAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACxDA,GAAK,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/E,IAAI,OAAO,KAAK,eAAe,EAAE;MAC/B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAE,IAAE,MAAM,CAAC,MAAM,CAAC,UAAU,mBAAa,GAAE,OAAO,QAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;KAC5G;GACF;EACD,OAAO,qBAAG;IACRA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,SAAO;IACxF,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,IAAI,0DAAM,CAAC,OAAO,IAAI,0DAAM,CAAC,OAAO,CAAC,YAAY,EAAE;MAC9F,0DAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAE,IAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;KAC/G,MAAM;MACLA,GAAK,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;MACnDA,GAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;MACnE,4DAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;KACrC;GACF;EACD,IAAI,kBAAG;IACLA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,SAAO;IAC9G,MAAM,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC;IACzCA,GAAK,CAAC,IAAI,GAAG,4DAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACrD,IAAI,IAAI,EAAE;MACRA,GAAK,CAAC,KAAK,GAAG,CAAC,CAAC;MAChB,KAAKC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACjED,GAAK,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClCA,GAAK,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxE,IAAI,SAAS,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE;UAC5EA,GAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;UAC/B,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;SACzE;OACF;KACF;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE;MAC3C,yEAAC,CAAC,0DAAM,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;KAC/D;GACF;EACD,OAAO,qBAAG;IACRA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE;MAC3C,yEAAC,CAAC,0DAAM,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;KAChE;GACF;CACF,CAAC;AACF,IAAI,gBAAgB,GAAG;EACrB,IAAI,EAAE,iBAAiB;EACvB,MAAM,EAAE;IACN,cAAc,EAAE;MACd,OAAO,EAAE,KAAK;MACd,YAAY,EAAE,KAAK;MACnB,UAAU,EAAE,KAAK;KAClB;GACF;EACD,MAAM,oBAAG;IACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;MACnB,cAAc,EAAE;QACd,WAAW,EAAE,KAAK;QAClB,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QACtC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5C,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5C,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;OACrD;KACF,CAAC,CAAC;GACJ;EACD,EAAE,EAAE;IACF,IAAI,kBAAG;MACLA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE;QACxC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;OAC9B;KACF;IACD,OAAO,qBAAG;MACRA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE;QACxC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;OACjC;KACF;IACD,aAAa,2BAAG;MACdA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE;QACrC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;OACjC;KACF;GACF;CACF,CAAC;;AAEFA,GAAK,CAAC,QAAQ,GAAG;EACf,GAAG,iBAAG;IACJA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpBA,GAAK,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC5DC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;IACzC,IAAI,cAAc,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE;MAC/C,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;KACrF;IACD,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAM;MAC7C,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE;QAC3C,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;UACtB,MAAM,CAAC,OAAO,EAAE,CAAC;UACjB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;UAClD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACzB,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;UAC9B,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;UAClD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACzB,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE;UAClD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;UAC1E,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACzB,MAAM;UACL,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACxB;OACF,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QAC7B,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;OACzB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;QACxB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;OACzB,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE;QAClD,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;OACzB,MAAM;QACL,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;OACxB;KACF,EAAE,KAAK,CAAC,CAAC;GACX;EACD,KAAK,mBAAG;IACND,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,KAAK,WAAW,EAAE,SAAO,KAAK,CAAC;IACjE,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAO,KAAK,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC7B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IACtB,OAAO,IAAI,CAAC;GACb;EACD,IAAI,kBAAG;IACLA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAO,KAAK,CAAC;IAC3C,IAAI,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,KAAK,WAAW,EAAE,SAAO,KAAK,CAAC;;IAEjE,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;MAC3B,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;MACtC,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC;KACrC;IACD,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;IAChC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC5B,OAAO,IAAI,CAAC;GACb;EACD,KAAK,iBAAC,KAAK,EAAE;IACXA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAO;IACrC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAO;IACnC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IAC9B,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE;MAC5D,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC;MAC/B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;KACvB,MAAM;MACL,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,YAAM;QACpC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,SAAO;QACxC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;UAC5B,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACxB,MAAM;UACL,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;SACvB;OACF,CAAC,CAAC;KACJ;GACF;CACF,CAAC;;AAEF,IAAI,UAAU,GAAG;EACf,IAAI,EAAE,UAAU;EAChB,MAAM,EAAE;IACN,QAAQ,EAAE;MACR,OAAO,EAAE,KAAK;MACd,KAAK,EAAE,IAAI;MACX,iBAAiB,EAAE,IAAI;MACvB,oBAAoB,EAAE,IAAI;MAC1B,eAAe,EAAE,KAAK;MACtB,gBAAgB,EAAE,KAAK;KACxB;GACF;EACD,MAAM,oBAAG;IACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;MACnB,QAAQ,EAAE;QACR,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QAClC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;OACnC;KACF,CAAC,CAAC;GACJ;EACD,EAAE,EAAE;IACF,IAAI,kBAAG;MACLA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;QAClC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;OACzB;KACF;IACD,qBAAqB,iCAAC,KAAK,EAAE,QAAQ,EAAE;MACrCA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;QAC3B,IAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE;UAC5D,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC9B,MAAM;UACL,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACxB;OACF;KACF;IACD,eAAe,6BAAG;MAChBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;QAC3B,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE;UAC/C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACxB,MAAM;UACL,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;SACzB;OACF;KACF;IACD,OAAO,qBAAG;MACRA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;QAC3B,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;OACxB;KACF;GACF;CACF,CAAC;;AAEFA,GAAK,CAAC,IAAI,GAAG;EACX,YAAY,0BAAG;IACbA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACZ,UAAM,iBAAY;IAC1B,KAAKC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;MACzCD,GAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;MACrCA,GAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;MAChDC,GAAG,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC;MACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAE,IAAI,MAAM,CAAC,SAAS,CAAC;MAC5DA,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;MACX,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE;QAC1B,EAAE,GAAG,EAAE,CAAC;QACR,EAAE,GAAG,CAAC,CAAC;OACR;MACDD,GAAK,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS;QACrD,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;MACtD,QAAQ;SACL,GAAG,CAAC;UACH,OAAO,EAAE,YAAY;SACtB,CAAC;SACD,SAAS,CAAC,eAAa,GAAE,EAAE,SAAK,GAAE,EAAE,aAAS,CAAC,CAAC,CAAC;KACpD;GACF;EACD,aAAa,yBAAC,QAAQ,EAAE;IACtBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACZ,UAAM;IAAE,cAAU,qBAAY;IACtC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC5B,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,IAAI,QAAQ,KAAK,CAAC,EAAE;MACpDC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;MAC3B,MAAM,CAAC,aAAa,CAAC,YAAM;QACzB,IAAI,cAAc,EAAE,SAAO;QAC3B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,SAAO;QACxC,cAAc,GAAG,IAAI,CAAC;QACtB,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;QACzBD,GAAK,CAAC,aAAa,GAAG,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;QAC/D,KAAKC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;UAChD,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;SACtC;OACF,CAAC,CAAC;KACJ;GACF;CACF,CAAC;;AAEF,IAAI,UAAU,GAAG;EACf,IAAI,EAAE,aAAa;EACnB,MAAM,EAAE;IACN,UAAU,EAAE;MACV,SAAS,EAAE,KAAK;KACjB;GACF;EACD,MAAM,oBAAG;IACPD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;MACnB,UAAU,EAAE;QACV,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5C,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;OAC/C;KACF,CAAC,CAAC;GACJ;EACD,EAAE,EAAE;IACF,UAAU,wBAAG;MACXA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,SAAO;MAC5C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,UAAK,CAAC,CAAC,CAAC;MACtEA,GAAK,CAAC,eAAe,GAAG;QACtB,aAAa,EAAE,CAAC;QAChB,eAAe,EAAE,CAAC;QAClB,cAAc,EAAE,CAAC;QACjB,mBAAmB,EAAE,IAAI;QACzB,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,IAAI;OACvB,CAAC;MACF,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;MAC7C,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;KACtD;IACD,YAAY,0BAAG;MACbA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,SAAO;MAC5C,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;KAClC;IACD,aAAa,yBAAC,QAAQ,EAAE;MACtBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,SAAO;MAC5C,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;KAC3C;GACF;CACF,CAAC;;AAEFA,GAAK,CAAC,IAAI,GAAG;EACX,YAAY,0BAAG;IACbA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IAElB,OAAG;IAAE,cAAU;IAAE,UAAM;IAAS,eAAW;IAAU,gBAAY;IAAE,OAAG;IAAQ,cAAU,eAC/E;IACXA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;IACxCA,GAAK,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAC3CA,GAAK,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;IAClEC,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC;IACtBA,GAAG,CAAC,aAAa,CAAC;IAClB,IAAI,MAAM,CAAC,MAAM,EAAE;MACjB,IAAI,YAAY,EAAE;QAChB,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACvD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;UAC9B,aAAa,GAAG,yEAAC,CAAC,wCAAwC,CAAC,CAAC;UAC5D,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;SAClC;QACD,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAG,WAAW,OAAG,CAAC,EAAE,CAAC,CAAC;OACnD,MAAM;QACL,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAChD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;UAC9B,aAAa,GAAG,yEAAC,CAAC,wCAAwC,CAAC,CAAC;UAC5D,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;SAC3B;OACF;KACF;IACD,KAAKA,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;MACzCD,GAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;MAC9BC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC;MACnB,IAAI,SAAS,EAAE;QACb,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,EAAE,CAAC,CAAC;OACrE;MACDA,GAAG,CAAC,UAAU,GAAG,UAAU,GAAG,EAAE,CAAC;MACjCA,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;MACzC,IAAI,GAAG,EAAE;QACP,UAAU,GAAG,CAAC,UAAU,CAAC;QACzB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;OACvC;MACDD,GAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;MACjEC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;MACXA,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;MACXA,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;MACX,IAAI,UAAU,GAAG,CAAC,KAAK,CAAC,EAAE;QACxB,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,UAAU,CAAC;QAC7B,EAAE,GAAG,CAAC,CAAC;OACR,MAAM,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACrC,EAAE,GAAG,CAAC,CAAC;QACP,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,UAAU,CAAC;OAC9B,MAAM,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACrC,EAAE,GAAG,UAAU,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;QAC3C,EAAE,GAAG,UAAU,CAAC;OACjB,MAAM,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACrC,EAAE,GAAG,CAAC,UAAU,CAAC;QACjB,EAAE,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;OAClD;MACD,IAAI,GAAG,EAAE;QACP,EAAE,GAAG,CAAC,EAAE,CAAC;OACV;;MAED,IAAI,CAAC,YAAY,EAAE;QACjB,EAAE,GAAG,EAAE,CAAC;QACR,EAAE,GAAG,CAAC,CAAC;OACR;;MAEDD,GAAK,CAAC,YAAY,GAAG,UAAS,IAAE,YAAY,GAAG,CAAC,GAAG,CAAC,UAAU,mBAAc,IAAE,YAAY,GAAG,UAAU,GAAG,CAAC,uBAAkB,GAAE,EAAE,SAAK,GAAE,EAAE,SAAK,GAAE,EAAE,QAAK,CAAC;MACzJ,IAAI,QAAQ,IAAI,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,EAAE;QAClC,aAAa,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;QACpD,IAAI,GAAG,EAAE,eAAa,GAAG,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;OAC/D;MACD,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;MACjC,IAAI,MAAM,CAAC,YAAY,EAAE;;QAEvBC,GAAG,CAAC,YAAY,GAAG,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,2BAA2B,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACzHA,GAAG,CAAC,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,4BAA4B,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC5H,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;UAC7B,YAAY,GAAG,yEAAC,CAAC,oCAAiC,IAAE,YAAY,GAAG,MAAM,GAAG,KAAK,eAAS,CAAC,CAAC,CAAC;UAC7F,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAC/B;QACD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;UAC5B,WAAW,GAAG,yEAAC,CAAC,oCAAiC,IAAE,YAAY,GAAG,OAAO,GAAG,QAAQ,eAAS,CAAC,CAAC,CAAC;UAChG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;SAC9B;QACD,IAAI,YAAY,CAAC,MAAM,EAAE,cAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChF,IAAI,WAAW,CAAC,MAAM,EAAE,aAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;OAC9E;KACF;IACD,UAAU,CAAC,GAAG,CAAC;MACb,0BAA0B,EAAE,YAAU,IAAE,UAAU,GAAG,CAAC,QAAG,CAAC;MAC1D,uBAAuB,EAAE,YAAU,IAAE,UAAU,GAAG,CAAC,QAAG,CAAC;MACvD,sBAAsB,EAAE,YAAU,IAAE,UAAU,GAAG,CAAC,QAAG,CAAC;MACtD,kBAAkB,EAAE,YAAU,IAAE,UAAU,GAAG,CAAC,QAAG,CAAC;KACnD,CAAC,CAAC;;IAEH,IAAI,MAAM,CAAC,MAAM,EAAE;MACjB,IAAI,YAAY,EAAE;QAChB,aAAa,CAAC,SAAS,CAAC,oBAAkB,IAAE,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,UAAK,IAAE,CAAC,WAAW,GAAG,CAAC,6CAAwC,IAAE,MAAM,CAAC,WAAW,OAAE,CAAC,CAAC,CAAC;OAC5K,MAAM;QACLD,GAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9FA,GAAK,CAAC,UAAU,GAAG,GAAG,GAAG;UACvB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;UACjD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;SAClD,CAAC;QACFA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;QAClCA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC;QAC/CA,GAAK,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;QACtC,aAAa,CAAC,SAAS,CAAC,WAAS,GAAE,MAAM,UAAM,GAAE,MAAM,wBAAoB,IAAE,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,SAAS,UAAK,IAAE,CAAC,YAAY,GAAG,CAAC,GAAG,MAAM,yBAAoB,CAAC,CAAC,CAAC;OACpK;KACF;IACDA,GAAK,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAClF,UAAU;OACP,SAAS,CAAC,qBAAmB,GAAE,OAAO,iBAAa,IAAE,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,aAAa,mBAAc,IAAE,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,aAAa,GAAG,CAAC,UAAK,CAAC,CAAC,CAAC;GACpK;EACD,aAAa,yBAAC,QAAQ,EAAE;IACtBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACZ,OAAG;IAAE,UAAM,iBAAY;IAC/B,MAAM;OACH,UAAU,CAAC,QAAQ,CAAC;OACpB,IAAI,CAAC,8GAA8G,CAAC;OACpH,UAAU,CAAC,QAAQ,CAAC,CAAC;IACxB,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE;MAC7D,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;KACtD;GACF;CACF,CAAC;;AAEF,IAAI,UAAU,GAAG;EACf,IAAI,EAAE,aAAa;EACnB,MAAM,EAAE;IACN,UAAU,EAAE;MACV,YAAY,EAAE,IAAI;MAClB,MAAM,EAAE,IAAI;MACZ,YAAY,EAAE,EAAE;MAChB,WAAW,EAAE,IAAI;KAClB;GACF;EACD,MAAM,oBAAG;IACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;MACnB,UAAU,EAAE;QACV,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5C,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;OAC/C;KACF,CAAC,CAAC;GACJ;EACD,EAAE,EAAE;IACF,UAAU,wBAAG;MACXA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,SAAO;MAC5C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,UAAK,CAAC,CAAC,CAAC;MACtE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,QAAG,CAAC,CAAC,CAAC;MACpEA,GAAK,CAAC,eAAe,GAAG;QACtB,aAAa,EAAE,CAAC;QAChB,eAAe,EAAE,CAAC;QAClB,cAAc,EAAE,CAAC;QACjB,mBAAmB,EAAE,IAAI;QACzB,eAAe,EAAE,CAAC;QAClB,YAAY,EAAE,CAAC;QACf,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,IAAI;OACvB,CAAC;MACF,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;MAC7C,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;KACtD;IACD,YAAY,0BAAG;MACbA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,SAAO;MAC5C,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;KAClC;IACD,aAAa,yBAAC,QAAQ,EAAE;MACtBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,SAAO;MAC5C,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;KAC3C;GACF;CACF,CAAC;;AAEFA,GAAK,CAAC,IAAI,GAAG;EACX,YAAY,0BAAG;IACbA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACZ,UAAM,iBAAY;IAC1B,KAAKC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;MACzCD,GAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;MAC9BC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;MACpC,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE;QAC1C,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;OAC5D;MACDD,GAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;MAChDA,GAAK,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,QAAQ,CAAC;MAC/BC,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC;MACrBA,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;MAChBA,GAAG,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC;MACpBA,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;MACX,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE;QAC1B,EAAE,GAAG,EAAE,CAAC;QACR,EAAE,GAAG,CAAC,CAAC;QACP,OAAO,GAAG,CAAC,OAAO,CAAC;QACnB,OAAO,GAAG,CAAC,CAAC;OACb,MAAM,IAAI,MAAM,CAAC,GAAG,EAAE;QACrB,OAAO,GAAG,CAAC,OAAO,CAAC;OACpB;;MAED,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;;MAE3E,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE;;QAEzCA,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,2BAA2B,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAClIA,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,4BAA4B,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QACrI,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;UAC7B,YAAY,GAAG,yEAAC,CAAC,oCAAiC,IAAE,MAAM,CAAC,YAAY,EAAE,GAAG,MAAM,GAAG,KAAK,eAAS,CAAC,CAAC,CAAC;UACtG,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAC/B;QACD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;UAC5B,WAAW,GAAG,yEAAC,CAAC,oCAAiC,IAAE,MAAM,CAAC,YAAY,EAAE,GAAG,OAAO,GAAG,QAAQ,eAAS,CAAC,CAAC,CAAC;UACzG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;SAC9B;QACD,IAAI,YAAY,CAAC,MAAM,EAAE,cAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChF,IAAI,WAAW,CAAC,MAAM,EAAE,aAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;OAC9E;MACD,QAAQ;SACL,SAAS,CAAC,eAAa,GAAE,EAAE,SAAK,GAAE,EAAE,sBAAkB,GAAE,OAAO,kBAAc,GAAE,OAAO,SAAK,CAAC,CAAC,CAAC;KAClG;GACF;EACD,aAAa,yBAAC,QAAQ,EAAE;IACtBD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACZ,UAAM;IAAE,eAAW;IAAE,cAAU,qBAAY;IACnD,MAAM;OACH,UAAU,CAAC,QAAQ,CAAC;OACpB,IAAI,CAAC,8GAA8G,CAAC;OACpH,UAAU,CAAC,QAAQ,CAAC,CAAC;IACxB,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,IAAI,QAAQ,KAAK,CAAC,EAAE;MACpDC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC;;MAE3B,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,SAAS,eAAe,GAAG;QAC9D,IAAI,cAAc,EAAE,SAAO;QAC3B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,SAAO;;QAExC,cAAc,GAAG,IAAI,CAAC;QACtB,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;QACzBD,GAAK,CAAC,aAAa,GAAG,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;QAC/D,KAAKC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;UAChD,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;SACtC;OACF,CAAC,CAAC;KACJ;GACF;CACF,CAAC;;AAEF,IAAI,UAAU,GAAG;EACf,IAAI,EAAE,aAAa;EACnB,MAAM,EAAE;IACN,UAAU,EAAE;MACV,YAAY,EAAE,IAAI;MAClB,aAAa,EAAE,IAAI;KACpB;GACF;EACD,MAAM,oBAAG;IACPD,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;MACnB,UAAU,EAAE;QACV,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5C,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;OAC/C;KACF,CAAC,CAAC;GACJ;EACD,EAAE,EAAE;IACF,UAAU,wBAAG;MACXA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,SAAO;MAC5C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,UAAK,CAAC,CAAC,CAAC;MACtE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,QAAG,CAAC,CAAC,CAAC;MACpEA,GAAK,CAAC,eAAe,GAAG;QACtB,aAAa,EAAE,CAAC;QAChB,eAAe,EAAE,CAAC;QAClB,cAAc,EAAE,CAAC;QACjB,mBAAmB,EAAE,IAAI;QACzB,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,IAAI;OACvB,CAAC;MACF,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;MAC7C,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;KACtD;IACD,YAAY,0BAAG;MACbA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,SAAO;MAC5C,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;KAClC;IACD,aAAa,yBAAC,QAAQ,EAAE;MACtBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,SAAO;MAC5C,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;KAC3C;GACF;CACF,CAAC;;AAEFA,GAAK,CAAC,SAAS,GAAG;EAChB,YAAY,0BAAG;IACbA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IAEX,eAAW;IAAU,gBAAY;IAAE,UAAM;IAAE,cAAU;IAAE,mBAAe,0BACpE;IACXA,GAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;IAC7CA,GAAK,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAC3CA,GAAK,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC;IACtCA,GAAK,CAAC,MAAM,GAAG,YAAY,GAAG,CAAC,YAAY,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IACrGA,GAAK,CAAC,MAAM,GAAG,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;IAC7DA,GAAK,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;;IAE/B,KAAKC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;MAC1DD,GAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;MAC9BA,GAAK,CAAC,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;MACrCA,GAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;MAClDA,GAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC,MAAM,GAAG,WAAW,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;;MAElGC,GAAG,CAAC,OAAO,GAAG,YAAY,GAAG,MAAM,GAAG,gBAAgB,GAAG,CAAC,CAAC;MAC3DA,GAAG,CAAC,OAAO,GAAG,YAAY,GAAG,CAAC,GAAG,MAAM,GAAG,gBAAgB,CAAC;;MAE3DA,GAAG,CAAC,UAAU,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;;MAEzDA,GAAG,CAAC,UAAU,GAAG,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,gBAAgB,CAAC,CAAC;MACxEA,GAAG,CAAC,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;;;MAGxE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,KAAK,EAAE,YAAU,GAAG,CAAC,CAAC;MACjD,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,KAAK,EAAE,YAAU,GAAG,CAAC,CAAC;MACjD,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,KAAK,EAAE,YAAU,GAAG,CAAC,CAAC;MACjD,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,EAAE,SAAO,GAAG,CAAC,CAAC;MAC3C,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,EAAE,SAAO,GAAG,CAAC,CAAC;;MAE3CD,GAAK,CAAC,cAAc,GAAG,cAAa,GAAE,UAAU,QAAI,GAAE,UAAU,QAAI,GAAE,UAAU,kBAAc,GAAE,OAAO,kBAAc,GAAE,OAAO,SAAM,CAAC;;MAErI,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;MACnC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;MACvE,IAAI,MAAM,CAAC,YAAY,EAAE;;QAEvBC,GAAG,CAAC,eAAe,GAAG,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,2BAA2B,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC5HA,GAAG,CAAC,cAAc,GAAG,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,4BAA4B,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC/H,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;UAChC,eAAe,GAAG,yEAAC,CAAC,oCAAiC,IAAE,YAAY,GAAG,MAAM,GAAG,KAAK,eAAS,CAAC,CAAC,CAAC;UAChG,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;SAClC;QACD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;UAC/B,cAAc,GAAG,yEAAC,CAAC,oCAAiC,IAAE,YAAY,GAAG,OAAO,GAAG,QAAQ,eAAS,CAAC,CAAC,CAAC;UACnG,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;SACjC;QACD,IAAI,eAAe,CAAC,MAAM,EAAE,iBAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,gBAAgB,GAAG,CAAC,GAAG,gBAAgB,GAAG,CAAC,CAAC;QAC3G,IAAI,cAAc,CAAC,MAAM,EAAE,gBAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,CAAC;OAC9G;KACF;;;IAGD,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,qBAAqB,EAAE;MAC1DD,GAAK,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;MAC/B,EAAE,CAAC,iBAAiB,GAAM,MAAM,WAAQ,CAAC;KAC1C;GACF;EACD,aAAa,yBAAC,QAAQ,EAAE;IACtBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,MAAM;OACV,UAAU,CAAC,QAAQ,CAAC;OACpB,IAAI,CAAC,8GAA8G,CAAC;OACpH,UAAU,CAAC,QAAQ,CAAC,CAAC;GACzB;CACF,CAAC;;AAEF,IAAI,eAAe,GAAG;EACpB,IAAI,EAAE,kBAAkB;EACxB,MAAM,EAAE;IACN,eAAe,EAAE;MACf,MAAM,EAAE,EAAE;MACV,OAAO,EAAE,CAAC;MACV,KAAK,EAAE,GAAG;MACV,QAAQ,EAAE,CAAC;MACX,YAAY,EAAE,IAAI;KACnB;GACF;EACD,MAAM,oBAAG;IACPA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;MACnB,eAAe,EAAE;QACf,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;QACjD,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;OACpD;KACF,CAAC,CAAC;GACJ;EACD,EAAE,EAAE;IACF,UAAU,wBAAG;MACXA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,SAAO;;MAEjD,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,eAAU,CAAC,CAAC,CAAC;MAC3E,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,QAAG,CAAC,CAAC,CAAC;;MAEpE,MAAM,CAAC,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC;MACzC,MAAM,CAAC,cAAc,CAAC,mBAAmB,GAAG,IAAI,CAAC;KAClD;IACD,YAAY,0BAAG;MACbA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,SAAO;MACjD,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;KACvC;IACD,aAAa,yBAAC,QAAQ,EAAE;MACtBA,GAAK,CAAC,MAAM,GAAG,IAAI,CAAC;MACpB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,SAAO;MACjD,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;KAChD;GACF;CACF,CAAC;;;;AAIFA,GAAK,CAAC,UAAU,GAAG;EACjB,QAAQ;EACR,SAAS;EACT,SAAS;EACT,MAAM;EACN,UAAU;EACV,SAAS;EACT,UAAU;EACV,YAAY;EACZ,YAAY;EACZ,YAAY;EACZ,WAAW;EACX,UAAU;EACV,MAAM;EACN,MAAM;EACN,YAAY;EACZ,IAAI;EACJ,SAAS;EACT,gBAAgB;EAChB,UAAU;EACV,UAAU;EACV,UAAU;EACV,UAAU;EACV,eAAe;CAChB,CAAC;;AAEF,IAAI,OAAO,QAAQ,CAAC,GAAG,KAAK,WAAW,EAAE;EACvC,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;EAClC,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC;CACvD;;AAED,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;;AAEzB,yDAAe,QAAQ,EAAC;;;;;;;;;AC70MxB;AAAA;;;;;;;;;;;AAWA,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;EACnC,CAAC,GAAG;IACF,IAAI,EAAE,EAAE;IACR,gBAAgB,EAAE,SAAS,gBAAgB,GAAG,EAAE;IAChD,mBAAmB,EAAE,SAAS,mBAAmB,GAAG,EAAE;IACtD,aAAa,EAAE;MACb,IAAI,EAAE,SAAS,IAAI,GAAG,EAAE;MACxB,QAAQ,EAAE,EAAE;KACb;IACD,aAAa,EAAE,SAAS,aAAa,GAAG;MACtC,OAAO,IAAI,CAAC;KACb;IACD,gBAAgB,EAAE,SAAS,gBAAgB,GAAG;MAC5C,OAAO,EAAE,CAAC;KACX;IACD,cAAc,EAAE,SAAS,cAAc,GAAG;MACxC,OAAO,IAAI,CAAC;KACb;IACD,WAAW,EAAE,SAAS,WAAW,GAAG;MAClC,OAAO;QACL,SAAS,EAAE,SAAS,SAAS,GAAG,EAAE;OACnC,CAAC;KACH;IACD,aAAa,EAAE,SAAS,aAAa,GAAG;MACtC,OAAO;QACL,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,EAAE;QACd,KAAK,EAAE,EAAE;QACT,YAAY,EAAE,SAAS,YAAY,GAAG,EAAE;QACxC,oBAAoB,EAAE,SAAS,oBAAoB,GAAG;UACpD,OAAO,EAAE,CAAC;SACX;OACF,CAAC;KACH;IACD,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;GACvB,CAAC;CACH,MAAM;;EAEL,CAAC,GAAG,QAAQ,CAAC;CACd;;AAED,IAAI,GAAG,GAAG,CAAC,CAAC;;AAEZ,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;EACjC,CAAC,GAAG;IACF,QAAQ,EAAE,GAAG;IACb,SAAS,EAAE;MACT,SAAS,EAAE,EAAE;KACd;IACD,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,SAAS,WAAW,GAAG;MAClC,OAAO,IAAI,CAAC;KACb;IACD,gBAAgB,EAAE,SAAS,gBAAgB,GAAG,EAAE;IAChD,mBAAmB,EAAE,SAAS,mBAAmB,GAAG,EAAE;IACtD,gBAAgB,EAAE,SAAS,gBAAgB,GAAG;MAC5C,OAAO;QACL,gBAAgB,EAAE,SAAS,gBAAgB,GAAG;UAC5C,OAAO,EAAE,CAAC;SACX;OACF,CAAC;KACH;IACD,KAAK,EAAE,SAAS,KAAK,GAAG,EAAE;IAC1B,IAAI,EAAE,SAAS,IAAI,GAAG,EAAE;IACxB,MAAM,EAAE,EAAE;IACV,UAAU,EAAE,SAAS,UAAU,GAAG,EAAE;IACpC,YAAY,EAAE,SAAS,YAAY,GAAG,EAAE;GACzC,CAAC;CACH,MAAM;;EAEL,CAAC,GAAG,MAAM,CAAC;CACZ;;AAED,IAAI,GAAG,GAAG,CAAC,CAAC;;AAE8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzF1C;AAAA;AACA,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE;EAClD,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,QAAQ,EAAE,OAAO,EAAE,CAAC;;AAAA;MACvD,OAAO,GAAG,OAAO,IAAI,MAAM,CAAC;MAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;UAClC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAEM,MAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAEA,MAAI,CAAC,CAAC;OAC5C;GACJ,CAAC;CACH;;;AAGe;AAC6B;AACI;AACb;AACE;;;;;;AAMH;AACE;AACJ;AACI;;;AAGrCN,GAAK,CAAC,MAAM,GAAG,IAAI,6DAAM,CAAC;;EAExB,uEAAM;;EAEN,mEAAI;;EAEJ,uEAAO;CACR,CAAC,CAAC;;;AAGH,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,YAAM,eAAM,CAAC,UAAU,EAAE,IAAC,CAAC;;;;;;;;ACrClD;;;;AAIA,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,mCAAmC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,4EAA4E,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,GAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,GAAG,CAAC,CAAC,CA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AAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,E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CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,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","file":"scripts/main.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/wp-content/themes/brenhill/dist/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap d622163326724bd9578d","module.exports = jQuery;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"jQuery\"\n// module id = 0\n// module chunks = 0 1","/**\n * Swiper 4.1.6\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * http://www.idangero.us/swiper/\n *\n * Copyright 2014-2018 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: February 11, 2018\n */\n\nimport { $, add, addClass, append, attr, children, closest, css, data, each, eq, find, hasClass, html, index, is, next, nextAll, off, offset, on, outerHeight, outerWidth, parent, parents, prepend, prev, prevAll, remove, removeAttr, removeClass, styles, text, toggleClass, transform, transition, transitionEnd, trigger } from 'dom7/dist/dom7.modular';\nimport { document, window } from 'ssr-window';\n\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n data,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n remove,\n add,\n styles,\n};\n\nObject.keys(Methods).forEach((methodName) => {\n $.fn[methodName] = Methods[methodName];\n});\n\nconst Utils = {\n deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach((key) => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n },\n nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n },\n now() {\n return Date.now();\n },\n getTranslate(el, axis = 'x') {\n let matrix;\n let curTransform;\n let transformMatrix;\n\n const curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n },\n parseUrlQuery(url) {\n const query = {};\n let urlToParse = url || window.location.href;\n let i;\n let params;\n let param;\n let length;\n if (typeof urlToParse === 'string' && urlToParse.length) {\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n params = urlToParse.split('&').filter(paramsPart => paramsPart !== '');\n length = params.length;\n\n for (i = 0; i < length; i += 1) {\n param = params[i].replace(/#\\S+/g, '').split('=');\n query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || '';\n }\n }\n return query;\n },\n isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n },\n extend(...args) {\n const to = Object(args[0]);\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n const keysArray = Object.keys(Object(nextSource));\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n },\n};\n\nconst Support = (function Support() {\n const testDiv = document.createElement('div');\n return {\n touch: (window.Modernizr && window.Modernizr.touch === true) || (function checkTouch() {\n return !!(('ontouchstart' in window) || (window.DocumentTouch && document instanceof window.DocumentTouch));\n }()),\n\n pointerEvents: !!(window.navigator.pointerEnabled || window.PointerEvent),\n prefixedPointerEvents: !!window.navigator.msPointerEnabled,\n\n transition: (function checkTransition() {\n const style = testDiv.style;\n return ('transition' in style || 'webkitTransition' in style || 'MozTransition' in style);\n }()),\n transforms3d: (window.Modernizr && window.Modernizr.csstransforms3d === true) || (function checkTransforms3d() {\n const style = testDiv.style;\n return ('webkitPerspective' in style || 'MozPerspective' in style || 'OPerspective' in style || 'MsPerspective' in style || 'perspective' in style);\n }()),\n\n flexbox: (function checkFlexbox() {\n const style = testDiv.style;\n const styles$$1 = ('alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient').split(' ');\n for (let i = 0; i < styles$$1.length; i += 1) {\n if (styles$$1[i] in style) return true;\n }\n return false;\n }()),\n\n observer: (function checkObserver() {\n return ('MutationObserver' in window || 'WebkitMutationObserver' in window);\n }()),\n\n passiveListener: (function checkPassiveListener() {\n let supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n },\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {\n // No support\n }\n return supportsPassive;\n }()),\n\n gestures: (function checkGestures() {\n return 'ongesturestart' in window;\n }()),\n };\n}());\n\nclass SwiperClass {\n constructor(params = {}) {\n const self = this;\n self.params = params;\n\n // Events\n self.eventsListeners = {};\n\n if (self.params && self.params.on) {\n Object.keys(self.params.on).forEach((eventName) => {\n self.on(eventName, self.params.on[eventName]);\n });\n }\n }\n on(events, handler) {\n const self = this;\n if (typeof handler !== 'function') return self;\n events.split(' ').forEach((event) => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event].push(handler);\n });\n return self;\n }\n once(events, handler) {\n const self = this;\n if (typeof handler !== 'function') return self;\n function onceHandler(...args) {\n handler.apply(self, args);\n self.off(events, onceHandler);\n }\n return self.on(events, onceHandler);\n }\n off(events, handler) {\n const self = this;\n events.split(' ').forEach((event) => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else {\n self.eventsListeners[event].forEach((eventHandler, index$$1) => {\n if (eventHandler === handler) {\n self.eventsListeners[event].splice(index$$1, 1);\n }\n });\n }\n });\n return self;\n }\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data$$1;\n let context;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data$$1 = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data$$1 = args[0].data;\n context = args[0].context || self;\n }\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach((event) => {\n if (self.eventsListeners[event]) {\n const handlers = [];\n self.eventsListeners[event].forEach((eventHandler) => {\n handlers.push(eventHandler);\n });\n handlers.forEach((eventHandler) => {\n eventHandler.apply(context, data$$1);\n });\n }\n });\n return self;\n }\n useModulesParams(instanceParams) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n // Extend params\n if (module.params) {\n Utils.extend(instanceParams, module.params);\n }\n });\n }\n useModules(modulesParams = {}) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n const moduleParams = modulesParams[moduleName] || {};\n // Extend instance methods and props\n if (module.instance) {\n Object.keys(module.instance).forEach((modulePropName) => {\n const moduleProp = module.instance[modulePropName];\n if (typeof moduleProp === 'function') {\n instance[modulePropName] = moduleProp.bind(instance);\n } else {\n instance[modulePropName] = moduleProp;\n }\n });\n }\n // Add event listeners\n if (module.on && instance.on) {\n Object.keys(module.on).forEach((moduleEventName) => {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n }\n\n // Module create callback\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n static set components(components) {\n const Class = this;\n if (!Class.use) return;\n Class.use(components);\n }\n static installModule(module, ...params) {\n const Class = this;\n if (!Class.prototype.modules) Class.prototype.modules = {};\n const name = module.name || (`${Object.keys(Class.prototype.modules).length}_${Utils.now()}`);\n Class.prototype.modules[name] = module;\n // Prototype\n if (module.proto) {\n Object.keys(module.proto).forEach((key) => {\n Class.prototype[key] = module.proto[key];\n });\n }\n // Class\n if (module.static) {\n Object.keys(module.static).forEach((key) => {\n Class[key] = module.static[key];\n });\n }\n // Callback\n if (module.install) {\n module.install.apply(Class, params);\n }\n return Class;\n }\n static use(module, ...params) {\n const Class = this;\n if (Array.isArray(module)) {\n module.forEach(m => Class.installModule(m));\n return Class;\n }\n return Class.installModule(module, ...params);\n }\n}\n\nvar updateSize = function () {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n if (typeof swiper.params.width !== 'undefined') {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined') {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10);\n height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10);\n\n Utils.extend(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height,\n });\n};\n\nvar updateSlides = function () {\n const swiper = this;\n const params = swiper.params;\n\n const {\n $wrapperEl, size: swiperSize, rtl, wrongRTL,\n } = swiper;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSlidesLength = slidesLength;\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.snapGrid.length;\n\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index$$1 = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n if (rtl) slides.css({ marginLeft: '', marginTop: '' });\n else slides.css({ marginRight: '', marginBottom: '' });\n\n let slidesNumberEvenToRows;\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n }\n\n // Calc slides\n let slideSize;\n const slidesPerColumn = params.slidesPerColumn;\n const slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n const numFullColumns = slidesPerRow - ((params.slidesPerColumn * slidesPerRow) - slidesLength);\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n if (params.slidesPerColumn > 1) {\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - (column * slidesPerColumn);\n if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) {\n row += 1;\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n newSlideOrderIndex = column + ((row * slidesNumberEvenToRows) / slidesPerColumn);\n slide\n .css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex,\n });\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - (row * slidesPerRow);\n }\n slide\n .css(\n `margin-${swiper.isHorizontal() ? 'top' : 'left'}`,\n (row !== 0 && params.spaceBetween) && (`${params.spaceBetween}px`)\n )\n .attr('data-swiper-column', column)\n .attr('data-swiper-row', row);\n }\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n if (params.slidesPerView === 'auto') {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - ((params.slidesPerView - 1) * spaceBetween)) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = `${slideSize}px`;\n } else {\n slides[i].style.height = `${slideSize}px`;\n }\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + (slideSize / 2) + (prevSlideSize / 2) + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - (swiperSize / 2) - spaceBetween;\n if (i === 0) slidePosition = slidePosition - (swiperSize / 2) - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if ((index$$1) % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if ((index$$1) % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n\n prevSlideSize = slideSize;\n\n index$$1 += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n let newSlidesGrid;\n\n if (\n rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n }\n if (!Support.flexbox || params.setWrapperSize) {\n if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` });\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` });\n if (params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(snapGrid[i]);\n }\n snapGrid = newSlidesGrid;\n }\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(snapGrid[i]);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) slides.css({ marginLeft: `${spaceBetween}px` });\n else slides.css({ marginRight: `${spaceBetween}px` });\n } else slides.css({ marginBottom: `${spaceBetween}px` });\n }\n\n Utils.extend(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid,\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n};\n\nvar updateAutoHeight = function () {\n const swiper = this;\n const activeSlides = [];\n let newHeight = 0;\n let i;\n\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index$$1 = swiper.activeIndex + i;\n if (index$$1 > swiper.slides.length) break;\n activeSlides.push(swiper.slides.eq(index$$1)[0]);\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight) swiper.$wrapperEl.css('height', `${newHeight}px`);\n};\n\nvar updateSlidesOffset = function () {\n const swiper = this;\n const slides = swiper.slides;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n};\n\nvar updateSlidesProgress = function (translate = this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n\n const { slides, rtl } = swiper;\n\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.removeClass(params.slideVisibleClass);\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n const slideProgress =\n (\n (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide.swiperSlideOffset\n ) / (slide.swiperSlideSize + params.spaceBetween);\n if (params.watchSlidesVisibility) {\n const slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible =\n (slideBefore >= 0 && slideBefore < swiper.size) ||\n (slideAfter > 0 && slideAfter <= swiper.size) ||\n (slideBefore <= 0 && slideAfter >= swiper.size);\n if (isVisible) {\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n};\n\nvar updateProgress = function (translate = this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let { progress, isBeginning, isEnd } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / (translatesDiff);\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n Utils.extend(swiper, {\n progress,\n isBeginning,\n isEnd,\n });\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n};\n\nvar updateSlidesClasses = function () {\n const swiper = this;\n\n const {\n slides, params, $wrapperEl, activeIndex, realIndex,\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n\n let activeSlide;\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n }\n\n // Active classes\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`)\n .addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`)\n .addClass(params.slideDuplicateActiveClass);\n }\n }\n // Next Slide\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicatePrevClass);\n }\n }\n};\n\nvar updateActiveIndex = function (newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtl ? swiper.translate : -swiper.translate;\n const {\n slidesGrid, snapGrid, params, activeIndex: previousIndex, realIndex: previousRealIndex, snapIndex: previousSnapIndex,\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - ((slidesGrid[i + 1] - slidesGrid[i]) / 2)) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n snapIndex = Math.floor(activeIndex / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n\n // Get real index\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n\n Utils.extend(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex,\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n};\n\nvar updateClickedSlide = function (e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e.target).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) slideFound = true;\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n};\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide,\n};\n\nvar getTranslate = function (axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n\n const {\n params, rtl, translate, $wrapperEl,\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n let currentTranslate = Utils.getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n\n return currentTranslate || 0;\n};\n\nvar setTranslate = function (translate, byController) {\n const swiper = this;\n const {\n rtl, params, $wrapperEl, progress,\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (!params.virtualTranslate) {\n if (Support.transforms3d) $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n else $wrapperEl.transform(`translate(${x}px, ${y}px)`);\n }\n\n swiper.translate = swiper.isHorizontal() ? x : y;\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n};\n\nvar minTranslate = function () {\n return (-this.snapGrid[0]);\n};\n\nvar maxTranslate = function () {\n return (-this.snapGrid[this.snapGrid.length - 1]);\n};\n\nvar translate = {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n};\n\nvar setTransition = function (duration, byController) {\n const swiper = this;\n\n swiper.$wrapperEl.transition(duration);\n\n swiper.emit('setTransition', duration, byController);\n};\n\nvar transitionStart = function (runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, params, previousIndex } = swiper;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n swiper.emit('slideChangeTransitionStart');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n};\n\nvar transitionEnd$1 = function (runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, previousIndex } = swiper;\n swiper.animating = false;\n swiper.setTransition(0);\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n swiper.emit('slideChangeTransitionEnd');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n};\n\nvar transition$1 = {\n setTransition,\n transitionStart,\n transitionEnd: transitionEnd$1,\n};\n\nvar slideTo = function (index$$1 = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let slideIndex = index$$1;\n if (slideIndex < 0) slideIndex = 0;\n\n const {\n params, snapGrid, slidesGrid, previousIndex, activeIndex, rtl, $wrapperEl,\n } = swiper;\n if (swiper.animating && params.preventIntercationOnTransition) {\n return false;\n }\n\n let snapIndex = Math.floor(slideIndex / params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex];\n\n // Update progress\n swiper.updateProgress(translate);\n\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';\n else if (slideIndex < activeIndex) direction = 'prev';\n else direction = 'reset';\n\n\n // Update Index\n if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n\n if (speed === 0 || !Support.transition) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd(runCallbacks, direction);\n });\n }\n }\n\n return true;\n};\n\nvar slideToLoop = function (index$$1 = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let newIndex = index$$1;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n};\n\n/* eslint no-unused-vars: \"off\" */\nvar slideNext = function (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const { params, animating } = swiper;\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);\n};\n\n/* eslint no-unused-vars: \"off\" */\nvar slidePrev = function (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const { params, animating } = swiper;\n\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n return swiper.slideTo(swiper.activeIndex - 1, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex - 1, speed, runCallbacks, internal);\n};\n\n/* eslint no-unused-vars: \"off\" */\nvar slideReset = function (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n};\n\nvar slideToClickedSlide = function () {\n const swiper = this;\n const { params, $wrapperEl } = swiper;\n\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (\n (slideToIndex < swiper.loopedSlides - (slidesPerView / 2)) ||\n (slideToIndex > (swiper.slides.length - swiper.loopedSlides) + (slidesPerView / 2))\n ) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`)\n .eq(0)\n .index();\n\n Utils.nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`)\n .eq(0)\n .index();\n\n Utils.nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n};\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClickedSlide,\n};\n\nvar loopCreate = function () {\n const swiper = this;\n const { params, $wrapperEl } = swiper;\n // Remove duplicated slides\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n\n let slides = $wrapperEl.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup);\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $wrapperEl.append(blankNode);\n }\n slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n\n swiper.loopedSlides = parseInt(params.loopedSlides || params.slidesPerView, 10);\n swiper.loopedSlides += params.loopAdditionalSlides;\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((index$$1, el) => {\n const slide = $(el);\n if (index$$1 < swiper.loopedSlides) appendSlides.push(el);\n if (index$$1 < slides.length && index$$1 >= slides.length - swiper.loopedSlides) prependSlides.push(el);\n slide.attr('data-swiper-slide-index', index$$1);\n });\n for (let i = 0; i < appendSlides.length; i += 1) {\n $wrapperEl.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $wrapperEl.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n};\n\nvar loopFix = function () {\n const swiper = this;\n const {\n params, activeIndex, slides, loopedSlides, allowSlidePrev, allowSlideNext, snapGrid, rtl,\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate();\n\n\n // Fix For Negative Oversliding\n if (activeIndex < loopedSlides) {\n newIndex = (slides.length - (loopedSlides * 3)) + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if ((params.slidesPerView === 'auto' && activeIndex >= loopedSlides * 2) || (activeIndex > slides.length - (params.slidesPerView * 2))) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n};\n\nvar loopDestroy = function () {\n const swiper = this;\n const { $wrapperEl, params, slides } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n};\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy,\n};\n\nvar setGrabCursor = function (moving) {\n const swiper = this;\n if (Support.touch || !swiper.params.simulateTouch) return;\n const el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n};\n\nvar unsetGrabCursor = function () {\n const swiper = this;\n if (Support.touch) return;\n swiper.el.style.cursor = '';\n};\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor,\n};\n\nvar appendSlide = function (slides) {\n const swiper = this;\n const { $wrapperEl, params } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n};\n\nvar prependSlide = function (slides) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n};\n\nvar removeSlide = function (slidesIndexes) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n let newActiveIndex = activeIndex;\n let indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n};\n\nvar removeAllSlides = function () {\n const swiper = this;\n\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n};\n\nvar manipulation = {\n appendSlide,\n prependSlide,\n removeSlide,\n removeAllSlides,\n};\n\nconst Device = (function Device() {\n const ua = window.navigator.userAgent;\n\n const device = {\n ios: false,\n android: false,\n androidChrome: false,\n desktop: false,\n windows: false,\n iphone: false,\n ipod: false,\n ipad: false,\n cordova: window.cordova || window.phonegap,\n phonegap: window.cordova || window.phonegap,\n };\n\n const windows = ua.match(/(Windows Phone);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n const ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n\n\n // Windows\n if (windows) {\n device.os = 'windows';\n device.osVersion = windows[2];\n device.windows = true;\n }\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.osVersion = android[2];\n device.android = true;\n device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n // iOS\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.iphone = true;\n }\n // iOS 8+ changed UA\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n if (device.osVersion.split('.')[0] === '10') {\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n }\n }\n\n // Desktop\n device.desktop = !(device.os || device.android || device.webView);\n\n // Webview\n device.webView = (iphone || ipad || ipod) && ua.match(/.*AppleWebKit(?!.*Safari)/i);\n\n // Minimal UI\n if (device.os && device.os === 'ios') {\n const osVersionArr = device.osVersion.split('.');\n const metaViewport = document.querySelector('meta[name=\"viewport\"]');\n device.minimalUi =\n !device.webView &&\n (ipod || iphone) &&\n (osVersionArr[0] * 1 === 7 ? osVersionArr[1] * 1 >= 1 : osVersionArr[0] * 1 > 7) &&\n metaViewport && metaViewport.getAttribute('content').indexOf('minimal-ui') >= 0;\n }\n\n // Pixel Ratio\n device.pixelRatio = window.devicePixelRatio || 1;\n\n // Export object\n return device;\n}());\n\nvar onTouchStart = function (event) {\n const swiper = this;\n const data$$1 = swiper.touchEventsData;\n const { params, touches } = swiper;\n if (swiper.animating && params.preventIntercationOnTransition) {\n return;\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n data$$1.isTouchEvent = e.type === 'touchstart';\n if (!data$$1.isTouchEvent && 'which' in e && e.which === 3) return;\n if (data$$1.isTouched && data$$1.isMoved) return;\n if (params.noSwiping && $(e.target).closest(params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`)[0]) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!$(e).closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app (UIWebView) cannot swipe-to-go-back anymore\n\n if (\n Device.ios &&\n !Device.cordova &&\n params.iOSEdgeSwipeDetection &&\n (startX <= params.iOSEdgeSwipeThreshold) &&\n (startX >= window.screen.width - params.iOSEdgeSwipeThreshold)\n ) {\n return;\n }\n\n Utils.extend(data$$1, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined,\n });\n\n touches.startX = startX;\n touches.startY = startY;\n data$$1.touchStartTime = Utils.now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data$$1.allowThresholdMove = false;\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($(e.target).is(data$$1.formElements)) preventDefault = false;\n if (\n document.activeElement &&\n $(document.activeElement).is(data$$1.formElements) &&\n document.activeElement !== e.target\n ) {\n document.activeElement.blur();\n }\n if (preventDefault && swiper.allowTouchMove) {\n e.preventDefault();\n }\n }\n swiper.emit('touchStart', e);\n};\n\nvar onTouchMove = function (event) {\n const swiper = this;\n const data$$1 = swiper.touchEventsData;\n const { params, touches, rtl } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data$$1.isTouched) {\n if (data$$1.startMoving && data$$1.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n if (data$$1.isTouchEvent && e.type === 'mousemove') return;\n const pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n if (data$$1.isTouched) {\n Utils.extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n });\n data$$1.touchStartTime = Utils.now();\n }\n return;\n }\n if (data$$1.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (\n (pageY < touches.startY && swiper.translate <= swiper.maxTranslate()) ||\n (pageY > touches.startY && swiper.translate >= swiper.minTranslate())\n ) {\n data$$1.isTouched = false;\n data$$1.isMoved = false;\n return;\n }\n } else if (\n (pageX < touches.startX && swiper.translate <= swiper.maxTranslate()) ||\n (pageX > touches.startX && swiper.translate >= swiper.minTranslate())\n ) {\n return;\n }\n }\n if (data$$1.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data$$1.formElements)) {\n data$$1.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data$$1.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n\n touches.currentX = pageX;\n touches.currentY = pageY;\n\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n\n if (typeof data$$1.isScrolling === 'undefined') {\n let touchAngle;\n if ((swiper.isHorizontal() && touches.currentY === touches.startY) || (swiper.isVertical() && touches.currentX === touches.startX)) {\n data$$1.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if ((diffX * diffX) + (diffY * diffY) >= 25) {\n touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI;\n data$$1.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : (90 - touchAngle > params.touchAngle);\n }\n }\n }\n if (data$$1.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data$$1.startMoving = true;\n }\n }\n if (data$$1.isScrolling) {\n data$$1.isTouched = false;\n return;\n }\n if (!data$$1.startMoving) {\n return;\n }\n swiper.allowClick = false;\n e.preventDefault();\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data$$1.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n data$$1.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n data$$1.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n swiper.emit('sliderMove', e);\n data$$1.isMoved = true;\n\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data$$1.currentTranslate = diff + data$$1.startTranslate;\n\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if ((diff > 0 && data$$1.currentTranslate > swiper.minTranslate())) {\n disableParentSwiper = false;\n if (params.resistance) data$$1.currentTranslate = (swiper.minTranslate() - 1) + ((-swiper.minTranslate() + data$$1.startTranslate + diff) ** resistanceRatio);\n } else if (diff < 0 && data$$1.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data$$1.currentTranslate = (swiper.maxTranslate() + 1) - ((swiper.maxTranslate() - data$$1.startTranslate - diff) ** resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data$$1.currentTranslate < data$$1.startTranslate) {\n data$$1.currentTranslate = data$$1.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data$$1.currentTranslate > data$$1.startTranslate) {\n data$$1.currentTranslate = data$$1.startTranslate;\n }\n\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data$$1.allowThresholdMove) {\n if (!data$$1.allowThresholdMove) {\n data$$1.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data$$1.currentTranslate = data$$1.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data$$1.currentTranslate = data$$1.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger) return;\n\n // Update active index in free mode\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode) {\n // Velocity\n if (data$$1.velocities.length === 0) {\n data$$1.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data$$1.touchStartTime,\n });\n }\n data$$1.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: Utils.now(),\n });\n }\n // Update progress\n swiper.updateProgress(data$$1.currentTranslate);\n // Update translate\n swiper.setTranslate(data$$1.currentTranslate);\n};\n\nvar onTouchEnd = function (event) {\n const swiper = this;\n const data$$1 = swiper.touchEventsData;\n\n const {\n params, touches, rtl, $wrapperEl, slidesGrid, snapGrid,\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data$$1.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data$$1.allowTouchCallbacks = false;\n if (!data$$1.isTouched) {\n if (data$$1.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data$$1.isMoved = false;\n data$$1.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data$$1.isMoved && data$$1.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = Utils.now();\n const timeDiff = touchEndTime - data$$1.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap', e);\n if (timeDiff < 300 && (touchEndTime - data$$1.lastClickTime) > 300) {\n if (data$$1.clickTimeout) clearTimeout(data$$1.clickTimeout);\n data$$1.clickTimeout = Utils.nextTick(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.emit('click', e);\n }, 300);\n }\n if (timeDiff < 300 && (touchEndTime - data$$1.lastClickTime) < 300) {\n if (data$$1.clickTimeout) clearTimeout(data$$1.clickTimeout);\n swiper.emit('doubleTap', e);\n }\n }\n\n data$$1.lastClickTime = Utils.now();\n Utils.nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data$$1.isTouched || !data$$1.isMoved || !swiper.swipeDirection || touches.diff === 0 || data$$1.currentTranslate === data$$1.startTranslate) {\n data$$1.isTouched = false;\n data$$1.isMoved = false;\n data$$1.startMoving = false;\n return;\n }\n data$$1.isTouched = false;\n data$$1.isMoved = false;\n data$$1.startMoving = false;\n\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data$$1.currentTranslate;\n }\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n } else if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data$$1.velocities.length > 1) {\n const lastMoveEvent = data$$1.velocities.pop();\n const velocityEvent = data$$1.velocities.pop();\n\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || (Utils.now() - lastMoveEvent.time) > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n\n data$$1.velocities.length = 0;\n let momentumDuration = 1000 * params.freeModeMomentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data$$1.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data$$1.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n } else if (params.freeModeSticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n } else if (params.freeModeSticky) {\n swiper.slideReset();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed || !data$$1.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n\n swiper.setTransition(params.speed);\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += params.slidesPerGroup) {\n if (typeof slidesGrid[i + params.slidesPerGroup] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + params.slidesPerGroup]) {\n stopIndex = i;\n groupSize = slidesGrid[i + params.slidesPerGroup] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + params.slidesPerGroup);\n else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > (1 - params.longSwipesRatio)) swiper.slideTo(stopIndex + params.slidesPerGroup);\n else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + params.slidesPerGroup);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n }\n};\n\nvar onResize = function () {\n const swiper = this;\n\n const { params, el } = swiper;\n\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const { allowSlideNext, allowSlidePrev } = swiper;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n\n swiper.updateSize();\n swiper.updateSlides();\n\n if (params.freeMode) {\n const newTranslate = Math.min(Math.max(swiper.translate, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n swiper.updateSlidesClasses();\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n};\n\nvar onClick = function (e) {\n const swiper = this;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const {\n params, touchEvents, el, wrapperEl,\n } = swiper;\n\n {\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n const target = params.touchEventsTarget === 'container' ? el : wrapperEl;\n const capture = !!params.nested;\n\n // Touch Events\n {\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n target.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n const passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n target.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n target.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? { passive: false, capture } : capture);\n target.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n target.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n target.addEventListener('click', swiper.onClick, true);\n }\n }\n\n // Resize handler\n swiper.on('resize observerUpdate', onResize);\n}\n\nfunction detachEvents() {\n const swiper = this;\n\n const {\n params, touchEvents, el, wrapperEl,\n } = swiper;\n\n const target = params.touchEventsTarget === 'container' ? el : wrapperEl;\n const capture = !!params.nested;\n\n // Touch Events\n {\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n target.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n const passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n target.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n target.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n target.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n target.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n target.removeEventListener('click', swiper.onClick, true);\n }\n }\n\n // Resize handler\n swiper.off('resize observerUpdate', onResize);\n}\n\nvar events = {\n attachEvents,\n detachEvents,\n};\n\nvar setBreakpoint = function () {\n const swiper = this;\n const { activeIndex, loopedSlides = 0, params } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) return;\n // Set breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints);\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n const breakPointsParams = breakpoint in breakpoints ? breakpoints[breakpoint] : swiper.originalParams;\n const needsReLoop = params.loop && (breakPointsParams.slidesPerView !== params.slidesPerView);\n\n Utils.extend(swiper.params, breakPointsParams);\n\n Utils.extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n });\n\n swiper.currentBreakpoint = breakpoint;\n\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo((activeIndex - loopedSlides) + swiper.loopedSlides, 0, false);\n }\n swiper.emit('breakpoint', breakPointsParams);\n }\n};\n\nvar getBreakpoint = function (breakpoints) {\n // Get breakpoint for window width\n if (!breakpoints) return undefined;\n let breakpoint = false;\n const points = [];\n Object.keys(breakpoints).forEach((point) => {\n points.push(point);\n });\n points.sort((a, b) => parseInt(a, 10) - parseInt(b, 10));\n for (let i = 0; i < points.length; i += 1) {\n const point = points[i];\n if (point >= window.innerWidth && !breakpoint) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n};\n\nvar breakpoints = { setBreakpoint, getBreakpoint };\n\nconst Browser = (function Browser() {\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);\n }\n return {\n isIE: !!window.navigator.userAgent.match(/Trident/g) || !!window.navigator.userAgent.match(/MSIE/g),\n isSafari: isSafari(),\n isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),\n };\n}());\n\nvar addClasses = function () {\n const swiper = this;\n const {\n classNames, params, rtl, $el,\n } = swiper;\n const suffixes = [];\n\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n if (!Support.flexbox) {\n suffixes.push('no-flexbox');\n }\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n if (rtl) {\n suffixes.push('rtl');\n }\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n }\n if (Device.android) {\n suffixes.push('android');\n }\n if (Device.ios) {\n suffixes.push('ios');\n }\n // WP8 Touch Events Fix\n if (Browser.isIE && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n suffixes.push(`wp8-${params.direction}`);\n }\n\n suffixes.forEach((suffix) => {\n classNames.push(params.containerModifierClass + suffix);\n });\n\n $el.addClass(classNames.join(' '));\n};\n\nvar removeClasses = function () {\n const swiper = this;\n const { $el, classNames } = swiper;\n\n $el.removeClass(classNames.join(' '));\n};\n\nvar classes = { addClasses, removeClasses };\n\nvar loadImage = function (imageEl, src, srcset, sizes, checkForComplete, callback) {\n let image;\n function onReady() {\n if (callback) callback();\n }\n if (!imageEl.complete || !checkForComplete) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n};\n\nvar preloadImages = function () {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(\n imageEl,\n imageEl.currentSrc || imageEl.getAttribute('src'),\n imageEl.srcset || imageEl.getAttribute('srcset'),\n imageEl.sizes || imageEl.getAttribute('sizes'),\n true,\n onReady\n );\n }\n};\n\nvar images = {\n loadImage,\n preloadImages,\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const wasLocked = swiper.isLocked;\n\n swiper.isLocked = swiper.snapGrid.length === 1;\n swiper.allowTouchMove = !swiper.isLocked;\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n swiper.navigation.update();\n }\n}\n\nvar checkOverflow$1 = { checkOverflow };\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n //\n preventIntercationOnTransition: false,\n\n // To support iOS's swipe-to-go-back gesture (when being used in-app, with UIWebView).\n iOSEdgeSwipeDetection: false,\n iOSEdgeSwipeThreshold: 20,\n\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n\n // Autoheight\n autoHeight: false,\n\n // Set wrapper width\n setWrapperSize: false,\n\n // Virtual Translate\n virtualTranslate: false,\n\n // Effects\n effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n centeredSlides: false,\n slidesOffsetBefore: 0, // in px\n slidesOffsetAfter: 0, // in px\n normalizeSlideIndex: true,\n\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n\n // Round length\n roundLengths: false,\n\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: true,\n touchReleaseOnEdges: false,\n\n // Unique Navigation Elements\n uniqueNavElements: true,\n\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n\n // Cursor\n grabCursor: false,\n\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null, // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n\n // Passive Listeners\n passiveListeners: true,\n\n // NS\n containerModifierClass: 'swiper-container-', // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n\n // Callbacks\n runCallbacksOnInit: true,\n};\n\nconst prototypes = {\n update,\n translate,\n transition: transition$1,\n slide,\n loop,\n grabCursor,\n manipulation,\n events,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes,\n images,\n};\n\nconst extendedDefaults = {};\n\nclass Swiper$1 extends SwiperClass {\n constructor(...args) {\n let el;\n let params;\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n\n params = Utils.extend({}, params);\n if (el && !params.el) params.el = el;\n\n super(params);\n\n Object.keys(prototypes).forEach((prototypeGroup) => {\n Object.keys(prototypes[prototypeGroup]).forEach((protoMethod) => {\n if (!Swiper$1.prototype[protoMethod]) {\n Swiper$1.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n }\n });\n });\n\n // Swiper Instance\n const swiper = this;\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n Object.keys(swiper.modules).forEach((moduleName) => {\n const module = swiper.modules[moduleName];\n if (module.params) {\n const moduleParamName = Object.keys(module.params)[0];\n const moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object') return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n if (params[moduleParamName] === true) {\n params[moduleParamName] = { enabled: true };\n }\n if (\n typeof params[moduleParamName] === 'object' &&\n !('enabled' in params[moduleParamName])\n ) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = { enabled: false };\n }\n });\n\n // Extend defaults with modules params\n const swiperParams = Utils.extend({}, defaults);\n swiper.useModulesParams(swiperParams);\n\n // Extend defaults with passed params\n swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = Utils.extend({}, swiper.params);\n swiper.passedParams = Utils.extend({}, params);\n\n // Save Dom lib\n swiper.$ = $;\n\n // Find el\n const $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n const swipers = [];\n $el.each((index$$1, containerEl) => {\n const newParams = Utils.extend({}, params, { el: containerEl });\n swipers.push(new Swiper$1(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper;\n $el.data('swiper', swiper);\n\n // Find Wrapper\n const $wrapperEl = $el.children(`.${swiper.params.wrapperClass}`);\n\n // Extend Swiper\n Utils.extend(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n\n // Classes\n classNames: [],\n\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n\n //\n isBeginning: true,\n isEnd: false,\n\n // Props\n translate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n\n // Touch Events\n touchEvents: (function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend'];\n let desktop = ['mousedown', 'mousemove', 'mouseup'];\n if (Support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n } else if (Support.prefixedPointerEvents) {\n desktop = ['MSPointerDown', 'MSPointerMove', 'MSPointerUp'];\n }\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2],\n };\n return Support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }()),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video',\n // Last click time\n lastClickTime: Utils.now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined,\n },\n\n // Clicks\n allowClick: true,\n\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0,\n },\n\n // Images\n imagesToLoad: [],\n imagesLoaded: 0,\n\n });\n\n // Install Modules\n swiper.useModules();\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n return swiper;\n }\n slidesPerViewDynamic() {\n const swiper = this;\n const {\n params, slides, slidesGrid, size: swiperSize, activeIndex,\n } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slidesGrid[i] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtl ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (swiper.params.freeMode) {\n setTranslate();\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n swiper.emit('update');\n }\n init() {\n const swiper = this;\n if (swiper.initialized) return;\n\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n }\n\n // Attach events\n swiper.attachEvents();\n\n // Init Flag\n swiper.initialized = true;\n\n // Emit\n swiper.emit('init');\n }\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params, $el, $wrapperEl, slides,\n } = swiper;\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n if (slides && slides.length) {\n slides\n .removeClass([\n params.slideVisibleClass,\n params.slideActiveClass,\n params.slideNextClass,\n params.slidePrevClass,\n ].join(' '))\n .removeAttr('style')\n .removeAttr('data-swiper-slide-index')\n .removeAttr('data-swiper-column')\n .removeAttr('data-swiper-row');\n }\n }\n\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach((eventName) => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n swiper.$el.data('swiper', null);\n Utils.deleteProps(swiper);\n }\n swiper.destroyed = true;\n }\n static extendDefaults(newDefaults) {\n Utils.extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static get Class() {\n return SwiperClass;\n }\n static get $() {\n return $;\n }\n}\n\nvar Device$2 = {\n name: 'device',\n proto: {\n device: Device,\n },\n static: {\n device: Device,\n },\n};\n\nvar Support$2 = {\n name: 'support',\n proto: {\n support: Support,\n },\n static: {\n support: Support,\n },\n};\n\nvar Browser$2 = {\n name: 'browser',\n proto: {\n browser: Browser,\n },\n static: {\n browser: Browser,\n },\n};\n\nvar Resize = {\n name: 'resize',\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n resize: {\n resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n },\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n // Emit resize\n window.addEventListener('resize', swiper.resize.resizeHandler);\n\n // Emit orientationchange\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy() {\n const swiper = this;\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n },\n};\n\nconst Observer = {\n func: window.MutationObserver || window.WebkitMutationObserver,\n attach(target, options = {}) {\n const swiper = this;\n\n const ObserverFunc = Observer.func;\n const observer = new ObserverFunc((mutations) => {\n mutations.forEach((mutation) => {\n swiper.emit('observerUpdate', mutation);\n });\n });\n\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData,\n });\n\n swiper.observer.observers.push(observer);\n },\n init() {\n const swiper = this;\n if (!Support.observer || !swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n for (let i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n }\n // Observe container\n swiper.observer.attach(swiper.$el[0], { childList: false });\n\n // Observe wrapper\n swiper.observer.attach(swiper.$wrapperEl[0], { attributes: false });\n },\n destroy() {\n const swiper = this;\n swiper.observer.observers.forEach((observer) => {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n },\n};\n\nvar Observer$1 = {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n observer: {\n init: Observer.init.bind(swiper),\n attach: Observer.attach.bind(swiper),\n destroy: Observer.destroy.bind(swiper),\n observers: [],\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.observer.init();\n },\n destroy() {\n const swiper = this;\n swiper.observer.destroy();\n },\n },\n};\n\nconst Virtual = {\n update(force) {\n const swiper = this;\n const { slidesPerView, slidesPerGroup, centeredSlides } = swiper.params;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n renderSlide,\n offset: previousOffset,\n } = swiper.virtual;\n swiper.updateActiveIndex();\n const activeIndex = swiper.activeIndex || 0;\n\n let offsetProp;\n if (swiper.rtl && swiper.isHorizontal()) offsetProp = 'right';\n else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1);\n slidesBefore = slidesPerGroup;\n }\n const from = Math.max((activeIndex || 0) - slidesBefore, 0);\n const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n const offset$$1 = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n\n Utils.extend(swiper.virtual, {\n from,\n to,\n offset: offset$$1,\n slidesGrid: swiper.slidesGrid,\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset$$1 !== previousOffset) {\n swiper.slides.css(offsetProp, `${offset$$1}px`);\n }\n swiper.updateProgress();\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset: offset$$1,\n from,\n to,\n slides: (function getSlides() {\n const slidesToRender = [];\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()),\n });\n onRendered();\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\n if (force) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${i}\"]`).remove();\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n if (i >= from && i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(i);\n } else {\n if (i > previousTo) appendIndexes.push(i);\n if (i < previousFrom) prependIndexes.push(i);\n }\n }\n }\n appendIndexes.forEach((index$$1) => {\n swiper.$wrapperEl.append(renderSlide(slides[index$$1], index$$1));\n });\n prependIndexes.sort((a, b) => a < b).forEach((index$$1) => {\n swiper.$wrapperEl.prepend(renderSlide(slides[index$$1], index$$1));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset$$1}px`);\n onRendered();\n },\n renderSlide(slide, index$$1) {\n const swiper = this;\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index$$1]) {\n return swiper.virtual.cache[index$$1];\n }\n const $slideEl = params.renderSlide\n ? $(params.renderSlide.call(swiper, slide, index$$1))\n : $(`
${slide}
`);\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index$$1);\n if (params.cache) swiper.virtual.cache[index$$1] = $slideEl;\n return $slideEl;\n },\n appendSlide(slide) {\n const swiper = this;\n swiper.virtual.slides.push(slide);\n swiper.virtual.update(true);\n },\n prependSlide(slide) {\n const swiper = this;\n swiper.virtual.slides.unshift(slide);\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach((cachedIndex) => {\n newCache[cachedIndex + 1] = cache[cachedIndex];\n });\n swiper.virtual.cache = newCache;\n }\n swiper.virtual.update(true);\n swiper.slideNext(0);\n },\n};\n\nvar Virtual$1 = {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n virtual: {\n update: Virtual.update.bind(swiper),\n appendSlide: Virtual.appendSlide.bind(swiper),\n prependSlide: Virtual.prependSlide.bind(swiper),\n renderSlide: Virtual.renderSlide.bind(swiper),\n slides: swiper.params.virtual.slides,\n cache: {},\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (!swiper.params.virtual.enabled) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n const overwriteParams = {\n watchSlidesProgress: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n\n swiper.virtual.update();\n },\n setTranslate() {\n const swiper = this;\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.update();\n },\n },\n};\n\nconst Keyboard = {\n handle(event) {\n const swiper = this;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n // Directions locks\n if (!swiper.allowSlideNext && ((swiper.isHorizontal() && kc === 39) || (swiper.isVertical() && kc === 40))) {\n return false;\n }\n if (!swiper.allowSlidePrev && ((swiper.isHorizontal() && kc === 37) || (swiper.isVertical() && kc === 38))) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (kc === 37 || kc === 39 || kc === 38 || kc === 40)) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = swiper.$el.offset();\n if (swiper.rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [\n [swiperOffset.left, swiperOffset.top],\n [swiperOffset.left + swiper.width, swiperOffset.top],\n [swiperOffset.left, swiperOffset.top + swiper.height],\n [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height],\n ];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (\n point[0] >= 0 && point[0] <= windowWidth &&\n point[1] >= 0 && point[1] <= windowHeight\n ) {\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (kc === 37 || kc === 39) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n }\n if ((kc === 39 && !swiper.rtl) || (kc === 37 && swiper.rtl)) swiper.slideNext();\n if ((kc === 37 && !swiper.rtl) || (kc === 39 && swiper.rtl)) swiper.slidePrev();\n } else {\n if (kc === 38 || kc === 40) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n }\n if (kc === 40) swiper.slideNext();\n if (kc === 38) swiper.slidePrev();\n }\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable() {\n const swiper = this;\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable() {\n const swiper = this;\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n },\n};\n\nvar Keyboard$1 = {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n keyboard: {\n enabled: false,\n enable: Keyboard.enable.bind(swiper),\n disable: Keyboard.disable.bind(swiper),\n handle: Keyboard.handle.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n },\n },\n};\n\nfunction isEventSupported() {\n const eventName = 'onwheel';\n let isSupported = eventName in document;\n\n if (!isSupported) {\n const element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported &&\n document.implementation &&\n document.implementation.hasFeature &&\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true\n ) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\nconst Mousewheel = {\n lastScrollTime: Utils.now(),\n event: (function getEvent() {\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n }()),\n normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) { // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else { // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = (pX < 1) ? -1 : 1;\n }\n if (pY && !sY) {\n sY = (pY < 1) ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY,\n };\n },\n handle(event) {\n let e = event;\n const swiper = this;\n const params = swiper.params.mousewheel;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtl ? -1 : 1;\n\n const data$$1 = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data$$1.pixelX) > Math.abs(data$$1.pixelY)) delta = data$$1.pixelX * rtlFactor;\n else return true;\n } else if (Math.abs(data$$1.pixelY) > Math.abs(data$$1.pixelX)) delta = data$$1.pixelY;\n else return true;\n } else {\n delta = Math.abs(data$$1.pixelX) > Math.abs(data$$1.pixelY) ? -data$$1.pixelX * rtlFactor : -data$$1.pixelY;\n }\n\n if (delta === 0) return true;\n\n if (params.invert) delta = -delta;\n\n if (!swiper.params.freeMode) {\n if (Utils.now() - swiper.mousewheel.lastScrollTime > 60) {\n if (delta < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', e);\n } else if (params.releaseOnEdges) return true;\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', e);\n } else if (params.releaseOnEdges) return true;\n }\n swiper.mousewheel.lastScrollTime = (new window.Date()).getTime();\n } else {\n // Freemode or scrollContainer:\n let position = swiper.getTranslate() + (delta * params.sensitivity);\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = Utils.nextTick(() => {\n swiper.slideReset();\n }, 300);\n }\n // Emit event\n swiper.emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.stopAutoplay();\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n return false;\n },\n enable() {\n const swiper = this;\n if (!Mousewheel.event) return false;\n if (swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.on(Mousewheel.event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable() {\n const swiper = this;\n if (!Mousewheel.event) return false;\n if (!swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.off(Mousewheel.event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n },\n};\n\nvar Mousewheel$1 = {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarged: 'container',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n mousewheel: {\n enabled: false,\n enable: Mousewheel.enable.bind(swiper),\n disable: Mousewheel.disable.bind(swiper),\n handle: Mousewheel.handle.bind(swiper),\n lastScrollTime: Utils.now(),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy() {\n const swiper = this;\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n },\n },\n};\n\nconst Navigation = {\n update() {\n // Update Navigation Buttons\n const swiper = this;\n const params = swiper.params.navigation;\n\n if (swiper.params.loop) return;\n const { $nextEl, $prevEl } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n $prevEl.addClass(params.disabledClass);\n } else {\n $prevEl.removeClass(params.disabledClass);\n }\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n $nextEl.addClass(params.disabledClass);\n } else {\n $nextEl.removeClass(params.disabledClass);\n }\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n init() {\n const swiper = this;\n const params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) return;\n\n let $nextEl;\n let $prevEl;\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n if (\n swiper.params.uniqueNavElements &&\n typeof params.nextEl === 'string' &&\n $nextEl.length > 1 &&\n swiper.$el.find(params.nextEl).length === 1\n ) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n if (\n swiper.params.uniqueNavElements &&\n typeof params.prevEl === 'string' &&\n $prevEl.length > 1 &&\n swiper.$el.find(params.prevEl).length === 1\n ) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', (e) => {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n });\n }\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', (e) => {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n });\n }\n\n Utils.extend(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0],\n });\n },\n destroy() {\n const swiper = this;\n const { $nextEl, $prevEl } = swiper.navigation;\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click');\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click');\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n },\n};\n\nvar Navigation$1 = {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n navigation: {\n init: Navigation.init.bind(swiper),\n update: Navigation.update.bind(swiper),\n destroy: Navigation.destroy.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge() {\n const swiper = this;\n swiper.navigation.update();\n },\n fromEdge() {\n const swiper = this;\n swiper.navigation.update();\n },\n destroy() {\n const swiper = this;\n swiper.navigation.destroy();\n },\n click(e) {\n const swiper = this;\n const { $nextEl, $prevEl } = swiper.navigation;\n if (\n swiper.params.navigation.hideOnClick &&\n !$(e.target).is($prevEl) &&\n !$(e.target).is($nextEl)\n ) {\n if ($nextEl) $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n if ($prevEl) $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n },\n },\n};\n\nconst Pagination = {\n update() {\n // Render || Update Pagination bullets/items\n const swiper = this;\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n // Current/Total\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n if (current > slidesLength - 1 - (swiper.loopedSlides * 2)) {\n current -= (slidesLength - (swiper.loopedSlides * 2));\n }\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)}px`);\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n if (current > swiper.previousIndex && swiper.pagination.dynamicBulletIndex < (params.dynamicMainBullets - 1)) {\n swiper.pagination.dynamicBulletIndex += 1;\n } else if (current < swiper.previousIndex && swiper.pagination.dynamicBulletIndex > 0) {\n swiper.pagination.dynamicBulletIndex -= 1;\n }\n }\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (params.dynamicMainBullets - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.removeClass(`${params.bulletActiveClass} ${params.bulletActiveClass}-next ${params.bulletActiveClass}-next-next ${params.bulletActiveClass}-prev ${params.bulletActiveClass}-prev-prev ${params.bulletActiveClass}-main`);\n if ($el.length > 1) {\n bullets.each((index$$1, bullet) => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n if (bulletIndex === firstIndex) {\n $bullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n }\n if (bulletIndex === lastIndex) {\n $bullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n $bullet.addClass(params.bulletActiveClass);\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n $firstDisplayedBullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n $lastDisplayedBullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (((swiper.pagination.bulletSize * dynamicBulletsLength) - (swiper.pagination.bulletSize)) / 2) - (midIndex * swiper.pagination.bulletSize);\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n if (params.type === 'fraction') {\n $el.find(`.${params.currentClass}`).text(current + 1);\n $el.find(`.${params.totalClass}`).text(total);\n }\n if (params.type === 'progressbar') {\n const scale = (current + 1) / total;\n let scaleX = scale;\n let scaleY = 1;\n if (!swiper.isHorizontal()) {\n scaleY = scale;\n scaleX = 1;\n }\n $el.find(`.${params.progressbarFillClass}`).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', swiper, $el[0]);\n } else {\n swiper.emit('paginationUpdate', swiper, $el[0]);\n }\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n },\n render() {\n // Render Container\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n if (params.type === 'bullets') {\n const numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(`.${params.bulletClass}`);\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML =\n `` +\n ' / ' +\n ``;\n }\n $el.html(paginationHTML);\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n $el.html(paginationHTML);\n }\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el) return;\n\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (\n swiper.params.uniqueNavElements &&\n typeof params.el === 'string' &&\n $el.length > 1 &&\n swiper.$el.find(params.el).length === 1\n ) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n swiper.pagination.dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.clickable) {\n $el.on('click', `.${params.bulletClass}`, function onClick(e) {\n e.preventDefault();\n let index$$1 = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index$$1 += swiper.loopedSlides;\n swiper.slideTo(index$$1);\n });\n }\n\n Utils.extend(swiper.pagination, {\n $el,\n el: $el[0],\n });\n },\n destroy() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const $el = swiper.pagination.$el;\n\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n if (params.clickable) {\n $el.off('click', `.${params.bulletClass}`);\n }\n },\n};\n\nvar Pagination$1 = {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-', // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n clickableClass: 'swiper-pagination-clickable', // NEW\n lockClass: 'swiper-pagination-lock',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n pagination: {\n init: Pagination.init.bind(swiper),\n render: Pagination.render.bind(swiper),\n update: Pagination.update.bind(swiper),\n destroy: Pagination.destroy.bind(swiper),\n dynamicBulletIndex: 0,\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange() {\n const swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange() {\n const swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange() {\n const swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange() {\n const swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy() {\n const swiper = this;\n swiper.pagination.destroy();\n },\n click(e) {\n const swiper = this;\n if (\n swiper.params.pagination.el &&\n swiper.params.pagination.hideOnClick &&\n swiper.pagination.$el.length > 0 &&\n !$(e.target).hasClass(swiper.params.pagination.bulletClass)\n ) {\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n },\n },\n};\n\nconst Scrollbar = {\n setTranslate() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const { scrollbar, rtl, progress } = swiper;\n const {\n dragSize, trackSize, $dragEl, $el,\n } = scrollbar;\n const params = swiper.params.scrollbar;\n\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl && swiper.isHorizontal()) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n if (Support.transforms3d) {\n $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\n } else {\n $dragEl.transform(`translateX(${newPos}px)`);\n }\n $dragEl[0].style.width = `${newSize}px`;\n } else {\n if (Support.transforms3d) {\n $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\n } else {\n $dragEl.transform(`translateY(${newPos}px)`);\n }\n $dragEl[0].style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(() => {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition(duration) {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n\n const { scrollbar } = swiper;\n const { $dragEl, $el } = scrollbar;\n\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n const trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n\n const divider = swiper.size / swiper.virtualSize;\n const moveDivider = divider * (trackSize / swiper.size);\n let dragSize;\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = `${dragSize}px`;\n } else {\n $dragEl[0].style.height = `${dragSize}px`;\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n if (swiper.params.scrollbarHide) {\n $el[0].style.opacity = 0;\n }\n Utils.extend(scrollbar, {\n trackSize,\n divider,\n moveDivider,\n dragSize,\n });\n scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n },\n setDragPosition(e) {\n const swiper = this;\n const { scrollbar } = swiper;\n const { $el, dragSize, trackSize } = scrollbar;\n\n let pointerPosition;\n if (swiper.isHorizontal()) {\n pointerPosition = ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageX : e.pageX || e.clientX);\n } else {\n pointerPosition = ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageY : e.pageY || e.clientY);\n }\n let positionRatio;\n positionRatio = ((pointerPosition) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (swiper.rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n const position = swiper.minTranslate() + ((swiper.maxTranslate() - swiper.minTranslate()) * positionRatio);\n\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart(e) {\n const swiper = this;\n const params = swiper.params.scrollbar;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el, $dragEl } = scrollbar;\n swiper.scrollbar.isTouched = true;\n e.preventDefault();\n e.stopPropagation();\n\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n\n clearTimeout(swiper.scrollbar.dragTimeout);\n\n $el.transition(0);\n if (params.hide) {\n $el.css('opacity', 1);\n }\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove(e) {\n const swiper = this;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el, $dragEl } = scrollbar;\n\n if (!swiper.scrollbar.isTouched) return;\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd(e) {\n const swiper = this;\n\n const params = swiper.params.scrollbar;\n const { scrollbar } = swiper;\n const { $el } = scrollbar;\n\n if (!swiper.scrollbar.isTouched) return;\n swiper.scrollbar.isTouched = false;\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = Utils.nextTick(() => {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n swiper.emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideReset();\n }\n },\n enableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const {\n scrollbar, touchEvents, touchEventsDesktop, params,\n } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = Support.passiveListener && params.passiveListener ? { passive: false, capture: false } : false;\n const passiveListener = Support.passiveListener && params.passiveListener ? { passive: true, capture: false } : false;\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n if (Support.touch) {\n target.addEventListener(touchEvents.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEvents.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEvents.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n target.addEventListener('mousedown', swiper.scrollbar.onDragStart, activeListener);\n document.addEventListener('mousemove', swiper.scrollbar.onDragMove, activeListener);\n document.addEventListener('mouseup', swiper.scrollbar.onDragEnd, passiveListener);\n }\n }\n },\n disableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const {\n scrollbar, touchEvents, touchEventsDesktop, params,\n } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = Support.passiveListener && params.passiveListener ? { passive: false, capture: false } : false;\n const passiveListener = Support.passiveListener && params.passiveListener ? { passive: true, capture: false } : false;\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n if (Support.touch) {\n target.removeEventListener(touchEvents.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEvents.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEvents.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n target.removeEventListener('mousedown', swiper.scrollbar.onDragStart, activeListener);\n document.removeEventListener('mousemove', swiper.scrollbar.onDragMove, activeListener);\n document.removeEventListener('mouseup', swiper.scrollbar.onDragEnd, passiveListener);\n }\n }\n },\n init() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const { scrollbar, $el: $swiperEl } = swiper;\n const params = swiper.params.scrollbar;\n\n let $el = $(params.el);\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n if ($dragEl.length === 0) {\n $dragEl = $(`
`);\n $el.append($dragEl);\n }\n\n Utils.extend(scrollbar, {\n $el,\n el: $el[0],\n $dragEl,\n dragEl: $dragEl[0],\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n },\n destroy() {\n const swiper = this;\n swiper.scrollbar.disableDraggable();\n },\n};\n\nvar Scrollbar$1 = {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n scrollbar: {\n init: Scrollbar.init.bind(swiper),\n destroy: Scrollbar.destroy.bind(swiper),\n updateSize: Scrollbar.updateSize.bind(swiper),\n setTranslate: Scrollbar.setTranslate.bind(swiper),\n setTransition: Scrollbar.setTransition.bind(swiper),\n enableDraggable: Scrollbar.enableDraggable.bind(swiper),\n disableDraggable: Scrollbar.disableDraggable.bind(swiper),\n setDragPosition: Scrollbar.setDragPosition.bind(swiper),\n onDragStart: Scrollbar.onDragStart.bind(swiper),\n onDragMove: Scrollbar.onDragMove.bind(swiper),\n onDragEnd: Scrollbar.onDragEnd.bind(swiper),\n isTouched: false,\n timeout: null,\n dragTimeout: null,\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n resize() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n observerUpdate() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n setTranslate() {\n const swiper = this;\n swiper.scrollbar.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n swiper.scrollbar.setTransition(duration);\n },\n destroy() {\n const swiper = this;\n swiper.scrollbar.destroy();\n },\n },\n};\n\nconst Parallax = {\n setTransform(el, progress) {\n const swiper = this;\n const { rtl } = swiper;\n\n const $el = $(el);\n const rtlFactor = rtl ? -1 : 1;\n\n const p = $el.attr('data-swiper-parallax') || '0';\n let x = $el.attr('data-swiper-parallax-x');\n let y = $el.attr('data-swiper-parallax-y');\n const scale = $el.attr('data-swiper-parallax-scale');\n const opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if ((x).indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if ((y).indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - ((opacity - 1) * (1 - Math.abs(progress)));\n $el[0].style.opacity = currentOpacity;\n }\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(`translate3d(${x}, ${y}, 0px)`);\n } else {\n const currentScale = scale - ((scale - 1) * (1 - Math.abs(progress)));\n $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\n }\n },\n setTranslate() {\n const swiper = this;\n const {\n $el, slides, progress, snapGrid,\n } = swiper;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]')\n .each((index$$1, el) => {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each((slideIndex, slideEl) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - (progress * (snapGrid.length - 1));\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]')\n .each((index$$1, el) => {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition(duration = this.params.speed) {\n const swiper = this;\n const { $el } = swiper;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]')\n .each((index$$1, parallaxEl) => {\n const $parallaxEl = $(parallaxEl);\n let parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n },\n};\n\nvar Parallax$1 = {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n parallax: {\n setTransform: Parallax.setTransform.bind(swiper),\n setTranslate: Parallax.setTranslate.bind(swiper),\n setTransition: Parallax.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n },\n init() {\n const swiper = this;\n if (!swiper.params.parallax) return;\n swiper.parallax.setTranslate();\n },\n setTranslate() {\n const swiper = this;\n if (!swiper.params.parallax) return;\n swiper.parallax.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (!swiper.params.parallax) return;\n swiper.parallax.setTransition(duration);\n },\n },\n};\n\nconst Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n const x1 = e.targetTouches[0].pageX;\n const y1 = e.targetTouches[0].pageY;\n const x2 = e.targetTouches[1].pageX;\n const y2 = e.targetTouches[1].pageY;\n const distance = Math.sqrt(((x2 - x1) ** 2) + ((y2 - y1) ** 2));\n return distance;\n },\n // Events\n onGestureStart(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n if (!Support.gestures) {\n if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest('.swiper-slide');\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n gesture.$imageEl.transition(0);\n swiper.zoom.isScaling = true;\n },\n onGestureChange(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (!Support.gestures) {\n if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (Support.gestures) {\n swiper.zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale;\n }\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = (gesture.maxRatio - 1) + (((zoom.scale - gesture.maxRatio) + 1) ** 0.5);\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = (params.minRatio + 1) - (((params.minRatio - zoom.scale) + 1) ** 0.5);\n }\n gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n },\n onGestureEnd(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (!Support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n if (e.type !== 'touchend' || (e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android)) {\n return;\n }\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n },\n onTouchStart(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (Device.android) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n },\n onTouchMove(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image, velocity } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = Utils.getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n if (swiper.rtl) image.startX = -image.startX;\n if (swiper.rtl) image.startY = -image.startY;\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !zoom.isScaling) {\n if (\n swiper.isHorizontal() &&\n (\n (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x) ||\n (Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)\n )\n ) {\n image.isTouched = false;\n return;\n } else if (\n !swiper.isHorizontal() &&\n (\n (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y) ||\n (Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)\n )\n ) {\n image.isTouched = false;\n return;\n }\n }\n e.preventDefault();\n e.stopPropagation();\n\n image.isMoved = true;\n image.currentX = (image.touchesCurrent.x - image.touchesStart.x) + image.startX;\n image.currentY = (image.touchesCurrent.y - image.touchesStart.y) + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = (image.minX + 1) - (((image.minX - image.currentX) + 1) ** 0.8);\n }\n if (image.currentX > image.maxX) {\n image.currentX = (image.maxX - 1) + (((image.currentX - image.maxX) + 1) ** 0.8);\n }\n\n if (image.currentY < image.minY) {\n image.currentY = (image.minY + 1) - (((image.minY - image.currentY) + 1) ** 0.8);\n }\n if (image.currentY > image.maxY) {\n image.currentY = (image.maxY - 1) + (((image.currentY - image.maxY) + 1) ** 0.8);\n }\n\n // Velocity\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n\n gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTouchEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image, velocity } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n\n gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTransitionEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n }\n },\n // Toggle Zoom\n toggle(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom.in(e);\n }\n },\n in(e) {\n const swiper = this;\n\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const { gesture, image } = zoom;\n\n if (!gesture.$slideEl) {\n gesture.$slideEl = swiper.clickedSlide ? $(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\n\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left;\n offsetY = gesture.$slideEl.offset().top;\n diffX = (offsetX + (slideWidth / 2)) - touchX;\n diffY = (offsetY + (slideHeight / 2)) - touchY;\n\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n\n translateMinX = Math.min(((slideWidth / 2) - (scaledWidth / 2)), 0);\n translateMinY = Math.min(((slideHeight / 2) - (scaledHeight / 2)), 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n gesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`);\n gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n },\n out() {\n const swiper = this;\n\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const { gesture } = zoom;\n\n if (!gesture.$slideEl) {\n gesture.$slideEl = swiper.clickedSlide ? $(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);\n gesture.$slideEl = undefined;\n },\n // Attach/Detach Events\n enable() {\n const swiper = this;\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.on('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.on('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener);\n }\n\n // Move image\n swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove);\n },\n disable() {\n const swiper = this;\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n\n swiper.zoom.enabled = false;\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.off('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.off('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener);\n }\n\n // Move image\n swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove);\n },\n};\n\nvar Zoom$1 = {\n name: 'zoom',\n params: {\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed',\n },\n },\n create() {\n const swiper = this;\n const zoom = {\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3,\n },\n image: {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {},\n },\n velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined,\n },\n };\n ('onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out').split(' ').forEach((methodName) => {\n zoom[methodName] = Zoom[methodName].bind(swiper);\n });\n Utils.extend(swiper, {\n zoom,\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy() {\n const swiper = this;\n swiper.zoom.disable();\n },\n touchStart(e) {\n const swiper = this;\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchStart(e);\n },\n touchEnd(e) {\n const swiper = this;\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap(e) {\n const swiper = this;\n if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n },\n};\n\nconst Lazy = {\n loadInSlide(index$$1, loadInDuplicate = true) {\n const swiper = this;\n const params = swiper.params.lazy;\n if (typeof index$$1 === 'undefined') return;\n if (swiper.slides.length === 0) return;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n const $slideEl = isVirtual\n ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index$$1}\"]`)\n : swiper.slides.eq(index$$1);\n\n let $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images = $images.add($slideEl[0]);\n }\n if ($images.length === 0) return;\n\n $images.each((imageIndex, imageEl) => {\n const $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n\n const background = $imageEl.attr('data-background');\n const src = $imageEl.attr('data-src');\n const srcset = $imageEl.attr('data-srcset');\n const sizes = $imageEl.attr('data-sizes');\n\n swiper.loadImage($imageEl[0], (src || background), srcset, sizes, false, () => {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || (swiper && !swiper.params) || swiper.destroyed) return;\n if (background) {\n $imageEl.css('background-image', `url(\"${background}\")`);\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(`.${params.preloaderClass}`).remove();\n if (swiper.params.loop && loadInDuplicate) {\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n });\n\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load() {\n const swiper = this;\n const {\n $wrapperEl, params: swiperParams, slides, activeIndex,\n } = swiper;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n\n let slidesPerView = swiperParams.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index$$1) {\n if (isVirtual) {\n if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index$$1}\"]`).length) {\n return true;\n }\n } else if (slides[index$$1]) return true;\n return false;\n }\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n return $(slideEl).index();\n }\n\n if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each((elIndex, slideEl) => {\n const index$$1 = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index$$1);\n });\n } else if (slidesPerView > 1) {\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\n }\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) {\n const amount = params.loadPrevNextAmount;\n const spv = slidesPerView;\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);\n // Next Slides\n for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n // Prev Slides\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\n\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\n }\n }\n },\n};\n\nvar Lazy$1 = {\n name: 'lazy',\n params: {\n lazy: {\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n lazy: {\n initialImageLoaded: false,\n load: Lazy.load.bind(swiper),\n loadInSlide: Lazy.loadInSlide.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init() {\n const swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n swiper.lazy.load();\n }\n },\n scroll() {\n const swiper = this;\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n resize() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n scrollbarDragMove() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n },\n};\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nconst Controller = {\n LinearSpline: function LinearSpline(x, y) {\n const binarySearch = (function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }());\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n let i1;\n let i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1])) + this.y[i1];\n };\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction(c) {\n const swiper = this;\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ?\n new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid) :\n new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate(setTranslate, byController) {\n const swiper = this;\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = c.rtl && c.params.direction === 'horizontal' ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = ((translate - swiper.minTranslate()) * multiplier) + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper$1) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper$1 && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition(duration, byController) {\n const swiper = this;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n c.$wrapperEl.transitionEnd(() => {\n if (!controlled) return;\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper$1) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper$1 && byController !== controlled) {\n setControlledTransition(controlled);\n }\n },\n};\nvar Controller$1 = {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide', // or 'container'\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n controller: {\n control: swiper.params.controller.control,\n getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper),\n setTranslate: Controller.setTranslate.bind(swiper),\n setTransition: Controller.setTransition.bind(swiper),\n },\n });\n },\n on: {\n update() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate(translate, byController) {\n const swiper = this;\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n },\n },\n};\n\nconst a11y = {\n makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterKey(e) {\n const swiper = this;\n const params = swiper.params.a11y;\n if (e.keyCode !== 13) return;\n const $targetEl = $(e.target);\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\n }\n }\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && $targetEl.is(`.${swiper.params.pagination.bulletClass}`)) {\n $targetEl[0].click();\n }\n },\n notify(message) {\n const swiper = this;\n const notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation() {\n const swiper = this;\n\n if (swiper.params.loop) return;\n const { $nextEl, $prevEl } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n }\n }\n },\n updatePagination() {\n const swiper = this;\n const params = swiper.params.a11y;\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each((bulletIndex, bulletEl) => {\n const $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/{{index}}/, $bulletEl.index() + 1));\n });\n }\n },\n init() {\n const swiper = this;\n\n swiper.$el.append(swiper.a11y.liveRegion);\n\n // Navigation\n const params = swiper.params.a11y;\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n swiper.a11y.makeElFocusable($nextEl);\n swiper.a11y.addElRole($nextEl, 'button');\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n $nextEl.on('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n swiper.a11y.makeElFocusable($prevEl);\n swiper.a11y.addElRole($prevEl, 'button');\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n $prevEl.on('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey);\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\n\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey);\n }\n },\n};\nvar A11y = {\n name: 'a11y',\n params: {\n a11y: {\n enabled: false,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n a11y: {\n liveRegion: $(``),\n },\n });\n Object.keys(a11y).forEach((methodName) => {\n swiper.a11y[methodName] = a11y[methodName].bind(swiper);\n });\n },\n on: {\n init() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n },\n },\n};\n\nconst History = {\n init() {\n const swiper = this;\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n const history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues();\n if (!history.paths.key && !history.paths.value) return;\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy() {\n const swiper = this;\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState() {\n const swiper = this;\n swiper.history.paths = History.getPathValues();\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues() {\n const pathArray = window.location.pathname.slice(1).split('/').filter(part => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return { key, value };\n },\n setHistory(key, index$$1) {\n const swiper = this;\n if (!swiper.history.initialized || !swiper.params.history.enabled) return;\n const slide = swiper.slides.eq(index$$1);\n let value = History.slugify(slide.attr('data-history'));\n if (!window.location.pathname.includes(key)) {\n value = `${key}/${value}`;\n }\n const currentState = window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window.history.replaceState({ value }, null, value);\n } else {\n window.history.pushState({ value }, null, value);\n }\n },\n slugify(text$$1) {\n return text$$1.toString().toLowerCase()\n .replace(/\\s+/g, '-')\n .replace(/[^\\w-]+/g, '')\n .replace(/--+/g, '-')\n .replace(/^-+/, '')\n .replace(/-+$/, '');\n },\n scrollToSlide(speed, value, runCallbacks) {\n const swiper = this;\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHistory = History.slugify(slide.attr('data-history'));\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index$$1 = slide.index();\n swiper.slideTo(index$$1, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n },\n};\n\nvar History$1 = {\n name: 'history',\n params: {\n history: {\n enabled: false,\n replaceState: false,\n key: 'slides',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n history: {\n init: History.init.bind(swiper),\n setHistory: History.setHistory.bind(swiper),\n setHistoryPopState: History.setHistoryPopState.bind(swiper),\n scrollToSlide: History.scrollToSlide.bind(swiper),\n destroy: History.destroy.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n },\n};\n\nconst HashNavigation = {\n onHashCange() {\n const swiper = this;\n const newHash = document.location.hash.replace('#', '');\n const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n if (newHash !== activeSlideHash) {\n swiper.slideTo(swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`).index());\n }\n },\n setHash() {\n const swiper = this;\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, (`#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || ''));\n } else {\n const slide = swiper.slides.eq(swiper.activeIndex);\n const hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n }\n },\n init() {\n const swiper = this;\n if (!swiper.params.hashNavigation.enabled || (swiper.params.history && swiper.params.history.enabled)) return;\n swiper.hashNavigation.initialized = true;\n const hash = document.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHash = slide.attr('data-hash') || slide.attr('data-history');\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index$$1 = slide.index();\n swiper.slideTo(index$$1, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n};\nvar HashNavigation$1 = {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n hashNavigation: {\n initialized: false,\n init: HashNavigation.init.bind(swiper),\n destroy: HashNavigation.destroy.bind(swiper),\n setHash: HashNavigation.setHash.bind(swiper),\n onHashCange: HashNavigation.onHashCange.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n },\n};\n\nconst Autoplay = {\n run() {\n const swiper = this;\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n swiper.autoplay.timeout = Utils.nextTick(() => {\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n }, delay);\n },\n start() {\n const swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop() {\n const swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause(speed) {\n const swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n swiper.$wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.autoplay.paused = false;\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n });\n }\n },\n};\n\nvar Autoplay$1 = {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n autoplay: {\n running: false,\n paused: false,\n run: Autoplay.run.bind(swiper),\n start: Autoplay.start.bind(swiper),\n stop: Autoplay.stop.bind(swiper),\n pause: Autoplay.pause.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n }\n },\n beforeTransitionStart(speed, internal) {\n const swiper = this;\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove() {\n const swiper = this;\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n },\n },\n};\n\nconst Fade = {\n setTranslate() {\n const swiper = this;\n const { slides } = swiper;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = swiper.slides.eq(i);\n const offset$$1 = $slideEl[0].swiperSlideOffset;\n let tx = -offset$$1;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade ?\n Math.max(1 - Math.abs($slideEl[0].progress), 0) :\n 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl\n .css({\n opacity: slideOpacity,\n })\n .transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n },\n setTransition(duration) {\n const swiper = this;\n const { slides, $wrapperEl } = swiper;\n slides.transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n slides.transitionEnd(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nvar EffectFade = {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n fadeEffect: {\n setTranslate: Fade.setTranslate.bind(swiper),\n setTransition: Fade.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}fade`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTransition(duration);\n },\n },\n};\n\nconst Cube = {\n setTranslate() {\n const swiper = this;\n const {\n $el, $wrapperEl, slides, width: swiperWidth, height: swiperHeight, rtl, size: swiperSize,\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let $cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $wrapperEl.append($cubeShadowEl);\n }\n $cubeShadowEl.css({ height: `${swiperWidth}px` });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $el.append($cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + (round * 4 * swiperSize);\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = (3 * swiperSize) + (swiperSize * 4 * round);\n }\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n const transform$$1 = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = (slideIndex * 90) + (progress * 90);\n if (rtl) wrapperRotate = (-slideIndex * 90) - (progress * 90);\n }\n $slideEl.transform(transform$$1);\n if (params.slideShadows) {\n // Set shadows\n let shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $(`
`);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(`
`);\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n }\n $wrapperEl.css({\n '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,\n '-moz-transform-origin': `50% 50% -${swiperSize / 2}px`,\n '-ms-transform-origin': `50% 50% -${swiperSize / 2}px`,\n 'transform-origin': `50% 50% -${swiperSize / 2}px`,\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(`translate3d(0px, ${(swiperWidth / 2) + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`);\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - (Math.floor(Math.abs(wrapperRotate) / 90) * 90);\n const multiplier = 1.5 - (\n (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2) +\n (Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2)\n );\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset$$1 = params.shadowOffset;\n $cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${(swiperHeight / 2) + offset$$1}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`);\n }\n }\n const zFactor = (Browser.isSafari || Browser.isUiWebView) ? (-swiperSize / 2) : 0;\n $wrapperEl\n .transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`);\n },\n setTransition(duration) {\n const swiper = this;\n const { $el, slides } = swiper;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n },\n};\n\nvar EffectCube = {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n cubeEffect: {\n setTranslate: Cube.setTranslate.bind(swiper),\n setTransition: Cube.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}cube`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTransition(duration);\n },\n },\n};\n\nconst Flip = {\n setTranslate() {\n const swiper = this;\n const { slides } = swiper;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let progress = $slideEl[0].progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n const offset$$1 = $slideEl[0].swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = -offset$$1;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (swiper.rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (swiper.params.flipEffect.slideShadows) {\n // Set shadows\n let shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $(`
`);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(`
`);\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n $slideEl\n .transform(`translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`);\n }\n },\n setTransition(duration) {\n const swiper = this;\n const { slides, activeIndex, $wrapperEl } = swiper;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n // eslint-disable-next-line\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nvar EffectFlip = {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n flipEffect: {\n setTranslate: Flip.setTranslate.bind(swiper),\n setTransition: Flip.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}flip`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTransition(duration);\n },\n },\n};\n\nconst Coverflow = {\n setTranslate() {\n const swiper = this;\n const {\n width: swiperWidth, height: swiperHeight, slides, $wrapperEl, slidesSizesGrid,\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform$$1 = swiper.translate;\n const center = isHorizontal ? -transform$$1 + (swiperWidth / 2) : -transform$$1 + (swiperHeight / 2);\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n // Each slide offset from center\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideSize = slidesSizesGrid[i];\n const slideOffset = $slideEl[0].swiperSlideOffset;\n const offsetMultiplier = ((center - slideOffset - (slideSize / 2)) / slideSize) * params.modifier;\n\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n\n let translateY = isHorizontal ? 0 : params.stretch * (offsetMultiplier);\n let translateX = isHorizontal ? params.stretch * (offsetMultiplier) : 0;\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n let $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $(`
`);\n $slideEl.append($shadowBeforeEl);\n }\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $(`
`);\n $slideEl.append($shadowAfterEl);\n }\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = (-offsetMultiplier) > 0 ? -offsetMultiplier : 0;\n }\n }\n\n // Set correct perspective for IE10\n if (Support.pointerEvents || Support.prefixedPointerEvents) {\n const ws = $wrapperEl[0].style;\n ws.perspectiveOrigin = `${center}px 50%`;\n }\n },\n setTransition(duration) {\n const swiper = this;\n swiper.slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n },\n};\n\nvar EffectCoverflow = {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n modifier: 1,\n slideShadows: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n coverflowEffect: {\n setTranslate: Coverflow.setTranslate.bind(swiper),\n setTransition: Coverflow.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n\n swiper.classNames.push(`${swiper.params.containerModifierClass}coverflow`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTransition(duration);\n },\n },\n};\n\n// Swiper Class\n// Core Modules\nconst components = [\n Device$2,\n Support$2,\n Browser$2,\n Resize,\n Observer$1,\n Virtual$1,\n Keyboard$1,\n Mousewheel$1,\n Navigation$1,\n Pagination$1,\n Scrollbar$1,\n Parallax$1,\n Zoom$1,\n Lazy$1,\n Controller$1,\n A11y,\n History$1,\n HashNavigation$1,\n Autoplay$1,\n EffectFade,\n EffectCube,\n EffectFlip,\n EffectCoverflow\n];\n\nif (typeof Swiper$1.use === 'undefined') {\n Swiper$1.use = Swiper$1.Class.use;\n Swiper$1.installModule = Swiper$1.Class.installModule;\n}\n\nSwiper$1.use(components);\n\nexport default Swiper$1;\n\n\n\n// WEBPACK FOOTER //\n// /Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/swiper/dist/js/swiper.esm.bundle.js","/**\n * SSR Window 1.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2018, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: February 10, 2018\n */\nvar d;\nif (typeof document === 'undefined') {\n d = {\n body: {},\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n activeElement: {\n blur: function blur() {},\n nodeName: '',\n },\n querySelector: function querySelector() {\n return null;\n },\n querySelectorAll: function querySelectorAll() {\n return [];\n },\n getElementById: function getElementById() {\n return null;\n },\n createEvent: function createEvent() {\n return {\n initEvent: function initEvent() {},\n };\n },\n createElement: function createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function setAttribute() {},\n getElementsByTagName: function getElementsByTagName() {\n return [];\n },\n };\n },\n location: { hash: '' },\n };\n} else {\n // eslint-disable-next-line\n d = document;\n}\n\nvar doc = d;\n\nvar w;\nif (typeof window === 'undefined') {\n w = {\n document: doc,\n navigator: {\n userAgent: '',\n },\n location: {},\n history: {},\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n getComputedStyle: function getComputedStyle() {\n return {\n getPropertyValue: function getPropertyValue() {\n return '';\n },\n };\n },\n Image: function Image() {},\n Date: function Date() {},\n screen: {},\n setTimeout: function setTimeout() {},\n clearTimeout: function clearTimeout() {},\n };\n} else {\n // eslint-disable-next-line\n w = window;\n}\n\nvar win = w;\n\nexport { win as window, doc as document };\n\n\n\n// WEBPACK FOOTER //\n// /Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/ssr-window/dist/ssr-window.esm.js","// Nodelist forEach polyfill\nif (window.NodeList && !NodeList.prototype.forEach) {\n NodeList.prototype.forEach = function (callback, thisArg) {\n thisArg = thisArg || window;\n for (var i = 0; i < this.length; i++) {\n callback.call(thisArg, this[i], i, this);\n }\n };\n}\n\n// import external dependencies\nimport 'jquery';\nimport 'picturefill/dist/picturefill.min.js';\nimport 'lazysizes/plugins/bgset/ls.bgset.min.js';\nimport 'lazysizes/lazysizes.min.js';\nimport 'vide/dist/jquery.vide.min.js';\n\n// Import everything from autoload\n\n\n// import local dependencies\nimport Router from './util/Router';\nimport common from './routes/common';\nimport home from './routes/home';\nimport aboutUs from './routes/about';\n\n/** Populate Router instance with DOM routes */\nconst routes = new Router({\n // All pages\n common,\n // Home page\n home,\n // About Us page, note the change from about-us to aboutUs.\n aboutUs,\n});\n\n// Load Events\njQuery(document).ready(() => routes.loadEvents());\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/main.js","/*! picturefill - v3.0.2 - 2016-02-12\n * https://scottjehl.github.io/picturefill/\n * Copyright (c) 2016 https://github.com/scottjehl/picturefill/blob/master/Authors.txt; Licensed MIT\n */\n!function(a){var b=navigator.userAgent;a.HTMLPictureElement&&/ecko/.test(b)&&b.match(/rv\\:(\\d+)/)&&RegExp.$1<45&&addEventListener(\"resize\",function(){var b,c=document.createElement(\"source\"),d=function(a){var b,d,e=a.parentNode;\"PICTURE\"===e.nodeName.toUpperCase()?(b=c.cloneNode(),e.insertBefore(b,e.firstElementChild),setTimeout(function(){e.removeChild(b)})):(!a._pfLastSize||a.offsetWidth>a._pfLastSize)&&(a._pfLastSize=a.offsetWidth,d=a.sizes,a.sizes+=\",100vw\",setTimeout(function(){a.sizes=d}))},e=function(){var a,b=document.querySelectorAll(\"picture > img, img[srcset][sizes]\");for(a=0;a2.7?h=c+1:(f=b-c,e=Math.pow(a-.6,1.5),g=f*e,d&&(g+=.1*e),h=a+g):h=c>1?Math.sqrt(a*b):a,h>c}function h(a){var b,c=s.getSet(a),d=!1;\"pending\"!==c&&(d=r,c&&(b=s.setRes(c),s.applySetCandidate(b,a))),a[s.ns].evaled=d}function i(a,b){return a.res-b.res}function j(a,b,c){var d;return!c&&b&&(c=a[s.ns].sets,c=c&&c[c.length-1]),d=k(b,c),d&&(b=s.makeUrl(b),a[s.ns].curSrc=b,a[s.ns].curCan=d,d.res||aa(d,d.set.sizes)),d}function k(a,b){var c,d,e;if(a&&b)for(e=s.parseSet(b),a=s.makeUrl(a),c=0;cc;c++)e=g[c],e[s.ns]=!0,f=e.getAttribute(\"srcset\"),f&&b.push({srcset:f,media:e.getAttribute(\"media\"),type:e.getAttribute(\"type\"),sizes:e.getAttribute(\"sizes\")})}function m(a,b){function c(b){var c,d=b.exec(a.substring(m));return d?(c=d[0],m+=c.length,c):void 0}function e(){var a,c,d,e,f,i,j,k,l,m=!1,o={};for(e=0;el?m=!0:c=l):X.test(j)&&\"h\"===i?((d||c)&&(m=!0),0===k?m=!0:d=k):m=!0;m||(o.url=g,a&&(o.w=a),c&&(o.d=c),d&&(o.h=d),d||c||a||(o.d=1),1===o.d&&(b.has1x=!0),o.set=b,n.push(o))}function f(){for(c(T),i=\"\",j=\"in descriptor\";;){if(k=a.charAt(m),\"in descriptor\"===j)if(d(k))i&&(h.push(i),i=\"\",j=\"after descriptor\");else{if(\",\"===k)return m+=1,i&&h.push(i),void e();if(\"(\"===k)i+=k,j=\"in parens\";else{if(\"\"===k)return i&&h.push(i),void e();i+=k}}else if(\"in parens\"===j)if(\")\"===k)i+=k,j=\"in descriptor\";else{if(\"\"===k)return h.push(i),void e();i+=k}else if(\"after descriptor\"===j)if(d(k));else{if(\"\"===k)return void e();j=\"in descriptor\",m-=1}m+=1}}for(var g,h,i,j,k,l=a.length,m=0,n=[];;){if(c(U),m>=l)return n;g=c(V),h=[],\",\"===g.slice(-1)?(g=g.replace(W,\"\"),e()):f()}}function n(a){function b(a){function b(){f&&(g.push(f),f=\"\")}function c(){g[0]&&(h.push(g),g=[])}for(var e,f=\"\",g=[],h=[],i=0,j=0,k=!1;;){if(e=a.charAt(j),\"\"===e)return b(),c(),h;if(k){if(\"*\"===e&&\"/\"===a[j+1]){k=!1,j+=2,b();continue}j+=1}else{if(d(e)){if(a.charAt(j-1)&&d(a.charAt(j-1))||!f){j+=1;continue}if(0===i){b(),j+=1;continue}e=\" \"}else if(\"(\"===e)i+=1;else if(\")\"===e)i-=1;else{if(\",\"===e){b(),c(),j+=1;continue}if(\"/\"===e&&\"*\"===a.charAt(j+1)){k=!0,j+=2;continue}}f+=e,j+=1}}}function c(a){return k.test(a)&&parseFloat(a)>=0?!0:l.test(a)?!0:\"0\"===a||\"-0\"===a||\"+0\"===a?!0:!1}var e,f,g,h,i,j,k=/^(?:[+-]?[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?(?:ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmin|vmax|vw)$/i,l=/^calc\\((?:[0-9a-z \\.\\+\\-\\*\\/\\(\\)]+)\\)$/i;for(f=b(a),g=f.length,e=0;g>e;e++)if(h=f[e],i=h[h.length-1],c(i)){if(j=i,h.pop(),0===h.length)return j;if(h=h.join(\" \"),s.matchesMedia(h))return j}return\"100vw\"}b.createElement(\"picture\");var o,p,q,r,s={},t=!1,u=function(){},v=b.createElement(\"img\"),w=v.getAttribute,x=v.setAttribute,y=v.removeAttribute,z=b.documentElement,A={},B={algorithm:\"\"},C=\"data-pfsrc\",D=C+\"set\",E=navigator.userAgent,F=/rident/.test(E)||/ecko/.test(E)&&E.match(/rv\\:(\\d+)/)&&RegExp.$1>35,G=\"currentSrc\",H=/\\s+\\+?\\d+(e\\d+)?w/,I=/(\\([^)]+\\))?\\s*(.+)/,J=a.picturefillCFG,K=\"position:absolute;left:0;visibility:hidden;display:block;padding:0;border:none;font-size:1em;width:1em;overflow:hidden;clip:rect(0px, 0px, 0px, 0px)\",L=\"font-size:100%!important;\",M=!0,N={},O={},P=a.devicePixelRatio,Q={px:1,\"in\":96},R=b.createElement(\"a\"),S=!1,T=/^[ \\t\\n\\r\\u000c]+/,U=/^[, \\t\\n\\r\\u000c]+/,V=/^[^ \\t\\n\\r\\u000c]+/,W=/[,]+$/,X=/^\\d+$/,Y=/^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,Z=function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d||!1):a.attachEvent&&a.attachEvent(\"on\"+b,c)},$=function(a){var b={};return function(c){return c in b||(b[c]=a(c)),b[c]}},_=function(){var a=/^([\\d\\.]+)(em|vw|px)$/,b=function(){for(var a=arguments,b=0,c=a[0];++b in a;)c=c.replace(a[b],a[++b]);return c},c=$(function(a){return\"return \"+b((a||\"\").toLowerCase(),/\\band\\b/g,\"&&\",/,/g,\"||\",/min-([a-z-\\s]+):/g,\"e.$1>=\",/max-([a-z-\\s]+):/g,\"e.$1<=\",/calc([^)]+)/g,\"($1)\",/(\\d+[\\.]*[\\d]*)([a-z]+)/g,\"($1 * e.$2)\",/^(?!(e.[a-z]|[0-9\\.&=|><\\+\\-\\*\\(\\)\\/])).*/gi,\"\")+\";\"});return function(b,d){var e;if(!(b in N))if(N[b]=!1,d&&(e=b.match(a)))N[b]=e[1]*Q[e[2]];else try{N[b]=new Function(\"e\",c(b))(Q)}catch(f){}return N[b]}}(),aa=function(a,b){return a.w?(a.cWidth=s.calcListLength(b||\"100vw\"),a.res=a.w/a.cWidth):a.res=a.d,a},ba=function(a){if(t){var c,d,e,f=a||{};if(f.elements&&1===f.elements.nodeType&&(\"IMG\"===f.elements.nodeName.toUpperCase()?f.elements=[f.elements]:(f.context=f.elements,f.elements=null)),c=f.elements||s.qsa(f.context||b,f.reevaluate||f.reselect?s.sel:s.selShort),e=c.length){for(s.setupRun(f),S=!0,d=0;e>d;d++)s.fillImg(c[d],f);s.teardownRun(f)}}};o=a.console&&console.warn?function(a){console.warn(a)}:u,G in v||(G=\"src\"),A[\"image/jpeg\"]=!0,A[\"image/gif\"]=!0,A[\"image/png\"]=!0,A[\"image/svg+xml\"]=b.implementation.hasFeature(\"http://www.w3.org/TR/SVG11/feature#Image\",\"1.1\"),s.ns=(\"pf\"+(new Date).getTime()).substr(0,9),s.supSrcset=\"srcset\"in v,s.supSizes=\"sizes\"in v,s.supPicture=!!a.HTMLPictureElement,s.supSrcset&&s.supPicture&&!s.supSizes&&!function(a){v.srcset=\"data:,a\",a.src=\"data:,a\",s.supSrcset=v.complete===a.complete,s.supPicture=s.supSrcset&&s.supPicture}(b.createElement(\"img\")),s.supSrcset&&!s.supSizes?!function(){var a=\"data:image/gif;base64,R0lGODlhAgABAPAAAP///wAAACH5BAAAAAAALAAAAAACAAEAAAICBAoAOw==\",c=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\",d=b.createElement(\"img\"),e=function(){var a=d.width;2===a&&(s.supSizes=!0),q=s.supSrcset&&!s.supSizes,t=!0,setTimeout(ba)};d.onload=e,d.onerror=e,d.setAttribute(\"sizes\",\"9px\"),d.srcset=c+\" 1w,\"+a+\" 9w\",d.src=c}():t=!0,s.selShort=\"picture>img,img[srcset]\",s.sel=s.selShort,s.cfg=B,s.DPR=P||1,s.u=Q,s.types=A,s.setSize=u,s.makeUrl=$(function(a){return R.href=a,R.href}),s.qsa=function(a,b){return\"querySelector\"in a?a.querySelectorAll(b):[]},s.matchesMedia=function(){return a.matchMedia&&(matchMedia(\"(min-width: 0.1em)\")||{}).matches?s.matchesMedia=function(a){return!a||matchMedia(a).matches}:s.matchesMedia=s.mMQ,s.matchesMedia.apply(this,arguments)},s.mMQ=function(a){return a?_(a):!0},s.calcLength=function(a){var b=_(a,!0)||!1;return 0>b&&(b=!1),b},s.supportsType=function(a){return a?A[a]:!0},s.parseSize=$(function(a){var b=(a||\"\").match(I);return{media:b&&b[1],length:b&&b[2]}}),s.parseSet=function(a){return a.cands||(a.cands=m(a.srcset,a)),a.cands},s.getEmValue=function(){var a;if(!p&&(a=b.body)){var c=b.createElement(\"div\"),d=z.style.cssText,e=a.style.cssText;c.style.cssText=K,z.style.cssText=L,a.style.cssText=L,a.appendChild(c),p=c.offsetWidth,a.removeChild(c),p=parseFloat(p,10),z.style.cssText=d,a.style.cssText=e}return p||16},s.calcListLength=function(a){if(!(a in O)||B.uT){var b=s.calcLength(n(a));O[a]=b?b:Q.width}return O[a]},s.setRes=function(a){var b;if(a){b=s.parseSet(a);for(var c=0,d=b.length;d>c;c++)aa(b[c],a.sizes)}return b},s.setRes.res=aa,s.applySetCandidate=function(a,b){if(a.length){var c,d,e,f,h,k,l,m,n,o=b[s.ns],p=s.DPR;if(k=o.curSrc||b[G],l=o.curCan||j(b,k,a[0].set),l&&l.set===a[0].set&&(n=F&&!b.complete&&l.res-.1>p,n||(l.cached=!0,l.res>=p&&(h=l))),!h)for(a.sort(i),f=a.length,h=a[f-1],d=0;f>d;d++)if(c=a[d],c.res>=p){e=d-1,h=a[e]&&(n||k!==s.makeUrl(c.url))&&g(a[e].res,c.res,p,a[e].cached)?a[e]:c;break}h&&(m=s.makeUrl(h.url),o.curSrc=m,o.curCan=h,m!==k&&s.setSrc(b,h),s.setSize(b))}},s.setSrc=function(a,b){var c;a.src=b.url,\"image/svg+xml\"===b.set.type&&(c=a.style.width,a.style.width=a.offsetWidth+1+\"px\",a.offsetWidth+1&&(a.style.width=c))},s.getSet=function(a){var b,c,d,e=!1,f=a[s.ns].sets;for(b=0;bf?c=setTimeout(e,b-f):(c=null,a())};return function(){d=new Date,c||(c=setTimeout(e,b))}},h=z.clientHeight,i=function(){M=Math.max(a.innerWidth||0,z.clientWidth)!==Q.width||z.clientHeight!==h,h=z.clientHeight,M&&s.fillImgs()};Z(a,\"resize\",g(i,99)),Z(b,\"readystatechange\",e)}(),s.picturefill=ba,s.fillImgs=ba,s.teardownRun=u,ba._=s,a.picturefillCFG={pf:s,push:function(a){var b=a.shift();\"function\"==typeof s[b]?s[b].apply(s,a):(B[b]=a[0],S&&s.fillImgs({reselect:!0}))}};for(;J&&J.length;)a.picturefillCFG.push(J.shift());a.picturefill=ba,\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=ba:\"function\"==typeof define&&define.amd&&define(\"picturefill\",function(){return ba}),s.supPicture||(A[\"image/webp\"]=e(\"image/webp\",\"data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAABBxAR/Q9ERP8DAABWUDggGAAAADABAJ0BKgEAAQADADQlpAADcAD++/1QAA==\"))}(window,document);\n\n\n// WEBPACK FOOTER //\n// /Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/picturefill/dist/picturefill.min.js","/* globals __webpack_amd_options__ */\r\nmodule.exports = __webpack_amd_options__;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/amd-options.js\n// module id = 6\n// module chunks = 0","/*! lazysizes - v4.0.1 */\n!function(a,b){var c=function(){b(a.lazySizes),a.removeEventListener(\"lazyunveilread\",c,!0)};b=b.bind(null,a,a.document),\"object\"==typeof module&&module.exports?b(require(\"lazysizes\")):a.lazySizes?c():a.addEventListener(\"lazyunveilread\",c,!0)}(window,function(a,b,c){\"use strict\";if(a.addEventListener){var d=/\\s+/g,e=/\\s*\\|\\s+|\\s+\\|\\s*/g,f=/^(.+?)(?:\\s+\\[\\s*(.+?)\\s*\\])?$/,g=/\\(|\\)|'/,h={contain:1,cover:1},i=function(a){var b=c.gW(a,a.parentNode);return(!a._lazysizesWidth||b>a._lazysizesWidth)&&(a._lazysizesWidth=b),a._lazysizesWidth},j=function(a){var b;return b=(getComputedStyle(a)||{getPropertyValue:function(){}}).getPropertyValue(\"background-size\"),!h[b]&&h[a.style.backgroundSize]&&(b=a.style.backgroundSize),b},k=function(a,c,g){var h=b.createElement(\"picture\"),i=c.getAttribute(lazySizesConfig.sizesAttr),j=c.getAttribute(\"data-ratio\"),k=c.getAttribute(\"data-optimumx\");c._lazybgset&&c._lazybgset.parentNode==c&&c.removeChild(c._lazybgset),Object.defineProperty(g,\"_lazybgset\",{value:c,writable:!0}),Object.defineProperty(c,\"_lazybgset\",{value:h,writable:!0}),a=a.replace(d,\" \").split(e),h.style.display=\"none\",g.className=lazySizesConfig.lazyClass,1!=a.length||i||(i=\"auto\"),a.forEach(function(a){var c=b.createElement(\"source\");i&&\"auto\"!=i&&c.setAttribute(\"sizes\",i),a.match(f)&&(c.setAttribute(lazySizesConfig.srcsetAttr,RegExp.$1),RegExp.$2&&c.setAttribute(\"media\",lazySizesConfig.customMedia[RegExp.$2]||RegExp.$2)),h.appendChild(c)}),i&&(g.setAttribute(lazySizesConfig.sizesAttr,i),c.removeAttribute(lazySizesConfig.sizesAttr),c.removeAttribute(\"sizes\")),k&&g.setAttribute(\"data-optimumx\",k),j&&g.setAttribute(\"data-ratio\",j),h.appendChild(g),c.appendChild(h)},l=function(a){if(a.target._lazybgset){var b=a.target,d=b._lazybgset,e=b.currentSrc||b.src;e&&(d.style.backgroundImage=\"url(\"+(g.test(e)?JSON.stringify(e):e)+\")\"),b._lazybgsetLoading&&(c.fire(d,\"_lazyloaded\",{},!1,!0),delete b._lazybgsetLoading)}};addEventListener(\"lazybeforeunveil\",function(a){var d,e,f;!a.defaultPrevented&&(d=a.target.getAttribute(\"data-bgset\"))&&(f=a.target,e=b.createElement(\"img\"),e.alt=\"\",e._lazybgsetLoading=!0,a.detail.firesLoad=!0,k(d,f,e),setTimeout(function(){c.loader.unveil(e),c.rAF(function(){c.fire(e,\"_lazyloaded\",{},!0,!0),e.complete&&l({target:e})})}))}),b.addEventListener(\"load\",l,!0),a.addEventListener(\"lazybeforesizes\",function(a){if(a.detail.instance==c&&a.target._lazybgset&&a.detail.dataAttr){var b=a.target._lazybgset,d=j(b);h[d]&&(a.target._lazysizesParentFit=d,c.rAF(function(){a.target.setAttribute(\"data-parent-fit\",d),a.target._lazysizesParentFit&&delete a.target._lazysizesParentFit}))}},!0),b.documentElement.addEventListener(\"lazybeforesizes\",function(a){!a.defaultPrevented&&a.target._lazybgset&&a.detail.instance==c&&(a.detail.width=i(a.target._lazybgset))})}});\n\n\n// WEBPACK FOOTER //\n// /Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/lazysizes/plugins/bgset/ls.bgset.min.js","(function(window, factory) {\n\tvar lazySizes = factory(window, window.document);\n\twindow.lazySizes = lazySizes;\n\tif(typeof module == 'object' && module.exports){\n\t\tmodule.exports = lazySizes;\n\t}\n}(window, function l(window, document) {\n\t'use strict';\n\t/*jshint eqnull:true */\n\tif(!document.getElementsByClassName){return;}\n\n\tvar lazysizes, lazySizesConfig;\n\n\tvar docElem = document.documentElement;\n\n\tvar Date = window.Date;\n\n\tvar supportPicture = window.HTMLPictureElement;\n\n\tvar _addEventListener = 'addEventListener';\n\n\tvar _getAttribute = 'getAttribute';\n\n\tvar addEventListener = window[_addEventListener];\n\n\tvar setTimeout = window.setTimeout;\n\n\tvar requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n\n\tvar requestIdleCallback = window.requestIdleCallback;\n\n\tvar regPicture = /^picture$/i;\n\n\tvar loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\n\n\tvar regClassCache = {};\n\n\tvar forEach = Array.prototype.forEach;\n\n\tvar hasClass = function(ele, cls) {\n\t\tif(!regClassCache[cls]){\n\t\t\tregClassCache[cls] = new RegExp('(\\\\s|^)'+cls+'(\\\\s|$)');\n\t\t}\n\t\treturn regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];\n\t};\n\n\tvar addClass = function(ele, cls) {\n\t\tif (!hasClass(ele, cls)){\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);\n\t\t}\n\t};\n\n\tvar removeClass = function(ele, cls) {\n\t\tvar reg;\n\t\tif ((reg = hasClass(ele,cls))) {\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));\n\t\t}\n\t};\n\n\tvar addRemoveLoadEvents = function(dom, fn, add){\n\t\tvar action = add ? _addEventListener : 'removeEventListener';\n\t\tif(add){\n\t\t\taddRemoveLoadEvents(dom, fn);\n\t\t}\n\t\tloadEvents.forEach(function(evt){\n\t\t\tdom[action](evt, fn);\n\t\t});\n\t};\n\n\tvar triggerEvent = function(elem, name, detail, noBubbles, noCancelable){\n\t\tvar event = document.createEvent('CustomEvent');\n\n\t\tif(!detail){\n\t\t\tdetail = {};\n\t\t}\n\n\t\tdetail.instance = lazysizes;\n\n\t\tevent.initCustomEvent(name, !noBubbles, !noCancelable, detail);\n\n\t\telem.dispatchEvent(event);\n\t\treturn event;\n\t};\n\n\tvar updatePolyfill = function (el, full){\n\t\tvar polyfill;\n\t\tif( !supportPicture && ( polyfill = (window.picturefill || lazySizesConfig.pf) ) ){\n\t\t\tpolyfill({reevaluate: true, elements: [el]});\n\t\t} else if(full && full.src){\n\t\t\tel.src = full.src;\n\t\t}\n\t};\n\n\tvar getCSS = function (elem, style){\n\t\treturn (getComputedStyle(elem, null) || {})[style];\n\t};\n\n\tvar getWidth = function(elem, parent, width){\n\t\twidth = width || elem.offsetWidth;\n\n\t\twhile(width < lazySizesConfig.minSize && parent && !elem._lazysizesWidth){\n\t\t\twidth = parent.offsetWidth;\n\t\t\tparent = parent.parentNode;\n\t\t}\n\n\t\treturn width;\n\t};\n\n\tvar rAF = (function(){\n\t\tvar running, waiting;\n\t\tvar firstFns = [];\n\t\tvar secondFns = [];\n\t\tvar fns = firstFns;\n\n\t\tvar run = function(){\n\t\t\tvar runFns = fns;\n\n\t\t\tfns = firstFns.length ? secondFns : firstFns;\n\n\t\t\trunning = true;\n\t\t\twaiting = false;\n\n\t\t\twhile(runFns.length){\n\t\t\t\trunFns.shift()();\n\t\t\t}\n\n\t\t\trunning = false;\n\t\t};\n\n\t\tvar rafBatch = function(fn, queue){\n\t\t\tif(running && !queue){\n\t\t\t\tfn.apply(this, arguments);\n\t\t\t} else {\n\t\t\t\tfns.push(fn);\n\n\t\t\t\tif(!waiting){\n\t\t\t\t\twaiting = true;\n\t\t\t\t\t(document.hidden ? setTimeout : requestAnimationFrame)(run);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\trafBatch._lsFlush = run;\n\n\t\treturn rafBatch;\n\t})();\n\n\tvar rAFIt = function(fn, simple){\n\t\treturn simple ?\n\t\t\tfunction() {\n\t\t\t\trAF(fn);\n\t\t\t} :\n\t\t\tfunction(){\n\t\t\t\tvar that = this;\n\t\t\t\tvar args = arguments;\n\t\t\t\trAF(function(){\n\t\t\t\t\tfn.apply(that, args);\n\t\t\t\t});\n\t\t\t}\n\t\t;\n\t};\n\n\tvar throttle = function(fn){\n\t\tvar running;\n\t\tvar lastTime = 0;\n\t\tvar gDelay = 125;\n\t\tvar rICTimeout = lazySizesConfig.ricTimeout;\n\t\tvar run = function(){\n\t\t\trunning = false;\n\t\t\tlastTime = Date.now();\n\t\t\tfn();\n\t\t};\n\t\tvar idleCallback = requestIdleCallback && lazySizesConfig.ricTimeout ?\n\t\t\tfunction(){\n\t\t\t\trequestIdleCallback(run, {timeout: rICTimeout});\n\n\t\t\t\tif(rICTimeout !== lazySizesConfig.ricTimeout){\n\t\t\t\t\trICTimeout = lazySizesConfig.ricTimeout;\n\t\t\t\t}\n\t\t\t} :\n\t\t\trAFIt(function(){\n\t\t\t\tsetTimeout(run);\n\t\t\t}, true)\n\t\t;\n\n\t\treturn function(isPriority){\n\t\t\tvar delay;\n\n\t\t\tif((isPriority = isPriority === true)){\n\t\t\t\trICTimeout = 33;\n\t\t\t}\n\n\t\t\tif(running){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trunning = true;\n\n\t\t\tdelay = gDelay - (Date.now() - lastTime);\n\n\t\t\tif(delay < 0){\n\t\t\t\tdelay = 0;\n\t\t\t}\n\n\t\t\tif(isPriority || (delay < 9 && requestIdleCallback)){\n\t\t\t\tidleCallback();\n\t\t\t} else {\n\t\t\t\tsetTimeout(idleCallback, delay);\n\t\t\t}\n\t\t};\n\t};\n\n\t//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n\tvar debounce = function(func) {\n\t\tvar timeout, timestamp;\n\t\tvar wait = 99;\n\t\tvar run = function(){\n\t\t\ttimeout = null;\n\t\t\tfunc();\n\t\t};\n\t\tvar later = function() {\n\t\t\tvar last = Date.now() - timestamp;\n\n\t\t\tif (last < wait) {\n\t\t\t\tsetTimeout(later, wait - last);\n\t\t\t} else {\n\t\t\t\t(requestIdleCallback || run)(run);\n\t\t\t}\n\t\t};\n\n\t\treturn function() {\n\t\t\ttimestamp = Date.now();\n\n\t\t\tif (!timeout) {\n\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t}\n\t\t};\n\t};\n\n\t(function(){\n\t\tvar prop;\n\n\t\tvar lazySizesDefaults = {\n\t\t\tlazyClass: 'lazyload',\n\t\t\tloadedClass: 'lazyloaded',\n\t\t\tloadingClass: 'lazyloading',\n\t\t\tpreloadClass: 'lazypreload',\n\t\t\terrorClass: 'lazyerror',\n\t\t\t//strictClass: 'lazystrict',\n\t\t\tautosizesClass: 'lazyautosizes',\n\t\t\tsrcAttr: 'data-src',\n\t\t\tsrcsetAttr: 'data-srcset',\n\t\t\tsizesAttr: 'data-sizes',\n\t\t\t//preloadAfterLoad: false,\n\t\t\tminSize: 40,\n\t\t\tcustomMedia: {},\n\t\t\tinit: true,\n\t\t\texpFactor: 1.5,\n\t\t\thFac: 0.8,\n\t\t\tloadMode: 2,\n\t\t\tloadHidden: true,\n\t\t\tricTimeout: 300,\n\t\t};\n\n\t\tlazySizesConfig = window.lazySizesConfig || window.lazysizesConfig || {};\n\n\t\tfor(prop in lazySizesDefaults){\n\t\t\tif(!(prop in lazySizesConfig)){\n\t\t\t\tlazySizesConfig[prop] = lazySizesDefaults[prop];\n\t\t\t}\n\t\t}\n\n\t\twindow.lazySizesConfig = lazySizesConfig;\n\n\t\tsetTimeout(function(){\n\t\t\tif(lazySizesConfig.init){\n\t\t\t\tinit();\n\t\t\t}\n\t\t});\n\t})();\n\n\tvar loader = (function(){\n\t\tvar preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n\t\tvar eLvW, elvH, eLtop, eLleft, eLright, eLbottom;\n\n\t\tvar defaultExpand, preloadExpand, hFac;\n\n\t\tvar regImg = /^img$/i;\n\t\tvar regIframe = /^iframe$/i;\n\n\t\tvar supportScroll = ('onscroll' in window) && !(/glebot/.test(navigator.userAgent));\n\n\t\tvar shrinkExpand = 0;\n\t\tvar currentExpand = 0;\n\n\t\tvar isLoading = 0;\n\t\tvar lowRuns = -1;\n\n\t\tvar resetPreloading = function(e){\n\t\t\tisLoading--;\n\t\t\tif(e && e.target){\n\t\t\t\taddRemoveLoadEvents(e.target, resetPreloading);\n\t\t\t}\n\n\t\t\tif(!e || isLoading < 0 || !e.target){\n\t\t\t\tisLoading = 0;\n\t\t\t}\n\t\t};\n\n\t\tvar isNestedVisible = function(elem, elemExpand){\n\t\t\tvar outerRect;\n\t\t\tvar parent = elem;\n\t\t\tvar visible = getCSS(document.body, 'visibility') == 'hidden' || getCSS(elem, 'visibility') != 'hidden';\n\n\t\t\teLtop -= elemExpand;\n\t\t\teLbottom += elemExpand;\n\t\t\teLleft -= elemExpand;\n\t\t\teLright += elemExpand;\n\n\t\t\twhile(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){\n\t\t\t\tvisible = ((getCSS(parent, 'opacity') || 1) > 0);\n\n\t\t\t\tif(visible && getCSS(parent, 'overflow') != 'visible'){\n\t\t\t\t\touterRect = parent.getBoundingClientRect();\n\t\t\t\t\tvisible = eLright > outerRect.left &&\n\t\t\t\t\t\teLleft < outerRect.right &&\n\t\t\t\t\t\teLbottom > outerRect.top - 1 &&\n\t\t\t\t\t\teLtop < outerRect.bottom + 1\n\t\t\t\t\t;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn visible;\n\t\t};\n\n\t\tvar checkElements = function() {\n\t\t\tvar eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal, beforeExpandVal;\n\n\t\t\tvar lazyloadElems = lazysizes.elements;\n\n\t\t\tif((loadMode = lazySizesConfig.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){\n\n\t\t\t\ti = 0;\n\n\t\t\t\tlowRuns++;\n\n\t\t\t\tif(preloadExpand == null){\n\t\t\t\t\tif(!('expand' in lazySizesConfig)){\n\t\t\t\t\t\tlazySizesConfig.expand = docElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370;\n\t\t\t\t\t}\n\n\t\t\t\t\tdefaultExpand = lazySizesConfig.expand;\n\t\t\t\t\tpreloadExpand = defaultExpand * lazySizesConfig.expFactor;\n\t\t\t\t}\n\n\t\t\t\tif(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){\n\t\t\t\t\tcurrentExpand = preloadExpand;\n\t\t\t\t\tlowRuns = 0;\n\t\t\t\t} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){\n\t\t\t\t\tcurrentExpand = defaultExpand;\n\t\t\t\t} else {\n\t\t\t\t\tcurrentExpand = shrinkExpand;\n\t\t\t\t}\n\n\t\t\t\tfor(; i < eLlen; i++){\n\n\t\t\t\t\tif(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}\n\n\t\t\t\t\tif(!supportScroll){unveilElement(lazyloadElems[i]);continue;}\n\n\t\t\t\t\tif(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){\n\t\t\t\t\t\telemExpand = currentExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(beforeExpandVal !== elemExpand){\n\t\t\t\t\t\teLvW = innerWidth + (elemExpand * hFac);\n\t\t\t\t\t\telvH = innerHeight + elemExpand;\n\t\t\t\t\t\telemNegativeExpand = elemExpand * -1;\n\t\t\t\t\t\tbeforeExpandVal = elemExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\trect = lazyloadElems[i].getBoundingClientRect();\n\n\t\t\t\t\tif ((eLbottom = rect.bottom) >= elemNegativeExpand &&\n\t\t\t\t\t\t(eLtop = rect.top) <= elvH &&\n\t\t\t\t\t\t(eLright = rect.right) >= elemNegativeExpand * hFac &&\n\t\t\t\t\t\t(eLleft = rect.left) <= eLvW &&\n\t\t\t\t\t\t(eLbottom || eLright || eLleft || eLtop) &&\n\t\t\t\t\t\t(lazySizesConfig.loadHidden || getCSS(lazyloadElems[i], 'visibility') != 'hidden') &&\n\t\t\t\t\t\t((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){\n\t\t\t\t\t\tunveilElement(lazyloadElems[i]);\n\t\t\t\t\t\tloadedSomething = true;\n\t\t\t\t\t\tif(isLoading > 9){break;}\n\t\t\t\t\t} else if(!loadedSomething && isCompleted && !autoLoadElem &&\n\t\t\t\t\t\tisLoading < 4 && lowRuns < 4 && loadMode > 2 &&\n\t\t\t\t\t\t(preloadElems[0] || lazySizesConfig.preloadAfterLoad) &&\n\t\t\t\t\t\t(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesConfig.sizesAttr) != 'auto')))){\n\t\t\t\t\t\tautoLoadElem = preloadElems[0] || lazyloadElems[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(autoLoadElem && !loadedSomething){\n\t\t\t\t\tunveilElement(autoLoadElem);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar throttledCheckElements = throttle(checkElements);\n\n\t\tvar switchLoadingClass = function(e){\n\t\t\taddClass(e.target, lazySizesConfig.loadedClass);\n\t\t\tremoveClass(e.target, lazySizesConfig.loadingClass);\n\t\t\taddRemoveLoadEvents(e.target, rafSwitchLoadingClass);\n\t\t\ttriggerEvent(e.target, 'lazyloaded');\n\t\t};\n\t\tvar rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n\t\tvar rafSwitchLoadingClass = function(e){\n\t\t\trafedSwitchLoadingClass({target: e.target});\n\t\t};\n\n\t\tvar changeIframeSrc = function(elem, src){\n\t\t\ttry {\n\t\t\t\telem.contentWindow.location.replace(src);\n\t\t\t} catch(e){\n\t\t\t\telem.src = src;\n\t\t\t}\n\t\t};\n\n\t\tvar handleSources = function(source){\n\t\t\tvar customMedia;\n\n\t\t\tvar sourceSrcset = source[_getAttribute](lazySizesConfig.srcsetAttr);\n\n\t\t\tif( (customMedia = lazySizesConfig.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){\n\t\t\t\tsource.setAttribute('media', customMedia);\n\t\t\t}\n\n\t\t\tif(sourceSrcset){\n\t\t\t\tsource.setAttribute('srcset', sourceSrcset);\n\t\t\t}\n\t\t};\n\n\t\tvar lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){\n\t\t\tvar src, srcset, parent, isPicture, event, firesLoad;\n\n\t\t\tif(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){\n\n\t\t\t\tif(sizes){\n\t\t\t\t\tif(isAuto){\n\t\t\t\t\t\taddClass(elem, lazySizesConfig.autosizesClass);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.setAttribute('sizes', sizes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsrcset = elem[_getAttribute](lazySizesConfig.srcsetAttr);\n\t\t\t\tsrc = elem[_getAttribute](lazySizesConfig.srcAttr);\n\n\t\t\t\tif(isImg) {\n\t\t\t\t\tparent = elem.parentNode;\n\t\t\t\t\tisPicture = parent && regPicture.test(parent.nodeName || '');\n\t\t\t\t}\n\n\t\t\t\tfiresLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));\n\n\t\t\t\tevent = {target: elem};\n\n\t\t\t\tif(firesLoad){\n\t\t\t\t\taddRemoveLoadEvents(elem, resetPreloading, true);\n\t\t\t\t\tclearTimeout(resetPreloadingTimer);\n\t\t\t\t\tresetPreloadingTimer = setTimeout(resetPreloading, 2500);\n\n\t\t\t\t\taddClass(elem, lazySizesConfig.loadingClass);\n\t\t\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n\t\t\t\t}\n\n\t\t\t\tif(isPicture){\n\t\t\t\t\tforEach.call(parent.getElementsByTagName('source'), handleSources);\n\t\t\t\t}\n\n\t\t\t\tif(srcset){\n\t\t\t\t\telem.setAttribute('srcset', srcset);\n\t\t\t\t} else if(src && !isPicture){\n\t\t\t\t\tif(regIframe.test(elem.nodeName)){\n\t\t\t\t\t\tchangeIframeSrc(elem, src);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.src = src;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(isImg && (srcset || isPicture)){\n\t\t\t\t\tupdatePolyfill(elem, {src: src});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(elem._lazyRace){\n\t\t\t\tdelete elem._lazyRace;\n\t\t\t}\n\t\t\tremoveClass(elem, lazySizesConfig.lazyClass);\n\n\t\t\trAF(function(){\n\t\t\t\tif( !firesLoad || (elem.complete && elem.naturalWidth > 1)){\n\t\t\t\t\tif(firesLoad){\n\t\t\t\t\t\tresetPreloading(event);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tisLoading--;\n\t\t\t\t\t}\n\t\t\t\t\tswitchLoadingClass(event);\n\t\t\t\t}\n\t\t\t}, true);\n\t\t});\n\n\t\tvar unveilElement = function (elem){\n\t\t\tvar detail;\n\n\t\t\tvar isImg = regImg.test(elem.nodeName);\n\n\t\t\t//allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\n\t\t\tvar sizes = isImg && (elem[_getAttribute](lazySizesConfig.sizesAttr) || elem[_getAttribute]('sizes'));\n\t\t\tvar isAuto = sizes == 'auto';\n\n\t\t\tif( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesConfig.errorClass) && hasClass(elem, lazySizesConfig.lazyClass)){return;}\n\n\t\t\tdetail = triggerEvent(elem, 'lazyunveilread').detail;\n\n\t\t\tif(isAuto){\n\t\t\t\t autoSizer.updateElem(elem, true, elem.offsetWidth);\n\t\t\t}\n\n\t\t\telem._lazyRace = true;\n\t\t\tisLoading++;\n\n\t\t\tlazyUnveil(elem, detail, isAuto, sizes, isImg);\n\t\t};\n\n\t\tvar onload = function(){\n\t\t\tif(isCompleted){return;}\n\t\t\tif(Date.now() - started < 999){\n\t\t\t\tsetTimeout(onload, 999);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar afterScroll = debounce(function(){\n\t\t\t\tlazySizesConfig.loadMode = 3;\n\t\t\t\tthrottledCheckElements();\n\t\t\t});\n\n\t\t\tisCompleted = true;\n\n\t\t\tlazySizesConfig.loadMode = 3;\n\n\t\t\tthrottledCheckElements();\n\n\t\t\taddEventListener('scroll', function(){\n\t\t\t\tif(lazySizesConfig.loadMode == 3){\n\t\t\t\t\tlazySizesConfig.loadMode = 2;\n\t\t\t\t}\n\t\t\t\tafterScroll();\n\t\t\t}, true);\n\t\t};\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tstarted = Date.now();\n\n\t\t\t\tlazysizes.elements = document.getElementsByClassName(lazySizesConfig.lazyClass);\n\t\t\t\tpreloadElems = document.getElementsByClassName(lazySizesConfig.lazyClass + ' ' + lazySizesConfig.preloadClass);\n\t\t\t\thFac = lazySizesConfig.hFac;\n\n\t\t\t\taddEventListener('scroll', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('resize', throttledCheckElements, true);\n\n\t\t\t\tif(window.MutationObserver){\n\t\t\t\t\tnew MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );\n\t\t\t\t} else {\n\t\t\t\t\tdocElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n\t\t\t\t\tdocElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n\t\t\t\t\tsetInterval(throttledCheckElements, 999);\n\t\t\t\t}\n\n\t\t\t\taddEventListener('hashchange', throttledCheckElements, true);\n\n\t\t\t\t//, 'fullscreenchange'\n\t\t\t\t['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend', 'webkitAnimationEnd'].forEach(function(name){\n\t\t\t\t\tdocument[_addEventListener](name, throttledCheckElements, true);\n\t\t\t\t});\n\n\t\t\t\tif((/d$|^c/.test(document.readyState))){\n\t\t\t\t\tonload();\n\t\t\t\t} else {\n\t\t\t\t\taddEventListener('load', onload);\n\t\t\t\t\tdocument[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n\t\t\t\t\tsetTimeout(onload, 20000);\n\t\t\t\t}\n\n\t\t\t\tif(lazysizes.elements.length){\n\t\t\t\t\tcheckElements();\n\t\t\t\t\trAF._lsFlush();\n\t\t\t\t} else {\n\t\t\t\t\tthrottledCheckElements();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcheckElems: throttledCheckElements,\n\t\t\tunveil: unveilElement\n\t\t};\n\t})();\n\n\n\tvar autoSizer = (function(){\n\t\tvar autosizesElems;\n\n\t\tvar sizeElement = rAFIt(function(elem, parent, event, width){\n\t\t\tvar sources, i, len;\n\t\t\telem._lazysizesWidth = width;\n\t\t\twidth += 'px';\n\n\t\t\telem.setAttribute('sizes', width);\n\n\t\t\tif(regPicture.test(parent.nodeName || '')){\n\t\t\t\tsources = parent.getElementsByTagName('source');\n\t\t\t\tfor(i = 0, len = sources.length; i < len; i++){\n\t\t\t\t\tsources[i].setAttribute('sizes', width);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!event.detail.dataAttr){\n\t\t\t\tupdatePolyfill(elem, event.detail);\n\t\t\t}\n\t\t});\n\t\tvar getSizeElement = function (elem, dataAttr, width){\n\t\t\tvar event;\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif(parent){\n\t\t\t\twidth = getWidth(elem, parent, width);\n\t\t\t\tevent = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});\n\n\t\t\t\tif(!event.defaultPrevented){\n\t\t\t\t\twidth = event.detail.width;\n\n\t\t\t\t\tif(width && width !== elem._lazysizesWidth){\n\t\t\t\t\t\tsizeElement(elem, parent, event, width);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar updateElementsSizes = function(){\n\t\t\tvar i;\n\t\t\tvar len = autosizesElems.length;\n\t\t\tif(len){\n\t\t\t\ti = 0;\n\n\t\t\t\tfor(; i < len; i++){\n\t\t\t\t\tgetSizeElement(autosizesElems[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tautosizesElems = document.getElementsByClassName(lazySizesConfig.autosizesClass);\n\t\t\t\taddEventListener('resize', debouncedUpdateElementsSizes);\n\t\t\t},\n\t\t\tcheckElems: debouncedUpdateElementsSizes,\n\t\t\tupdateElem: getSizeElement\n\t\t};\n\t})();\n\n\tvar init = function(){\n\t\tif(!init.i){\n\t\t\tinit.i = true;\n\t\t\tautoSizer._();\n\t\t\tloader._();\n\t\t}\n\t};\n\n\tlazysizes = {\n\t\tcfg: lazySizesConfig,\n\t\tautoSizer: autoSizer,\n\t\tloader: loader,\n\t\tinit: init,\n\t\tuP: updatePolyfill,\n\t\taC: addClass,\n\t\trC: removeClass,\n\t\thC: hasClass,\n\t\tfire: triggerEvent,\n\t\tgW: getWidth,\n\t\trAF: rAF,\n\t};\n\n\treturn lazysizes;\n}\n));\n\n\n\n// WEBPACK FOOTER //\n// /Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/lazysizes/lazysizes.js","/*! lazysizes - v4.0.1 */\n!function(a,b){var c=b(a,a.document);a.lazySizes=c,\"object\"==typeof module&&module.exports&&(module.exports=c)}(window,function(a,b){\"use strict\";if(b.getElementsByClassName){var c,d,e=b.documentElement,f=a.Date,g=a.HTMLPictureElement,h=\"addEventListener\",i=\"getAttribute\",j=a[h],k=a.setTimeout,l=a.requestAnimationFrame||k,m=a.requestIdleCallback,n=/^picture$/i,o=[\"load\",\"error\",\"lazyincluded\",\"_lazyloaded\"],p={},q=Array.prototype.forEach,r=function(a,b){return p[b]||(p[b]=new RegExp(\"(\\\\s|^)\"+b+\"(\\\\s|$)\")),p[b].test(a[i](\"class\")||\"\")&&p[b]},s=function(a,b){r(a,b)||a.setAttribute(\"class\",(a[i](\"class\")||\"\").trim()+\" \"+b)},t=function(a,b){var c;(c=r(a,b))&&a.setAttribute(\"class\",(a[i](\"class\")||\"\").replace(c,\" \"))},u=function(a,b,c){var d=c?h:\"removeEventListener\";c&&u(a,b),o.forEach(function(c){a[d](c,b)})},v=function(a,d,e,f,g){var h=b.createEvent(\"CustomEvent\");return e||(e={}),e.instance=c,h.initCustomEvent(d,!f,!g,e),a.dispatchEvent(h),h},w=function(b,c){var e;!g&&(e=a.picturefill||d.pf)?e({reevaluate:!0,elements:[b]}):c&&c.src&&(b.src=c.src)},x=function(a,b){return(getComputedStyle(a,null)||{})[b]},y=function(a,b,c){for(c=c||a.offsetWidth;cd&&(d=0),a||9>d&&m?i():k(i,d))}},C=function(a){var b,c,d=99,e=function(){b=null,a()},g=function(){var a=f.now()-c;d>a?k(g,d-a):(m||e)(e)};return function(){c=f.now(),b||(b=k(g,d))}};!function(){var b,c={lazyClass:\"lazyload\",loadedClass:\"lazyloaded\",loadingClass:\"lazyloading\",preloadClass:\"lazypreload\",errorClass:\"lazyerror\",autosizesClass:\"lazyautosizes\",srcAttr:\"data-src\",srcsetAttr:\"data-srcset\",sizesAttr:\"data-sizes\",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0,ricTimeout:300};d=a.lazySizesConfig||a.lazysizesConfig||{};for(b in c)b in d||(d[b]=c[b]);a.lazySizesConfig=d,k(function(){d.init&&F()})}();var D=function(){var g,l,m,o,p,y,D,F,G,H,I,J,K,L,M=/^img$/i,N=/^iframe$/i,O=\"onscroll\"in a&&!/glebot/.test(navigator.userAgent),P=0,Q=0,R=0,S=-1,T=function(a){R--,a&&a.target&&u(a.target,T),(!a||0>R||!a.target)&&(R=0)},U=function(a,c){var d,f=a,g=\"hidden\"==x(b.body,\"visibility\")||\"hidden\"!=x(a,\"visibility\");for(F-=c,I+=c,G-=c,H+=c;g&&(f=f.offsetParent)&&f!=b.body&&f!=e;)g=(x(f,\"opacity\")||1)>0,g&&\"visible\"!=x(f,\"overflow\")&&(d=f.getBoundingClientRect(),g=H>d.left&&Gd.top-1&&FR&&(a=r.length)){f=0,S++,null==K&&(\"expand\"in d||(d.expand=e.clientHeight>500&&e.clientWidth>500?500:370),J=d.expand,K=J*d.expFactor),K>Q&&1>R&&S>2&&o>2&&!b.hidden?(Q=K,S=0):Q=o>1&&S>1&&6>R?J:P;for(;a>f;f++)if(r[f]&&!r[f]._lazyRace)if(O)if((p=r[f][i](\"data-expand\"))&&(m=1*p)||(m=Q),q!==m&&(y=innerWidth+m*L,D=innerHeight+m,n=-1*m,q=m),h=r[f].getBoundingClientRect(),(I=h.bottom)>=n&&(F=h.top)<=D&&(H=h.right)>=n*L&&(G=h.left)<=y&&(I||H||G||F)&&(d.loadHidden||\"hidden\"!=x(r[f],\"visibility\"))&&(l&&3>R&&!p&&(3>o||4>S)||U(r[f],m))){if(ba(r[f]),k=!0,R>9)break}else!k&&l&&!j&&4>R&&4>S&&o>2&&(g[0]||d.preloadAfterLoad)&&(g[0]||!p&&(I||H||G||F||\"auto\"!=r[f][i](d.sizesAttr)))&&(j=g[0]||r[f]);else ba(r[f]);j&&!k&&ba(j)}},W=B(V),X=function(a){s(a.target,d.loadedClass),t(a.target,d.loadingClass),u(a.target,Z),v(a.target,\"lazyloaded\")},Y=A(X),Z=function(a){Y({target:a.target})},$=function(a,b){try{a.contentWindow.location.replace(b)}catch(c){a.src=b}},_=function(a){var b,c=a[i](d.srcsetAttr);(b=d.customMedia[a[i](\"data-media\")||a[i](\"media\")])&&a.setAttribute(\"media\",b),c&&a.setAttribute(\"srcset\",c)},aa=A(function(a,b,c,e,f){var g,h,j,l,o,p;(o=v(a,\"lazybeforeunveil\",b)).defaultPrevented||(e&&(c?s(a,d.autosizesClass):a.setAttribute(\"sizes\",e)),h=a[i](d.srcsetAttr),g=a[i](d.srcAttr),f&&(j=a.parentNode,l=j&&n.test(j.nodeName||\"\")),p=b.firesLoad||\"src\"in a&&(h||g||l),o={target:a},p&&(u(a,T,!0),clearTimeout(m),m=k(T,2500),s(a,d.loadingClass),u(a,Z,!0)),l&&q.call(j.getElementsByTagName(\"source\"),_),h?a.setAttribute(\"srcset\",h):g&&!l&&(N.test(a.nodeName)?$(a,g):a.src=g),f&&(h||l)&&w(a,{src:g})),a._lazyRace&&delete a._lazyRace,t(a,d.lazyClass),z(function(){(!p||a.complete&&a.naturalWidth>1)&&(p?T(o):R--,X(o))},!0)}),ba=function(a){var b,c=M.test(a.nodeName),e=c&&(a[i](d.sizesAttr)||a[i](\"sizes\")),f=\"auto\"==e;(!f&&l||!c||!a[i](\"src\")&&!a.srcset||a.complete||r(a,d.errorClass)||!r(a,d.lazyClass))&&(b=v(a,\"lazyunveilread\").detail,f&&E.updateElem(a,!0,a.offsetWidth),a._lazyRace=!0,R++,aa(a,b,f,e,c))},ca=function(){if(!l){if(f.now()-p<999)return void k(ca,999);var a=C(function(){d.loadMode=3,W()});l=!0,d.loadMode=3,W(),j(\"scroll\",function(){3==d.loadMode&&(d.loadMode=2),a()},!0)}};return{_:function(){p=f.now(),c.elements=b.getElementsByClassName(d.lazyClass),g=b.getElementsByClassName(d.lazyClass+\" \"+d.preloadClass),L=d.hFac,j(\"scroll\",W,!0),j(\"resize\",W,!0),a.MutationObserver?new MutationObserver(W).observe(e,{childList:!0,subtree:!0,attributes:!0}):(e[h](\"DOMNodeInserted\",W,!0),e[h](\"DOMAttrModified\",W,!0),setInterval(W,999)),j(\"hashchange\",W,!0),[\"focus\",\"mouseover\",\"click\",\"load\",\"transitionend\",\"animationend\",\"webkitAnimationEnd\"].forEach(function(a){b[h](a,W,!0)}),/d$|^c/.test(b.readyState)?ca():(j(\"load\",ca),b[h](\"DOMContentLoaded\",W),k(ca,2e4)),c.elements.length?(V(),z._lsFlush()):W()},checkElems:W,unveil:ba}}(),E=function(){var a,c=A(function(a,b,c,d){var e,f,g;if(a._lazysizesWidth=d,d+=\"px\",a.setAttribute(\"sizes\",d),n.test(b.nodeName||\"\"))for(e=b.getElementsByTagName(\"source\"),f=0,g=e.length;g>f;f++)e[f].setAttribute(\"sizes\",d);c.detail.dataAttr||w(a,c.detail)}),e=function(a,b,d){var e,f=a.parentNode;f&&(d=y(a,f,d),e=v(a,\"lazybeforesizes\",{width:d,dataAttr:!!b}),e.defaultPrevented||(d=e.detail.width,d&&d!==a._lazysizesWidth&&c(a,f,e,d)))},f=function(){var b,c=a.length;if(c)for(b=0;c>b;b++)e(a[b])},g=C(f);return{_:function(){a=b.getElementsByClassName(d.autosizesClass),j(\"resize\",g)},checkElems:g,updateElem:e}}(),F=function(){F.i||(F.i=!0,E._(),D._())};return c={cfg:d,autoSizer:E,loader:D,init:F,uP:w,aC:s,rC:t,hC:r,fire:v,gW:y,rAF:z}}});\n\n\n// WEBPACK FOOTER //\n// /Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/lazysizes/lazysizes.min.js","/*\n * Vide - v0.5.1\n * Easy as hell jQuery plugin for video backgrounds.\n * http://vodkabears.github.io/vide/\n *\n * Made by Ilya Makarov\n * Under MIT License\n */\n!function(a,b){\"function\"==typeof define&&define.amd?define([\"jquery\"],b):b(\"object\"==typeof exports?require(\"jquery\"):a.jQuery)}(this,function(a){\"use strict\";function b(a){var b,c,d,e,f,g,h,i={};for(f=a.replace(/\\s*:\\s*/g,\":\").replace(/\\s*,\\s*/g,\",\").split(\",\"),h=0,g=f.length;h').on(\"load\",d),a('').on(\"load\",d),a('').on(\"load\",d),a('').on(\"load\",d)}function e(c,d,e){if(this.$element=a(c),\"string\"==typeof d&&(d=b(d)),e?\"string\"==typeof e&&(e=b(e)):e={},\"string\"==typeof d)d=d.replace(/\\.\\w*$/,\"\");else if(\"object\"==typeof d)for(var f in d)d.hasOwnProperty(f)&&(d[f]=d[f].replace(/\\.\\w*$/,\"\"));this.settings=a.extend({},g,e),this.path=d;try{this.init()}catch(i){if(i.message!==h)throw i}}var f=\"vide\",g={volume:1,playbackRate:1,muted:!0,loop:!0,autoplay:!0,position:\"50% 50%\",posterType:\"detect\",resizing:!0,bgColor:\"transparent\",className:\"\"},h=\"Not implemented\";e.prototype.init=function(){var b,e,f=this,g=f.path,i=g,j=\"\",k=f.$element,l=f.settings,m=c(l.position),n=l.posterType;e=f.$wrapper=a(\"
\").addClass(l.className).css({position:\"absolute\",\"z-index\":-1,top:0,left:0,bottom:0,right:0,overflow:\"hidden\",\"-webkit-background-size\":\"cover\",\"-moz-background-size\":\"cover\",\"-o-background-size\":\"cover\",\"background-size\":\"cover\",\"background-color\":l.bgColor,\"background-repeat\":\"no-repeat\",\"background-position\":m.x+\" \"+m.y}),\"object\"==typeof g&&(g.poster?i=g.poster:g.mp4?i=g.mp4:g.webm?i=g.webm:g.ogv&&(i=g.ogv)),\"detect\"===n?d(i,function(a){e.css(\"background-image\",\"url(\"+a+\")\")}):\"none\"!==n&&e.css(\"background-image\",\"url(\"+i+\".\"+n+\")\"),\"static\"===k.css(\"position\")&&k.css(\"position\",\"relative\"),k.prepend(e),\"object\"==typeof g?(g.mp4&&(j+=''),g.webm&&(j+=''),g.ogv&&(j+=''),b=f.$video=a(\"\")):b=f.$video=a('');try{b.prop({autoplay:l.autoplay,loop:l.loop,volume:l.volume,muted:l.muted,defaultMuted:l.muted,playbackRate:l.playbackRate,defaultPlaybackRate:l.playbackRate})}catch(o){throw new Error(h)}b.css({margin:\"auto\",position:\"absolute\",\"z-index\":-1,top:m.y,left:m.x,\"-webkit-transform\":\"translate(-\"+m.x+\", -\"+m.y+\")\",\"-ms-transform\":\"translate(-\"+m.x+\", -\"+m.y+\")\",\"-moz-transform\":\"translate(-\"+m.x+\", -\"+m.y+\")\",transform:\"translate(-\"+m.x+\", -\"+m.y+\")\",visibility:\"hidden\",opacity:0}).one(\"canplaythrough.vide\",function(){f.resize()}).one(\"playing.vide\",function(){b.css({visibility:\"visible\",opacity:1}),e.css(\"background-image\",\"none\")}),k.on(\"resize.vide\",function(){l.resizing&&f.resize()}),e.append(b)},e.prototype.getVideoObject=function(){return this.$video[0]},e.prototype.resize=function(){if(this.$video){var a=this.$wrapper,b=this.$video,c=b[0],d=c.videoHeight,e=c.videoWidth,f=a.height(),g=a.width();g/e>f/d?b.css({width:g+2,height:\"auto\"}):b.css({width:\"auto\",height:f+2})}},e.prototype.destroy=function(){delete a[f].lookup[this.index],this.$video&&this.$video.off(f),this.$element.off(f).removeData(f),this.$wrapper.remove()},a[f]={lookup:[]},a.fn[f]=function(b,c){var d;return this.each(function(){d=a.data(this,f),d&&d.destroy(),d=new e(this,b,c),d.index=a[f].lookup.push(d)-1,a.data(this,f,d)}),this},a(document).ready(function(){var b=a(window);b.on(\"resize.vide\",function(){for(var b,c=a[f].lookup.length,d=0;d`)\n * @param {string} [event] Events on the route. By default, `init` and `finalize` events are called.\n * @param {string} [arg] Any custom argument to be passed to the event.\n */\n fire(route, event = 'init', arg) {\n const fire = route !== '' && this.routes[route] && typeof this.routes[route][event] === 'function';\n if (fire) {\n this.routes[route][event](arg);\n }\n }\n\n /**\n * Automatically load and fire Router events\n *\n * Events are fired in the following order:\n * * common init\n * * page-specific init\n * * page-specific finalize\n * * common finalize\n */\n loadEvents() {\n // Fire common init JS\n this.fire('common');\n\n // Fire page-specific init JS, and then finalize JS\n document.body.className\n .toLowerCase()\n .replace(/-/g, '_')\n .split(/\\s+/)\n .map(camelCase)\n .forEach((className) => {\n this.fire(className);\n this.fire(className, 'finalize');\n });\n\n // Fire common finalize JS\n this.fire('common', 'finalize');\n }\n}\n\nexport default Router\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/util/Router.js","/**\n * the most terrible camelizer on the internet, guaranteed!\n * @param {string} str String that isn't camel-case, e.g., CAMeL_CaSEiS-harD\n * @return {string} String converted to camel-case, e.g., camelCaseIsHard\n */\nexport default str => `${str.charAt(0).toLowerCase()}${str.replace(/[\\W_]/g, '|').split('|')\n .map(part => `${part.charAt(0).toUpperCase()}${part.slice(1)}`)\n .join('')\n .slice(1)}`;\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/util/camelCase.js","// Selective import syntax\n// import { TweenLite, TimelineLite, CSSPlugin } from 'gsap';\n// ES6 import syntax\nimport SlimSelect from 'slim-select';\nimport baguetteBox from 'baguettebox.js';\nimport GoogleMapsApi from '../leap/map/api';\nimport Map from '../leap/map/map';\nimport Accordion from '../leap/components/accordion';\nimport Gallery from '../leap/components/gallery';\nimport Slider from '../leap/components/slider';\nimport TestimonialSlider from '../leap/components/testimonial-slider';\nimport Flyout from '../leap/components/flyout';\nimport StickyHeader from '../leap/components/sticky-header';\nimport MobileNav from '../leap/components/nav';\nimport Magic from '../leap/tools/magic';\n// CommonJS / UMD import syntax\nimport * as hoverintent from 'hoverintent/dist/hoverintent.min';\nimport * as priorityNav from 'priority-nav/dist/priority-nav.min';\nimport * as pjax from 'jquery-pjax/jquery.pjax.js';\n\nexport default {\n init() {\n // JavaScript to be fired on all pages\n\n // Google Maps\n const gmapApi = new GoogleMapsApi();\n gmapApi.load().then(() => {\n const maps = document.querySelectorAll('.map');\n\n maps.forEach(map => {\n let gmap = new Map(map);\n });\n });\n\n window.onload = () => {\n const stickyHeader = new StickyHeader('.js-header');\n const greedyNav = priorityNav.init({\n mainNavWrapper: '.filter',\n mainNav: '.filter__options',\n breakPoint: 0,\n navDropdownLabel: '',\n });\n\n var heroVideo = $('.hero--video').vide($('.hero--video').data('video'), {\n volume: 0,\n playbackRate: 1,\n muted: true,\n loop: true,\n autoplay: true,\n position: '50% 50%', // Similar to the CSS `background-position` property.\n posterType: 'none', // Poster image type. \"detect\" — auto-detection; \"none\" — no poster; \"jpg\", \"png\", \"gif\",... - extensions.\n resizing: true, // Auto-resizing, read: https://github.com/VodkaBears/Vide#resizing\n bgColor: 'transparent', // Allow custom background-color for Vide div,\n className: 'hero__video', // Add custom CSS class to Vide div\n });\n if ($('.hero--video').length) {\n var resizeVideo = function() {\n heroVideo.resize();\n $('.hero--video').data('vide').getVideoObject().play();\n };\n requestAnimationFrame(resizeVideo);\n }\n\n // Accordions\n document.querySelectorAll('.accordion').forEach(accordion => {\n new Accordion(accordion);\n });\n\n // Galleries\n document.querySelectorAll('.gallery').forEach(gallery => {\n new Gallery(gallery);\n });\n\n // Sliders\n document.querySelectorAll('.slider').forEach(slider => {\n new Slider(slider);\n });\n\n document.querySelectorAll('.testimonials').forEach(slider => {\n new TestimonialSlider(slider);\n });\n\n if ($('.archive').length) {\n $('body').removeClass('nav-in-hero');\n $('body').addClass('nav-in-header');\n }\n\n // @TODO: Move to nav.js\n // @TODO: Add resize event for footer stuff\n function mobileNavInit() {\n function hideFooter(){\n $(\"#mobile-footer\").animate({\n opacity: 0,\n });\n }\n\n function showFooter(){\n setTimeout(function() {\n $(\"#mobile-footer\").animate({\n opacity: 1,\n });\n }, 700);\n }\n\n function adjustHeight(e) {\n $('#ml-menu').outerHeight($(e).outerHeight());\n }\n\n var menuEl = document.getElementById('ml-menu');\n\n var mlmenu = new MobileNav(menuEl, {\n breadcrumbsCtrl : false, // show breadcrumbs\n backCtrl : true, // show back button\n itemsDelayInterval : 90, // delay between each menu item sliding animation\n });\n\n // // TODO: Do this better\n $('.menu__level[data-menu=\"main\"] .menu__link[data-submenu]').on('click',function(){\n hideFooter();\n });\n\n $('.menu__back').on('click',function(){\n if($('[data-depth=\"1\"]').hasClass('menu__level--current')) {\n showFooter();\n }\n });\n\n adjustHeight('.menu__level');\n }\n\n mobileNavInit();\n }\n\n var menuFlyout = new Flyout('.nav--mobile', {\n trigger: '.js-nav-toggle',\n });\n\n if (document.querySelectorAll(\"[data-flyout='team']\").length) {\n var teamFlyout = new Flyout('.flyout--team', {\n triggerData: 'team',\n updateContent: true,\n });\n }\n\n baguetteBox.run('.js-baguette');\n },\n finalize() {\n // JavaScript to be fired on all pages, after page specific JS is fired\n document.querySelectorAll('.menu__item--has-children').forEach(item => {\n hoverintent(item, () => {\n item.classList.add('is-expanded');\n }, () => {\n item.classList.remove('is-expanded');\n }).options({\n timeout: 300,\n });\n });\n\n /* if ($('select').length) {\n const select = new SlimSelect({\n select: 'select',\n showSearch: false,\n showContent: 'down',\n });\n } */\n\n new Magic('.component');\n\n // Filter stuff\n var CategoryPjax = function(){\n var url = $(this).val();\n $.pjax({\n url: url,\n container: '.posts-container',\n fragment: '.posts-container',\n timeout: 30000,\n scrollTo: $('.page__header').offset().top,\n push: true,\n });\n };\n\n $(document).on('change', '#tax-selector', CategoryPjax);\n\n var PageNaviPjax = function(e) {\n e.preventDefault();\n var url = $(this).attr('href');\n\n $.pjax({\n url: url,\n container: '.posts-container',\n fragment: '.posts-container',\n timeout: 30000,\n scrollTo: $('.page__header').offset().top,\n push: true,\n });\n };\n\n $('.wp-pagenavi a').on('click', PageNaviPjax);\n\n $(document).on('pjax:complete', function() {\n $('.wp-pagenavi a').on('click', PageNaviPjax);\n $(document).on('change', '#tax-selector', CategoryPjax);\n });\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/routes/common.js","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.SlimSelect=t():e.SlimSelect=t()}(\"undefined\"!=typeof self?self:this,function(){return function(e){function t(n){if(i[n])return i[n].exports;var s=i[n]={i:n,l:!1,exports:{}};return e[n].call(s.exports,s,s.exports,t),s.l=!0,s.exports}var i={};return t.m=e,t.c=i,t.d=function(e,i,n){t.o(e,i)||Object.defineProperty(e,i,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var i=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(i,\"a\",i),i},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\"/\",t(t.s=2)}([function(e,t,i){\"use strict\";function n(e,t){function i(e,t){return t&&e&&e.classList&&e.classList.contains(t)?e:null}function n(e,t){return e&&e!==document?i(e,t)?e:n(e.parentNode,t):null}return i(e,t)||n(e,t)}function s(e,t){var i=e.scrollTop+e.offsetTop,n=i+e.clientHeight,s=t.offsetTop,a=s+t.clientHeight;sn&&(e.scrollTop+=a-n)}function a(e,t,i){var n=e.offsetHeight,s=e.getBoundingClientRect(),a=i?s.top:s.top-n,o=i?s.bottom:s.bottom+n;return a<=0?\"below\":o>=window.innerHeight?\"above\":i?t:\"below\"}function o(e,t,i){void 0===t&&(t=100),void 0===i&&(i=!1);var n;return function(){var s=this,a=arguments,o=function(){n=null,i||e.apply(s,a)},l=i&&!n;clearTimeout(n),n=setTimeout(o,t),l&&e.apply(s,a)}}function l(e,t,i){if(!Array.isArray(e))return e[t]===i;for(var n=0;n=0&&(e=e.substring(0,s)+''+e.substring(s,s+t.length)+\"\"+e.substring(s+t.length)),e}t.__esModule=!0,t.hasClassInTree=n,t.ensureElementInView=s,t.putContent=a,t.debounce=o,t.isValueInArrayOfObjects=l,t.highlight=r},function(e,t,i){\"use strict\";function n(e){if(!e)return void console.error(\"Data must be an array of objects\");for(var t=!1,i=0,n=0;n0,l=function(){return t.stopPropagation(),t.preventDefault(),t.returnValue=!1,!1};return!o&&-a>n-s-i?(e.scrollTop=n,l()):o&&a>i?(e.scrollTop=0,l()):void 0},e},e.prototype.options=function(e){void 0===e&&(e=\"\");var t=this.main.data.filtered||this.main.data.data;if(this.list.innerHTML=\"\",\"\"!==e){var i=document.createElement(\"div\");return i.classList.add(this.main.config.option),i.classList.add(this.main.config.disabled),i.innerHTML=e,void this.list.appendChild(i)}if(this.main.config.isAjax&&this.main.config.isSearching){var i=document.createElement(\"div\");return i.classList.add(this.main.config.option),i.classList.add(this.main.config.disabled),i.innerHTML=\"Searching...\",void this.list.appendChild(i)}if(0===t.length){var n=document.createElement(\"div\");return n.classList.add(this.main.config.option),n.classList.add(this.main.config.disabled),n.innerHTML=this.main.config.searchText,void this.list.appendChild(n)}for(var s=0;s1&&(p.multitouch=!0),p.startX=e.changedTouches[0].pageX,p.startY=e.changedTouches[0].pageY},B=function(e){if(!b&&!p.multitouch){e.preventDefault?e.preventDefault():e.returnValue=!1;var t=e.touches[0]||e.changedTouches[0];t.pageX-p.startX>40?(b=!0,q()):t.pageX-p.startX<-40?(b=!0,j()):p.startY-t.pageY>100&&I()}},T=function(){p.count--,p.count<=0&&(p.multitouch=!1),b=!1},N=function(){T()},L=function(t){\"block\"===e.style.display&&e.contains&&!e.contains(t.target)&&(t.stopPropagation(),H())};function A(e){if(v.hasOwnProperty(e)){var t=v[e].galleries;[].forEach.call(t,function(e){[].forEach.call(e,function(e){V(e.imageElement,\"click\",e.eventHandler)}),d===e&&(d=[])}),delete v[e]}}function P(e){switch(e.keyCode){case 37:q();break;case 39:j();break;case 27:I()}}function S(i,a){if(d!==i){for(d=i,function(i){i||(i={});for(var a in u)r[a]=u[a],\"undefined\"!=typeof i[a]&&(r[a]=i[a]);t.style.transition=t.style.webkitTransition=\"fadeIn\"===r.animation?\"opacity .4s ease\":\"slideIn\"===r.animation?\"\":\"none\",\"auto\"===r.buttons&&(\"ontouchstart\"in window||1===d.length)&&(r.buttons=!1);n.style.display=o.style.display=r.buttons?\"\":\"none\";try{e.style.backgroundColor=r.overlayBackgroundColor}catch(s){}}(a);t.firstChild;)t.removeChild(t.firstChild);h.length=0;for(var s,l=[],c=[],f=0;f
',r.captions&&s){var c=W(\"figcaption\");c.id=\"baguetteBox-figcaption-\"+e,c.innerHTML=s,u.appendChild(c)}n.appendChild(u);var f=W(\"img\");f.onload=function(){var n=document.querySelector(\"#baguette-img-\"+e+\" .baguetteBox-spinner\");u.removeChild(n),!r.async&&t&&t()},f.setAttribute(\"src\",l),f.alt=a&&a.alt||\"\",r.titleTag&&s&&(f.title=s),u.appendChild(f),r.async&&t&&t()}}function j(){return X(f+1)}function q(){return X(f-1)}function X(e,t){return!g&&e>=0&&e=h.length?(r.animation&&M(\"right\"),!1):(Y(f=e,function(){R(f),z(f)}),O(),r.onChange&&r.onChange(f,h.length),!0)}function M(e){t.className=\"bounce-from-\"+e,setTimeout(function(){t.className=\"\"},400)}function O(){var e=100*-f+\"%\";\"fadeIn\"===r.animation?(t.style.opacity=0,setTimeout(function(){c.transforms?t.style.transform=t.style.webkitTransform=\"translate3d(\"+e+\",0,0)\":t.style.left=e,t.style.opacity=1},400)):c.transforms?t.style.transform=t.style.webkitTransform=\"translate3d(\"+e+\",0,0)\":t.style.left=e}function R(e){e-f>=r.preload||Y(e+1,function(){R(e+1)})}function z(e){f-e>=r.preload||Y(e-1,function(){z(e-1)})}function D(e,t,n,o){e.addEventListener?e.addEventListener(t,n,o):e.attachEvent(\"on\"+t,function(e){(e=e||window.event).target=e.target||e.srcElement,n(e)})}function V(e,t,n,o){e.removeEventListener?e.removeEventListener(t,n,o):e.detachEvent(\"on\"+t,n)}function U(e){return document.getElementById(e)}function W(e){return document.createElement(e)}return[].forEach||(Array.prototype.forEach=function(e,t){for(var n=0;n\",\"http://www.w3.org/2000/svg\"===(f.firstChild&&f.firstChild.namespaceURI)),c.passiveEvents=function(){var e=!1;try{var t=Object.defineProperty({},\"passive\",{get:function(){e=!0}});window.addEventListener(\"test\",null,t)}catch(n){}return e}(),function(){if(e=U(\"baguetteBox-overlay\"))return t=U(\"baguetteBox-slider\"),n=U(\"previous-button\"),o=U(\"next-button\"),void(i=U(\"close-button\"));var r;(e=W(\"div\")).setAttribute(\"role\",\"dialog\"),e.id=\"baguetteBox-overlay\",document.getElementsByTagName(\"body\")[0].appendChild(e),(t=W(\"div\")).id=\"baguetteBox-slider\",e.appendChild(t),(n=W(\"button\")).setAttribute(\"type\",\"button\"),n.id=\"previous-button\",n.setAttribute(\"aria-label\",\"Previous\"),n.innerHTML=c.svg?a:\"<\",e.appendChild(n),(o=W(\"button\")).setAttribute(\"type\",\"button\"),o.id=\"next-button\",o.setAttribute(\"aria-label\",\"Next\"),o.innerHTML=c.svg?s:\">\",e.appendChild(o),(i=W(\"button\")).setAttribute(\"type\",\"button\"),i.id=\"close-button\",i.setAttribute(\"aria-label\",\"Close\"),i.innerHTML=c.svg?l:\"×\",e.appendChild(i),n.className=o.className=i.className=\"baguetteBox-button\",r=c.passiveEvents?{passive:!0}:null,D(e,\"click\",w),D(n,\"click\",k),D(o,\"click\",x),D(i,\"click\",C),D(t,\"contextmenu\",N),D(e,\"touchstart\",E,r),D(e,\"touchmove\",B,r),D(e,\"touchend\",T),D(document,\"focus\",L,!0)}(),A(r),g=r,p=u,b=document.querySelectorAll(g),h={galleries:[],nodeList:b},v[g]=h,[].forEach.call(b,function(e){p&&p.filter&&(m=p.filter);var t=[];if(t=\"A\"===e.tagName?[e]:e.getElementsByTagName(\"a\"),0!==(t=[].filter.call(t,function(e){if(-1===e.className.indexOf(p&&p.ignoreClass))return m.test(e.href)})).length){var n=[];[].forEach.call(t,function(e,t){var o=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1,S(n,p),F(t)},i={eventHandler:o,imageElement:e};D(e,\"click\",o),n.push(i)}),h.galleries.push(n)}}),h.galleries},show:X,showNext:j,showPrevious:q,hide:I,destroy:function(){var a;a=c.passiveEvents?{passive:!0}:null,V(e,\"click\",w),V(n,\"click\",k),V(o,\"click\",x),V(i,\"click\",C),V(t,\"contextmenu\",N),V(e,\"touchstart\",E,a),V(e,\"touchmove\",B,a),V(e,\"touchend\",T),V(document,\"focus\",L,!0),function(){for(var e in v)v.hasOwnProperty(e)&&A(e)}(),V(document,\"keydown\",P),document.getElementsByTagName(\"body\")[0].removeChild(document.getElementById(\"baguetteBox-overlay\")),v={},d=[],f=0}}});\n\n\n// WEBPACK FOOTER //\n// /Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/baguettebox.js/dist/baguetteBox.min.js","/**\n * Use this class to ensure Google Maps API javascript is loaded before running any google map specific code.\n */\nclass GoogleMapsApi {\n /**\n * Constructor set up config.\n */\n constructor() {\n // api key for google maps\n this.apiKey = GOOGLE_API_KEY;\n\n // set a globally scoped callback if it doesn't already exist\n if (!window._GoogleMapsApi) {\n this.callbackName = '_GoogleMapsApi.mapLoaded';\n window._GoogleMapsApi = this;\n window._GoogleMapsApi.mapLoaded = this.mapLoaded.bind(this);\n }\n }\n\n /**\n * Load the Google Maps API javascript\n */\n load() {\n if (!this.promise) {\n this.promise = new Promise(resolve => {\n this.resolve = resolve;\n if (typeof window.google === 'undefined') {\n const script = document.createElement('script');\n script.src = `//maps.googleapis.com/maps/api/js?v=3.exp&key=${this.apiKey}&callback=${this.callbackName}`;\n script.async = true;\n document.body.append(script);\n } else {\n this.resolve();\n }\n });\n }\n\n return this.promise;\n }\n\n /**\n * Globally scoped callback for the map loaded\n */\n mapLoaded() {\n if (this.resolve) {\n this.resolve();\n }\n }\n}\n\nexport default GoogleMapsApi;\n\n\n// WEBPACK FOOTER //\n// ./scripts/leap/map/api.js","// @TODO: Add comments\nclass Map {\n constructor(component, zoom = 13) {\n this.component = component;\n this.mapElement = this.component.querySelector('.map__canvas');\n this.address = this.mapElement.dataset.address;\n this.lat = (this.mapElement.dataset.lat ? this.mapElement.dataset.lat : 48.432562);\n this.lng = (this.mapElement.dataset.lng ? this.mapElement.dataset.lng : -123.367408);\n this.info = {\n heading: this.mapElement.dataset.heading,\n content: this.mapElement.dataset.content,\n image : this.mapElement.dataset.image,\n }\n\n this.options = {\n zoom: zoom,\n center: new google.maps.LatLng(this.lat, this.lng),\n panControl: false,\n zoomControl: true,\n scaleControl: false,\n scrollwheel: false,\n styles: [{\"featureType\":\"water\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#e9e9e9\"},{\"lightness\":17}]},{\"featureType\":\"landscape\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#f5f5f5\"},{\"lightness\":20}]},{\"featureType\":\"road.highway\",\"elementType\":\"geometry.fill\",\"stylers\":[{\"color\":\"#ffffff\"},{\"lightness\":17}]},{\"featureType\":\"road.highway\",\"elementType\":\"geometry.stroke\",\"stylers\":[{\"color\":\"#ffffff\"},{\"lightness\":29},{\"weight\":0.2}]},{\"featureType\":\"road.arterial\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#ffffff\"},{\"lightness\":18}]},{\"featureType\":\"road.local\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#ffffff\"},{\"lightness\":16}]},{\"featureType\":\"poi\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#f5f5f5\"},{\"lightness\":21}]},{\"featureType\":\"poi.park\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#dedede\"},{\"lightness\":21}]},{\"elementType\":\"labels.text.stroke\",\"stylers\":[{\"visibility\":\"on\"},{\"color\":\"#ffffff\"},{\"lightness\":16}]},{\"elementType\":\"labels.text.fill\",\"stylers\":[{\"saturation\":36},{\"color\":\"#333333\"},{\"lightness\":40}]},{\"elementType\":\"labels.icon\",\"stylers\":[{\"visibility\":\"off\"}]},{\"featureType\":\"transit\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#f2f2f2\"},{\"lightness\":19}]},{\"featureType\":\"administrative\",\"elementType\":\"geometry.fill\",\"stylers\":[{\"color\":\"#fefefe\"},{\"lightness\":20}]},{\"featureType\":\"administrative\",\"elementType\":\"geometry.stroke\",\"stylers\":[{\"color\":\"#fefefe\"},{\"lightness\":17},{\"weight\":1.2}]}],\n }\n\n this.map = new google.maps.Map(this.mapElement, this.options);\n this.pins = this.component.querySelectorAll('.map__pin.is-active');\n this.center = this.map.getCenter();\n this.positions = [];\n this.markers = [];\n this.infoWindow = new google.maps.InfoWindow({\n content: this.infoBox(),\n size: new google.maps.Size(150, 50),\n });\n\n this.addPrimaryMarker();\n this.addAllMarkers();\n\n google.maps.event.addDomListener(window, 'resize', () => {\n this.map.setCenter(this.center);\n });\n\n google.maps.event.addDomListener(window, 'orientationchange', () => {\n this.map.setCenter(this.center);\n });\n\n google.maps.event.addListener(this.map, 'zoom_changed', () => {\n setTimeout(() => {\n var cnt = this.map.getCenter();\n cnt.e+=0.000001;\n this.map.panTo(cnt);\n cnt.e-=0.000001;\n this.map.panTo(cnt);\n }, 100);\n });\n\n let pinFilters = this.component.querySelectorAll('.legend__pin');\n\n pinFilters.forEach(filter => {\n filter.onclick = (e) => {\n let pins = this.component.querySelectorAll('.map__pin');\n\n pinFilters.forEach(filter => {\n filter.classList.remove('is-active');\n });\n\n e.target.classList.add('is-active');\n\n if (e.target.dataset.cat === 'all') {\n pins.forEach(pin => {\n pin.classList.add('is-active');\n });\n } else {\n pins.forEach(pin => {\n pin.classList.remove('is-active');\n });\n\n this.component.querySelectorAll(`.map__pin[data-cat=${e.target.dataset.cat}]`).forEach(pin => {\n pin.classList.add('is-active')\n });\n }\n\n this.setMapOnAll();\n }\n });\n }\n \n infoBox(info = this.info, address = this.address) {\n let content = '';\n\n if (this.address) {\n content += '
';\n content += (info.image ? `
` : '');\n content += `

${info.heading}

`;\n content += `${info.content}`;\n content += `${address}`;\n content += `View Larger`\n content += '
';\n }\n\n return content;\n }\n\n resetCenter() {\n let bounds = new google.maps.LatLngBounds();\n\n this.positions.forEach(position => {\n bounds.extend(position);\n });\n\n google.maps.event.addListener(this.map, 'zoom_changed', () => {\n let boundsListener = google.maps.event.addListener(this.map, 'bounds_changed', () => {\n if (this.map.getZoom() > this.zoom && this.map.initialZoom === true) {\n this.map.setZoom(this.zoom);\n this.map.initialZoom = false;\n }\n google.maps.event.removeListener(boundsListener);\n });\n });\n\n this.map.initialZoom = true;\n this.map.fitBounds(bounds);\n // this.map.setCenter(bounds.getCenter());\n\n this.center = this.map.getCenter();\n }\n\n addMarker(latLng, icon, infoWindow) {\n let marker = new google.maps.Marker({\n position: latLng,\n map: this.map,\n icon: icon,\n animation: google.maps.Animation.DROP,\n });\n\n google.maps.event.addListener(marker, 'click', (marker => {\n return () => {\n this.infoWindow.setContent(infoWindow);\n this.infoWindow.open(this.map, marker);\n }\n })(marker));\n\n return marker;\n }\n\n addMarkerWithTimeout(pin, timeout) {\n let pinLatLng = new google.maps.LatLng(pin.dataset.lat, pin.dataset.lng);\n this.positions.push(pinLatLng);\n\n setTimeout(() => {\n let icon = {};\n\n if (pin.dataset.icon) {\n icon = {\n url: pin.dataset.icon,\n size: new google.maps.Size(32, 32),\n scaledSize: new google.maps.Size(24, 24),\n origin: new google.maps.Point(0, 0),\n anchor: new google.maps.Point(12, 12),\n };\n } else {\n icon = {\n path: google.maps.SymbolPath.CIRCLE,\n fillColor: pin.dataset.color,\n fillOpacity: 1,\n scale: 9,\n strokeWeight: 2,\n strokeColor: '#ffffff',\n };\n }\n\n let infoWindow = this.infoBox({\n heading: pin.dataset.heading,\n content: pin.dataset.content,\n image: pin.dataset.image,\n }, pin.dataset.address);\n\n let marker = this.addMarker(pinLatLng, icon, infoWindow);\n \n this.markers.push(marker);\n }, timeout);\n }\n\n addPrimaryMarker() {\n let icon = {\n path: 'M19.4,0C8.7,0,0,8.7,0,19.4c0,14.9,19.4,32.8,19.4,39.2c-0.1-6.3,19.4-24.4,19.4-39.2C38.7,8.7,30,0,19.4,0z M19.4,27.1c-4.1,0-7.3-3.3-7.3-7.3c0-4.1,3.3-7.3,7.3-7.3c4.1,0,7.3,3.3,7.3,7.3C26.7,23.9,23.4,27.1,19.4,27.1z',\n fillColor: '#82c341',\n fillOpacity: 1,\n scale: 1,\n strokeWeight: 0,\n size: new google.maps.Size(11, 22),\n origin: new google.maps.Point(0, 0),\n anchor: new google.maps.Point(20, 50),\n };\n\n /**\n * If you need to use an image\n * Must know the size of the image, and then scale that image down for retina use\n */\n // var icon = {\n // url:'PATH TO PIN',\n // size: new google.maps.Size(47,80),\n // scaledSize: new google.maps.Size(31.333333333, 53.333333333),\n // origin: new google.maps.Point(0, 0),\n // anchor: new google.maps.Point(15.66665, 26.66665)\n // };\n this.positions.push(this.options.center);\n\n this.primaryMarker = this.addMarker(this.options.center, icon, this.infoBox());\n this.markers.push(this.primaryMarker);\n }\n\n addAllMarkers() {\n let timeout = 0;\n\n this.pins.forEach(pin => {\n if (!pin.dataset.lat || !pin.dataset.lng) {\n return;\n }\n\n this.addMarkerWithTimeout(pin, timeout);\n timeout += 5;\n });\n }\n\n clearAllMarkers() {\n this.markers.forEach(marker => {\n if (marker !== this.primaryMarker) {\n marker.setMap(null);\n }\n });\n\n this.positions = [];\n this.markers = [];\n\n this.positions.push(this.primaryMarker.position);\n this.markers.push(this.primaryMarker);\n }\n\n setMapOnAll() {\n this.clearAllMarkers();\n\n this.pins = this.component.querySelectorAll('.map__pin.is-active');\n this.addAllMarkers();\n this.resetCenter();\n }\n}\n\nexport default Map;\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/leap/map/map.js","class Accordion {\n // constructor(component) {\n // let items = component.querySelectorAll('.accordion__item');\n \n // items.forEach(item => {\n // let content = item.querySelector('.accordion__content');\n // content.setAttribute('data-height', content.offsetHeight);\n // content.style.height = 0;\n\n // item.querySelector('.js-accordion__toggle').onclick = () => {\n // let isActive = (item.classList.contains('is-active'));\n \n // // Collapse active siblings and set to inactive\n // component.querySelectorAll('.accordion__item.is-active').forEach(item => {\n // let content = item.querySelector('.accordion__content');\n\n // TweenLite.to(content, 0.6, {\n // ease: Circ.easeOut,\n // height: 0,\n // });\n // item.classList.remove('is-active');\n // });\n\n // if (!isActive) {\n // TweenLite.to(content, 0.6, {\n // ease: Circ.easeOut,\n // height: content.getAttribute('data-height'),\n // });\n // item.classList.add('is-active');\n // }\n // }\n // });\n // }\n\n constructor(component) { \n $(component).find('.accordion__item').each(function() {\n let $item = $(this);\n\n $(this).find('.js-accordion__toggle').on('click', function() {\n // Collapse active siblings and set to inactive\n $(component).find('.accordion__item.is-active').not($item).each(function() {\n $(this).find('.accordion__content').slideToggle();\n $(this).removeClass('is-active');\n });\n\n $item.find('.accordion__content').slideToggle();\n $item.toggleClass('is-active');\n });\n });\n }\n}\n\nexport default Accordion;\n\n\n// WEBPACK FOOTER //\n// ./scripts/leap/components/accordion.js","// import { debounce, throttle } from '../utilities';\n\nclass Gallery {\n constructor(component) {\n this.component = component;\n this.max = component.dataset.max;\n this.visible = \"\";\n this.imageElement = component.querySelector('.gallery__image');\n this.extra = 0;\n this.columns;\n this.total = component.dataset.total;\n\n this.setLayout();\n // @TODO: Check performance\n window.addEventListener('resize', e => {\n this.setLayout();\n });\n // window.addEventListener('resize', debounce((e) => {\n // this.setLayout();\n // }, 100));\n }\n\n setLayout() {\n /*this.updateColumns();\n\n switch(this.columns) {\n case 2:\n this.visible = 6;\n break;\n default:\n this.visible = this.columns * 2;\n }\n\n this.component.dataset.visible = this.visible;*/ \n\n this.setExtra();\n }\n\n setExtra() {\n this.extra = this.total - this.max;\n\n if (this.extra > 0) {\n this.component.querySelector('.gallery__more').classList.remove('u-hidden');\n } else {\n this.component.querySelector('.gallery__more').classList.add('u-hidden');\n }\n\n this.component.querySelector('.gallery__extra').innerHTML = this.extra + '+';\n }\n\n updateColumns() {\n this.columns = parseInt(window.getComputedStyle(this.imageElement).getPropertyValue('--columns'));\n }\n}\n\nexport default Gallery;\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/leap/components/gallery.js","import Swiper from 'swiper';\n\nclass Slider {\n constructor(component) {\n this.params = {\n direction: 'horizontal',\n loop: component.dataset.loop,\n slidesPerView: 'auto',\n speed: 600,\n initialSlide: 1,\n paginationClickable: true,\n //spaceBetween: 16,\n pagination: {\n el: '.slider__pagination',\n type: 'bullets',\n bulletClass: 'slider__bullet',\n bulletActiveClass: 'is-active',\n clickable: 'true',\n },\n navigation: {\n nextEl: component.querySelector('.slider__navigation--next'),\n prevEl: component.querySelector('.slider__navigation--previous'),\n },\n centeredSlides: true,\n //effect: 'coverflow',\n grabCursor: true,\n /* coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n modifier: 1,\n slideShadows : true,\n }, */\n };\n\n /* if (component.dataset.preview) {\n this.params.breakpoints = {\n 1199: {\n centeredSlides: true,\n },\n }\n }\n\n if (component.dataset.pagination) {\n this.params.pagination = {\n // @TODO: Update to use BEM\n el: component.querySelector('.slider__pagination'),\n clickable: true,\n bulletClass: 'slider__bullet',\n bulletActiveClass: 'is-active',\n };\n }\n\n if (component.dataset.autoplay) {\n this.params.autoplay = component.dataset.autoplay;\n }\n\n if (component.dataset.navigation) {\n this.params.navigation = {\n nextEl: component.querySelector('.slider__navigation--next'),\n prevEl: component.querySelector('.slider__navigation--previous'),\n }\n }\n\n if (component.dataset.visibleSlides > 1 && !component.dataset.preview) {\n this.params.breakpoints = {\n 599: {\n slidesPerView: 1,\n },\n };\n\n if (component.dataset.visibleSlides > 2) {\n this.params.breakpoints['899'] = {\n slidesPerView: 2,\n };\n }\n\n if (component.dataset.visibleSlides > 3) {\n this.params.breakpoints['1199'] = {\n slidesPerView: 3,\n };\n }\n } */\n\n this.swiper = new Swiper(component.querySelectorAll('.swiper-container'), this.params);\n }\n}\n\nexport default Slider;\n\n\n// WEBPACK FOOTER //\n// ./scripts/leap/components/slider.js","/**\n * Dom7 2.0.3\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * http://framework7.io/docs/dom.html\n *\n * Copyright 2018, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n *\n * Licensed under MIT\n *\n * Released on: February 21, 2018\n */\nimport { document, window } from 'ssr-window';\n\nclass Dom7 {\n constructor(arr) {\n const self = this;\n // Create array-like object\n for (let i = 0; i < arr.length; i += 1) {\n self[i] = arr[i];\n }\n self.length = arr.length;\n // Return collection with methods\n return this;\n }\n}\n\nfunction $(selector, context) {\n const arr = [];\n let i = 0;\n if (selector && !context) {\n if (selector instanceof Dom7) {\n return selector;\n }\n }\n if (selector) {\n // String\n if (typeof selector === 'string') {\n let els;\n let tempParent;\n const html = selector.trim();\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(':~]/)) {\n // Pure ID selector\n els = [document.getElementById(selector.trim().split('#')[1])];\n } else {\n // Other selectors\n els = (context || document).querySelectorAll(selector.trim());\n }\n for (i = 0; i < els.length; i += 1) {\n if (els[i]) arr.push(els[i]);\n }\n }\n } else if (selector.nodeType || selector === window || selector === document) {\n // Node/element\n arr.push(selector);\n } else if (selector.length > 0 && selector[0].nodeType) {\n // Array of elements or instance of Dom\n for (i = 0; i < selector.length; i += 1) {\n arr.push(selector[i]);\n }\n }\n }\n return new Dom7(arr);\n}\n\n$.fn = Dom7.prototype;\n$.Class = Dom7;\n$.Dom7 = Dom7;\n\nfunction unique(arr) {\n const uniqueArray = [];\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group1) => group1.toUpperCase());\n}\n\nfunction requestAnimationFrame(callback) {\n if (window.requestAnimationFrame) return window.requestAnimationFrame(callback);\n else if (window.webkitRequestAnimationFrame) return window.webkitRequestAnimationFrame(callback);\n return window.setTimeout(callback, 1000 / 60);\n}\nfunction cancelAnimationFrame(id) {\n if (window.cancelAnimationFrame) return window.cancelAnimationFrame(id);\n else if (window.webkitCancelAnimationFrame) return window.webkitCancelAnimationFrame(id);\n return window.clearTimeout(id);\n}\n\n// Classes and attributes\nfunction addClass(className) {\n if (typeof className === 'undefined') {\n return this;\n }\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j].classList !== 'undefined') this[j].classList.add(classes[i]);\n }\n }\n return this;\n}\nfunction removeClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j].classList !== 'undefined') this[j].classList.remove(classes[i]);\n }\n }\n return this;\n}\nfunction hasClass(className) {\n if (!this[0]) return false;\n return this[0].classList.contains(className);\n}\nfunction toggleClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j].classList !== 'undefined') this[j].classList.toggle(classes[i]);\n }\n }\n return this;\n}\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n }\n\n // Set attrs\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n // eslint-disable-next-line\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n return this;\n}\n// eslint-disable-next-line\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n // eslint-disable-next-line\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n return this;\n }\n}\nfunction data(key, value) {\n let el;\n if (typeof value === 'undefined') {\n el = this[0];\n // Get value\n if (el) {\n if (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n if (dataKey) {\n return dataKey;\n }\n return undefined;\n }\n return undefined;\n }\n\n // Set value\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n return this;\n}\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n if (el.dataset) {\n // eslint-disable-next-line\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n // eslint-disable-next-line\n const attr = el.attributes[i];\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n // eslint-disable-next-line\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;\n else if (dataset[key] === 'true') dataset[key] = true;\n else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n return dataset;\n}\nfunction val(value) {\n if (typeof value === 'undefined') {\n if (this[0]) {\n if (this[0].multiple && this[0].nodeName.toLowerCase() === 'select') {\n const values = [];\n for (let i = 0; i < this[0].selectedOptions.length; i += 1) {\n values.push(this[0].selectedOptions[i].value);\n }\n return values;\n }\n return this[0].value;\n }\n return undefined;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].value = value;\n }\n return this;\n}\n// Transforms\n// eslint-disable-next-line\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransform = transform;\n elStyle.transform = transform;\n }\n return this;\n}\nfunction transition(duration) {\n if (typeof duration !== 'string') {\n duration = `${duration}ms`; // eslint-disable-line\n }\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransitionDuration = duration;\n elStyle.transitionDuration = duration;\n }\n return this;\n}\n// Events\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n eventData.unshift(e);\n if ($(target).is(targetSelector)) listener.apply(target, eventData);\n else {\n const parents = $(target).parents(); // eslint-disable-line\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n eventData.unshift(e);\n listener.apply(this, eventData);\n }\n const events = eventType.split(' ');\n let j;\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n if (!el.dom7Listeners) el.dom7Listeners = [];\n el.dom7Listeners.push({\n type: eventType,\n listener,\n proxyListener: handleEvent,\n });\n el.addEventListener(events[j], handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n if (!el.dom7LiveListeners) el.dom7LiveListeners = [];\n el.dom7LiveListeners.push({\n type: eventType,\n listener,\n proxyListener: handleLiveEvent,\n });\n el.addEventListener(events[j], handleLiveEvent, capture);\n }\n }\n }\n return this;\n}\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n\n const events = eventType.split(' ');\n for (let i = 0; i < events.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n if (!targetSelector) {\n if (el.dom7Listeners) {\n for (let k = 0; k < el.dom7Listeners.length; k += 1) {\n if (listener) {\n if (el.dom7Listeners[k].listener === listener) {\n el.removeEventListener(events[i], el.dom7Listeners[k].proxyListener, capture);\n }\n } else if (el.dom7Listeners[k].type === events[i]) {\n el.removeEventListener(events[i], el.dom7Listeners[k].proxyListener, capture);\n }\n }\n }\n } else if (el.dom7LiveListeners) {\n for (let k = 0; k < el.dom7LiveListeners.length; k += 1) {\n if (listener) {\n if (el.dom7LiveListeners[k].listener === listener) {\n el.removeEventListener(events[i], el.dom7LiveListeners[k].proxyListener, capture);\n }\n } else if (el.dom7LiveListeners[k].type === events[i]) {\n el.removeEventListener(events[i], el.dom7LiveListeners[k].proxyListener, capture);\n }\n }\n }\n }\n }\n return this;\n}\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n function proxy(e) {\n const eventData = e.target.dom7EventData || [];\n listener.apply(this, eventData);\n dom.off(eventName, targetSelector, proxy, capture);\n }\n return dom.on(eventName, targetSelector, proxy, capture);\n}\nfunction trigger(...args) {\n const events = args[0].split(' ');\n const eventData = args[1];\n for (let i = 0; i < events.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n let evt;\n try {\n evt = new window.CustomEvent(events[i], {\n detail: eventData,\n bubbles: true,\n cancelable: true,\n });\n } catch (e) {\n evt = document.createEvent('Event');\n evt.initEvent(events[i], true, true);\n evt.detail = eventData;\n }\n // eslint-disable-next-line\n this[j].dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n this[j].dispatchEvent(evt);\n this[j].dom7EventData = [];\n delete this[j].dom7EventData;\n }\n }\n return this;\n}\nfunction transitionEnd(callback) {\n const events = ['webkitTransitionEnd', 'transitionend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n /* jshint validthis:true */\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\nfunction animationEnd(callback) {\n const events = ['webkitAnimationEnd', 'animationend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\n// Sizing/Styles\nfunction width() {\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n return this[0].offsetWidth;\n }\n return null;\n}\nfunction height() {\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n return this[0].offsetHeight;\n }\n return null;\n}\nfunction offset() {\n if (this.length > 0) {\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: (box.top + scrollTop) - clientTop,\n left: (box.left + scrollLeft) - clientLeft,\n };\n }\n\n return null;\n}\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n return this;\n}\nfunction show() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n return this;\n}\nfunction styles() {\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\nfunction css(props, value) {\n let i;\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n for (i = 0; i < this.length; i += 1) {\n // eslint-disable-next-line\n for (let prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n return this;\n }\n }\n if (arguments.length === 2 && typeof props === 'string') {\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n return this;\n }\n return this;\n}\n\n// Dom manipulation\nfunction toArray() {\n const arr = [];\n for (let i = 0; i < this.length; i += 1) {\n arr.push(this[i]);\n }\n return arr;\n}\n// Iterate over the collection passing elements to `callback`\nfunction each(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], i, this[i]) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction forEach(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], this[i], i) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction filter(callback) {\n const matchedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n if (callback.call(dom[i], i, dom[i])) matchedItems.push(dom[i]);\n }\n return new Dom7(matchedItems);\n}\nfunction map(callback) {\n const modifiedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n modifiedItems.push(callback.call(dom[i], i, dom[i]));\n }\n return new Dom7(modifiedItems);\n}\n// eslint-disable-next-line\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : undefined;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n return this;\n}\n// eslint-disable-next-line\nfunction text(text) {\n if (typeof text === 'undefined') {\n if (this[0]) {\n return this[0].textContent.trim();\n }\n return null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n return this;\n}\nfunction is(selector) {\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n else if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n else if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n\n compareWith = $(selector);\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n } else if (selector === document) return el === document;\n else if (selector === window) return el === window;\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n }\n return false;\n}\nfunction indexOf(el) {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i] === el) return i;\n }\n return -1;\n}\nfunction index() {\n let child = this[0];\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\n// eslint-disable-next-line\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n let returnIndex;\n if (index > length - 1) {\n return new Dom7([]);\n }\n if (index < 0) {\n returnIndex = length + index;\n if (returnIndex < 0) return new Dom7([]);\n return new Dom7([this[returnIndex]]);\n }\n return new Dom7([this[index]]);\n}\nfunction append(...args) {\n let newChild;\n\n for (let k = 0; k < args.length; k += 1) {\n newChild = args[k];\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n // eslint-disable-next-line\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\nfunction prepend(newChild) {\n let i;\n let j;\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n return this;\n}\n // eslint-disable-next-line\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\nfunction insertBefore(selector) {\n const before = $(selector);\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\nfunction insertAfter(selector) {\n const after = $(selector);\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return new Dom7([this[0].nextElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (this[0].nextElementSibling) return new Dom7([this[0].nextElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return new Dom7(nextEls);\n}\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return new Dom7([el.previousElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (el.previousElementSibling) return new Dom7([el.previousElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return new Dom7(prevEls);\n}\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n return $(unique(parents));\n}\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentNode;\n }\n }\n return $(unique(parents));\n}\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n if (typeof selector === 'undefined') {\n return new Dom7([]);\n }\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n return closest;\n}\nfunction find(selector) {\n const foundElements = [];\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n return new Dom7(foundElements);\n}\nfunction children(selector) {\n const children = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].childNodes;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector) {\n if (childNodes[j].nodeType === 1) children.push(childNodes[j]);\n } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n return new Dom7(unique(children));\n}\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n return this;\n}\nfunction detach() {\n return this.remove();\n}\nfunction add(...args) {\n const dom = this;\n let i;\n let j;\n for (i = 0; i < args.length; i += 1) {\n const toAdd = $(args[i]);\n for (j = 0; j < toAdd.length; j += 1) {\n dom[dom.length] = toAdd[j];\n dom.length += 1;\n }\n }\n return dom;\n}\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n el.textContent = '';\n }\n }\n return this;\n}\n\nfunction scrollTo(...args) {\n let [left, top, duration, easing, callback] = args;\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n if (typeof easing === 'undefined') easing = 'swing';\n\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n let scrollLeft; // eslint-disable-line\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n if (animateTop) {\n currentTop = el.scrollTop;\n if (!duration) {\n el.scrollTop = top;\n }\n }\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n if (!duration) return;\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : (0.5 - (Math.cos(progress * Math.PI) / 2));\n let done;\n if (animateTop) scrollTop = currentTop + (easeProgress * (newTop - currentTop));\n if (animateLeft) scrollLeft = currentLeft + (easeProgress * (newLeft - currentLeft));\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n requestAnimationFrame(render);\n }\n requestAnimationFrame(render);\n });\n}\n// scrollTop(top, duration, easing, callback) {\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing', // or 'linear'\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n }, initialParams),\n\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - (Math.cos(progress * Math.PI) / 2);\n }\n if (typeof easing === 'function') {\n return easing(progress);\n }\n return progress;\n },\n stop() {\n if (a.frameId) {\n cancelAnimationFrame(a.frameId);\n }\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done(complete) {\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n const elements = [];\n\n // Define & Cache Initials & Units\n a.elements.each((index, el) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n\n elements[index] = {\n container: el,\n };\n Object.keys(props).forEach((prop) => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue,\n };\n });\n });\n\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress;\n // let el;\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n if (startTime === null) {\n startTime = time;\n }\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), ((startTime + params.duration) - time < 0 ? 0 : (startTime + params.duration) - time), startTime);\n }\n\n elements.forEach((element) => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach((prop) => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const { initialValue, finalValue, unit } = el[prop];\n el[prop].currentValue = initialValue + (easeProgress * (finalValue - initialValue));\n const currentValue = el[prop].currentValue;\n\n if (\n (finalValue > initialValue && currentValue >= finalValue) ||\n (finalValue < initialValue && currentValue <= finalValue)) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n if (done) {\n a.done(params.complete);\n return;\n }\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return;\n // Then call\n a.frameId = requestAnimationFrame(render);\n }\n a.frameId = requestAnimationFrame(render);\n return a;\n },\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = ('resize scroll').split(' ');\nfunction eventShortcut(name, ...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();\n else {\n $(this[i]).trigger(name);\n }\n }\n }\n return this;\n }\n return this.on(name, ...args);\n}\n\nfunction click(...args) {\n return eventShortcut.bind(this)('click', ...args);\n}\nfunction blur(...args) {\n return eventShortcut.bind(this)('blur', ...args);\n}\nfunction focus(...args) {\n return eventShortcut.bind(this)('focus', ...args);\n}\nfunction focusin(...args) {\n return eventShortcut.bind(this)('focusin', ...args);\n}\nfunction focusout(...args) {\n return eventShortcut.bind(this)('focusout', ...args);\n}\nfunction keyup(...args) {\n return eventShortcut.bind(this)('keyup', ...args);\n}\nfunction keydown(...args) {\n return eventShortcut.bind(this)('keydown', ...args);\n}\nfunction keypress(...args) {\n return eventShortcut.bind(this)('keypress', ...args);\n}\nfunction submit(...args) {\n return eventShortcut.bind(this)('submit', ...args);\n}\nfunction change(...args) {\n return eventShortcut.bind(this)('change', ...args);\n}\nfunction mousedown(...args) {\n return eventShortcut.bind(this)('mousedown', ...args);\n}\nfunction mousemove(...args) {\n return eventShortcut.bind(this)('mousemove', ...args);\n}\nfunction mouseup(...args) {\n return eventShortcut.bind(this)('mouseup', ...args);\n}\nfunction mouseenter(...args) {\n return eventShortcut.bind(this)('mouseenter', ...args);\n}\nfunction mouseleave(...args) {\n return eventShortcut.bind(this)('mouseleave', ...args);\n}\nfunction mouseout(...args) {\n return eventShortcut.bind(this)('mouseout', ...args);\n}\nfunction mouseover(...args) {\n return eventShortcut.bind(this)('mouseover', ...args);\n}\nfunction touchstart(...args) {\n return eventShortcut.bind(this)('touchstart', ...args);\n}\nfunction touchend(...args) {\n return eventShortcut.bind(this)('touchend', ...args);\n}\nfunction touchmove(...args) {\n return eventShortcut.bind(this)('touchmove', ...args);\n}\nfunction resize(...args) {\n return eventShortcut.bind(this)('resize', ...args);\n}\nfunction scroll(...args) {\n return eventShortcut.bind(this)('scroll', ...args);\n}\n\nexport { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, prop, data, removeData, dataset, val, transform, transition, on, off, once, trigger, transitionEnd, animationEnd, width, outerWidth, height, outerHeight, offset, hide, show, styles, css, toArray, each, forEach, filter, map, html, text, is, indexOf, index, eq, append, appendTo, prepend, prependTo, insertBefore, insertAfter, next, nextAll, prev, prevAll, siblings, parent, parents, closest, find, children, remove, detach, add, empty, scrollTo, scrollTop, scrollLeft, animate, stop, click, blur, focus, focusin, focusout, keyup, keydown, keypress, submit, change, mousedown, mousemove, mouseup, mouseenter, mouseleave, mouseout, mouseover, touchstart, touchend, touchmove, resize, scroll };\n\n\n\n// WEBPACK FOOTER //\n// /Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/dom7/dist/dom7.modular.js","import Swiper from 'swiper';\n\nclass TestimonialSlider {\n constructor(component) {\n this.params = {\n direction: 'horizontal',\n //loop: true,\n slidesPerView: 'auto',\n speed: 600,\n paginationClickable: true,\n autoplay: false,\n pagination: {\n el: '.testimonials-slider-pagination',\n type: 'bullets',\n bulletClass: 'slider__bullet',\n bulletActiveClass: 'is-active',\n clickable: 'true',\n },\n };\n\n this.swiper = new Swiper(component.querySelectorAll('.testimonials-swiper-container'), this.params);\n }\n}\n\n\nexport default TestimonialSlider;\n\n\n// WEBPACK FOOTER //\n// ./scripts/leap/components/testimonial-slider.js","// @TODO: Remove jQuery\nclass Flyout {\n constructor(flyout, params) {\n this.overlay = $('.overlay-show');\n this.showClass = 'show';\n this.html = $(\"html\");\n this.flyout = false;\n this.state = 'closed';\n this.errMessage = \"You have to init the flyout first! [ Flyout.init() ]\";\n this.updateContent = false;\n this.trigger = false;\n\n if (flyout) {\n if (window.Flyouts === undefined) {\n window.Flyouts = [this.init(flyout, params)];\n } else {\n window.Flyouts.push(this.init(flyout, params));\n }\n\n // Attach flyout to element\n $(flyout).data('flyout', this);\n }\n }\n\n init(e, params) {\n this.parseParams(params);\n this.flyout = this._flyoutClass(e);\n\n this.flyout.find('.flyout__close').on('click', () => {\n this.close();\n });\n\n this.overlay.on('click', () => {\n this.close();\n });\n\n $(document).keyup((e) => {\n if (e.keyCode === 27 && this.isOpen()) {\n this.close();\n }\n });\n\n return this;\n }\n\n parseParams(params) {\n if (!params) {\n return;\n }\n\n let trigger;\n\n if (params.trigger) {\n this.triggerInit(params.trigger);\n }\n\n if (params.triggerData) {\n trigger = '[data-flyout=' + params.triggerData +']';\n this.triggerInit(trigger);\n }\n\n if (params.triggerHash) {\n trigger = 'a[href*=\"#' + params.triggerHash +'\"]';\n this.triggerInit(trigger);\n }\n\n if (params.updateContent) {\n this.updateContent = params.updateContent;\n }\n }\n\n triggerInit(selector) {\n let that = this;\n let triggers = $(selector);\n\n this.trigger = triggers;\n\n triggers.each(function() {\n let trigger = $(this);\n\n trigger.on('click', function(e) {\n e.preventDefault();\n\n if (that.updateContent) {\n let contentElement = trigger.data('content');\n let contentDataElement = trigger.find('[data-content]');\n\n if (contentElement && $(contentElement).length > 0) {\n that.replaceContent($(contentElement).html());\n } else if (contentDataElement) {\n that.replaceContent(contentDataElement.html());\n }\n }\n\n that.toggle();\n });\n });\n }\n\n open() {\n // Figure out if a click event was sent to it with a data attribute\n if (typeof(this.flyout) === 'object') {\n this.flyout.scrollTop(0);\n this.flyout.addClass(this.showClass);\n this.showOverlay();\n this.state = 'open';\n this.toggleHamburger();\n }\n\n return this.flyout;\n }\n\n close() {\n if (typeof(this.flyout) === 'object') {\n this.flyout.removeClass(this.showClass);\n this.closeOverlay();\n this.state = 'closed';\n this.toggleHamburger();\n }\n\n return this.flyout;\n }\n\n toggle() {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n }\n\n replaceContent(content) {\n if (typeof(this.flyout) === 'object') {\n this.flyout.find('[data-content-replace]').html(content);\n }\n\n return this.flyout;\n }\n\n showOverlay() {\n let overlay = this.overlay;\n overlay.addClass(this.showClass);\n this.html.addClass('u-lock overlay-visible');\n }\n\n toggleHamburger() {\n if (this.isOpen()) {\n this.flyout.find('.hamburger').addClass('is-active');\n\n if (this.trigger) {\n this.trigger.addClass('is-active');\n }\n } else {\n this.flyout.find('.hamburger').removeClass('is-active');\n\n if (this.trigger) {\n this.trigger.removeClass('is-active');\n }\n }\n }\n\n closeOverlay() {\n let overlay = this.overlay;\n\n if ($(\".flyout\").hasClass(this.showClass) === false) {\n overlay.removeClass(this.showClass);\n this.html.removeClass('u-lock overlay-visible');\n }\n }\n\n isOpen() {\n return (this.state === 'open');\n }\n\n isClosed() {\n return (this.state === 'closed');\n }\n\n _flyoutClass(e) {\n let flyout;\n\n if (typeof(e) === 'object'){\n let that = e;\n flyout = that.data('flyout') || '.flyout-1';\n } else if (typeof(e) === 'string') {\n flyout = e;\n } else {\n flyout = '.flyout-1';\n }\n\n flyout = $(flyout);\n\n return flyout;\n }\n}\n\nexport default Flyout;\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/leap/components/flyout.js","import { debounce } from '../utilities';\n\nclass StickyHeader {\n constructor(header) {\n // @TODO: Refactor to target parent div as header and select inner div for target\n this.header = $(header);\n this.lastScrollTop = 0;\n this.scrollVar = (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;\n this.ticking = false;\n this.updateHeight();\n\n $(window).scroll(() => {\n this.requestTick();\n });\n\n window.addEventListener('resize', debounce((e) => {\n this.updateHeight();\n }, 100));\n\n this.requestTick();\n }\n\n updateHeight() {\n this.height = this.header.outerHeight();\n this.header.parent().css('height', this.height);\n }\n\n hasScrolled() {\n var body = $('body');\n\n // Gotta scroll more doe\n if ((this.lastScrollTop - this.scrollVar) >= -25 && (this.lastScrollTop - this.scrollVar) < 0) {\n return;\n }\n\n // Control header floating\n if (this.scrollVar > this.height + 25) {\n\n if (body.hasClass('sticky-header')) {\n // Control showing / hiding\n if (this.scrollVar > this.lastScrollTop) {\n this.header.removeClass('is-down').addClass('is-up');\n } else if (this.scrollVar < this.lastScrollTop) {\n if (this.scrollVar + $(window).height() < $(document).height()) {\n this.header.removeClass('is-up').addClass('is-down');\n }\n }\n } else {\n body.addClass('sticky-header');\n }\n } else if (!this.header.hasClass('is-down')) {\n body.removeClass('sticky-header');\n } else if (this.scrollVar <= 5) {\n body.removeClass('sticky-header');\n this.header.removeClass('is-down is-up');\n }\n\n this.lastScrollTop = this.scrollVar;\n }\n\n stick() {\n this.ticking = false;\n this.scrollVar = (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;\n this.hasScrolled();\n }\n\n requestTick() {\n if (!this.ticking) {\n window.requestAnimationFrame(this.stick.bind(this));\n }\n\n this.ticking = true;\n }\n}\n\nexport default StickyHeader;\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/leap/components/sticky-header.js","const debounce = (fn, time) => {\n let timeout;\n\n return function() {\n const functionCall = () => fn.apply(this, arguments);\n\n clearTimeout(timeout);\n timeout = setTimeout(functionCall, time);\n }\n}\n\nconst throttle = (fn, time) => {\n let timeout = null;\n\n return function() {\n const functionCall = () => {\n fn.apply(this, arguments);\n timeout = null;\n };\n\n if (!timeout) {\n timeout = setTimeout(functionCall, time)\n }\n }\n}\n\nexport { debounce, throttle }\n\n\n// WEBPACK FOOTER //\n// ./scripts/leap/utilities.js","var onEndAnimation = function(el, callback) {\n var onEndCallbackFn = function( ev ) {\n if (ev.target !== this) {\n return;\n }\n\n this.removeEventListener('animationend', onEndCallbackFn);\n if (callback && typeof callback === 'function') { callback.call(); }\n };\n\n el.addEventListener('animationend', onEndCallbackFn);\n};\n\nfunction extend(a, b) {\n for (var key in b) {\n if (b.hasOwnProperty(key)) {\n a[key] = b[key];\n }\n }\n return a;\n}\n\nclass MobileNav {\n constructor(el, options) {\n this.el = el;\n this.options = {\n // show breadcrumbs\n breadcrumbsCtrl : true,\n // initial breadcrumb text\n initialBreadcrumb : 'all',\n // show back button\n backCtrl : true,\n // delay between each menu item sliding animation\n itemsDelayInterval : 60,\n // direction\n direction : 'r2l',\n // callback: item that doesn´t have a submenu gets clicked\n // onItemClick([event], [inner HTML of the clicked item])\n onItemClick : function(ev, itemName) { return false; },\n };\n\n extend( this.options, options );\n\n // the menus (
    ´s)\n this.menus = [].slice.call(this.el.querySelectorAll('.menu__level'));\n // index of current menu\n this.current = 0;\n\n this._init();\n }\n\n _init() {\n // iterate the existing menus and create an array of menus, more specifically an array of objects where each one holds the info of each menu element and its menu items\n this.menusArr = [];\n this.menus.forEach((menuEl, pos) => {\n var menu = {menuEl : menuEl, menuItems : [].slice.call(menuEl.querySelectorAll('.menu__item'))};\n this.menusArr.push(menu);\n\n // set current menu class\n if (pos === this.current) {\n menuEl.classList.add('menu__level--current');\n }\n });\n\n // create back button\n if (this.options.backCtrl) {\n this.backCtrl = this.el.querySelector('.menu__back');\n // this.backCtrl = document.createElement('button');\n // this.backCtrl.className = 'menu__back is-hidden';\n // this.backCtrl.setAttribute('aria-label', 'Go back');\n // this.backCtrl.innerHTML = 'Back';\n // this.el.insertBefore(this.backCtrl, this.el.firstChild);\n }\n\n\n // create breadcrumbs\n if (this.options.breadcrumbsCtrl) {\n this.breadcrumbsCtrl = document.createElement('nav');\n this.breadcrumbsCtrl.className = 'menu__breadcrumbs';\n this.el.insertBefore(this.breadcrumbsCtrl, this.el.firstChild);\n // add initial breadcrumb\n this._addBreadcrumb(0);\n }\n\n // event binding\n this._initEvents();\n }\n\n _initEvents() {\n for (var i = 0, len = this.menusArr.length; i < len; ++i) {\n this.menusArr[i].menuItems.forEach((item, pos) => {\n item.querySelector('a').addEventListener('click', (ev) => {\n var submenu = ev.target.getAttribute('data-submenu'),\n itemName = ev.target.innerHTML,\n subMenuEl = this.el.querySelector('ul[data-menu=\"' + submenu + '\"]');\n\n // check if there's a sub menu for this item\n if (submenu && subMenuEl) {\n ev.preventDefault();\n // open it\n this._openSubMenu(subMenuEl, pos, itemName);\n } else {\n // add class current\n var currentlink = this.el.querySelector('.menu__link--current');\n if (currentlink) {\n this.el.querySelector('.menu__link--current').classList.remove('menu__link--current');\n }\n ev.target.classList.add('menu__link--current');\n\n // callback\n this.options.onItemClick(ev, itemName);\n }\n });\n });\n }\n\n // back navigation\n if (this.options.backCtrl) {\n this.backCtrl.addEventListener('click', () => {\n this._back();\n });\n }\n }\n\n _openSubMenu(subMenuEl, clickPosition, subMenuName) {\n if (this.isAnimating) {\n return false;\n }\n this.isAnimating = true;\n\n // save \"parent\" menu index for back navigation\n this.menusArr[this.menus.indexOf(subMenuEl)].backIdx = this.current;\n // save \"parent\" menu´s name\n this.menusArr[this.menus.indexOf(subMenuEl)].name = subMenuName;\n // current menu slides out\n this._menuOut(clickPosition);\n // next menu (submenu) slides in\n this._menuIn(subMenuEl, clickPosition);\n }\n\n _back() {\n if (this.isAnimating) {\n return false;\n }\n this.isAnimating = true;\n\n // current menu slides out\n this._menuOut();\n // next menu (previous menu) slides in\n var backMenu = this.menusArr[this.menusArr[this.current].backIdx].menuEl;\n this._menuIn(backMenu);\n\n // remove last breadcrumb\n if (this.options.breadcrumbsCtrl) {\n this.breadcrumbsCtrl.removeChild(this.breadcrumbsCtrl.lastElementChild);\n }\n }\n\n _menuOut(clickPosition) {\n // the current menu\n var currentMenu = this.menusArr[this.current].menuEl,\n isBackNavigation = typeof clickPosition === 'undefined' ? true : false;\n\n // slide out current menu items - first, set the delays for the items\n this.menusArr[this.current].menuItems.forEach((item, pos) => {\n item.style.WebkitAnimationDelay = item.style.animationDelay = isBackNavigation ? parseInt(pos * this.options.itemsDelayInterval) + 'ms' : parseInt(Math.abs(clickPosition - pos) * this.options.itemsDelayInterval) + 'ms';\n });\n // animation class\n if (this.options.direction === 'r2l') {\n currentMenu.classList.add(!isBackNavigation ? 'animate-outToLeft' : 'animate-outToRight');\n } else {\n currentMenu.classList.add(isBackNavigation ? 'animate-outToLeft' : 'animate-outToRight');\n }\n }\n\n _menuIn(nextMenuEl, clickPosition) {\n var currentMenu = this.menusArr[this.current].menuEl,\n isBackNavigation = typeof clickPosition === 'undefined' ? true : false,\n // index of the nextMenuEl\n nextMenuIdx = this.menus.indexOf(nextMenuEl),\n\n nextMenuItems = this.menusArr[nextMenuIdx].menuItems,\n nextMenuItemsTotal = nextMenuItems.length;\n\n // slide in next menu items - first, set the delays for the items\n nextMenuItems.forEach((item, pos) => {\n item.style.WebkitAnimationDelay = item.style.animationDelay = isBackNavigation ? parseInt(pos * this.options.itemsDelayInterval) + 'ms' : parseInt(Math.abs(clickPosition - pos) * this.options.itemsDelayInterval) + 'ms';\n\n // we need to reset the classes once the last item animates in\n // the \"last item\" is the farthest from the clicked item\n // let's calculate the index of the farthest item\n var farthestIdx = clickPosition <= nextMenuItemsTotal/2 || isBackNavigation ? nextMenuItemsTotal - 1 : 0;\n\n if (pos === farthestIdx) {\n onEndAnimation(item, () => {\n // reset classes\n if (this.options.direction === 'r2l') {\n currentMenu.classList.remove(!isBackNavigation ? 'animate-outToLeft' : 'animate-outToRight');\n nextMenuEl.classList.remove(!isBackNavigation ? 'animate-inFromRight' : 'animate-inFromLeft');\n } else {\n currentMenu.classList.remove(isBackNavigation ? 'animate-outToLeft' : 'animate-outToRight');\n nextMenuEl.classList.remove(isBackNavigation ? 'animate-inFromRight' : 'animate-inFromLeft');\n }\n currentMenu.classList.remove('menu__level--current');\n nextMenuEl.classList.add('menu__level--current');\n\n //reset current\n this.current = nextMenuIdx;\n\n // control back button and breadcrumbs navigation elements\n if (!isBackNavigation) {\n // show back button\n if (this.options.backCtrl) {\n this.backCtrl.classList.remove('is-hidden');\n }\n\n // add breadcrumb\n this._addBreadcrumb(nextMenuIdx);\n } else if (this.current === 0 && this.options.backCtrl) {\n // hide back button\n this.backCtrl.classList.add('is-hidden');\n }\n\n // we can navigate again..\n\n setTimeout(function(){$('.not-visible').removeClass('not-visible');},250);\n this.isAnimating = false;\n });\n }\n });\n\n // animation class\n if (this.options.direction === 'r2l') {\n nextMenuEl.classList.add(!isBackNavigation ? 'animate-inFromRight' : 'animate-inFromLeft');\n } else {\n nextMenuEl.classList.add(isBackNavigation ? 'animate-inFromRight' : 'animate-inFromLeft');\n }\n }\n\n _addBreadcrumb(idx) {\n if (!this.options.breadcrumbsCtrl) {\n return false;\n }\n\n var bc = document.createElement('a');\n\n bc.className = 'breadcrumb-link not-visible';\n bc.innerHTML = idx ? this.menusArr[idx].name : this.options.initialBreadcrumb;\n this.breadcrumbsCtrl.appendChild(bc);\n\n bc.addEventListener('click', (ev) => {\n ev.preventDefault();\n\n // do nothing if this breadcrumb is the last one in the list of breadcrumbs\n if (!bc.nextSibling || this.isAnimating) {\n return false;\n }\n this.isAnimating = true;\n\n // current menu slides out\n this._menuOut();\n // next menu slides in\n var nextMenu = this.menusArr[idx].menuEl;\n this._menuIn(nextMenu);\n\n // remove breadcrumbs that are ahead\n var siblingNode;\n while ((siblingNode = bc.nextSibling) !== null) {\n this.breadcrumbsCtrl.removeChild(siblingNode);\n }\n });\n }\n}\n\nexport default MobileNav;\n\n\n// WEBPACK FOOTER //\n// ./scripts/leap/components/nav.js","import ScrollMagic from 'scrollmagic';\n\n// @TODO: Refactor to vanilla JS\n// @TODO: Change target from selector to dom object\nclass Magic {\n constructor(target, childSelector = false) {\n this.target = target;\n this.childSelector = childSelector;\n\n if (!childSelector) {\n this.makeMagic();\n } else {\n this.makeMagicBox();\n }\n }\n\n makeMagic() {\n var magicController = new ScrollMagic.Controller();\n $(this.target).addClass('is-magic');\n \n $(this.target).not('.is-latent').each(function() {\n var that = this;\n \n var scene = new ScrollMagic.Scene({\n triggerElement: that,\n triggerHook: 0.95,\n })\n .setClassToggle(that, 'is-loaded')\n .addTo(magicController);\n });\n }\n\n makeMagicBox() {\n $(this.target).each(function() {\n var box = this;\n \n $(this).find(childSelector).each(function(index) {\n this.addClass('is-magic').addClass('delay--' + index);\n var that = this;\n \n var scene = new ScrollMagic.Scene({\n triggerElement: box,\n triggerHook: 0.95,\n })\n .setClassToggle(that, 'is-loaded')\n .addTo(magicController);\n });\n });\n }\n}\n\nexport default Magic;\n\n\n// WEBPACK FOOTER //\n// ./scripts/leap/tools/magic.js","/*!\n * ScrollMagic v2.0.5 (2015-04-29)\n * The javascript library for magical scroll interactions.\n * (c) 2015 Jan Paepke (@janpaepke)\n * Project Website: http://scrollmagic.io\n * \n * @version 2.0.5\n * @license Dual licensed under MIT license and GPL.\n * @author Jan Paepke - e-mail@janpaepke.de\n *\n * @file ScrollMagic main library.\n */\n/**\n * @namespace ScrollMagic\n */\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine(factory);\n\t} else if (typeof exports === 'object') {\n\t\t// CommonJS\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Browser global\n\t\troot.ScrollMagic = factory();\n\t}\n}(this, function () {\n\t\"use strict\";\n\n\tvar ScrollMagic = function () {\n\t\t_util.log(2, '(COMPATIBILITY NOTICE) -> As of ScrollMagic 2.0.0 you need to use \\'new ScrollMagic.Controller()\\' to create a new controller instance. Use \\'new ScrollMagic.Scene()\\' to instance a scene.');\n\t};\n\n\tScrollMagic.version = \"2.0.5\";\n\n\t// TODO: temporary workaround for chrome's scroll jitter bug\n\twindow.addEventListener(\"mousewheel\", function () {});\n\n\t// global const\n\tvar PIN_SPACER_ATTRIBUTE = \"data-scrollmagic-pin-spacer\";\n\n\t/**\n\t * The main class that is needed once per scroll container.\n\t *\n\t * @class\n\t *\n\t * @example\n\t * // basic initialization\n\t * var controller = new ScrollMagic.Controller();\n\t *\n\t * // passing options\n\t * var controller = new ScrollMagic.Controller({container: \"#myContainer\", loglevel: 3});\n\t *\n\t * @param {object} [options] - An object containing one or more options for the controller.\n\t * @param {(string|object)} [options.container=window] - A selector, DOM object that references the main container for scrolling.\n\t * @param {boolean} [options.vertical=true] - Sets the scroll mode to vertical (`true`) or horizontal (`false`) scrolling.\n\t * @param {object} [options.globalSceneOptions={}] - These options will be passed to every Scene that is added to the controller using the addScene method. For more information on Scene options see {@link ScrollMagic.Scene}.\n\t * @param {number} [options.loglevel=2] Loglevel for debugging. Note that logging is disabled in the minified version of ScrollMagic.\n\t ** `0` => silent\n\t ** `1` => errors\n\t ** `2` => errors, warnings\n\t ** `3` => errors, warnings, debuginfo\n\t * @param {boolean} [options.refreshInterval=100] - Some changes don't call events by default, like changing the container size or moving a scene trigger element. \n\t This interval polls these parameters to fire the necessary events. \n\t If you don't use custom containers, trigger elements or have static layouts, where the positions of the trigger elements don't change, you can set this to 0 disable interval checking and improve performance.\n\t *\n\t */\n\tScrollMagic.Controller = function (options) {\n/*\n\t * ----------------------------------------------------------------\n\t * settings\n\t * ----------------------------------------------------------------\n\t */\n\t\tvar\n\t\tNAMESPACE = 'ScrollMagic.Controller',\n\t\t\tSCROLL_DIRECTION_FORWARD = 'FORWARD',\n\t\t\tSCROLL_DIRECTION_REVERSE = 'REVERSE',\n\t\t\tSCROLL_DIRECTION_PAUSED = 'PAUSED',\n\t\t\tDEFAULT_OPTIONS = CONTROLLER_OPTIONS.defaults;\n\n/*\n\t * ----------------------------------------------------------------\n\t * private vars\n\t * ----------------------------------------------------------------\n\t */\n\t\tvar\n\t\tController = this,\n\t\t\t_options = _util.extend({}, DEFAULT_OPTIONS, options),\n\t\t\t_sceneObjects = [],\n\t\t\t_updateScenesOnNextCycle = false,\n\t\t\t// can be boolean (true => all scenes) or an array of scenes to be updated\n\t\t\t_scrollPos = 0,\n\t\t\t_scrollDirection = SCROLL_DIRECTION_PAUSED,\n\t\t\t_isDocument = true,\n\t\t\t_viewPortSize = 0,\n\t\t\t_enabled = true,\n\t\t\t_updateTimeout, _refreshTimeout;\n\n/*\n\t * ----------------------------------------------------------------\n\t * private functions\n\t * ----------------------------------------------------------------\n\t */\n\n\t\t/**\n\t\t * Internal constructor function of the ScrollMagic Controller\n\t\t * @private\n\t\t */\n\t\tvar construct = function () {\n\t\t\tfor (var key in _options) {\n\t\t\t\tif (!DEFAULT_OPTIONS.hasOwnProperty(key)) {\n\t\t\t\t\tlog(2, \"WARNING: Unknown option \\\"\" + key + \"\\\"\");\n\t\t\t\t\tdelete _options[key];\n\t\t\t\t}\n\t\t\t}\n\t\t\t_options.container = _util.get.elements(_options.container)[0];\n\t\t\t// check ScrollContainer\n\t\t\tif (!_options.container) {\n\t\t\t\tlog(1, \"ERROR creating object \" + NAMESPACE + \": No valid scroll container supplied\");\n\t\t\t\tthrow NAMESPACE + \" init failed.\"; // cancel\n\t\t\t}\n\t\t\t_isDocument = _options.container === window || _options.container === document.body || !document.body.contains(_options.container);\n\t\t\t// normalize to window\n\t\t\tif (_isDocument) {\n\t\t\t\t_options.container = window;\n\t\t\t}\n\t\t\t// update container size immediately\n\t\t\t_viewPortSize = getViewportSize();\n\t\t\t// set event handlers\n\t\t\t_options.container.addEventListener(\"resize\", onChange);\n\t\t\t_options.container.addEventListener(\"scroll\", onChange);\n\n\t\t\t_options.refreshInterval = parseInt(_options.refreshInterval) || DEFAULT_OPTIONS.refreshInterval;\n\t\t\tscheduleRefresh();\n\n\t\t\tlog(3, \"added new \" + NAMESPACE + \" controller (v\" + ScrollMagic.version + \")\");\n\t\t};\n\n\t\t/**\n\t\t * Schedule the next execution of the refresh function\n\t\t * @private\n\t\t */\n\t\tvar scheduleRefresh = function () {\n\t\t\tif (_options.refreshInterval > 0) {\n\t\t\t\t_refreshTimeout = window.setTimeout(refresh, _options.refreshInterval);\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Default function to get scroll pos - overwriteable using `Controller.scrollPos(newFunction)`\n\t\t * @private\n\t\t */\n\t\tvar getScrollPos = function () {\n\t\t\treturn _options.vertical ? _util.get.scrollTop(_options.container) : _util.get.scrollLeft(_options.container);\n\t\t};\n\n\t\t/**\n\t\t * Returns the current viewport Size (width vor horizontal, height for vertical)\n\t\t * @private\n\t\t */\n\t\tvar getViewportSize = function () {\n\t\t\treturn _options.vertical ? _util.get.height(_options.container) : _util.get.width(_options.container);\n\t\t};\n\n\t\t/**\n\t\t * Default function to set scroll pos - overwriteable using `Controller.scrollTo(newFunction)`\n\t\t * Make available publicly for pinned mousewheel workaround.\n\t\t * @private\n\t\t */\n\t\tvar setScrollPos = this._setScrollPos = function (pos) {\n\t\t\tif (_options.vertical) {\n\t\t\t\tif (_isDocument) {\n\t\t\t\t\twindow.scrollTo(_util.get.scrollLeft(), pos);\n\t\t\t\t} else {\n\t\t\t\t\t_options.container.scrollTop = pos;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (_isDocument) {\n\t\t\t\t\twindow.scrollTo(pos, _util.get.scrollTop());\n\t\t\t\t} else {\n\t\t\t\t\t_options.container.scrollLeft = pos;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Handle updates in cycles instead of on scroll (performance)\n\t\t * @private\n\t\t */\n\t\tvar updateScenes = function () {\n\t\t\tif (_enabled && _updateScenesOnNextCycle) {\n\t\t\t\t// determine scenes to update\n\t\t\t\tvar scenesToUpdate = _util.type.Array(_updateScenesOnNextCycle) ? _updateScenesOnNextCycle : _sceneObjects.slice(0);\n\t\t\t\t// reset scenes\n\t\t\t\t_updateScenesOnNextCycle = false;\n\t\t\t\tvar oldScrollPos = _scrollPos;\n\t\t\t\t// update scroll pos now instead of onChange, as it might have changed since scheduling (i.e. in-browser smooth scroll)\n\t\t\t\t_scrollPos = Controller.scrollPos();\n\t\t\t\tvar deltaScroll = _scrollPos - oldScrollPos;\n\t\t\t\tif (deltaScroll !== 0) { // scroll position changed?\n\t\t\t\t\t_scrollDirection = (deltaScroll > 0) ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_REVERSE;\n\t\t\t\t}\n\t\t\t\t// reverse order of scenes if scrolling reverse\n\t\t\t\tif (_scrollDirection === SCROLL_DIRECTION_REVERSE) {\n\t\t\t\t\tscenesToUpdate.reverse();\n\t\t\t\t}\n\t\t\t\t// update scenes\n\t\t\t\tscenesToUpdate.forEach(function (scene, index) {\n\t\t\t\t\tlog(3, \"updating Scene \" + (index + 1) + \"/\" + scenesToUpdate.length + \" (\" + _sceneObjects.length + \" total)\");\n\t\t\t\t\tscene.update(true);\n\t\t\t\t});\n\t\t\t\tif (scenesToUpdate.length === 0 && _options.loglevel >= 3) {\n\t\t\t\t\tlog(3, \"updating 0 Scenes (nothing added to controller)\");\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Initializes rAF callback\n\t\t * @private\n\t\t */\n\t\tvar debounceUpdate = function () {\n\t\t\t_updateTimeout = _util.rAF(updateScenes);\n\t\t};\n\n\t\t/**\n\t\t * Handles Container changes\n\t\t * @private\n\t\t */\n\t\tvar onChange = function (e) {\n\t\t\tlog(3, \"event fired causing an update:\", e.type);\n\t\t\tif (e.type == \"resize\") {\n\t\t\t\t// resize\n\t\t\t\t_viewPortSize = getViewportSize();\n\t\t\t\t_scrollDirection = SCROLL_DIRECTION_PAUSED;\n\t\t\t}\n\t\t\t// schedule update\n\t\t\tif (_updateScenesOnNextCycle !== true) {\n\t\t\t\t_updateScenesOnNextCycle = true;\n\t\t\t\tdebounceUpdate();\n\t\t\t}\n\t\t};\n\n\t\tvar refresh = function () {\n\t\t\tif (!_isDocument) {\n\t\t\t\t// simulate resize event. Only works for viewport relevant param (performance)\n\t\t\t\tif (_viewPortSize != getViewportSize()) {\n\t\t\t\t\tvar resizeEvent;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tresizeEvent = new Event('resize', {\n\t\t\t\t\t\t\tbubbles: false,\n\t\t\t\t\t\t\tcancelable: false\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch (e) { // stupid IE\n\t\t\t\t\t\tresizeEvent = document.createEvent(\"Event\");\n\t\t\t\t\t\tresizeEvent.initEvent(\"resize\", false, false);\n\t\t\t\t\t}\n\t\t\t\t\t_options.container.dispatchEvent(resizeEvent);\n\t\t\t\t}\n\t\t\t}\n\t\t\t_sceneObjects.forEach(function (scene, index) { // refresh all scenes\n\t\t\t\tscene.refresh();\n\t\t\t});\n\t\t\tscheduleRefresh();\n\t\t};\n\n\t\t/**\n\t\t * Send a debug message to the console.\n\t\t * provided publicly with _log for plugins\n\t\t * @private\n\t\t *\n\t\t * @param {number} loglevel - The loglevel required to initiate output for the message.\n\t\t * @param {...mixed} output - One or more variables that should be passed to the console.\n\t\t */\n\t\tvar log = this._log = function (loglevel, output) {\n\t\t\tif (_options.loglevel >= loglevel) {\n\t\t\t\tArray.prototype.splice.call(arguments, 1, 0, \"(\" + NAMESPACE + \") ->\");\n\t\t\t\t_util.log.apply(window, arguments);\n\t\t\t}\n\t\t};\n\t\t// for scenes we have getters for each option, but for the controller we don't, so we need to make it available externally for plugins\n\t\tthis._options = _options;\n\n\t\t/**\n\t\t * Sort scenes in ascending order of their start offset.\n\t\t * @private\n\t\t *\n\t\t * @param {array} ScenesArray - an array of ScrollMagic Scenes that should be sorted\n\t\t * @return {array} The sorted array of Scenes.\n\t\t */\n\t\tvar sortScenes = function (ScenesArray) {\n\t\t\tif (ScenesArray.length <= 1) {\n\t\t\t\treturn ScenesArray;\n\t\t\t} else {\n\t\t\t\tvar scenes = ScenesArray.slice(0);\n\t\t\t\tscenes.sort(function (a, b) {\n\t\t\t\t\treturn a.scrollOffset() > b.scrollOffset() ? 1 : -1;\n\t\t\t\t});\n\t\t\t\treturn scenes;\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * ----------------------------------------------------------------\n\t\t * public functions\n\t\t * ----------------------------------------------------------------\n\t\t */\n\n\t\t/**\n\t\t * Add one ore more scene(s) to the controller. \n\t\t * This is the equivalent to `Scene.addTo(controller)`.\n\t\t * @public\n\t\t * @example\n\t\t * // with a previously defined scene\n\t\t * controller.addScene(scene);\n\t\t *\n\t\t * // with a newly created scene.\n\t\t * controller.addScene(new ScrollMagic.Scene({duration : 0}));\n\t\t *\n\t\t * // adding multiple scenes\n\t\t * controller.addScene([scene, scene2, new ScrollMagic.Scene({duration : 0})]);\n\t\t *\n\t\t * @param {(ScrollMagic.Scene|array)} newScene - ScrollMagic Scene or Array of Scenes to be added to the controller.\n\t\t * @return {Controller} Parent object for chaining.\n\t\t */\n\t\tthis.addScene = function (newScene) {\n\t\t\tif (_util.type.Array(newScene)) {\n\t\t\t\tnewScene.forEach(function (scene, index) {\n\t\t\t\t\tController.addScene(scene);\n\t\t\t\t});\n\t\t\t} else if (newScene instanceof ScrollMagic.Scene) {\n\t\t\t\tif (newScene.controller() !== Controller) {\n\t\t\t\t\tnewScene.addTo(Controller);\n\t\t\t\t} else if (_sceneObjects.indexOf(newScene) < 0) {\n\t\t\t\t\t// new scene\n\t\t\t\t\t_sceneObjects.push(newScene); // add to array\n\t\t\t\t\t_sceneObjects = sortScenes(_sceneObjects); // sort\n\t\t\t\t\tnewScene.on(\"shift.controller_sort\", function () { // resort whenever scene moves\n\t\t\t\t\t\t_sceneObjects = sortScenes(_sceneObjects);\n\t\t\t\t\t});\n\t\t\t\t\t// insert Global defaults.\n\t\t\t\t\tfor (var key in _options.globalSceneOptions) {\n\t\t\t\t\t\tif (newScene[key]) {\n\t\t\t\t\t\t\tnewScene[key].call(newScene, _options.globalSceneOptions[key]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tlog(3, \"adding Scene (now \" + _sceneObjects.length + \" total)\");\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlog(1, \"ERROR: invalid argument supplied for '.addScene()'\");\n\t\t\t}\n\t\t\treturn Controller;\n\t\t};\n\n\t\t/**\n\t\t * Remove one ore more scene(s) from the controller. \n\t\t * This is the equivalent to `Scene.remove()`.\n\t\t * @public\n\t\t * @example\n\t\t * // remove a scene from the controller\n\t\t * controller.removeScene(scene);\n\t\t *\n\t\t * // remove multiple scenes from the controller\n\t\t * controller.removeScene([scene, scene2, scene3]);\n\t\t *\n\t\t * @param {(ScrollMagic.Scene|array)} Scene - ScrollMagic Scene or Array of Scenes to be removed from the controller.\n\t\t * @returns {Controller} Parent object for chaining.\n\t\t */\n\t\tthis.removeScene = function (Scene) {\n\t\t\tif (_util.type.Array(Scene)) {\n\t\t\t\tScene.forEach(function (scene, index) {\n\t\t\t\t\tController.removeScene(scene);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tvar index = _sceneObjects.indexOf(Scene);\n\t\t\t\tif (index > -1) {\n\t\t\t\t\tScene.off(\"shift.controller_sort\");\n\t\t\t\t\t_sceneObjects.splice(index, 1);\n\t\t\t\t\tlog(3, \"removing Scene (now \" + _sceneObjects.length + \" left)\");\n\t\t\t\t\tScene.remove();\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn Controller;\n\t\t};\n\n\t\t/**\n\t\t * Update one ore more scene(s) according to the scroll position of the container. \n\t\t * This is the equivalent to `Scene.update()`. \n\t\t * The update method calculates the scene's start and end position (based on the trigger element, trigger hook, duration and offset) and checks it against the current scroll position of the container. \n\t\t * It then updates the current scene state accordingly (or does nothing, if the state is already correct) – Pins will be set to their correct position and tweens will be updated to their correct progress. \n\t\t * _**Note:** This method gets called constantly whenever Controller detects a change. The only application for you is if you change something outside of the realm of ScrollMagic, like moving the trigger or changing tween parameters._\n\t\t * @public\n\t\t * @example\n\t\t * // update a specific scene on next cycle\n\t\t * controller.updateScene(scene);\n\t\t *\n\t\t * // update a specific scene immediately\n\t\t * controller.updateScene(scene, true);\n\t\t *\n\t\t * // update multiple scenes scene on next cycle\n\t\t * controller.updateScene([scene1, scene2, scene3]);\n\t\t *\n\t\t * @param {ScrollMagic.Scene} Scene - ScrollMagic Scene or Array of Scenes that is/are supposed to be updated.\n\t\t * @param {boolean} [immediately=false] - If `true` the update will be instant, if `false` it will wait until next update cycle. \n\t\t This is useful when changing multiple properties of the scene - this way it will only be updated once all new properties are set (updateScenes).\n\t\t * @return {Controller} Parent object for chaining.\n\t\t */\n\t\tthis.updateScene = function (Scene, immediately) {\n\t\t\tif (_util.type.Array(Scene)) {\n\t\t\t\tScene.forEach(function (scene, index) {\n\t\t\t\t\tController.updateScene(scene, immediately);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif (immediately) {\n\t\t\t\t\tScene.update(true);\n\t\t\t\t} else if (_updateScenesOnNextCycle !== true && Scene instanceof ScrollMagic.Scene) { // if _updateScenesOnNextCycle is true, all connected scenes are already scheduled for update\n\t\t\t\t\t// prep array for next update cycle\n\t\t\t\t\t_updateScenesOnNextCycle = _updateScenesOnNextCycle || [];\n\t\t\t\t\tif (_updateScenesOnNextCycle.indexOf(Scene) == -1) {\n\t\t\t\t\t\t_updateScenesOnNextCycle.push(Scene);\n\t\t\t\t\t}\n\t\t\t\t\t_updateScenesOnNextCycle = sortScenes(_updateScenesOnNextCycle); // sort\n\t\t\t\t\tdebounceUpdate();\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn Controller;\n\t\t};\n\n\t\t/**\n\t\t * Updates the controller params and calls updateScene on every scene, that is attached to the controller. \n\t\t * See `Controller.updateScene()` for more information about what this means. \n\t\t * In most cases you will not need this function, as it is called constantly, whenever ScrollMagic detects a state change event, like resize or scroll. \n\t\t * The only application for this method is when ScrollMagic fails to detect these events. \n\t\t * One application is with some external scroll libraries (like iScroll) that move an internal container to a negative offset instead of actually scrolling. In this case the update on the controller needs to be called whenever the child container's position changes.\n\t\t * For this case there will also be the need to provide a custom function to calculate the correct scroll position. See `Controller.scrollPos()` for details.\n\t\t * @public\n\t\t * @example\n\t\t * // update the controller on next cycle (saves performance due to elimination of redundant updates)\n\t\t * controller.update();\n\t\t *\n\t\t * // update the controller immediately\n\t\t * controller.update(true);\n\t\t *\n\t\t * @param {boolean} [immediately=false] - If `true` the update will be instant, if `false` it will wait until next update cycle (better performance)\n\t\t * @return {Controller} Parent object for chaining.\n\t\t */\n\t\tthis.update = function (immediately) {\n\t\t\tonChange({\n\t\t\t\ttype: \"resize\"\n\t\t\t}); // will update size and set _updateScenesOnNextCycle to true\n\t\t\tif (immediately) {\n\t\t\t\tupdateScenes();\n\t\t\t}\n\t\t\treturn Controller;\n\t\t};\n\n\t\t/**\n\t\t * Scroll to a numeric scroll offset, a DOM element, the start of a scene or provide an alternate method for scrolling. \n\t\t * For vertical controllers it will change the top scroll offset and for horizontal applications it will change the left offset.\n\t\t * @public\n\t\t *\n\t\t * @since 1.1.0\n\t\t * @example\n\t\t * // scroll to an offset of 100\n\t\t * controller.scrollTo(100);\n\t\t *\n\t\t * // scroll to a DOM element\n\t\t * controller.scrollTo(\"#anchor\");\n\t\t *\n\t\t * // scroll to the beginning of a scene\n\t\t * var scene = new ScrollMagic.Scene({offset: 200});\n\t\t * controller.scrollTo(scene);\n\t\t *\n\t\t * // define a new scroll position modification function (jQuery animate instead of jump)\n\t\t * controller.scrollTo(function (newScrollPos) {\n\t\t *\t$(\"html, body\").animate({scrollTop: newScrollPos});\n\t\t * });\n\t\t * controller.scrollTo(100); // call as usual, but the new function will be used instead\n\t\t *\n\t\t * // define a new scroll function with an additional parameter\n\t\t * controller.scrollTo(function (newScrollPos, message) {\n\t\t * console.log(message);\n\t\t *\t$(this).animate({scrollTop: newScrollPos});\n\t\t * });\n\t\t * // call as usual, but supply an extra parameter to the defined custom function\n\t\t * controller.scrollTo(100, \"my message\");\n\t\t *\n\t\t * // define a new scroll function with an additional parameter containing multiple variables\n\t\t * controller.scrollTo(function (newScrollPos, options) {\n\t\t * someGlobalVar = options.a + options.b;\n\t\t *\t$(this).animate({scrollTop: newScrollPos});\n\t\t * });\n\t\t * // call as usual, but supply an extra parameter containing multiple options\n\t\t * controller.scrollTo(100, {a: 1, b: 2});\n\t\t *\n\t\t * // define a new scroll function with a callback supplied as an additional parameter\n\t\t * controller.scrollTo(function (newScrollPos, callback) {\n\t\t *\t$(this).animate({scrollTop: newScrollPos}, 400, \"swing\", callback);\n\t\t * });\n\t\t * // call as usual, but supply an extra parameter, which is used as a callback in the previously defined custom scroll function\n\t\t * controller.scrollTo(100, function() {\n\t\t *\tconsole.log(\"scroll has finished.\");\n\t\t * });\n\t\t *\n\t\t * @param {mixed} scrollTarget - The supplied argument can be one of these types:\n\t\t * 1. `number` -> The container will scroll to this new scroll offset.\n\t\t * 2. `string` or `object` -> Can be a selector or a DOM object. \n\t\t * The container will scroll to the position of this element.\n\t\t * 3. `ScrollMagic Scene` -> The container will scroll to the start of this scene.\n\t\t * 4. `function` -> This function will be used for future scroll position modifications. \n\t\t * This provides a way for you to change the behaviour of scrolling and adding new behaviour like animation. The function receives the new scroll position as a parameter and a reference to the container element using `this`. \n\t\t * It may also optionally receive an optional additional parameter (see below) \n\t\t * _**NOTE:** \n\t\t * All other options will still work as expected, using the new function to scroll._\n\t\t * @param {mixed} [additionalParameter] - If a custom scroll function was defined (see above 4.), you may want to supply additional parameters to it, when calling it. You can do this using this parameter – see examples for details. Please note, that this parameter will have no effect, if you use the default scrolling function.\n\t\t * @returns {Controller} Parent object for chaining.\n\t\t */\n\t\tthis.scrollTo = function (scrollTarget, additionalParameter) {\n\t\t\tif (_util.type.Number(scrollTarget)) { // excecute\n\t\t\t\tsetScrollPos.call(_options.container, scrollTarget, additionalParameter);\n\t\t\t} else if (scrollTarget instanceof ScrollMagic.Scene) { // scroll to scene\n\t\t\t\tif (scrollTarget.controller() === Controller) { // check if the controller is associated with this scene\n\t\t\t\t\tController.scrollTo(scrollTarget.scrollOffset(), additionalParameter);\n\t\t\t\t} else {\n\t\t\t\t\tlog(2, \"scrollTo(): The supplied scene does not belong to this controller. Scroll cancelled.\", scrollTarget);\n\t\t\t\t}\n\t\t\t} else if (_util.type.Function(scrollTarget)) { // assign new scroll function\n\t\t\t\tsetScrollPos = scrollTarget;\n\t\t\t} else { // scroll to element\n\t\t\t\tvar elem = _util.get.elements(scrollTarget)[0];\n\t\t\t\tif (elem) {\n\t\t\t\t\t// if parent is pin spacer, use spacer position instead so correct start position is returned for pinned elements.\n\t\t\t\t\twhile (elem.parentNode.hasAttribute(PIN_SPACER_ATTRIBUTE)) {\n\t\t\t\t\t\telem = elem.parentNode;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar\n\t\t\t\t\tparam = _options.vertical ? \"top\" : \"left\",\n\t\t\t\t\t\t// which param is of interest ?\n\t\t\t\t\t\tcontainerOffset = _util.get.offset(_options.container),\n\t\t\t\t\t\t// container position is needed because element offset is returned in relation to document, not in relation to container.\n\t\t\t\t\t\telementOffset = _util.get.offset(elem);\n\n\t\t\t\t\tif (!_isDocument) { // container is not the document root, so substract scroll Position to get correct trigger element position relative to scrollcontent\n\t\t\t\t\t\tcontainerOffset[param] -= Controller.scrollPos();\n\t\t\t\t\t}\n\n\t\t\t\t\tController.scrollTo(elementOffset[param] - containerOffset[param], additionalParameter);\n\t\t\t\t} else {\n\t\t\t\t\tlog(2, \"scrollTo(): The supplied argument is invalid. Scroll cancelled.\", scrollTarget);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn Controller;\n\t\t};\n\n\t\t/**\n\t\t * **Get** the current scrollPosition or **Set** a new method to calculate it. \n\t\t * -> **GET**:\n\t\t * When used as a getter this function will return the current scroll position. \n\t\t * To get a cached value use Controller.info(\"scrollPos\"), which will be updated in the update cycle. \n\t\t * For vertical controllers it will return the top scroll offset and for horizontal applications it will return the left offset.\n\t\t *\n\t\t * -> **SET**:\n\t\t * When used as a setter this method prodes a way to permanently overwrite the controller's scroll position calculation. \n\t\t * A typical usecase is when the scroll position is not reflected by the containers scrollTop or scrollLeft values, but for example by the inner offset of a child container. \n\t\t * Moving a child container inside a parent is a commonly used method for several scrolling frameworks, including iScroll. \n\t\t * By providing an alternate calculation function you can make sure ScrollMagic receives the correct scroll position. \n\t\t * Please also bear in mind that your function should return y values for vertical scrolls an x for horizontals.\n\t\t *\n\t\t * To change the current scroll position please use `Controller.scrollTo()`.\n\t\t * @public\n\t\t *\n\t\t * @example\n\t\t * // get the current scroll Position\n\t\t * var scrollPos = controller.scrollPos();\n\t\t *\n\t\t * // set a new scroll position calculation method\n\t\t * controller.scrollPos(function () {\n\t\t *\treturn this.info(\"vertical\") ? -mychildcontainer.y : -mychildcontainer.x\n\t\t * });\n\t\t *\n\t\t * @param {function} [scrollPosMethod] - The function to be used for the scroll position calculation of the container.\n\t\t * @returns {(number|Controller)} Current scroll position or parent object for chaining.\n\t\t */\n\t\tthis.scrollPos = function (scrollPosMethod) {\n\t\t\tif (!arguments.length) { // get\n\t\t\t\treturn getScrollPos.call(Controller);\n\t\t\t} else { // set\n\t\t\t\tif (_util.type.Function(scrollPosMethod)) {\n\t\t\t\t\tgetScrollPos = scrollPosMethod;\n\t\t\t\t} else {\n\t\t\t\t\tlog(2, \"Provided value for method 'scrollPos' is not a function. To change the current scroll position use 'scrollTo()'.\");\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn Controller;\n\t\t};\n\n\t\t/**\n\t\t * **Get** all infos or one in particular about the controller.\n\t\t * @public\n\t\t * @example\n\t\t * // returns the current scroll position (number)\n\t\t * var scrollPos = controller.info(\"scrollPos\");\n\t\t *\n\t\t * // returns all infos as an object\n\t\t * var infos = controller.info();\n\t\t *\n\t\t * @param {string} [about] - If passed only this info will be returned instead of an object containing all. \n\t\t Valid options are:\n\t\t ** `\"size\"` => the current viewport size of the container\n\t\t ** `\"vertical\"` => true if vertical scrolling, otherwise false\n\t\t ** `\"scrollPos\"` => the current scroll position\n\t\t ** `\"scrollDirection\"` => the last known direction of the scroll\n\t\t ** `\"container\"` => the container element\n\t\t ** `\"isDocument\"` => true if container element is the document.\n\t\t * @returns {(mixed|object)} The requested info(s).\n\t\t */\n\t\tthis.info = function (about) {\n\t\t\tvar values = {\n\t\t\t\tsize: _viewPortSize,\n\t\t\t\t// contains height or width (in regard to orientation);\n\t\t\t\tvertical: _options.vertical,\n\t\t\t\tscrollPos: _scrollPos,\n\t\t\t\tscrollDirection: _scrollDirection,\n\t\t\t\tcontainer: _options.container,\n\t\t\t\tisDocument: _isDocument\n\t\t\t};\n\t\t\tif (!arguments.length) { // get all as an object\n\t\t\t\treturn values;\n\t\t\t} else if (values[about] !== undefined) {\n\t\t\t\treturn values[about];\n\t\t\t} else {\n\t\t\t\tlog(1, \"ERROR: option \\\"\" + about + \"\\\" is not available\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * **Get** or **Set** the current loglevel option value.\n\t\t * @public\n\t\t *\n\t\t * @example\n\t\t * // get the current value\n\t\t * var loglevel = controller.loglevel();\n\t\t *\n\t\t * // set a new value\n\t\t * controller.loglevel(3);\n\t\t *\n\t\t * @param {number} [newLoglevel] - The new loglevel setting of the Controller. `[0-3]`\n\t\t * @returns {(number|Controller)} Current loglevel or parent object for chaining.\n\t\t */\n\t\tthis.loglevel = function (newLoglevel) {\n\t\t\tif (!arguments.length) { // get\n\t\t\t\treturn _options.loglevel;\n\t\t\t} else if (_options.loglevel != newLoglevel) { // set\n\t\t\t\t_options.loglevel = newLoglevel;\n\t\t\t}\n\t\t\treturn Controller;\n\t\t};\n\n\t\t/**\n\t\t * **Get** or **Set** the current enabled state of the controller. \n\t\t * This can be used to disable all Scenes connected to the controller without destroying or removing them.\n\t\t * @public\n\t\t *\n\t\t * @example\n\t\t * // get the current value\n\t\t * var enabled = controller.enabled();\n\t\t *\n\t\t * // disable the controller\n\t\t * controller.enabled(false);\n\t\t *\n\t\t * @param {boolean} [newState] - The new enabled state of the controller `true` or `false`.\n\t\t * @returns {(boolean|Controller)} Current enabled state or parent object for chaining.\n\t\t */\n\t\tthis.enabled = function (newState) {\n\t\t\tif (!arguments.length) { // get\n\t\t\t\treturn _enabled;\n\t\t\t} else if (_enabled != newState) { // set\n\t\t\t\t_enabled = !! newState;\n\t\t\t\tController.updateScene(_sceneObjects, true);\n\t\t\t}\n\t\t\treturn Controller;\n\t\t};\n\n\t\t/**\n\t\t * Destroy the Controller, all Scenes and everything.\n\t\t * @public\n\t\t *\n\t\t * @example\n\t\t * // without resetting the scenes\n\t\t * controller = controller.destroy();\n\t\t *\n\t\t * // with scene reset\n\t\t * controller = controller.destroy(true);\n\t\t *\n\t\t * @param {boolean} [resetScenes=false] - If `true` the pins and tweens (if existent) of all scenes will be reset.\n\t\t * @returns {null} Null to unset handler variables.\n\t\t */\n\t\tthis.destroy = function (resetScenes) {\n\t\t\twindow.clearTimeout(_refreshTimeout);\n\t\t\tvar i = _sceneObjects.length;\n\t\t\twhile (i--) {\n\t\t\t\t_sceneObjects[i].destroy(resetScenes);\n\t\t\t}\n\t\t\t_options.container.removeEventListener(\"resize\", onChange);\n\t\t\t_options.container.removeEventListener(\"scroll\", onChange);\n\t\t\t_util.cAF(_updateTimeout);\n\t\t\tlog(3, \"destroyed \" + NAMESPACE + \" (reset: \" + (resetScenes ? \"true\" : \"false\") + \")\");\n\t\t\treturn null;\n\t\t};\n\n\t\t// INIT\n\t\tconstruct();\n\t\treturn Controller;\n\t};\n\n\t// store pagewide controller options\n\tvar CONTROLLER_OPTIONS = {\n\t\tdefaults: {\n\t\t\tcontainer: window,\n\t\t\tvertical: true,\n\t\t\tglobalSceneOptions: {},\n\t\t\tloglevel: 2,\n\t\t\trefreshInterval: 100\n\t\t}\n\t};\n/*\n * method used to add an option to ScrollMagic Scenes.\n */\n\tScrollMagic.Controller.addOption = function (name, defaultValue) {\n\t\tCONTROLLER_OPTIONS.defaults[name] = defaultValue;\n\t};\n\t// instance extension function for plugins\n\tScrollMagic.Controller.extend = function (extension) {\n\t\tvar oldClass = this;\n\t\tScrollMagic.Controller = function () {\n\t\t\toldClass.apply(this, arguments);\n\t\t\tthis.$super = _util.extend({}, this); // copy parent state\n\t\t\treturn extension.apply(this, arguments) || this;\n\t\t};\n\t\t_util.extend(ScrollMagic.Controller, oldClass); // copy properties\n\t\tScrollMagic.Controller.prototype = oldClass.prototype; // copy prototype\n\t\tScrollMagic.Controller.prototype.constructor = ScrollMagic.Controller; // restore constructor\n\t};\n\n\n\t/**\n\t * A Scene defines where the controller should react and how.\n\t *\n\t * @class\n\t *\n\t * @example\n\t * // create a standard scene and add it to a controller\n\t * new ScrollMagic.Scene()\n\t *\t\t.addTo(controller);\n\t *\n\t * // create a scene with custom options and assign a handler to it.\n\t * var scene = new ScrollMagic.Scene({\n\t * \t\tduration: 100,\n\t *\t\toffset: 200,\n\t *\t\ttriggerHook: \"onEnter\",\n\t *\t\treverse: false\n\t * });\n\t *\n\t * @param {object} [options] - Options for the Scene. The options can be updated at any time. \n\t Instead of setting the options for each scene individually you can also set them globally in the controller as the controllers `globalSceneOptions` option. The object accepts the same properties as the ones below. \n\t When a scene is added to the controller the options defined using the Scene constructor will be overwritten by those set in `globalSceneOptions`.\n\t * @param {(number|function)} [options.duration=0] - The duration of the scene. \n\t If `0` tweens will auto-play when reaching the scene start point, pins will be pinned indefinetly starting at the start position. \n\t A function retuning the duration value is also supported. Please see `Scene.duration()` for details.\n\t * @param {number} [options.offset=0] - Offset Value for the Trigger Position. If no triggerElement is defined this will be the scroll distance from the start of the page, after which the scene will start.\n\t * @param {(string|object)} [options.triggerElement=null] - Selector or DOM object that defines the start of the scene. If undefined the scene will start right at the start of the page (unless an offset is set).\n\t * @param {(number|string)} [options.triggerHook=\"onCenter\"] - Can be a number between 0 and 1 defining the position of the trigger Hook in relation to the viewport. \n\t Can also be defined using a string:\n\t ** `\"onEnter\"` => `1`\n\t ** `\"onCenter\"` => `0.5`\n\t ** `\"onLeave\"` => `0`\n\t * @param {boolean} [options.reverse=true] - Should the scene reverse, when scrolling up?\n\t * @param {number} [options.loglevel=2] - Loglevel for debugging. Note that logging is disabled in the minified version of ScrollMagic.\n\t ** `0` => silent\n\t ** `1` => errors\n\t ** `2` => errors, warnings\n\t ** `3` => errors, warnings, debuginfo\n\t * \n\t */\n\tScrollMagic.Scene = function (options) {\n\n/*\n\t * ----------------------------------------------------------------\n\t * settings\n\t * ----------------------------------------------------------------\n\t */\n\n\t\tvar\n\t\tNAMESPACE = 'ScrollMagic.Scene',\n\t\t\tSCENE_STATE_BEFORE = 'BEFORE',\n\t\t\tSCENE_STATE_DURING = 'DURING',\n\t\t\tSCENE_STATE_AFTER = 'AFTER',\n\t\t\tDEFAULT_OPTIONS = SCENE_OPTIONS.defaults;\n\n/*\n\t * ----------------------------------------------------------------\n\t * private vars\n\t * ----------------------------------------------------------------\n\t */\n\n\t\tvar\n\t\tScene = this,\n\t\t\t_options = _util.extend({}, DEFAULT_OPTIONS, options),\n\t\t\t_state = SCENE_STATE_BEFORE,\n\t\t\t_progress = 0,\n\t\t\t_scrollOffset = {\n\t\t\t\tstart: 0,\n\t\t\t\tend: 0\n\t\t\t},\n\t\t\t// reflects the controllers's scroll position for the start and end of the scene respectively\n\t\t\t_triggerPos = 0,\n\t\t\t_enabled = true,\n\t\t\t_durationUpdateMethod, _controller;\n\n\t\t/**\n\t\t * Internal constructor function of the ScrollMagic Scene\n\t\t * @private\n\t\t */\n\t\tvar construct = function () {\n\t\t\tfor (var key in _options) { // check supplied options\n\t\t\t\tif (!DEFAULT_OPTIONS.hasOwnProperty(key)) {\n\t\t\t\t\tlog(2, \"WARNING: Unknown option \\\"\" + key + \"\\\"\");\n\t\t\t\t\tdelete _options[key];\n\t\t\t\t}\n\t\t\t}\n\t\t\t// add getters/setters for all possible options\n\t\t\tfor (var optionName in DEFAULT_OPTIONS) {\n\t\t\t\taddSceneOption(optionName);\n\t\t\t}\n\t\t\t// validate all options\n\t\t\tvalidateOption();\n\t\t};\n\n/*\n * ----------------------------------------------------------------\n * Event Management\n * ----------------------------------------------------------------\n */\n\n\t\tvar _listeners = {};\n\t\t/**\n\t\t * Scene start event. \n\t\t * Fires whenever the scroll position its the starting point of the scene. \n\t\t * It will also fire when scrolling back up going over the start position of the scene. If you want something to happen only when scrolling down/right, use the scrollDirection parameter passed to the callback.\n\t\t *\n\t\t * For details on this event and the order in which it is fired, please review the {@link Scene.progress} method.\n\t\t *\n\t\t * @event ScrollMagic.Scene#start\n\t\t *\n\t\t * @example\n\t\t * scene.on(\"start\", function (event) {\n\t\t * \tconsole.log(\"Hit start point of scene.\");\n\t\t * });\n\t\t *\n\t\t * @property {object} event - The event Object passed to each callback\n\t\t * @property {string} event.type - The name of the event\n\t\t * @property {Scene} event.target - The Scene object that triggered this event\n\t\t * @property {number} event.progress - Reflects the current progress of the scene\n\t\t * @property {string} event.state - The current state of the scene `\"BEFORE\"` or `\"DURING\"`\n\t\t * @property {string} event.scrollDirection - Indicates which way we are scrolling `\"PAUSED\"`, `\"FORWARD\"` or `\"REVERSE\"`\n\t\t */\n\t\t/**\n\t\t * Scene end event. \n\t\t * Fires whenever the scroll position its the ending point of the scene. \n\t\t * It will also fire when scrolling back up from after the scene and going over its end position. If you want something to happen only when scrolling down/right, use the scrollDirection parameter passed to the callback.\n\t\t *\n\t\t * For details on this event and the order in which it is fired, please review the {@link Scene.progress} method.\n\t\t *\n\t\t * @event ScrollMagic.Scene#end\n\t\t *\n\t\t * @example\n\t\t * scene.on(\"end\", function (event) {\n\t\t * \tconsole.log(\"Hit end point of scene.\");\n\t\t * });\n\t\t *\n\t\t * @property {object} event - The event Object passed to each callback\n\t\t * @property {string} event.type - The name of the event\n\t\t * @property {Scene} event.target - The Scene object that triggered this event\n\t\t * @property {number} event.progress - Reflects the current progress of the scene\n\t\t * @property {string} event.state - The current state of the scene `\"DURING\"` or `\"AFTER\"`\n\t\t * @property {string} event.scrollDirection - Indicates which way we are scrolling `\"PAUSED\"`, `\"FORWARD\"` or `\"REVERSE\"`\n\t\t */\n\t\t/**\n\t\t * Scene enter event. \n\t\t * Fires whenever the scene enters the \"DURING\" state. \n\t\t * Keep in mind that it doesn't matter if the scene plays forward or backward: This event always fires when the scene enters its active scroll timeframe, regardless of the scroll-direction.\n\t\t *\n\t\t * For details on this event and the order in which it is fired, please review the {@link Scene.progress} method.\n\t\t *\n\t\t * @event ScrollMagic.Scene#enter\n\t\t *\n\t\t * @example\n\t\t * scene.on(\"enter\", function (event) {\n\t\t * \tconsole.log(\"Scene entered.\");\n\t\t * });\n\t\t *\n\t\t * @property {object} event - The event Object passed to each callback\n\t\t * @property {string} event.type - The name of the event\n\t\t * @property {Scene} event.target - The Scene object that triggered this event\n\t\t * @property {number} event.progress - Reflects the current progress of the scene\n\t\t * @property {string} event.state - The current state of the scene - always `\"DURING\"`\n\t\t * @property {string} event.scrollDirection - Indicates which way we are scrolling `\"PAUSED\"`, `\"FORWARD\"` or `\"REVERSE\"`\n\t\t */\n\t\t/**\n\t\t * Scene leave event. \n\t\t * Fires whenever the scene's state goes from \"DURING\" to either \"BEFORE\" or \"AFTER\". \n\t\t * Keep in mind that it doesn't matter if the scene plays forward or backward: This event always fires when the scene leaves its active scroll timeframe, regardless of the scroll-direction.\n\t\t *\n\t\t * For details on this event and the order in which it is fired, please review the {@link Scene.progress} method.\n\t\t *\n\t\t * @event ScrollMagic.Scene#leave\n\t\t *\n\t\t * @example\n\t\t * scene.on(\"leave\", function (event) {\n\t\t * \tconsole.log(\"Scene left.\");\n\t\t * });\n\t\t *\n\t\t * @property {object} event - The event Object passed to each callback\n\t\t * @property {string} event.type - The name of the event\n\t\t * @property {Scene} event.target - The Scene object that triggered this event\n\t\t * @property {number} event.progress - Reflects the current progress of the scene\n\t\t * @property {string} event.state - The current state of the scene `\"BEFORE\"` or `\"AFTER\"`\n\t\t * @property {string} event.scrollDirection - Indicates which way we are scrolling `\"PAUSED\"`, `\"FORWARD\"` or `\"REVERSE\"`\n\t\t */\n\t\t/**\n\t\t * Scene update event. \n\t\t * Fires whenever the scene is updated (but not necessarily changes the progress).\n\t\t *\n\t\t * @event ScrollMagic.Scene#update\n\t\t *\n\t\t * @example\n\t\t * scene.on(\"update\", function (event) {\n\t\t * \tconsole.log(\"Scene updated.\");\n\t\t * });\n\t\t *\n\t\t * @property {object} event - The event Object passed to each callback\n\t\t * @property {string} event.type - The name of the event\n\t\t * @property {Scene} event.target - The Scene object that triggered this event\n\t\t * @property {number} event.startPos - The starting position of the scene (in relation to the conainer)\n\t\t * @property {number} event.endPos - The ending position of the scene (in relation to the conainer)\n\t\t * @property {number} event.scrollPos - The current scroll position of the container\n\t\t */\n\t\t/**\n\t\t * Scene progress event. \n\t\t * Fires whenever the progress of the scene changes.\n\t\t *\n\t\t * For details on this event and the order in which it is fired, please review the {@link Scene.progress} method.\n\t\t *\n\t\t * @event ScrollMagic.Scene#progress\n\t\t *\n\t\t * @example\n\t\t * scene.on(\"progress\", function (event) {\n\t\t * \tconsole.log(\"Scene progress changed to \" + event.progress);\n\t\t * });\n\t\t *\n\t\t * @property {object} event - The event Object passed to each callback\n\t\t * @property {string} event.type - The name of the event\n\t\t * @property {Scene} event.target - The Scene object that triggered this event\n\t\t * @property {number} event.progress - Reflects the current progress of the scene\n\t\t * @property {string} event.state - The current state of the scene `\"BEFORE\"`, `\"DURING\"` or `\"AFTER\"`\n\t\t * @property {string} event.scrollDirection - Indicates which way we are scrolling `\"PAUSED\"`, `\"FORWARD\"` or `\"REVERSE\"`\n\t\t */\n\t\t/**\n\t\t * Scene change event. \n\t\t * Fires whenvever a property of the scene is changed.\n\t\t *\n\t\t * @event ScrollMagic.Scene#change\n\t\t *\n\t\t * @example\n\t\t * scene.on(\"change\", function (event) {\n\t\t * \tconsole.log(\"Scene Property \\\"\" + event.what + \"\\\" changed to \" + event.newval);\n\t\t * });\n\t\t *\n\t\t * @property {object} event - The event Object passed to each callback\n\t\t * @property {string} event.type - The name of the event\n\t\t * @property {Scene} event.target - The Scene object that triggered this event\n\t\t * @property {string} event.what - Indicates what value has been changed\n\t\t * @property {mixed} event.newval - The new value of the changed property\n\t\t */\n\t\t/**\n\t\t * Scene shift event. \n\t\t * Fires whenvever the start or end **scroll offset** of the scene change.\n\t\t * This happens explicitely, when one of these values change: `offset`, `duration` or `triggerHook`.\n\t\t * It will fire implicitly when the `triggerElement` changes, if the new element has a different position (most cases).\n\t\t * It will also fire implicitly when the size of the container changes and the triggerHook is anything other than `onLeave`.\n\t\t *\n\t\t * @event ScrollMagic.Scene#shift\n\t\t * @since 1.1.0\n\t\t *\n\t\t * @example\n\t\t * scene.on(\"shift\", function (event) {\n\t\t * \tconsole.log(\"Scene moved, because the \" + event.reason + \" has changed.)\");\n\t\t * });\n\t\t *\n\t\t * @property {object} event - The event Object passed to each callback\n\t\t * @property {string} event.type - The name of the event\n\t\t * @property {Scene} event.target - The Scene object that triggered this event\n\t\t * @property {string} event.reason - Indicates why the scene has shifted\n\t\t */\n\t\t/**\n\t\t * Scene destroy event. \n\t\t * Fires whenvever the scene is destroyed.\n\t\t * This can be used to tidy up custom behaviour used in events.\n\t\t *\n\t\t * @event ScrollMagic.Scene#destroy\n\t\t * @since 1.1.0\n\t\t *\n\t\t * @example\n\t\t * scene.on(\"enter\", function (event) {\n\t\t * // add custom action\n\t\t * $(\"#my-elem\").left(\"200\");\n\t\t * })\n\t\t * .on(\"destroy\", function (event) {\n\t\t * // reset my element to start position\n\t\t * if (event.reset) {\n\t\t * $(\"#my-elem\").left(\"0\");\n\t\t * }\n\t\t * });\n\t\t *\n\t\t * @property {object} event - The event Object passed to each callback\n\t\t * @property {string} event.type - The name of the event\n\t\t * @property {Scene} event.target - The Scene object that triggered this event\n\t\t * @property {boolean} event.reset - Indicates if the destroy method was called with reset `true` or `false`.\n\t\t */\n\t\t/**\n\t\t * Scene add event. \n\t\t * Fires when the scene is added to a controller.\n\t\t * This is mostly used by plugins to know that change might be due.\n\t\t *\n\t\t * @event ScrollMagic.Scene#add\n\t\t * @since 2.0.0\n\t\t *\n\t\t * @example\n\t\t * scene.on(\"add\", function (event) {\n\t\t * \tconsole.log('Scene was added to a new controller.');\n\t\t * });\n\t\t *\n\t\t * @property {object} event - The event Object passed to each callback\n\t\t * @property {string} event.type - The name of the event\n\t\t * @property {Scene} event.target - The Scene object that triggered this event\n\t\t * @property {boolean} event.controller - The controller object the scene was added to.\n\t\t */\n\t\t/**\n\t\t * Scene remove event. \n\t\t * Fires when the scene is removed from a controller.\n\t\t * This is mostly used by plugins to know that change might be due.\n\t\t *\n\t\t * @event ScrollMagic.Scene#remove\n\t\t * @since 2.0.0\n\t\t *\n\t\t * @example\n\t\t * scene.on(\"remove\", function (event) {\n\t\t * \tconsole.log('Scene was removed from its controller.');\n\t\t * });\n\t\t *\n\t\t * @property {object} event - The event Object passed to each callback\n\t\t * @property {string} event.type - The name of the event\n\t\t * @property {Scene} event.target - The Scene object that triggered this event\n\t\t */\n\n\t\t/**\n\t\t * Add one ore more event listener. \n\t\t * The callback function will be fired at the respective event, and an object containing relevant data will be passed to the callback.\n\t\t * @method ScrollMagic.Scene#on\n\t\t *\n\t\t * @example\n\t\t * function callback (event) {\n\t\t * \t\tconsole.log(\"Event fired! (\" + event.type + \")\");\n\t\t * }\n\t\t * // add listeners\n\t\t * scene.on(\"change update progress start end enter leave\", callback);\n\t\t *\n\t\t * @param {string} names - The name or names of the event the callback should be attached to.\n\t\t * @param {function} callback - A function that should be executed, when the event is dispatched. An event object will be passed to the callback.\n\t\t * @returns {Scene} Parent object for chaining.\n\t\t */\n\t\tthis.on = function (names, callback) {\n\t\t\tif (_util.type.Function(callback)) {\n\t\t\t\tnames = names.trim().split(' ');\n\t\t\t\tnames.forEach(function (fullname) {\n\t\t\t\t\tvar\n\t\t\t\t\tnameparts = fullname.split('.'),\n\t\t\t\t\t\teventname = nameparts[0],\n\t\t\t\t\t\tnamespace = nameparts[1];\n\t\t\t\t\tif (eventname != \"*\") { // disallow wildcards\n\t\t\t\t\t\tif (!_listeners[eventname]) {\n\t\t\t\t\t\t\t_listeners[eventname] = [];\n\t\t\t\t\t\t}\n\t\t\t\t\t\t_listeners[eventname].push({\n\t\t\t\t\t\t\tnamespace: namespace || '',\n\t\t\t\t\t\t\tcallback: callback\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tlog(1, \"ERROR when calling '.on()': Supplied callback for '\" + names + \"' is not a valid function!\");\n\t\t\t}\n\t\t\treturn Scene;\n\t\t};\n\n\t\t/**\n\t\t * Remove one or more event listener.\n\t\t * @method ScrollMagic.Scene#off\n\t\t *\n\t\t * @example\n\t\t * function callback (event) {\n\t\t * \t\tconsole.log(\"Event fired! (\" + event.type + \")\");\n\t\t * }\n\t\t * // add listeners\n\t\t * scene.on(\"change update\", callback);\n\t\t * // remove listeners\n\t\t * scene.off(\"change update\", callback);\n\t\t *\n\t\t * @param {string} names - The name or names of the event that should be removed.\n\t\t * @param {function} [callback] - A specific callback function that should be removed. If none is passed all callbacks to the event listener will be removed.\n\t\t * @returns {Scene} Parent object for chaining.\n\t\t */\n\t\tthis.off = function (names, callback) {\n\t\t\tif (!names) {\n\t\t\t\tlog(1, \"ERROR: Invalid event name supplied.\");\n\t\t\t\treturn Scene;\n\t\t\t}\n\t\t\tnames = names.trim().split(' ');\n\t\t\tnames.forEach(function (fullname, key) {\n\t\t\t\tvar\n\t\t\t\tnameparts = fullname.split('.'),\n\t\t\t\t\teventname = nameparts[0],\n\t\t\t\t\tnamespace = nameparts[1] || '',\n\t\t\t\t\tremoveList = eventname === '*' ? Object.keys(_listeners) : [eventname];\n\t\t\t\tremoveList.forEach(function (remove) {\n\t\t\t\t\tvar\n\t\t\t\t\tlist = _listeners[remove] || [],\n\t\t\t\t\t\ti = list.length;\n\t\t\t\t\twhile (i--) {\n\t\t\t\t\t\tvar listener = list[i];\n\t\t\t\t\t\tif (listener && (namespace === listener.namespace || namespace === '*') && (!callback || callback == listener.callback)) {\n\t\t\t\t\t\t\tlist.splice(i, 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!list.length) {\n\t\t\t\t\t\tdelete _listeners[remove];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t\treturn Scene;\n\t\t};\n\n\t\t/**\n\t\t * Trigger an event.\n\t\t * @method ScrollMagic.Scene#trigger\n\t\t *\n\t\t * @example\n\t\t * this.trigger(\"change\");\n\t\t *\n\t\t * @param {string} name - The name of the event that should be triggered.\n\t\t * @param {object} [vars] - An object containing info that should be passed to the callback.\n\t\t * @returns {Scene} Parent object for chaining.\n\t\t */\n\t\tthis.trigger = function (name, vars) {\n\t\t\tif (name) {\n\t\t\t\tvar\n\t\t\t\tnameparts = name.trim().split('.'),\n\t\t\t\t\teventname = nameparts[0],\n\t\t\t\t\tnamespace = nameparts[1],\n\t\t\t\t\tlisteners = _listeners[eventname];\n\t\t\t\tlog(3, 'event fired:', eventname, vars ? \"->\" : '', vars || '');\n\t\t\t\tif (listeners) {\n\t\t\t\t\tlisteners.forEach(function (listener, key) {\n\t\t\t\t\t\tif (!namespace || namespace === listener.namespace) {\n\t\t\t\t\t\t\tlistener.callback.call(Scene, new ScrollMagic.Event(eventname, listener.namespace, Scene, vars));\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlog(1, \"ERROR: Invalid event name supplied.\");\n\t\t\t}\n\t\t\treturn Scene;\n\t\t};\n\n\t\t// set event listeners\n\t\tScene.on(\"change.internal\", function (e) {\n\t\t\tif (e.what !== \"loglevel\" && e.what !== \"tweenChanges\") { // no need for a scene update scene with these options...\n\t\t\t\tif (e.what === \"triggerElement\") {\n\t\t\t\t\tupdateTriggerElementPosition();\n\t\t\t\t} else if (e.what === \"reverse\") { // the only property left that may have an impact on the current scene state. Everything else is handled by the shift event.\n\t\t\t\t\tScene.update();\n\t\t\t\t}\n\t\t\t}\n\t\t}).on(\"shift.internal\", function (e) {\n\t\t\tupdateScrollOffset();\n\t\t\tScene.update(); // update scene to reflect new position\n\t\t});\n\n\t\t/**\n\t\t * Send a debug message to the console.\n\t\t * @private\n\t\t * but provided publicly with _log for plugins\n\t\t *\n\t\t * @param {number} loglevel - The loglevel required to initiate output for the message.\n\t\t * @param {...mixed} output - One or more variables that should be passed to the console.\n\t\t */\n\t\tvar log = this._log = function (loglevel, output) {\n\t\t\tif (_options.loglevel >= loglevel) {\n\t\t\t\tArray.prototype.splice.call(arguments, 1, 0, \"(\" + NAMESPACE + \") ->\");\n\t\t\t\t_util.log.apply(window, arguments);\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Add the scene to a controller. \n\t\t * This is the equivalent to `Controller.addScene(scene)`.\n\t\t * @method ScrollMagic.Scene#addTo\n\t\t *\n\t\t * @example\n\t\t * // add a scene to a ScrollMagic Controller\n\t\t * scene.addTo(controller);\n\t\t *\n\t\t * @param {ScrollMagic.Controller} controller - The controller to which the scene should be added.\n\t\t * @returns {Scene} Parent object for chaining.\n\t\t */\n\t\tthis.addTo = function (controller) {\n\t\t\tif (!(controller instanceof ScrollMagic.Controller)) {\n\t\t\t\tlog(1, \"ERROR: supplied argument of 'addTo()' is not a valid ScrollMagic Controller\");\n\t\t\t} else if (_controller != controller) {\n\t\t\t\t// new controller\n\t\t\t\tif (_controller) { // was associated to a different controller before, so remove it...\n\t\t\t\t\t_controller.removeScene(Scene);\n\t\t\t\t}\n\t\t\t\t_controller = controller;\n\t\t\t\tvalidateOption();\n\t\t\t\tupdateDuration(true);\n\t\t\t\tupdateTriggerElementPosition(true);\n\t\t\t\tupdateScrollOffset();\n\t\t\t\t_controller.info(\"container\").addEventListener('resize', onContainerResize);\n\t\t\t\tcontroller.addScene(Scene);\n\t\t\t\tScene.trigger(\"add\", {\n\t\t\t\t\tcontroller: _controller\n\t\t\t\t});\n\t\t\t\tlog(3, \"added \" + NAMESPACE + \" to controller\");\n\t\t\t\tScene.update();\n\t\t\t}\n\t\t\treturn Scene;\n\t\t};\n\n\t\t/**\n\t\t * **Get** or **Set** the current enabled state of the scene. \n\t\t * This can be used to disable this scene without removing or destroying it.\n\t\t * @method ScrollMagic.Scene#enabled\n\t\t *\n\t\t * @example\n\t\t * // get the current value\n\t\t * var enabled = scene.enabled();\n\t\t *\n\t\t * // disable the scene\n\t\t * scene.enabled(false);\n\t\t *\n\t\t * @param {boolean} [newState] - The new enabled state of the scene `true` or `false`.\n\t\t * @returns {(boolean|Scene)} Current enabled state or parent object for chaining.\n\t\t */\n\t\tthis.enabled = function (newState) {\n\t\t\tif (!arguments.length) { // get\n\t\t\t\treturn _enabled;\n\t\t\t} else if (_enabled != newState) { // set\n\t\t\t\t_enabled = !! newState;\n\t\t\t\tScene.update(true);\n\t\t\t}\n\t\t\treturn Scene;\n\t\t};\n\n\t\t/**\n\t\t * Remove the scene from the controller. \n\t\t * This is the equivalent to `Controller.removeScene(scene)`.\n\t\t * The scene will not be updated anymore until you readd it to a controller.\n\t\t * To remove the pin or the tween you need to call removeTween() or removePin() respectively.\n\t\t * @method ScrollMagic.Scene#remove\n\t\t * @example\n\t\t * // remove the scene from its controller\n\t\t * scene.remove();\n\t\t *\n\t\t * @returns {Scene} Parent object for chaining.\n\t\t */\n\t\tthis.remove = function () {\n\t\t\tif (_controller) {\n\t\t\t\t_controller.info(\"container\").removeEventListener('resize', onContainerResize);\n\t\t\t\tvar tmpParent = _controller;\n\t\t\t\t_controller = undefined;\n\t\t\t\ttmpParent.removeScene(Scene);\n\t\t\t\tScene.trigger(\"remove\");\n\t\t\t\tlog(3, \"removed \" + NAMESPACE + \" from controller\");\n\t\t\t}\n\t\t\treturn Scene;\n\t\t};\n\n\t\t/**\n\t\t * Destroy the scene and everything.\n\t\t * @method ScrollMagic.Scene#destroy\n\t\t * @example\n\t\t * // destroy the scene without resetting the pin and tween to their initial positions\n\t\t * scene = scene.destroy();\n\t\t *\n\t\t * // destroy the scene and reset the pin and tween\n\t\t * scene = scene.destroy(true);\n\t\t *\n\t\t * @param {boolean} [reset=false] - If `true` the pin and tween (if existent) will be reset.\n\t\t * @returns {null} Null to unset handler variables.\n\t\t */\n\t\tthis.destroy = function (reset) {\n\t\t\tScene.trigger(\"destroy\", {\n\t\t\t\treset: reset\n\t\t\t});\n\t\t\tScene.remove();\n\t\t\tScene.off(\"*.*\");\n\t\t\tlog(3, \"destroyed \" + NAMESPACE + \" (reset: \" + (reset ? \"true\" : \"false\") + \")\");\n\t\t\treturn null;\n\t\t};\n\n\n\t\t/**\n\t\t * Updates the Scene to reflect the current state. \n\t\t * This is the equivalent to `Controller.updateScene(scene, immediately)`. \n\t\t * The update method calculates the scene's start and end position (based on the trigger element, trigger hook, duration and offset) and checks it against the current scroll position of the container. \n\t\t * It then updates the current scene state accordingly (or does nothing, if the state is already correct) – Pins will be set to their correct position and tweens will be updated to their correct progress.\n\t\t * This means an update doesn't necessarily result in a progress change. The `progress` event will be fired if the progress has indeed changed between this update and the last. \n\t\t * _**NOTE:** This method gets called constantly whenever ScrollMagic detects a change. The only application for you is if you change something outside of the realm of ScrollMagic, like moving the trigger or changing tween parameters._\n\t\t * @method ScrollMagic.Scene#update\n\t\t * @example\n\t\t * // update the scene on next tick\n\t\t * scene.update();\n\t\t *\n\t\t * // update the scene immediately\n\t\t * scene.update(true);\n\t\t *\n\t\t * @fires Scene.update\n\t\t *\n\t\t * @param {boolean} [immediately=false] - If `true` the update will be instant, if `false` it will wait until next update cycle (better performance).\n\t\t * @returns {Scene} Parent object for chaining.\n\t\t */\n\t\tthis.update = function (immediately) {\n\t\t\tif (_controller) {\n\t\t\t\tif (immediately) {\n\t\t\t\t\tif (_controller.enabled() && _enabled) {\n\t\t\t\t\t\tvar\n\t\t\t\t\t\tscrollPos = _controller.info(\"scrollPos\"),\n\t\t\t\t\t\t\tnewProgress;\n\n\t\t\t\t\t\tif (_options.duration > 0) {\n\t\t\t\t\t\t\tnewProgress = (scrollPos - _scrollOffset.start) / (_scrollOffset.end - _scrollOffset.start);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnewProgress = scrollPos >= _scrollOffset.start ? 1 : 0;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tScene.trigger(\"update\", {\n\t\t\t\t\t\t\tstartPos: _scrollOffset.start,\n\t\t\t\t\t\t\tendPos: _scrollOffset.end,\n\t\t\t\t\t\t\tscrollPos: scrollPos\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tScene.progress(newProgress);\n\t\t\t\t\t} else if (_pin && _state === SCENE_STATE_DURING) {\n\t\t\t\t\t\tupdatePinState(true); // unpin in position\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t_controller.updateScene(Scene, false);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn Scene;\n\t\t};\n\n\t\t/**\n\t\t * Updates dynamic scene variables like the trigger element position or the duration.\n\t\t * This method is automatically called in regular intervals from the controller. See {@link ScrollMagic.Controller} option `refreshInterval`.\n\t\t * \n\t\t * You can call it to minimize lag, for example when you intentionally change the position of the triggerElement.\n\t\t * If you don't it will simply be updated in the next refresh interval of the container, which is usually sufficient.\n\t\t *\n\t\t * @method ScrollMagic.Scene#refresh\n\t\t * @since 1.1.0\n\t\t * @example\n\t\t * scene = new ScrollMagic.Scene({triggerElement: \"#trigger\"});\n\t\t * \n\t\t * // change the position of the trigger\n\t\t * $(\"#trigger\").css(\"top\", 500);\n\t\t * // immediately let the scene know of this change\n\t\t * scene.refresh();\n\t\t *\n\t\t * @fires {@link Scene.shift}, if the trigger element position or the duration changed\n\t\t * @fires {@link Scene.change}, if the duration changed\n\t\t *\n\t\t * @returns {Scene} Parent object for chaining.\n\t\t */\n\t\tthis.refresh = function () {\n\t\t\tupdateDuration();\n\t\t\tupdateTriggerElementPosition();\n\t\t\t// update trigger element position\n\t\t\treturn Scene;\n\t\t};\n\n\t\t/**\n\t\t * **Get** or **Set** the scene's progress. \n\t\t * Usually it shouldn't be necessary to use this as a setter, as it is set automatically by scene.update(). \n\t\t * The order in which the events are fired depends on the duration of the scene:\n\t\t * 1. Scenes with `duration == 0`: \n\t\t * Scenes that have no duration by definition have no ending. Thus the `end` event will never be fired. \n\t\t * When the trigger position of the scene is passed the events are always fired in this order: \n\t\t * `enter`, `start`, `progress` when scrolling forward \n\t\t * and \n\t\t * `progress`, `start`, `leave` when scrolling in reverse\n\t\t * 2. Scenes with `duration > 0`: \n\t\t * Scenes with a set duration have a defined start and end point. \n\t\t * When scrolling past the start position of the scene it will fire these events in this order: \n\t\t * `enter`, `start`, `progress` \n\t\t * When continuing to scroll and passing the end point it will fire these events: \n\t\t * `progress`, `end`, `leave` \n\t\t * When reversing through the end point these events are fired: \n\t\t * `enter`, `end`, `progress` \n\t\t * And when continuing to scroll past the start position in reverse it will fire: \n\t\t * `progress`, `start`, `leave` \n\t\t * In between start and end the `progress` event will be called constantly, whenever the progress changes.\n\t\t * \n\t\t * In short: \n\t\t * `enter` events will always trigger **before** the progress update and `leave` envents will trigger **after** the progress update. \n\t\t * `start` and `end` will always trigger at their respective position.\n\t\t * \n\t\t * Please review the event descriptions for details on the events and the event object that is passed to the callback.\n\t\t * \n\t\t * @method ScrollMagic.Scene#progress\n\t\t * @example\n\t\t * // get the current scene progress\n\t\t * var progress = scene.progress();\n\t\t *\n\t\t * // set new scene progress\n\t\t * scene.progress(0.3);\n\t\t *\n\t\t * @fires {@link Scene.enter}, when used as setter\n\t\t * @fires {@link Scene.start}, when used as setter\n\t\t * @fires {@link Scene.progress}, when used as setter\n\t\t * @fires {@link Scene.end}, when used as setter\n\t\t * @fires {@link Scene.leave}, when used as setter\n\t\t *\n\t\t * @param {number} [progress] - The new progress value of the scene `[0-1]`.\n\t\t * @returns {number} `get` - Current scene progress.\n\t\t * @returns {Scene} `set` - Parent object for chaining.\n\t\t */\n\t\tthis.progress = function (progress) {\n\t\t\tif (!arguments.length) { // get\n\t\t\t\treturn _progress;\n\t\t\t} else { // set\n\t\t\t\tvar\n\t\t\t\tdoUpdate = false,\n\t\t\t\t\toldState = _state,\n\t\t\t\t\tscrollDirection = _controller ? _controller.info(\"scrollDirection\") : 'PAUSED',\n\t\t\t\t\treverseOrForward = _options.reverse || progress >= _progress;\n\t\t\t\tif (_options.duration === 0) {\n\t\t\t\t\t// zero duration scenes\n\t\t\t\t\tdoUpdate = _progress != progress;\n\t\t\t\t\t_progress = progress < 1 && reverseOrForward ? 0 : 1;\n\t\t\t\t\t_state = _progress === 0 ? SCENE_STATE_BEFORE : SCENE_STATE_DURING;\n\t\t\t\t} else {\n\t\t\t\t\t// scenes with start and end\n\t\t\t\t\tif (progress < 0 && _state !== SCENE_STATE_BEFORE && reverseOrForward) {\n\t\t\t\t\t\t// go back to initial state\n\t\t\t\t\t\t_progress = 0;\n\t\t\t\t\t\t_state = SCENE_STATE_BEFORE;\n\t\t\t\t\t\tdoUpdate = true;\n\t\t\t\t\t} else if (progress >= 0 && progress < 1 && reverseOrForward) {\n\t\t\t\t\t\t_progress = progress;\n\t\t\t\t\t\t_state = SCENE_STATE_DURING;\n\t\t\t\t\t\tdoUpdate = true;\n\t\t\t\t\t} else if (progress >= 1 && _state !== SCENE_STATE_AFTER) {\n\t\t\t\t\t\t_progress = 1;\n\t\t\t\t\t\t_state = SCENE_STATE_AFTER;\n\t\t\t\t\t\tdoUpdate = true;\n\t\t\t\t\t} else if (_state === SCENE_STATE_DURING && !reverseOrForward) {\n\t\t\t\t\t\tupdatePinState(); // in case we scrolled backwards mid-scene and reverse is disabled => update the pin position, so it doesn't move back as well.\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (doUpdate) {\n\t\t\t\t\t// fire events\n\t\t\t\t\tvar\n\t\t\t\t\teventVars = {\n\t\t\t\t\t\tprogress: _progress,\n\t\t\t\t\t\tstate: _state,\n\t\t\t\t\t\tscrollDirection: scrollDirection\n\t\t\t\t\t},\n\t\t\t\t\t\tstateChanged = _state != oldState;\n\n\t\t\t\t\tvar trigger = function (eventName) { // tmp helper to simplify code\n\t\t\t\t\t\tScene.trigger(eventName, eventVars);\n\t\t\t\t\t};\n\n\t\t\t\t\tif (stateChanged) { // enter events\n\t\t\t\t\t\tif (oldState !== SCENE_STATE_DURING) {\n\t\t\t\t\t\t\ttrigger(\"enter\");\n\t\t\t\t\t\t\ttrigger(oldState === SCENE_STATE_BEFORE ? \"start\" : \"end\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\ttrigger(\"progress\");\n\t\t\t\t\tif (stateChanged) { // leave events\n\t\t\t\t\t\tif (_state !== SCENE_STATE_DURING) {\n\t\t\t\t\t\t\ttrigger(_state === SCENE_STATE_BEFORE ? \"start\" : \"end\");\n\t\t\t\t\t\t\ttrigger(\"leave\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn Scene;\n\t\t\t}\n\t\t};\n\n\n\t\t/**\n\t\t * Update the start and end scrollOffset of the container.\n\t\t * The positions reflect what the controller's scroll position will be at the start and end respectively.\n\t\t * Is called, when:\n\t\t * - Scene event \"change\" is called with: offset, triggerHook, duration \n\t\t * - scroll container event \"resize\" is called\n\t\t * - the position of the triggerElement changes\n\t\t * - the controller changes -> addTo()\n\t\t * @private\n\t\t */\n\t\tvar updateScrollOffset = function () {\n\t\t\t_scrollOffset = {\n\t\t\t\tstart: _triggerPos + _options.offset\n\t\t\t};\n\t\t\tif (_controller && _options.triggerElement) {\n\t\t\t\t// take away triggerHook portion to get relative to top\n\t\t\t\t_scrollOffset.start -= _controller.info(\"size\") * _options.triggerHook;\n\t\t\t}\n\t\t\t_scrollOffset.end = _scrollOffset.start + _options.duration;\n\t\t};\n\n\t\t/**\n\t\t * Updates the duration if set to a dynamic function.\n\t\t * This method is called when the scene is added to a controller and in regular intervals from the controller through scene.refresh().\n\t\t * \n\t\t * @fires {@link Scene.change}, if the duration changed\n\t\t * @fires {@link Scene.shift}, if the duration changed\n\t\t *\n\t\t * @param {boolean} [suppressEvents=false] - If true the shift event will be suppressed.\n\t\t * @private\n\t\t */\n\t\tvar updateDuration = function (suppressEvents) {\n\t\t\t// update duration\n\t\t\tif (_durationUpdateMethod) {\n\t\t\t\tvar varname = \"duration\";\n\t\t\t\tif (changeOption(varname, _durationUpdateMethod.call(Scene)) && !suppressEvents) { // set\n\t\t\t\t\tScene.trigger(\"change\", {\n\t\t\t\t\t\twhat: varname,\n\t\t\t\t\t\tnewval: _options[varname]\n\t\t\t\t\t});\n\t\t\t\t\tScene.trigger(\"shift\", {\n\t\t\t\t\t\treason: varname\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Updates the position of the triggerElement, if present.\n\t\t * This method is called ...\n\t\t * - ... when the triggerElement is changed\n\t\t * - ... when the scene is added to a (new) controller\n\t\t * - ... in regular intervals from the controller through scene.refresh().\n\t\t * \n\t\t * @fires {@link Scene.shift}, if the position changed\n\t\t *\n\t\t * @param {boolean} [suppressEvents=false] - If true the shift event will be suppressed.\n\t\t * @private\n\t\t */\n\t\tvar updateTriggerElementPosition = function (suppressEvents) {\n\t\t\tvar\n\t\t\telementPos = 0,\n\t\t\t\ttelem = _options.triggerElement;\n\t\t\tif (_controller && telem) {\n\t\t\t\tvar\n\t\t\t\tcontrollerInfo = _controller.info(),\n\t\t\t\t\tcontainerOffset = _util.get.offset(controllerInfo.container),\n\t\t\t\t\t// container position is needed because element offset is returned in relation to document, not in relation to container.\n\t\t\t\t\tparam = controllerInfo.vertical ? \"top\" : \"left\"; // which param is of interest ?\n\t\t\t\t// if parent is spacer, use spacer position instead so correct start position is returned for pinned elements.\n\t\t\t\twhile (telem.parentNode.hasAttribute(PIN_SPACER_ATTRIBUTE)) {\n\t\t\t\t\ttelem = telem.parentNode;\n\t\t\t\t}\n\n\t\t\t\tvar elementOffset = _util.get.offset(telem);\n\n\t\t\t\tif (!controllerInfo.isDocument) { // container is not the document root, so substract scroll Position to get correct trigger element position relative to scrollcontent\n\t\t\t\t\tcontainerOffset[param] -= _controller.scrollPos();\n\t\t\t\t}\n\n\t\t\t\telementPos = elementOffset[param] - containerOffset[param];\n\t\t\t}\n\t\t\tvar changed = elementPos != _triggerPos;\n\t\t\t_triggerPos = elementPos;\n\t\t\tif (changed && !suppressEvents) {\n\t\t\t\tScene.trigger(\"shift\", {\n\t\t\t\t\treason: \"triggerElementPosition\"\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Trigger a shift event, when the container is resized and the triggerHook is > 1.\n\t\t * @private\n\t\t */\n\t\tvar onContainerResize = function (e) {\n\t\t\tif (_options.triggerHook > 0) {\n\t\t\t\tScene.trigger(\"shift\", {\n\t\t\t\t\treason: \"containerResize\"\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tvar _validate = _util.extend(SCENE_OPTIONS.validate, {\n\t\t\t// validation for duration handled internally for reference to private var _durationMethod\n\t\t\tduration: function (val) {\n\t\t\t\tif (_util.type.String(val) && val.match(/^(\\.|\\d)*\\d+%$/)) {\n\t\t\t\t\t// percentage value\n\t\t\t\t\tvar perc = parseFloat(val) / 100;\n\t\t\t\t\tval = function () {\n\t\t\t\t\t\treturn _controller ? _controller.info(\"size\") * perc : 0;\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (_util.type.Function(val)) {\n\t\t\t\t\t// function\n\t\t\t\t\t_durationUpdateMethod = val;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tval = parseFloat(_durationUpdateMethod());\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tval = -1; // will cause error below\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// val has to be float\n\t\t\t\tval = parseFloat(val);\n\t\t\t\tif (!_util.type.Number(val) || val < 0) {\n\t\t\t\t\tif (_durationUpdateMethod) {\n\t\t\t\t\t\t_durationUpdateMethod = undefined;\n\t\t\t\t\t\tthrow [\"Invalid return value of supplied function for option \\\"duration\\\":\", val];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow [\"Invalid value for option \\\"duration\\\":\", val];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn val;\n\t\t\t}\n\t\t});\n\n\t\t/**\n\t\t * Checks the validity of a specific or all options and reset to default if neccessary.\n\t\t * @private\n\t\t */\n\t\tvar validateOption = function (check) {\n\t\t\tcheck = arguments.length ? [check] : Object.keys(_validate);\n\t\t\tcheck.forEach(function (optionName, key) {\n\t\t\t\tvar value;\n\t\t\t\tif (_validate[optionName]) { // there is a validation method for this option\n\t\t\t\t\ttry { // validate value\n\t\t\t\t\t\tvalue = _validate[optionName](_options[optionName]);\n\t\t\t\t\t} catch (e) { // validation failed -> reset to default\n\t\t\t\t\t\tvalue = DEFAULT_OPTIONS[optionName];\n\t\t\t\t\t\tvar logMSG = _util.type.String(e) ? [e] : e;\n\t\t\t\t\t\tif (_util.type.Array(logMSG)) {\n\t\t\t\t\t\t\tlogMSG[0] = \"ERROR: \" + logMSG[0];\n\t\t\t\t\t\t\tlogMSG.unshift(1); // loglevel 1 for error msg\n\t\t\t\t\t\t\tlog.apply(this, logMSG);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlog(1, \"ERROR: Problem executing validation callback for option '\" + optionName + \"':\", e.message);\n\t\t\t\t\t\t}\n\t\t\t\t\t} finally {\n\t\t\t\t\t\t_options[optionName] = value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\t/**\n\t\t * Helper used by the setter/getters for scene options\n\t\t * @private\n\t\t */\n\t\tvar changeOption = function (varname, newval) {\n\t\t\tvar\n\t\t\tchanged = false,\n\t\t\t\toldval = _options[varname];\n\t\t\tif (_options[varname] != newval) {\n\t\t\t\t_options[varname] = newval;\n\t\t\t\tvalidateOption(varname); // resets to default if necessary\n\t\t\t\tchanged = oldval != _options[varname];\n\t\t\t}\n\t\t\treturn changed;\n\t\t};\n\n\t\t// generate getters/setters for all options\n\t\tvar addSceneOption = function (optionName) {\n\t\t\tif (!Scene[optionName]) {\n\t\t\t\tScene[optionName] = function (newVal) {\n\t\t\t\t\tif (!arguments.length) { // get\n\t\t\t\t\t\treturn _options[optionName];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (optionName === \"duration\") { // new duration is set, so any previously set function must be unset\n\t\t\t\t\t\t\t_durationUpdateMethod = undefined;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (changeOption(optionName, newVal)) { // set\n\t\t\t\t\t\t\tScene.trigger(\"change\", {\n\t\t\t\t\t\t\t\twhat: optionName,\n\t\t\t\t\t\t\t\tnewval: _options[optionName]\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif (SCENE_OPTIONS.shifts.indexOf(optionName) > -1) {\n\t\t\t\t\t\t\t\tScene.trigger(\"shift\", {\n\t\t\t\t\t\t\t\t\treason: optionName\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}\n\t\t\t\t\treturn Scene;\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * **Get** or **Set** the duration option value.\n\t\t * As a setter it also accepts a function returning a numeric value. \n\t\t * This is particularly useful for responsive setups.\n\t\t *\n\t\t * The duration is updated using the supplied function every time `Scene.refresh()` is called, which happens periodically from the controller (see ScrollMagic.Controller option `refreshInterval`). \n\t\t * _**NOTE:** Be aware that it's an easy way to kill performance, if you supply a function that has high CPU demand. \n\t\t * Even for size and position calculations it is recommended to use a variable to cache the value. (see example) \n\t\t * This counts double if you use the same function for multiple scenes._\n\t\t *\n\t\t * @method ScrollMagic.Scene#duration\n\t\t * @example\n\t\t * // get the current duration value\n\t\t * var duration = scene.duration();\n\t\t *\n\t\t * // set a new duration\n\t\t * scene.duration(300);\n\t\t *\n\t\t * // use a function to automatically adjust the duration to the window height.\n\t\t * var durationValueCache;\n\t\t * function getDuration () {\n\t\t * return durationValueCache;\n\t\t * }\n\t\t * function updateDuration (e) {\n\t\t * durationValueCache = window.innerHeight;\n\t\t * }\n\t\t * $(window).on(\"resize\", updateDuration); // update the duration when the window size changes\n\t\t * $(window).triggerHandler(\"resize\"); // set to initial value\n\t\t * scene.duration(getDuration); // supply duration method\n\t\t *\n\t\t * @fires {@link Scene.change}, when used as setter\n\t\t * @fires {@link Scene.shift}, when used as setter\n\t\t * @param {(number|function)} [newDuration] - The new duration of the scene.\n\t\t * @returns {number} `get` - Current scene duration.\n\t\t * @returns {Scene} `set` - Parent object for chaining.\n\t\t */\n\n\t\t/**\n\t\t * **Get** or **Set** the offset option value.\n\t\t * @method ScrollMagic.Scene#offset\n\t\t * @example\n\t\t * // get the current offset\n\t\t * var offset = scene.offset();\n\t\t *\n\t\t * // set a new offset\n\t\t * scene.offset(100);\n\t\t *\n\t\t * @fires {@link Scene.change}, when used as setter\n\t\t * @fires {@link Scene.shift}, when used as setter\n\t\t * @param {number} [newOffset] - The new offset of the scene.\n\t\t * @returns {number} `get` - Current scene offset.\n\t\t * @returns {Scene} `set` - Parent object for chaining.\n\t\t */\n\n\t\t/**\n\t\t * **Get** or **Set** the triggerElement option value.\n\t\t * Does **not** fire `Scene.shift`, because changing the trigger Element doesn't necessarily mean the start position changes. This will be determined in `Scene.refresh()`, which is automatically triggered.\n\t\t * @method ScrollMagic.Scene#triggerElement\n\t\t * @example\n\t\t * // get the current triggerElement\n\t\t * var triggerElement = scene.triggerElement();\n\t\t *\n\t\t * // set a new triggerElement using a selector\n\t\t * scene.triggerElement(\"#trigger\");\n\t\t * // set a new triggerElement using a DOM object\n\t\t * scene.triggerElement(document.getElementById(\"trigger\"));\n\t\t *\n\t\t * @fires {@link Scene.change}, when used as setter\n\t\t * @param {(string|object)} [newTriggerElement] - The new trigger element for the scene.\n\t\t * @returns {(string|object)} `get` - Current triggerElement.\n\t\t * @returns {Scene} `set` - Parent object for chaining.\n\t\t */\n\n\t\t/**\n\t\t * **Get** or **Set** the triggerHook option value.\n\t\t * @method ScrollMagic.Scene#triggerHook\n\t\t * @example\n\t\t * // get the current triggerHook value\n\t\t * var triggerHook = scene.triggerHook();\n\t\t *\n\t\t * // set a new triggerHook using a string\n\t\t * scene.triggerHook(\"onLeave\");\n\t\t * // set a new triggerHook using a number\n\t\t * scene.triggerHook(0.7);\n\t\t *\n\t\t * @fires {@link Scene.change}, when used as setter\n\t\t * @fires {@link Scene.shift}, when used as setter\n\t\t * @param {(number|string)} [newTriggerHook] - The new triggerHook of the scene. See {@link Scene} parameter description for value options.\n\t\t * @returns {number} `get` - Current triggerHook (ALWAYS numerical).\n\t\t * @returns {Scene} `set` - Parent object for chaining.\n\t\t */\n\n\t\t/**\n\t\t * **Get** or **Set** the reverse option value.\n\t\t * @method ScrollMagic.Scene#reverse\n\t\t * @example\n\t\t * // get the current reverse option\n\t\t * var reverse = scene.reverse();\n\t\t *\n\t\t * // set new reverse option\n\t\t * scene.reverse(false);\n\t\t *\n\t\t * @fires {@link Scene.change}, when used as setter\n\t\t * @param {boolean} [newReverse] - The new reverse setting of the scene.\n\t\t * @returns {boolean} `get` - Current reverse option value.\n\t\t * @returns {Scene} `set` - Parent object for chaining.\n\t\t */\n\n\t\t/**\n\t\t * **Get** or **Set** the loglevel option value.\n\t\t * @method ScrollMagic.Scene#loglevel\n\t\t * @example\n\t\t * // get the current loglevel\n\t\t * var loglevel = scene.loglevel();\n\t\t *\n\t\t * // set new loglevel\n\t\t * scene.loglevel(3);\n\t\t *\n\t\t * @fires {@link Scene.change}, when used as setter\n\t\t * @param {number} [newLoglevel] - The new loglevel setting of the scene. `[0-3]`\n\t\t * @returns {number} `get` - Current loglevel.\n\t\t * @returns {Scene} `set` - Parent object for chaining.\n\t\t */\n\n\t\t/**\n\t\t * **Get** the associated controller.\n\t\t * @method ScrollMagic.Scene#controller\n\t\t * @example\n\t\t * // get the controller of a scene\n\t\t * var controller = scene.controller();\n\t\t *\n\t\t * @returns {ScrollMagic.Controller} Parent controller or `undefined`\n\t\t */\n\t\tthis.controller = function () {\n\t\t\treturn _controller;\n\t\t};\n\n\t\t/**\n\t\t * **Get** the current state.\n\t\t * @method ScrollMagic.Scene#state\n\t\t * @example\n\t\t * // get the current state\n\t\t * var state = scene.state();\n\t\t *\n\t\t * @returns {string} `\"BEFORE\"`, `\"DURING\"` or `\"AFTER\"`\n\t\t */\n\t\tthis.state = function () {\n\t\t\treturn _state;\n\t\t};\n\n\t\t/**\n\t\t * **Get** the current scroll offset for the start of the scene. \n\t\t * Mind, that the scrollOffset is related to the size of the container, if `triggerHook` is bigger than `0` (or `\"onLeave\"`). \n\t\t * This means, that resizing the container or changing the `triggerHook` will influence the scene's start offset.\n\t\t * @method ScrollMagic.Scene#scrollOffset\n\t\t * @example\n\t\t * // get the current scroll offset for the start and end of the scene.\n\t\t * var start = scene.scrollOffset();\n\t\t * var end = scene.scrollOffset() + scene.duration();\n\t\t * console.log(\"the scene starts at\", start, \"and ends at\", end);\n\t\t *\n\t\t * @returns {number} The scroll offset (of the container) at which the scene will trigger. Y value for vertical and X value for horizontal scrolls.\n\t\t */\n\t\tthis.scrollOffset = function () {\n\t\t\treturn _scrollOffset.start;\n\t\t};\n\n\t\t/**\n\t\t * **Get** the trigger position of the scene (including the value of the `offset` option). \n\t\t * @method ScrollMagic.Scene#triggerPosition\n\t\t * @example\n\t\t * // get the scene's trigger position\n\t\t * var triggerPosition = scene.triggerPosition();\n\t\t *\n\t\t * @returns {number} Start position of the scene. Top position value for vertical and left position value for horizontal scrolls.\n\t\t */\n\t\tthis.triggerPosition = function () {\n\t\t\tvar pos = _options.offset; // the offset is the basis\n\t\t\tif (_controller) {\n\t\t\t\t// get the trigger position\n\t\t\t\tif (_options.triggerElement) {\n\t\t\t\t\t// Element as trigger\n\t\t\t\t\tpos += _triggerPos;\n\t\t\t\t} else {\n\t\t\t\t\t// return the height of the triggerHook to start at the beginning\n\t\t\t\t\tpos += _controller.info(\"size\") * Scene.triggerHook();\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn pos;\n\t\t};\n\n\t\tvar\n\t\t_pin, _pinOptions;\n\n\t\tScene.on(\"shift.internal\", function (e) {\n\t\t\tvar durationChanged = e.reason === \"duration\";\n\t\t\tif ((_state === SCENE_STATE_AFTER && durationChanged) || (_state === SCENE_STATE_DURING && _options.duration === 0)) {\n\t\t\t\t// if [duration changed after a scene (inside scene progress updates pin position)] or [duration is 0, we are in pin phase and some other value changed].\n\t\t\t\tupdatePinState();\n\t\t\t}\n\t\t\tif (durationChanged) {\n\t\t\t\tupdatePinDimensions();\n\t\t\t}\n\t\t}).on(\"progress.internal\", function (e) {\n\t\t\tupdatePinState();\n\t\t}).on(\"add.internal\", function (e) {\n\t\t\tupdatePinDimensions();\n\t\t}).on(\"destroy.internal\", function (e) {\n\t\t\tScene.removePin(e.reset);\n\t\t});\n\t\t/**\n\t\t * Update the pin state.\n\t\t * @private\n\t\t */\n\t\tvar updatePinState = function (forceUnpin) {\n\t\t\tif (_pin && _controller) {\n\t\t\t\tvar\n\t\t\t\tcontainerInfo = _controller.info(),\n\t\t\t\t\tpinTarget = _pinOptions.spacer.firstChild; // may be pin element or another spacer, if cascading pins\n\t\t\t\tif (!forceUnpin && _state === SCENE_STATE_DURING) { // during scene or if duration is 0 and we are past the trigger\n\t\t\t\t\t// pinned state\n\t\t\t\t\tif (_util.css(pinTarget, \"position\") != \"fixed\") {\n\t\t\t\t\t\t// change state before updating pin spacer (position changes due to fixed collapsing might occur.)\n\t\t\t\t\t\t_util.css(pinTarget, {\n\t\t\t\t\t\t\t\"position\": \"fixed\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\t// update pin spacer\n\t\t\t\t\t\tupdatePinDimensions();\n\t\t\t\t\t}\n\n\t\t\t\t\tvar\n\t\t\t\t\tfixedPos = _util.get.offset(_pinOptions.spacer, true),\n\t\t\t\t\t\t// get viewport position of spacer\n\t\t\t\t\t\tscrollDistance = _options.reverse || _options.duration === 0 ? containerInfo.scrollPos - _scrollOffset.start // quicker\n\t\t\t\t\t\t: Math.round(_progress * _options.duration * 10) / 10; // if no reverse and during pin the position needs to be recalculated using the progress\n\t\t\t\t\t// add scrollDistance\n\t\t\t\t\tfixedPos[containerInfo.vertical ? \"top\" : \"left\"] += scrollDistance;\n\n\t\t\t\t\t// set new values\n\t\t\t\t\t_util.css(_pinOptions.spacer.firstChild, {\n\t\t\t\t\t\ttop: fixedPos.top,\n\t\t\t\t\t\tleft: fixedPos.left\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// unpinned state\n\t\t\t\t\tvar\n\t\t\t\t\tnewCSS = {\n\t\t\t\t\t\tposition: _pinOptions.inFlow ? \"relative\" : \"absolute\",\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\tleft: 0\n\t\t\t\t\t},\n\t\t\t\t\t\tchange = _util.css(pinTarget, \"position\") != newCSS.position;\n\n\t\t\t\t\tif (!_pinOptions.pushFollowers) {\n\t\t\t\t\t\tnewCSS[containerInfo.vertical ? \"top\" : \"left\"] = _options.duration * _progress;\n\t\t\t\t\t} else if (_options.duration > 0) { // only concerns scenes with duration\n\t\t\t\t\t\tif (_state === SCENE_STATE_AFTER && parseFloat(_util.css(_pinOptions.spacer, \"padding-top\")) === 0) {\n\t\t\t\t\t\t\tchange = true; // if in after state but havent updated spacer yet (jumped past pin)\n\t\t\t\t\t\t} else if (_state === SCENE_STATE_BEFORE && parseFloat(_util.css(_pinOptions.spacer, \"padding-bottom\")) === 0) { // before\n\t\t\t\t\t\t\tchange = true; // jumped past fixed state upward direction\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// set new values\n\t\t\t\t\t_util.css(pinTarget, newCSS);\n\t\t\t\t\tif (change) {\n\t\t\t\t\t\t// update pin spacer if state changed\n\t\t\t\t\t\tupdatePinDimensions();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Update the pin spacer and/or element size.\n\t\t * The size of the spacer needs to be updated whenever the duration of the scene changes, if it is to push down following elements.\n\t\t * @private\n\t\t */\n\t\tvar updatePinDimensions = function () {\n\t\t\tif (_pin && _controller && _pinOptions.inFlow) { // no spacerresize, if original position is absolute\n\t\t\t\tvar\n\t\t\t\tafter = (_state === SCENE_STATE_AFTER),\n\t\t\t\t\tbefore = (_state === SCENE_STATE_BEFORE),\n\t\t\t\t\tduring = (_state === SCENE_STATE_DURING),\n\t\t\t\t\tvertical = _controller.info(\"vertical\"),\n\t\t\t\t\tpinTarget = _pinOptions.spacer.firstChild,\n\t\t\t\t\t// usually the pined element but can also be another spacer (cascaded pins)\n\t\t\t\t\tmarginCollapse = _util.isMarginCollapseType(_util.css(_pinOptions.spacer, \"display\")),\n\t\t\t\t\tcss = {};\n\n\t\t\t\t// set new size\n\t\t\t\t// if relsize: spacer -> pin | else: pin -> spacer\n\t\t\t\tif (_pinOptions.relSize.width || _pinOptions.relSize.autoFullWidth) {\n\t\t\t\t\tif (during) {\n\t\t\t\t\t\t_util.css(_pin, {\n\t\t\t\t\t\t\t\"width\": _util.get.width(_pinOptions.spacer)\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_util.css(_pin, {\n\t\t\t\t\t\t\t\"width\": \"100%\"\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// minwidth is needed for cascaded pins.\n\t\t\t\t\tcss[\"min-width\"] = _util.get.width(vertical ? _pin : pinTarget, true, true);\n\t\t\t\t\tcss.width = during ? css[\"min-width\"] : \"auto\";\n\t\t\t\t}\n\t\t\t\tif (_pinOptions.relSize.height) {\n\t\t\t\t\tif (during) {\n\t\t\t\t\t\t// the only padding the spacer should ever include is the duration (if pushFollowers = true), so we need to substract that.\n\t\t\t\t\t\t_util.css(_pin, {\n\t\t\t\t\t\t\t\"height\": _util.get.height(_pinOptions.spacer) - (_pinOptions.pushFollowers ? _options.duration : 0)\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_util.css(_pin, {\n\t\t\t\t\t\t\t\"height\": \"100%\"\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// margin is only included if it's a cascaded pin to resolve an IE9 bug\n\t\t\t\t\tcss[\"min-height\"] = _util.get.height(vertical ? pinTarget : _pin, true, !marginCollapse); // needed for cascading pins\n\t\t\t\t\tcss.height = during ? css[\"min-height\"] : \"auto\";\n\t\t\t\t}\n\n\t\t\t\t// add space for duration if pushFollowers is true\n\t\t\t\tif (_pinOptions.pushFollowers) {\n\t\t\t\t\tcss[\"padding\" + (vertical ? \"Top\" : \"Left\")] = _options.duration * _progress;\n\t\t\t\t\tcss[\"padding\" + (vertical ? \"Bottom\" : \"Right\")] = _options.duration * (1 - _progress);\n\t\t\t\t}\n\t\t\t\t_util.css(_pinOptions.spacer, css);\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Updates the Pin state (in certain scenarios)\n\t\t * If the controller container is not the document and we are mid-pin-phase scrolling or resizing the main document can result to wrong pin positions.\n\t\t * So this function is called on resize and scroll of the document.\n\t\t * @private\n\t\t */\n\t\tvar updatePinInContainer = function () {\n\t\t\tif (_controller && _pin && _state === SCENE_STATE_DURING && !_controller.info(\"isDocument\")) {\n\t\t\t\tupdatePinState();\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Updates the Pin spacer size state (in certain scenarios)\n\t\t * If container is resized during pin and relatively sized the size of the pin might need to be updated...\n\t\t * So this function is called on resize of the container.\n\t\t * @private\n\t\t */\n\t\tvar updateRelativePinSpacer = function () {\n\t\t\tif (_controller && _pin && // well, duh\n\t\t\t_state === SCENE_STATE_DURING && // element in pinned state?\n\t\t\t( // is width or height relatively sized, but not in relation to body? then we need to recalc.\n\t\t\t((_pinOptions.relSize.width || _pinOptions.relSize.autoFullWidth) && _util.get.width(window) != _util.get.width(_pinOptions.spacer.parentNode)) || (_pinOptions.relSize.height && _util.get.height(window) != _util.get.height(_pinOptions.spacer.parentNode)))) {\n\t\t\t\tupdatePinDimensions();\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Is called, when the mousewhel is used while over a pinned element inside a div container.\n\t\t * If the scene is in fixed state scroll events would be counted towards the body. This forwards the event to the scroll container.\n\t\t * @private\n\t\t */\n\t\tvar onMousewheelOverPin = function (e) {\n\t\t\tif (_controller && _pin && _state === SCENE_STATE_DURING && !_controller.info(\"isDocument\")) { // in pin state\n\t\t\t\te.preventDefault();\n\t\t\t\t_controller._setScrollPos(_controller.info(\"scrollPos\") - ((e.wheelDelta || e[_controller.info(\"vertical\") ? \"wheelDeltaY\" : \"wheelDeltaX\"]) / 3 || -e.detail * 30));\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Pin an element for the duration of the tween. \n\t\t * If the scene duration is 0 the element will only be unpinned, if the user scrolls back past the start position. \n\t\t * Make sure only one pin is applied to an element at the same time.\n\t\t * An element can be pinned multiple times, but only successively.\n\t\t * _**NOTE:** The option `pushFollowers` has no effect, when the scene duration is 0._\n\t\t * @method ScrollMagic.Scene#setPin\n\t\t * @example\n\t\t * // pin element and push all following elements down by the amount of the pin duration.\n\t\t * scene.setPin(\"#pin\");\n\t\t *\n\t\t * // pin element and keeping all following elements in their place. The pinned element will move past them.\n\t\t * scene.setPin(\"#pin\", {pushFollowers: false});\n\t\t *\n\t\t * @param {(string|object)} element - A Selector targeting an element or a DOM object that is supposed to be pinned.\n\t\t * @param {object} [settings] - settings for the pin\n\t\t * @param {boolean} [settings.pushFollowers=true] - If `true` following elements will be \"pushed\" down for the duration of the pin, if `false` the pinned element will just scroll past them. \n\t\t Ignored, when duration is `0`.\n\t\t * @param {string} [settings.spacerClass=\"scrollmagic-pin-spacer\"] - Classname of the pin spacer element, which is used to replace the element.\n\t\t *\n\t\t * @returns {Scene} Parent object for chaining.\n\t\t */\n\t\tthis.setPin = function (element, settings) {\n\t\t\tvar\n\t\t\tdefaultSettings = {\n\t\t\t\tpushFollowers: true,\n\t\t\t\tspacerClass: \"scrollmagic-pin-spacer\"\n\t\t\t};\n\t\t\tsettings = _util.extend({}, defaultSettings, settings);\n\n\t\t\t// validate Element\n\t\t\telement = _util.get.elements(element)[0];\n\t\t\tif (!element) {\n\t\t\t\tlog(1, \"ERROR calling method 'setPin()': Invalid pin element supplied.\");\n\t\t\t\treturn Scene; // cancel\n\t\t\t} else if (_util.css(element, \"position\") === \"fixed\") {\n\t\t\t\tlog(1, \"ERROR calling method 'setPin()': Pin does not work with elements that are positioned 'fixed'.\");\n\t\t\t\treturn Scene; // cancel\n\t\t\t}\n\n\t\t\tif (_pin) { // preexisting pin?\n\t\t\t\tif (_pin === element) {\n\t\t\t\t\t// same pin we already have -> do nothing\n\t\t\t\t\treturn Scene; // cancel\n\t\t\t\t} else {\n\t\t\t\t\t// kill old pin\n\t\t\t\t\tScene.removePin();\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t_pin = element;\n\n\t\t\tvar\n\t\t\tparentDisplay = _pin.parentNode.style.display,\n\t\t\t\tboundsParams = [\"top\", \"left\", \"bottom\", \"right\", \"margin\", \"marginLeft\", \"marginRight\", \"marginTop\", \"marginBottom\"];\n\n\t\t\t_pin.parentNode.style.display = 'none'; // hack start to force css to return stylesheet values instead of calculated px values.\n\t\t\tvar\n\t\t\tinFlow = _util.css(_pin, \"position\") != \"absolute\",\n\t\t\t\tpinCSS = _util.css(_pin, boundsParams.concat([\"display\"])),\n\t\t\t\tsizeCSS = _util.css(_pin, [\"width\", \"height\"]);\n\t\t\t_pin.parentNode.style.display = parentDisplay; // hack end.\n\t\t\tif (!inFlow && settings.pushFollowers) {\n\t\t\t\tlog(2, \"WARNING: If the pinned element is positioned absolutely pushFollowers will be disabled.\");\n\t\t\t\tsettings.pushFollowers = false;\n\t\t\t}\n\t\t\twindow.setTimeout(function () { // wait until all finished, because with responsive duration it will only be set after scene is added to controller\n\t\t\t\tif (_pin && _options.duration === 0 && settings.pushFollowers) {\n\t\t\t\t\tlog(2, \"WARNING: pushFollowers =\", true, \"has no effect, when scene duration is 0.\");\n\t\t\t\t}\n\t\t\t}, 0);\n\n\t\t\t// create spacer and insert\n\t\t\tvar\n\t\t\tspacer = _pin.parentNode.insertBefore(document.createElement('div'), _pin),\n\t\t\t\tspacerCSS = _util.extend(pinCSS, {\n\t\t\t\t\tposition: inFlow ? \"relative\" : \"absolute\",\n\t\t\t\t\tboxSizing: \"content-box\",\n\t\t\t\t\tmozBoxSizing: \"content-box\",\n\t\t\t\t\twebkitBoxSizing: \"content-box\"\n\t\t\t\t});\n\n\t\t\tif (!inFlow) { // copy size if positioned absolutely, to work for bottom/right positioned elements.\n\t\t\t\t_util.extend(spacerCSS, _util.css(_pin, [\"width\", \"height\"]));\n\t\t\t}\n\n\t\t\t_util.css(spacer, spacerCSS);\n\t\t\tspacer.setAttribute(PIN_SPACER_ATTRIBUTE, \"\");\n\t\t\t_util.addClass(spacer, settings.spacerClass);\n\n\t\t\t// set the pin Options\n\t\t\t_pinOptions = {\n\t\t\t\tspacer: spacer,\n\t\t\t\trelSize: { // save if size is defined using % values. if so, handle spacer resize differently...\n\t\t\t\t\twidth: sizeCSS.width.slice(-1) === \"%\",\n\t\t\t\t\theight: sizeCSS.height.slice(-1) === \"%\",\n\t\t\t\t\tautoFullWidth: sizeCSS.width === \"auto\" && inFlow && _util.isMarginCollapseType(pinCSS.display)\n\t\t\t\t},\n\t\t\t\tpushFollowers: settings.pushFollowers,\n\t\t\t\tinFlow: inFlow,\n\t\t\t\t// stores if the element takes up space in the document flow\n\t\t\t};\n\n\t\t\tif (!_pin.___origStyle) {\n\t\t\t\t_pin.___origStyle = {};\n\t\t\t\tvar\n\t\t\t\tpinInlineCSS = _pin.style,\n\t\t\t\t\tcopyStyles = boundsParams.concat([\"width\", \"height\", \"position\", \"boxSizing\", \"mozBoxSizing\", \"webkitBoxSizing\"]);\n\t\t\t\tcopyStyles.forEach(function (val) {\n\t\t\t\t\t_pin.___origStyle[val] = pinInlineCSS[val] || \"\";\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// if relative size, transfer it to spacer and make pin calculate it...\n\t\t\tif (_pinOptions.relSize.width) {\n\t\t\t\t_util.css(spacer, {\n\t\t\t\t\twidth: sizeCSS.width\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (_pinOptions.relSize.height) {\n\t\t\t\t_util.css(spacer, {\n\t\t\t\t\theight: sizeCSS.height\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// now place the pin element inside the spacer\t\n\t\t\tspacer.appendChild(_pin);\n\t\t\t// and set new css\n\t\t\t_util.css(_pin, {\n\t\t\t\tposition: inFlow ? \"relative\" : \"absolute\",\n\t\t\t\tmargin: \"auto\",\n\t\t\t\ttop: \"auto\",\n\t\t\t\tleft: \"auto\",\n\t\t\t\tbottom: \"auto\",\n\t\t\t\tright: \"auto\"\n\t\t\t});\n\n\t\t\tif (_pinOptions.relSize.width || _pinOptions.relSize.autoFullWidth) {\n\t\t\t\t_util.css(_pin, {\n\t\t\t\t\tboxSizing: \"border-box\",\n\t\t\t\t\tmozBoxSizing: \"border-box\",\n\t\t\t\t\twebkitBoxSizing: \"border-box\"\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// add listener to document to update pin position in case controller is not the document.\n\t\t\twindow.addEventListener('scroll', updatePinInContainer);\n\t\t\twindow.addEventListener('resize', updatePinInContainer);\n\t\t\twindow.addEventListener('resize', updateRelativePinSpacer);\n\t\t\t// add mousewheel listener to catch scrolls over fixed elements\n\t\t\t_pin.addEventListener(\"mousewheel\", onMousewheelOverPin);\n\t\t\t_pin.addEventListener(\"DOMMouseScroll\", onMousewheelOverPin);\n\n\t\t\tlog(3, \"added pin\");\n\n\t\t\t// finally update the pin to init\n\t\t\tupdatePinState();\n\n\t\t\treturn Scene;\n\t\t};\n\n\t\t/**\n\t\t * Remove the pin from the scene.\n\t\t * @method ScrollMagic.Scene#removePin\n\t\t * @example\n\t\t * // remove the pin from the scene without resetting it (the spacer is not removed)\n\t\t * scene.removePin();\n\t\t *\n\t\t * // remove the pin from the scene and reset the pin element to its initial position (spacer is removed)\n\t\t * scene.removePin(true);\n\t\t *\n\t\t * @param {boolean} [reset=false] - If `false` the spacer will not be removed and the element's position will not be reset.\n\t\t * @returns {Scene} Parent object for chaining.\n\t\t */\n\t\tthis.removePin = function (reset) {\n\t\t\tif (_pin) {\n\t\t\t\tif (_state === SCENE_STATE_DURING) {\n\t\t\t\t\tupdatePinState(true); // force unpin at position\n\t\t\t\t}\n\t\t\t\tif (reset || !_controller) { // if there's no controller no progress was made anyway...\n\t\t\t\t\tvar pinTarget = _pinOptions.spacer.firstChild; // usually the pin element, but may be another spacer (cascaded pins)...\n\t\t\t\t\tif (pinTarget.hasAttribute(PIN_SPACER_ATTRIBUTE)) { // copy margins to child spacer\n\t\t\t\t\t\tvar\n\t\t\t\t\t\tstyle = _pinOptions.spacer.style,\n\t\t\t\t\t\t\tvalues = [\"margin\", \"marginLeft\", \"marginRight\", \"marginTop\", \"marginBottom\"];\n\t\t\t\t\t\tmargins = {};\n\t\t\t\t\t\tvalues.forEach(function (val) {\n\t\t\t\t\t\t\tmargins[val] = style[val] || \"\";\n\t\t\t\t\t\t});\n\t\t\t\t\t\t_util.css(pinTarget, margins);\n\t\t\t\t\t}\n\t\t\t\t\t_pinOptions.spacer.parentNode.insertBefore(pinTarget, _pinOptions.spacer);\n\t\t\t\t\t_pinOptions.spacer.parentNode.removeChild(_pinOptions.spacer);\n\t\t\t\t\tif (!_pin.parentNode.hasAttribute(PIN_SPACER_ATTRIBUTE)) { // if it's the last pin for this element -> restore inline styles\n\t\t\t\t\t\t// TODO: only correctly set for first pin (when cascading) - how to fix?\n\t\t\t\t\t\t_util.css(_pin, _pin.___origStyle);\n\t\t\t\t\t\tdelete _pin.___origStyle;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\twindow.removeEventListener('scroll', updatePinInContainer);\n\t\t\t\twindow.removeEventListener('resize', updatePinInContainer);\n\t\t\t\twindow.removeEventListener('resize', updateRelativePinSpacer);\n\t\t\t\t_pin.removeEventListener(\"mousewheel\", onMousewheelOverPin);\n\t\t\t\t_pin.removeEventListener(\"DOMMouseScroll\", onMousewheelOverPin);\n\t\t\t\t_pin = undefined;\n\t\t\t\tlog(3, \"removed pin (reset: \" + (reset ? \"true\" : \"false\") + \")\");\n\t\t\t}\n\t\t\treturn Scene;\n\t\t};\n\n\n\t\tvar\n\t\t_cssClasses, _cssClassElems = [];\n\n\t\tScene.on(\"destroy.internal\", function (e) {\n\t\t\tScene.removeClassToggle(e.reset);\n\t\t});\n\t\t/**\n\t\t * Define a css class modification while the scene is active. \n\t\t * When the scene triggers the classes will be added to the supplied element and removed, when the scene is over.\n\t\t * If the scene duration is 0 the classes will only be removed if the user scrolls back past the start position.\n\t\t * @method ScrollMagic.Scene#setClassToggle\n\t\t * @example\n\t\t * // add the class 'myclass' to the element with the id 'my-elem' for the duration of the scene\n\t\t * scene.setClassToggle(\"#my-elem\", \"myclass\");\n\t\t *\n\t\t * // add multiple classes to multiple elements defined by the selector '.classChange'\n\t\t * scene.setClassToggle(\".classChange\", \"class1 class2 class3\");\n\t\t *\n\t\t * @param {(string|object)} element - A Selector targeting one or more elements or a DOM object that is supposed to be modified.\n\t\t * @param {string} classes - One or more Classnames (separated by space) that should be added to the element during the scene.\n\t\t *\n\t\t * @returns {Scene} Parent object for chaining.\n\t\t */\n\t\tthis.setClassToggle = function (element, classes) {\n\t\t\tvar elems = _util.get.elements(element);\n\t\t\tif (elems.length === 0 || !_util.type.String(classes)) {\n\t\t\t\tlog(1, \"ERROR calling method 'setClassToggle()': Invalid \" + (elems.length === 0 ? \"element\" : \"classes\") + \" supplied.\");\n\t\t\t\treturn Scene;\n\t\t\t}\n\t\t\tif (_cssClassElems.length > 0) {\n\t\t\t\t// remove old ones\n\t\t\t\tScene.removeClassToggle();\n\t\t\t}\n\t\t\t_cssClasses = classes;\n\t\t\t_cssClassElems = elems;\n\t\t\tScene.on(\"enter.internal_class leave.internal_class\", function (e) {\n\t\t\t\tvar toggle = e.type === \"enter\" ? _util.addClass : _util.removeClass;\n\t\t\t\t_cssClassElems.forEach(function (elem, key) {\n\t\t\t\t\ttoggle(elem, _cssClasses);\n\t\t\t\t});\n\t\t\t});\n\t\t\treturn Scene;\n\t\t};\n\n\t\t/**\n\t\t * Remove the class binding from the scene.\n\t\t * @method ScrollMagic.Scene#removeClassToggle\n\t\t * @example\n\t\t * // remove class binding from the scene without reset\n\t\t * scene.removeClassToggle();\n\t\t *\n\t\t * // remove class binding and remove the changes it caused\n\t\t * scene.removeClassToggle(true);\n\t\t *\n\t\t * @param {boolean} [reset=false] - If `false` and the classes are currently active, they will remain on the element. If `true` they will be removed.\n\t\t * @returns {Scene} Parent object for chaining.\n\t\t */\n\t\tthis.removeClassToggle = function (reset) {\n\t\t\tif (reset) {\n\t\t\t\t_cssClassElems.forEach(function (elem, key) {\n\t\t\t\t\t_util.removeClass(elem, _cssClasses);\n\t\t\t\t});\n\t\t\t}\n\t\t\tScene.off(\"start.internal_class end.internal_class\");\n\t\t\t_cssClasses = undefined;\n\t\t\t_cssClassElems = [];\n\t\t\treturn Scene;\n\t\t};\n\n\t\t// INIT\n\t\tconstruct();\n\t\treturn Scene;\n\t};\n\n\t// store pagewide scene options\n\tvar SCENE_OPTIONS = {\n\t\tdefaults: {\n\t\t\tduration: 0,\n\t\t\toffset: 0,\n\t\t\ttriggerElement: undefined,\n\t\t\ttriggerHook: 0.5,\n\t\t\treverse: true,\n\t\t\tloglevel: 2\n\t\t},\n\t\tvalidate: {\n\t\t\toffset: function (val) {\n\t\t\t\tval = parseFloat(val);\n\t\t\t\tif (!_util.type.Number(val)) {\n\t\t\t\t\tthrow [\"Invalid value for option \\\"offset\\\":\", val];\n\t\t\t\t}\n\t\t\t\treturn val;\n\t\t\t},\n\t\t\ttriggerElement: function (val) {\n\t\t\t\tval = val || undefined;\n\t\t\t\tif (val) {\n\t\t\t\t\tvar elem = _util.get.elements(val)[0];\n\t\t\t\t\tif (elem) {\n\t\t\t\t\t\tval = elem;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow [\"Element defined in option \\\"triggerElement\\\" was not found:\", val];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn val;\n\t\t\t},\n\t\t\ttriggerHook: function (val) {\n\t\t\t\tvar translate = {\n\t\t\t\t\t\"onCenter\": 0.5,\n\t\t\t\t\t\"onEnter\": 1,\n\t\t\t\t\t\"onLeave\": 0\n\t\t\t\t};\n\t\t\t\tif (_util.type.Number(val)) {\n\t\t\t\t\tval = Math.max(0, Math.min(parseFloat(val), 1)); // make sure its betweeen 0 and 1\n\t\t\t\t} else if (val in translate) {\n\t\t\t\t\tval = translate[val];\n\t\t\t\t} else {\n\t\t\t\t\tthrow [\"Invalid value for option \\\"triggerHook\\\": \", val];\n\t\t\t\t}\n\t\t\t\treturn val;\n\t\t\t},\n\t\t\treverse: function (val) {\n\t\t\t\treturn !!val; // force boolean\n\t\t\t},\n\t\t\tloglevel: function (val) {\n\t\t\t\tval = parseInt(val);\n\t\t\t\tif (!_util.type.Number(val) || val < 0 || val > 3) {\n\t\t\t\t\tthrow [\"Invalid value for option \\\"loglevel\\\":\", val];\n\t\t\t\t}\n\t\t\t\treturn val;\n\t\t\t}\n\t\t},\n\t\t// holder for validation methods. duration validation is handled in 'getters-setters.js'\n\t\tshifts: [\"duration\", \"offset\", \"triggerHook\"],\n\t\t// list of options that trigger a `shift` event\n\t};\n/*\n * method used to add an option to ScrollMagic Scenes.\n * TODO: DOC (private for dev)\n */\n\tScrollMagic.Scene.addOption = function (name, defaultValue, validationCallback, shifts) {\n\t\tif (!(name in SCENE_OPTIONS.defaults)) {\n\t\t\tSCENE_OPTIONS.defaults[name] = defaultValue;\n\t\t\tSCENE_OPTIONS.validate[name] = validationCallback;\n\t\t\tif (shifts) {\n\t\t\t\tSCENE_OPTIONS.shifts.push(name);\n\t\t\t}\n\t\t} else {\n\t\t\tScrollMagic._util.log(1, \"[static] ScrollMagic.Scene -> Cannot add Scene option '\" + name + \"', because it already exists.\");\n\t\t}\n\t};\n\t// instance extension function for plugins\n\t// TODO: DOC (private for dev)\n\tScrollMagic.Scene.extend = function (extension) {\n\t\tvar oldClass = this;\n\t\tScrollMagic.Scene = function () {\n\t\t\toldClass.apply(this, arguments);\n\t\t\tthis.$super = _util.extend({}, this); // copy parent state\n\t\t\treturn extension.apply(this, arguments) || this;\n\t\t};\n\t\t_util.extend(ScrollMagic.Scene, oldClass); // copy properties\n\t\tScrollMagic.Scene.prototype = oldClass.prototype; // copy prototype\n\t\tScrollMagic.Scene.prototype.constructor = ScrollMagic.Scene; // restore constructor\n\t};\n\n\n\t/**\n\t * TODO: DOCS (private for dev)\n\t * @class\n\t * @private\n\t */\n\n\tScrollMagic.Event = function (type, namespace, target, vars) {\n\t\tvars = vars || {};\n\t\tfor (var key in vars) {\n\t\t\tthis[key] = vars[key];\n\t\t}\n\t\tthis.type = type;\n\t\tthis.target = this.currentTarget = target;\n\t\tthis.namespace = namespace || '';\n\t\tthis.timeStamp = this.timestamp = Date.now();\n\t\treturn this;\n\t};\n\n/*\n * TODO: DOCS (private for dev)\n */\n\n\tvar _util = ScrollMagic._util = (function (window) {\n\t\tvar U = {},\n\t\t\ti;\n\n\t\t/**\n\t\t * ------------------------------\n\t\t * internal helpers\n\t\t * ------------------------------\n\t\t */\n\n\t\t// parse float and fall back to 0.\n\t\tvar floatval = function (number) {\n\t\t\treturn parseFloat(number) || 0;\n\t\t};\n\t\t// get current style IE safe (otherwise IE would return calculated values for 'auto')\n\t\tvar _getComputedStyle = function (elem) {\n\t\t\treturn elem.currentStyle ? elem.currentStyle : window.getComputedStyle(elem);\n\t\t};\n\n\t\t// get element dimension (width or height)\n\t\tvar _dimension = function (which, elem, outer, includeMargin) {\n\t\t\telem = (elem === document) ? window : elem;\n\t\t\tif (elem === window) {\n\t\t\t\tincludeMargin = false;\n\t\t\t} else if (!_type.DomElement(elem)) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\twhich = which.charAt(0).toUpperCase() + which.substr(1).toLowerCase();\n\t\t\tvar dimension = (outer ? elem['offset' + which] || elem['outer' + which] : elem['client' + which] || elem['inner' + which]) || 0;\n\t\t\tif (outer && includeMargin) {\n\t\t\t\tvar style = _getComputedStyle(elem);\n\t\t\t\tdimension += which === 'Height' ? floatval(style.marginTop) + floatval(style.marginBottom) : floatval(style.marginLeft) + floatval(style.marginRight);\n\t\t\t}\n\t\t\treturn dimension;\n\t\t};\n\t\t// converts 'margin-top' into 'marginTop'\n\t\tvar _camelCase = function (str) {\n\t\t\treturn str.replace(/^[^a-z]+([a-z])/g, '$1').replace(/-([a-z])/g, function (g) {\n\t\t\t\treturn g[1].toUpperCase();\n\t\t\t});\n\t\t};\n\n\t\t/**\n\t\t * ------------------------------\n\t\t * external helpers\n\t\t * ------------------------------\n\t\t */\n\n\t\t// extend obj – same as jQuery.extend({}, objA, objB)\n\t\tU.extend = function (obj) {\n\t\t\tobj = obj || {};\n\t\t\tfor (i = 1; i < arguments.length; i++) {\n\t\t\t\tif (!arguments[i]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tfor (var key in arguments[i]) {\n\t\t\t\t\tif (arguments[i].hasOwnProperty(key)) {\n\t\t\t\t\t\tobj[key] = arguments[i][key];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn obj;\n\t\t};\n\n\t\t// check if a css display type results in margin-collapse or not\n\t\tU.isMarginCollapseType = function (str) {\n\t\t\treturn [\"block\", \"flex\", \"list-item\", \"table\", \"-webkit-box\"].indexOf(str) > -1;\n\t\t};\n\n\t\t// implementation of requestAnimationFrame\n\t\t// based on https://gist.github.com/paulirish/1579671\n\t\tvar\n\t\tlastTime = 0,\n\t\t\tvendors = ['ms', 'moz', 'webkit', 'o'];\n\t\tvar _requestAnimationFrame = window.requestAnimationFrame;\n\t\tvar _cancelAnimationFrame = window.cancelAnimationFrame;\n\t\t// try vendor prefixes if the above doesn't work\n\t\tfor (i = 0; !_requestAnimationFrame && i < vendors.length; ++i) {\n\t\t\t_requestAnimationFrame = window[vendors[i] + 'RequestAnimationFrame'];\n\t\t\t_cancelAnimationFrame = window[vendors[i] + 'CancelAnimationFrame'] || window[vendors[i] + 'CancelRequestAnimationFrame'];\n\t\t}\n\n\t\t// fallbacks\n\t\tif (!_requestAnimationFrame) {\n\t\t\t_requestAnimationFrame = function (callback) {\n\t\t\t\tvar\n\t\t\t\tcurrTime = new Date().getTime(),\n\t\t\t\t\ttimeToCall = Math.max(0, 16 - (currTime - lastTime)),\n\t\t\t\t\tid = window.setTimeout(function () {\n\t\t\t\t\t\tcallback(currTime + timeToCall);\n\t\t\t\t\t}, timeToCall);\n\t\t\t\tlastTime = currTime + timeToCall;\n\t\t\t\treturn id;\n\t\t\t};\n\t\t}\n\t\tif (!_cancelAnimationFrame) {\n\t\t\t_cancelAnimationFrame = function (id) {\n\t\t\t\twindow.clearTimeout(id);\n\t\t\t};\n\t\t}\n\t\tU.rAF = _requestAnimationFrame.bind(window);\n\t\tU.cAF = _cancelAnimationFrame.bind(window);\n\n\t\tvar\n\t\tloglevels = [\"error\", \"warn\", \"log\"],\n\t\t\tconsole = window.console || {};\n\n\t\tconsole.log = console.log ||\n\t\tfunction () {}; // no console log, well - do nothing then...\n\t\t// make sure methods for all levels exist.\n\t\tfor (i = 0; i < loglevels.length; i++) {\n\t\t\tvar method = loglevels[i];\n\t\t\tif (!console[method]) {\n\t\t\t\tconsole[method] = console.log; // prefer .log over nothing\n\t\t\t}\n\t\t}\n\t\tU.log = function (loglevel) {\n\t\t\tif (loglevel > loglevels.length || loglevel <= 0) loglevel = loglevels.length;\n\t\t\tvar now = new Date(),\n\t\t\t\ttime = (\"0\" + now.getHours()).slice(-2) + \":\" + (\"0\" + now.getMinutes()).slice(-2) + \":\" + (\"0\" + now.getSeconds()).slice(-2) + \":\" + (\"00\" + now.getMilliseconds()).slice(-3),\n\t\t\t\tmethod = loglevels[loglevel - 1],\n\t\t\t\targs = Array.prototype.splice.call(arguments, 1),\n\t\t\t\tfunc = Function.prototype.bind.call(console[method], console);\n\t\t\targs.unshift(time);\n\t\t\tfunc.apply(console, args);\n\t\t};\n\n\t\t/**\n\t\t * ------------------------------\n\t\t * type testing\n\t\t * ------------------------------\n\t\t */\n\n\t\tvar _type = U.type = function (v) {\n\t\t\treturn Object.prototype.toString.call(v).replace(/^\\[object (.+)\\]$/, \"$1\").toLowerCase();\n\t\t};\n\t\t_type.String = function (v) {\n\t\t\treturn _type(v) === 'string';\n\t\t};\n\t\t_type.Function = function (v) {\n\t\t\treturn _type(v) === 'function';\n\t\t};\n\t\t_type.Array = function (v) {\n\t\t\treturn Array.isArray(v);\n\t\t};\n\t\t_type.Number = function (v) {\n\t\t\treturn !_type.Array(v) && (v - parseFloat(v) + 1) >= 0;\n\t\t};\n\t\t_type.DomElement = function (o) {\n\t\t\treturn (\n\t\t\ttypeof HTMLElement === \"object\" ? o instanceof HTMLElement : //DOM2\n\t\t\to && typeof o === \"object\" && o !== null && o.nodeType === 1 && typeof o.nodeName === \"string\");\n\t\t};\n\n\t\t/**\n\t\t * ------------------------------\n\t\t * DOM Element info\n\t\t * ------------------------------\n\t\t */\n\t\t// always returns a list of matching DOM elements, from a selector, a DOM element or an list of elements or even an array of selectors\n\t\tvar _get = U.get = {};\n\t\t_get.elements = function (selector) {\n\t\t\tvar arr = [];\n\t\t\tif (_type.String(selector)) {\n\t\t\t\ttry {\n\t\t\t\t\tselector = document.querySelectorAll(selector);\n\t\t\t\t} catch (e) { // invalid selector\n\t\t\t\t\treturn arr;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (_type(selector) === 'nodelist' || _type.Array(selector)) {\n\t\t\t\tfor (var i = 0, ref = arr.length = selector.length; i < ref; i++) { // list of elements\n\t\t\t\t\tvar elem = selector[i];\n\t\t\t\t\tarr[i] = _type.DomElement(elem) ? elem : _get.elements(elem); // if not an element, try to resolve recursively\n\t\t\t\t}\n\t\t\t} else if (_type.DomElement(selector) || selector === document || selector === window) {\n\t\t\t\tarr = [selector]; // only the element\n\t\t\t}\n\t\t\treturn arr;\n\t\t};\n\t\t// get scroll top value\n\t\t_get.scrollTop = function (elem) {\n\t\t\treturn (elem && typeof elem.scrollTop === 'number') ? elem.scrollTop : window.pageYOffset || 0;\n\t\t};\n\t\t// get scroll left value\n\t\t_get.scrollLeft = function (elem) {\n\t\t\treturn (elem && typeof elem.scrollLeft === 'number') ? elem.scrollLeft : window.pageXOffset || 0;\n\t\t};\n\t\t// get element height\n\t\t_get.width = function (elem, outer, includeMargin) {\n\t\t\treturn _dimension('width', elem, outer, includeMargin);\n\t\t};\n\t\t// get element width\n\t\t_get.height = function (elem, outer, includeMargin) {\n\t\t\treturn _dimension('height', elem, outer, includeMargin);\n\t\t};\n\n\t\t// get element position (optionally relative to viewport)\n\t\t_get.offset = function (elem, relativeToViewport) {\n\t\t\tvar offset = {\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0\n\t\t\t};\n\t\t\tif (elem && elem.getBoundingClientRect) { // check if available\n\t\t\t\tvar rect = elem.getBoundingClientRect();\n\t\t\t\toffset.top = rect.top;\n\t\t\t\toffset.left = rect.left;\n\t\t\t\tif (!relativeToViewport) { // clientRect is by default relative to viewport...\n\t\t\t\t\toffset.top += _get.scrollTop();\n\t\t\t\t\toffset.left += _get.scrollLeft();\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn offset;\n\t\t};\n\n\t\t/**\n\t\t * ------------------------------\n\t\t * DOM Element manipulation\n\t\t * ------------------------------\n\t\t */\n\n\t\tU.addClass = function (elem, classname) {\n\t\t\tif (classname) {\n\t\t\t\tif (elem.classList) elem.classList.add(classname);\n\t\t\t\telse elem.className += ' ' + classname;\n\t\t\t}\n\t\t};\n\t\tU.removeClass = function (elem, classname) {\n\t\t\tif (classname) {\n\t\t\t\tif (elem.classList) elem.classList.remove(classname);\n\t\t\t\telse elem.className = elem.className.replace(new RegExp('(^|\\\\b)' + classname.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n\t\t\t}\n\t\t};\n\t\t// if options is string -> returns css value\n\t\t// if options is array -> returns object with css value pairs\n\t\t// if options is object -> set new css values\n\t\tU.css = function (elem, options) {\n\t\t\tif (_type.String(options)) {\n\t\t\t\treturn _getComputedStyle(elem)[_camelCase(options)];\n\t\t\t} else if (_type.Array(options)) {\n\t\t\t\tvar\n\t\t\t\tobj = {},\n\t\t\t\t\tstyle = _getComputedStyle(elem);\n\t\t\t\toptions.forEach(function (option, key) {\n\t\t\t\t\tobj[option] = style[_camelCase(option)];\n\t\t\t\t});\n\t\t\t\treturn obj;\n\t\t\t} else {\n\t\t\t\tfor (var option in options) {\n\t\t\t\t\tvar val = options[option];\n\t\t\t\t\tif (val == parseFloat(val)) { // assume pixel for seemingly numerical values\n\t\t\t\t\t\tval += 'px';\n\t\t\t\t\t}\n\t\t\t\t\telem.style[_camelCase(option)] = val;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\treturn U;\n\t}(window || {}));\n\n\tScrollMagic.Scene.prototype.addIndicators = function () {\n\t\tScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling addIndicators() due to missing Plugin \\'debug.addIndicators\\'. Please make sure to include plugins/debug.addIndicators.js');\n\t\treturn this;\n\t}\n\tScrollMagic.Scene.prototype.removeIndicators = function () {\n\t\tScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling removeIndicators() due to missing Plugin \\'debug.addIndicators\\'. Please make sure to include plugins/debug.addIndicators.js');\n\t\treturn this;\n\t}\n\tScrollMagic.Scene.prototype.setTween = function () {\n\t\tScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling setTween() due to missing Plugin \\'animation.gsap\\'. Please make sure to include plugins/animation.gsap.js');\n\t\treturn this;\n\t}\n\tScrollMagic.Scene.prototype.removeTween = function () {\n\t\tScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling removeTween() due to missing Plugin \\'animation.gsap\\'. Please make sure to include plugins/animation.gsap.js');\n\t\treturn this;\n\t}\n\tScrollMagic.Scene.prototype.setVelocity = function () {\n\t\tScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling setVelocity() due to missing Plugin \\'animation.velocity\\'. Please make sure to include plugins/animation.velocity.js');\n\t\treturn this;\n\t}\n\tScrollMagic.Scene.prototype.removeVelocity = function () {\n\t\tScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling removeVelocity() due to missing Plugin \\'animation.velocity\\'. Please make sure to include plugins/animation.velocity.js');\n\t\treturn this;\n\t}\n\n\treturn ScrollMagic;\n}));\n\n\n// WEBPACK FOOTER //\n// /Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/scrollmagic/scrollmagic/uncompressed/ScrollMagic.js","!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{var t;t=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this,t.hoverintent=e()}}(function(){return function e(t,n,o){function r(u,f){if(!n[u]){if(!t[u]){var s=\"function\"==typeof require&&require;if(!f&&s)return s(u,!0);if(i)return i(u,!0);var c=new Error(\"Cannot find module '\"+u+\"'\");throw c.code=\"MODULE_NOT_FOUND\",c}var a=n[u]={exports:{}};t[u][0].call(a.exports,function(e){var n=t[u][1][e];return r(n||e)},a,a.exports,e,t,n,o)}return n[u].exports}for(var i=\"function\"==typeof require&&require,u=0;ui.innerWidth&&(s=i.innerWidth,l=i.innerHeight),{width:s,height:l}).width};p.doesItFit=function(t){var o,r,i,a,e=0===t.getAttribute(\"instance\")?e:m.throttleDelay;0,(o=function(){var e=t.getAttribute(\"instance\");for(n(t);d<=c&&0=v[e][v[e].length-1]&&y>m.breakPoint;)p.toMenu(t,e),y>m.breakPoint&&b(t,e,m.navDropdownLabel);v[e].length<1&&(t.querySelector(u).classList.remove(\"show\"),b(t,e,m.navDropdownLabel)),t.querySelector(s).children.length<1?(t.classList.add(\"is-empty\"),b(t,e,m.navDropdownBreakpointLabel)):t.classList.remove(\"is-empty\"),g(t,e)},r=e,function(){var e=this,t=arguments,n=i&&!a;clearTimeout(a),a=setTimeout(function(){a=null,i||o.apply(e,t)},r),n&&o.apply(e,t)})()};var g=function(e,t){v[t].length<1?(e.querySelector(a).classList.add(\"priority-nav-is-hidden\"),e.querySelector(a).classList.remove(\"priority-nav-is-visible\"),e.classList.remove(\"priority-nav-has-dropdown\"),e.querySelector(\".priority-nav__wrapper\").setAttribute(\"aria-haspopup\",\"false\")):(e.querySelector(a).classList.add(\"priority-nav-is-visible\"),e.querySelector(a).classList.remove(\"priority-nav-is-hidden\"),e.classList.add(\"priority-nav-has-dropdown\"),e.querySelector(\".priority-nav__wrapper\").setAttribute(\"aria-haspopup\",\"true\"))},r=function(e,t){e.querySelector(a).setAttribute(\"priorityNav-count\",v[t].length)},b=function(e,t,n){e.querySelector(a).innerHTML=n};p.toDropdown=function(e,t){e.querySelector(u).firstChild&&0 1 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey )\n return\n\n // Ignore cross origin links\n if ( location.protocol !== link.protocol || location.hostname !== link.hostname )\n return\n\n // Ignore case when a hash is being tacked on the current URL\n if ( link.href.indexOf('#') > -1 && stripHash(link) == stripHash(location) )\n return\n\n // Ignore event with default prevented\n if (event.isDefaultPrevented())\n return\n\n var defaults = {\n url: link.href,\n container: $link.attr('data-pjax'),\n target: link\n }\n\n var opts = $.extend({}, defaults, options)\n var clickEvent = $.Event('pjax:click')\n $link.trigger(clickEvent, [opts])\n\n if (!clickEvent.isDefaultPrevented()) {\n pjax(opts)\n event.preventDefault()\n $link.trigger('pjax:clicked', [opts])\n }\n}\n\n// Public: pjax on form submit handler\n//\n// Exported as $.pjax.submit\n//\n// event - \"click\" jQuery.Event\n// options - pjax options\n//\n// Examples\n//\n// $(document).on('submit', 'form', function(event) {\n// $.pjax.submit(event, '[data-pjax-container]')\n// })\n//\n// Returns nothing.\nfunction handleSubmit(event, container, options) {\n options = optionsFor(container, options)\n\n var form = event.currentTarget\n var $form = $(form)\n\n if (form.tagName.toUpperCase() !== 'FORM')\n throw \"$.pjax.submit requires a form element\"\n\n var defaults = {\n type: ($form.attr('method') || 'GET').toUpperCase(),\n url: $form.attr('action'),\n container: $form.attr('data-pjax'),\n target: form\n }\n\n if (defaults.type !== 'GET' && window.FormData !== undefined) {\n defaults.data = new FormData(form)\n defaults.processData = false\n defaults.contentType = false\n } else {\n // Can't handle file uploads, exit\n if ($form.find(':file').length) {\n return\n }\n\n // Fallback to manually serializing the fields\n defaults.data = $form.serializeArray()\n }\n\n pjax($.extend({}, defaults, options))\n\n event.preventDefault()\n}\n\n// Loads a URL with ajax, puts the response body inside a container,\n// then pushState()'s the loaded URL.\n//\n// Works just like $.ajax in that it accepts a jQuery ajax\n// settings object (with keys like url, type, data, etc).\n//\n// Accepts these extra keys:\n//\n// container - String selector for where to stick the response body.\n// push - Whether to pushState the URL. Defaults to true (of course).\n// replace - Want to use replaceState instead? That's cool.\n//\n// Use it just like $.ajax:\n//\n// var xhr = $.pjax({ url: this.href, container: '#main' })\n// console.log( xhr.readyState )\n//\n// Returns whatever $.ajax returns.\nfunction pjax(options) {\n options = $.extend(true, {}, $.ajaxSettings, pjax.defaults, options)\n\n if ($.isFunction(options.url)) {\n options.url = options.url()\n }\n\n var hash = parseURL(options.url).hash\n\n var containerType = $.type(options.container)\n if (containerType !== 'string') {\n throw \"expected string value for 'container' option; got \" + containerType\n }\n var context = options.context = $(options.container)\n if (!context.length) {\n throw \"the container selector '\" + options.container + \"' did not match anything\"\n }\n\n // We want the browser to maintain two separate internal caches: one\n // for pjax'd partial page loads and one for normal page loads.\n // Without adding this secret parameter, some browsers will often\n // confuse the two.\n if (!options.data) options.data = {}\n if ($.isArray(options.data)) {\n options.data.push({name: '_pjax', value: options.container})\n } else {\n options.data._pjax = options.container\n }\n\n function fire(type, args, props) {\n if (!props) props = {}\n props.relatedTarget = options.target\n var event = $.Event(type, props)\n context.trigger(event, args)\n return !event.isDefaultPrevented()\n }\n\n var timeoutTimer\n\n options.beforeSend = function(xhr, settings) {\n // No timeout for non-GET requests\n // Its not safe to request the resource again with a fallback method.\n if (settings.type !== 'GET') {\n settings.timeout = 0\n }\n\n xhr.setRequestHeader('X-PJAX', 'true')\n xhr.setRequestHeader('X-PJAX-Container', options.container)\n\n if (!fire('pjax:beforeSend', [xhr, settings]))\n return false\n\n if (settings.timeout > 0) {\n timeoutTimer = setTimeout(function() {\n if (fire('pjax:timeout', [xhr, options]))\n xhr.abort('timeout')\n }, settings.timeout)\n\n // Clear timeout setting so jquerys internal timeout isn't invoked\n settings.timeout = 0\n }\n\n var url = parseURL(settings.url)\n if (hash) url.hash = hash\n options.requestUrl = stripInternalParams(url)\n }\n\n options.complete = function(xhr, textStatus) {\n if (timeoutTimer)\n clearTimeout(timeoutTimer)\n\n fire('pjax:complete', [xhr, textStatus, options])\n\n fire('pjax:end', [xhr, options])\n }\n\n options.error = function(xhr, textStatus, errorThrown) {\n var container = extractContainer(\"\", xhr, options)\n\n var allowed = fire('pjax:error', [xhr, textStatus, errorThrown, options])\n if (options.type == 'GET' && textStatus !== 'abort' && allowed) {\n locationReplace(container.url)\n }\n }\n\n options.success = function(data, status, xhr) {\n var previousState = pjax.state\n\n // If $.pjax.defaults.version is a function, invoke it first.\n // Otherwise it can be a static string.\n var currentVersion = typeof $.pjax.defaults.version === 'function' ?\n $.pjax.defaults.version() :\n $.pjax.defaults.version\n\n var latestVersion = xhr.getResponseHeader('X-PJAX-Version')\n\n var container = extractContainer(data, xhr, options)\n\n var url = parseURL(container.url)\n if (hash) {\n url.hash = hash\n container.url = url.href\n }\n\n // If there is a layout version mismatch, hard load the new url\n if (currentVersion && latestVersion && currentVersion !== latestVersion) {\n locationReplace(container.url)\n return\n }\n\n // If the new response is missing a body, hard load the page\n if (!container.contents) {\n locationReplace(container.url)\n return\n }\n\n pjax.state = {\n id: options.id || uniqueId(),\n url: container.url,\n title: container.title,\n container: options.container,\n fragment: options.fragment,\n timeout: options.timeout\n }\n\n if (options.push || options.replace) {\n window.history.replaceState(pjax.state, container.title, container.url)\n }\n\n // Only blur the focus if the focused element is within the container.\n var blurFocus = $.contains(context, document.activeElement)\n\n // Clear out any focused controls before inserting new page contents.\n if (blurFocus) {\n try {\n document.activeElement.blur()\n } catch (e) { /* ignore */ }\n }\n\n if (container.title) document.title = container.title\n\n fire('pjax:beforeReplace', [container.contents, options], {\n state: pjax.state,\n previousState: previousState\n })\n context.html(container.contents)\n\n // FF bug: Won't autofocus fields that are inserted via JS.\n // This behavior is incorrect. So if theres no current focus, autofocus\n // the last field.\n //\n // http://www.w3.org/html/wg/drafts/html/master/forms.html\n var autofocusEl = context.find('input[autofocus], textarea[autofocus]').last()[0]\n if (autofocusEl && document.activeElement !== autofocusEl) {\n autofocusEl.focus()\n }\n\n executeScriptTags(container.scripts)\n\n var scrollTo = options.scrollTo\n\n // Ensure browser scrolls to the element referenced by the URL anchor\n if (hash) {\n var name = decodeURIComponent(hash.slice(1))\n var target = document.getElementById(name) || document.getElementsByName(name)[0]\n if (target) scrollTo = $(target).offset().top\n }\n\n if (typeof scrollTo == 'number') $(window).scrollTop(scrollTo)\n\n fire('pjax:success', [data, status, xhr, options])\n }\n\n\n // Initialize pjax.state for the initial page load. Assume we're\n // using the container and options of the link we're loading for the\n // back button to the initial page. This ensures good back button\n // behavior.\n if (!pjax.state) {\n pjax.state = {\n id: uniqueId(),\n url: window.location.href,\n title: document.title,\n container: options.container,\n fragment: options.fragment,\n timeout: options.timeout\n }\n window.history.replaceState(pjax.state, document.title)\n }\n\n // Cancel the current request if we're already pjaxing\n abortXHR(pjax.xhr)\n\n pjax.options = options\n var xhr = pjax.xhr = $.ajax(options)\n\n if (xhr.readyState > 0) {\n if (options.push && !options.replace) {\n // Cache current container element before replacing it\n cachePush(pjax.state.id, [options.container, cloneContents(context)])\n\n window.history.pushState(null, \"\", options.requestUrl)\n }\n\n fire('pjax:start', [xhr, options])\n fire('pjax:send', [xhr, options])\n }\n\n return pjax.xhr\n}\n\n// Public: Reload current page with pjax.\n//\n// Returns whatever $.pjax returns.\nfunction pjaxReload(container, options) {\n var defaults = {\n url: window.location.href,\n push: false,\n replace: true,\n scrollTo: false\n }\n\n return pjax($.extend(defaults, optionsFor(container, options)))\n}\n\n// Internal: Hard replace current state with url.\n//\n// Work for around WebKit\n// https://bugs.webkit.org/show_bug.cgi?id=93506\n//\n// Returns nothing.\nfunction locationReplace(url) {\n window.history.replaceState(null, \"\", pjax.state.url)\n window.location.replace(url)\n}\n\n\nvar initialPop = true\nvar initialURL = window.location.href\nvar initialState = window.history.state\n\n// Initialize $.pjax.state if possible\n// Happens when reloading a page and coming forward from a different\n// session history.\nif (initialState && initialState.container) {\n pjax.state = initialState\n}\n\n// Non-webkit browsers don't fire an initial popstate event\nif ('state' in window.history) {\n initialPop = false\n}\n\n// popstate handler takes care of the back and forward buttons\n//\n// You probably shouldn't use pjax on pages with other pushState\n// stuff yet.\nfunction onPjaxPopstate(event) {\n\n // Hitting back or forward should override any pending PJAX request.\n if (!initialPop) {\n abortXHR(pjax.xhr)\n }\n\n var previousState = pjax.state\n var state = event.state\n var direction\n\n if (state && state.container) {\n // When coming forward from a separate history session, will get an\n // initial pop with a state we are already at. Skip reloading the current\n // page.\n if (initialPop && initialURL == state.url) return\n\n if (previousState) {\n // If popping back to the same state, just skip.\n // Could be clicking back from hashchange rather than a pushState.\n if (previousState.id === state.id) return\n\n // Since state IDs always increase, we can deduce the navigation direction\n direction = previousState.id < state.id ? 'forward' : 'back'\n }\n\n var cache = cacheMapping[state.id] || []\n var containerSelector = cache[0] || state.container\n var container = $(containerSelector), contents = cache[1]\n\n if (container.length) {\n if (previousState) {\n // Cache current container before replacement and inform the\n // cache which direction the history shifted.\n cachePop(direction, previousState.id, [containerSelector, cloneContents(container)])\n }\n\n var popstateEvent = $.Event('pjax:popstate', {\n state: state,\n direction: direction\n })\n container.trigger(popstateEvent)\n\n var options = {\n id: state.id,\n url: state.url,\n container: containerSelector,\n push: false,\n fragment: state.fragment,\n timeout: state.timeout,\n scrollTo: false\n }\n\n if (contents) {\n container.trigger('pjax:start', [null, options])\n\n pjax.state = state\n if (state.title) document.title = state.title\n var beforeReplaceEvent = $.Event('pjax:beforeReplace', {\n state: state,\n previousState: previousState\n })\n container.trigger(beforeReplaceEvent, [contents, options])\n container.html(contents)\n\n container.trigger('pjax:end', [null, options])\n } else {\n pjax(options)\n }\n\n // Force reflow/relayout before the browser tries to restore the\n // scroll position.\n container[0].offsetHeight // eslint-disable-line no-unused-expressions\n } else {\n locationReplace(location.href)\n }\n }\n initialPop = false\n}\n\n// Fallback version of main pjax function for browsers that don't\n// support pushState.\n//\n// Returns nothing since it retriggers a hard form submission.\nfunction fallbackPjax(options) {\n var url = $.isFunction(options.url) ? options.url() : options.url,\n method = options.type ? options.type.toUpperCase() : 'GET'\n\n var form = $('
    ', {\n method: method === 'GET' ? 'GET' : 'POST',\n action: url,\n style: 'display:none'\n })\n\n if (method !== 'GET' && method !== 'POST') {\n form.append($('', {\n type: 'hidden',\n name: '_method',\n value: method.toLowerCase()\n }))\n }\n\n var data = options.data\n if (typeof data === 'string') {\n $.each(data.split('&'), function(index, value) {\n var pair = value.split('=')\n form.append($('', {type: 'hidden', name: pair[0], value: pair[1]}))\n })\n } else if ($.isArray(data)) {\n $.each(data, function(index, value) {\n form.append($('', {type: 'hidden', name: value.name, value: value.value}))\n })\n } else if (typeof data === 'object') {\n var key\n for (key in data)\n form.append($('', {type: 'hidden', name: key, value: data[key]}))\n }\n\n $(document.body).append(form)\n form.submit()\n}\n\n// Internal: Abort an XmlHttpRequest if it hasn't been completed,\n// also removing its event handlers.\nfunction abortXHR(xhr) {\n if ( xhr && xhr.readyState < 4) {\n xhr.onreadystatechange = $.noop\n xhr.abort()\n }\n}\n\n// Internal: Generate unique id for state object.\n//\n// Use a timestamp instead of a counter since ids should still be\n// unique across page loads.\n//\n// Returns Number.\nfunction uniqueId() {\n return (new Date).getTime()\n}\n\nfunction cloneContents(container) {\n var cloned = container.clone()\n // Unmark script tags as already being eval'd so they can get executed again\n // when restored from cache. HAXX: Uses jQuery internal method.\n cloned.find('script').each(function(){\n if (!this.src) $._data(this, 'globalEval', false)\n })\n return cloned.contents()\n}\n\n// Internal: Strip internal query params from parsed URL.\n//\n// Returns sanitized url.href String.\nfunction stripInternalParams(url) {\n url.search = url.search.replace(/([?&])(_pjax|_)=[^&]*/g, '').replace(/^&/, '')\n return url.href.replace(/\\?($|#)/, '$1')\n}\n\n// Internal: Parse URL components and returns a Locationish object.\n//\n// url - String URL\n//\n// Returns HTMLAnchorElement that acts like Location.\nfunction parseURL(url) {\n var a = document.createElement('a')\n a.href = url\n return a\n}\n\n// Internal: Return the `href` component of given URL object with the hash\n// portion removed.\n//\n// location - Location or HTMLAnchorElement\n//\n// Returns String\nfunction stripHash(location) {\n return location.href.replace(/#.*/, '')\n}\n\n// Internal: Build options Object for arguments.\n//\n// For convenience the first parameter can be either the container or\n// the options object.\n//\n// Examples\n//\n// optionsFor('#container')\n// // => {container: '#container'}\n//\n// optionsFor('#container', {push: true})\n// // => {container: '#container', push: true}\n//\n// optionsFor({container: '#container', push: true})\n// // => {container: '#container', push: true}\n//\n// Returns options Object.\nfunction optionsFor(container, options) {\n if (container && options) {\n options = $.extend({}, options)\n options.container = container\n return options\n } else if ($.isPlainObject(container)) {\n return container\n } else {\n return {container: container}\n }\n}\n\n// Internal: Filter and find all elements matching the selector.\n//\n// Where $.fn.find only matches descendants, findAll will test all the\n// top level elements in the jQuery object as well.\n//\n// elems - jQuery object of Elements\n// selector - String selector to match\n//\n// Returns a jQuery object.\nfunction findAll(elems, selector) {\n return elems.filter(selector).add(elems.find(selector))\n}\n\nfunction parseHTML(html) {\n return $.parseHTML(html, document, true)\n}\n\n// Internal: Extracts container and metadata from response.\n//\n// 1. Extracts X-PJAX-URL header if set\n// 2. Extracts inline tags\n// 3. Builds response Element and extracts fragment if set\n//\n// data - String response data\n// xhr - XHR response\n// options - pjax options Object\n//\n// Returns an Object with url, title, and contents keys.\nfunction extractContainer(data, xhr, options) {\n var obj = {}, fullDocument = /<html/i.test(data)\n\n // Prefer X-PJAX-URL header if it was set, otherwise fallback to\n // using the original requested url.\n var serverUrl = xhr.getResponseHeader('X-PJAX-URL')\n obj.url = serverUrl ? stripInternalParams(parseURL(serverUrl)) : options.requestUrl\n\n var $head, $body\n // Attempt to parse response html into elements\n if (fullDocument) {\n $body = $(parseHTML(data.match(/<body[^>]*>([\\s\\S.]*)<\\/body>/i)[0]))\n var head = data.match(/<head[^>]*>([\\s\\S.]*)<\\/head>/i)\n $head = head != null ? $(parseHTML(head[0])) : $body\n } else {\n $head = $body = $(parseHTML(data))\n }\n\n // If response data is empty, return fast\n if ($body.length === 0)\n return obj\n\n // If there's a <title> tag in the header, use it as\n // the page's title.\n obj.title = findAll($head, 'title').last().text()\n\n if (options.fragment) {\n var $fragment = $body\n // If they specified a fragment, look for it in the response\n // and pull it out.\n if (options.fragment !== 'body') {\n $fragment = findAll($fragment, options.fragment).first()\n }\n\n if ($fragment.length) {\n obj.contents = options.fragment === 'body' ? $fragment : $fragment.contents()\n\n // If there's no title, look for data-title and title attributes\n // on the fragment\n if (!obj.title)\n obj.title = $fragment.attr('title') || $fragment.data('title')\n }\n\n } else if (!fullDocument) {\n obj.contents = $body\n }\n\n // Clean up any <title> tags\n if (obj.contents) {\n // Remove any parent title elements\n obj.contents = obj.contents.not(function() { return $(this).is('title') })\n\n // Then scrub any titles from their descendants\n obj.contents.find('title').remove()\n\n // Gather all script[src] elements\n obj.scripts = findAll(obj.contents, 'script[src]').remove()\n obj.contents = obj.contents.not(obj.scripts)\n }\n\n // Trim any whitespace off the title\n if (obj.title) obj.title = $.trim(obj.title)\n\n return obj\n}\n\n// Load an execute scripts using standard script request.\n//\n// Avoids jQuery's traditional $.getScript which does a XHR request and\n// globalEval.\n//\n// scripts - jQuery object of script Elements\n//\n// Returns nothing.\nfunction executeScriptTags(scripts) {\n if (!scripts) return\n\n var existingScripts = $('script[src]')\n\n scripts.each(function() {\n var src = this.src\n var matchedScripts = existingScripts.filter(function() {\n return this.src === src\n })\n if (matchedScripts.length) return\n\n var script = document.createElement('script')\n var type = $(this).attr('type')\n if (type) script.type = type\n script.src = $(this).attr('src')\n document.head.appendChild(script)\n })\n}\n\n// Internal: History DOM caching class.\nvar cacheMapping = {}\nvar cacheForwardStack = []\nvar cacheBackStack = []\n\n// Push previous state id and container contents into the history\n// cache. Should be called in conjunction with `pushState` to save the\n// previous container contents.\n//\n// id - State ID Number\n// value - DOM Element to cache\n//\n// Returns nothing.\nfunction cachePush(id, value) {\n cacheMapping[id] = value\n cacheBackStack.push(id)\n\n // Remove all entries in forward history stack after pushing a new page.\n trimCacheStack(cacheForwardStack, 0)\n\n // Trim back history stack to max cache length.\n trimCacheStack(cacheBackStack, pjax.defaults.maxCacheLength)\n}\n\n// Shifts cache from directional history cache. Should be\n// called on `popstate` with the previous state id and container\n// contents.\n//\n// direction - \"forward\" or \"back\" String\n// id - State ID Number\n// value - DOM Element to cache\n//\n// Returns nothing.\nfunction cachePop(direction, id, value) {\n var pushStack, popStack\n cacheMapping[id] = value\n\n if (direction === 'forward') {\n pushStack = cacheBackStack\n popStack = cacheForwardStack\n } else {\n pushStack = cacheForwardStack\n popStack = cacheBackStack\n }\n\n pushStack.push(id)\n id = popStack.pop()\n if (id) delete cacheMapping[id]\n\n // Trim whichever stack we just pushed to to max cache length.\n trimCacheStack(pushStack, pjax.defaults.maxCacheLength)\n}\n\n// Trim a cache stack (either cacheBackStack or cacheForwardStack) to be no\n// longer than the specified length, deleting cached DOM elements as necessary.\n//\n// stack - Array of state IDs\n// length - Maximum length to trim to\n//\n// Returns nothing.\nfunction trimCacheStack(stack, length) {\n while (stack.length > length)\n delete cacheMapping[stack.shift()]\n}\n\n// Public: Find version identifier for the initial page load.\n//\n// Returns String version or undefined.\nfunction findVersion() {\n return $('meta').filter(function() {\n var name = $(this).attr('http-equiv')\n return name && name.toUpperCase() === 'X-PJAX-VERSION'\n }).attr('content')\n}\n\n// Install pjax functions on $.pjax to enable pushState behavior.\n//\n// Does nothing if already enabled.\n//\n// Examples\n//\n// $.pjax.enable()\n//\n// Returns nothing.\nfunction enable() {\n $.fn.pjax = fnPjax\n $.pjax = pjax\n $.pjax.enable = $.noop\n $.pjax.disable = disable\n $.pjax.click = handleClick\n $.pjax.submit = handleSubmit\n $.pjax.reload = pjaxReload\n $.pjax.defaults = {\n timeout: 650,\n push: true,\n replace: false,\n type: 'GET',\n dataType: 'html',\n scrollTo: 0,\n maxCacheLength: 20,\n version: findVersion\n }\n $(window).on('popstate.pjax', onPjaxPopstate)\n}\n\n// Disable pushState behavior.\n//\n// This is the case when a browser doesn't support pushState. It is\n// sometimes useful to disable pushState for debugging on a modern\n// browser.\n//\n// Examples\n//\n// $.pjax.disable()\n//\n// Returns nothing.\nfunction disable() {\n $.fn.pjax = function() { return this }\n $.pjax = fallbackPjax\n $.pjax.enable = enable\n $.pjax.disable = $.noop\n $.pjax.click = $.noop\n $.pjax.submit = $.noop\n $.pjax.reload = function() { window.location.reload() }\n\n $(window).off('popstate.pjax', onPjaxPopstate)\n}\n\n\n// Add the state property to jQuery's event object so we can use it in\n// $(window).bind('popstate')\nif ($.event.props && $.inArray('state', $.event.props) < 0) {\n $.event.props.push('state')\n} else if (!('state' in $.Event.prototype)) {\n $.event.addProp('state')\n}\n\n// Is pjax supported by this browser?\n$.support.pjax =\n window.history && window.history.pushState && window.history.replaceState &&\n // pushState isn't reliable on iOS until 5.\n !navigator.userAgent.match(/((iPod|iPhone|iPad).+\\bOS\\s+[1-4]\\D|WebApps\\/.+CFNetwork)/)\n\nif ($.support.pjax) {\n enable()\n} else {\n disable()\n}\n\n})(jQuery)\n\n\n\n// WEBPACK FOOTER //\n// /Users/tomjarvis/Sites/brenhill/wp-content/themes/brenhill/node_modules/jquery-pjax/jquery.pjax.js","export default {\n init() {\n // JavaScript to be fired on the home page\n },\n finalize() {\n // JavaScript to be fired on the home page, after the init JS\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/routes/home.js","export default {\n init() {\n // JavaScript to be fired on the about us page\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./scripts/routes/about.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./styles/main.scss\n// module id = 34\n// module chunks = 0"],"sourceRoot":""}