{"version":3,"file":"js/app.tcw.min.js","mappings":"mBACeA,QACVC,OAAO,QAAS,CAAC,YACjBC,OAAO,CAAD,qCAAC,SAAUC,EAAgBC,GAC9BA,EAAkBC,WAAU,GAC5BF,EACKG,KAAK,IAAK,CACPC,KAAM,OACNC,YAAa,mCAEhBF,KAAK,cAAe,CACjBC,KAAM,KACNC,YAAa,2BAEhBF,KAAK,WAAY,CACdC,KAAM,gBACNC,YAAa,wBAEhBF,KAAK,YAAa,CACfC,KAAM,WACNC,YAAa,yBAEhBF,KAAK,UAAW,CACbC,KAAM,SACNC,YAAa,uBAEhBF,KAAK,MAAO,CACTC,KAAM,iBACNC,YAAa,+BAEhBF,KAAK,YAAa,CACfC,KAAM,WACNC,YAAa,yBAEhBF,KAAK,WAAY,CACdC,KAAM,UACNC,YAAa,wBAEhBF,KAAK,cAAe,CACjBC,KAAM,aACNC,YAAa,2BAEhBF,KAAK,SAAU,CACZC,KAAM,QACNC,YAAa,sBAEhBF,KAAK,UAAW,CACbC,KAAM,SACNC,YAAa,uBAEhBF,KAAK,kBAAmB,CACrBC,KAAM,iBACNC,YAAa,8BAEzB,IACCC,WAAW,mBAAoB,CAC5B,SACA,WACA,kBACA,SACA,UACA,SAA0BC,EAAQC,EAAUC,EAAiBC,EAAQC,GACjEF,EAAgBG,cAAgBF,GAAUA,EAAOG,QAAUH,EAAOG,QAAQT,KAAO,GACjFG,EAAOO,YAAa,EAk2F5BjB,QAAQkB,QAAQC,UAAUC,OAAM,WAC5BC,YAAW,WACP,IAAMC,EAAmBC,EAAE,sBAC3BD,EAAiBE,QAAQC,SAAS,UAAUC,YAAY,kBACxDJ,EAAiBK,KAAK,sBAAsBC,IAAI,UAAUC,KAAK,YAAY,GAE3E,IAAMC,EAAmBP,EAAE,qBAC3B,GAAIO,EAAiBC,SAAU,CAC3B,IAAIC,EAAWF,EAAiBC,SAASE,IACzCV,EAAEW,QAAQC,QAAO,WACAZ,EAAEW,QAAQE,aACTJ,EACVF,EAAiBJ,YAAY,kBAE7BI,EAAiBL,SAAS,iBAElC,GACJ,CAEAF,EAAE,kBAAkBc,GAAG,SAAS,WAC5B,IAAIC,EAAKf,EAAE,qBAAqBI,KAAK,OAAOE,KAAK,MAG7CS,EAAGC,QAAQ,eAAiB,GAC5BD,EAAGC,QAAQ,YAAc,GACzBD,EAAGC,QAAQ,aAAe,GAC1BD,EAAGC,QAAQ,iBAAmB,GAC9BD,EAAGC,QAAQ,UAAY,GACvBD,EAAGC,QAAQ,UAAY,GACvBD,EAAGC,QAAQ,YAAc,GACzBD,EAAGC,QAAQ,WAAa,GACxBD,EAAGC,QAAQ,mBAAqB,GAGhChB,EAAE,cAAciB,QAAQ,CAAEJ,UAAW,GAAK,IAElD,IACAb,EAAE,gBAAgBkB,OAAM,WACpBlB,EAAE,kBAAkBmB,YAAY,OACpC,IAEAnB,EAAEoB,QAAQ,8BAA8B,SAAUC,IAO9D,SAAsBA,GAClB,IAAIC,EAAqBtB,EAAE,uBAE3B,GAAIsB,EAAmBC,OAAQ,CAC3B,IAAIC,EAAmB,GACvBxB,EAAEyB,KAAKJ,GAAM,SAAUK,EAAOC,GAC1B,GAAIA,EAAKC,QAAQZ,QAAQ,MAAQ,EAAG,CAChC,IAAIa,EAAaF,EAAKC,QAAQE,MAAM,KACpC9B,EAAEyB,KAAKI,GAAY,SAAUH,EAAOK,GAChCP,EAAiBQ,KAAKL,EAAKM,SAAW,MAAQF,EAClD,GACJ,MACIP,EAAiBQ,KAAKL,EAAKM,SAAW,MAAQN,EAAKC,QAE3D,IAEAN,EAAmBY,aAAa,CAC5BC,UAAW,EACXC,WAAW,EACXC,OAAQb,EACRc,MAAO,SAAUC,EAAOC,GAGpB,OAFYlB,EACNmB,IAAIzC,EAAE0C,KAAKF,EAAGb,KAAKgB,MAAMb,MAAM,KAAK,MACnC,CACX,EACAc,OAAQ,SAAUL,EAAOC,GACTlB,EACNmB,IAAIzC,EAAE0C,KAAKF,EAAGb,KAAKgB,MAAMb,MAAM,KAAK,IAC9C,EACAe,OAAQ,SAAUN,EAAOC,GACrB,IAAKA,EAAGb,KAAM,CACV,IAAImB,EAAQC,KAAKD,MACbzB,EAAOrB,EAAEgD,KAAKxB,GAAkB,SAAUyB,EAAGC,GAC7C,OAAOD,EAAEE,cAAcnC,QAAQ8B,EAAMK,gBAAkB,CAC3D,IACI9B,GAAQA,EAAKE,OAAS,EACtBwB,KAAKD,MAAQ9C,EAAE0C,KAAKrB,EAAK,GAAGS,MAAM,KAAK,IAEvCiB,KAAKD,MAAQ,GAEjB,IAAIM,EAAQ9B,EACZ8B,EAAMC,QAAQ,SACdD,EAAMC,QAAQ,SAClB,CACJ,EACAC,SAAU,CACNC,UAAW,GACXC,QAAS,WACL,MAAO,EACX,IAGZ,CACJ,CA3DgBtB,CAAab,EACjB,GACJ,GAAG,EACP,IAx0FQlC,EAAOsE,YAAc,WAlCrB,IACQC,EACAC,EACAC,EAuBAC,EASJ1E,EAAO2E,2BAA2BzE,EAAgB0E,eAAiB,GACnE5E,EAAO6E,qBAAsB3E,EAAgB4E,UAC7C9E,EAAO+E,sBACH7E,EAAgB8E,SAASC,SAAW,GAAK/E,EAAgB8E,SAASE,UAAY,GAClFlF,EAAOmF,2BACHjF,EAAgBkF,cAAcC,OAAS,GAAKnF,EAAgBkF,cAAcE,SAAW,GAGzFtF,EAAOuF,qBAAsBrF,EAAgBsF,OAC7CxF,EAAOyF,wBAAwBvF,EAAgBwF,WAAWC,YAAc,GACxE3F,EAAO4F,qBAAqB1F,EAAgB2F,QAAQC,SAAW,GAC/D9F,EAAO+F,sBAAsB7F,EAAgB8F,SAASrC,MAAQ,GAC9D3D,EAAOiG,oBACH/F,EAAgBgG,OAAOC,QAAQC,MAAQ,GACvClG,EAAgBgG,OAAOC,QAAQE,OAAS,GACxCnG,EAAgBgG,OAAOC,QAAQG,MAAQ,GAG3CtG,EAAOuG,+BAAgCrG,EAAgBsG,mBACvDxG,EAAOyG,wBACHrG,EAAQ,SAARA,CAAkBF,EAAgBwG,WAAY,CAAEC,QAAQ,IAAQ,GAAMvE,OAAS,GACnFpC,EAAO4G,gCAAiC1G,EAAgB2G,oBAAoBC,YAC5E9G,EAAO+G,wBACH3G,EAAQ,SAARA,CAAkBF,EAAgB8G,WAAY,CAAEL,QAAQ,IAAQ,GAAMvE,OAAS,GACnFpC,EAAOiH,0BA1DH1C,EAAc,EACdC,EAAgB,EAChBC,EAAyB,EAC7BnF,QAAQ4H,QAAQhH,EAAgBiH,eAAe,SAAUC,EAAKC,GACtDD,EAAIT,QACJpC,IAEA6C,EAAIT,QAAUS,EAAIE,aAAeF,EAAIE,YAAc,GACnD9C,IAEA4C,EAAIT,QAAUS,EAAIG,gBAAkBH,EAAIG,eAAiB,GACzD9C,GAER,IAEIF,IAAgBC,GAChBD,IAAgBE,GAChBD,IAAkBC,GA0CtBzE,EAAOwH,qBACHtH,EAAgBuH,QAAQC,SAAStB,MAAQ,GAAKlG,EAAgBuH,QAAQC,SAASpB,MAAQ,GAG3FtG,EAAO2H,yBAAyBzH,EAAgB0H,YAAc,GAC9D5H,EAAO6H,uBAAwB3H,EAAgB4H,WAC/C9H,EAAO+H,wBAxCHrD,GAAa,EACjBpF,QAAQ4H,QAAQhH,EAAgB8H,YAAYC,OAAO,SAAUb,EAAKC,GAC1DD,EAAIE,aAAeF,EAAIE,YAAc,IACrC5C,GAAa,EAErB,IACOA,GAmCP1E,EAAOkI,+BAAgChI,EAAgBiI,qBAElDnI,EAAO2E,2BACP3E,EAAO6E,sBACP7E,EAAO+E,sBACP/E,EAAOmF,2BACPnF,EAAOuF,qBACRvF,EAAOyF,uBACPzF,EAAO4F,oBACP5F,EAAO+F,qBACP/F,EAAOiG,mBACPjG,EAAOuG,+BACPvG,EAAOyG,uBACPzG,EAAO4G,gCACP5G,EAAO+G,uBACP/G,EAAOiH,0BACPjH,EAAOwH,oBACPxH,EAAO2H,wBACP3H,EAAO6H,uBACP7H,EAAOkI,+BACPlI,EAAO+H,0BAEF/H,EAAOO,aACRN,GAAS,WACDC,EAAgBkI,YAAcpI,EAAOqI,gBACrCnI,EAAgBoI,oBAAsBzH,EAAE,gBAAgBM,KACpD,uCAEJjB,EAAgBqI,yBAChBvI,EAAOqI,eAAgB,EAE/B,GAAG,KACHrI,EAAOO,YAAa,GAGhC,EAEAP,EAAOwI,gBAAkB,WAChBxI,EAAO2E,0BACR3E,EAAOyI,aAAa,oBAAqB,GAAI,QAE5CzI,EAAO6E,qBACR7E,EAAOyI,aAAa,eAAgB,GAAI,QAEvCzI,EAAOmF,0BACRnF,EAAOyI,aAAa,oBAAqB,GAAI,QAE5CzI,EAAO+E,qBACR/E,EAAOyI,aAAa,eAAgB,GAAI,QAEvCzI,EAAOuF,qBACRvF,EAAOyI,aAAa,eAAgB,GAAI,QAEvCzI,EAAOyF,uBACRzF,EAAOyI,aAAa,iBAAkB,GAAI,QAEzCzI,EAAO4F,oBACR5F,EAAOyI,aAAa,cAAe,GAAI,QAEtCzI,EAAO+F,qBACR/F,EAAOyI,aAAa,eAAgB,GAAI,QAEvCzI,EAAOiG,mBACRjG,EAAOyI,aAAa,aAAc,GAAI,QAErCzI,EAAOuG,+BACRvG,EAAOyI,aAAa,yBAA0B,GAAI,QAEjDzI,EAAOyG,uBACRzG,EAAOyI,aAAa,iBAAkB,GAAI,QAEzCzI,EAAO4G,gCACR5G,EAAOyI,aAAa,0BAA2B,GAAI,QAElDzI,EAAO+G,uBACR/G,EAAOyI,aAAa,iBAAkB,GAAI,QAEzCzI,EAAOiH,0BACRjH,EAAOyI,aAAa,oBAAqB,GAAI,QAE5CzI,EAAOwH,oBACRxH,EAAOyI,aAAa,cAAe,GAAI,QAEtCzI,EAAO2H,wBACR3H,EAAOyI,aAAa,kBAAmB,GAAI,QAE1CzI,EAAO6H,uBACR7H,EAAOyI,aAAa,iBAAkB,GAAI,QAEzCzI,EAAO+H,wBACR/H,EAAOyI,aAAa,kBAAmB,GAAI,QAE1CzI,EAAOkI,+BACRlI,EAAOyI,aAAa,yBAA0B,GAAI,OAE1D,EAEAzI,EAAOyI,aAAe,SAAU7G,EAAIH,EAAQiH,GACxC,IAAIC,EAAO9H,EAAE,IAAMe,GAEfgH,EADY/H,EAAE8H,GAEbE,QAAQ,gDACR/H,QACAC,SAAS,UACS,IAAnB6H,EAAQxG,SACRwG,EAAU/H,EAAEJ,UAAUQ,KAAK,4BAA4BF,SAAS,WAEpEF,EAAE+H,GAAS5H,YAAY,kBACvBH,EAAE+H,GAAS3H,KAAK,sBAAsB6H,WAAW,YAEjD,IAAIC,EAASlI,EAAE8H,GAAM1H,KAAK,eAAeE,KAAK,QAE1C4H,IACIL,EACA7H,EAAE,SAAWkI,GAAQhI,SAAS,kBAE9BF,EAAE,SAAWmI,OAAOD,EAAS,IAAIhI,SAAS,kBAE9Cb,EAAgB+I,mBAAqBF,EAAS,GAE9CtH,GACAZ,EAAE,cAAciB,QAAQ,CAAEJ,UAAWkH,EAAQvH,SAASE,IAAM,IAAM,KAElErB,EAAgBG,eAGXL,EAAOkJ,gBACRhJ,EAAgBiJ,kBAG5B,EAEA,IAAMC,EAAc,CAChB,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAGEC,EAAU,UACVC,EAAe,UA8DrB,SAASC,IAiPL,SAASC,IACL,IAAMC,EAAmBhJ,SAASiJ,eAAe,uBACjD,GAAID,EAAkB,CAClBA,EAAiBE,UAAY,GAC7B,IAAIC,EACAxJ,EAAQ,SAARA,CAAkBF,EAAgBwG,WAAY,CAAEC,QAAQ,IAAQ,GAAMvE,OAAS,EAG/EyH,EAAoBC,KAAKC,MAAMD,KAAKE,UAAU9J,EAAgBwG,aAC7DkD,IACDC,EAAkB,GAAGlD,QAAS,GAElC,IAAIsD,OAAaC,EACbC,OAAmBD,EAEnBlK,EAAOoK,0BAA0BC,OACjCrK,EAAOoK,0BAA0BC,MAAMjI,OAAS,IAE5CpC,EAAOoK,0BAA0BC,MAAM,KACvCJ,EAAajK,EAAOoK,0BAA0BC,MAAM,IAEpDrK,EAAOoK,0BAA0BC,MAAM,KACvCF,EAAmBnK,EAAOoK,0BAA0BC,MAAM,KAGlE,IAAIC,EAAWtK,EAAOoK,0BAA0BE,SAC5CC,EAAoBvK,EAAOoK,0BAA0BG,kBACrDC,EAAqBxK,EAAOoK,0BAA0BI,mBAEtDxK,EAAOoK,0BAA0BK,QACjCzK,EAAOoK,0BAA0BK,OAAOrI,OAAS,IAE7CpC,EAAOoK,0BAA0BK,OAAO,KACxCH,EAAWtK,EAAOoK,0BAA0BK,OAAO,IAEnDzK,EAAOoK,0BAA0BK,OAAO,KACxCF,EAAoBvK,EAAOoK,0BAA0BK,OAAO,GAAG9H,MAAM,MAErE3C,EAAOoK,0BAA0BK,OAAO,KACxCD,EAAqBxK,EAAOoK,0BAA0BK,OAAO,GAAG9H,MAAM,OAI9E+H,IAAIC,cAAc,sBAAuBlB,EAAkB,CACvDmB,SAAU5K,EAAO6K,4BACjBC,aAAc5K,EAAgB2G,oBAC9BkE,WAAYlB,EACZW,mBAAoBA,EACpBD,kBAAmBA,EACnBD,SAAUA,EACVU,mBAAoB,GACpBC,mBAAoB,GACpBhB,WAAYA,EACZE,iBAAkBA,GAE1B,CACJ,CAEA,SAASe,IACL,IAAMC,EAAc1K,SAASiJ,eAAe,eAC5C,GAAIyB,EAAa,CACbA,EAAYxB,UAAY,GAExB,IAAIC,EACAxJ,EAAQ,SAARA,CAAkBF,EAAgBwG,WAAY,CAAEC,QAAQ,IAAQ,GAAMvE,OAAS,EAG/EyH,EAAoBC,KAAKC,MAAMD,KAAKE,UAAU9J,EAAgBwG,aAC7DkD,IACDC,EAAkB,GAAGlD,QAAS,GAElC,IAAIsD,OAAaC,EAEblK,EAAOoL,kBAAkBf,OAASrK,EAAOoL,kBAAkBf,MAAMjI,OAAS,IACtEpC,EAAOoL,kBAAkBf,MAAM,KAC/BJ,EAAajK,EAAOoL,kBAAkBf,MAAM,IAE5CrK,EAAOoL,kBAAkBf,MAAM,IAChBrK,EAAOoL,kBAAkBf,MAAM,IAGtD,IAAIC,EAAWtK,EAAOoL,kBAAkBd,SACpCC,EAAoBvK,EAAOoL,kBAAkBb,kBAC7CvK,EAAOoL,kBAAkBX,QAAUzK,EAAOoL,kBAAkBX,OAAOrI,OAAS,IACxEpC,EAAOoL,kBAAkBX,OAAO,KAChCH,EAAWtK,EAAOoL,kBAAkBX,OAAO,IAE3CzK,EAAOoL,kBAAkBX,OAAO,KAChCF,EAAoBvK,EAAOoL,kBAAkBX,OAAO,GAAG9H,MAAM,MAE7D3C,EAAOoL,kBAAkBX,OAAO,KAChCY,gBAAkBrL,EAAOoL,kBAAkBX,OAAO,GAAG9H,MAAM,OAInE+H,IAAIC,cAAc,cAAeQ,EAAa,CAC1CP,SAAU5K,EAAOsL,oBACjBP,WAAYlB,EACZiB,aAAc5K,EAAgB8H,YAC9BuD,QAASvL,EAAOoL,kBAAkBX,OAClCR,WAAYA,EACZK,SAAUA,EACVC,kBAAmBA,GAE3B,CACJ,CAEA,SAASiB,IACL,IAAMC,EAAgBhL,SAASiJ,eAAe,iBAC9C,GAAI+B,EAAe,CACfhL,SAASiJ,eAAe,iBAAiBC,UAAY,GAEjDvJ,EAAQ,SAARA,CAAkBF,EAAgB8G,WAAY,CAAEL,QAAQ,IAAQ,GAAMvE,OAAS,EAI/ElC,EAAgBiH,cAAgBjH,EAAgB8G,WAAW0E,QAAO,SAC9DC,EACAC,EACArJ,GAGA,OADAoJ,EAAcpJ,GAAOoE,OAASiF,EAAMjF,OAC7BgF,CACX,GACAzL,EAAgBiH,gBAEhBtG,EAAE,sBAAsBG,YAAY,UACpCH,EAAE,sBAAsBE,SAAS,kBACjCb,EAAgBiH,cAAgBjH,EAAgB8G,WAAW0E,QAAO,SAC9DC,EACAC,EACArJ,GAKA,OAHAoJ,EAAcpJ,GAAOoE,QAAS,EAC9BgF,EAAcpJ,GAAOgF,oBAAiB2C,EACtCyB,EAAcpJ,GAAO+E,iBAAc4C,EAC5ByB,CACX,GACAzL,EAAgBiH,gBAEpB,IAAI8C,OAAaC,EACb2B,OAAc3B,EACdlK,EAAO8L,oBAAoBzB,OAASrK,EAAO8L,oBAAoBzB,MAAMjI,OAAS,IAC1EpC,EAAO8L,oBAAoBzB,MAAM,KACjCJ,EAAajK,EAAO8L,oBAAoBzB,MAAM,IAE9CrK,EAAO8L,oBAAoBzB,MAAM,KACjCwB,EAAc7L,EAAO8L,oBAAoBzB,MAAM,KAGvD,IAAIC,EAAWtK,EAAO8L,oBAAoBxB,SACtCC,EAAoBvK,EAAO8L,oBAAoBvB,kBAC/Cc,EAAkBrL,EAAO8L,oBAAoBT,gBAC7CrL,EAAO8L,oBAAoBrB,QAAUzK,EAAO8L,oBAAoBrB,OAAOrI,OAAS,IAC5EpC,EAAO8L,oBAAoBrB,OAAO,KAClCH,EAAWtK,EAAO8L,oBAAoBrB,OAAO,IAE7CzK,EAAO8L,oBAAoBrB,OAAO,KAClCF,EAAoBvK,EAAO8L,oBAAoBrB,OAAO,GAAG9H,MAAM,MAE/D3C,EAAO8L,oBAAoBrB,OAAO,KAClCY,EAAkBrL,EAAO8L,oBAAoBrB,OAAO,GAAG9H,MAAM,OAIrE+H,IAAIC,cAAc,gBAAiBc,EAAe,CAC9Cb,SAAU5K,EAAO+L,sBACjBjB,aAAc5K,EAAgBiH,cAC9BoE,QAASvL,EAAO8L,oBAAoBrB,OACpCR,WAAYA,EACZ4B,YAAaA,EACbvB,SAAUA,EACVC,kBAAmBA,EACnBc,gBAAiBA,EACjBW,mBAAoBhM,EAAO8L,oBAAoBE,oBAEvD,CACJ,CAnuBmB,CACf,gBACA,WACA,WACA,gBACA,aACA,UACA,WACA,SACA,qBACA,aACA,sBACA,aACA,gBACA,UACA,cACA,aACA,cACA,sBAGO9E,SAAQ,SAAC+E,GAChB,IAAMC,EAAmBzL,SAASiJ,eAAeuC,GACjD,GAAIC,EAAkB,CAClBA,EAAiBvC,UAAY,GAC7B,IAAMwC,EAAO3K,OAAO4K,SAASD,KACvBE,EAAOF,EAAKG,UAAUH,EAAKtK,QAAQ,KAAO,GAChDqK,EAAiBK,UAAUC,IAAI,GAADC,OAAIJ,EAAI,KAAAI,OAAIR,GAC9C,CACJ,IAsSAjM,EAAO0M,SAAWxM,EAClBF,EAAOsE,cACPtE,EAAOwI,kBACP7H,YAAW,WACP,IAAMgM,EAAYlM,SAASiJ,eAAe,iBACtCiD,GACAjC,IAAIC,cAAc,gBAAiBgC,EAAW,CAC1C/B,SAAU5K,EAAO4M,oBACjB9B,aAAc5K,EAAgB0E,eAC9BiI,YAAa,CAAC,EAAG,GAAK,GAAK,GAC3BC,WAAY,CAAC,EAAG,IAAK,IAAM,MAC3BvB,QAASvL,EAAO+M,oBAAoBtC,SAG5C,IAAMuC,EAAWvM,SAASiJ,eAAe,YACrCsD,GACAtC,IAAIC,cAAc,WAAYqC,EAAU,CACpCpC,SAAU5K,EAAOiN,kBACjBnC,aAAc5K,EAAgB4E,UAC9BoI,OAAQlN,EAAOmN,eAAeD,SAGtC,IAAME,EAAW3M,SAASiJ,eAAe,YACrC0D,GACA1C,IAAIC,cAAc,WAAYyC,EAAU,CACpCxC,SAAU5K,EAAOqN,iBACjBvC,aAAc5K,EAAgB8E,SAASrB,MACvC0G,MAAOrK,EAAOsN,eAAejD,MAC7B6C,OAAQlN,EAAOsN,eAAeJ,SAGtC,IAAMK,EAAgB9M,SAASiJ,eAAe,iBAC1C6D,GACA7C,IAAIC,cAAc,gBAAiB4C,EAAe,CAC9C3C,SAAU5K,EAAOwN,sBACjB1C,aAAc5K,EAAgBkF,cAAczB,MAC5C0G,MAAOrK,EAAOyN,oBAAoBpD,MAClC6C,OAAQlN,EAAOyN,oBAAoBP,SAI3C,IAAMQ,EAAajN,SAASiJ,eAAe,cAC3C,GAAIgE,EAAY,CACZ,IAAAC,EAQI3N,EAAO4N,iBAPPvD,EAAKsD,EAALtD,MACAwD,EAAYF,EAAZE,aACAC,EAAgBH,EAAhBG,iBACAC,EAAcJ,EAAdI,eACAC,EAAqBL,EAArBK,sBACAC,EAAmBN,EAAnBM,oBACAC,EAAmBP,EAAnBO,oBAGGzD,EAAWzK,EAAO4N,iBAAlBnD,OAEJA,GAAUA,EAAOrI,OAAS,IACzByL,EAAepD,EAAO,GAAKA,EAAO,GAAKoD,EACvCC,EAAmBrD,EAAO,GAAKA,EAAO,GAAKqD,EAC3CE,EAAwBvD,EAAO,GAAKA,EAAO,GAAKuD,EAChDC,EAAsBxD,EAAO,GAAKA,EAAO,GAAKwD,EAC9CC,EAAsBzD,EAAO,GAAKA,EAAO,GAAKyD,GAGlDxD,IAAIC,cAAc,aAAc+C,EAAY,CACxC9C,SAAU5K,EAAOmO,mBACjBrD,aAAc5K,EAAgBwF,WAC9B0I,SAAU,GACV/D,MAAAA,EACA0D,eAAAA,EACAF,aAAAA,EACAC,iBAAAA,EACAE,sBAAAA,EACAC,oBAAAA,EACAC,oBAAAA,GAER,CACA,IAAMG,EAAU5N,SAASiJ,eAAe,WACxC,GAAI2E,EAAS,CACT,IAAIhE,OAAQH,EACR6D,OAAiB7D,EACjB2D,EAAe7N,EAAOsO,cAAcT,aACpCC,OAAmB5D,EACnB8D,OAAwB9D,EACxBlK,EAAOsO,cAAcjE,OAASrK,EAAOsO,cAAcjE,MAAMjI,OAAS,IAC9DpC,EAAOsO,cAAcjE,MAAM,KAC3BA,EAAQrK,EAAOsO,cAAcjE,MAAM,IAEnCrK,EAAOsO,cAAcjE,MAAM,KAC3B0D,EAAiB/N,EAAOsO,cAAcjE,MAAM,KAGhDrK,EAAOsO,cAAc7D,QAAUzK,EAAOsO,cAAc7D,OAAOrI,OAAS,IAChEpC,EAAOsO,cAAc7D,OAAO,KAC5BoD,EAAe7N,EAAOsO,cAAc7D,OAAO,IAE3CzK,EAAOsO,cAAc7D,OAAO,KAC5BqD,EAAmB9N,EAAOsO,cAAc7D,OAAO,IAE/CzK,EAAOsO,cAAc7D,OAAO,KAC5BuD,EAAwBhO,EAAOsO,cAAc7D,OAAO,KAG5DC,IAAIC,cAAc,UAAW0D,EAAS,CAClCzD,SAAU5K,EAAOuO,gBACjBzD,aAAc5K,EAAgB2F,QAC9BuI,SAAU,GACV/D,MAAOA,EACP0D,eAAgBA,EAChBF,aAAcA,EACdC,iBAAkBA,EAClBE,sBAAuBA,GAE/B,CACA,IAAMQ,EAAW/N,SAASiJ,eAAe,YACrC8E,GACA9D,IAAIC,cAAc,WAAY6D,EAAU,CACpC5D,SAAU5K,EAAOyO,iBACjB3D,aAAc5K,EAAgB8F,SAASrC,MACvC0G,MAAOrK,EAAO0O,eAAerE,MAC7BkB,QAASvL,EAAO0O,eAAejE,SAGvC,IAAMkE,EAASlO,SAASiJ,eAAe,UACvC,GAAIiF,EAAQ,CACR,IAAIC,OAAa1E,EACb2E,OAAc3E,EACd4E,OAAa5E,EACblK,EAAO+O,aAAa7B,QAAUlN,EAAO+O,aAAa7B,OAAO9K,OAAS,IAC9DpC,EAAO+O,aAAa7B,OAAO,KAC3B0B,EAAa5O,EAAO+O,aAAa7B,OAAO,IAExClN,EAAO+O,aAAa7B,OAAO,KAC3B2B,EAAc7O,EAAO+O,aAAa7B,OAAO,IAEzClN,EAAO+O,aAAa7B,OAAO,KAC3B4B,EAAa9O,EAAO+O,aAAa7B,OAAO,KAGhDxC,IAAIC,cAAc,UAAWgE,EAAQ,CACjC/D,SAAU5K,EAAOgP,eACjBlE,aAAc5K,EAAgBgG,OAAOC,QACrC8I,MAAOjP,EAAO+O,aAAatE,OAC3BJ,MAAOrK,EAAO+O,aAAa1E,MAC3BuE,WAAYA,EACZC,YAAaA,EACbC,WAAYA,GAEpB,CACA,IAAMI,EAAqBzO,SAASiJ,eAAe,sBAC/CwF,GACAxE,IAAIC,cAAc,qBAAsBuE,EAAoB,CACxDtE,SAAU5K,EAAOmP,2BACjBD,mBAAoBhP,EAAgBsG,mBACpCyI,MAAOjP,EAAOoP,yBAAyB3E,OACvCJ,MAAOrK,EAAOoP,yBAAyB/E,QAG/C,IAAMgF,EAAa5O,SAASiJ,eAAe,cACvC2F,GACA3E,IAAIC,cAAc,aAAc0E,EAAY,CACxCzE,SAAU5K,EAAOsP,mBACjBxE,aAAc5K,EAAgBwG,WAC9BuI,MAAOjP,EAAOuP,iBAAiB9E,OAC/BJ,MAAOrK,EAAOuP,iBAAiBlF,QAIvCb,IAEA,IAAMgG,EAAa/O,SAASiJ,eAAe,cACvC8F,GACA9E,IAAIC,cAAc,aAAc6E,EAAY,CACxC5E,SAAU5K,EAAOyP,mBACjB3E,aAAc5K,EAAgB8G,WAC9BiI,MAAOjP,EAAO0P,iBAAiBjF,OAC/BJ,MAAOrK,EAAO0P,iBAAiBrF,QAIvCmB,IAEA,IAAMmE,EAAUlP,SAASiJ,eAAe,WACxC,GAAIiG,EAAS,CACLf,OAAa1E,EACb4E,OAAa5E,EACblK,EAAO4P,cAAc1C,QAAUlN,EAAO4P,cAAc1C,OAAO9K,OAAS,IAChEpC,EAAO4P,cAAc1C,OAAO,KAC5B0B,EAAa5O,EAAO4P,cAAc1C,OAAO,IAEzClN,EAAO4P,cAAc1C,OAAO,KAC5B4B,EAAa9O,EAAO4P,cAAc1C,OAAO,KAGjDxC,IAAIC,cAAc,WAAYgF,EAAS,CACnC/E,SAAU5K,EAAO6P,oBACjBjB,WAAYA,EACZ9D,aAAc5K,EAAgBuH,QAAQC,SACtCoH,WAAYA,EACZG,MAAOjP,EAAO4P,cAAcnF,OAC5BJ,MAAOrK,EAAO4P,cAAcvF,OAEpC,CAEA,IAAMyF,EAAcrP,SAASiJ,eAAe,eACxCoG,GACApF,IAAIC,cAAc,cAAemF,EAAa,CAC1ClF,SAAU5K,EAAO+P,oBACjBjF,aAAc5K,EAAgB0H,YAC9B2D,QAASvL,EAAOgQ,kBAAkBzE,QAClClB,MAAOrK,EAAOgQ,kBAAkB3F,MAChC2B,mBAAoBhM,EAAOgQ,kBAAkBhE,mBAC7CoC,SAAU,KAIlB,IAAM6B,EAAaxP,SAASiJ,eAAe,cACvCuG,GACAvF,IAAIC,cAAc,aAAcsF,EAAY,CACxCrF,SAAU5K,EAAOkQ,mBACjBD,WAAY/P,EAAgB4H,WAC5BgD,aAAc5K,EAAgBiQ,kBAC9BlB,MAAOjP,EAAOoQ,iBAAiB3F,OAC/BJ,MAAOrK,EAAOoQ,iBAAiB/F,QAGvCa,IAEA,IAAMmF,EAAqB5P,SAASiJ,eAAe,sBAC/C2G,GACA3F,IAAIC,cAAc,qBAAsB0F,EAAoB,CACxDzF,SAAU5K,EAAOsQ,2BACjBD,mBAAoBnQ,EAAgBiI,mBACpC2C,aAAc5K,EAAgBqQ,0BAC9BtB,MAAOjP,EAAOwQ,yBAAyB/F,OACvCJ,MAAOrK,EAAOwQ,yBAAyBnG,OAGnD,GAAG,KAqLHrK,EAAO4M,oBAAsB,SAAU6D,GACnCxQ,GAAS,WACLC,EAAgB0E,eAAiB6L,EAEjCzQ,EAAOsE,cACFtE,EAAO2E,0BACR3E,EAAOyI,aAAa,oBAE5B,GAAG,IACP,EACAzI,EAAOiN,kBAAoB,SAAUwD,GACjCxQ,GAAS,WACLC,EAAgB4E,UAAY2L,EAE5BzQ,EAAOsE,cACFtE,EAAO6E,qBACR7E,EAAOyI,aAAa,eAE5B,GAAG,IACP,EACAzI,EAAOwN,sBAAwB,SAAUiD,GACrCxQ,GAAS,WACLC,EAAgBkF,cAAgBqL,EAEhCzQ,EAAOsE,cACFtE,EAAOmF,0BACRnF,EAAOyI,aAAa,oBAE5B,GAAG,IACP,EACAzI,EAAOqN,iBAAmB,SAAUoD,GAChCxQ,GAAS,WACLC,EAAgB8E,SAAWyL,EAE3BzQ,EAAOsE,cACFtE,EAAO+E,qBACR/E,EAAOyI,aAAa,eAE5B,GAAG,IACP,EACAzI,EAAO0Q,eAAiB,WAEpB1Q,EAAOsE,cACFtE,EAAOuF,qBACRvF,EAAOyI,aAAa,eAE5B,EACAzI,EAAOmO,mBAAqB,SAAUsC,GAClCxQ,GAAS,WACLC,EAAgBwF,WAAa+K,EAC7BvQ,EAAgByQ,2BAA2B,cAC3C3Q,EAAOsE,cACFtE,EAAOyF,uBACRzF,EAAOyI,aAAa,kBAExBvI,EAAgB0Q,cAAc,aAClC,GAAG,IACP,EACA5Q,EAAOuO,gBAAkB,SAAUkC,GAC/BxQ,GAAS,WACLC,EAAgB2F,QAAU4K,EAC1BvQ,EAAgByQ,2BAA2B,WAC3C3Q,EAAOsE,cACFtE,EAAO4F,oBACR5F,EAAOyI,aAAa,eAExBvI,EAAgB0Q,cAAc,UAClC,GAAG,IACP,EAEA5Q,EAAOyO,iBAAmB,SAAUgC,GAChCxQ,GAAS,WACLC,EAAgB8F,SAAWyK,EAC3BvQ,EAAgByQ,2BAA2B,YAC3C3Q,EAAOsE,cACFtE,EAAO+F,qBACR/F,EAAOyI,aAAa,gBAExBvI,EAAgB0Q,cAAc,WAClC,GAAG,IACP,EACA5Q,EAAOgP,eAAiB,SAAUyB,GAC9BxQ,GAAS,WACLC,EAAgBgG,OAASuK,EACzBvQ,EAAgByQ,2BAA2B,UAC3C3Q,EAAOsE,cACFtE,EAAOiG,mBACRjG,EAAOyI,aAAa,cAExBvI,EAAgB0Q,cAAc,SAClC,GAAG,IACP,EACA5Q,EAAOmP,2BAA6B,SAAUsB,GAC1CxQ,GAAS,WACLC,EAAgBsG,mBAAqBiK,EAAOvB,mBAC5ChP,EAAgByQ,2BAA2B,sBAC3C3Q,EAAOsE,cACFtE,EAAOuG,+BACRvG,EAAOyI,aAAa,0BAExBvI,EAAgB0Q,cAAc,qBAClC,GAAG,IACP,EAEA5Q,EAAOsP,mBAAqB,SAAUmB,GAClCxQ,GAAS,WACLC,EAAgBwG,WAAa+J,EAAO1F,WACpC7K,EAAgByQ,2BAA2B,cAC3C3Q,EAAOsE,cACFtE,EAAOyG,uBACRzG,EAAOyI,aAAa,kBAIa,kBAAjCvI,EAAgBG,eAChBmJ,IAEiC,cAAjCtJ,EAAgBG,eAChBH,EAAgB0Q,cAAc,cAEG,UAAjC1Q,EAAgBG,eAChB6K,GAER,GAAG,IACP,EACAlL,EAAO6K,4BAA8B,SAAU4F,GAC3CxQ,GAAS,WACLC,EAAgB2G,oBAAsB4J,EACtCvQ,EAAgByQ,2BAA2B,uBAC3C3Q,EAAOsE,cACFtE,EAAO4G,gCACR5G,EAAOyI,aAAa,2BAExBvI,EAAgB0Q,cAAc,sBAClC,GAAG,IACP,EACA5Q,EAAOyP,mBAAqB,SAAUgB,GAClCxQ,GAAS,WACLC,EAAgB8G,WAAayJ,EAAOI,UACpC3Q,EAAgByQ,2BAA2B,cAC3C3Q,EAAOsE,cACFtE,EAAO+G,uBACR/G,EAAOyI,aAAa,kBAGxB+C,GACJ,GAAG,IACP,EAEAxL,EAAO+L,sBAAwB,SAAU0E,GACrCxQ,GAAS,WACLC,EAAgBiH,cAAgBsJ,EAChCvQ,EAAgByQ,2BAA2B,iBAC3C3Q,EAAOsE,cACFtE,EAAOiH,0BACRjH,EAAOyI,aAAa,qBAExBvI,EAAgB0Q,cAAc,gBAClC,GAAG,IACP,EACA5Q,EAAO6P,oBAAsB,SAAUY,GACnCxQ,GAAS,WACLC,EAAgBuH,QAAUgJ,EAC1BvQ,EAAgByQ,2BAA2B,WAC3C3Q,EAAOsE,cACFtE,EAAOwH,oBACRxH,EAAOyI,aAAa,eAExBvI,EAAgB0Q,cAAc,UAClC,GAAG,IACP,EAEA5Q,EAAO+P,oBAAsB,SAAUU,GACnCxQ,GAAS,WACLC,EAAgB0H,YAAc6I,EAC9BvQ,EAAgByQ,2BAA2B,eAC3C3Q,EAAOsE,cACFtE,EAAO2H,wBACR3H,EAAOyI,aAAa,mBAGa,UAAjCvI,EAAgBG,eAChBH,EAAgB0Q,cAAc,UAEG,SAAjC1Q,EAAgBG,eAChBH,EAAgB0Q,cAAc,SAEG,kBAAjC1Q,EAAgBG,eAChBH,EAAgB0Q,cAAc,iBAEtC,GAAG,IACP,EACA5Q,EAAOsQ,2BAA6B,SAAUG,GAC1CxQ,GAAS,WACLC,EAAgBiI,mBAAqBsI,EAAOJ,mBAC5CnQ,EAAgByQ,2BAA2B,sBAC3C3Q,EAAOsE,cACFtE,EAAOkI,+BACRlI,EAAOyI,aAAa,0BAExBvI,EAAgB0Q,cAAc,iBAClC,GAAG,IACP,EACA5Q,EAAOkQ,mBAAqB,SAAUO,GAClCxQ,GAAS,WACLC,EAAgB4H,WAAa2I,EAAOR,WACpC/P,EAAgByQ,2BAA2B,cAC3C3Q,EAAOsE,cACFtE,EAAO6H,uBACR7H,EAAOyI,aAAa,kBAExByC,GACJ,GAAG,IACP,EACAlL,EAAOsL,oBAAsB,SAAUmF,GACnCxQ,GAAS,WACLC,EAAgB8H,YAAcyI,EAC9BvQ,EAAgByQ,2BAA2B,eAC3C3Q,EAAOsE,cACFtE,EAAO+H,wBACR/H,EAAOyI,aAAa,mBAExBvI,EAAgB0Q,cAAc,SAClC,GAAG,IACP,EACA3Q,GAAS,WACLD,EAAOkJ,gBAAiB,CAC5B,GAAG,IACP,CApsBAlJ,EAAO+M,oBAAsB,CACzBG,OAAQ,GACRzC,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC3EJ,MAAO,IAEXrK,EAAOmN,eAAiB,CAAED,OAAQ,CAAC,QAAS,OAAQ,YAAa,aAAczC,OAAQ,GAAIJ,MAAO,IAClGrK,EAAOsN,eAAiB,CAAEJ,OAAQ,CAAC,WAAY,aAAczC,OAAQ,GAAIJ,MAAO,IAChFrK,EAAOyN,oBAAsB,CAAEP,OAAQ,CAAC,SAAU,YAAazC,OAAQ,GAAIJ,MAAO,IAClFrK,EAAO4N,iBAAmB,CACtBV,YAAQhD,EACRO,YAAQP,EACR2D,aAAcxE,EACd2E,sBAAuB3E,EACvB4E,oBAAqB5E,EACrB6E,oBAAqB,UACrB7D,WAAOH,GAEXlK,EAAOsO,cAAgB,CACnBpB,YAAQhD,EACRO,YAAQP,EACR2D,aAAcvE,EACd0E,sBAAuB1E,EACvB2E,oBAAqB3E,EACrB4E,oBAAqB,UACrB7D,WAAOH,GAEXlK,EAAO0O,eAAiB,CAAExB,YAAQhD,EAAWO,YAAQP,EAAWG,WAAOH,GACvElK,EAAO+O,aAAe,CAAE7B,YAAQhD,EAAWO,YAAQP,EAAWG,WAAOH,GACrElK,EAAOoP,yBAA2B,CAAElC,YAAQhD,EAAWO,YAAQP,EAAWG,WAAOH,GACjFlK,EAAOuP,iBAAmB,CAAErC,YAAQhD,EAAWO,YAAQP,EAAWG,WAAOH,GACzElK,EAAOoK,0BAA4B,CAC/B8C,YAAQhD,EACRO,YAAQP,EACRI,SAAU,UACVC,kBAAmBnB,EACnBoB,mBAAoB,CAAC,UAAW,UAAW,WAC3CH,WAAOH,GAEXlK,EAAO0P,iBAAmB,CAAExC,YAAQhD,EAAWO,YAAQP,EAAWG,WAAOH,GACzElK,EAAO8L,oBAAsB,CACzBoB,YAAQhD,EACRO,YAAQP,EACRI,SAAU,UACVC,kBAAmBnB,EACnBiC,gBAAiB,CAAC,UAAW,UAAW,UAAW,WACnDW,mBAAoB,UACpB3B,WAAOH,GAEXlK,EAAO4P,cAAgB,CAAE1C,YAAQhD,EAAWO,YAAQP,EAAWG,WAAOH,GACtElK,EAAOgQ,kBAAoB,CAAE9C,YAAQhD,EAAWO,YAAQP,EAAWqB,QAAS,CAAC,UAAW,UAAW,UAAW,WAAYS,mBAAoB,UAAW3B,WAAOH,GAChKlK,EAAOoQ,iBAAmB,CAAElD,YAAQhD,EAAWO,YAAQP,EAAWG,WAAOH,GACzElK,EAAOoL,kBAAoB,CACvB8B,YAAQhD,EACRO,YAAQP,EACRI,SAAU,UACVC,kBAAmBnB,EACnBiB,WAAOH,GAEXlK,EAAOwQ,yBAA2B,CAAEtD,YAAQhD,EAAWO,YAAQP,EAAWG,WAAOH,GA4oBjFX,IACAvJ,EAAO8Q,IAAI,kBAAkB,WACzB9Q,EAAOkJ,gBAAiB,EACxBK,GACJ,IACAvJ,EAAO4Q,cAAgB,SAAUpN,GAC7BtD,EAAgB6Q,yBAAyBvN,GACzCtD,EAAgB0Q,gBAChB3Q,GAAS,WACDC,EAAgBkI,YAChBlI,EAAgBoI,oBAAsBzH,EAAE,gBAAgBM,KACpD,uCAEJjB,EAAgBqI,yBAChBvI,EAAOqI,eAAgB,EAE/B,GAAG,IACP,CACJ,IAEH2I,UAAU,uBAAwB,CAC/B,WACI,MAAO,CACHC,SAAU,IACVC,OAAO,EACPC,KAAM,SAAUnR,EAAQoR,EAAUC,GACb,kBAAbA,EAAMzP,KACFyP,EAAMnE,SACNlN,EAAO+M,oBAAoBG,OAASmE,EAAMnE,OAAOvK,MAAM,MAEvD0O,EAAM5G,SACNzK,EAAO+M,oBAAoBtC,OAAS4G,EAAM5G,OAAO9H,MAAM,MAEvD0O,EAAMhH,QACNrK,EAAO+M,oBAAoB1C,MAAQgH,EAAMhH,QAGhC,aAAbgH,EAAMzP,KACFyP,EAAMnE,SACNlN,EAAOmN,eAAeD,OAASmE,EAAMnE,OAAOvK,MAAM,MAElD0O,EAAM5G,SACNzK,EAAOmN,eAAe1C,OAAS4G,EAAM5G,OAAO9H,MAAM,MAElD0O,EAAMhH,QACNrK,EAAOmN,eAAe9C,MAAQgH,EAAMhH,QAG3B,aAAbgH,EAAMzP,KACFyP,EAAMnE,SACNlN,EAAOsN,eAAeJ,OAASmE,EAAMnE,OAAOvK,MAAM,MAElD0O,EAAM5G,SACNzK,EAAOsN,eAAe7C,OAAS4G,EAAM5G,OAAO9H,MAAM,MAElD0O,EAAMhH,QACNrK,EAAOsN,eAAejD,MAAQgH,EAAMhH,QAG3B,kBAAbgH,EAAMzP,KACFyP,EAAMnE,SACNlN,EAAOyN,oBAAoBP,OAASmE,EAAMnE,OAAOvK,MAAM,MAEvD0O,EAAM5G,SACNzK,EAAOyN,oBAAoBhD,OAAS4G,EAAM5G,OAAO9H,MAAM,MAEvD0O,EAAMhH,QACNrK,EAAOyN,oBAAoBpD,MAAQgH,EAAMhH,QAGhC,eAAbgH,EAAMzP,KACFyP,EAAMnE,SACNlN,EAAO4N,iBAAiBV,OAASmE,EAAMnE,OAAOvK,MAAM,MAEpD0O,EAAM5G,SACNzK,EAAO4N,iBAAiBnD,OAAS4G,EAAM5G,OAAO9H,MAAM,MAEpD0O,EAAMhH,QACNrK,EAAO4N,iBAAiBvD,MAAQgH,EAAMhH,MAAM1H,MAAM,OAGzC,YAAb0O,EAAMzP,KACFyP,EAAMnE,SACNlN,EAAOsO,cAAcpB,OAASmE,EAAMnE,OAAOvK,MAAM,MAEjD0O,EAAM5G,SACNzK,EAAOsO,cAAc7D,OAAS4G,EAAM5G,OAAO9H,MAAM,MAEjD0O,EAAMhH,QACNrK,EAAOsO,cAAcjE,MAAQgH,EAAMhH,MAAM1H,MAAM,OAGtC,aAAb0O,EAAMzP,KACFyP,EAAMnE,SACNlN,EAAO0O,eAAexB,OAASmE,EAAMnE,OAAOvK,MAAM,MAElD0O,EAAM5G,SACNzK,EAAO0O,eAAejE,OAAS4G,EAAM5G,OAAO9H,MAAM,MAElD0O,EAAMhH,QACNrK,EAAO0O,eAAerE,MAAQgH,EAAMhH,QAG3B,WAAbgH,EAAMzP,KACFyP,EAAMnE,SACNlN,EAAO+O,aAAa7B,OAASmE,EAAMnE,OAAOvK,MAAM,MAEhD0O,EAAM5G,SACNzK,EAAO+O,aAAatE,OAAS4G,EAAM5G,OAAO9H,MAAM,MAEhD0O,EAAMhH,QACNrK,EAAO+O,aAAa1E,MAAQgH,EAAMhH,QAGzB,uBAAbgH,EAAMzP,KACFyP,EAAMnE,SACNlN,EAAOoP,yBAAyBlC,OAASmE,EAAMnE,OAAOvK,MAAM,MAE5D0O,EAAM5G,SACNzK,EAAOoP,yBAAyB3E,OAAS4G,EAAM5G,OAAO9H,MAAM,MAE5D0O,EAAMhH,QACNrK,EAAOoP,yBAAyB/E,MAAQgH,EAAMhH,QAGrC,eAAbgH,EAAMzP,KACFyP,EAAMnE,SACNlN,EAAOuP,iBAAiBrC,OAASmE,EAAMnE,OAAOvK,MAAM,MAEpD0O,EAAM5G,SACNzK,EAAOuP,iBAAiB9E,OAAS4G,EAAM5G,OAAO9H,MAAM,MAEpD0O,EAAMhH,QACNrK,EAAOuP,iBAAiBlF,MAAQgH,EAAMhH,QAG7B,wBAAbgH,EAAMzP,KACFyP,EAAMnE,SACNlN,EAAOoK,0BAA0B8C,OAASmE,EAAMnE,OAAOvK,MAAM,MAE7D0O,EAAM5G,SACNzK,EAAOoK,0BAA0BK,OAAS4G,EAAM5G,OAAO9H,MAAM,MAE7D0O,EAAMhH,QACNrK,EAAOoK,0BAA0BC,MAAQgH,EAAMhH,MAAM1H,MAAM,OAGnD,cAAZ0O,EAAMzP,KACFyP,EAAMnE,SACNlN,EAAO0P,iBAAiBxC,OAASmE,EAAMnE,OAAOvK,MAAM,MAEpD0O,EAAM5G,SACNzK,EAAO0P,iBAAiBjF,OAAS4G,EAAM5G,OAAO9H,MAAM,MAEpD0O,EAAMhH,QACNrK,EAAO0P,iBAAiBrF,MAAQgH,EAAMhH,QAG7B,kBAAbgH,EAAMzP,KACFyP,EAAMnE,SACNlN,EAAO8L,oBAAoBoB,OAASmE,EAAMnE,OAAOvK,MAAM,MAEvD0O,EAAM5G,SACNzK,EAAO8L,oBAAoBrB,OAAS4G,EAAM5G,OAAO9H,MAAM,MAEvD0O,EAAMhH,QACNrK,EAAO8L,oBAAoBzB,MAAQgH,EAAMhH,MAAM1H,MAAM,OAG5C,YAAb0O,EAAMzP,KACFyP,EAAMnE,SACNlN,EAAO4P,cAAc1C,OAASmE,EAAMnE,OAAOvK,MAAM,MAEjD0O,EAAM5G,SACNzK,EAAO4P,cAAcnF,OAAS4G,EAAM5G,OAAO9H,MAAM,MAEjD0O,EAAMhH,QACNrK,EAAO4P,cAAcvF,MAAQgH,EAAMhH,MAAM1H,MAAM,OAGtC,gBAAb0O,EAAMzP,KACFyP,EAAMnE,SACNlN,EAAOgQ,kBAAkB9C,OAASmE,EAAMnE,OAAOvK,MAAM,MAErD0O,EAAM5G,SACNzK,EAAOgQ,kBAAkBvF,OAAS4G,EAAM5G,OAAO9H,MAAM,MAErD0O,EAAMhH,QACNrK,EAAOgQ,kBAAkB3F,MAAQgH,EAAMhH,MAAM1H,MAAM,OAG1C,eAAb0O,EAAMzP,KACFyP,EAAMnE,SACNlN,EAAOoQ,iBAAiBlD,OAASmE,EAAMnE,OAAOvK,MAAM,MAEpD0O,EAAM5G,SACNzK,EAAOoQ,iBAAiB3F,OAAS4G,EAAM5G,OAAO9H,MAAM,MAEpD0O,EAAMhH,QACNrK,EAAOoQ,iBAAiB/F,MAAQgH,EAAMhH,MAAM1H,MAAM,OAGzC,gBAAb0O,EAAMzP,KACFyP,EAAMnE,SACNlN,EAAOoL,kBAAkB8B,OAASmE,EAAMnE,OAAOvK,MAAM,MAErD0O,EAAM5G,SACNzK,EAAOoL,kBAAkBX,OAAS4G,EAAM5G,OAAO9H,MAAM,MAErD0O,EAAMhH,QACNrK,EAAOoL,kBAAkBf,MAAQgH,EAAMhH,MAAM1H,MAAM,OAG1C,uBAAb0O,EAAMzP,KACFyP,EAAMnE,SACNlN,EAAOwQ,yBAAyBtD,OAASmE,EAAMnE,OAAOvK,MAAM,MAE5D0O,EAAM5G,SACNzK,EAAOwQ,yBAAyB/F,OAAS4G,EAAM5G,OAAO9H,MAAM,MAE5D0O,EAAMhH,QACNrK,EAAOwQ,yBAAyBnG,MAAQgH,EAAMhH,MAAM1H,MAAM,MAGtE,EAER,IAEH5C,WAAW,uBAAwB,CAChC,SACA,kBACA,gBACA,SAA8BC,EAAQE,EAAiBoR,GAOnD,IAAIC,EACAC,EAPJxR,EAAOyR,mBAAqB,GAC5BzR,EAAO0R,gBAAkB,GACzB1R,EAAO0R,gBAAkB,GACzB1R,EAAO2R,gBAAkB,GACzB3R,EAAO4R,cAAgB,GACvB5R,EAAO6R,OAAS3R,EAGhBF,EAAO8R,MAAQ,CAAC,EAChB,IAAIC,EAAY,WAKZT,EAAcU,WAAW,MAAO,0BAHjB,CACXC,SAAU,mBAEuDC,MAAK,SAAUC,GAChFZ,EAASY,EAASjQ,MAAQiQ,EAASjQ,KAAK,aAAeiQ,EAASjQ,KAAK,aAAe,QACpFsP,EACIW,EAASjQ,MAAQiQ,EAASjQ,KAAK,gBAAkBiQ,EAASjQ,KAAK,gBAAkB,SACrF,IAAIkQ,EAAalS,EAAgBsF,OAAO7C,MAAM,KAC1C0P,EAAU,GAEVA,EADAD,EAAWhQ,OAAS,EACVgQ,EAAW,GAAG7O,OAGdrD,EAAgBsF,OAAOjC,OAErC,IAAIrB,EAAO,CACPoQ,SAAUpS,EAAgB8E,SAASC,SACnCsN,UAAWrS,EAAgB8E,SAASE,UACpCtC,OAAQyP,GAEZf,EAAcU,WAAW,MAAO,8BAA+B9P,GAAMgQ,MAAK,SAAUC,GAChFjS,EAAgBsS,cACZL,EAASjQ,MAAQiQ,EAASjQ,KAAKuQ,cAAgBN,EAASjQ,KAAKuQ,cAAgB,EACjFvS,EAAgBwS,iBACZP,EAASjQ,MAAQiQ,EAASjQ,KAAKyQ,iBAAmBR,EAASjQ,KAAKyQ,iBAAmB,EACvF,IAAIC,EAAkBC,KAAKC,MACmD,IAAzE5S,EAAgBwS,kBAAoBnB,EAAS,KAAOC,EAAc,MAEnEuB,EAAaF,KAAKC,MACqD,IAAtE5S,EAAgBsS,eAAiBjB,EAAS,KAAOC,EAAc,MAEpEtR,EAAgB8S,eAAiBH,KAAKI,IAAIL,EAAkB1S,EAAgB0E,gBAAgBsO,QAAQ,GAChGzS,SAASiJ,eAAe,YACxBjJ,SAASiJ,eAAe,UAAUC,UAAY,IAE9CiJ,EAAkB1S,EAAgB0E,gBAClC1E,EAAgBiT,qBAAuB,WACvCzI,IAAIC,cAAc,aAAclK,SAASiJ,eAAe,UAAW,CAC/D0J,KAAM,OACNC,MAAO,IACPC,aAAc,MAEXV,EAAkB1S,EAAgB0E,gBACzC1E,EAAgBiT,qBAAuB,WACvCzI,IAAIC,cAAc,WAAYlK,SAASiJ,eAAe,UAAW,CAC7D0J,KAAM,OACNC,MAAO,OAGXnT,EAAgBiT,qBAAuB,UAE3C,IAAMI,EAAkB9S,SAASiJ,eAAe,mBAC5C6J,IACAA,EAAgB5J,UAAY,IAEhChJ,YAAW,WACP+J,IAAIC,cAAc,kBAAmB4I,EAAiB,CAClDC,KAAMtT,EAAgB0E,eACtB6O,QAASb,EACTc,QAASX,EACTY,aAAc3T,EAAOyR,mBAAmBmC,QAAQ,UAAW1T,EAAgBsF,QAC3EqO,aAAc7T,EAAO0R,gBACrBoC,UAAW9T,EAAO4R,cAClBrG,QAAS,CAAC,UAAW,UAAW,YAExC,GAAG,KACH+F,EAAcyC,gBAAgB,cAAe7T,EACjD,GACJ,GACJ,EAEAF,EAAOgU,KAAO,SAAUC,GACpBjU,EAAO8R,MAAQmC,EACf,IAAI/R,EAAOoP,EAAc4C,gBAAgB,eACrChS,IAEIA,EAAK0C,gBAAkB,GACvB1C,EAAK8C,SAASC,UAAY,GAC1B/C,EAAK8C,SAASE,WAAa,GACZ,IAAfhD,EAAKsD,QAELtD,EAAKiS,aAAc,EACnBjS,EAAKkS,gBAAiB,EACtBlS,EAAKkG,WAAY,IAEjBlG,EAAKiS,aAAc,EACnBjS,EAAKkG,WAAY,GAErBlI,EAAgBmU,QAAQnS,GAExB6P,KAEJ7R,EAAgBoU,SAAW,mBAC/B,EACAtU,EAAO8Q,IAAI,iBAAiB,WACxBiB,IACA7R,EAAgBiU,aAAc,EAC9BjU,EAAgBkI,WAAY,EAC5BkJ,EAAciD,4BAClB,IAEAvU,EAAOkJ,eAAiB,WACpBhJ,EAAgBiU,aAAc,EAC9BjU,EAAgBkU,gBAAiB,EACjClU,EAAgBkI,WAAY,EAC5BpI,EAAO6R,OAAS3R,EAChBA,EAAgBgJ,gBACpB,CACJ,IAEHnJ,WAAW,yBAA0B,CAClC,SACA,WACA,kBACA,gBACA,SAAgCC,EAAQC,EAAUC,EAAiBoR,GAi9CvE3Q,YAAW,WACPE,EAAE,gCAAgCM,KAAK,QAAS,YAChDN,EAAE,gCAAgCM,KAAK,QAAS,OACpD,GAAG,KAl9CKqT,IAEAxU,EAAO8R,MAAQ,CAAC,EAChB9R,EAAOgU,KAAO,SAAUC,GACpBjU,EAAO8R,MAAQmC,EACf,IAAI/R,EAAOoP,EAAc4C,gBAAgB,eACrChS,IACIA,EAAK0C,gBAAkB,GACvB1C,EAAKiS,aAAc,EACnBjS,EAAKkS,gBAAiB,EACtBlS,EAAKkG,WAAY,IAEjBlG,EAAKiS,aAAc,EACnBjS,EAAKkG,WAAY,GAErBlI,EAAgBmU,QAAQnS,GACxB6P,KAEJ7R,EAAgBoU,SAAW,qBAC/B,EACAtU,EAAO6R,OAAS3R,EAChBF,EAAOyU,eAAgB,EACvB,IAAI1C,EAAY,WACZ,IAAM2C,EAAoBjU,SAASiJ,eAAe,qBAC9CgL,IACAA,EAAkB/K,UAAY,IAElC,IAAImI,EAAQ9R,EAAO8R,MACnB9R,EAAO2U,YAAc9B,KAAKC,MAAO5S,EAAgB0E,eAAiBkN,EAAM8C,YAAe,KACvF5U,EAAO6U,iBAAmBhC,KAAKC,MAAO5S,EAAgB0E,eAAiBkN,EAAMgD,YAAe,KAC5F9U,EAAO+U,SAAWlC,KAAKC,MAAO5S,EAAgB0E,eAAiBkN,EAAMkD,YAAe,KACpFhV,EAAOiV,aAAepC,KAAKC,MAAO5S,EAAgB0E,eAAiBkN,EAAMoD,YAAe,KACxFvU,YAAW,WACP+J,IAAIC,cAAc,oBAAqB+J,EAAmB,CACtDlB,KAAMtT,EAAgB0E,eACtBuQ,SAAU,CACNnM,OAAO8I,EAAM8C,aACb5L,OAAO8I,EAAMgD,aACb9L,OAAO8I,EAAMkD,aACbhM,OAAO8I,EAAMoD,cAGjB3J,QAAS,CAACuG,EAAMsD,UAAWtD,EAAMuD,UAAWvD,EAAMwD,UAAWxD,EAAMyD,WACnEC,WAAYxV,EAAOyV,kBACnBC,OAAQ,CACJ5D,EAAM8C,YAAc,KAAO9C,EAAM6D,OACjC7D,EAAMgD,YAAc,KAAOhD,EAAM8D,OACjC9D,EAAMkD,YAAc,KAAOlD,EAAM+D,OACjC/D,EAAMoD,YAAc,KAAOpD,EAAMgE,QAErCC,KAAM,CAACjE,EAAMkE,aAAclE,EAAMmE,aAAcnE,EAAMoE,aAAcpE,EAAMqE,eAEjF,GAAG,KACHnW,EAAOyV,kBAAoB,WACvBxV,GAAS,WACLD,EAAOyU,eAAgB,CAC3B,GAAG,IACP,EAEAnD,EAAcyC,gBAAgB,cAAe7T,EACjD,EACAF,EAAO8Q,IAAI,iBAAiB,WACxBiB,IACA7R,EAAgBiU,aAAc,EAC9BjU,EAAgBkI,WAAY,EAC5BkJ,EAAciD,4BAClB,GACJ,IAEHxU,WAAW,WAAY,CACpB,SACA,WACA,kBACA,gBACA,UACA,YACA,QACA,SAAkBC,EAAQC,EAAUC,EAAiBoR,EAAelR,EAASgW,EAAWC,GACpF7B,IAEAxU,EAAO8R,MAAQ,CAAC,EAChB9R,EAAO6R,OAAS3R,EAChBF,EAAOsW,mBAAqB,CAAC,EAC7BtW,EAAOuW,iBAAmB,GAC1BvW,EAAOwW,mBAAqB,GAC5BxW,EAAOyW,eAAiB,EACxBzW,EAAO0W,aAAe,EACtB1W,EAAO2W,aAAe,EACtB3W,EAAO4W,wBAA0B,GACjC5W,EAAO6W,2BAA6B,GACpCjT,KAAKkT,YAAc,GACnB9W,EAAO+W,UAAY,GACnB,IAAIpO,EAAO/E,KACX5D,EAAOgU,KAAO,SAAUC,GACpBjU,EAAO8R,MAAQmC,EAIf3C,EAAcU,WAAW,MAAO,gCAHrB,CACPgF,WAAY,KAEuD9E,MAAK,SAAUC,GAClFnS,EAAOsW,mBAAqBnE,EAASjQ,KACrC5C,QAAQ4H,QAAQlH,EAAOsW,oBAAoB,SAAUlP,EAAKC,GAClDD,EAAI6P,WAAa,GAAuB,SAAlB7P,EAAI8P,WAC1BlX,EAAOuW,iBAAiB1T,KAAKmG,OAAO5B,EAAI6P,aACf,MAAlB7P,EAAI8P,YACXlX,EAAOwW,mBAAmB3T,KAAKmG,OAAO5B,EAAI6P,YAElD,IACA,IAAI/U,EAAOoP,EAAc4C,gBAAgB,eACrChS,IACIA,EAAKkD,cAAcC,QAAU,GAAKnD,EAAKkD,cAAcE,UAAY,GACjEpD,EAAKiS,aAAc,EACnBjS,EAAKkS,gBAAiB,EACtBlS,EAAKkG,WAAY,IAEjBlG,EAAKiS,aAAc,EACnBjS,EAAKkG,WAAY,GAErBlI,EAAgBmU,QAAQnS,GACxB6P,KAEJ7R,EAAgBoU,SAAW,iBAC/B,GACJ,EAEAtU,EAAOyU,eAAgB,EACvB,IAAI1C,EAAY,WACZ,IAAIoF,EAAmB,IACnBC,EAAalX,EAAgBkF,cAAcC,OAASnF,EAAgBkF,cAAcE,SAClF8R,GAAc,GAAKA,GAAc,EACjCD,EAAmB,IACZC,GAAc,GAAKA,GAAc,EACxCD,EAAmB,EACZC,GAAc,IACrBD,EAAmB,GAGvBnX,EAAOqX,eAAiB,SAAUC,GAC9B,IAAIC,EAAYD,EAAOC,UACnBC,EAAcF,EAAOE,YACrBC,EAAW,EACXC,EAAW,EACXC,EAAa,EACbC,EAAa,EACbC,EAAU,GACVpB,EAAiB,EACjBC,EAAe,EACfE,EAA0B,GAC1BY,EAAc,GACVD,EAAY,IACZA,EAAY,IAEhBX,EAA0BxW,EAAQ,SAARA,CACtBJ,EAAOsW,mBACP,CACIW,WAAYO,EAAYM,WACxBZ,WAAY,OAEhB,GACF,MAEES,EAAaI,SACTnB,EAAwBoB,oBAAoBrV,MAAM,KAAK,GAClDiR,QAAQ,IAAK,IACbA,QAAQ,IAAK,KAEtBgE,EAAaG,SACTnB,EAAwBoB,oBAAoBrV,MAAM,KAAK,GAClDiR,QAAQ,IAAK,IACbA,QAAQ,IAAK,KAEtB6C,EAAiBsB,SACbnB,EAAwBqB,eAAerE,QAAQ,IAAK,IAAIA,QAAQ,IAAK,QAI7E6C,EAAiB,EACjBG,EAA0B,IAE9B,IAAIC,EAA6BzW,EAAQ,SAARA,CAC7BJ,EAAOsW,mBACP,CACIW,WAAYM,EAAUO,WACtBZ,WAAY,UAEhB,GACF,GAkCF,OAjCIL,IACAY,EAAWM,SACPlB,EAA2BmB,oBAAoBrV,MAAM,KAAK,GACrDiR,QAAQ,IAAK,IACbA,QAAQ,IAAK,KAEtB8D,EAAWK,SACPlB,EAA2BmB,oBAAoBrV,MAAM,KAAK,GACrDiR,QAAQ,IAAK,IACbA,QAAQ,IAAK,KAEtBiE,EACIN,GAAa,GAAKC,EAAc,EAC1BX,EAA2BqB,UAC3BrB,EAA2BsB,QACrCzB,EAAeqB,SACXlB,EAA2BoB,eAAerE,QAAQ,IAAK,IAAIA,QAAQ,IAAK,MAGhFjT,YAAW,WACPX,EAAOoY,QAAO,WACVpY,EAAOyW,eAAiBA,EACxBzW,EAAO0W,aAAeA,EACtB1W,EAAO2W,aAAeF,EAAiBC,EACvC1W,EAAO+W,UACH3W,EAAQ,WAARA,CAAoBqX,EAAWE,EAAY,IAAK,GAChD,MACAvX,EAAQ,WAARA,CAAoBsX,EAAWE,EAAY,IAAK,GACpD5X,EAAO4W,wBAA0BA,EACjC5W,EAAO6W,2BAA6BA,CACxC,GACJ,GAAG,KAEI,CACHwB,SAAUjY,EAAQ,WAARA,CAAoBqX,EAAWE,EAAY,GAAI,GACzDW,SAAUlY,EAAQ,WAARA,CAAoBsX,EAAWE,EAAY,GAAI,GACzDH,SAAUrX,EAAQ,WAARA,CAAoBqX,EAAU,GAAI,GAC5CC,SAAUtX,EAAQ,WAARA,CAAoBsX,EAAU,GAAI,GAC5CC,WAAYvX,EAAQ,WAARA,CAAoBuX,EAAY,GAAI,GAChDC,WAAYxX,EAAQ,WAARA,CAAoBwX,EAAY,GAAI,GAChDC,QAASA,EAEjB,EACAlX,YAAW,WACHF,SAASiJ,eAAe,kBACxBjJ,SAASiJ,eAAe,gBAAgBC,UAAY,GACpDe,IAAIC,cAAc,eAAgBlK,SAASiJ,eAAe,gBAAiB,CACvE6O,eAAgBvY,EAAOqX,eACvBzM,SAAU5K,EAAOwY,cACjBC,WAAYzY,EAAOuW,iBACnBgB,UAAWJ,IAGvB,GAAG,KAEHnX,EAAOwY,cAAgB,SAAU7U,GAC7B1D,GAAS,WACLC,EAAgBoI,oBAAsB3E,EAAMD,OAAOgV,OAAS,IAAM/U,EAAMD,OAAOiV,KAC/EzY,EAAgBqI,uBAAuB,cAC3C,GAAG,IACP,EAEA+I,EAAcyC,gBAAgB,cAAe7T,EACjD,EACAF,EAAO8Q,IAAI,iBAAiB,WACxBiB,IACA7R,EAAgBiU,aAAc,EAC9BjU,EAAgBkI,WAAY,EAC5BkJ,EAAciD,4BAClB,IAEAvU,EAAO4Y,cAAe,EACtB5Y,EAAO6Y,gBAAkB,WACrB,GAAIlQ,EAAKmO,YAAa,CAClB9W,EAAOkC,KAAO,CACV4W,aAAcnQ,EAAKmO,YACnBiC,kBAAmB7Y,EAAgBsF,OACnCyS,eAAgBjY,EAAO0W,aACvBsC,SAAUhZ,EAAO6W,2BAA2BI,WAC5CgC,SAAUjZ,EAAO6W,2BAA2BqC,WAC5CC,UAAWnZ,EAAO6W,2BAA2BsC,UAC7CC,iBAAkBpZ,EAAO4W,wBACnB5W,EAAO4W,wBAAwBK,WAC/B,GACNoC,2BAA4BrZ,EAAO4W,wBAC7B5W,EAAO4W,wBAAwBoB,oBAC/B,GACNsB,sBAAuBtZ,EAAO4W,wBACxB5W,EAAO4W,wBAAwBqB,eAC/B,GACNsB,YAAavZ,EAAO4W,wBAA0B5W,EAAO4W,wBAAwB2C,YAAc,GAC3FxC,UAAW/W,EAAO+W,UAClBJ,aAAcvW,EAAQ,WAARA,CAAoBJ,EAAO2W,aAAc,IAAK,GAC5DqB,oBAAqBhY,EAAO6W,2BAA2BmB,qBAG3DhY,EAAOwZ,UAAY,2CAQfC,EAASzZ,EAAOkC,MACbwX,QAAUtD,EAAUuD,WAAa,MAAQvD,EAAUwD,OAE1DC,OAAOC,KAAKL,GAAQvS,SAAQ,SAAUG,GACf,IAAfoS,EAAOpS,IAA6B6C,MAAfuP,EAAOpS,WACrBoS,EAAOpS,EAEtB,IAEA,IAAIoS,EAASI,OAAOC,KAAKL,GACpBM,KAAI,SAAUC,GACX,OAAOC,mBAAmBD,GAAK,IAAMC,mBAAmBR,EAAOO,GACnE,IACCE,KAAK,KAEVla,EAAO4Y,cAAe,EACtB5Y,EAAOma,WAAY,EACnB9D,EAAM+D,KAAKpa,EAAOwZ,UAAWC,EAvBhB,CACTY,QAAS,CACL,eAAgB,sDAqBqBnI,MACzC,WACIlS,EAAO4Y,cAAe,EACtB5Y,EAAOma,WAAY,CACvB,IACA,WACIna,EAAO4Y,cAAe,CAC1B,GAER,CACJ,EAEA5Y,EAAOkJ,eAAiB,WACpBhJ,EAAgBiU,aAAc,EAC9BjU,EAAgBkU,gBAAiB,EACjClU,EAAgBkI,WAAY,EAC5BpI,EAAO6R,OAAS3R,EAChBA,EAAgBgJ,gBACpB,CACJ,IAEHnJ,WAAW,eAAgB,CACxB,SACA,kBACA,gBACA,UACA,mBACA,SAAsBC,EAAQE,EAAiBoR,EAAelR,EAASka,GAm0C3Ehb,QAAQkB,QAAQC,UAAUC,OAAM,WAC5B,IAAI6Z,GAAY,EACZC,GAAU,EAEd7Z,YAAW,WACP,IAAM8Z,EAAgB5Z,EAAE,iBACxB,GAAI4Z,EAAe,CACf,IAAMC,EAAW7Z,EAAE,aACb8Z,EAAgB9Z,EAAE,kBAClB+Z,EAAiB/Z,EAAE,oBAAoBQ,SAASE,IAChDsZ,EAAYha,EAAE,eAAeQ,SAASE,IAAMV,EAAE,eAAeia,SAC7DC,EAAgBla,EAAEW,QAExBuZ,EAAcpZ,GAAG,UAAU,WACvB,IAAIqZ,EAAeD,EAAcrZ,YAAcqZ,EAAcD,SAEzDC,EAAcrZ,YAAcmZ,GAAaG,EAAeJ,GACxDH,EAAcQ,IAAI,CAAEC,SAAU,QAASC,OAAQ,QAC/CZ,GAAY,EACPC,GACDE,EAASU,OAEbT,EAAcS,SAEdX,EAAcQ,IAAI,CAAEC,SAAU,WAAYC,OAAQ,KAClDZ,GAAY,EACZG,EAASW,OACTV,EAAcU,OAEtB,IAEAZ,EAAcnY,MAAK,WACf,IAAMgZ,EAAaza,EAAE+C,MACrB0X,EAAWra,KAAK,sBAAsBU,GAAG,SAAS,WAC9Cd,EAAE+C,MAAM5C,YAAY,QAAQD,SAAS,SACrCua,EAAWra,KAAK,aAAasa,UAC7Bf,GAAU,EACND,IACK1Z,EAAE+C,MAAM4X,OAAOC,GAAG,cACnB5a,EAAE+C,MAAM5C,YAAY,SAASD,SAAS,QACtCF,EAAE+C,MAAM4X,OAAOE,YACflB,GAAU,GAGtB,GACJ,GACJ,CACJ,GAAG,IACP,IAh3CQxa,EAAO8R,MAAQ,CAAC,EAChB9R,EAAO6R,OAAS3R,EAChBF,EAAO2b,cAAgB,GACvB3b,EAAO4b,WAAa,EACpB5b,EAAO6b,WAAa,GACpB7b,EAAO8b,cAAgB,GACvB5b,EAAgBkI,WAAY,EAC5BpI,EAAOgU,KAAO,SAAUC,GACpBjU,EAAO8R,MAAQmC,EACf,IAAI/R,EAAO,CACP6Z,cAAe7b,EAAgBG,eAEnCiR,EAAcU,WAAW,MAAO,2BAA4B9P,GAAMgQ,MAAK,SAAUC,GAC7EnS,EAAO2b,cAAgBxJ,EAASjQ,KAChC,IAAIA,EAAOoP,EAAc4C,gBAAgB,eACzC,GAAIhS,EAAM,CACN,IAAI8Z,EAAqBC,EAAY/Z,GACrCA,EAAKiS,aAAc,EACf6H,GACA9Z,EAAKkS,gBAAiB,EACtBlS,EAAKkG,WAAY,IAEjBlG,EAAKkS,gBAAiB,EACtBlS,EAAKkG,WAAY,GAErBlI,EAAgBmU,QAAQnS,GACxB6P,GACJ,MACI7R,EAAgBkU,gBAAiB,EACjClU,EAAgBkI,WAAY,EAEhClI,EAAgByQ,2BAA2B2J,EAAiB4B,eAAgB,SAC5Ehc,EAAgBoU,SAAW,kBAC/B,GACJ,EAEA,IAAI2H,EAAc,SAAU/Z,GACxB,GAAsC,OAAlChC,EAAgBG,eAChB,GAAI6B,EAAKwD,WAAWC,YAAc,GAAKzD,EAAKia,SAAW,EACnD,OAAO,OAER,GAAsC,kBAAlCjc,EAAgBG,eACvB,GAAI6B,EAAK2D,QAAQC,SAAW,GAAK5D,EAAKka,cAAgB,EAClD,OAAO,OAER,GAAsC,aAAlClc,EAAgBG,eACvB,GAAI6B,EAAK8D,SAASrC,MAAQ,GAAKzB,EAAKma,eAAiB,EACjD,OAAO,OAER,GAAsC,WAAlCnc,EAAgBG,eACvB,IACK6B,EAAKgE,OAAOC,QAAQC,MAAQ,GACzBlE,EAAKgE,OAAOC,QAAQE,OAAS,GAC7BnE,EAAKgE,OAAOC,QAAQG,MAAQ,IAChCpE,EAAKoa,aAAe,EAEpB,OAAO,OAER,GAAsC,mBAAlCpc,EAAgBG,eACvB,GACI6B,EAAKsE,oBACLpG,EAAQ,SAARA,CAAkB8B,EAAKwE,WAAY,CAAEC,QAAQ,IAAQ,GAAMvE,OAAS,GACpEF,EAAKqa,SAAW,EAEhB,OAAO,OAER,GAAsC,aAAlCrc,EAAgBG,eACvB,GACID,EAAQ,SAARA,CAAkB8B,EAAK8E,WAAY,CAAEL,QAAQ,IAAQ,GAAMvE,OAAS,GACpEF,EAAKsa,eAAiB,EAEtB,OAAO,OAER,GAAsC,YAAlCtc,EAAgBG,eACvB,IACK6B,EAAKuF,QAAQC,SAAStB,MAAQ,GAAKlE,EAAKuF,QAAQC,SAASpB,MAAQ,IAClEpE,EAAKua,cAAgB,EAErB,OAAO,OAER,GAAsC,eAAlCvc,EAAgBG,eACvB,GACID,EAAQ,SAARA,CAAkB8B,EAAKwE,WAAY,CAAEC,QAAQ,IAAQ,GAAMvE,OAAS,GACpEF,EAAKwa,iBAAmB,EAExB,OAAO,OAER,GAAsC,UAAlCxc,EAAgBG,eACvB,GAAI6B,EAAK0F,YAAc,GAAK1F,EAAKya,YAAc,EAC3C,OAAO,OAER,GAAsC,WAAlCzc,EAAgBG,eACvB,GACI6B,EAAK4F,YACL1H,EAAQ,SAARA,CAAkB8B,EAAKwE,WAAY,CAAEC,QAAQ,IAAQ,GAAMvE,OAAS,GACpEF,EAAK0a,aAAe,EAEpB,OAAO,OAER,GAAsC,mBAAlC1c,EAAgBG,eACnB6B,EAAKiG,oBAAsBjG,EAAK0F,YAAc,GAAK1F,EAAK2a,qBAAuB,EAC/E,OAAO,EAIf,OAAO,CACX,EACI9K,EAAY,WACZ,IAAI8J,EAAa,GACbC,EAAgB,GACpB,GAAsC,OAAlC5b,EAAgBG,eAA4D,kBAAlCH,EAAgBG,cAAmC,CAC7F,IACIyc,EADQ1c,EAAQ,SAARA,CAAkBJ,EAAO2b,cAAe,CAAEoB,KAAM,OAAQ,GAAM,GACpDC,YAClBC,EAAiB,EACjBC,GAAY,EACZC,EAAU,EA4Bd,GA3BsC,OAAlCjd,EAAgBG,eAChB6c,EAAYhd,EAAgBwF,WAAW0X,WACvCD,EAAUjd,EAAgBwF,WAAWC,aACvB,GACVkW,EAAavB,EAAiB+C,qBAAuBrd,EAAO8R,MAAMwL,oBAClExB,EAAgBxB,EAAiBiD,wBAC7Bvd,EAAO8R,MAAM0L,wBACE,IAAZL,GACPtB,EAAavB,EAAiB+C,qBAAuBrd,EAAO8R,MAAM2L,oBAClE3B,EAAgBxB,EAAiBiD,wBAC7Bvd,EAAO8R,MAAM4L,yBAEjB7B,EAAavB,EAAiB+C,qBAAuBrd,EAAO8R,MAAM6L,aAClE7B,EAAgBxB,EAAiBiD,wBAA0Bvd,EAAO8R,MAAM8L,kBAEnC,kBAAlC1d,EAAgBG,gBACvB6c,EAAYhd,EAAgB2F,QAAQuX,UACpCD,EAAUjd,EAAgB2F,QAAQC,SAC7BoX,GAIDrB,EAAavB,EAAiBuD,kBAAoB7d,EAAO8R,MAAM2L,oBAC/D3B,EAAgBxB,EAAiBwD,qBAAuB9d,EAAO8R,MAAM4L,yBAJrE7B,EAAavB,EAAiBuD,kBAAoB7d,EAAO8R,MAAMwL,oBAC/DxB,EAAgBxB,EAAiBwD,qBAAuB9d,EAAO8R,MAAM0L,0BAOxEN,EAEDD,EADiB7c,EAAQ,SAARA,CAAkBJ,EAAO2b,cAAe,CAAEoB,KAAM,YAAa,GAAM,GACxDC,YAEhC,IAAIjG,EAAY/N,OAAOmU,IAAYnU,OAAO8T,GAAa9T,OAAOiU,IAC9Djd,EAAO4b,WAAa/I,KAAKC,MAAMiE,GAC/B7W,EAAgB6d,iBAAmBb,EAAY,MAAQ,KACvDhd,EAAgB8d,cAAgBb,CACpC,MAAO,GAAsC,aAAlCjd,EAAgBG,cAA8B,CACrD,IAAI4d,EAAeje,EAAO2b,cAAc,GACpCuC,EAAahe,EAAgBie,MAAQje,EAAgB8F,SAASrC,MAC9DoT,EACA/N,OAAOiV,EAAaG,aACpBpV,OAAOkV,GACPlV,OAAOiV,EAAaI,iBACpB,KACJre,EAAO4b,WAAa/I,KAAKC,MAAMiE,GAC/B8E,EAAavB,EAAiBgE,mBAAqBte,EAAO8R,MAAM2L,oBAChE3B,EAAgBxB,EAAiBiE,sBAAwBve,EAAO8R,MAAM4L,sBAC1E,MAAO,GAAsC,WAAlCxd,EAAgBG,cAA4B,CACnD,IAAIme,EAAkBpe,EAAQ,SAARA,CAAkBJ,EAAO2b,cAAe,CAAEoB,KAAM,UAAW,GAC7E0B,EAAmBre,EAAQ,SAARA,CAAkBJ,EAAO2b,cAAe,CAAEoB,KAAM,WAAY,GAC/E2B,EAAkBte,EAAQ,SAARA,CAAkBJ,EAAO2b,cAAe,CAAEoB,KAAM,UAAW,GAC7E4B,EAAkB5G,SAAS7X,EAAgBgG,OAAOC,QAAQC,OAC1DwY,EAAmB7G,SAAS7X,EAAgBgG,OAAOC,QAAQE,QAC3DwY,EAAkB9G,SAAS7X,EAAgBgG,OAAOC,QAAQG,OAC1DwY,EAAe5e,EAAgB8d,cAC/BW,EAAkBC,EAAmBC,EACrCC,EAAc,GACdjD,EAAavB,EAAiByE,iBAAmB/e,EAAO8R,MAAMwL,oBAC9DxB,EAAgBxB,EAAiB0E,oBAAsBhf,EAAO8R,MAAM0L,wBAC9C,GAAfsB,IACPjD,EAAavB,EAAiByE,iBAAmB/e,EAAO8R,MAAM2L,oBAC9D3B,EAAgBxB,EAAiB0E,oBAAsBhf,EAAO8R,MAAM4L,wBAEpE3G,EACA/N,OAAOwV,EAAgBxB,aAAe2B,EACtC3V,OAAOyV,EAAiBzB,aAAe4B,EACvC5V,OAAO0V,EAAgB1B,aAAe6B,EAC1C7e,EAAO4b,WAAa/I,KAAKC,MAAMiE,EACnC,MAAO,GAAsC,mBAAlC7W,EAAgBG,cAAoC,CAC3D,IAAI4e,EAAe,EACfC,EAAe,EACfC,EAAe,EACfC,EAAc,EAEdC,GADAtI,EAAY,EACL,IACPoH,EAAQ,GACZje,EAAgBof,YAAcpf,EAAgB2G,oBAAoBC,YAClE,IAAIyY,EAAqBnf,EAAQ,SAARA,CAAkBJ,EAAO2b,cAAe,CAC7DoB,KAAM7c,EAAgBsG,mBACtB8Y,YACIpf,EAAgB2G,oBAAoBC,YAAc,GAC5C,GACA5G,EAAgB2G,oBAAoBC,cAC/C,GACH,GAAIyY,EAAoB,CACpBjgB,QAAQ4H,QAAQhH,EAAgBwG,YAAY,SAAUA,EAAYnE,GAC1DA,GAAS,GAAKA,GAAS,GAAKmE,EAAWC,QACvCsY,GAA8B,EAC9BI,EAAOA,EAAOA,EAAO,IAAM3Y,EAAW8Y,IAAM9Y,EAAW8Y,KACrC,IAAVjd,GAAyB,IAAVA,IAAgBmE,EAAWC,SAClDuY,GAA8B,EAC9BG,EAAOA,EAAOA,EAAO,IAAM3Y,EAAW8Y,IAAM9Y,EAAW8Y,IAE/D,IACAtf,EAAgBuf,SAAWR,EAAeC,EAC1Chf,EAAgBmf,KAAOA,EACvB,IAAIK,EAAoBxf,EAAgB2G,oBAAoBoB,MAAM,GAAGX,YAIrE,GADAqY,IAFIA,GAAoBzf,EAAgB2G,oBAAoBoB,MAAM,GAAGX,aAE7B,GAAK,GAAKqY,GADlDD,EAAoBA,EAAoB,GAAK,GAAKA,EAE3B,CACfP,EACAnW,OAAOuW,EAAmBnB,aAC1BpV,OAAO0W,GACP1W,OAAOiW,GACP,KACJd,EAAQA,EAAQA,EAAQ,IAAMuB,EAAoBA,CACtD,CACA,GAAIC,GAAmB,CACfP,EACApW,OAAOuW,EAAmBnB,aAC1BpV,OAAO2W,IACP3W,OAAOkW,GACP,KACJf,EAAQA,EAAQA,EAAQ,IAAMwB,GAAoBD,CACtD,CACAxf,EAAgBie,MAAQA,EACxBpH,EAAYoI,EAAeC,CAC/B,CACIlf,EAAgB2G,oBAAoBC,aAAe,IACnD+U,EAAavB,EAAiBsF,yBAA2B5f,EAAO8R,MAAM2L,oBACtE3B,EAAgBxB,EAAiBuF,4BAC7B7f,EAAO8R,MAAM4L,yBAEjB7B,EAAavB,EAAiBsF,yBAA2B5f,EAAO8R,MAAMwL,oBACtExB,EAAgBxB,EAAiBuF,4BAC7B7f,EAAO8R,MAAM0L,wBAErBtd,EAAgB4f,cAAgB5f,EAAgBsG,mBAChDxG,EAAO4b,WAAa/I,KAAKC,MAAMiE,EACnC,MAAO,GAAsC,aAAlC7W,EAAgBG,cAA8B,CACrD,IAAI0f,EAAc,EACdC,EAAU,EACVC,EAAkB,EAClBC,EAAmB,EAEnBC,GADApJ,EAAY,GACI,GAChBqJ,GAAY,EACZC,GAAoB,EACpBC,GAAqB,EACrBR,EAAgB,GAEhBS,GADApC,EAAQ,GACS,IACrB,GACI/d,EAAQ,SAARA,CAAkBF,EAAgB8G,WAAY,CAAEwZ,UAAW,UAAW7Z,QAAQ,IAAQvE,OAAS,EACjG,CACE,IAAIqe,EAAc,EACdC,EAAoB,EACpBC,EAAcvgB,EAAQ,SAARA,CAAkBJ,EAAO2b,cAAe,CAAEoB,KAAM,YAAa,GAC/E,GAAI4D,EAAa,CACbR,GAAgB,EAChB,IAAIS,EAAexgB,EAAQ,SAARA,CAAkBF,EAAgBiH,cAAe,CAChEqZ,UAAW,YACZ,GAEHE,GADAA,EAAoBE,EAAatZ,YAAcsZ,EAAatZ,YAAc,GAClC,GAAK,GAAKoZ,EAElDD,GADAA,EAAcG,EAAarZ,eAAiBqZ,EAAarZ,eAAiB,GAC9C,GAAK,GAAKkZ,EACtCV,EACI/W,OAAOyX,IACNzX,OAAO2X,EAAYvC,aAChBpV,OAAO0X,GACP1X,OAAO2X,EAAYtC,iBACnB,MACRyB,EAAgBA,EAAgBA,EAAgB,WAAa,UAC7D3B,EAAQA,EAAQA,EAAQ,IAAMuC,EAAoBA,EAClDH,EAAiBA,EAAiBA,EAAiB,IAAME,EAAcA,CAC3E,CACJ,CACA,GAAIrgB,EAAQ,SAARA,CAAkBF,EAAgB8G,WAAY,CAAEwZ,UAAW,MAAO7Z,QAAQ,IAAQvE,OAAS,EAAG,CAC9F,IAAIye,EAAU,EACVC,EAAgB,EAChBC,EAAU3gB,EAAQ,SAARA,CAAkBJ,EAAO2b,cAAe,CAAEoB,KAAM,QAAS,GACvE,GAAIgE,EAAS,CACTX,GAAY,EACZ,IAAIY,EAAW5gB,EAAQ,SAARA,CAAkBF,EAAgBiH,cAAe,CAAEqZ,UAAW,QAAS,GAEtFM,GADAA,EAAgBE,EAAS1Z,YAAc0Z,EAAS1Z,YAAc,GAC9B,GAAK,GAAKwZ,EAE1CD,GADAA,EAAUG,EAASzZ,eAAiByZ,EAASzZ,eAAiB,GAC1C,GAAK,GAAKsZ,EAC9Bb,EACIhX,OAAO6X,IACN7X,OAAO+X,EAAQ3C,aACZpV,OAAO8X,GACP9X,OAAO+X,EAAQ1C,iBACf,MACRyB,EAAgBA,EAAgBA,EAAgB,OAAS,MACzD3B,EAAQA,EAAQA,EAAQ,IAAM2C,EAAgBA,EAC9CP,EAAiBA,EAAiBA,EAAiB,IAAMM,EAAUA,CACvE,CACJ,CACA,GACIzgB,EAAQ,SAARA,CAAkBF,EAAgB8G,WAAY,CAAEwZ,UAAW,cAAe7Z,QAAQ,IAC7EvE,OAAS,EAChB,CACE,IAAI6e,EAAkB,EAClBC,EAAwB,EACxBC,EAAkB/gB,EAAQ,SAARA,CAAkBJ,EAAO2b,cAAe,CAAEoB,KAAM,gBAAiB,GACvF,GAAIoE,EAAiB,CACjBd,GAAoB,EACpB,IAAIe,EAAmBhhB,EAAQ,SAARA,CAAkBF,EAAgBiH,cAAe,CACpEqZ,UAAW,gBACZ,GAEHU,GADAA,EAAwBE,EAAiB9Z,YAAc8Z,EAAiB9Z,YAAc,GACtC,GAAK,GAAK4Z,EAE1DD,GADAA,EAAkBG,EAAiB7Z,eAAiB6Z,EAAiB7Z,eAAiB,GAClD,GAAK,GAAK0Z,EAC9ChB,EACIjX,OAAOiY,IACNjY,OAAOmY,EAAgB/C,aACpBpV,OAAOkY,GACPlY,OAAOmY,EAAgB9C,iBACvB,MACRyB,EAAgBA,EAAgBA,EAAgB,eAAiB,cACjE3B,EAAQA,EAAQA,EAAQ,IAAM+C,EAAwBA,EACtDX,EAAiBA,EAAiBA,EAAiB,IAAMU,EAAkBA,CAC/E,CACJ,CACA,GACI7gB,EAAQ,SAARA,CAAkBF,EAAgB8G,WAAY,CAAEwZ,UAAW,eAAgB7Z,QAAQ,IAC9EvE,OAAS,EAChB,CACE,IAAIif,EAAmB,EACnBC,EAAyB,EACzBC,EAAmBnhB,EAAQ,SAARA,CAAkBJ,EAAO2b,cAAe,CAAEoB,KAAM,iBAAkB,GACzF,GAAIwE,EAAkB,CAClBjB,GAAqB,EACrB,IAAIkB,EAAoBphB,EAAQ,SAARA,CAAkBF,EAAgBiH,cAAe,CACrEqZ,UAAW,iBACZ,GAEHc,GADAA,EAAyBE,EAAkBla,YAAcka,EAAkBla,YAAc,GACvC,GAAK,GAAKga,EAE5DD,GADAA,EAAmBG,EAAkBja,eAAiBia,EAAkBja,eAAiB,GACnD,GAAK,GAAK8Z,EAChDnB,EACIlX,OAAOqY,IACNrY,OAAOuY,EAAiBnD,aACrBpV,OAAOsY,GACPtY,OAAOuY,EAAiBlD,iBACxB,MACRyB,EAAgBA,EAAgBA,EAAgB,gBAAkB,eAClE3B,EAAQA,EAAQA,EAAQ,IAAMmD,EAAyBA,EACvDf,EAAiBA,EAAiBA,EAAiB,IAAMc,EAAmBA,CAChF,CACJ,CAEAtK,EAAYgJ,EAAcC,EAAUC,EAAkBC,EACtDhgB,EAAgB4f,cAAgBA,EAChC5f,EAAgBie,MAAQA,EACxBje,EAAgB8d,cAAgBuC,EAC5BD,GACAzE,EAAavB,EAAiBmH,mBAAqBzhB,EAAO8R,MAAM2L,oBAChE3B,EAAgBxB,EAAiBoH,sBAAwB1hB,EAAO8R,MAAM4L,wBAC/DyC,IAAkBG,GACzBzE,EAAavB,EAAiBmH,mBAAqBzhB,EAAO8R,MAAMwL,oBAChExB,EAAgBxB,EAAiBoH,sBAAwB1hB,EAAO8R,MAAM0L,wBAC/D4C,IAAcC,GACrBxE,EAAavB,EAAiBmH,mBAAqBzhB,EAAO8R,MAAM6L,aAChE7B,EAAgBxB,EAAiBoH,sBAAwB1hB,EAAO8R,MAAM8L,kBAEtEyC,GACCD,GAAaC,IAAsBC,IAAuBH,KAE3DtE,EAAavB,EAAiBmH,mBAAqBzhB,EAAO8R,MAAM6P,aAChE7F,EAAgBxB,EAAiBoH,sBAAwB1hB,EAAO8R,MAAM8P,iBAE1E5hB,EAAO4b,WAAa/I,KAAKC,MAAMiE,EACnC,MAAO,GAAqC,WAAjC7W,EAAgBG,cAA4B,CACnD,IAAIwhB,GAAmBzhB,EAAQ,SAARA,CAAkBJ,EAAO2b,cAAe,CAAEoB,KAAM,UAAW,GAC9E+E,GAAmB1hB,EAAQ,SAARA,CAAkBJ,EAAO2b,cAAe,CAAEoB,KAAM,UAAW,GAC9EgF,GAAmBhK,SAAS7X,EAAgBuH,QAAQC,SAAStB,OAC7D4b,GAAmBjK,SAAS7X,EAAgBuH,QAAQC,SAASpB,OAC7D2b,GAAgB/hB,EAAgB8d,cAAgB+D,GAAmBC,GACnEC,GAAe,GACfpG,EAAavB,EAAiB4H,kBAAoBliB,EAAO8R,MAAMwL,oBAC/DxB,EAAgBxB,EAAiB0E,oBAAsBhf,EAAO8R,MAAM0L,wBAC7C,GAAhByE,KACPpG,EAAavB,EAAiB4H,kBAAoBliB,EAAO8R,MAAM2L,oBAC/D3B,EAAgBxB,EAAiB0E,oBAAsBhf,EAAO8R,MAAM4L,wBAEpE3G,EACA/N,OAAO6Y,GAAiB7E,aAAe+E,GACvC/Y,OAAO8Y,GAAiB9E,aAAegF,GAC3ChiB,EAAO4b,WAAa/I,KAAKC,MAAMiE,EACnC,MAAO,GAAqC,cAAjC7W,EAAgBG,cAA+B,CAClD4e,EAAe,EACfC,EAAe,EACfG,EAAO,GAFX,IAGI8C,GAAiBniB,EAAO2b,cAAc,GAC1Crc,QAAQ4H,QAAQhH,EAAgBwG,YAAY,SAAUA,EAAYnE,GAC1DA,GAAS,GAAKA,GAAS,GAAKmE,EAAWC,QACvCsY,GAA8B,EAC9BI,EAAOA,EAAOA,EAAO,IAAM3Y,EAAW8Y,IAAM9Y,EAAW8Y,KACtC,GAATjd,GAAuB,GAATA,IAAemE,EAAWC,SAChDuY,GAA8B,EAC9BG,EAAOA,EAAOA,EAAO,IAAM3Y,EAAW8Y,IAAM9Y,EAAW8Y,IAE/D,IACAtf,EAAgBuf,SAAWR,EAAeC,EAC1Chf,EAAgBmf,KAAOA,EACnBtI,EACA/N,OAAOmZ,GAAe/D,aACtBpV,OAAOmZ,GAAeC,eACtBpZ,OAAO9I,EAAgBuf,UACvB,KACJzf,EAAO4b,WAAa/I,KAAKC,MAAMiE,GAC/B8E,EAAavB,EAAiB+H,qBAAuBriB,EAAO8R,MAAM2L,oBAClE3B,EAAgBxB,EAAiBgI,wBAA0BtiB,EAAO8R,MAAM4L,sBAC5E,MAAO,GAAsC,UAAlCxd,EAAgBG,cAA2B,CAClD,IAAIkiB,GAAYviB,EAAO2b,cAAc,GACjC5E,EACA/N,OAAOuZ,GAAUnE,aACjBpV,OAAOuZ,GAAUH,eACjBpZ,OAAO9I,EAAgB0H,aACvB,KACJ5H,EAAO4b,WAAa/I,KAAKC,MAAMiE,GAC/B8E,EAAavB,EAAiBkI,gBAAkBxiB,EAAO8R,MAAM2L,oBAC7D3B,EAAgBxB,EAAiBmI,mBAAqBziB,EAAO8R,MAAM4L,sBACvE,MAAO,GAAsC,WAAlCxd,EAAgBG,cAA4B,CAC/C4e,EAAe,EACfC,EAAe,EACfC,EAAe,EACfC,EAAc,EACdrI,EAAY,EACZsI,EAAO,GACPlB,EAAQ,GACZje,EAAgBof,YAAcpf,EAAgB2G,oBAAoBC,YAClE,IAAI4b,GAAatiB,EAAQ,SAARA,CAAkBJ,EAAO2b,cAAe,CAAEoB,KAAM7c,EAAgB4H,aAAc,GAC/F,GAAI4a,GAAY,CACZpjB,QAAQ4H,QAAQhH,EAAgBwG,YAAY,SAAUA,EAAYnE,GAC1DA,GAAS,GAAKA,GAAS,GAAKmE,EAAWC,QACvCsY,GAA8B,EAC9BI,EAAOA,EAAOA,EAAO,IAAM3Y,EAAW8Y,IAAM9Y,EAAW8Y,KACtC,GAATjd,GAAuB,GAATA,IAAemE,EAAWC,SAChDuY,GAA8B,EAC9BG,EAAOA,EAAOA,EAAO,IAAM3Y,EAAW8Y,IAAM9Y,EAAW8Y,IAE/D,IACAtf,EAAgBuf,SAAWR,EAAeC,EAC1Chf,EAAgBmf,KAAOA,EACvB,IACIM,GADAD,EAAoBxf,EAAgB8H,YAAYC,MAAM,GAAGX,YAI7D,GADAqY,IAFIA,GAAoBzf,EAAgB8H,YAAYC,MAAM,GAAGX,aAErB,GAAK,GAAKqY,GADlDD,EAAoBA,EAAoB,GAAK,GAAKA,EAE3B,CACfP,EACAnW,OAAO0Z,GAAWtE,aAAepV,OAAO0W,GAAqB1W,OAAOiW,GAAgB,KACxFd,EAAQA,EAAQA,EAAQ,IAAMuB,EAAoBA,CACtD,CACA,GAAIC,GAAmB,CACfP,EACApW,OAAO0Z,GAAWtE,aAAepV,OAAO2W,IAAqB3W,OAAOkW,GAAgB,KACxFf,EAAQA,EAAQA,EAAQ,IAAMwB,GAAoBD,CACtD,CACAxf,EAAgBie,MAAQA,EACxBpH,EAAYoI,EAAeC,CAC/B,CACIlf,EAAgBuf,SAAW,GAC3B5D,EAAavB,EAAiBqI,iBAAmB3iB,EAAO8R,MAAMwL,oBAC9DxB,EAAgBxB,EAAiBsI,oBAAsB5iB,EAAO8R,MAAM0L,yBAEpE3B,EAAavB,EAAiBqI,iBAAmB3iB,EAAO8R,MAAM2L,oBAC9D3B,EAAgBxB,EAAiBsI,oBAAsB5iB,EAAO8R,MAAM4L,wBAExExd,EAAgB4f,cAAgB5f,EAAgB4H,WAChD9H,EAAO4b,WAAa/I,KAAKC,MAAMiE,EACnC,MAAO,GAAsC,mBAAlC7W,EAAgBG,cAAoC,CAC3D,IAAIwiB,GAAqBziB,EAAQ,SAARA,CAAkBJ,EAAO2b,cAAe,CAC7DoB,KAAM7c,EAAgBiI,qBACvB,GACC4O,EAAY/N,OAAO6Z,GAAmBzE,aAAepV,OAAO9I,EAAgB0H,aAAe,KAC/F5H,EAAO4b,WAAa/I,KAAKC,MAAMiE,GAC3B7W,EAAgB0H,YAAc,GAC9BiU,EAAavB,EAAiBwI,yBAA2B9iB,EAAO8R,MAAMwL,oBACtExB,EAAgBxB,EAAiByI,4BAC7B/iB,EAAO8R,MAAM0L,yBAEjB3B,EAAavB,EAAiBwI,yBAA2B9iB,EAAO8R,MAAM2L,oBACtE3B,EAAgBxB,EAAiByI,4BAC7B/iB,EAAO8R,MAAM4L,uBAEzB,CAEA1d,EAAO6b,WAAaA,EACpB7b,EAAO8b,cAAgBA,EACvB5b,EAAgB8iB,OAAShjB,EAAO4b,UACpC,EA4BA5b,EAAO8Q,IAAI,iBAAiB,SAAU1N,EAAO6f,GACzClR,IACKkR,IACD/iB,EAAgBkU,gBAAiB,EACjClU,EAAgBiU,aAAc,EAC9BjU,EAAgBkI,WAAY,EA9BK,MAAjClI,EAAgBG,cAChBH,EAAgBic,SAAWnc,EAAO4b,WACM,iBAAjC1b,EAAgBG,cACvBH,EAAgBkc,cAAgBpc,EAAO4b,WACC,YAAjC1b,EAAgBG,cACvBH,EAAgBmc,eAAiBrc,EAAO4b,WACA,UAAjC1b,EAAgBG,cACvBH,EAAgBoc,aAAetc,EAAO4b,WACE,kBAAjC1b,EAAgBG,cACvBH,EAAgBqc,SAAWvc,EAAO4b,WACM,YAAjC1b,EAAgBG,cACvBH,EAAgBsc,eAAiBxc,EAAO4b,WACA,WAAjC1b,EAAgBG,cACvBH,EAAgBuc,cAAgBzc,EAAO4b,WACC,cAAjC1b,EAAgBG,cACvBH,EAAgBwc,iBAAmB1c,EAAO4b,WACF,SAAjC1b,EAAgBG,cACvBH,EAAgByc,YAAc3c,EAAO4b,WACG,UAAjC1b,EAAgBG,cACvBH,EAAgB0c,aAAe5c,EAAO4b,WACE,kBAAjC1b,EAAgBG,gBACvBH,EAAgB2c,qBAAuB7c,EAAO4b,YAW9CtK,EAAciD,6BACdjD,EAAcyC,gBAAgB,mBAAoBuG,GAE1D,GACJ,IAGHva,WAAW,mBAAoB,CAC5B,SACA,kBACA,gBACA,mBACA,SAA0BC,EAAQE,EAAiBoR,EAAegJ,GAuqB1E,IACU4I,EAvqBE1O,KAuqBF0O,EAAgBriB,EAAE,wBACVsiB,WAAU,WACpB,IAAMC,EAAcviB,EAAE+C,MAAMzC,KAAK,eACjCN,EAAE+C,MAAM3C,KAAK,YAAYga,IAAI,mBAAmB,OAADxO,OAAS2W,EAAW,KACvE,IACAF,EAAcG,YAAW,WACrB,IAAMC,EAAWziB,EAAE+C,MAAMzC,KAAK,YAC9BN,EAAE+C,MAAM3C,KAAK,YAAYga,IAAI,mBAAmB,OAADxO,OAAS6W,EAAQ,KACpE,IA7qBQtjB,EAAOgU,KAAO,SAAUuP,GACpBjJ,EAAiB4B,eAAiBqH,EAClC,IAAIrhB,EAAOoP,EAAc4C,gBAAgB,eACrChS,GACAhC,EAAgBmU,QAAQnS,GAE5B,IAAIshB,EAAWlS,EAAc4C,gBAAgB,oBACzCsP,GACAlJ,EAAiBjG,QAAQmP,GAE7BtjB,EAAgBoU,SAAW,kBAC/B,EAEAtU,EAAOyjB,WAAavjB,EACpBF,EAAO0jB,WAAapJ,EACpBta,EAAO2jB,YAAc,SAAU/hB,GAC3B,MAAU,cAANA,EACO5B,EAAOyjB,WAAWtH,SAAW,EACtB,YAAPva,EACA5B,EAAOyjB,WAAWrH,cAAgB,EAC3B,aAAPxa,EACA5B,EAAOyjB,WAAWpH,eAAiB,EAC5B,WAAPza,EACA5B,EAAOyjB,WAAWnH,aAAe,EAC1B,OAAP1a,EACA5B,EAAOyjB,WAAWlH,SAAW,EACtB,aAAP3a,EACA5B,EAAOyjB,WAAWjH,eAAiB,EAC5B,YAAP5a,EACA5B,EAAOyjB,WAAWhH,cAAgB,EAC3B,eAAP7a,EACA5B,EAAOyjB,WAAW/G,iBAAmB,EAC9B,UAAP9a,EACA5B,EAAOyjB,WAAW9G,YAAc,EACzB,WAAP/a,EACA5B,EAAOyjB,WAAW7G,aAAe,EAC1B,mBAAPhb,EACA5B,EAAOyjB,WAAW5G,qBAAuB,OAD7C,CAGX,EACA7c,EAAO4jB,aAAe,SAAUhiB,GAC5B,MAAU,cAANA,EACO5B,EAAOyjB,WAAWtH,SACX,YAAPva,EACA5B,EAAOyjB,WAAWrH,cACX,aAAPxa,EACA5B,EAAOyjB,WAAWpH,eACX,WAAPza,EACA5B,EAAOyjB,WAAWnH,aACX,OAAP1a,EACA5B,EAAOyjB,WAAWlH,SACX,aAAP3a,EACA5B,EAAOyjB,WAAWjH,eACX,YAAP5a,EACA5B,EAAOyjB,WAAWhH,cACX,eAAP7a,EACA5B,EAAOyjB,WAAW/G,iBACX,UAAP9a,EACA5B,EAAOyjB,WAAW9G,YACX,WAAP/a,EACA5B,EAAOyjB,WAAW7G,aACX,mBAAPhb,EACA5B,EAAOyjB,WAAW5G,0BADtB,CAGX,EACA7c,EAAO6jB,UAAY,SAAUjiB,GACzB,MAAU,cAANA,EACO5B,EAAO0jB,WAAWrG,qBACX,YAAPzb,EACA5B,EAAO0jB,WAAW7F,kBACX,aAAPjc,EACA5B,EAAO0jB,WAAWpF,mBACX,WAAP1c,EACA5B,EAAO0jB,WAAW3E,iBACX,OAAPnd,EACA5B,EAAO0jB,WAAW9D,yBACX,aAAPhe,EACA5B,EAAO0jB,WAAWjC,mBACX,YAAP7f,EACA5B,EAAO0jB,WAAWxB,kBACX,eAAPtgB,EACA5B,EAAO0jB,WAAWrB,qBACX,UAAPzgB,EACA5B,EAAO0jB,WAAWlB,gBACX,WAAP5gB,EACA5B,EAAO0jB,WAAWf,iBACX,mBAAP/gB,EACA5B,EAAO0jB,WAAWZ,8BADtB,CAGX,EACA9iB,EAAO8jB,aAAe,SAAUliB,GAC5B,MAAU,cAANA,EACO5B,EAAO0jB,WAAWnG,wBACX,YAAP3b,EACA5B,EAAO0jB,WAAW5F,qBACX,aAAPlc,EACA5B,EAAO0jB,WAAWnF,sBACX,WAAP3c,EACA5B,EAAO0jB,WAAW1E,oBACX,OAAPpd,EACA5B,EAAO0jB,WAAW7D,4BACX,aAAPje,EACA5B,EAAO0jB,WAAWhC,sBACX,YAAP9f,EACA5B,EAAO0jB,WAAWK,qBACX,eAAPniB,EACA5B,EAAO0jB,WAAWpB,wBACX,UAAP1gB,EACA5B,EAAO0jB,WAAWjB,mBACX,WAAP7gB,EACA5B,EAAO0jB,WAAWd,oBACX,mBAAPhhB,EACA5B,EAAO0jB,WAAWX,iCADtB,CAGX,EACA/iB,EAAO8Q,IAAI,qBAAqB,SAAUkT,EAAQxI,GAC9Ctb,EAAgBG,cAAgBmb,EAAKyI,QAAQpkB,KAC7CK,EAAgBkI,WAAY,CAChC,GACJ,IAEHrI,WAAW,iBAAkB,CAC1B,WA6fJT,QAAQkB,QAAQC,UAAUC,OAAM,WAC5BC,YAAW,WACPE,EAAE,eAAeqjB,MAAM,CACnBC,MAAM,EACNC,UAAU,EACVC,MAAO,IACPC,aAAc,EACdC,eAAgB,EAChBC,QAAQ,EACRC,WAAY,CACR,CACIC,WAAY,KACZP,MAAM,EACNQ,SAAU,CACNL,aAAc,EACdH,MAAM,EACNI,eAAgB,EAChBH,UAAU,EACVI,QAAQ,IAGhB,CACIE,WAAY,IACZP,MAAM,EACNQ,SAAU,CACNR,MAAM,EACNG,aAAc,EACdC,eAAgB,IAGxB,CACIG,WAAY,IACZP,MAAM,EACNQ,SAAU,CACNR,MAAM,EACNG,aAAc,EACdC,eAAgB,MAKpC,GAAG,EACP,GAriBI,IAEHvT,UAAU,eAAgB,CACvB,WACI,MAAO,CACHC,SAAU,IACVC,OAAO,EACPnR,WAAY,uBACZ6kB,aAAc,uBACdzT,KAAM,SAAUnR,EAAQoR,EAAUC,GAC1BA,EAAMwT,uBACN7kB,EAAOyR,mBAAqBJ,EAAMwT,sBAElCxT,EAAMyT,oBACN9kB,EAAO0R,gBAAkBL,EAAMyT,mBAE/BzT,EAAM0T,kBACN/kB,EAAO4R,cAAgBP,EAAM0T,gBAErC,EAER,IAEH/T,UAAU,aAAc,CACrB,WACI,MAAO,CACHC,SAAU,IACVC,OAAO,EACPC,KAAM,SAAUnR,EAAQoR,EAAUC,GAC9BrR,EAAOsE,YAAY+M,EAAM2T,WAC7B,EAER,IAEHC,QAAQ,kBAAmB,CACxB,aACA,wBACA,iBACA,SAAyBC,EAAYC,EAAuBC,GACxD,IAAIzc,EAAO/E,KACXA,KAAKuQ,aAAc,EACnBvQ,KAAKwQ,gBAAiB,EACtBxQ,KAAKwE,WAAY,EACjBxE,KAAKqF,mBAAqB,EAC1BrF,KAAK0E,oBAAsB,GAC3B1E,KAAKgB,eAAiB,IACtBhB,KAAKkB,UAAY,GACjBlB,KAAKqB,SAAW,EAChBrB,KAAKsB,UAAY,EACjBtB,KAAKyB,OAAS,EACdzB,KAAK0B,SAAW,EAChB1B,KAAKwB,cAAgB,CACjBC,OAAQ,EACRC,SAAU,EACV3B,MAAO,IAEXC,KAAKoB,SAAW,CACZC,SAAU,EACVC,UAAW,EACXvB,MAAO,IAEXC,KAAK4B,OAAS,GACd5B,KAAK8O,iBAAmB,EACxB9O,KAAK4O,cAAgB,EACrB5O,KAAKoP,eAAiB,EACtBpP,KAAKuP,qBAAuB,GAC5BvP,KAAKyhB,UAAY,GACjBzhB,KAAK0Q,SAAW,GAChB1Q,KAAKvD,cAAgB,GACrBuD,KAAK8B,WAAa,CACd0X,WAAW,EACXzX,YAAa,GAEjB/B,KAAKiC,QAAU,CACXuX,WAAW,EACXtX,SAAU,GAEdlC,KAAKoC,SAAW,CACZ9C,OAAQ,GACRS,MAAO,GAEXC,KAAKsC,OAAS,CACVxC,OAAQ,CAAEiV,KAAM,GAAID,OAAQ,IAC5BvS,QAAS,CAAEG,MAAO,EAAGD,OAAQ,EAAGD,MAAO,IAE3CxC,KAAK4C,mBAAqB,GAC1B5C,KAAK8C,WAAa,CACd,CACI8Y,IAAK,MACL7Y,QAAQ,GAEZ,CACI6Y,IAAK,OACL7Y,QAAQ,GAEZ,CACI6Y,IAAK,MACL7Y,QAAQ,GAEZ,CACI6Y,IAAK,QACL7Y,QAAQ,GAEZ,CACI6Y,IAAK,MACL7Y,QAAQ,GAEZ,CACI6Y,IAAK,MACL7Y,QAAQ,GAEZ,CACI6Y,IAAK,MACL7Y,QAAQ,IAGhB/C,KAAKiD,oBAAsB,CACvBoB,MAAO,CACH,CAAEqd,KAAM,WAAYhe,iBAAa4C,GACjC,CACIob,KAAM,WACNhe,iBAAa4C,IAGrBpD,iBAAaoD,GAEjBtG,KAAKoD,WAAa,CACd,CAAEwZ,UAAW,UAAWhd,MAAO,UAAWmD,QAAQ,GAClD,CACI6Z,UAAW,MACXhd,MAAO,MACPmD,QAAQ,GAEZ,CACI6Z,UAAW,cACXhd,MAAO,cACPmD,QAAQ,GAEZ,CACI6Z,UAAW,eACXhd,MAAO,eACPmD,QAAQ,IAGhB/C,KAAKuD,cAAgB,CACjB,CACIqZ,UAAW,UACXhd,MAAO,UACPmD,QAAQ,EACRW,iBAAa4C,EACb3C,oBAAgB2C,GAEpB,CACIsW,UAAW,MACXhd,MAAO,MACPmD,QAAQ,EACRW,iBAAa4C,EACb3C,oBAAgB2C,GAEpB,CACIsW,UAAW,cACXhd,MAAO,cACPmD,QAAQ,EACRW,iBAAa4C,EACb3C,oBAAgB2C,GAEpB,CACIsW,UAAW,eACXhd,MAAO,eACPmD,QAAQ,EACRW,iBAAa4C,EACb3C,oBAAgB2C,IAGxBtG,KAAK6D,QAAU,CACX/D,OAAQ,CAAEiV,KAAM,GAAID,OAAQ,IAC5BhR,SAAU,CAAEpB,MAAO,EAAGF,MAAO,IAEjCxC,KAAKgE,YAAc,EACnBhE,KAAKuM,kBAAoB,CACrB,CAAEF,WAAY,iBAAkBzM,MAAO,oBACvC,CAAEyM,WAAY,iBAAkBzM,MAAO,oBACvC,CAAEyM,WAAY,iBAAkBzM,MAAO,oBACvC,CAAEyM,WAAY,iBAAkBzM,MAAO,qBAE3CI,KAAKkE,WAAa,GAElBlE,KAAKoE,YAAc,CACfC,MAAO,CACH,CAAEqd,KAAM,WAAYhe,iBAAa4C,GACjC,CACIob,KAAM,WACNhe,iBAAa4C,KAKzBtG,KAAK2M,0BAA4B,CAC7B,CAAEF,mBAAoB,YAAa7M,MAAO,cAC1C,CAAE6M,mBAAoB,cAAe7M,MAAO,iBAGhDI,KAAKuE,mBAAqB,GAE1BvE,KAAKuY,SAAW,EAChBvY,KAAKwY,cAAgB,EACrBxY,KAAKyY,eAAiB,EACtBzY,KAAK0Y,aAAe,EACpB1Y,KAAK2Y,SAAW,EAChB3Y,KAAK4Y,eAAiB,EACtB5Y,KAAK6Y,cAAgB,EACrB7Y,KAAK8Y,iBAAmB,EACxB9Y,KAAK+Y,YAAc,EACnB/Y,KAAKgZ,aAAe,EACpBhZ,KAAKiZ,qBAAuB,EAC5BjZ,KAAK2hB,UAAY,GACjB3hB,KAAKua,MAAQ,GACbva,KAAKyb,KAAO,GACZzb,KAAK0b,YAAc,IACnB1b,KAAKof,OAAS,IACdpf,KAAKma,iBAAmB,GACxBna,KAAK4hB,QAAU,GACf5hB,KAAK6hB,SAAW,GAChB7hB,KAAKoa,cAAgB,EACrBpa,KAAK6b,SAAW,EAChB7b,KAAKkc,cAAgB,EAErBlc,KAAKyQ,QAAU,SAAUnS,GACrByG,EAAKwL,YAAcjS,EAAKiS,YACxBxL,EAAKyL,eAAiBlS,EAAKkS,eAC3BzL,EAAKP,UAAYlG,EAAKkG,UACtBO,EAAK/D,eAAiB1C,EAAK0C,eAC3B+D,EAAK7D,UAAY5C,EAAK4C,UACtB6D,EAAKvD,cAAgBlD,EAAKkD,cAC1BuD,EAAK3D,SAAW9C,EAAK8C,SACrB2D,EAAKnD,OAAStD,EAAKsD,OACnBmD,EAAK+J,iBAAmBxQ,EAAKwQ,iBAC7B/J,EAAK6J,cAAgBtQ,EAAKsQ,cAC1B7J,EAAKqK,eAAiB9Q,EAAK8Q,eAC3BrK,EAAKwK,qBAAuBjR,EAAKiR,qBACjCxK,EAAK0c,UAAYnjB,EAAKmjB,UACtB1c,EAAK2L,SAAWpS,EAAKoS,SACrB3L,EAAKjD,WAAaxD,EAAKwD,WACvBiD,EAAK9C,QAAU3D,EAAK2D,QACpB8C,EAAK3C,SAAW9D,EAAK8D,SACrB2C,EAAKzC,OAAShE,EAAKgE,OACnByC,EAAKnC,mBAAqBtE,EAAKsE,mBAC/BmC,EAAKjC,WAAaxE,EAAKwE,WACvBiC,EAAK9B,oBAAsB3E,EAAK2E,oBAChC8B,EAAK3B,WAAa9E,EAAK8E,WACvB2B,EAAKxB,cAAgBjF,EAAKiF,cAC1BwB,EAAKlB,QAAUvF,EAAKuF,QACpBkB,EAAKb,WAAa5F,EAAK4F,WACvBa,EAAKX,YAAc9F,EAAK8F,YACxBW,EAAKR,mBAAqBjG,EAAKiG,mBAC/BQ,EAAKf,YAAc1F,EAAK0F,YACxBe,EAAKwT,SAAWja,EAAKia,SACrBxT,EAAKyT,cAAgBla,EAAKka,cAC1BzT,EAAK0T,eAAiBna,EAAKma,eAC3B1T,EAAK2T,aAAepa,EAAKoa,aACzB3T,EAAK4T,SAAWra,EAAKqa,SACrB5T,EAAK6T,eAAiBta,EAAKsa,eAC3B7T,EAAK8T,cAAgBva,EAAKua,cAC1B9T,EAAK+T,iBAAmBxa,EAAKwa,iBAC7B/T,EAAKgU,YAAcza,EAAKya,YACxBhU,EAAKkU,qBAAuB3a,EAAK2a,qBACjClU,EAAKiU,aAAe1a,EAAK0a,aACzBjU,EAAKM,mBAAqB/G,EAAK+G,kBACnC,EACArF,KAAKsF,eAAiB,WAClBgc,EAAWQ,WAAW,iBAC1B,EACA9hB,KAAKgN,cAAgB,SAAU+U,GAC3BT,EAAWQ,WAAW,gBAAiBC,EAC3C,EAEA,IAAIC,EAAe,GACfC,EAAkB,GAClBC,GAAc,EAClBliB,KAAKuF,iBAAmB,WACpB,IAAIR,EAAKP,UAAT,CAGA,IAAI2d,EAAapd,EAAKM,mBACtB,KAAI2c,EAAa/jB,QAAQkkB,IAAe,GAAxC,CAGA,IAAIC,EAAQ,aACRC,EAAWplB,EAAE,SAAW8H,EAAKM,oBAAoB9H,KAAK,YACrD2kB,IACDE,EAAQ,QACRF,GAAc,GAElBV,EAAevlB,KAAO8I,EAAK2L,SAC3B8Q,EAAeY,MAAQA,EACvBZ,EAAec,KAAOH,EACtBX,EAAea,SAAWA,EAAWA,EAASjiB,cAAgB,GAC9DohB,EAAee,SAAWxd,EAAKtI,cAAc2D,cAC7CohB,EAAe5hB,MAAQ,GACvB2hB,EAAsBiB,oBAAoBhB,GAC1CQ,EAAa/iB,KAAKkjB,EAdlB,CAJA,CAmBJ,EACA,IAAIM,EAAgB,EACpBziB,KAAK+M,2BAA6B,SAAUsV,EAAUD,GAClD,KAAIrd,EAAKP,WAGLyd,EAAgBhkB,QAAQ8G,EAAKtI,cAAgB,IAAM4lB,IAAa,GAApE,CAIA,IAAIK,EAAe,GACnB,GAAa,UAFbN,EAAQA,GAAS,cAGbK,EAAgB,EAChBC,EAAeL,GAAY,uCACxB,CACH,IAAIM,EAAW1lB,EAAE,IAAMolB,GAAUhlB,KAAK,wBACtCqlB,EAAeC,GAAYA,EAASnkB,OAAS,EAAImkB,EAAS,GAAGC,UAAYP,CAC7E,CACAb,EAAevlB,KAAO8I,EAAK2L,SAC3B8Q,EAAeY,MAAQA,EACvBZ,EAAec,KAAOG,EACtBjB,EAAea,SAAWK,EAAatiB,cACvCohB,EAAee,SAAWxd,EAAKtI,cAAc2D,cAC7CohB,EAAe5hB,MAAQ,GACvB2hB,EAAsBiB,oBAAoBhB,GAC1CS,EAAgBhjB,KAAK8F,EAAKtI,cAAgB,IAAM4lB,GAChDI,GAAgC,CAlBhC,CAmBJ,EACAziB,KAAKmN,yBAA2B,SAAUkV,GACtC,GAAKtd,EAAKtI,eACDylB,EADT,CAKA,IAAIC,EAAapd,EAAKM,mBAAqB,EAC3Cmc,EAAevlB,KAAO8I,EAAK2L,SAC3B8Q,EAAeY,MAAQ,WACvBZ,EAAec,KAAOH,GAA0B,GAChDX,EAAea,SAAWA,EAAWA,EAASjiB,cAAgB,GAC9DohB,EAAee,SAAWxd,EAAKtI,cAAc2D,cAC7CohB,EAAe5hB,MAAQ,GACvB2hB,EAAsBiB,oBAAoBhB,EAR1C,CASJ,EACAxhB,KAAK2E,uBAAyB,SAAUoQ,GACpCyM,EAAevlB,KAAO8I,EAAK2L,SAC3B8Q,EAAeY,MAAQ,SACvBZ,EAAec,KAAOrlB,EAAE,mBAAmBM,KAAK,cAChDikB,EAAea,SAAW,SAC1Bb,EAAe5hB,MAAQmF,EAAKL,oBAAsBK,EAAKL,oBAAoBtE,cAAgB,GAC3FohB,EAAee,SAAWxd,EAAKtI,cAAc2D,cACjC,eAAR2U,EACAwM,EAAsBsB,qBAAqBrB,GAE3CD,EAAsBiB,oBAAoBhB,EAElD,CACJ,IAEHH,QAAQ,oBAAoB,WACzB,IAAItc,EAAO/E,KACXA,KAAKyZ,qBAAuB,GAC5BzZ,KAAK2Z,wBAA0B,GAC/B3Z,KAAKia,kBAAoB,GACzBja,KAAKka,qBAAuB,GAC5Bla,KAAK0a,mBAAqB,GAC1B1a,KAAK2a,sBAAwB,GAC7B3a,KAAKmb,iBAAmB,GACxBnb,KAAKob,oBAAsB,GAC3Bpb,KAAKgc,yBAA2B,GAChChc,KAAKic,4BAA8B,GACnCjc,KAAK6d,mBAAqB,GAC1B7d,KAAK8d,sBAAwB,GAC7B9d,KAAKse,kBAAoB,GACzBte,KAAKmgB,qBAAuB,GAC5BngB,KAAKye,qBAAuB,GAC5Bze,KAAK0e,wBAA0B,GAC/B1e,KAAK4e,gBAAkB,GACvB5e,KAAK6e,mBAAqB,GAC1B7e,KAAK+e,iBAAmB,GACxB/e,KAAKgf,oBAAsB,GAC3Bhf,KAAKkf,yBAA2B,GAChClf,KAAKmf,4BAA8B,GACnCnf,KAAKiY,WAAa,GAClBjY,KAAKkY,cAAgB,GACrBlY,KAAKsY,eAAiB,GAEtBtY,KAAKyQ,QAAU,SAAUnS,GACrByG,EAAKkT,WAAa3Z,EAAK2Z,WACvBlT,EAAKmT,cAAgB5Z,EAAK4Z,cAC1BnT,EAAK0U,qBAAuBnb,EAAKmb,qBACjC1U,EAAK4U,wBAA0Brb,EAAKqb,wBACpC5U,EAAKkV,kBAAoB3b,EAAK2b,kBAC9BlV,EAAKmV,qBAAuB5b,EAAK4b,qBACjCnV,EAAK2V,mBAAqBpc,EAAKoc,mBAC/B3V,EAAK4V,sBAAwBrc,EAAKqc,sBAClC5V,EAAKoW,iBAAmB7c,EAAK6c,iBAC7BpW,EAAKqW,oBAAsB9c,EAAK8c,oBAChCrW,EAAKiX,yBAA2B1d,EAAK0d,yBACrCjX,EAAKkX,4BAA8B3d,EAAK2d,4BACxClX,EAAK8Y,mBAAqBvf,EAAKuf,mBAC/B9Y,EAAK+Y,sBAAwBxf,EAAKwf,sBAClC/Y,EAAKuZ,kBAAoBhgB,EAAKggB,kBAC9BvZ,EAAKob,qBAAuB7hB,EAAK6hB,qBACjCpb,EAAK0Z,qBAAuBngB,EAAKmgB,qBACjC1Z,EAAK2Z,wBAA0BpgB,EAAKogB,wBACpC3Z,EAAK6Z,gBAAkBtgB,EAAKsgB,gBAC5B7Z,EAAK8Z,mBAAqBvgB,EAAKugB,mBAC/B9Z,EAAKma,yBAA2B5gB,EAAK4gB,yBACrCna,EAAKoa,4BAA8B7gB,EAAK6gB,4BACxCpa,EAAKga,iBAAmBzgB,EAAKygB,iBAC7Bha,EAAKia,oBAAsB1gB,EAAK0gB,oBAChCja,EAAKuT,eAAiBha,EAAKga,cAC/B,CACJ,IACC+I,QAAQ,gBAAiB,CACtB,KACA,QACA,kBACA,SAAuByB,EAAIrQ,EAAOnW,GAC9B,IAAIyI,EAAO/E,KACXA,KAAKoO,WAAa,SAAU2U,EAAQC,EAAK1kB,GACrC,IAAI2kB,EAAWH,EAAGI,QACdrN,EAAS,GAqBb,MApBc,OAAVkN,IACAlN,EAASvX,GAEbmU,EAAM,CACFsQ,OAAQA,EACRC,IAAKA,EACL1kB,KAAMA,EACNuX,OAAQA,IACTvH,MACC,SAAUC,GACN0U,EAASE,QAAQ5U,EACrB,IACA,SAAUA,GACkB,MAApBA,EAAS6U,OACTH,EAASI,SAETJ,EAASE,QAAQ,KAEzB,IAEGF,EAASK,OACpB,EACAtjB,KAAKmQ,gBAAkB,SAAUoT,EAAYC,GACzC,IAAIzjB,EAAQrE,QAAQ+nB,OAAOD,GAC3BE,aAAaC,QAAQJ,EAAYxjB,EACrC,EAEAC,KAAKsQ,gBAAkB,SAAUiT,GAC7B,IAAIjlB,EAAOolB,aAAaE,QAAQL,GAEhC,OADe7nB,QAAQmoB,SAASvlB,EAEpC,EACA0B,KAAK2Q,2BAA6B,WAC9BrU,EAAgB+E,SAAW/E,EAAgB8E,SAASC,SACpD/E,EAAgBgF,UAAYhF,EAAgB8E,SAASE,UACrDhF,EAAgBmF,OAASnF,EAAgBkF,cAAcC,OACvDnF,EAAgBoF,SAAWpF,EAAgBkF,cAAcE,SACzDpF,EAAgBqlB,UAAYrlB,EAAgBG,cAC5CsI,EAAKqJ,WAAW,OAAQ,qCAAsC9R,GAAiBgS,MAAK,SAChFC,GAEIA,GAAYA,EAASjQ,OACrBhC,EAAgBmlB,UAAYlT,EAASjQ,KAAKmjB,UAC1C1c,EAAKoL,gBAAgB,cAAe7T,GAE5C,GACJ,CACJ,IAUR,SAASsU,IACL3T,EAAE,gBAAgBkB,OAAM,WACpB,IAAM2lB,EAAgB7mB,EAAE,kBACnB6mB,EAAcC,SAAS,UAGxBD,EAAc1mB,YAAY,UAAUqa,KAAK,QAFzCqM,EAAc3mB,SAAS,UAAUqa,KAAK,OAI9C,IAEAva,EAAE,YAAYwa,OACdxa,EAAE,oBAAoBc,GAAG,SAAS,WAC9Bd,EAAE,YAAYua,MAClB,IAEAva,EAAE,iBAAiBkB,OAAM,WACrBlB,EAAE,mBAAmBwa,OACrBxa,EAAE,mBAAmBmB,YAAY,OACrC,IACAnB,EAAE,iBAAiBkB,OAAM,WACrBlB,EAAE,mBAAmBwa,OACrBxa,EAAE,mBAAmBmB,YAAY,OACrC,GACJ,CAwNA1C,QAAQC,OAAO,OAAOqoB,SAAS/kB,KAAK,Q","sources":["webpack://synergy.net.au/./scripts/tcw/app.tcw.js"],"sourcesContent":["import '../../stylesheets/src/sass/tcw/tcw.scss'\r\nexport default angular\r\n    .module('syTCW', ['ngRoute'])\r\n    .config(function ($routeProvider, $locationProvider) {\r\n        $locationProvider.html5Mode(false)\r\n        $routeProvider\r\n            .when('/', {\r\n                name: 'List',\r\n                templateUrl: '/Global/TCW/ReduceYourBillList'\r\n            })\r\n            .when('/Television', {\r\n                name: 'TV',\r\n                templateUrl: '/Global/TCW/Television'\r\n            })\r\n            .when('/Console', {\r\n                name: 'Games console',\r\n                templateUrl: '/Global/TCW/Console'\r\n            })\r\n            .when('/PoolPump', {\r\n                name: 'Poolpump',\r\n                templateUrl: '/Global/TCW/PoolPump'\r\n            })\r\n            .when('/Fridge', {\r\n                name: 'Fridge',\r\n                templateUrl: '/Global/TCW/Fridge'\r\n            })\r\n            .when('/AC', {\r\n                name: 'Airconditioner',\r\n                templateUrl: '/Global/TCW/Airconditioner'\r\n            })\r\n            .when('/Lighting', {\r\n                name: 'Lighting',\r\n                templateUrl: '/Global/TCW/Lighting'\r\n            })\r\n            .when('/Freezer', {\r\n                name: 'Freezer',\r\n                templateUrl: '/Global/TCW/Freezer'\r\n            })\r\n            .when('/Dishwasher', {\r\n                name: 'Dishwasher',\r\n                templateUrl: '/Global/TCW/Dishwasher'\r\n            })\r\n            .when('/Dryer', {\r\n                name: 'Dryer',\r\n                templateUrl: '/Global/TCW/Dryer'\r\n            })\r\n            .when('/Heater', {\r\n                name: 'Heater',\r\n                templateUrl: '/Global/TCW/Heater'\r\n            })\r\n            .when('/Washingmachine', {\r\n                name: 'Washingmachine',\r\n                templateUrl: '/Global/TCW/Washingmachine'\r\n            })\r\n    })\r\n    .controller('tcwQueController', [\r\n        '$scope',\r\n        '$timeout',\r\n        'questionService',\r\n        '$route',\r\n        '$filter',\r\n        function tcwQueController($scope, $timeout, questionService, $route, $filter) {\r\n            questionService.ApplianceName = $route && $route.current ? $route.current.name : ''\r\n            $scope.trackStart = false\r\n\r\n            handleQuestions()\r\n\r\n            function clearRenderingControls() {\r\n                const appliances = [\r\n                    'AverageSlider',\r\n                    'HomeType',\r\n                    'HomeSize',\r\n                    'HouseholdSize',\r\n                    'Television',\r\n                    'Console',\r\n                    'PoolPump',\r\n                    'Fridge',\r\n                    'AirconditionerType',\r\n                    'DaysOfWeek',\r\n                    'AirconditionerUsage',\r\n                    'LightTypes',\r\n                    'LightingUsage',\r\n                    'Freezer',\r\n                    'LightSlider',\r\n                    'HeaterType',\r\n                    'HeaterUsage',\r\n                    'WashingmachineType'\r\n                ]\r\n\r\n                appliances.forEach((appliance) => {\r\n                    const applianceElement = document.getElementById(appliance)\r\n                    if (applianceElement) {\r\n                        applianceElement.innerHTML = ''\r\n                        const hash = window.location.hash\r\n                        const path = hash.substring(hash.indexOf('/') + 1)\r\n                        applianceElement.classList.add(`${path}-${appliance}`)\r\n                    }\r\n                })\r\n            }\r\n\r\n            function checkLightingUsageDisabled() {\r\n                var countActive = 0\r\n                var counthoursSel = 0\r\n                var countnumberOfLightsSel = 0\r\n                angular.forEach(questionService.LightingUsage, function (obj, key) {\r\n                    if (obj.active) {\r\n                        countActive++\r\n                    }\r\n                    if (obj.active && obj.hoursPerDay && obj.hoursPerDay > 0) {\r\n                        counthoursSel++\r\n                    }\r\n                    if (obj.active && obj.numberOfLights && obj.numberOfLights > 0) {\r\n                        countnumberOfLightsSel++\r\n                    }\r\n                })\r\n                if (\r\n                    countActive === counthoursSel &&\r\n                    countActive === countnumberOfLightsSel &&\r\n                    counthoursSel === countnumberOfLightsSel\r\n                ) {\r\n                    return false\r\n                }\r\n                return true\r\n            }\r\n\r\n            function checkHeaterUsageDisabled() {\r\n                var isDisabled = true\r\n                angular.forEach(questionService.HeaterUsage.hours, function (obj, key) {\r\n                    if (obj.hoursPerDay && obj.hoursPerDay > 0) {\r\n                        isDisabled = false\r\n                    }\r\n                })\r\n                return isDisabled\r\n            }\r\n            $scope.disableNext = function () {\r\n                $scope.disableNextAverageSlider = questionService.LastEnergyBill > 0 ? false : true\r\n                $scope.disableNextHomeType = questionService.HouseType ? false : true\r\n                $scope.disableNextHomeSize =\r\n                    questionService.HomeSize.Bedrooms > 0 && questionService.HomeSize.Bathrooms > 0 ? false : true\r\n                $scope.disableNextHouseholdSize =\r\n                    questionService.HouseholdSize.Adults > 0 || questionService.HouseholdSize.Children > 0\r\n                        ? false\r\n                        : true\r\n                $scope.disableNextLocation = questionService.Suburb ? false : true\r\n                $scope.disableNextTelevision = questionService.Television.televisions > 0 ? false : true\r\n                $scope.disableNextConsole = questionService.Console.consoles > 0 ? false : true\r\n                $scope.disableNextPoolPump = questionService.PoolPump.value > 0 ? false : true\r\n                $scope.disableNextFridge =\r\n                    questionService.Fridge.fridges.Large > 0 ||\r\n                    questionService.Fridge.fridges.Medium > 0 ||\r\n                    questionService.Fridge.fridges.Small > 0\r\n                        ? false\r\n                        : true\r\n                $scope.disableNextAirconditionerType = questionService.AirconditionerType ? false : true\r\n                $scope.disableNextDaysOfWeek =\r\n                    $filter('filter')(questionService.DaysOfWeek, { active: true }, true).length > 0 ? false : true\r\n                $scope.disableNextAirconditionerUsage = questionService.AirconditionerUsage.temperature ? false : true\r\n                $scope.disableNextLightTypes =\r\n                    $filter('filter')(questionService.LightTypes, { active: true }, true).length > 0 ? false : true\r\n                $scope.disableNextLightingUsage = checkLightingUsageDisabled()\r\n                $scope.disableNextFreezer =\r\n                    questionService.Freezer.freezers.Large > 0 || questionService.Freezer.freezers.Small > 0\r\n                        ? false\r\n                        : true\r\n                $scope.disableNextLightSlider = questionService.LightSlider > 0 ? false : true\r\n                $scope.disableNextHeaterType = questionService.HeaterType ? false : true\r\n                $scope.disableNextHeaterUsage = checkHeaterUsageDisabled()\r\n                $scope.disableNextWashingmachineType = questionService.WashingmachineType ? false : true\r\n                if (\r\n                    !$scope.disableNextAverageSlider ||\r\n                    !$scope.disableNextHomeType ||\r\n                    !$scope.disableNextHomeSize ||\r\n                    !$scope.disableNextHouseholdSize ||\r\n                    !$scope.disableNextLocation ||\r\n                    $scope.disableNextTelevision ||\r\n                    $scope.disableNextConsole ||\r\n                    $scope.disableNextPoolPump ||\r\n                    $scope.disableNextFridge ||\r\n                    $scope.disableNextAirconditionerType ||\r\n                    $scope.disableNextDaysOfWeek ||\r\n                    $scope.disableNextAirconditionerUsage ||\r\n                    $scope.disableNextLightTypes ||\r\n                    $scope.disableNextLightingUsage ||\r\n                    $scope.disableNextFreezer ||\r\n                    $scope.disableNextLightSlider ||\r\n                    $scope.disableNextHeaterType ||\r\n                    $scope.disableNextWashingmachineType ||\r\n                    $scope.disableNextHeaterUsage\r\n                ) {\r\n                    if (!$scope.trackStart) {\r\n                        $timeout(function () {\r\n                            if (questionService.SecResult && !$scope.resultTracked) {\r\n                                questionService.ResultFirstBtnLabel = $('#firstButton').attr(\r\n                                    'sy-adobe-analytics-tool-interaction'\r\n                                )\r\n                                questionService.trackEnergyToolsResult()\r\n                                $scope.resultTracked = true\r\n                            }\r\n                        }, 2000)\r\n                        $scope.trackStart = true\r\n                    }\r\n                }\r\n            }\r\n\r\n            $scope.enableComponent = function () {\r\n                if (!$scope.disableNextAverageSlider) {\r\n                    $scope.btnNextClick('sec-AverageSlider', '', 'true')\r\n                }\r\n                if (!$scope.disableNextHomeType) {\r\n                    $scope.btnNextClick('sec-HomeType', '', 'true')\r\n                }\r\n                if (!$scope.disableNextHouseholdSize) {\r\n                    $scope.btnNextClick('sec-HouseholdSize', '', 'true')\r\n                }\r\n                if (!$scope.disableNextHomeSize) {\r\n                    $scope.btnNextClick('sec-HomeSize', '', 'true')\r\n                }\r\n                if (!$scope.disableNextLocation) {\r\n                    $scope.btnNextClick('sec-Location', '', 'true')\r\n                }\r\n                if (!$scope.disableNextTelevision) {\r\n                    $scope.btnNextClick('sec-Television', '', 'true')\r\n                }\r\n                if (!$scope.disableNextConsole) {\r\n                    $scope.btnNextClick('sec-Console', '', 'true')\r\n                }\r\n                if (!$scope.disableNextPoolPump) {\r\n                    $scope.btnNextClick('sec-PoolPump', '', 'true')\r\n                }\r\n                if (!$scope.disableNextFridge) {\r\n                    $scope.btnNextClick('sec-Fridge', '', 'true')\r\n                }\r\n                if (!$scope.disableNextAirconditionerType) {\r\n                    $scope.btnNextClick('sec-AirconditionerType', '', 'true')\r\n                }\r\n                if (!$scope.disableNextDaysOfWeek) {\r\n                    $scope.btnNextClick('sec-DaysOfWeek', '', 'true')\r\n                }\r\n                if (!$scope.disableNextAirconditionerUsage) {\r\n                    $scope.btnNextClick('sec-AirconditionerUsage', '', 'true')\r\n                }\r\n                if (!$scope.disableNextLightTypes) {\r\n                    $scope.btnNextClick('sec-LightTypes', '', 'true')\r\n                }\r\n                if (!$scope.disableNextLightingUsage) {\r\n                    $scope.btnNextClick('sec-LightingUsage', '', 'true')\r\n                }\r\n                if (!$scope.disableNextFreezer) {\r\n                    $scope.btnNextClick('sec-Freezer', '', 'true')\r\n                }\r\n                if (!$scope.disableNextLightSlider) {\r\n                    $scope.btnNextClick('sec-LightSlider', '', 'true')\r\n                }\r\n                if (!$scope.disableNextHeaterType) {\r\n                    $scope.btnNextClick('sec-HeaterType', '', 'true')\r\n                }\r\n                if (!$scope.disableNextHeaterUsage) {\r\n                    $scope.btnNextClick('sec-HeaterUsage', '', 'true')\r\n                }\r\n                if (!$scope.disableNextWashingmachineType) {\r\n                    $scope.btnNextClick('sec-WashingmachineType', '', 'true')\r\n                }\r\n            }\r\n\r\n            $scope.btnNextClick = function (id, scroll, addSteps) {\r\n                var self = $('#' + id)\r\n                var container = $(self)\r\n                var nextdiv = container\r\n                    .nextAll('.section-container, :has(.section-container)')\r\n                    .first()\r\n                    .addClass('fadeIn')\r\n                if (nextdiv.length === 0) {\r\n                    nextdiv = $(document).find('.section-container:first').addClass('fadeIn')\r\n                }\r\n                $(nextdiv).removeClass('disableControl')\r\n                $(nextdiv).find('input,.tile-button').removeAttr('disabled')\r\n\r\n                var stepId = $(self).find('.tcwNextBtn').attr('step')\r\n\r\n                if (stepId) {\r\n                    if (addSteps) {\r\n                        $('#step-' + stepId).addClass('tcwCurrentStep')\r\n                    } else {\r\n                        $('#step-' + Number(stepId - 1)).addClass('tcwCurrentStep')\r\n                    }\r\n                    questionService.QuestionStepNumber = stepId - 1\r\n                }\r\n                if (scroll) {\r\n                    $('html, body').animate({ scrollTop: nextdiv.offset().top - 45 }, 1000)\r\n                }\r\n                if (questionService.ApplianceName) {\r\n                    //QuestionService.trackEnergyToolsAppliances();\r\n                } else {\r\n                    if (!$scope.modifyQuestion) {\r\n                        questionService.trackEnergyTools()\r\n                    }\r\n                }\r\n            }\r\n\r\n            const dialPalette = [\r\n                '#CCDDFF',\r\n                '#B2C8F4',\r\n                '#99B4EA',\r\n                '#82A1DF',\r\n                '#6C8ED4',\r\n                '#5277C0',\r\n                '#3B61AC',\r\n                '#3B61AC',\r\n                '#284D98',\r\n                '#183C84',\r\n                '#0B2D70',\r\n                '#073667',\r\n                '#063A62',\r\n                '#043F5E',\r\n                '#024359',\r\n                '#02526C',\r\n                '#02607F',\r\n                '#036F92',\r\n                '#037DA6',\r\n                '#048CB9',\r\n                '#049ACC',\r\n                '#36B3DD',\r\n                '#71CFEE',\r\n                '#B3EBFF'\r\n            ]\r\n\r\n            const tvColor = '#183C84'\r\n            const consoleColor = '#284D98';\r\n\r\n            $scope.AverageSliderParams = {\r\n                labels: '',\r\n                colors: ['#5A1F8B', '#2D329A', '#90107E', '#BF0472', '#E03E77', '#E7587A', '#F07A7E'],\r\n                title: ''\r\n            }\r\n            $scope.HomeTypeParams = { labels: ['House', 'Unit', 'Townhouse', 'Apartment'], colors: '', title: '' }\r\n            $scope.HomeSizeParams = { labels: ['Bedrooms', 'Bathrooms'], colors: '', title: '' }\r\n            $scope.HouseholdSizeParams = { labels: ['Adults', 'Children'], colors: '', title: '' }\r\n            $scope.TelevisionParams = {\r\n                labels: undefined,\r\n                colors: undefined,\r\n                monitorColor: tvColor,\r\n                wallSwitchButtonColor: tvColor,\r\n                wallSwitchPlugColor: tvColor,\r\n                wallSwitchCordColor: '#36B3DD',\r\n                title: undefined\r\n            }\r\n            $scope.ConsoleParams = {\r\n                labels: undefined,\r\n                colors: undefined,\r\n                monitorColor: consoleColor,\r\n                wallSwitchButtonColor: consoleColor,\r\n                wallSwitchPlugColor: consoleColor,\r\n                wallSwitchCordColor: '#36B3DD',\r\n                title: undefined\r\n            }\r\n            $scope.PoolPumpParams = { labels: undefined, colors: undefined, title: undefined }\r\n            $scope.FridgeParams = { labels: undefined, colors: undefined, title: undefined }\r\n            $scope.AirconditionerTypeParams = { labels: undefined, colors: undefined, title: undefined }\r\n            $scope.DaysOfWeekParams = { labels: undefined, colors: undefined, title: undefined }\r\n            $scope.AirconditionerUsageParams = {\r\n                labels: undefined,\r\n                colors: undefined,\r\n                tabColor: '#131E45',\r\n                hourSliderPalette: dialPalette,\r\n                temperaturePalette: ['#ED7F2F', '#3B61AC', '#0B2D70'],\r\n                title: undefined\r\n            }\r\n            $scope.LightTypesParams = { labels: undefined, colors: undefined, title: undefined }\r\n            $scope.LightingUsageParams = {\r\n                labels: undefined,\r\n                colors: undefined,\r\n                tabColor: '#1D1A5B',\r\n                hourSliderPalette: dialPalette,\r\n                lightingPalette: ['#0B2D70', '#048CB9', '#036F92', '#ED7F2F'],\r\n                lightingValueColor: '#036F92',\r\n                title: undefined\r\n            }\r\n            $scope.FreezerParams = { labels: undefined, colors: undefined, title: undefined }\r\n            $scope.LightSliderParams = { labels: undefined, colors: undefined, palette: ['#0B2D70', '#048CB9', '#036F92', '#ED7F2F'], lightingValueColor: '#036F92', title: undefined }\r\n            $scope.HeaterTypeParams = { labels: undefined, colors: undefined, title: undefined }\r\n            $scope.HeaterUsageParams = {\r\n                labels: undefined,\r\n                colors: undefined,\r\n                tabColor: '#037DA6',\r\n                hourSliderPalette: dialPalette,\r\n                title: undefined\r\n            }\r\n            $scope.WashingmachineTypeParams = { labels: undefined, colors: undefined, title: undefined }\r\n\r\n            function renderTCWComponent() {\r\n                clearRenderingControls()\r\n                $scope.question = questionService\r\n                $scope.disableNext()\r\n                $scope.enableComponent()\r\n                setTimeout(function () {\r\n                    const avgSlider = document.getElementById('AverageSlider')\r\n                    if (avgSlider) {\r\n                        tcw.renderElement('AverageSlider', avgSlider, {\r\n                            onChange: $scope.onUsageSliderChange,\r\n                            defaultValue: questionService.LastEnergyBill,\r\n                            scaleDomain: [0, 0.4, 0.7, 1],\r\n                            scaleRange: [0, 500, 2000, 9990],\r\n                            palette: $scope.AverageSliderParams.colors\r\n                        })\r\n                    }\r\n                    const homeType = document.getElementById('HomeType')\r\n                    if (homeType) {\r\n                        tcw.renderElement('HomeType', homeType, {\r\n                            onChange: $scope.onHouseTypeChange,\r\n                            defaultValue: questionService.HouseType,\r\n                            labels: $scope.HomeTypeParams.labels\r\n                        })\r\n                    }\r\n                    const homeSize = document.getElementById('HomeSize')\r\n                    if (homeSize) {\r\n                        tcw.renderElement('HomeSize', homeSize, {\r\n                            onChange: $scope.onHomeSizeChange,\r\n                            defaultValue: questionService.HomeSize.value,\r\n                            title: $scope.HomeSizeParams.title,\r\n                            labels: $scope.HomeSizeParams.labels\r\n                        })\r\n                    }\r\n                    const houseHoldSize = document.getElementById('HouseholdSize')\r\n                    if (houseHoldSize) {\r\n                        tcw.renderElement('HouseholdSize', houseHoldSize, {\r\n                            onChange: $scope.onHouseholdSizeChange,\r\n                            defaultValue: questionService.HouseholdSize.value,\r\n                            title: $scope.HouseholdSizeParams.title,\r\n                            labels: $scope.HouseholdSizeParams.labels\r\n                        })\r\n                    }\r\n\r\n                    const television = document.getElementById('Television')\r\n                    if (television) {\r\n                        let {\r\n                            title,\r\n                            monitorColor,\r\n                            monitorTextColor,\r\n                            offAtWallTitle,\r\n                            wallSwitchButtonColor,\r\n                            wallSwitchPlugColor,\r\n                            wallSwitchCordColor\r\n                        } = $scope.TelevisionParams\r\n\r\n                       const { colors } = $scope.TelevisionParams\r\n\r\n                       if (colors && colors.length > 0 ) {\r\n                            monitorColor = colors[0] ? colors[0] : monitorColor;\r\n                            monitorTextColor = colors[1] ? colors[1] : monitorTextColor;\r\n                            wallSwitchButtonColor = colors[2] ? colors[2] : wallSwitchButtonColor;\r\n                            wallSwitchPlugColor = colors[3] ? colors[3] : wallSwitchPlugColor;\r\n                            wallSwitchCordColor = colors[4] ? colors[4] : wallSwitchCordColor;\r\n                       }\r\n\r\n                        tcw.renderElement('Television', television, {\r\n                            onChange: $scope.onTelevisionChange,\r\n                            defaultValue: questionService.Television,\r\n                            maxValue: 10,\r\n                            title,\r\n                            offAtWallTitle,\r\n                            monitorColor,\r\n                            monitorTextColor,\r\n                            wallSwitchButtonColor,\r\n                            wallSwitchPlugColor,\r\n                            wallSwitchCordColor\r\n                        })\r\n                    }\r\n                    const console = document.getElementById('Console')\r\n                    if (console) {\r\n                        var title = undefined\r\n                        var offAtWallTitle = undefined\r\n                        var monitorColor = $scope.ConsoleParams.monitorColor\r\n                        var monitorTextColor = undefined\r\n                        var wallSwitchButtonColor = undefined\r\n                        if ($scope.ConsoleParams.title && $scope.ConsoleParams.title.length > 0) {\r\n                            if ($scope.ConsoleParams.title[0]) {\r\n                                title = $scope.ConsoleParams.title[0]\r\n                            }\r\n                            if ($scope.ConsoleParams.title[1]) {\r\n                                offAtWallTitle = $scope.ConsoleParams.title[1]\r\n                            }\r\n                        }\r\n                        if ($scope.ConsoleParams.colors && $scope.ConsoleParams.colors.length > 0) {\r\n                            if ($scope.ConsoleParams.colors[0]) {\r\n                                monitorColor = $scope.ConsoleParams.colors[0]\r\n                            }\r\n                            if ($scope.ConsoleParams.colors[1]) {\r\n                                monitorTextColor = $scope.ConsoleParams.colors[1]\r\n                            }\r\n                            if ($scope.ConsoleParams.colors[2]) {\r\n                                wallSwitchButtonColor = $scope.ConsoleParams.colors[2]\r\n                            }\r\n                        }\r\n                        tcw.renderElement('Console', console, {\r\n                            onChange: $scope.onConsoleChange,\r\n                            defaultValue: questionService.Console,\r\n                            maxValue: 10,\r\n                            title: title,\r\n                            offAtWallTitle: offAtWallTitle,\r\n                            monitorColor: monitorColor,\r\n                            monitorTextColor: monitorTextColor,\r\n                            wallSwitchButtonColor: wallSwitchButtonColor\r\n                        })\r\n                    }\r\n                    const poolPump = document.getElementById('PoolPump')\r\n                    if (poolPump) {\r\n                        tcw.renderElement('PoolPump', poolPump, {\r\n                            onChange: $scope.onPoolPumpChange,\r\n                            defaultValue: questionService.PoolPump.value,\r\n                            title: $scope.PoolPumpParams.title,\r\n                            palette: $scope.PoolPumpParams.colors\r\n                        })\r\n                    }\r\n                    const fridge = document.getElementById('Fridge')\r\n                    if (fridge) {\r\n                        var labelSmall = undefined\r\n                        var labelMedium = undefined\r\n                        var labelLarge = undefined\r\n                        if ($scope.FridgeParams.labels && $scope.FridgeParams.labels.length > 0) {\r\n                            if ($scope.FridgeParams.labels[0]) {\r\n                                labelSmall = $scope.FridgeParams.labels[0]\r\n                            }\r\n                            if ($scope.FridgeParams.labels[1]) {\r\n                                labelMedium = $scope.FridgeParams.labels[1]\r\n                            }\r\n                            if ($scope.FridgeParams.labels[2]) {\r\n                                labelLarge = $scope.FridgeParams.labels[2]\r\n                            }\r\n                        }\r\n                        tcw.renderElement('Fridges', fridge, {\r\n                            onChange: $scope.onFridgeChange,\r\n                            defaultValue: questionService.Fridge.fridges,\r\n                            color: $scope.FridgeParams.colors,\r\n                            title: $scope.FridgeParams.title,\r\n                            labelSmall: labelSmall,\r\n                            labelMedium: labelMedium,\r\n                            labelLarge: labelLarge\r\n                        })\r\n                    }\r\n                    const airconditionerType = document.getElementById('AirconditionerType')\r\n                    if (airconditionerType) {\r\n                        tcw.renderElement('AirconditionerType', airconditionerType, {\r\n                            onChange: $scope.onAirconditionerTypeChange,\r\n                            airconditionerType: questionService.AirconditionerType,\r\n                            color: $scope.AirconditionerTypeParams.colors,\r\n                            title: $scope.AirconditionerTypeParams.title\r\n                        })\r\n                    }\r\n                    const daysOfweek = document.getElementById('DaysOfWeek')\r\n                    if (daysOfweek) {\r\n                        tcw.renderElement('DaysOfWeek', daysOfweek, {\r\n                            onChange: $scope.onDaysOfWeekChange,\r\n                            defaultValue: questionService.DaysOfWeek,\r\n                            color: $scope.DaysOfWeekParams.colors,\r\n                            title: $scope.DaysOfWeekParams.title\r\n                        })\r\n                    }\r\n\r\n                    renderAirconditionerUsage()\r\n\r\n                    const lightTypes = document.getElementById('LightTypes')\r\n                    if (lightTypes) {\r\n                        tcw.renderElement('LightTypes', lightTypes, {\r\n                            onChange: $scope.onLightTypesChange,\r\n                            defaultValue: questionService.LightTypes,\r\n                            color: $scope.LightTypesParams.colors,\r\n                            title: $scope.LightTypesParams.title\r\n                        })\r\n                    }\r\n\r\n                    renderLightingUsage()\r\n\r\n                    const freezer = document.getElementById('Freezer')\r\n                    if (freezer) {\r\n                        var labelSmall = undefined\r\n                        var labelLarge = undefined\r\n                        if ($scope.FreezerParams.labels && $scope.FreezerParams.labels.length > 0) {\r\n                            if ($scope.FreezerParams.labels[0]) {\r\n                                labelSmall = $scope.FreezerParams.labels[0]\r\n                            }\r\n                            if ($scope.FreezerParams.labels[1]) {\r\n                                labelLarge = $scope.FreezerParams.labels[1]\r\n                            }\r\n                        }\r\n                        tcw.renderElement('Freezers', freezer, {\r\n                            onChange: $scope.onFreezerTypeChange,\r\n                            labelSmall: labelSmall,\r\n                            defaultValue: questionService.Freezer.freezers,\r\n                            labelLarge: labelLarge,\r\n                            color: $scope.FreezerParams.colors,\r\n                            title: $scope.FreezerParams.title\r\n                        })\r\n                    }\r\n\r\n                    const lightSlider = document.getElementById('LightSlider')\r\n                    if (lightSlider) {\r\n                        tcw.renderElement('LightSlider', lightSlider, {\r\n                            onChange: $scope.onLightSliderChange,\r\n                            defaultValue: questionService.LightSlider,\r\n                            palette: $scope.LightSliderParams.palette,\r\n                            title: $scope.LightSliderParams.title,\r\n                            lightingValueColor: $scope.LightSliderParams.lightingValueColor,\r\n                            maxValue: 20\r\n                        })\r\n                    }\r\n\r\n                    const heaterType = document.getElementById('HeaterType')\r\n                    if (heaterType) {\r\n                        tcw.renderElement('HeaterType', heaterType, {\r\n                            onChange: $scope.onHeaterTypeChange,\r\n                            heaterType: questionService.HeaterType,\r\n                            defaultValue: questionService.DefaultHeaterType,\r\n                            color: $scope.HeaterTypeParams.colors,\r\n                            title: $scope.HeaterTypeParams.title\r\n                        })\r\n                    }\r\n                    renderHeaterUsage()\r\n\r\n                    const washingMachineType = document.getElementById('WashingmachineType')\r\n                    if (washingMachineType) {\r\n                        tcw.renderElement('WashingMachineType', washingMachineType, {\r\n                            onChange: $scope.onWashingmachineTypeChange,\r\n                            washingMachineType: questionService.WashingmachineType,\r\n                            defaultValue: questionService.DefaultWashingmachineType,\r\n                            color: $scope.WashingmachineTypeParams.colors,\r\n                            title: $scope.WashingmachineTypeParams.title\r\n                        })\r\n                    }\r\n                }, 300)\r\n\r\n                function renderAirconditionerUsage() {\r\n                    const airconditionUage = document.getElementById('AirconditionerUsage')\r\n                    if (airconditionUage) {\r\n                        airconditionUage.innerHTML = ''\r\n                        var checkdefault =\r\n                            $filter('filter')(questionService.DaysOfWeek, { active: true }, true).length > 0\r\n                                ? true\r\n                                : false\r\n                        var daysOfWeekDefault = JSON.parse(JSON.stringify(questionService.DaysOfWeek))\r\n                        if (!checkdefault) {\r\n                            daysOfWeekDefault[0].active = true\r\n                        }\r\n                        var hoursTitle = undefined\r\n                        var temperatureTitle = undefined\r\n                        if (\r\n                            $scope.AirconditionerUsageParams.title &&\r\n                            $scope.AirconditionerUsageParams.title.length > 0\r\n                        ) {\r\n                            if ($scope.AirconditionerUsageParams.title[0]) {\r\n                                hoursTitle = $scope.AirconditionerUsageParams.title[0]\r\n                            }\r\n                            if ($scope.AirconditionerUsageParams.title[1]) {\r\n                                temperatureTitle = $scope.AirconditionerUsageParams.title[1]\r\n                            }\r\n                        }\r\n                        var tabColor = $scope.AirconditionerUsageParams.tabColor\r\n                        var hourSliderPalette = $scope.AirconditionerUsageParams.hourSliderPalette\r\n                        var temperaturePalette = $scope.AirconditionerUsageParams.temperaturePalette\r\n                        if (\r\n                            $scope.AirconditionerUsageParams.colors &&\r\n                            $scope.AirconditionerUsageParams.colors.length > 0\r\n                        ) {\r\n                            if ($scope.AirconditionerUsageParams.colors[0]) {\r\n                                tabColor = $scope.AirconditionerUsageParams.colors[0]\r\n                            }\r\n                            if ($scope.AirconditionerUsageParams.colors[1]) {\r\n                                hourSliderPalette = $scope.AirconditionerUsageParams.colors[1].split(',')\r\n                            }\r\n                            if ($scope.AirconditionerUsageParams.colors[2]) {\r\n                                temperaturePalette = $scope.AirconditionerUsageParams.colors[2].split(',')\r\n                            }\r\n                        }\r\n\r\n                        tcw.renderElement('AirconditionerUsage', airconditionUage, {\r\n                            onChange: $scope.onAirconditionerUsageChange,\r\n                            defaultValue: questionService.AirconditionerUsage,\r\n                            daysOfWeek: daysOfWeekDefault,\r\n                            temperaturePalette: temperaturePalette,\r\n                            hourSliderPalette: hourSliderPalette,\r\n                            tabColor: tabColor,\r\n                            minimumTemperature: 16,\r\n                            maximumTemperature: 32,\r\n                            hoursTitle: hoursTitle,\r\n                            temperatureTitle: temperatureTitle\r\n                        })\r\n                    }\r\n                }\r\n\r\n                function renderHeaterUsage() {\r\n                    const heaterUsage = document.getElementById('HeaterUsage')\r\n                    if (heaterUsage) {\r\n                        heaterUsage.innerHTML = ''\r\n\r\n                        var checkdefault =\r\n                            $filter('filter')(questionService.DaysOfWeek, { active: true }, true).length > 0\r\n                                ? true\r\n                                : false\r\n                        var daysOfWeekDefault = JSON.parse(JSON.stringify(questionService.DaysOfWeek))\r\n                        if (!checkdefault) {\r\n                            daysOfWeekDefault[0].active = true\r\n                        }\r\n                        var hoursTitle = undefined\r\n                        var heatersTitle = undefined\r\n                        if ($scope.HeaterUsageParams.title && $scope.HeaterUsageParams.title.length > 0) {\r\n                            if ($scope.HeaterUsageParams.title[0]) {\r\n                                hoursTitle = $scope.HeaterUsageParams.title[0]\r\n                            }\r\n                            if ($scope.HeaterUsageParams.title[1]) {\r\n                                heatersTitle = $scope.HeaterUsageParams.title[1]\r\n                            }\r\n                        }\r\n                        var tabColor = $scope.HeaterUsageParams.tabColor\r\n                        var hourSliderPalette = $scope.HeaterUsageParams.hourSliderPalette\r\n                        if ($scope.HeaterUsageParams.colors && $scope.HeaterUsageParams.colors.length > 0) {\r\n                            if ($scope.HeaterUsageParams.colors[0]) {\r\n                                tabColor = $scope.HeaterUsageParams.colors[0]\r\n                            }\r\n                            if ($scope.HeaterUsageParams.colors[1]) {\r\n                                hourSliderPalette = $scope.HeaterUsageParams.colors[1].split(',')\r\n                            }\r\n                            if ($scope.HeaterUsageParams.colors[2]) {\r\n                                lightingPalette = $scope.HeaterUsageParams.colors[2].split(',')\r\n                            }\r\n                        }\r\n\r\n                        tcw.renderElement('HeaterUsage', heaterUsage, {\r\n                            onChange: $scope.onHeaterUsageChange,\r\n                            daysOfWeek: daysOfWeekDefault,\r\n                            defaultValue: questionService.HeaterUsage,\r\n                            palette: $scope.HeaterUsageParams.colors,\r\n                            hoursTitle: hoursTitle,\r\n                            tabColor: tabColor,\r\n                            hourSliderPalette: hourSliderPalette\r\n                        })\r\n                    }\r\n                }\r\n\r\n                function renderLightingUsage() {\r\n                    const lightingUsage = document.getElementById('LightingUsage')\r\n                    if (lightingUsage) {\r\n                        document.getElementById('LightingUsage').innerHTML = ''\r\n                        var checkdefault =\r\n                            $filter('filter')(questionService.LightTypes, { active: true }, true).length > 0\r\n                                ? true\r\n                                : false\r\n                        if (checkdefault) {\r\n                            questionService.LightingUsage = questionService.LightTypes.reduce(function (\r\n                                currentConfig,\r\n                                light,\r\n                                index\r\n                            ) {\r\n                                currentConfig[index].active = light.active\r\n                                return currentConfig\r\n                            },\r\n                            questionService.LightingUsage)\r\n                        } else {\r\n                            $('#sec-LightingUsage').removeClass('fadeIn')\r\n                            $('#sec-LightingUsage').addClass('disableControl')\r\n                            questionService.LightingUsage = questionService.LightTypes.reduce(function (\r\n                                currentConfig,\r\n                                light,\r\n                                index\r\n                            ) {\r\n                                currentConfig[index].active = true\r\n                                currentConfig[index].numberOfLights = undefined\r\n                                currentConfig[index].hoursPerDay = undefined\r\n                                return currentConfig\r\n                            },\r\n                            questionService.LightingUsage)\r\n                        }\r\n                        var hoursTitle = undefined\r\n                        var lightsTitle = undefined\r\n                        if ($scope.LightingUsageParams.title && $scope.LightingUsageParams.title.length > 0) {\r\n                            if ($scope.LightingUsageParams.title[0]) {\r\n                                hoursTitle = $scope.LightingUsageParams.title[0]\r\n                            }\r\n                            if ($scope.LightingUsageParams.title[1]) {\r\n                                lightsTitle = $scope.LightingUsageParams.title[1]\r\n                            }\r\n                        }\r\n                        var tabColor = $scope.LightingUsageParams.tabColor\r\n                        var hourSliderPalette = $scope.LightingUsageParams.hourSliderPalette\r\n                        var lightingPalette = $scope.LightingUsageParams.lightingPalette\r\n                        if ($scope.LightingUsageParams.colors && $scope.LightingUsageParams.colors.length > 0) {\r\n                            if ($scope.LightingUsageParams.colors[0]) {\r\n                                tabColor = $scope.LightingUsageParams.colors[0]\r\n                            }\r\n                            if ($scope.LightingUsageParams.colors[1]) {\r\n                                hourSliderPalette = $scope.LightingUsageParams.colors[1].split(',')\r\n                            }\r\n                            if ($scope.LightingUsageParams.colors[2]) {\r\n                                lightingPalette = $scope.LightingUsageParams.colors[2].split(',')\r\n                            }\r\n                        }\r\n\r\n                        tcw.renderElement('LightingUsage', lightingUsage, {\r\n                            onChange: $scope.onLightingUsageChange,\r\n                            defaultValue: questionService.LightingUsage,\r\n                            palette: $scope.LightingUsageParams.colors,\r\n                            hoursTitle: hoursTitle,\r\n                            lightsTitle: lightsTitle,\r\n                            tabColor: tabColor,\r\n                            hourSliderPalette: hourSliderPalette,\r\n                            lightingPalette: lightingPalette,\r\n                            lightingValueColor: $scope.LightingUsageParams.lightingValueColor\r\n                        })\r\n                    }\r\n                }\r\n\r\n                $scope.onUsageSliderChange = function (values) {\r\n                    $timeout(function () {\r\n                        questionService.LastEnergyBill = values\r\n                        // QuestionService.trackTools();\r\n                        $scope.disableNext()\r\n                        if (!$scope.disableNextAverageSlider) {\r\n                            $scope.btnNextClick('sec-AverageSlider')\r\n                        }\r\n                    }, 100)\r\n                }\r\n                $scope.onHouseTypeChange = function (values) {\r\n                    $timeout(function () {\r\n                        questionService.HouseType = values\r\n                        // QuestionService.trackTools();\r\n                        $scope.disableNext()\r\n                        if (!$scope.disableNextHomeType) {\r\n                            $scope.btnNextClick('sec-HomeType')\r\n                        }\r\n                    }, 100)\r\n                }\r\n                $scope.onHouseholdSizeChange = function (values) {\r\n                    $timeout(function () {\r\n                        questionService.HouseholdSize = values\r\n                        //QuestionService.trackTools();\r\n                        $scope.disableNext()\r\n                        if (!$scope.disableNextHouseholdSize) {\r\n                            $scope.btnNextClick('sec-HouseholdSize')\r\n                        }\r\n                    }, 100)\r\n                }\r\n                $scope.onHomeSizeChange = function (values) {\r\n                    $timeout(function () {\r\n                        questionService.HomeSize = values\r\n                        // QuestionService.trackTools();\r\n                        $scope.disableNext()\r\n                        if (!$scope.disableNextHomeSize) {\r\n                            $scope.btnNextClick('sec-HomeSize')\r\n                        }\r\n                    }, 100)\r\n                }\r\n                $scope.onSuburbChange = function () {\r\n                    //QuestionService.trackTools();\r\n                    $scope.disableNext()\r\n                    if (!$scope.disableNextLocation) {\r\n                        $scope.btnNextClick('sec-Location')\r\n                    }\r\n                }\r\n                $scope.onTelevisionChange = function (values) {\r\n                    $timeout(function () {\r\n                        questionService.Television = values\r\n                        questionService.trackEnergyToolsAppliances('Television')\r\n                        $scope.disableNext()\r\n                        if (!$scope.disableNextTelevision) {\r\n                            $scope.btnNextClick('sec-Television')\r\n                        }\r\n                        questionService.calculateBill('Television')\r\n                    }, 100)\r\n                }\r\n                $scope.onConsoleChange = function (values) {\r\n                    $timeout(function () {\r\n                        questionService.Console = values\r\n                        questionService.trackEnergyToolsAppliances('Console')\r\n                        $scope.disableNext()\r\n                        if (!$scope.disableNextConsole) {\r\n                            $scope.btnNextClick('sec-Console')\r\n                        }\r\n                        questionService.calculateBill('Console')\r\n                    }, 100)\r\n                }\r\n\r\n                $scope.onPoolPumpChange = function (values) {\r\n                    $timeout(function () {\r\n                        questionService.PoolPump = values\r\n                        questionService.trackEnergyToolsAppliances('PoolPump')\r\n                        $scope.disableNext()\r\n                        if (!$scope.disableNextPoolPump) {\r\n                            $scope.btnNextClick('sec-PoolPump')\r\n                        }\r\n                        questionService.calculateBill('PoolPump')\r\n                    }, 100)\r\n                }\r\n                $scope.onFridgeChange = function (values) {\r\n                    $timeout(function () {\r\n                        questionService.Fridge = values\r\n                        questionService.trackEnergyToolsAppliances('Fridge')\r\n                        $scope.disableNext()\r\n                        if (!$scope.disableNextFridge) {\r\n                            $scope.btnNextClick('sec-Fridge')\r\n                        }\r\n                        questionService.calculateBill('Fridge')\r\n                    }, 100)\r\n                }\r\n                $scope.onAirconditionerTypeChange = function (values) {\r\n                    $timeout(function () {\r\n                        questionService.AirconditionerType = values.airconditionerType\r\n                        questionService.trackEnergyToolsAppliances('AirconditionerType')\r\n                        $scope.disableNext()\r\n                        if (!$scope.disableNextAirconditionerType) {\r\n                            $scope.btnNextClick('sec-AirconditionerType')\r\n                        }\r\n                        questionService.calculateBill('AirconditionerType')\r\n                    }, 100)\r\n                }\r\n\r\n                $scope.onDaysOfWeekChange = function (values) {\r\n                    $timeout(function () {\r\n                        questionService.DaysOfWeek = values.daysOfWeek\r\n                        questionService.trackEnergyToolsAppliances('DaysOfWeek')\r\n                        $scope.disableNext()\r\n                        if (!$scope.disableNextDaysOfWeek) {\r\n                            $scope.btnNextClick('sec-DaysOfWeek')\r\n                        }\r\n                        //QuestionService.calculateBill('DaysOfWeek');\r\n\r\n                        if (questionService.ApplianceName == 'Airconditioner') {\r\n                            renderAirconditionerUsage()\r\n                        }\r\n                        if (questionService.ApplianceName == 'Dishwasher') {\r\n                            questionService.calculateBill('Dishwasher')\r\n                        }\r\n                        if (questionService.ApplianceName == 'Heater') {\r\n                            renderHeaterUsage()\r\n                        }\r\n                    }, 100)\r\n                }\r\n                $scope.onAirconditionerUsageChange = function (values) {\r\n                    $timeout(function () {\r\n                        questionService.AirconditionerUsage = values\r\n                        questionService.trackEnergyToolsAppliances('AirconditionerUsage')\r\n                        $scope.disableNext()\r\n                        if (!$scope.disableNextAirconditionerUsage) {\r\n                            $scope.btnNextClick('sec-AirconditionerUsage')\r\n                        }\r\n                        questionService.calculateBill('AirconditionerUsage')\r\n                    }, 100)\r\n                }\r\n                $scope.onLightTypesChange = function (values) {\r\n                    $timeout(function () {\r\n                        questionService.LightTypes = values.lightings\r\n                        questionService.trackEnergyToolsAppliances('LightTypes')\r\n                        $scope.disableNext()\r\n                        if (!$scope.disableNextLightTypes) {\r\n                            $scope.btnNextClick('sec-LightTypes')\r\n                        }\r\n                        //  QuestionService.calculateBill('LightTypes');\r\n                        renderLightingUsage()\r\n                    }, 100)\r\n                }\r\n\r\n                $scope.onLightingUsageChange = function (values) {\r\n                    $timeout(function () {\r\n                        questionService.LightingUsage = values\r\n                        questionService.trackEnergyToolsAppliances('LightingUsage')\r\n                        $scope.disableNext()\r\n                        if (!$scope.disableNextLightingUsage) {\r\n                            $scope.btnNextClick('sec-LightingUsage')\r\n                        }\r\n                        questionService.calculateBill('LightingUsage')\r\n                    }, 100)\r\n                }\r\n                $scope.onFreezerTypeChange = function (values) {\r\n                    $timeout(function () {\r\n                        questionService.Freezer = values\r\n                        questionService.trackEnergyToolsAppliances('Freezer')\r\n                        $scope.disableNext()\r\n                        if (!$scope.disableNextFreezer) {\r\n                            $scope.btnNextClick('sec-Freezer')\r\n                        }\r\n                        questionService.calculateBill('Freezer')\r\n                    }, 100)\r\n                }\r\n\r\n                $scope.onLightSliderChange = function (values) {\r\n                    $timeout(function () {\r\n                        questionService.LightSlider = values\r\n                        questionService.trackEnergyToolsAppliances('LightSlider')\r\n                        $scope.disableNext()\r\n                        if (!$scope.disableNextLightSlider) {\r\n                            $scope.btnNextClick('sec-LightSlider')\r\n                        }\r\n\r\n                        if (questionService.ApplianceName == 'Heater') {\r\n                            questionService.calculateBill('Heater')\r\n                        }\r\n                        if (questionService.ApplianceName == 'Dryer') {\r\n                            questionService.calculateBill('Dryer')\r\n                        }\r\n                        if (questionService.ApplianceName == 'Washingmachine') {\r\n                            questionService.calculateBill('Washingmachine')\r\n                        }\r\n                    }, 100)\r\n                }\r\n                $scope.onWashingmachineTypeChange = function (values) {\r\n                    $timeout(function () {\r\n                        questionService.WashingmachineType = values.washingMachineType\r\n                        questionService.trackEnergyToolsAppliances('WashingmachineType')\r\n                        $scope.disableNext()\r\n                        if (!$scope.disableNextWashingmachineType) {\r\n                            $scope.btnNextClick('sec-WashingmachineType')\r\n                        }\r\n                        questionService.calculateBill('Washingmachine')\r\n                    }, 100)\r\n                }\r\n                $scope.onHeaterTypeChange = function (values) {\r\n                    $timeout(function () {\r\n                        questionService.HeaterType = values.heaterType\r\n                        questionService.trackEnergyToolsAppliances('HeaterType')\r\n                        $scope.disableNext()\r\n                        if (!$scope.disableNextHeaterType) {\r\n                            $scope.btnNextClick('sec-HeaterType')\r\n                        }\r\n                        renderHeaterUsage()\r\n                    }, 100)\r\n                }\r\n                $scope.onHeaterUsageChange = function (values) {\r\n                    $timeout(function () {\r\n                        questionService.HeaterUsage = values\r\n                        questionService.trackEnergyToolsAppliances('HeaterUsage')\r\n                        $scope.disableNext()\r\n                        if (!$scope.disableNextHeaterUsage) {\r\n                            $scope.btnNextClick('sec-HeaterUsage')\r\n                        }\r\n                        questionService.calculateBill('Heater')\r\n                    }, 100)\r\n                }\r\n                $timeout(function () {\r\n                    $scope.modifyQuestion = false\r\n                }, 1000)\r\n            }\r\n\r\n            renderTCWComponent()\r\n            $scope.$on('modifyQuestion', function () {\r\n                $scope.modifyQuestion = true\r\n                renderTCWComponent()\r\n            })\r\n            $scope.calculateBill = function (label) {\r\n                questionService.trackEnergyToolsComplete(label)\r\n                questionService.calculateBill()\r\n                $timeout(function () {\r\n                    if (questionService.SecResult) {\r\n                        questionService.ResultFirstBtnLabel = $('#firstButton').attr(\r\n                            'sy-adobe-analytics-tool-interaction'\r\n                        )\r\n                        questionService.trackEnergyToolsResult()\r\n                        $scope.resultTracked = true\r\n                    }\r\n                }, 2000)\r\n            }\r\n        }\r\n    ])\r\n    .directive('syQuestionParameters', [\r\n        function syQuestionParameters() {\r\n            return {\r\n                restrict: 'A',\r\n                scope: true,\r\n                link: function ($scope, $element, attrs) {\r\n                    if (attrs.id === 'AverageSlider') {\r\n                        if (attrs.labels) {\r\n                            $scope.AverageSliderParams.labels = attrs.labels.split(',')\r\n                        }\r\n                        if (attrs.colors) {\r\n                            $scope.AverageSliderParams.colors = attrs.colors.split(',')\r\n                        }\r\n                        if (attrs.title) {\r\n                            $scope.AverageSliderParams.title = attrs.title\r\n                        }\r\n                    }\r\n                    if (attrs.id === 'HomeType') {\r\n                        if (attrs.labels) {\r\n                            $scope.HomeTypeParams.labels = attrs.labels.split(',')\r\n                        }\r\n                        if (attrs.colors) {\r\n                            $scope.HomeTypeParams.colors = attrs.colors.split(',')\r\n                        }\r\n                        if (attrs.title) {\r\n                            $scope.HomeTypeParams.title = attrs.title\r\n                        }\r\n                    }\r\n                    if (attrs.id === 'HomeSize') {\r\n                        if (attrs.labels) {\r\n                            $scope.HomeSizeParams.labels = attrs.labels.split(',')\r\n                        }\r\n                        if (attrs.colors) {\r\n                            $scope.HomeSizeParams.colors = attrs.colors.split(',')\r\n                        }\r\n                        if (attrs.title) {\r\n                            $scope.HomeSizeParams.title = attrs.title\r\n                        }\r\n                    }\r\n                    if (attrs.id === 'HouseholdSize') {\r\n                        if (attrs.labels) {\r\n                            $scope.HouseholdSizeParams.labels = attrs.labels.split(',')\r\n                        }\r\n                        if (attrs.colors) {\r\n                            $scope.HouseholdSizeParams.colors = attrs.colors.split(',')\r\n                        }\r\n                        if (attrs.title) {\r\n                            $scope.HouseholdSizeParams.title = attrs.title\r\n                        }\r\n                    }\r\n                    if (attrs.id === 'Television') {\r\n                        if (attrs.labels) {\r\n                            $scope.TelevisionParams.labels = attrs.labels.split(',')\r\n                        }\r\n                        if (attrs.colors) {\r\n                            $scope.TelevisionParams.colors = attrs.colors.split(',')\r\n                        }\r\n                        if (attrs.title) {\r\n                            $scope.TelevisionParams.title = attrs.title.split(',')\r\n                        }\r\n                    }\r\n                    if (attrs.id === 'Console') {\r\n                        if (attrs.labels) {\r\n                            $scope.ConsoleParams.labels = attrs.labels.split(',')\r\n                        }\r\n                        if (attrs.colors) {\r\n                            $scope.ConsoleParams.colors = attrs.colors.split(',')\r\n                        }\r\n                        if (attrs.title) {\r\n                            $scope.ConsoleParams.title = attrs.title.split(',')\r\n                        }\r\n                    }\r\n                    if (attrs.id === 'PoolPump') {\r\n                        if (attrs.labels) {\r\n                            $scope.PoolPumpParams.labels = attrs.labels.split(',')\r\n                        }\r\n                        if (attrs.colors) {\r\n                            $scope.PoolPumpParams.colors = attrs.colors.split(',')\r\n                        }\r\n                        if (attrs.title) {\r\n                            $scope.PoolPumpParams.title = attrs.title\r\n                        }\r\n                    }\r\n                    if (attrs.id === 'Fridge') {\r\n                        if (attrs.labels) {\r\n                            $scope.FridgeParams.labels = attrs.labels.split(',')\r\n                        }\r\n                        if (attrs.colors) {\r\n                            $scope.FridgeParams.colors = attrs.colors.split(',')\r\n                        }\r\n                        if (attrs.title) {\r\n                            $scope.FridgeParams.title = attrs.title\r\n                        }\r\n                    }\r\n                    if (attrs.id === 'AirconditionerType') {\r\n                        if (attrs.labels) {\r\n                            $scope.AirconditionerTypeParams.labels = attrs.labels.split(',')\r\n                        }\r\n                        if (attrs.colors) {\r\n                            $scope.AirconditionerTypeParams.colors = attrs.colors.split(',')\r\n                        }\r\n                        if (attrs.title) {\r\n                            $scope.AirconditionerTypeParams.title = attrs.title\r\n                        }\r\n                    }\r\n                    if (attrs.id === 'DaysOfWeek') {\r\n                        if (attrs.labels) {\r\n                            $scope.DaysOfWeekParams.labels = attrs.labels.split(',')\r\n                        }\r\n                        if (attrs.colors) {\r\n                            $scope.DaysOfWeekParams.colors = attrs.colors.split(',')\r\n                        }\r\n                        if (attrs.title) {\r\n                            $scope.DaysOfWeekParams.title = attrs.title\r\n                        }\r\n                    }\r\n                    if (attrs.id === 'AirconditionerUsage') {\r\n                        if (attrs.labels) {\r\n                            $scope.AirconditionerUsageParams.labels = attrs.labels.split(',')\r\n                        }\r\n                        if (attrs.colors) {\r\n                            $scope.AirconditionerUsageParams.colors = attrs.colors.split(',')\r\n                        }\r\n                        if (attrs.title) {\r\n                            $scope.AirconditionerUsageParams.title = attrs.title.split(',')\r\n                        }\r\n                    }\r\n                    if (attrs.id == 'LightTypes') {\r\n                        if (attrs.labels) {\r\n                            $scope.LightTypesParams.labels = attrs.labels.split(',')\r\n                        }\r\n                        if (attrs.colors) {\r\n                            $scope.LightTypesParams.colors = attrs.colors.split(',')\r\n                        }\r\n                        if (attrs.title) {\r\n                            $scope.LightTypesParams.title = attrs.title\r\n                        }\r\n                    }\r\n                    if (attrs.id === 'LightingUsage') {\r\n                        if (attrs.labels) {\r\n                            $scope.LightingUsageParams.labels = attrs.labels.split(',')\r\n                        }\r\n                        if (attrs.colors) {\r\n                            $scope.LightingUsageParams.colors = attrs.colors.split(',')\r\n                        }\r\n                        if (attrs.title) {\r\n                            $scope.LightingUsageParams.title = attrs.title.split(',')\r\n                        }\r\n                    }\r\n                    if (attrs.id === 'Freezer') {\r\n                        if (attrs.labels) {\r\n                            $scope.FreezerParams.labels = attrs.labels.split(',')\r\n                        }\r\n                        if (attrs.colors) {\r\n                            $scope.FreezerParams.colors = attrs.colors.split(',')\r\n                        }\r\n                        if (attrs.title) {\r\n                            $scope.FreezerParams.title = attrs.title.split(',')\r\n                        }\r\n                    }\r\n                    if (attrs.id === 'LightSlider') {\r\n                        if (attrs.labels) {\r\n                            $scope.LightSliderParams.labels = attrs.labels.split(',')\r\n                        }\r\n                        if (attrs.colors) {\r\n                            $scope.LightSliderParams.colors = attrs.colors.split(',')\r\n                        }\r\n                        if (attrs.title) {\r\n                            $scope.LightSliderParams.title = attrs.title.split(',')\r\n                        }\r\n                    }\r\n                    if (attrs.id === 'HeaterType') {\r\n                        if (attrs.labels) {\r\n                            $scope.HeaterTypeParams.labels = attrs.labels.split(',')\r\n                        }\r\n                        if (attrs.colors) {\r\n                            $scope.HeaterTypeParams.colors = attrs.colors.split(',')\r\n                        }\r\n                        if (attrs.title) {\r\n                            $scope.HeaterTypeParams.title = attrs.title.split(',')\r\n                        }\r\n                    }\r\n                    if (attrs.id === 'HeaterUsage') {\r\n                        if (attrs.labels) {\r\n                            $scope.HeaterUsageParams.labels = attrs.labels.split(',')\r\n                        }\r\n                        if (attrs.colors) {\r\n                            $scope.HeaterUsageParams.colors = attrs.colors.split(',')\r\n                        }\r\n                        if (attrs.title) {\r\n                            $scope.HeaterUsageParams.title = attrs.title.split(',')\r\n                        }\r\n                    }\r\n                    if (attrs.id === 'WashingmachineType') {\r\n                        if (attrs.labels) {\r\n                            $scope.WashingmachineTypeParams.labels = attrs.labels.split(',')\r\n                        }\r\n                        if (attrs.colors) {\r\n                            $scope.WashingmachineTypeParams.colors = attrs.colors.split(',')\r\n                        }\r\n                        if (attrs.title) {\r\n                            $scope.WashingmachineTypeParams.title = attrs.title.split(',')\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        }\r\n    ])\r\n    .controller('tcwCompareController', [\r\n        '$scope',\r\n        'questionService',\r\n        'tcwServiceApi',\r\n        function tcwCompareController($scope, questionService, tcwServiceApi) {\r\n            $scope.suburbAverageLabel = ''\r\n            $scope.HouseholdsLabel = ''\r\n            $scope.HouseholdsLabel = ''\r\n            $scope.NegativeMessage = ''\r\n            $scope.YourBillLabel = ''\r\n            $scope.result = questionService\r\n            var tariff\r\n            var dailySupply\r\n            $scope.Model = {}\r\n            var calculate = function () {\r\n                //Fetching the A1 tariffs - REQ0219527\r\n                var planName = {\r\n                    PlanName: 'Home Plan (A1)'\r\n                }\r\n                tcwServiceApi.tcwService('GET', '/TCWApi/getSupplyCharge', planName).then(function (response) {\r\n                    tariff = response.data && response.data['A1 Tariff'] ? response.data['A1 Tariff'] : 28.8229\r\n                    dailySupply =\r\n                        response.data && response.data['Daily Supply'] ? response.data['Daily Supply'] : 103.3263\r\n                    var nSuburbArr = questionService.Suburb.split('-');\r\n                    var nSuburb = '';\r\n                    if (nSuburbArr.length > 1) {\r\n                        nSuburb = nSuburbArr[1].trim();\r\n                    }\r\n                    else {\r\n                        nSuburb = questionService.Suburb.trim();\r\n                    }                    \r\n                    var data = {\r\n                        bedrooms: questionService.HomeSize.Bedrooms,\r\n                        bathrooms: questionService.HomeSize.Bathrooms,\r\n                        suburb: nSuburb\r\n                    }\r\n                    tcwServiceApi.tcwService('GET', '/TCWApi/GetAverageDailyUnit', data).then(function (response) {\r\n                        questionService.SuburbAverage =\r\n                            response.data && response.data.suburbAverage ? response.data.suburbAverage : 0\r\n                        questionService.HouseholdAverage =\r\n                            response.data && response.data.householdAverage ? response.data.householdAverage : 0\r\n                        var similarHomeBill = Math.round(\r\n                            (questionService.HouseholdAverage * (tariff / 100) + dailySupply / 100) * 60\r\n                        )\r\n                        var suburbBill = Math.round(\r\n                            (questionService.SuburbAverage * (tariff / 100) + dailySupply / 100) * 60\r\n                        )\r\n                        questionService.BillDifference = Math.abs(similarHomeBill - questionService.LastEnergyBill).toFixed(2);\r\n                        if (document.getElementById('Emojis')) {\r\n                            document.getElementById('Emojis').innerHTML = ''\r\n                        }\r\n                        if (similarHomeBill > questionService.LastEnergyBill) {\r\n                            questionService.BillDifferenceStatus = 'Positive'\r\n                            tcw.renderElement('HappyEmoji', document.getElementById('Emojis'), {\r\n                                size: '100%',\r\n                                delay: 2000,\r\n                                bounceHeight: 20\r\n                            })\r\n                        } else if (similarHomeBill < questionService.LastEnergyBill) {\r\n                            questionService.BillDifferenceStatus = 'Negative'\r\n                            tcw.renderElement('SadEmoji', document.getElementById('Emojis'), {\r\n                                size: '100%',\r\n                                delay: 3000\r\n                            })\r\n                        } else {\r\n                            questionService.BillDifferenceStatus = 'Neutral'\r\n                        }\r\n                        const compareYourBill = document.getElementById('CompareYourBill')\r\n                        if (compareYourBill) {\r\n                            compareYourBill.innerHTML = ''\r\n                        }\r\n                        setTimeout(function () {\r\n                            tcw.renderElement('CompareYourBill', compareYourBill, {\r\n                                bill: questionService.LastEnergyBill,\r\n                                similar: similarHomeBill,\r\n                                average: suburbBill,\r\n                                averageLabel: $scope.suburbAverageLabel.replace('@Suburb', questionService.Suburb),\r\n                                similarLabel: $scope.HouseholdsLabel,\r\n                                billLabel: $scope.YourBillLabel,\r\n                                palette: ['#0B2D70', '#02607F', '#037DA6']\r\n                            })\r\n                        }, 200)\r\n                        tcwServiceApi.setCookieByName('TCWQuestion', questionService)\r\n                    })\r\n                })\r\n            }\r\n\r\n            $scope.init = function (model) {\r\n                $scope.Model = model\r\n                var data = tcwServiceApi.getCookieByName('TCWQuestion')\r\n                if (data) {\r\n                    if (\r\n                        data.LastEnergyBill <= 0 ||\r\n                        data.HomeSize.Bedrooms <= 0 ||\r\n                        data.HomeSize.Bathrooms <= 0 ||\r\n                        data.Suburb == ''\r\n                    ) {\r\n                        data.SecQuestion = true\r\n                        data.SecQuestionBtn = true\r\n                        data.SecResult = false\r\n                    } else {\r\n                        data.SecQuestion = false\r\n                        data.SecResult = true\r\n                    }\r\n                    questionService.setData(data)\r\n\r\n                    calculate()\r\n                }\r\n                questionService.ToolName = 'compare your bill'\r\n            }\r\n            $scope.$on('calculateBill', function () {\r\n                calculate()\r\n                questionService.SecQuestion = false\r\n                questionService.SecResult = true\r\n                tcwServiceApi.addUpdateEnergyToolProfile()\r\n            })\r\n\r\n            $scope.modifyQuestion = function () {\r\n                questionService.SecQuestion = true\r\n                questionService.SecQuestionBtn = true\r\n                questionService.SecResult = false\r\n                $scope.result = questionService\r\n                questionService.modifyQuestion()\r\n            }\r\n        }\r\n    ])\r\n    .controller('tcwBreakdownController', [\r\n        '$scope',\r\n        '$timeout',\r\n        'questionService',\r\n        'tcwServiceApi',\r\n        function tcwBreakdownController($scope, $timeout, questionService, tcwServiceApi) {\r\n            setNavigationButtonTitle()\r\n            setupHelptooltipToggle()\r\n\r\n            $scope.Model = {}\r\n            $scope.init = function (model) {\r\n                $scope.Model = model\r\n                var data = tcwServiceApi.getCookieByName('TCWQuestion')\r\n                if (data) {\r\n                    if (data.LastEnergyBill <= 0) {\r\n                        data.SecQuestion = true\r\n                        data.SecQuestionBtn = true\r\n                        data.SecResult = false\r\n                    } else {\r\n                        data.SecQuestion = false\r\n                        data.SecResult = true\r\n                    }\r\n                    questionService.setData(data)\r\n                    calculate()\r\n                }\r\n                questionService.ToolName = 'breakdown your bill'\r\n            }\r\n            $scope.result = questionService\r\n            $scope.showComponent = true\r\n            var calculate = function () {\r\n                const breakdownYourbill = document.getElementById('BreakdownYourBill')\r\n                if (breakdownYourbill) {\r\n                    breakdownYourbill.innerHTML = ''\r\n                }\r\n                var Model = $scope.Model\r\n                $scope.powerYouUse = Math.round((questionService.LastEnergyBill * Model.Percentage1) / 100)\r\n                $scope.governmentPolicy = Math.round((questionService.LastEnergyBill * Model.Percentage2) / 100)\r\n                $scope.retailer = Math.round((questionService.LastEnergyBill * Model.Percentage3) / 100)\r\n                $scope.westernPower = Math.round((questionService.LastEnergyBill * Model.Percentage4) / 100)\r\n                setTimeout(function () {\r\n                    tcw.renderElement('BreakDownYourBill', breakdownYourbill, {\r\n                        bill: questionService.LastEnergyBill,\r\n                        segments: [\r\n                            Number(Model.Percentage1),\r\n                            Number(Model.Percentage2),\r\n                            Number(Model.Percentage3),\r\n                            Number(Model.Percentage4)\r\n                        ],\r\n                        //  Segments: [45, 5, 5, 45],\r\n                        palette: [Model.Color1Hex, Model.Color2Hex, Model.Color3Hex, Model.Color4Hex],\r\n                        onComplete: $scope.onBreakdownChange,\r\n                        titles: [\r\n                            Model.Percentage1 + '% ' + Model.Title1,\r\n                            Model.Percentage2 + '% ' + Model.Title2,\r\n                            Model.Percentage3 + '% ' + Model.Title3,\r\n                            Model.Percentage4 + '% ' + Model.Title4\r\n                        ],\r\n                        copy: [Model.Description1, Model.Description2, Model.Description3, Model.Description4]\r\n                    })\r\n                }, 200)\r\n                $scope.onBreakdownChange = function () {\r\n                    $timeout(function () {\r\n                        $scope.showComponent = false\r\n                    }, 100)\r\n                }\r\n\r\n                tcwServiceApi.setCookieByName('TCWQuestion', questionService)\r\n            }\r\n            $scope.$on('calculateBill', function () {\r\n                calculate()\r\n                questionService.SecQuestion = false\r\n                questionService.SecResult = true\r\n                tcwServiceApi.addUpdateEnergyToolProfile()\r\n            })\r\n        }\r\n    ])\r\n    .controller('tcwSolar', [\r\n        '$scope',\r\n        '$timeout',\r\n        'questionService',\r\n        'tcwServiceApi',\r\n        '$filter',\r\n        '$location',\r\n        '$http',\r\n        function tcwSolar($scope, $timeout, questionService, tcwServiceApi, $filter, $location, $http) {\r\n            setupHelptooltipToggle()\r\n\r\n            $scope.Model = {}\r\n            $scope.result = questionService\r\n            $scope.solarHouseholdData = {}\r\n            $scope.systemSizeValues = []\r\n            $scope.LGSystemSizeValues = []\r\n            $scope.batterySavings = 0\r\n            $scope.solarSavings = 0\r\n            $scope.totalSavings = 0\r\n            $scope.selectedHouseholdDataLG = []\r\n            $scope.selectedHouseholdDataSolar = []\r\n            this.resultEmail = ''\r\n            $scope.totalCost = ''\r\n            var self = this\r\n            $scope.init = function (model) {\r\n                $scope.Model = model\r\n                var data = {\r\n                    systemType: ''\r\n                }\r\n                tcwServiceApi.tcwService('GET', '/TCWApi/getSolarHouseholdData', data).then(function (response) {\r\n                    $scope.solarHouseholdData = response.data\r\n                    angular.forEach($scope.solarHouseholdData, function (obj, key) {\r\n                        if (obj.SystemSize > 0 && obj.SystemType == 'Solar') {\r\n                            $scope.systemSizeValues.push(Number(obj.SystemSize))\r\n                        } else if (obj.SystemType == 'LG') {\r\n                            $scope.LGSystemSizeValues.push(Number(obj.SystemSize))\r\n                        }\r\n                    })\r\n                    var data = tcwServiceApi.getCookieByName('TCWQuestion')\r\n                    if (data) {\r\n                        if (data.HouseholdSize.Adults <= 0 && data.HouseholdSize.Children <= 0) {\r\n                            data.SecQuestion = true\r\n                            data.SecQuestionBtn = true\r\n                            data.SecResult = false\r\n                        } else {\r\n                            data.SecQuestion = false\r\n                            data.SecResult = true\r\n                        }\r\n                        questionService.setData(data)\r\n                        calculate()\r\n                    }\r\n                    questionService.ToolName = 'save with solar'\r\n                })\r\n            }\r\n\r\n            $scope.showComponent = true\r\n            var calculate = function () {\r\n                var defaultSolarSize = 1.5\r\n                var noOfPoeple = questionService.HouseholdSize.Adults + questionService.HouseholdSize.Children\r\n                if (noOfPoeple >= 1 && noOfPoeple <= 2) {\r\n                    defaultSolarSize = 1.5\r\n                } else if (noOfPoeple >= 3 && noOfPoeple <= 4) {\r\n                    defaultSolarSize = 3\r\n                } else if (noOfPoeple >= 5) {\r\n                    defaultSolarSize = 5\r\n                }\r\n\r\n                $scope.solarCalculate = function (inputs) {\r\n                    var solarSize = inputs.solarSize\r\n                    var batterySize = inputs.batterySize\r\n                    var solarMin = 0,\r\n                        solarMax = 0,\r\n                        batteryMin = 0,\r\n                        batteryMax = 0\r\n                    var payback = ''\r\n                    var batterySavings = 0\r\n                    var solarSavings = 0\r\n                    var selectedHouseholdDataLG = []\r\n                    if (batterySize > 0) {\r\n                        if (solarSize < 5) {\r\n                            solarSize = 5\r\n                        }\r\n                        selectedHouseholdDataLG = $filter('filter')(\r\n                            $scope.solarHouseholdData,\r\n                            {\r\n                                SystemSize: batterySize.toString(),\r\n                                SystemType: 'LG'\r\n                            },\r\n                            true\r\n                        )[0]\r\n                        if (selectedHouseholdDataLG) {\r\n                            batteryMin = parseInt(\r\n                                selectedHouseholdDataLG.EstimatedPriceRange.split('-')[0]\r\n                                    .replace('$', '')\r\n                                    .replace(',', '')\r\n                            )\r\n                            batteryMax = parseInt(\r\n                                selectedHouseholdDataLG.EstimatedPriceRange.split('-')[1]\r\n                                    .replace('$', '')\r\n                                    .replace(',', '')\r\n                            )\r\n                            batterySavings = parseInt(\r\n                                selectedHouseholdDataLG.SavingsPerYear.replace('$', '').replace(',', '')\r\n                            )\r\n                        }\r\n                    } else {\r\n                        batterySavings = 0\r\n                        selectedHouseholdDataLG = []\r\n                    }\r\n                    var selectedHouseholdDataSolar = $filter('filter')(\r\n                        $scope.solarHouseholdData,\r\n                        {\r\n                            SystemSize: solarSize.toString(),\r\n                            SystemType: 'Solar'\r\n                        },\r\n                        true\r\n                    )[0]\r\n                    if (selectedHouseholdDataSolar) {\r\n                        solarMin = parseInt(\r\n                            selectedHouseholdDataSolar.EstimatedPriceRange.split('-')[0]\r\n                                .replace('$', '')\r\n                                .replace(',', '')\r\n                        )\r\n                        solarMax = parseInt(\r\n                            selectedHouseholdDataSolar.EstimatedPriceRange.split('-')[1]\r\n                                .replace('$', '')\r\n                                .replace(',', '')\r\n                        )\r\n                        payback =\r\n                            solarSize >= 5 && batterySize > 0\r\n                                ? selectedHouseholdDataSolar.LGPayback\r\n                                : selectedHouseholdDataSolar.Payback\r\n                        solarSavings = parseInt(\r\n                            selectedHouseholdDataSolar.SavingsPerYear.replace('$', '').replace(',', '')\r\n                        )\r\n                    }\r\n                    setTimeout(function () {\r\n                        $scope.$apply(function () {\r\n                            $scope.batterySavings = batterySavings\r\n                            $scope.solarSavings = solarSavings\r\n                            $scope.totalSavings = batterySavings + solarSavings\r\n                            $scope.totalCost =\r\n                                $filter('currency')(solarMin + batteryMin, '$', 0) +\r\n                                ' - ' +\r\n                                $filter('currency')(solarMax + batteryMax, '$', 0)\r\n                            $scope.selectedHouseholdDataLG = selectedHouseholdDataLG\r\n                            $scope.selectedHouseholdDataSolar = selectedHouseholdDataSolar\r\n                        })\r\n                    }, 100)\r\n\r\n                    return {\r\n                        totalMin: $filter('currency')(solarMin + batteryMin, '', 0),\r\n                        totalMax: $filter('currency')(solarMax + batteryMax, '', 0),\r\n                        solarMin: $filter('currency')(solarMin, '', 0),\r\n                        solarMax: $filter('currency')(solarMax, '', 0),\r\n                        batteryMin: $filter('currency')(batteryMin, '', 0),\r\n                        batteryMax: $filter('currency')(batteryMax, '', 0),\r\n                        payback: payback\r\n                    }\r\n                }\r\n                setTimeout(function () {\r\n                    if (document.getElementById('SolarBattery')) {\r\n                        document.getElementById('SolarBattery').innerHTML = ''\r\n                        tcw.renderElement('SolarBattery', document.getElementById('SolarBattery'), {\r\n                            calculateStats: $scope.solarCalculate,\r\n                            onChange: $scope.onSolarChange,\r\n                            solarSizes: $scope.systemSizeValues,\r\n                            solarSize: defaultSolarSize\r\n                        })\r\n                    }\r\n                }, 200)\r\n\r\n                $scope.onSolarChange = function (value) {\r\n                    $timeout(function () {\r\n                        questionService.ResultFirstBtnLabel = value.change.action + ' ' + value.change.type\r\n                        questionService.trackEnergyToolsResult('interaction')\r\n                    }, 100)\r\n                }\r\n\r\n                tcwServiceApi.setCookieByName('TCWQuestion', questionService)\r\n            }\r\n            $scope.$on('calculateBill', function () {\r\n                calculate()\r\n                questionService.SecQuestion = false\r\n                questionService.SecResult = true\r\n                tcwServiceApi.addUpdateEnergyToolProfile()\r\n            })\r\n\r\n            $scope.sendingEmail = false\r\n            $scope.sendResultEmail = function () {\r\n                if (self.resultEmail) {\r\n                    $scope.data = {\r\n                        EmailAddress: self.resultEmail,\r\n                        connectionAddress: questionService.Suburb,\r\n                        SavingsPerYear: $scope.solarSavings,\r\n                        KWSystem: $scope.selectedHouseholdDataSolar.SystemSize,\r\n                        PanelsNo: $scope.selectedHouseholdDataSolar.NoOfPanels,\r\n                        RoofSpace: $scope.selectedHouseholdDataSolar.RoofSpace,\r\n                        KWHSystemBattery: $scope.selectedHouseholdDataLG\r\n                            ? $scope.selectedHouseholdDataLG.SystemSize\r\n                            : '',\r\n                        BatteryEstimatedPriceRange: $scope.selectedHouseholdDataLG\r\n                            ? $scope.selectedHouseholdDataLG.EstimatedPriceRange\r\n                            : '',\r\n                        BatterySavingsPerYear: $scope.selectedHouseholdDataLG\r\n                            ? $scope.selectedHouseholdDataLG.SavingsPerYear\r\n                            : '',\r\n                        AirConHours: $scope.selectedHouseholdDataLG ? $scope.selectedHouseholdDataLG.AirConHours : '',\r\n                        totalCost: $scope.totalCost,\r\n                        totalSavings: $filter('currency')($scope.totalSavings, '$', 0),\r\n                        EstimatedPriceRange: $scope.selectedHouseholdDataSolar.EstimatedPriceRange\r\n                    }\r\n\r\n                    $scope.actionURL = '/SolarBatteryCalculator/sendResultEmail'\r\n\r\n                    var config = {\r\n                        headers: {\r\n                            'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'\r\n                        }\r\n                    }\r\n\r\n                    var params = $scope.data\r\n                    params.siteUrl = $location.protocol() + '://' + $location.host()\r\n\r\n                    Object.keys(params).forEach(function (key) {\r\n                        if (params[key] == '' || params[key] == undefined) {\r\n                            delete params[key]\r\n                        }\r\n                    })\r\n\r\n                    var params = Object.keys(params)\r\n                        .map(function (k) {\r\n                            return encodeURIComponent(k) + '=' + encodeURIComponent(params[k])\r\n                        })\r\n                        .join('&')\r\n\r\n                    $scope.sendingEmail = true\r\n                    $scope.emailSent = false\r\n                    $http.post($scope.actionURL, params, config).then(\r\n                        function () {\r\n                            $scope.sendingEmail = false\r\n                            $scope.emailSent = true\r\n                        },\r\n                        function () {\r\n                            $scope.sendingEmail = false\r\n                        }\r\n                    )\r\n                }\r\n            }\r\n\r\n            $scope.modifyQuestion = function () {\r\n                questionService.SecQuestion = true\r\n                questionService.SecQuestionBtn = true\r\n                questionService.SecResult = false\r\n                $scope.result = questionService\r\n                questionService.modifyQuestion()\r\n            }\r\n        }\r\n    ])\r\n    .controller('tcwAppliance', [\r\n        '$scope',\r\n        'questionService',\r\n        'tcwServiceApi',\r\n        '$filter',\r\n        'tcwApplianceText',\r\n        function tcwAppliance($scope, questionService, tcwServiceApi, $filter, tcwApplianceText) {\r\n            handleStickyWrapper()\r\n\r\n            $scope.Model = {}\r\n            $scope.result = questionService\r\n            $scope.applianceData = []\r\n            $scope.resultBill = 0\r\n            $scope.HeaderText = ''\r\n            $scope.SubHeaderText = ''\r\n            questionService.SecResult = false\r\n            $scope.init = function (model) {\r\n                $scope.Model = model\r\n                var data = {\r\n                    applianceName: questionService.ApplianceName\r\n                }\r\n                tcwServiceApi.tcwService('GET', '/TCWApi/getApplianceData', data).then(function (response) {\r\n                    $scope.applianceData = response.data\r\n                    var data = tcwServiceApi.getCookieByName('TCWQuestion')\r\n                    if (data) {\r\n                        var valueAlreadyexists = checkValues(data)\r\n                        data.SecQuestion = true\r\n                        if (valueAlreadyexists) {\r\n                            data.SecQuestionBtn = false\r\n                            data.SecResult = true\r\n                        } else {\r\n                            data.SecQuestionBtn = true\r\n                            data.SecResult = false\r\n                        }\r\n                        questionService.setData(data)\r\n                        calculate()\r\n                    } else {\r\n                        questionService.SecQuestionBtn = true\r\n                        questionService.SecResult = false\r\n                    }\r\n                    questionService.trackEnergyToolsAppliances(tcwApplianceText.ListHeadertext, 'start')\r\n                    questionService.ToolName = 'reduce your bill'\r\n                })\r\n            }\r\n\r\n            var checkValues = function (data) {\r\n                if (questionService.ApplianceName === 'TV') {\r\n                    if (data.Television.televisions > 0 && data.TVAmount > 0) {\r\n                        return true\r\n                    }\r\n                } else if (questionService.ApplianceName === 'Games console') {\r\n                    if (data.Console.consoles > 0 && data.ConsoleAmount > 0) {\r\n                        return true\r\n                    }\r\n                } else if (questionService.ApplianceName === 'Poolpump') {\r\n                    if (data.PoolPump.value > 0 && data.PoolPumpAmount > 0) {\r\n                        return true\r\n                    }\r\n                } else if (questionService.ApplianceName === 'Fridge') {\r\n                    if (\r\n                        (data.Fridge.fridges.Large > 0 ||\r\n                            data.Fridge.fridges.Medium > 0 ||\r\n                            data.Fridge.fridges.Small > 0) &&\r\n                        data.FridgeAmount > 0\r\n                    ) {\r\n                        return true\r\n                    }\r\n                } else if (questionService.ApplianceName === 'Airconditioner') {\r\n                    if (\r\n                        data.AirconditionerType &&\r\n                        $filter('filter')(data.DaysOfWeek, { active: true }, true).length > 0 &&\r\n                        data.ACAmount > 0\r\n                    ) {\r\n                        return true\r\n                    }\r\n                } else if (questionService.ApplianceName === 'Lighting') {\r\n                    if (\r\n                        $filter('filter')(data.LightTypes, { active: true }, true).length > 0 &&\r\n                        data.LightingAmount > 0\r\n                    ) {\r\n                        return true\r\n                    }\r\n                } else if (questionService.ApplianceName === 'Freezer') {\r\n                    if (\r\n                        (data.Freezer.freezers.Large > 0 || data.Freezer.freezers.Small > 0) &&\r\n                        data.FreezerAmount > 0\r\n                    ) {\r\n                        return true\r\n                    }\r\n                } else if (questionService.ApplianceName === 'Dishwasher') {\r\n                    if (\r\n                        $filter('filter')(data.DaysOfWeek, { active: true }, true).length > 0 &&\r\n                        data.DishwasherAmount > 0\r\n                    ) {\r\n                        return true\r\n                    }\r\n                } else if (questionService.ApplianceName === 'Dryer') {\r\n                    if (data.LightSlider > 0 && data.DryerAmount > 0) {\r\n                        return true\r\n                    }\r\n                } else if (questionService.ApplianceName === 'Heater') {\r\n                    if (\r\n                        data.HeaterType &&\r\n                        $filter('filter')(data.DaysOfWeek, { active: true }, true).length > 0 &&\r\n                        data.HeaterAmount > 0\r\n                    ) {\r\n                        return true\r\n                    }\r\n                } else if (questionService.ApplianceName === 'Washingmachine') {\r\n                    if (data.WashingmachineType && data.LightSlider > 0 && data.WashingmachineAmount > 0) {\r\n                        return true\r\n                    }\r\n                }\r\n\r\n                return false\r\n            }\r\n            var calculate = function () {\r\n                var HeaderText = ''\r\n                var SubHeaderText = ''\r\n                if (questionService.ApplianceName === 'TV' || questionService.ApplianceName === 'Games console') {\r\n                    var AppOn = $filter('filter')($scope.applianceData, { Type: 'On' }, true)[0]\r\n                    var AppOnCost = AppOn.CostPerBill,\r\n                        AppStandbyCost = 0.0\r\n                    var OffAtWall = false\r\n                    var noOfApp = 0\r\n                    if (questionService.ApplianceName === 'TV') {\r\n                        OffAtWall = questionService.Television.offAtWall\r\n                        noOfApp = questionService.Television.televisions\r\n                        if (noOfApp > 1) {\r\n                            HeaderText = tcwApplianceText.TelevisionHeaderText = $scope.Model.NegativeMessageText\r\n                            SubHeaderText = tcwApplianceText.TelevisionSubHeaderText =\r\n                                $scope.Model.NegativeMessageSubText\r\n                        } else if (noOfApp === 1) {\r\n                            HeaderText = tcwApplianceText.TelevisionHeaderText = $scope.Model.PositiveMessageText\r\n                            SubHeaderText = tcwApplianceText.TelevisionSubHeaderText =\r\n                                $scope.Model.PositiveMessageSubText\r\n                        } else {\r\n                            HeaderText = tcwApplianceText.TelevisionHeaderText = $scope.Model.Message3Text\r\n                            SubHeaderText = tcwApplianceText.TelevisionSubHeaderText = $scope.Model.Message3SubText\r\n                        }\r\n                    } else if (questionService.ApplianceName === 'Games console') {\r\n                        OffAtWall = questionService.Console.offAtWall\r\n                        noOfApp = questionService.Console.consoles\r\n                        if (!OffAtWall) {\r\n                            HeaderText = tcwApplianceText.ConsoleHeaderText = $scope.Model.NegativeMessageText\r\n                            SubHeaderText = tcwApplianceText.ConsoleSubHeaderText = $scope.Model.NegativeMessageSubText\r\n                        } else {\r\n                            HeaderText = tcwApplianceText.ConsoleHeaderText = $scope.Model.PositiveMessageText\r\n                            SubHeaderText = tcwApplianceText.ConsoleSubHeaderText = $scope.Model.PositiveMessageSubText\r\n                        }\r\n                    }\r\n\r\n                    if (!OffAtWall) {\r\n                        var AppStandby = $filter('filter')($scope.applianceData, { Type: 'Standby' }, true)[0]\r\n                        AppStandbyCost = AppStandby.CostPerBill\r\n                    }\r\n                    var totalCost = Number(noOfApp) * (Number(AppOnCost) + Number(AppStandbyCost))\r\n                    $scope.resultBill = Math.round(totalCost)\r\n                    questionService.DoYouSwitchitOff = OffAtWall ? 'Yes' : 'No'\r\n                    questionService.NoOfAppliance = noOfApp\r\n                } else if (questionService.ApplianceName === 'Poolpump') {\r\n                    var PoolPumpData = $scope.applianceData[0]\r\n                    var noOfHours = (questionService.Hours = questionService.PoolPump.value)\r\n                    var totalCost =\r\n                        Number(PoolPumpData.CostPerHour) *\r\n                        Number(noOfHours) *\r\n                        Number(PoolPumpData.NoOfDaysPerWeek) *\r\n                        8.66\r\n                    $scope.resultBill = Math.round(totalCost)\r\n                    HeaderText = tcwApplianceText.PoolPumpHeaderText = $scope.Model.PositiveMessageText\r\n                    SubHeaderText = tcwApplianceText.PoolPumpSubHeaderText = $scope.Model.PositiveMessageSubText\r\n                } else if (questionService.ApplianceName === 'Fridge') {\r\n                    var LargeFridgeData = $filter('filter')($scope.applianceData, { Type: 'Large' })[0]\r\n                    var MediumFridgeData = $filter('filter')($scope.applianceData, { Type: 'Medium' })[0]\r\n                    var SmallFridgeData = $filter('filter')($scope.applianceData, { Type: 'Small' })[0]\r\n                    var noOfLargeFridge = parseInt(questionService.Fridge.fridges.Large)\r\n                    var noOfMediumFridge = parseInt(questionService.Fridge.fridges.Medium)\r\n                    var noOfSmallFridge = parseInt(questionService.Fridge.fridges.Small)\r\n                    var totalfridge = (questionService.NoOfAppliance =\r\n                        noOfLargeFridge + noOfMediumFridge + noOfSmallFridge)\r\n                    if (totalfridge > 1) {\r\n                        HeaderText = tcwApplianceText.FridgeHeaderText = $scope.Model.NegativeMessageText\r\n                        SubHeaderText = tcwApplianceText.FridgeSubHeaderText = $scope.Model.NegativeMessageSubText\r\n                    } else if (totalfridge == 1) {\r\n                        HeaderText = tcwApplianceText.FridgeHeaderText = $scope.Model.PositiveMessageText\r\n                        SubHeaderText = tcwApplianceText.FridgeSubHeaderText = $scope.Model.PositiveMessageSubText\r\n                    }\r\n                    var totalCost =\r\n                        Number(LargeFridgeData.CostPerBill) * noOfLargeFridge +\r\n                        Number(MediumFridgeData.CostPerBill) * noOfMediumFridge +\r\n                        Number(SmallFridgeData.CostPerBill) * noOfSmallFridge\r\n                    $scope.resultBill = Math.round(totalCost)\r\n                } else if (questionService.ApplianceName === 'Airconditioner') {\r\n                    var NoOfWeekDays = 0\r\n                    var NoOfWeekends = 0\r\n                    var WeekdaysCost = 0\r\n                    var WeekendCost = 0\r\n                    var totalCost = 0\r\n                    var Days = ''\r\n                    var Hours = ''\r\n                    questionService.Temperature = questionService.AirconditionerUsage.temperature\r\n                    var AirconditionerData = $filter('filter')($scope.applianceData, {\r\n                        Type: questionService.AirconditionerType,\r\n                        Temperature:\r\n                            questionService.AirconditionerUsage.temperature > 24\r\n                                ? 24\r\n                                : questionService.AirconditionerUsage.temperature\r\n                    })[0]\r\n                    if (AirconditionerData) {\r\n                        angular.forEach(questionService.DaysOfWeek, function (DaysOfWeek, index) {\r\n                            if (index >= 0 && index <= 4 && DaysOfWeek.active) {\r\n                                NoOfWeekDays = NoOfWeekDays + 1\r\n                                Days = Days ? Days + ',' + DaysOfWeek.day : DaysOfWeek.day\r\n                            } else if ((index === 5 || index === 6) && DaysOfWeek.active) {\r\n                                NoOfWeekends = NoOfWeekends + 1\r\n                                Days = Days ? Days + ',' + DaysOfWeek.day : DaysOfWeek.day\r\n                            }\r\n                        })\r\n                        questionService.NoOfDays = NoOfWeekDays + NoOfWeekends\r\n                        questionService.Days = Days\r\n                        var noOfHoursWeekDays = questionService.AirconditionerUsage.hours[0].hoursPerDay\r\n                        var noOfHoursWeekends = questionService.AirconditionerUsage.hours[1].hoursPerDay\r\n                        noOfHoursWeekDays = noOfHoursWeekDays > 24 ? 24 : noOfHoursWeekDays\r\n                        noOfHoursWeekends = noOfHoursWeekends > 24 ? 24 : noOfHoursWeekends\r\n                        if (noOfHoursWeekDays) {\r\n                            var WeekdaysCost =\r\n                                Number(AirconditionerData.CostPerHour) *\r\n                                Number(noOfHoursWeekDays) *\r\n                                Number(NoOfWeekDays) *\r\n                                8.66\r\n                            Hours = Hours ? Hours + ',' + noOfHoursWeekDays : noOfHoursWeekDays\r\n                        }\r\n                        if (noOfHoursWeekends) {\r\n                            var WeekendCost =\r\n                                Number(AirconditionerData.CostPerHour) *\r\n                                Number(noOfHoursWeekends) *\r\n                                Number(NoOfWeekends) *\r\n                                8.66\r\n                            Hours = Hours ? Hours + ',' + noOfHoursWeekends : noOfHoursWeekDays\r\n                        }\r\n                        questionService.Hours = Hours\r\n                        totalCost = WeekdaysCost + WeekendCost\r\n                    }\r\n                    if (questionService.AirconditionerUsage.temperature >= 24) {\r\n                        HeaderText = tcwApplianceText.AirconditionerHeaderText = $scope.Model.PositiveMessageText\r\n                        SubHeaderText = tcwApplianceText.AirconditionerSubHeaderText =\r\n                            $scope.Model.PositiveMessageSubText\r\n                    } else {\r\n                        HeaderText = tcwApplianceText.AirconditionerHeaderText = $scope.Model.NegativeMessageText\r\n                        SubHeaderText = tcwApplianceText.AirconditionerSubHeaderText =\r\n                            $scope.Model.NegativeMessageSubText\r\n                    }\r\n                    questionService.ApplianceType = questionService.AirconditionerType\r\n                    $scope.resultBill = Math.round(totalCost)\r\n                } else if (questionService.ApplianceName === 'Lighting') {\r\n                    var HalogenCost = 0\r\n                    var LEDCost = 0\r\n                    var FluorescentCost = 0\r\n                    var IncandescentCost = 0\r\n                    var totalCost = 0\r\n                    var activeHalogen = false\r\n                    var activeLED = false\r\n                    var activeFluorescent = false\r\n                    var activeIncandescent = false\r\n                    var ApplianceType = ''\r\n                    var Hours = ''\r\n                    var NoOfAppliances = ''\r\n                    if (\r\n                        $filter('filter')(questionService.LightTypes, { lightType: 'Halogen', active: true }).length > 0\r\n                    ) {\r\n                        var noOfHalogen = 0\r\n                        var HalogenHourPerDay = 0\r\n                        var HalogenData = $filter('filter')($scope.applianceData, { Type: 'Halogen' })[0]\r\n                        if (HalogenData) {\r\n                            activeHalogen = true\r\n                            var Halogenusage = $filter('filter')(questionService.LightingUsage, {\r\n                                lightType: 'Halogen'\r\n                            })[0]\r\n                            HalogenHourPerDay = Halogenusage.hoursPerDay ? Halogenusage.hoursPerDay : 0\r\n                            HalogenHourPerDay = HalogenHourPerDay > 24 ? 24 : HalogenHourPerDay\r\n                            noOfHalogen = Halogenusage.numberOfLights ? Halogenusage.numberOfLights : 0\r\n                            noOfHalogen = noOfHalogen > 50 ? 50 : noOfHalogen\r\n                            HalogenCost =\r\n                                Number(noOfHalogen) *\r\n                                (Number(HalogenData.CostPerHour) *\r\n                                    Number(HalogenHourPerDay) *\r\n                                    Number(HalogenData.NoOfDaysPerWeek) *\r\n                                    8.66)\r\n                            ApplianceType = ApplianceType ? ApplianceType + ',Halogen' : 'Halogen'\r\n                            Hours = Hours ? Hours + ',' + HalogenHourPerDay : HalogenHourPerDay\r\n                            NoOfAppliances = NoOfAppliances ? NoOfAppliances + ',' + noOfHalogen : noOfHalogen\r\n                        }\r\n                    }\r\n                    if ($filter('filter')(questionService.LightTypes, { lightType: 'LED', active: true }).length > 0) {\r\n                        var noOfLED = 0\r\n                        var LEDHourPerDay = 0\r\n                        var LEDData = $filter('filter')($scope.applianceData, { Type: 'LED' })[0]\r\n                        if (LEDData) {\r\n                            activeLED = true\r\n                            var LEDusage = $filter('filter')(questionService.LightingUsage, { lightType: 'LED' })[0]\r\n                            LEDHourPerDay = LEDusage.hoursPerDay ? LEDusage.hoursPerDay : 0\r\n                            LEDHourPerDay = LEDHourPerDay > 24 ? 24 : LEDHourPerDay\r\n                            noOfLED = LEDusage.numberOfLights ? LEDusage.numberOfLights : 0\r\n                            noOfLED = noOfLED > 50 ? 50 : noOfLED\r\n                            LEDCost =\r\n                                Number(noOfLED) *\r\n                                (Number(LEDData.CostPerHour) *\r\n                                    Number(LEDHourPerDay) *\r\n                                    Number(LEDData.NoOfDaysPerWeek) *\r\n                                    8.66)\r\n                            ApplianceType = ApplianceType ? ApplianceType + ',LED' : 'LED'\r\n                            Hours = Hours ? Hours + ',' + LEDHourPerDay : LEDHourPerDay\r\n                            NoOfAppliances = NoOfAppliances ? NoOfAppliances + ',' + noOfLED : noOfLED\r\n                        }\r\n                    }\r\n                    if (\r\n                        $filter('filter')(questionService.LightTypes, { lightType: 'Fluorescent', active: true })\r\n                            .length > 0\r\n                    ) {\r\n                        var noOfFluorescent = 0\r\n                        var FluorescentHourPerDay = 0\r\n                        var FluorescentData = $filter('filter')($scope.applianceData, { Type: 'Fluorescent' })[0]\r\n                        if (FluorescentData) {\r\n                            activeFluorescent = true\r\n                            var Fluorescentusage = $filter('filter')(questionService.LightingUsage, {\r\n                                lightType: 'Fluorescent'\r\n                            })[0]\r\n                            FluorescentHourPerDay = Fluorescentusage.hoursPerDay ? Fluorescentusage.hoursPerDay : 0\r\n                            FluorescentHourPerDay = FluorescentHourPerDay > 24 ? 24 : FluorescentHourPerDay\r\n                            noOfFluorescent = Fluorescentusage.numberOfLights ? Fluorescentusage.numberOfLights : 0\r\n                            noOfFluorescent = noOfFluorescent > 50 ? 50 : noOfFluorescent\r\n                            FluorescentCost =\r\n                                Number(noOfFluorescent) *\r\n                                (Number(FluorescentData.CostPerHour) *\r\n                                    Number(FluorescentHourPerDay) *\r\n                                    Number(FluorescentData.NoOfDaysPerWeek) *\r\n                                    8.66)\r\n                            ApplianceType = ApplianceType ? ApplianceType + ',Fluorescent' : 'Fluorescent'\r\n                            Hours = Hours ? Hours + ',' + FluorescentHourPerDay : FluorescentHourPerDay\r\n                            NoOfAppliances = NoOfAppliances ? NoOfAppliances + ',' + noOfFluorescent : noOfFluorescent\r\n                        }\r\n                    }\r\n                    if (\r\n                        $filter('filter')(questionService.LightTypes, { lightType: 'Incandescent', active: true })\r\n                            .length > 0\r\n                    ) {\r\n                        var noOfIncandescent = 0\r\n                        var IncandescentHourPerDay = 0\r\n                        var IncandescentData = $filter('filter')($scope.applianceData, { Type: 'Incandescent' })[0]\r\n                        if (IncandescentData) {\r\n                            activeIncandescent = true\r\n                            var Incandescentusage = $filter('filter')(questionService.LightingUsage, {\r\n                                lightType: 'Incandescent'\r\n                            })[0]\r\n                            IncandescentHourPerDay = Incandescentusage.hoursPerDay ? Incandescentusage.hoursPerDay : 0\r\n                            IncandescentHourPerDay = IncandescentHourPerDay > 24 ? 24 : IncandescentHourPerDay\r\n                            noOfIncandescent = Incandescentusage.numberOfLights ? Incandescentusage.numberOfLights : 0\r\n                            noOfIncandescent = noOfIncandescent > 50 ? 50 : noOfIncandescent\r\n                            IncandescentCost =\r\n                                Number(noOfIncandescent) *\r\n                                (Number(IncandescentData.CostPerHour) *\r\n                                    Number(IncandescentHourPerDay) *\r\n                                    Number(IncandescentData.NoOfDaysPerWeek) *\r\n                                    8.66)\r\n                            ApplianceType = ApplianceType ? ApplianceType + ',Incandescent' : 'Incandescent'\r\n                            Hours = Hours ? Hours + ',' + IncandescentHourPerDay : IncandescentHourPerDay\r\n                            NoOfAppliances = NoOfAppliances ? NoOfAppliances + ',' + noOfIncandescent : noOfIncandescent\r\n                        }\r\n                    }\r\n\r\n                    totalCost = HalogenCost + LEDCost + FluorescentCost + IncandescentCost\r\n                    questionService.ApplianceType = ApplianceType\r\n                    questionService.Hours = Hours\r\n                    questionService.NoOfAppliance = NoOfAppliances\r\n                    if (activeIncandescent) {\r\n                        HeaderText = tcwApplianceText.LightingHeaderText = $scope.Model.PositiveMessageText\r\n                        SubHeaderText = tcwApplianceText.LightingSubHeaderText = $scope.Model.PositiveMessageSubText\r\n                    } else if (activeHalogen && !activeIncandescent) {\r\n                        HeaderText = tcwApplianceText.LightingHeaderText = $scope.Model.NegativeMessageText\r\n                        SubHeaderText = tcwApplianceText.LightingSubHeaderText = $scope.Model.NegativeMessageSubText\r\n                    } else if (activeLED && !activeFluorescent) {\r\n                        HeaderText = tcwApplianceText.LightingHeaderText = $scope.Model.Message3Text\r\n                        SubHeaderText = tcwApplianceText.LightingSubHeaderText = $scope.Model.Message3SubText\r\n                    } else if (\r\n                        activeFluorescent ||\r\n                        (activeLED && activeFluorescent && !activeIncandescent && !activeHalogen)\r\n                    ) {\r\n                        HeaderText = tcwApplianceText.LightingHeaderText = $scope.Model.Message4Text\r\n                        SubHeaderText = tcwApplianceText.LightingSubHeaderText = $scope.Model.Message4SubText\r\n                    }\r\n                    $scope.resultBill = Math.round(totalCost)\r\n                } else if (questionService.ApplianceName == 'Freezer') {\r\n                    var LargeFreezerData = $filter('filter')($scope.applianceData, { Type: 'Large' })[0]\r\n                    var SmallFreezerData = $filter('filter')($scope.applianceData, { Type: 'Small' })[0]\r\n                    var noOfLargeFreezer = parseInt(questionService.Freezer.freezers.Large)\r\n                    var noOfSmallFreezer = parseInt(questionService.Freezer.freezers.Small)\r\n                    var totalFreezer = (questionService.NoOfAppliance = noOfLargeFreezer + noOfSmallFreezer)\r\n                    if (totalFreezer > 1) {\r\n                        HeaderText = tcwApplianceText.FreezerHeaderText = $scope.Model.NegativeMessageText\r\n                        SubHeaderText = tcwApplianceText.FridgeSubHeaderText = $scope.Model.NegativeMessageSubText\r\n                    } else if (totalFreezer == 1) {\r\n                        HeaderText = tcwApplianceText.FreezerHeaderText = $scope.Model.PositiveMessageText\r\n                        SubHeaderText = tcwApplianceText.FridgeSubHeaderText = $scope.Model.PositiveMessageSubText\r\n                    }\r\n                    var totalCost =\r\n                        Number(LargeFreezerData.CostPerBill) * noOfLargeFreezer +\r\n                        Number(SmallFreezerData.CostPerBill) * noOfSmallFreezer\r\n                    $scope.resultBill = Math.round(totalCost)\r\n                } else if (questionService.ApplianceName == 'Dishwasher') {\r\n                    var NoOfWeekDays = 0\r\n                    var NoOfWeekends = 0\r\n                    var Days = ''\r\n                    var DishwasherData = $scope.applianceData[0]\r\n                    angular.forEach(questionService.DaysOfWeek, function (DaysOfWeek, index) {\r\n                        if (index >= 0 && index <= 4 && DaysOfWeek.active) {\r\n                            NoOfWeekDays = NoOfWeekDays + 1\r\n                            Days = Days ? Days + ',' + DaysOfWeek.day : DaysOfWeek.day\r\n                        } else if ((index == 5 || index == 6) && DaysOfWeek.active) {\r\n                            NoOfWeekends = NoOfWeekends + 1\r\n                            Days = Days ? Days + ',' + DaysOfWeek.day : DaysOfWeek.day\r\n                        }\r\n                    })\r\n                    questionService.NoOfDays = NoOfWeekDays + NoOfWeekends\r\n                    questionService.Days = Days\r\n                    var totalCost =\r\n                        Number(DishwasherData.CostPerHour) *\r\n                        Number(DishwasherData.NoOfHrsPerDay) *\r\n                        Number(questionService.NoOfDays) *\r\n                        8.66\r\n                    $scope.resultBill = Math.round(totalCost)\r\n                    HeaderText = tcwApplianceText.DishwasherHeaderText = $scope.Model.PositiveMessageText\r\n                    SubHeaderText = tcwApplianceText.DishwasherSubHeaderText = $scope.Model.PositiveMessageSubText\r\n                } else if (questionService.ApplianceName === 'Dryer') {\r\n                    var dryerData = $scope.applianceData[0]\r\n                    var totalCost =\r\n                        Number(dryerData.CostPerHour) *\r\n                        Number(dryerData.NoOfHrsPerDay) *\r\n                        Number(questionService.LightSlider) *\r\n                        8.66\r\n                    $scope.resultBill = Math.round(totalCost)\r\n                    HeaderText = tcwApplianceText.DryerHeaderText = $scope.Model.PositiveMessageText\r\n                    SubHeaderText = tcwApplianceText.DryerSubHeaderText = $scope.Model.PositiveMessageSubText\r\n                } else if (questionService.ApplianceName === 'Heater') {\r\n                    var NoOfWeekDays = 0\r\n                    var NoOfWeekends = 0\r\n                    var WeekdaysCost = 0\r\n                    var WeekendCost = 0\r\n                    var totalCost = 0\r\n                    var Days = ''\r\n                    var Hours = ''\r\n                    questionService.Temperature = questionService.AirconditionerUsage.temperature\r\n                    var heaterData = $filter('filter')($scope.applianceData, { Type: questionService.HeaterType })[0]\r\n                    if (heaterData) {\r\n                        angular.forEach(questionService.DaysOfWeek, function (DaysOfWeek, index) {\r\n                            if (index >= 0 && index <= 4 && DaysOfWeek.active) {\r\n                                NoOfWeekDays = NoOfWeekDays + 1\r\n                                Days = Days ? Days + ',' + DaysOfWeek.day : DaysOfWeek.day\r\n                            } else if ((index == 5 || index == 6) && DaysOfWeek.active) {\r\n                                NoOfWeekends = NoOfWeekends + 1\r\n                                Days = Days ? Days + ',' + DaysOfWeek.day : DaysOfWeek.day\r\n                            }\r\n                        })\r\n                        questionService.NoOfDays = NoOfWeekDays + NoOfWeekends\r\n                        questionService.Days = Days\r\n                        var noOfHoursWeekDays = questionService.HeaterUsage.hours[0].hoursPerDay\r\n                        var noOfHoursWeekends = questionService.HeaterUsage.hours[1].hoursPerDay\r\n                        noOfHoursWeekDays = noOfHoursWeekDays > 24 ? 24 : noOfHoursWeekDays\r\n                        noOfHoursWeekends = noOfHoursWeekends > 24 ? 24 : noOfHoursWeekends\r\n                        if (noOfHoursWeekDays) {\r\n                            var WeekdaysCost =\r\n                                Number(heaterData.CostPerHour) * Number(noOfHoursWeekDays) * Number(NoOfWeekDays) * 8.66\r\n                            Hours = Hours ? Hours + ',' + noOfHoursWeekDays : noOfHoursWeekDays\r\n                        }\r\n                        if (noOfHoursWeekends) {\r\n                            var WeekendCost =\r\n                                Number(heaterData.CostPerHour) * Number(noOfHoursWeekends) * Number(NoOfWeekends) * 8.66\r\n                            Hours = Hours ? Hours + ',' + noOfHoursWeekends : noOfHoursWeekDays\r\n                        }\r\n                        questionService.Hours = Hours\r\n                        totalCost = WeekdaysCost + WeekendCost\r\n                    }\r\n                    if (questionService.NoOfDays > 3) {\r\n                        HeaderText = tcwApplianceText.HeaterHeaderText = $scope.Model.NegativeMessageText\r\n                        SubHeaderText = tcwApplianceText.HeaterSubHeaderText = $scope.Model.NegativeMessageSubText\r\n                    } else {\r\n                        HeaderText = tcwApplianceText.HeaterHeaderText = $scope.Model.PositiveMessageText\r\n                        SubHeaderText = tcwApplianceText.HeaterSubHeaderText = $scope.Model.PositiveMessageSubText\r\n                    }\r\n                    questionService.ApplianceType = questionService.HeaterType\r\n                    $scope.resultBill = Math.round(totalCost)\r\n                } else if (questionService.ApplianceName === 'Washingmachine') {\r\n                    var WashingmachineData = $filter('filter')($scope.applianceData, {\r\n                        Type: questionService.WashingmachineType\r\n                    })[0]\r\n                    var totalCost = Number(WashingmachineData.CostPerHour) * Number(questionService.LightSlider) * 8.66\r\n                    $scope.resultBill = Math.round(totalCost)\r\n                    if (questionService.LightSlider > 4) {\r\n                        HeaderText = tcwApplianceText.WashingmachineHeaderText = $scope.Model.NegativeMessageText\r\n                        SubHeaderText = tcwApplianceText.WashingmachineSubHeaderText =\r\n                            $scope.Model.NegativeMessageSubText\r\n                    } else {\r\n                        HeaderText = tcwApplianceText.WashingmachineHeaderText = $scope.Model.PositiveMessageText\r\n                        SubHeaderText = tcwApplianceText.WashingmachineSubHeaderText =\r\n                            $scope.Model.PositiveMessageSubText\r\n                    }\r\n                }\r\n\r\n                $scope.HeaderText = HeaderText\r\n                $scope.SubHeaderText = SubHeaderText\r\n                questionService.Amount = $scope.resultBill\r\n            }\r\n\r\n            var setAmountForList = function () {\r\n                if (questionService.ApplianceName == 'TV') {\r\n                    questionService.TVAmount = $scope.resultBill\r\n                } else if (questionService.ApplianceName == 'Games console') {\r\n                    questionService.ConsoleAmount = $scope.resultBill\r\n                } else if (questionService.ApplianceName == 'Poolpump') {\r\n                    questionService.PoolPumpAmount = $scope.resultBill\r\n                } else if (questionService.ApplianceName == 'Fridge') {\r\n                    questionService.FridgeAmount = $scope.resultBill\r\n                } else if (questionService.ApplianceName == 'Airconditioner') {\r\n                    questionService.ACAmount = $scope.resultBill\r\n                } else if (questionService.ApplianceName == 'Lighting') {\r\n                    questionService.LightingAmount = $scope.resultBill\r\n                } else if (questionService.ApplianceName == 'Freezer') {\r\n                    questionService.FreezerAmount = $scope.resultBill\r\n                } else if (questionService.ApplianceName == 'Dishwasher') {\r\n                    questionService.DishwasherAmount = $scope.resultBill\r\n                } else if (questionService.ApplianceName == 'Dryer') {\r\n                    questionService.DryerAmount = $scope.resultBill\r\n                } else if (questionService.ApplianceName == 'Heater') {\r\n                    questionService.HeaterAmount = $scope.resultBill\r\n                } else if (questionService.ApplianceName == 'Washingmachine') {\r\n                    questionService.WashingmachineAmount = $scope.resultBill\r\n                }\r\n            }\r\n\r\n            $scope.$on('calculateBill', function (event, args) {\r\n                calculate()\r\n                if (!args) {\r\n                    questionService.SecQuestionBtn = false\r\n                    questionService.SecQuestion = true\r\n                    questionService.SecResult = true\r\n                    setAmountForList()\r\n                    tcwServiceApi.addUpdateEnergyToolProfile()\r\n                    tcwServiceApi.setCookieByName('TCWApplianceText', tcwApplianceText)\r\n                }\r\n            })\r\n        }\r\n    ])\r\n\r\n    .controller('tcwApplianceList', [\r\n        '$scope',\r\n        'questionService',\r\n        'tcwServiceApi',\r\n        'tcwApplianceText',\r\n        function tcwApplianceList($scope, questionService, tcwServiceApi, tcwApplianceText) {\r\n            setupHelptooltipToggle()\r\n            setupApplicanceItemHover() // setup icon hover state.\r\n            $scope.init = function (headertext) {\r\n                tcwApplianceText.ListHeadertext = headertext\r\n                var data = tcwServiceApi.getCookieByName('TCWQuestion')\r\n                if (data) {\r\n                    questionService.setData(data)\r\n                }\r\n                var dataText = tcwServiceApi.getCookieByName('TCWApplianceText')\r\n                if (dataText) {\r\n                    tcwApplianceText.setData(dataText)\r\n                }\r\n                questionService.ToolName = 'reduce your bill'\r\n            }\r\n\r\n            $scope.resultList = questionService\r\n            $scope.resultText = tcwApplianceText\r\n            $scope.checkAmount = function (id) {\r\n                if (id == 'Television') {\r\n                    return $scope.resultList.TVAmount > 0\r\n                } else if (id === 'Console') {\r\n                    return $scope.resultList.ConsoleAmount > 0\r\n                } else if (id === 'PoolPump') {\r\n                    return $scope.resultList.PoolPumpAmount > 0\r\n                } else if (id === 'Fridge') {\r\n                    return $scope.resultList.FridgeAmount > 0\r\n                } else if (id === 'AC') {\r\n                    return $scope.resultList.ACAmount > 0\r\n                } else if (id === 'Lighting') {\r\n                    return $scope.resultList.LightingAmount > 0\r\n                } else if (id === 'Freezer') {\r\n                    return $scope.resultList.FreezerAmount > 0\r\n                } else if (id === 'Dishwasher') {\r\n                    return $scope.resultList.DishwasherAmount > 0\r\n                } else if (id === 'Dryer') {\r\n                    return $scope.resultList.DryerAmount > 0\r\n                } else if (id === 'Heater') {\r\n                    return $scope.resultList.HeaterAmount > 0\r\n                } else if (id === 'Washingmachine') {\r\n                    return $scope.resultList.WashingmachineAmount > 0\r\n                }\r\n            }\r\n            $scope.resultAmount = function (id) {\r\n                if (id == 'Television') {\r\n                    return $scope.resultList.TVAmount\r\n                } else if (id === 'Console') {\r\n                    return $scope.resultList.ConsoleAmount\r\n                } else if (id === 'PoolPump') {\r\n                    return $scope.resultList.PoolPumpAmount\r\n                } else if (id === 'Fridge') {\r\n                    return $scope.resultList.FridgeAmount\r\n                } else if (id === 'AC') {\r\n                    return $scope.resultList.ACAmount\r\n                } else if (id === 'Lighting') {\r\n                    return $scope.resultList.LightingAmount\r\n                } else if (id === 'Freezer') {\r\n                    return $scope.resultList.FreezerAmount\r\n                } else if (id === 'Dishwasher') {\r\n                    return $scope.resultList.DishwasherAmount\r\n                } else if (id === 'Dryer') {\r\n                    return $scope.resultList.DryerAmount\r\n                } else if (id === 'Heater') {\r\n                    return $scope.resultList.HeaterAmount\r\n                } else if (id === 'Washingmachine') {\r\n                    return $scope.resultList.WashingmachineAmount\r\n                }\r\n            }\r\n            $scope.getHeader = function (id) {\r\n                if (id == 'Television') {\r\n                    return $scope.resultText.TelevisionHeaderText\r\n                } else if (id === 'Console') {\r\n                    return $scope.resultText.ConsoleHeaderText\r\n                } else if (id === 'PoolPump') {\r\n                    return $scope.resultText.PoolPumpHeaderText\r\n                } else if (id === 'Fridge') {\r\n                    return $scope.resultText.FridgeHeaderText\r\n                } else if (id === 'AC') {\r\n                    return $scope.resultText.AirconditionerHeaderText\r\n                } else if (id === 'Lighting') {\r\n                    return $scope.resultText.LightingHeaderText\r\n                } else if (id === 'Freezer') {\r\n                    return $scope.resultText.FreezerHeaderText\r\n                } else if (id === 'Dishwasher') {\r\n                    return $scope.resultText.DishwasherHeaderText\r\n                } else if (id === 'Dryer') {\r\n                    return $scope.resultText.DryerHeaderText\r\n                } else if (id === 'Heater') {\r\n                    return $scope.resultText.HeaterHeaderText\r\n                } else if (id === 'Washingmachine') {\r\n                    return $scope.resultText.WashingmachineHeaderText\r\n                }\r\n            }\r\n            $scope.getSubHeader = function (id) {\r\n                if (id == 'Television') {\r\n                    return $scope.resultText.TelevisionSubHeaderText\r\n                } else if (id === 'Console') {\r\n                    return $scope.resultText.ConsoleSubHeaderText\r\n                } else if (id === 'PoolPump') {\r\n                    return $scope.resultText.PoolPumpSubHeaderText\r\n                } else if (id === 'Fridge') {\r\n                    return $scope.resultText.FridgeSubHeaderText\r\n                } else if (id === 'AC') {\r\n                    return $scope.resultText.AirconditionerSubHeaderText\r\n                } else if (id === 'Lighting') {\r\n                    return $scope.resultText.LightingSubHeaderText\r\n                } else if (id === 'Freezer') {\r\n                    return $scope.resultText.FreezerSubHeaderText\r\n                } else if (id === 'Dishwasher') {\r\n                    return $scope.resultText.DishwasherSubHeaderText\r\n                } else if (id === 'Dryer') {\r\n                    return $scope.resultText.DryerSubHeaderText\r\n                } else if (id === 'Heater') {\r\n                    return $scope.resultText.HeaterSubHeaderText\r\n                } else if (id === 'Washingmachine') {\r\n                    return $scope.resultText.WashingmachineSubHeaderText\r\n                }\r\n            }\r\n            $scope.$on('$routeChangeStart', function ($event, next) {\r\n                questionService.ApplianceName = next.$$route.name\r\n                questionService.SecResult = false\r\n            })\r\n        }\r\n    ])\r\n    .controller('tipsController', [\r\n        function tipsController() {\r\n            initialiseSlider()\r\n        }\r\n    ])\r\n    .directive('syTcwCompare', [\r\n        function syTcwCompare() {\r\n            return {\r\n                restrict: 'A',\r\n                scope: true,\r\n                controller: 'tcwCompareController',\r\n                controllerAs: 'tcwCompareController',\r\n                link: function ($scope, $element, attrs) {\r\n                    if (attrs.sySuburbAverageLabel) {\r\n                        $scope.suburbAverageLabel = attrs.sySuburbAverageLabel\r\n                    }\r\n                    if (attrs.syHouseholdsLabel) {\r\n                        $scope.HouseholdsLabel = attrs.syHouseholdsLabel\r\n                    }\r\n                    if (attrs.syYourBillLabel) {\r\n                        $scope.YourBillLabel = attrs.syYourBillLabel\r\n                    }\r\n                }\r\n            }\r\n        }\r\n    ])\r\n    .directive('syModuleId', [\r\n        function syModuleId() {\r\n            return {\r\n                restrict: 'A',\r\n                scope: true,\r\n                link: function ($scope, $element, attrs) {\r\n                    $scope.disableNext(attrs.syModuleId)\r\n                }\r\n            }\r\n        }\r\n    ])\r\n    .service('questionService', [\r\n        '$rootScope',\r\n        'AdobeAnalyticsService',\r\n        'AdobeToolModel',\r\n        function questionService($rootScope, AdobeAnalyticsService, AdobeToolModel) {\r\n            var self = this\r\n            this.SecQuestion = true\r\n            this.SecQuestionBtn = true\r\n            this.SecResult = false\r\n            this.QuestionStepNumber = 0\r\n            this.ResultFirstBtnLabel = ''\r\n            this.LastEnergyBill = '0'\r\n            this.HouseType = ''\r\n            this.Bedrooms = 0\r\n            this.Bathrooms = 0\r\n            this.Adults = 0\r\n            this.Children = 0\r\n            this.HouseholdSize = {\r\n                Adults: 0,\r\n                Children: 0,\r\n                value: []\r\n            }\r\n            this.HomeSize = {\r\n                Bedrooms: 0,\r\n                Bathrooms: 0,\r\n                value: []\r\n            }\r\n            this.Suburb = ''\r\n            this.HouseholdAverage = 0\r\n            this.SuburbAverage = 0\r\n            this.BillDifference = 0\r\n            this.BillDifferenceStatus = ''\r\n            this.ProfileID = ''\r\n            this.ToolName = ''\r\n            this.ApplianceName = ''\r\n            this.Television = {\r\n                offAtWall: false,\r\n                televisions: 0\r\n            }\r\n            this.Console = {\r\n                offAtWall: false,\r\n                consoles: 0\r\n            }\r\n            this.PoolPump = {\r\n                source: '',\r\n                value: 0\r\n            }\r\n            this.Fridge = {\r\n                change: { type: '', action: '' },\r\n                fridges: { Small: 0, Medium: 0, Large: 0 }\r\n            }\r\n            this.AirconditionerType = ''\r\n            this.DaysOfWeek = [\r\n                {\r\n                    day: 'Mon',\r\n                    active: false\r\n                },\r\n                {\r\n                    day: 'Tues',\r\n                    active: false\r\n                },\r\n                {\r\n                    day: 'Wed',\r\n                    active: false\r\n                },\r\n                {\r\n                    day: 'Thurs',\r\n                    active: false\r\n                },\r\n                {\r\n                    day: 'Fri',\r\n                    active: false\r\n                },\r\n                {\r\n                    day: 'Sat',\r\n                    active: false\r\n                },\r\n                {\r\n                    day: 'Sun',\r\n                    active: false\r\n                }\r\n            ]\r\n            this.AirconditionerUsage = {\r\n                hours: [\r\n                    { days: 'Weekdays', hoursPerDay: undefined },\r\n                    {\r\n                        days: 'Weekends',\r\n                        hoursPerDay: undefined\r\n                    }\r\n                ],\r\n                temperature: undefined\r\n            }\r\n            this.LightTypes = [\r\n                { lightType: 'Halogen', label: 'Halogen', active: false },\r\n                {\r\n                    lightType: 'LED',\r\n                    label: 'LED',\r\n                    active: false\r\n                },\r\n                {\r\n                    lightType: 'Fluorescent',\r\n                    label: 'Fluorescent',\r\n                    active: false\r\n                },\r\n                {\r\n                    lightType: 'Incandescent',\r\n                    label: 'Incandescent',\r\n                    active: false\r\n                }\r\n            ]\r\n            this.LightingUsage = [\r\n                {\r\n                    lightType: 'Halogen',\r\n                    label: 'Halogen',\r\n                    active: true,\r\n                    hoursPerDay: undefined,\r\n                    numberOfLights: undefined\r\n                },\r\n                {\r\n                    lightType: 'LED',\r\n                    label: 'LED',\r\n                    active: true,\r\n                    hoursPerDay: undefined,\r\n                    numberOfLights: undefined\r\n                },\r\n                {\r\n                    lightType: 'Fluorescent',\r\n                    label: 'Fluorescent',\r\n                    active: true,\r\n                    hoursPerDay: undefined,\r\n                    numberOfLights: undefined\r\n                },\r\n                {\r\n                    lightType: 'Incandescent',\r\n                    label: 'Incandescent',\r\n                    active: true,\r\n                    hoursPerDay: undefined,\r\n                    numberOfLights: undefined\r\n                }\r\n            ]\r\n            this.Freezer = {\r\n                change: { type: '', action: '' },\r\n                freezers: { Small: 0, Large: 0 }\r\n            }\r\n            this.LightSlider = 0\r\n            this.DefaultHeaterType = [\r\n                { heaterType: 'OilHeaterSmall', label: 'Small Oil Heater' },\r\n                { heaterType: 'OilHeaterLarge', label: 'Large Oil Heater' },\r\n                { heaterType: 'FanHeaterSmall', label: 'Small Fan Heater' },\r\n                { heaterType: 'FanHeaterLarge', label: 'Large Fan Heater' }\r\n            ]\r\n            this.HeaterType = ''\r\n\r\n            this.HeaterUsage = {\r\n                hours: [\r\n                    { days: 'Weekdays', hoursPerDay: undefined },\r\n                    {\r\n                        days: 'Weekends',\r\n                        hoursPerDay: undefined\r\n                    }\r\n                ]\r\n            }\r\n\r\n            this.DefaultWashingmachineType = [\r\n                { washingMachineType: 'TopLoader', label: 'Top Loader' },\r\n                { washingMachineType: 'FrontLoader', label: 'Front Loader' }\r\n            ]\r\n\r\n            this.WashingmachineType = ''\r\n\r\n            this.TVAmount = 0\r\n            this.ConsoleAmount = 0\r\n            this.PoolPumpAmount = 0\r\n            this.FridgeAmount = 0\r\n            this.ACAmount = 0\r\n            this.LightingAmount = 0\r\n            this.FreezerAmount = 0\r\n            this.DishwasherAmount = 0\r\n            this.DryerAmount = 0\r\n            this.HeaterAmount = 0\r\n            this.WashingmachineAmount = 0\r\n            this.Appliance = ''\r\n            this.Hours = ''\r\n            this.Days = ''\r\n            this.Temperature = '0'\r\n            this.Amount = '0'\r\n            this.DoYouSwitchitOff = ''\r\n            this.Options = ''\r\n            this.Postcode = ''\r\n            this.NoOfAppliance = 0\r\n            this.NoOfDays = 0\r\n            this.ApplianceType = 0\r\n\r\n            this.setData = function (data) {\r\n                self.SecQuestion = data.SecQuestion\r\n                self.SecQuestionBtn = data.SecQuestionBtn\r\n                self.SecResult = data.SecResult\r\n                self.LastEnergyBill = data.LastEnergyBill\r\n                self.HouseType = data.HouseType\r\n                self.HouseholdSize = data.HouseholdSize\r\n                self.HomeSize = data.HomeSize\r\n                self.Suburb = data.Suburb\r\n                self.HouseholdAverage = data.HouseholdAverage\r\n                self.SuburbAverage = data.SuburbAverage\r\n                self.BillDifference = data.BillDifference\r\n                self.BillDifferenceStatus = data.BillDifferenceStatus\r\n                self.ProfileID = data.ProfileID\r\n                self.ToolName = data.ToolName\r\n                self.Television = data.Television\r\n                self.Console = data.Console\r\n                self.PoolPump = data.PoolPump\r\n                self.Fridge = data.Fridge\r\n                self.AirconditionerType = data.AirconditionerType\r\n                self.DaysOfWeek = data.DaysOfWeek\r\n                self.AirconditionerUsage = data.AirconditionerUsage\r\n                self.LightTypes = data.LightTypes\r\n                self.LightingUsage = data.LightingUsage\r\n                self.Freezer = data.Freezer\r\n                self.HeaterType = data.HeaterType\r\n                self.HeaterUsage = data.HeaterUsage\r\n                self.WashingmachineType = data.WashingmachineType\r\n                self.LightSlider = data.LightSlider\r\n                self.TVAmount = data.TVAmount\r\n                self.ConsoleAmount = data.ConsoleAmount\r\n                self.PoolPumpAmount = data.PoolPumpAmount\r\n                self.FridgeAmount = data.FridgeAmount\r\n                self.ACAmount = data.ACAmount\r\n                self.LightingAmount = data.LightingAmount\r\n                self.FreezerAmount = data.FreezerAmount\r\n                self.DishwasherAmount = data.DishwasherAmount\r\n                self.DryerAmount = data.DryerAmount\r\n                self.WashingmachineAmount = data.WashingmachineAmount\r\n                self.HeaterAmount = data.HeaterAmount\r\n                self.QuestionStepNumber = data.QuestionStepNumber\r\n            }\r\n            this.modifyQuestion = function () {\r\n                $rootScope.$broadcast('modifyQuestion')\r\n            }\r\n            this.calculateBill = function (arg) {\r\n                $rootScope.$broadcast('calculateBill', arg)\r\n            }\r\n\r\n            var trackedSteps = []\r\n            var trackedAppSteps = []\r\n            var isToolStart = false\r\n            this.trackEnergyTools = function () {\r\n                if (self.SecResult) {\r\n                    return\r\n                }\r\n                var stepNumber = self.QuestionStepNumber\r\n                if (trackedSteps.indexOf(stepNumber) >= 0) {\r\n                    return\r\n                }\r\n                var stage = 'incomplete'\r\n                var stepName = $('#step-' + self.QuestionStepNumber).attr('stepname')\r\n                if (!isToolStart) {\r\n                    stage = 'start'\r\n                    isToolStart = true\r\n                }\r\n                AdobeToolModel.name = self.ToolName\r\n                AdobeToolModel.stage = stage\r\n                AdobeToolModel.step = stepNumber\r\n                AdobeToolModel.stepName = stepName ? stepName.toLowerCase() : ''\r\n                AdobeToolModel.category = self.ApplianceName.toLowerCase()\r\n                AdobeToolModel.label = ''\r\n                AdobeAnalyticsService.trackToolNavigation(AdobeToolModel)\r\n                trackedSteps.push(stepNumber)\r\n            }\r\n            var appStepNumber = 0\r\n            this.trackEnergyToolsAppliances = function (stepName, stage) {\r\n                if (self.SecResult) {\r\n                    return\r\n                }\r\n                if (trackedAppSteps.indexOf(self.ApplianceName + '-' + stepName) >= 0) {\r\n                    return\r\n                }\r\n                stage = stage || 'incomplete'\r\n                var stepNameText = ''\r\n                if (stage == 'start') {\r\n                    appStepNumber = 1\r\n                    stepNameText = stepName || 'which appliances do you use most'\r\n                } else {\r\n                    var headings = $('#' + stepName).find('h2.secondary-heading')\r\n                    stepNameText = headings && headings.length > 0 ? headings[0].innerText : stepName\r\n                }\r\n                AdobeToolModel.name = self.ToolName\r\n                AdobeToolModel.stage = stage\r\n                AdobeToolModel.step = appStepNumber\r\n                AdobeToolModel.stepName = stepNameText.toLowerCase()\r\n                AdobeToolModel.category = self.ApplianceName.toLowerCase()\r\n                AdobeToolModel.label = ''\r\n                AdobeAnalyticsService.trackToolNavigation(AdobeToolModel)\r\n                trackedAppSteps.push(self.ApplianceName + '-' + stepName)\r\n                appStepNumber = appStepNumber + 1\r\n            }\r\n            this.trackEnergyToolsComplete = function (stepName) {\r\n                if (!self.ApplianceName) {\r\n                    if (!isToolStart) {\r\n                        return\r\n                    }\r\n                }\r\n                var stepNumber = self.QuestionStepNumber + 1\r\n                AdobeToolModel.name = self.ToolName\r\n                AdobeToolModel.stage = 'complete'\r\n                AdobeToolModel.step = stepNumber ? stepNumber : ''\r\n                AdobeToolModel.stepName = stepName ? stepName.toLowerCase() : ''\r\n                AdobeToolModel.category = self.ApplianceName.toLowerCase()\r\n                AdobeToolModel.label = ''\r\n                AdobeAnalyticsService.trackToolNavigation(AdobeToolModel)\r\n            }\r\n            this.trackEnergyToolsResult = function (type) {\r\n                AdobeToolModel.name = self.ToolName\r\n                AdobeToolModel.stage = 'result'\r\n                AdobeToolModel.step = $('#dvTcwQuestions').attr('totalSteps')\r\n                AdobeToolModel.stepName = 'result'\r\n                AdobeToolModel.label = self.ResultFirstBtnLabel ? self.ResultFirstBtnLabel.toLowerCase() : ''\r\n                AdobeToolModel.category = self.ApplianceName.toLowerCase()\r\n                if (type == 'interaction') {\r\n                    AdobeAnalyticsService.trackToolInteraction(AdobeToolModel)\r\n                } else {\r\n                    AdobeAnalyticsService.trackToolNavigation(AdobeToolModel)\r\n                }\r\n            }\r\n        }\r\n    ])\r\n    .service('tcwApplianceText', function tcwApplianceText() {\r\n        var self = this\r\n        this.TelevisionHeaderText = ''\r\n        this.TelevisionSubHeaderText = ''\r\n        this.ConsoleHeaderText = ''\r\n        this.ConsoleSubHeaderText = ''\r\n        this.PoolPumpHeaderText = ''\r\n        this.PoolPumpSubHeaderText = ''\r\n        this.FridgeHeaderText = ''\r\n        this.FridgeSubHeaderText = ''\r\n        this.AirconditionerHeaderText = ''\r\n        this.AirconditionerSubHeaderText = ''\r\n        this.LightingHeaderText = ''\r\n        this.LightingSubHeaderText = ''\r\n        this.FreezerHeaderText = ''\r\n        this.FreezerSubHeaderText = ''\r\n        this.DishwasherHeaderText = ''\r\n        this.DishwasherSubHeaderText = ''\r\n        this.DryerHeaderText = ''\r\n        this.DryerSubHeaderText = ''\r\n        this.HeaterHeaderText = ''\r\n        this.HeaterSubHeaderText = ''\r\n        this.WashingmachineHeaderText = ''\r\n        this.WashingmachineSubHeaderText = ''\r\n        this.HeaderText = ''\r\n        this.SubHeaderText = ''\r\n        this.ListHeadertext = ''\r\n\r\n        this.setData = function (data) {\r\n            self.HeaderText = data.HeaderText\r\n            self.SubHeaderText = data.SubHeaderText\r\n            self.TelevisionHeaderText = data.TelevisionHeaderText\r\n            self.TelevisionSubHeaderText = data.TelevisionSubHeaderText\r\n            self.ConsoleHeaderText = data.ConsoleHeaderText\r\n            self.ConsoleSubHeaderText = data.ConsoleSubHeaderText\r\n            self.PoolPumpHeaderText = data.PoolPumpHeaderText\r\n            self.PoolPumpSubHeaderText = data.PoolPumpSubHeaderText\r\n            self.FridgeHeaderText = data.FridgeHeaderText\r\n            self.FridgeSubHeaderText = data.FridgeSubHeaderText\r\n            self.AirconditionerHeaderText = data.AirconditionerHeaderText\r\n            self.AirconditionerSubHeaderText = data.AirconditionerSubHeaderText\r\n            self.LightingHeaderText = data.LightingHeaderText\r\n            self.LightingSubHeaderText = data.LightingSubHeaderText\r\n            self.FreezerHeaderText = data.FreezerHeaderText\r\n            self.FreezerSubHeaderText = data.FreezerSubHeaderText\r\n            self.DishwasherHeaderText = data.DishwasherHeaderText\r\n            self.DishwasherSubHeaderText = data.DishwasherSubHeaderText\r\n            self.DryerHeaderText = data.DryerHeaderText\r\n            self.DryerSubHeaderText = data.DryerSubHeaderText\r\n            self.WashingmachineHeaderText = data.WashingmachineHeaderText\r\n            self.WashingmachineSubHeaderText = data.WashingmachineSubHeaderText\r\n            self.HeaterHeaderText = data.HeaterHeaderText\r\n            self.HeaterSubHeaderText = data.HeaterSubHeaderText\r\n            self.ListHeadertext = data.ListHeadertext\r\n        }\r\n    })\r\n    .service('tcwServiceApi', [\r\n        '$q',\r\n        '$http',\r\n        'questionService',\r\n        function tcwServiceApi($q, $http, questionService) {\r\n            var self = this\r\n            this.tcwService = function (method, url, data) {\r\n                var deferred = $q.defer()\r\n                var params = ''\r\n                if (method == 'GET') {\r\n                    params = data\r\n                }\r\n                $http({\r\n                    method: method,\r\n                    url: url,\r\n                    data: data,\r\n                    params: params\r\n                }).then(\r\n                    function (response) {\r\n                        deferred.resolve(response)\r\n                    },\r\n                    function (response) {\r\n                        if (response.status === 404) {\r\n                            deferred.reject()\r\n                        } else {\r\n                            deferred.resolve(null)\r\n                        }\r\n                    }\r\n                )\r\n                return deferred.promise\r\n            }\r\n            this.setCookieByName = function (cookieName, resultData) {\r\n                var value = angular.toJson(resultData)\r\n                localStorage.setItem(cookieName, value)\r\n            }\r\n\r\n            this.getCookieByName = function (cookieName) {\r\n                var data = localStorage.getItem(cookieName)\r\n                var jsonData = angular.fromJson(data)\r\n                return jsonData\r\n            }\r\n            this.addUpdateEnergyToolProfile = function () {\r\n                questionService.Bedrooms = questionService.HomeSize.Bedrooms\r\n                questionService.Bathrooms = questionService.HomeSize.Bathrooms\r\n                questionService.Adults = questionService.HouseholdSize.Adults\r\n                questionService.Children = questionService.HouseholdSize.Children\r\n                questionService.Appliance = questionService.ApplianceName\r\n                self.tcwService('POST', '/TCWApi/AddUpdateEnergyToolProfile', questionService).then(function (\r\n                    response\r\n                ) {\r\n                    if (response && response.data) {\r\n                        questionService.ProfileID = response.data.ProfileID\r\n                        self.setCookieByName('TCWQuestion', questionService)\r\n                    }\r\n                })\r\n            }\r\n        }\r\n    ])\r\n\r\nfunction setNavigationButtonTitle() {\r\n    setTimeout(function () {\r\n        $('.breakdownyourbill-nav--prev').attr('title', 'Previous')\r\n        $('.breakdownyourbill-nav--next').attr('title', 'Next')\r\n    }, 3000)\r\n}\r\n\r\nfunction setupHelptooltipToggle() {\r\n    $('#helpTipsClk').click(function () {\r\n        const helpTipsBlock = $('.helpTipsBlock')\r\n        if (!helpTipsBlock.hasClass('active')) {\r\n            helpTipsBlock.addClass('active').show('slow')\r\n        } else {\r\n            helpTipsBlock.removeClass('active').hide('slow')\r\n        }\r\n    })\r\n\r\n    $('#battery').hide()\r\n    $('#RequestCallBack').on('click', function () {\r\n        $('#battery').show()\r\n    })\r\n\r\n    $('.tcwHelpIcon1').click(function () {\r\n        $('.helpTipsBlock2').hide()\r\n        $('.helpTipsBlock1').slideToggle('slow')\r\n    })\r\n    $('.tcwHelpIcon2').click(function () {\r\n        $('.helpTipsBlock1').hide()\r\n        $('.helpTipsBlock2').slideToggle('slow')\r\n    })\r\n}\r\n\r\nfunction initialiseSlider() {\r\n    angular.element(document).ready(function () {\r\n        setTimeout(function () {\r\n            $('.responsive').slick({\r\n                dots: true,\r\n                infinite: false,\r\n                speed: 300,\r\n                slidesToShow: 4,\r\n                slidesToScroll: 4,\r\n                arrows: true,\r\n                responsive: [\r\n                    {\r\n                        breakpoint: 1024,\r\n                        dots: true,\r\n                        settings: {\r\n                            slidesToShow: 3,\r\n                            dots: true,\r\n                            slidesToScroll: 3,\r\n                            infinite: true,\r\n                            arrows: true\r\n                        }\r\n                    },\r\n                    {\r\n                        breakpoint: 600,\r\n                        dots: true,\r\n                        settings: {\r\n                            dots: true,\r\n                            slidesToShow: 2,\r\n                            slidesToScroll: 2\r\n                        }\r\n                    },\r\n                    {\r\n                        breakpoint: 480,\r\n                        dots: true,\r\n                        settings: {\r\n                            dots: true,\r\n                            slidesToShow: 1,\r\n                            slidesToScroll: 1\r\n                        }\r\n                    }\r\n                ]\r\n            })\r\n        }, 0)\r\n    })\r\n}\r\n\r\nfunction setupApplicanceItemHover() {\r\n    const applianceItem = $('.reduceList a.liApp')\r\n    applianceItem.mouseover(function () {\r\n        const backHoveImg = $(this).attr('backHoveImg')\r\n        $(this).find('.iconBox').css('background-image', `url(${backHoveImg})`)\r\n    })\r\n    applianceItem.mouseleave(function () {\r\n        const backImag = $(this).attr('backImag')\r\n        $(this).find('.iconBox').css('background-image', `url(${backImag})`)\r\n    })\r\n}\r\n\r\nfunction handleQuestions() {\r\n    angular.element(document).ready(function () {\r\n        setTimeout(function () {\r\n            const sectionContainer = $('.section-container')\r\n            sectionContainer.first().addClass('fadeIn').removeClass('disableControl')\r\n            sectionContainer.find('input,.tile-button').not(':first').attr('disabled', true)\r\n\r\n            const tcwProgressSteps = $('.tcwProgressSteps')\r\n            if (tcwProgressSteps.offset()) {\r\n                var distance = tcwProgressSteps.offset().top\r\n                $(window).scroll(function () {\r\n                    var scroll = $(window).scrollTop()\r\n                    if (scroll <= distance) {\r\n                        tcwProgressSteps.removeClass('tcwStepsSticky')\r\n                    } else {\r\n                        tcwProgressSteps.addClass('tcwStepsSticky')\r\n                    }\r\n                })\r\n            }\r\n\r\n            $('#btnShowResult').on('click', function () {\r\n                var id = $('.compareComponent').find('div').attr('id')\r\n\r\n                if (\r\n                    id.indexOf('Television') >= 0 ||\r\n                    id.indexOf('Console') >= 0 ||\r\n                    id.indexOf('PoolPump') >= 0 ||\r\n                    id.indexOf('Aircondition') >= 0 ||\r\n                    id.indexOf('Light') >= 0 ||\r\n                    id.indexOf('Dryer') >= 0 ||\r\n                    id.indexOf('Freezer') >= 0 ||\r\n                    id.indexOf('Heater') >= 0 ||\r\n                    id.indexOf('Washingmachine') >= 0\r\n                ) {\r\n                } else {\r\n                    $('html, body').animate({ scrollTop: 0 }, 1000)\r\n                }\r\n            })\r\n            $('.tcwHelpIcon').click(function () {\r\n                $('.helpTipsBlock').slideToggle('slow')\r\n            })\r\n\r\n            $.getJSON('/files/PostCodeSuburb.json', function (data) {\r\n                autocomplete(data)\r\n            })\r\n        }, 0)\r\n    })\r\n}\r\n\r\nfunction autocomplete(data) {\r\n    let suburbControlField = $('.fieldSuburbControl')\r\n\r\n    if (suburbControlField.length) {\r\n        var autocompleteData = []\r\n        $.each(data, function (index, item) {\r\n            if (item.Suburbs.indexOf(',') > -1) {\r\n                var subrubData = item.Suburbs.split(',')\r\n                $.each(subrubData, function (index, suburb) {\r\n                    autocompleteData.push(item.PostCode + ' - ' + suburb)\r\n                })\r\n            } else {\r\n                autocompleteData.push(item.PostCode + ' - ' + item.Suburbs)\r\n            }\r\n        })\r\n\r\n        suburbControlField.autocomplete({\r\n            minLength: 3,\r\n            mustMatch: true,\r\n            source: autocompleteData,\r\n            focus: function (event, ui) {\r\n                var input = suburbControlField\r\n                input.val($.trim(ui.item.label.split('-')[1]))\r\n                return false\r\n            },\r\n            select: function (event, ui) {\r\n                var input = suburbControlField\r\n                input.val($.trim(ui.item.label.split('-')[1]))\r\n            },\r\n            change: function (event, ui) {\r\n                if (!ui.item) {\r\n                    var value = this.value\r\n                    var data = $.grep(autocompleteData, function (n, i) {\r\n                        return n.toLowerCase().indexOf(value.toLowerCase()) >= 0\r\n                    })\r\n                    if (data && data.length > 0) {\r\n                        this.value = $.trim(data[0].split('-')[1])\r\n                    } else {\r\n                        this.value = ''\r\n                    }\r\n                    var input = suburbControlField\r\n                    input.trigger('input') // Use for Chrome/Firefox/Edge\r\n                    input.trigger('change') // Use for Chrome/Firefox/Edge + IE11/\r\n                }\r\n            },\r\n            messages: {\r\n                noResults: '',\r\n                results: function () {\r\n                    return ''\r\n                }\r\n            }\r\n        })\r\n    }\r\n}\r\n\r\nfunction handleStickyWrapper() {\r\n    angular.element(document).ready(function () {\r\n        let clickable = false\r\n        let clicked = false\r\n\r\n        setTimeout(function () {\r\n            const stickyWrapper = $('.stickyWraper')\r\n            if (stickyWrapper) {\r\n                const grayWrap = $('.grayWrap')\r\n                const costeCollepse = $('.costeCollepse')\r\n                const stickyCosteTop = $('.stickyWraper h2').offset().top\r\n                const stickyTip = $('.stickytips').offset().top + $('.stickytips').height()\r\n                const windowElement = $(window)\r\n\r\n                windowElement.on('scroll', function () {\r\n                    let scrollBottom = windowElement.scrollTop() + windowElement.height()\r\n\r\n                    if (windowElement.scrollTop() > stickyTip || scrollBottom < stickyCosteTop) {\r\n                        stickyWrapper.css({ position: 'fixed', bottom: '0px' })\r\n                        clickable = true\r\n                        if (!clicked) {\r\n                            grayWrap.show()\r\n                        }\r\n                        costeCollepse.show()\r\n                    } else {\r\n                        stickyWrapper.css({ position: 'absolute', bottom: '' })\r\n                        clickable = false\r\n                        grayWrap.hide()\r\n                        costeCollepse.hide()\r\n                    }\r\n                })\r\n\r\n                stickyWrapper.each(function () {\r\n                    const $accordian = $(this)\r\n                    $accordian.find('.tcw-Sticky-Header').on('click', function () {\r\n                        $(this).removeClass('open').addClass('close')\r\n                        $accordian.find('.grayWrap').slideUp()\r\n                        clicked = true\r\n                        if (clickable) {\r\n                            if (!$(this).next().is(':visible')) {\r\n                                $(this).removeClass('close').addClass('open')\r\n                                $(this).next().slideDown()\r\n                                clicked = false\r\n                            }\r\n                        }\r\n                    })\r\n                })\r\n            }\r\n        }, 1000)\r\n    })\r\n}\r\n\r\nangular.module('app').requires.push('syTCW');"],"names":["angular","module","config","$routeProvider","$locationProvider","html5Mode","when","name","templateUrl","controller","$scope","$timeout","questionService","$route","$filter","ApplianceName","current","trackStart","element","document","ready","setTimeout","sectionContainer","$","first","addClass","removeClass","find","not","attr","tcwProgressSteps","offset","distance","top","window","scroll","scrollTop","on","id","indexOf","animate","click","slideToggle","getJSON","data","suburbControlField","length","autocompleteData","each","index","item","Suburbs","subrubData","split","suburb","push","PostCode","autocomplete","minLength","mustMatch","source","focus","event","ui","val","trim","label","select","change","value","this","grep","n","i","toLowerCase","input","trigger","messages","noResults","results","disableNext","countActive","counthoursSel","countnumberOfLightsSel","isDisabled","disableNextAverageSlider","LastEnergyBill","disableNextHomeType","HouseType","disableNextHomeSize","HomeSize","Bedrooms","Bathrooms","disableNextHouseholdSize","HouseholdSize","Adults","Children","disableNextLocation","Suburb","disableNextTelevision","Television","televisions","disableNextConsole","Console","consoles","disableNextPoolPump","PoolPump","disableNextFridge","Fridge","fridges","Large","Medium","Small","disableNextAirconditionerType","AirconditionerType","disableNextDaysOfWeek","DaysOfWeek","active","disableNextAirconditionerUsage","AirconditionerUsage","temperature","disableNextLightTypes","LightTypes","disableNextLightingUsage","forEach","LightingUsage","obj","key","hoursPerDay","numberOfLights","disableNextFreezer","Freezer","freezers","disableNextLightSlider","LightSlider","disableNextHeaterType","HeaterType","disableNextHeaterUsage","HeaterUsage","hours","disableNextWashingmachineType","WashingmachineType","SecResult","resultTracked","ResultFirstBtnLabel","trackEnergyToolsResult","enableComponent","btnNextClick","addSteps","self","nextdiv","nextAll","removeAttr","stepId","Number","QuestionStepNumber","modifyQuestion","trackEnergyTools","dialPalette","tvColor","consoleColor","renderTCWComponent","renderAirconditionerUsage","airconditionUage","getElementById","innerHTML","checkdefault","daysOfWeekDefault","JSON","parse","stringify","hoursTitle","undefined","temperatureTitle","AirconditionerUsageParams","title","tabColor","hourSliderPalette","temperaturePalette","colors","tcw","renderElement","onChange","onAirconditionerUsageChange","defaultValue","daysOfWeek","minimumTemperature","maximumTemperature","renderHeaterUsage","heaterUsage","HeaterUsageParams","lightingPalette","onHeaterUsageChange","palette","renderLightingUsage","lightingUsage","reduce","currentConfig","light","lightsTitle","LightingUsageParams","onLightingUsageChange","lightingValueColor","appliance","applianceElement","hash","location","path","substring","classList","add","concat","question","avgSlider","onUsageSliderChange","scaleDomain","scaleRange","AverageSliderParams","homeType","onHouseTypeChange","labels","HomeTypeParams","homeSize","onHomeSizeChange","HomeSizeParams","houseHoldSize","onHouseholdSizeChange","HouseholdSizeParams","television","_$scope$TelevisionPar","TelevisionParams","monitorColor","monitorTextColor","offAtWallTitle","wallSwitchButtonColor","wallSwitchPlugColor","wallSwitchCordColor","onTelevisionChange","maxValue","console","ConsoleParams","onConsoleChange","poolPump","onPoolPumpChange","PoolPumpParams","fridge","labelSmall","labelMedium","labelLarge","FridgeParams","onFridgeChange","color","airconditionerType","onAirconditionerTypeChange","AirconditionerTypeParams","daysOfweek","onDaysOfWeekChange","DaysOfWeekParams","lightTypes","onLightTypesChange","LightTypesParams","freezer","FreezerParams","onFreezerTypeChange","lightSlider","onLightSliderChange","LightSliderParams","heaterType","onHeaterTypeChange","DefaultHeaterType","HeaterTypeParams","washingMachineType","onWashingmachineTypeChange","DefaultWashingmachineType","WashingmachineTypeParams","values","onSuburbChange","trackEnergyToolsAppliances","calculateBill","lightings","$on","trackEnergyToolsComplete","directive","restrict","scope","link","$element","attrs","tcwServiceApi","tariff","dailySupply","suburbAverageLabel","HouseholdsLabel","NegativeMessage","YourBillLabel","result","Model","calculate","tcwService","PlanName","then","response","nSuburbArr","nSuburb","bedrooms","bathrooms","SuburbAverage","suburbAverage","HouseholdAverage","householdAverage","similarHomeBill","Math","round","suburbBill","BillDifference","abs","toFixed","BillDifferenceStatus","size","delay","bounceHeight","compareYourBill","bill","similar","average","averageLabel","replace","similarLabel","billLabel","setCookieByName","init","model","getCookieByName","SecQuestion","SecQuestionBtn","setData","ToolName","addUpdateEnergyToolProfile","setupHelptooltipToggle","showComponent","breakdownYourbill","powerYouUse","Percentage1","governmentPolicy","Percentage2","retailer","Percentage3","westernPower","Percentage4","segments","Color1Hex","Color2Hex","Color3Hex","Color4Hex","onComplete","onBreakdownChange","titles","Title1","Title2","Title3","Title4","copy","Description1","Description2","Description3","Description4","$location","$http","solarHouseholdData","systemSizeValues","LGSystemSizeValues","batterySavings","solarSavings","totalSavings","selectedHouseholdDataLG","selectedHouseholdDataSolar","resultEmail","totalCost","systemType","SystemSize","SystemType","defaultSolarSize","noOfPoeple","solarCalculate","inputs","solarSize","batterySize","solarMin","solarMax","batteryMin","batteryMax","payback","toString","parseInt","EstimatedPriceRange","SavingsPerYear","LGPayback","Payback","$apply","totalMin","totalMax","calculateStats","onSolarChange","solarSizes","action","type","sendingEmail","sendResultEmail","EmailAddress","connectionAddress","KWSystem","PanelsNo","NoOfPanels","RoofSpace","KWHSystemBattery","BatteryEstimatedPriceRange","BatterySavingsPerYear","AirConHours","actionURL","params","siteUrl","protocol","host","Object","keys","map","k","encodeURIComponent","join","emailSent","post","headers","tcwApplianceText","clickable","clicked","stickyWrapper","grayWrap","costeCollepse","stickyCosteTop","stickyTip","height","windowElement","scrollBottom","css","position","bottom","show","hide","$accordian","slideUp","next","is","slideDown","applianceData","resultBill","HeaderText","SubHeaderText","applianceName","valueAlreadyexists","checkValues","ListHeadertext","TVAmount","ConsoleAmount","PoolPumpAmount","FridgeAmount","ACAmount","LightingAmount","FreezerAmount","DishwasherAmount","DryerAmount","HeaterAmount","WashingmachineAmount","AppOnCost","Type","CostPerBill","AppStandbyCost","OffAtWall","noOfApp","offAtWall","TelevisionHeaderText","NegativeMessageText","TelevisionSubHeaderText","NegativeMessageSubText","PositiveMessageText","PositiveMessageSubText","Message3Text","Message3SubText","ConsoleHeaderText","ConsoleSubHeaderText","DoYouSwitchitOff","NoOfAppliance","PoolPumpData","noOfHours","Hours","CostPerHour","NoOfDaysPerWeek","PoolPumpHeaderText","PoolPumpSubHeaderText","LargeFridgeData","MediumFridgeData","SmallFridgeData","noOfLargeFridge","noOfMediumFridge","noOfSmallFridge","totalfridge","FridgeHeaderText","FridgeSubHeaderText","NoOfWeekDays","NoOfWeekends","WeekdaysCost","WeekendCost","Days","Temperature","AirconditionerData","day","NoOfDays","noOfHoursWeekDays","noOfHoursWeekends","AirconditionerHeaderText","AirconditionerSubHeaderText","ApplianceType","HalogenCost","LEDCost","FluorescentCost","IncandescentCost","activeHalogen","activeLED","activeFluorescent","activeIncandescent","NoOfAppliances","lightType","noOfHalogen","HalogenHourPerDay","HalogenData","Halogenusage","noOfLED","LEDHourPerDay","LEDData","LEDusage","noOfFluorescent","FluorescentHourPerDay","FluorescentData","Fluorescentusage","noOfIncandescent","IncandescentHourPerDay","IncandescentData","Incandescentusage","LightingHeaderText","LightingSubHeaderText","Message4Text","Message4SubText","LargeFreezerData","SmallFreezerData","noOfLargeFreezer","noOfSmallFreezer","totalFreezer","FreezerHeaderText","DishwasherData","NoOfHrsPerDay","DishwasherHeaderText","DishwasherSubHeaderText","dryerData","DryerHeaderText","DryerSubHeaderText","heaterData","HeaterHeaderText","HeaterSubHeaderText","WashingmachineData","WashingmachineHeaderText","WashingmachineSubHeaderText","Amount","args","applianceItem","mouseover","backHoveImg","mouseleave","backImag","headertext","dataText","resultList","resultText","checkAmount","resultAmount","getHeader","getSubHeader","FreezerSubHeaderText","$event","$$route","slick","dots","infinite","speed","slidesToShow","slidesToScroll","arrows","responsive","breakpoint","settings","controllerAs","sySuburbAverageLabel","syHouseholdsLabel","syYourBillLabel","syModuleId","service","$rootScope","AdobeAnalyticsService","AdobeToolModel","ProfileID","days","Appliance","Options","Postcode","$broadcast","arg","trackedSteps","trackedAppSteps","isToolStart","stepNumber","stage","stepName","step","category","trackToolNavigation","appStepNumber","stepNameText","headings","innerText","trackToolInteraction","$q","method","url","deferred","defer","resolve","status","reject","promise","cookieName","resultData","toJson","localStorage","setItem","getItem","fromJson","helpTipsBlock","hasClass","requires"],"sourceRoot":""}