{"version":3,"file":"vendors-fcadf5bb.xxxxxxxx.bundle.js","mappings":";0/CASIA,EAAiB,WACjB,SAASA,EAAcC,GACnBC,KAAKD,QAAUA,EACfC,KAAKC,cAAgB,CAAC,CAC1B,CAiEA,OAhEAH,EAAcI,UAAUC,gBAAkB,SAAUC,GAChDJ,KAAKC,cAAcG,EAAQC,WAAaL,KAAKC,cAAcG,EAAQC,YAAc,GACjFL,KAAKC,cAAcG,EAAQC,WAAWC,KAAKF,EAC/C,EACAN,EAAcI,UAAUK,gBAAkB,SAAUH,GAChD,IAAII,EACAP,EAAgBD,KAAKC,cAAcG,EAAQC,WAO/C,OANIJ,IACAO,EAAQP,EAAcQ,QAAQL,KACjB,GACTH,EAAcS,OAAOF,EAAO,GAG7BJ,CACX,EACAN,EAAcI,UAAUS,QAAU,SAAUN,EAAWO,EAAQC,EAASC,QAChD,IAAhBF,IAAqBA,EAAS,CAAC,QACd,IAAjBC,IAAsBA,GAAU,QACZ,IAApBC,IAAyBA,GAAa,GAC1C,IAAIC,EAAQ,KAAIC,kBAAkBX,EAAW,CAAES,WAAYA,EAAYD,QAASA,EAASD,OAAQA,IACjGZ,KAAKD,QAAQkB,cAAcF,EAC/B,EACAjB,EAAcI,UAAUgB,UAAY,SAAUb,EAAWD,EAASe,GAC9D,GAAuB,mBAAZf,EAKP,YAJyBgB,IAArBD,IACAA,EAAmBrB,EAAcuB,wBAElB,IAAIC,EAAiBtB,KAAMK,EAAWD,EAASe,GAAkB,EAI5F,EACArB,EAAcI,UAAUqB,cAAgB,SAAUlB,EAAWD,EAASe,GAClE,GAAuB,mBAAZf,EAKP,YAJyBgB,IAArBD,IACAA,EAAmBrB,EAAcuB,wBAElB,IAAIC,EAAiBtB,KAAMK,EAAWD,EAASe,GAAkB,EAI5F,EACArB,EAAcI,UAAUsB,QAAU,SAAUnB,GACxC,GAAIA,GAAkC,iBAAdA,EAAwB,CAC5C,IAAIJ,EAAgBD,KAAKC,cAAcI,GACvC,GAAIJ,EACA,KAAOA,EAAcwB,QAAQ,CACzB,IAAIC,EAAezB,EAAc0B,MAC7BD,GACAA,EAAaF,SAErB,CAER,MAEIxB,KAAK4B,YAEb,EACA9B,EAAcI,UAAU0B,WAAa,WACjC,IAAK,IAAIC,KAAO7B,KAAKC,cACjBD,KAAKwB,QAAQK,EAErB,EACA/B,EAAcuB,wBAAyB,EAChCvB,CACX,CAtEoB,GAuEhBwB,EAAoB,WACpB,SAASA,EAAiBQ,EAAOzB,EAAWD,EAASe,EAAkBY,GACnE/B,KAAK8B,MAAQA,EACb9B,KAAKK,UAAYA,EACjBL,KAAKI,QAAUA,EACfJ,KAAKgC,QAAsC,kBAArBb,EAAiCA,EAAmBA,EAAiBa,QAC3FhC,KAAKa,SAAWb,KAAKgC,QACrBhC,KAAKmB,iBAAmBA,EACxBnB,KAAK+B,KAAOA,EACZD,EAAM/B,QAAQkC,iBAAiB5B,EAAWL,KAAMmB,GAChDW,EAAM3B,gBAAgBH,KAC1B,CAaA,OAZAsB,EAAiBpB,UAAUgC,YAAc,SAAUC,IAE/CC,EADSpC,KAAKI,SACX+B,GACCnC,KAAK+B,MACL/B,KAAKwB,SAEb,EACAF,EAAiBpB,UAAUsB,QAAU,WACjCxB,KAAK8B,MAAM/B,QAAQsC,oBAAoBrC,KAAKK,UAAWL,KAAMA,KAAKmB,kBAClEnB,KAAK8B,MAAMvB,gBAAgBP,MAC3BA,KAAK8B,MAAQ9B,KAAKI,QAAU,IAChC,EACOkB,CACX,CAzBuB,GA2BnBgB,EAAuB,WACvB,SAASA,IACLtC,KAAKuC,aAAe,CAAC,CACzB,CAOA,OANAD,EAAoBpC,UAAUsC,cAAgB,SAAUC,GACpDzC,KAAKuC,aAAaE,IAAO,CAC7B,EACAH,EAAoBpC,UAAUwC,cAAgB,SAAUD,GACpD,OAAOA,KAAOzC,KAAKuC,YACvB,EACOD,CACX,CAX0B,GAYtBK,EAA0B,WAC1B,SAASA,EAAuBC,EAAiBC,QAChB,IAAzBD,IAA8BA,GAAkB,QACtB,IAA1BC,IAA+BA,GAAmB,GACtD7C,KAAK4C,gBAAkBA,EACvB5C,KAAK6C,iBAAmBA,EACxB7C,KAAK8C,mBAAqB,IAC9B,CAEA,OADAH,EAAuBI,OAAS,IAAIJ,EAC7BA,CACX,CAV6B,GAWzBK,EAAuB,WACvB,SAASA,IACT,CAoCA,OAnCAA,EAAoBC,QAAU,WAC1B,IAAIC,EAAc,IAAIF,EAEtB,OADAE,EAAYD,SAAU,EACfC,CACX,EACAF,EAAoBG,SAAW,SAAUC,EAAMC,GAC3C,IAAIH,EAAc,IAAIF,EAGtB,OAFAE,EAAYE,KAAOA,EACnBF,EAAYG,WAAaA,GAAc,CAAC,EACjCH,CACX,EACAF,EAAoBjD,QAAU,SAAUuD,EAAMF,GAC1C,IAAIF,EAAc,IAAIF,EAKtB,OAJAE,EAAYE,KAAOA,EACnBF,EAAYG,WAAa,CAAC,EAC1BH,EAAYK,oBAAsBD,EAAKE,aAAa,kBAAoBJ,EAAKK,eAC7EP,EAAYQ,qBAAsB,EAC3BR,CACX,EACAF,EAAoBW,UAAY,SAAUC,EAAUR,GAChD,IAAIF,EAAc,IAAIF,EAItB,OAHAE,EAAYU,SAAWA,EACvBV,EAAYE,KAAOA,GAAQ,KAC3BF,EAAYG,WAAa,CAAC,EACnBH,CACX,EACAF,EAAoBa,QAAU,SAAUC,EAAMC,EAAWC,GACrD,IAAId,EAAc,IAAIF,EAKtB,OAJAE,EAAYY,KAAOA,EACnBZ,EAAYa,UAAYA,EACxBb,EAAYc,YAAcA,EAC1Bd,EAAYe,uBAAwB,EAC7Bf,CACX,EACAF,EAAoBD,OAAS,IAAIC,EAC1BA,CACX,CAvC0B,GAwCtBkB,EAAUlB,EAAoB9C,UAClCgE,EAAQR,qBAAsB,EAC9BQ,EAAQjB,SAAU,EAClBiB,EAAQC,iBAAmB,KAC3BD,EAAQF,YAAc,KACtBE,EAAQE,iBAAmB,KAC3BF,EAAQG,uBAAwB,EAChCH,EAAQI,eAAiB,KACzBJ,EAAQH,UAAY,KACpBG,EAAQX,mBAAoB,EAC5BW,EAAQJ,KAAO,KACfI,EAAQb,WAAa,KACrBa,EAAQd,KAAO,KACfc,EAAQN,SAAW,KACnBM,EAAQD,uBAAwB,EAChC,IAAIM,EAAqB,WACrB,SAASA,IACT,CAgDA,OA/CAA,EAAkBC,WAAa,SAAUC,GACrC,IAAIvB,EAAc,IAAIqB,EAGtB,OAFArB,EAAYuB,iBAAmBA,EAC/BvB,EAAYsB,YAAa,EAClBtB,CACX,EACAqB,EAAkBG,kBAAoB,SAAUC,GAC5C,IAAIzB,EAAc,IAAIqB,EAEtB,OADArB,EAAYwB,kBAAoBC,EACzBzB,CACX,EACAqB,EAAkBK,WAAa,SAAUC,GACrC,IAAI3B,EAAc,IAAIqB,EAGtB,OAFArB,EAAY2B,YAAcA,EAC1B3B,EAAY0B,YAAa,EAClB1B,CACX,EACAqB,EAAkBO,QAAU,SAAUL,EAAkBM,GACpD,IAAI7B,EAAc,IAAIqB,EAOtB,OANArB,EAAYuB,iBAAmBA,EAC/BvB,EAAY2B,YAAcN,EAAkBS,cAC5C9B,EAAY+B,qBAAuB,CAACF,GACpC7B,EAAYc,YAAce,EAAmBf,YAC7Cd,EAAYgC,UAAY,CAACH,EAAmB3B,KAAK+B,QACjDjC,EAAY4B,SAAU,EACf5B,CACX,EACAqB,EAAkBxB,OAAS,SAAUqC,EAAYX,EAAkBS,EAAWD,EAAsBJ,EAAaQ,GAC7G,IAAInC,EAAc,IAAIqB,EAQtB,OAPArB,EAAYkC,WAAaA,EACzBlC,EAAYuB,iBAAmBA,EAC/BvB,EAAYgC,UAAYA,EACxBhC,EAAY+B,qBAAuBA,EACnC/B,EAAY2B,YAAcA,EAC1B3B,EAAYK,mBAAoB8B,GAAqBA,EAAmB9B,kBACxEL,EAAYmC,mBAAqBA,EAC1BnC,CACX,EACAqB,EAAkBe,UAAY,SAAUJ,EAAWD,EAAsBJ,EAAaU,GAClF,IAAIrC,EAAc,IAAIqB,EAKtB,OAJArB,EAAY2B,YAAcA,EAC1B3B,EAAY+B,qBAAuBA,EACnC/B,EAAYgC,UAAYA,EACxBhC,EAAYqC,OAASA,EACdrC,CACX,EACAqB,EAAkBS,cAAgBQ,OAAOC,OAAO,IACzClB,CACX,CAnDwB,GAoDpBmB,EAAUnB,EAAkBrE,UAgChC,SAASyF,EAAWC,EAAYT,EAAQtD,EAAKgE,GACzC,IAA2HC,EAAvHC,EAAIC,UAAUvE,OAAQwE,EAAIF,EAAI,EAAIZ,EAAkB,OAATU,EAAgBA,EAAOL,OAAOU,yBAAyBf,EAAQtD,GAAOgE,EACrH,GAAuB,iBAAZM,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASR,EAAYT,EAAQtD,EAAKgE,QACpH,IAAK,IAAIQ,EAAIT,EAAWnE,OAAS,EAAG4E,GAAK,EAAGA,KAASP,EAAIF,EAAWS,MAAIJ,GAAKF,EAAI,EAAID,EAAEG,GAAKF,EAAI,EAAID,EAAEX,EAAQtD,EAAKoE,GAAKH,EAAEX,EAAQtD,KAASoE,GAChJ,OAAOF,EAAI,GAAKE,GAAKT,OAAOc,eAAenB,EAAQtD,EAAKoE,GAAIA,CAChE,CApCAP,EAAQN,WAAa,KACrBM,EAAQjB,iBAAmB,KAC3BiB,EAAQlB,YAAa,EACrBkB,EAAQa,SAAW,KACnBb,EAAQc,oBAAsB,KAC9Bd,EAAQhB,kBAAoB,KAC5BgB,EAAQd,YAAa,EACrBc,EAAQb,YAAc,KACtBa,EAAQb,YAAc,KACtBa,EAAQR,UAAY,KACpBQ,EAAQ1B,YAAc,KACtB0B,EAAQnC,mBAAoB,EAC5BmC,EAAQL,mBAAqB,KAC7BK,EAAQZ,SAAU,EAClBY,EAAQH,OAAS,KAwBjB,IAAIkB,EAAiB,WACrB,SAASC,EAAkBC,GACvB,MAAO,IAAMA,EAAKC,aACtB,CACA,SAASC,EAAWC,GAChB,OAAQA,EAAKC,OAAO,GAAGH,cAAgBE,EAAKE,MAAM,IAAIC,QAAQR,EAAgBC,EAClF,CACA,SAASQ,EAAiB5D,GACtB,QAASA,EAAK6D,uBAA0B,aAAaC,KAAK9D,EAAK+D,aACnE,CAEA,IAAIC,EAA4B,WAC5B,SAASA,EAAyBC,EAAWC,EAAKC,EAAcC,EAAgBC,GAC5E3H,KAAKuH,UAAYA,EACjBvH,KAAKwH,IAAMA,EACXxH,KAAKyH,aAAeA,EACpBzH,KAAK4H,WAAY,EACjB5H,KAAK6H,YAAa,EAClB7H,KAAK0H,eAAiBA,EACtB1H,KAAK8H,aAAe9H,KAAK+H,SAAWJ,CACxC,CAmDA,OAlDAL,EAAyBpH,UAAU8H,SAAW,WAC1C,OAAOhI,KAAK8H,YAChB,EACAR,EAAyBpH,UAAU+H,SAAW,SAAUC,GACpD,IAAIH,EAAW/H,KAAK8H,aACftC,OAAO2C,GAAGD,EAAUH,KACrB/H,KAAK+H,SAAWA,EAChB/H,KAAK8H,aAAeI,EAChBlI,KAAK6H,YAAc7H,KAAK4H,YACpB5H,KAAKuH,UAAUa,SACfpI,KAAKqI,QAGLrI,KAAK4H,WAAY,EACjB5H,KAAKuH,UAAUe,eAAetI,QAI9C,EACAsH,EAAyBpH,UAAUmI,KAAO,WACtC,IAAIN,EAAW/H,KAAK+H,SAChBG,EAAWlI,KAAK8H,aACpB9H,KAAK4H,WAAY,EACbpC,OAAO2C,GAAGD,EAAUH,KAGpB/H,KAAK0H,gBACL1H,KAAK0H,eAAeQ,EAAUH,GAElC/H,KAAKuI,gBAAgBL,EAAUH,GAC/B/H,KAAK+H,SAAWG,EACpB,EACAZ,EAAyBpH,UAAUqI,gBAAkB,SAAUL,EAAUH,GACrE,MAAM,IAAIS,MAAM,0BACpB,EACAlB,EAAyBpH,UAAUgB,UAAY,SAAUuH,EAASC,GAC9D1I,KAAK2I,cAAcF,EAASC,EAChC,EACApB,EAAyBpH,UAAUyI,cAAgB,SAAUF,EAASC,GAClE,MAAM,IAAIF,MAAM,0BACpB,EACAlB,EAAyBpH,UAAU0I,YAAc,SAAUH,EAASC,GAChE1I,KAAK6I,iBAAiBJ,EAASC,EACnC,EACApB,EAAyBpH,UAAU2I,iBAAmB,SAAUJ,EAASC,GACrE,MAAM,IAAIF,MAAM,0BACpB,EAC2B7C,EAAW,EAClC,WACD2B,EAEP,CA7D+B,GA+D/B,SAASwB,EAAYC,EAAUjC,GAC3B,IAAIkC,EAASD,EAASE,cACtB,QAAe7H,IAAX4H,EAAsB,CACtB,IAAIE,EAAO1D,OAAO2D,eAAeJ,GAAUK,YACvCC,EAAW,KAASC,IAAI,KAASC,SAAUL,GAC1CG,EAASG,eACVH,EAASI,WAAW,EAAAC,UAAUX,UAAY,IAAI,EAAAW,UAAaX,EAASK,aAExEJ,EAASK,EAASM,gBAAgBC,2BAA2Bb,GAC7DM,EAASQ,yBAAyBd,EAAUC,EAChD,CACA,OAAOA,EAAOlC,EAClB,CACA,IAAIgD,EAAoB,WACpB,SAASA,EAAiBC,GACM,iBAAjBA,EACP/J,KAAK8G,KAAOiD,EAGZvE,OAAOwE,OAAOhK,KAAM+J,GAExB/J,KAAK2D,UAAY3D,KAAK2D,WAAakD,EAAW7G,KAAK8G,MACnD,IAAImD,EAAqBjK,KAAKiK,mBAC1BA,QACAjK,KAAKiK,mBAAqB,KAAYC,OAEH,iBAAvBD,IACZjK,KAAKiK,mBAAqB,KAAYA,IAAuB,KAAYC,QAE7ElK,KAAKmK,cAAgBnK,KAAKmK,eAAiB,KAC3CnK,KAAK8B,MAAQ,KACb9B,KAAKoK,WAAa,IACtB,CAyJA,OAxJAN,EAAiB5J,UAAUmK,aAAe,SAAUlF,EAAQkE,EAAUe,GAIlE,GAHAf,EAASiB,WAAWhK,KAAKN,MACzBqJ,EAAShG,WAAWrD,KAAK2D,WAAa3D,KACtCA,KAAK8B,MAAQuH,EACTe,EAEA,OADApK,KAAKoK,WAAaA,EACXpK,KAAKuK,qBAAqBH,EAGzC,EACAN,EAAiB5J,UAAUqK,qBAAuB,SAAUH,GACxD,IAAItD,EAAO9G,KAAK8G,KAsBhB,OArBAsD,EAAWI,cAAe,EAC1BJ,EAAWK,YAAa,EACpB,gBAAiBL,IACjBpK,KAAK0K,aAAeN,EAAWO,mBACxBP,EAAWO,mBACXP,EAAWQ,UAElB,UAAWR,IACXpK,KAAK0K,aAAeN,EAAWS,aACxBT,EAAWS,aACXT,EAAWQ,UAEtBR,EAAWd,IAAM,WACb,OAAOR,EAAY9I,KAAM8G,GAAMkB,UACnC,EACAoC,EAAWU,IAAM,SAAUD,GACvB/B,EAAY9I,KAAM8G,GAAMmB,SAAS4C,EACrC,EACAT,EAAWd,IAAIR,YAAc,SAAUtB,GACnC,OAAOsB,EAAYtB,EAAKV,EAC5B,EACOsD,CACX,EACAN,EAAiB5J,UAAU6K,SAAW,SAAU5F,EAAQkE,GACpD,IACI2B,EADAlE,EAAO9G,KAAK8G,KAEW,OAAvB9G,KAAKmK,gBACLa,EAAclE,EAAO,aACF3B,EAAOjF,YACtBF,KAAKmK,cAAgBa,GAGL,OAApBhL,KAAKoK,YACL5E,OAAOc,eAAenB,EAAOjF,UAAW4G,EAAM9G,KAAKuK,qBAAqB,CAAC,GAEjF,EACAT,EAAiB5J,UAAU+K,eAAiB,SAAUlH,GAClD,IAII4D,EAJAD,EAAiB,KACjBgD,EAAe1K,KAAK0K,aACpBQ,EAAoBlL,KAAKmK,cACzBrD,EAAO9G,KAAK8G,KAEhB,IAAI9G,KAAKmL,WAAT,CAGA,GAAID,KAAqBnH,EAEjB2D,EADA,oBAAqB3D,EACJ,SAAUmE,EAAUH,GACjChE,EAAUmH,GAAmBhD,EAAUH,GACvChE,EAAUqH,gBAAgBtE,EAAMoB,EAAUH,EAC9C,EAGiB,SAAUG,EAAUH,GAAY,OAAOhE,EAAUmH,GAAmBhD,EAAUH,EAAW,OAG7G,GAAI,oBAAqBhE,EAC1B2D,EAAiB,SAAUQ,EAAUH,GAAY,OAAOhE,EAAUqH,gBAAgBtE,EAAMoB,EAAUH,EAAW,OAE5G,GAA0B,OAAtBmD,EACL,MAAM,IAAI1C,MAAM,kBAAkB6C,OAAOH,EAAmB,kDAKhE,YAHqB9J,IAAjBsJ,IACA/C,EAAuC,mBAAjB+C,EAA8BA,EAAarC,KAAKtE,GAAa2G,GAEhF,IAAIpD,EAAyBtH,KAAK8B,MAAMyF,UAAWxD,EAAW/D,KAAK8G,KAAMY,EAAgBC,EArBhG,CAsBJ,EACAmC,EAAiB5J,UAAUoL,YAAc,SAAUvH,EAAWwH,EAAgBlI,EAAYmI,EAAqBC,GAC3G,IAAI/D,EACAgE,EACA/H,EACA+G,EAAe1K,KAAK0K,aACxB,GAAI1K,KAAK2L,UACL,IAAK,IAAI9J,KAAOwB,EACZrD,KAAK4L,uBAAuB7H,EAAWwH,EAAgBC,EAAqB3J,EAAKwB,EAAWxB,GAAM4J,QAGhGzL,KAAKmL,aACXO,EAAWH,EAAevL,KAAK8G,MACZ,OAAfzD,IACAqE,EAAiBgE,EAAShE,eAC1B/D,EAAYN,EAAWrD,KAAK2D,WACxB6H,IACAE,EAAShE,eAAiB,MAEL,iBAAd/D,GACPI,EAAU/D,KAAK8G,MAAQnD,EACvB+H,EAASrD,QAEJ1E,EACL8H,EAAgBnL,KAAK,CAAEoL,SAAUA,EAAUG,QAASlI,EAAUmI,cAAc/H,UAEtD3C,IAAjBsJ,GACLgB,EAASrD,OAEbqD,EAAShE,eAAiBA,GAE9BgE,EAAS7D,YAAa,EAE9B,EACAiC,EAAiB5J,UAAU0L,uBAAyB,SAAU7H,EAAWwH,EAAgBC,EAAqB1E,EAAMnD,EAAW8H,GAC3H,IAEIC,EACAK,EAHAb,EAAoBpE,EAAO,UAC3BY,EAAiB,KAGjBwD,KAAqBnH,EAEjB2D,EADA,oBAAqB3D,EACJ,SAAUmE,EAAUH,GACjChE,EAAUmH,GAAmBhD,EAAUH,GACvChE,EAAUqH,gBAAgBtE,EAAMoB,EAAUH,EAC9C,EAGiB,SAAUG,EAAUH,GAAY,OAAOhE,EAAUmH,GAAmBhD,EAAUH,EAAW,EAGzG,oBAAqBhE,IAC1B2D,EAAiB,SAAUQ,EAAUH,GAAY,OAAOhE,EAAUqH,gBAAgBtE,EAAMoB,EAAUH,EAAW,GAEjH2D,EAAWH,EAAezE,GAAQ,IAAIQ,EAAyBtH,KAAK8B,MAAMyF,UAAWxD,EAAW+C,EAAMY,GACtGlC,OAAOc,eAAevC,EAAW+C,EAAM,CACnC0D,cAAc,EACdC,YAAY,EACZnB,IAAKoC,EAAS1D,SAASgE,KAAKN,GAC5BZ,IAAKY,EAASzD,SAAS+D,KAAKN,KAE5BF,IACAE,EAAShE,eAAiB,MAEL,iBAAd/D,GACPI,EAAU+C,GAAQnD,EAClB+H,EAASrD,QAEJ1E,IACLoI,EAAO,CAAEL,SAAUA,EAAUG,QAASlI,EAAUmI,cAAc/H,IAC9D0H,EAAgBnL,KAAKyL,IAEzBL,EAAS7D,YAAa,EACtB6D,EAAShE,eAAiBA,CAC9B,EACOoC,CACX,CA7KuB,GA+KnBmC,EAAe,WACf,SAASA,IACT,CA6DA,OA5DAA,EAAY/L,UAAUgM,gBAAkB,SAAUrB,GAC9C,IAAKA,EACD,OAAO,KAEX,GAAqB,iBAAVA,GAAsB,oBAAqBA,EAAO,CACzD,IAAIsB,EAAW,KAAO7C,IAAIuB,EAAMzB,aAShC,MAPqB,iBADrByB,EAAQA,EAAMqB,qBAEVrB,EAAQ,IAAIuB,GAAqBvB,IAErCwB,GAAaC,OAAOzB,GAChBsB,EAASI,UACT1B,EAAM2B,eAAeL,EAASI,UAE3B1B,CACX,CAIA,GAHqB,iBAAVA,IACPA,EAAQ,IAAIuB,GAAqBvB,IAEjCwB,GAAaI,SAAS5B,GACtB,OAAOA,EAKX,GAHqB,mBAAVA,IACPA,EAAQA,EAAMzB,aAEd,UAAWyB,EAAO,CAClB,IACI6B,EADA3G,EAAI8E,EAAM8B,MAUd,OANID,EADM,QADV3G,EAAiB,mBAANA,EAAmBA,EAAEsC,KAAKwC,GAAS9E,GAEnC,IAAI6G,GAGJ7G,aAAa8G,GAAqB9G,EAAI,IAAI8G,GAAmB9G,GAExE,KAAS+G,OAAOb,EAAYc,wBAAyBL,EAAM7B,GACpD6B,CACX,CACA,IAAIM,EAAS,KAAO1D,IAAIuB,GACpBoC,EAAW,KAAS3D,IAAI2C,EAAYc,wBAAyBlC,GACjE,GAAKoC,EAMID,EAAOT,WACZU,EAASV,SAAWS,EAAOT,cAPhB,CACX,IAAKS,EAAOT,SACR,MAAM,IAAI/D,MAAM,uDAAyDqC,GAE7EoC,EAAWjN,KAAKkN,2BAA2BF,EAC/C,CAIA,OAAOC,CACX,EACAhB,EAAY/L,UAAUgN,2BAA6B,SAAUF,GACzD,OAAO,IAAIG,GAAyBnN,KAAMgN,EAC9C,EACAf,EAAY/L,UAAUkN,uBAAyB,SAAUJ,GACrD,IAAIT,EAAWS,EAAOT,SAEtB,OADUA,EAASc,SAAS,QAAUd,EAASc,SAAS,OAAUd,EAASe,UAAU,EAAGf,EAAS9K,OAAS,GAAK8K,GACnG,OAChB,EACAN,EAAYc,wBAA0B,wBAC/Bd,CACX,CAhEkB,GAkElB,SAASsB,EAAGzG,GACR,MAAM,IAAI0B,MAAM,kCAAkC6C,OAAOvE,EAAM,OACnE,CACA,IAAI0G,EAAmB,WACnB,SAASA,IACT,CAaA,OAZAA,EAAgBtN,UAAUuN,iBAAmB,SAAUC,EAAWC,EAAa/J,EAAUgK,GACrFL,EAAG,mBACP,EACAC,EAAgBtN,UAAU2N,2BAA6B,SAAUH,EAAW3N,EAASgM,EAAM+B,EAAqBrF,GAC5G8E,EAAG,6BACP,EACAC,EAAgBtN,UAAU6N,qBAAuB,SAAUL,EAAW3N,GAClEwN,EAAG,uBACP,EACAC,EAAgBtN,UAAU8N,mBAAqB,SAAUN,EAAW7C,GAChE0C,EAAG,qBACP,EACOC,CACX,CAhBsB,GAkBlBS,EAAUzI,OAAOC,OAAO,IACxByI,EAAuB,WACvB,SAASA,EAAoBnO,GACzBC,KAAKD,QAAUA,EACfC,KAAKD,QAAQoO,gBAAkBnO,IACnC,CAKA,OAJAkO,EAAoBE,OAAS,WACzB,MAAO,CAAC,KAAIC,QAChB,EACAH,EAAoBhO,UAAUoO,aAAe,SAAUpG,EAAUH,GAAY,EACtEmG,CACX,CAV0B,GAWtBK,EAAmB,WACnB,SAASA,EAAgBC,EAAQ1H,EAAM2H,EAAiBC,GACpD1O,KAAKwO,OAASA,EACdxO,KAAKwO,OAAOG,SAAW3O,KACvBA,KAAK8G,KAAOA,EACZ9G,KAAKyO,gBAAkBA,EACvBzO,KAAK0O,gBAAkBA,EACvB1O,KAAK4O,gBAAkB,KACvB5O,KAAK6O,YAAc,EACnB7O,KAAK8O,YAAc,KACR,IAAIZ,EAAoBlO,KAAKwO,QACnC3D,MAAQ7K,KAAKyO,eACtB,CA0EA,OAzEAjJ,OAAOc,eAAeiI,EAAgBrO,UAAW,yBAA0B,CACvEoJ,IAAK,WACD,OAAOtJ,KAAK0O,iBAAwC,IAArB1O,KAAK6O,WACxC,EACApE,YAAY,EACZD,cAAc,IAElB+D,EAAgBrO,UAAU6O,sBAAwB,SAAUrC,EAAMsC,EAAOC,EAAkBzO,GACvF,GAAyB,OAArBR,KAAK8O,YAAsB,CAC3B9O,KAAK8O,YAAc9O,KAAK0O,gBAAgBQ,OAAOlP,KAAKmP,UAAUC,WAC9DpP,KAAK8O,YAAY9C,KAAKhM,KAAKmP,UAAUE,eAAgBrP,KAAKmP,UAAUG,iBACpE,IAAIC,EAAQ/J,OAAO0J,OAAO,MAC1BK,EAAMvP,KAAK4O,gBAAgB9H,MAAQ9G,KAAK4O,gBACxCY,EAAUC,eAAezP,KAAK8O,YAAaS,EAAON,EAAkBzO,EAAOR,KAAK4O,gBAAgB9H,KACpG,CACJ,EACAyH,EAAgBrO,UAAUwP,cAAgB,SAAUd,GAChD5O,KAAK4O,gBAAkBA,CAC3B,EACAL,EAAgBrO,UAAUyP,QAAU,SAAUjD,EAAMpJ,EAAM2L,EAAkBzO,GAC/C,OAArBR,KAAK8O,cACL9O,KAAK8O,YAAYc,cACjB5P,KAAK8O,YAAYe,WACjB7P,KAAK8O,YAAYgB,SACjB9P,KAAK8O,YAAc,MAEnBxL,EAAKqL,oBAAoBJ,EACzBjL,EAAKqL,SAASe,cAAc1P,OAGhCA,KAAK6O,cACL7O,KAAK4O,gBAAgBe,QAAQjD,EAAMpJ,EAAM2L,EAAkBzO,GAC/D,EACA+N,EAAgBrO,UAAU6P,WAAa,SAAUrD,EAAMuC,GACnDjP,KAAK6O,cACL7O,KAAK4O,gBAAgBmB,WAAWrD,EAAMuC,GAClCjP,KAAKgQ,wBACLhQ,KAAK+O,sBAAsB,KAAMd,EAASgB,EAElD,EACAV,EAAgBrO,UAAU+P,UAAY,SAAUhB,GAC5CjP,KAAK6O,YAAc,EACnB7O,KAAK4O,gBAAgBqB,UAAUhB,GAC3BjP,KAAKgQ,wBACLhQ,KAAK+O,sBAAsB,KAAMd,EAASgB,EAElD,EACAV,EAAgBrO,UAAUgQ,YAAc,SAAUxD,EAAMuC,GACpDjP,KAAK4O,gBAAgBsB,YAAYxD,EAAMuC,EAC3C,EACAV,EAAgBrO,UAAUiQ,QAAU,SAAUhB,GAC1CnP,KAAKmP,UAAYA,CACrB,EACAZ,EAAgBrO,UAAU8L,KAAO,SAAUU,GACnC1M,KAAK8O,aACL9O,KAAK8O,YAAY9C,KAAKU,EAAK2C,eAAgB3C,EAAK4C,gBAExD,EACAf,EAAgBrO,UAAUkQ,SAAW,WAC7BpQ,KAAK8O,aACL9O,KAAK8O,YAAYsB,UAEzB,EACA7B,EAAgBrO,UAAU2P,SAAW,WAC7B7P,KAAK8O,aACL9O,KAAK8O,YAAYe,UAEzB,EACAtB,EAAgBrO,UAAU4P,OAAS,WAC3B9P,KAAK8O,aACL9O,KAAK8O,YAAYgB,QAEzB,EACOvB,CACX,CAvFsB,GAwFlB8B,EAAc,WACd,SAASA,EAAW7B,EAAQ1H,EAAM4H,GAC9B1O,KAAKwO,OAASA,EACdxO,KAAKwO,OAAO8B,2BAA4B,EACxCtQ,KAAKwO,OAAOG,SAAW3O,KACvBA,KAAK8G,KAAOA,EACZ9G,KAAK0O,gBAAkBA,EACvB1O,KAAK8O,YAAc,KACnB9O,KAAK6O,YAAc,EACnB7O,KAAKuQ,SAAW,GAChBvQ,KAAKwQ,mBAAqB,KAC1BxQ,KAAKyQ,iBAAmB,IAC5B,CAqLA,OApLAjL,OAAOc,eAAe+J,EAAWnQ,UAAW,yBAA0B,CAClEoJ,IAAK,WACD,OAAOtJ,KAAK0O,iBAAwC,IAArB1O,KAAK6O,WACxC,EACApE,YAAY,EACZD,cAAc,IAElB6F,EAAWnQ,UAAUyP,QAAU,SAAUjD,EAAMpJ,EAAM2L,EAAkBzO,EAAOkQ,GAC1E,IAAIC,EAAQrN,EAOZ,GANyB,OAArBtD,KAAK8O,cACL9O,KAAK8O,YAAYc,cACjB5P,KAAK8O,YAAYe,WACjB7P,KAAK8O,YAAYgB,SACjB9P,KAAK8O,YAAc,MAEnB6B,EAAMhC,oBAAoBJ,EAC1BoC,EAAMhC,SAASe,cAAc1P,WAGjC,GAA8B,OAA1BA,KAAKyQ,iBACLjB,EAAUoB,gBAAgBlE,EAAM,CAACiE,GAAQ3Q,KAAKyQ,iBAAkBzQ,KAAMQ,OAErE,CACDmQ,EAAME,YAAcnE,EACpBiE,EAAMG,mBAAqB7B,EAC3B0B,EAAMI,eAAiB/Q,KACvB,IAAIwO,EAASxO,KAAKgR,YAAYtE,EAAMiE,EAAO1B,EAAkBzO,GAC9CgO,EAAOyC,WACbC,aAAaP,EAAOnC,GAC7BxO,KAAKuQ,SAASjQ,KAAKqQ,GACnB3Q,KAAK6O,aACT,CACJ,EACAwB,EAAWnQ,UAAU6P,WAAa,SAAUrD,EAAMuC,GAC9C,GAA8B,OAA1BjP,KAAKyQ,iBACLjB,EAAU2B,iBAAiBzE,EAAM1M,KAAKyQ,iBAAkBzQ,WAEvD,GAAIA,KAAK8O,aAAe9O,KAAK8O,YAAYsC,SAC1C5B,EAAU2B,iBAAiBzE,EAAM1M,KAAK8O,YAAYS,MAAON,OAExD,CACD,IAAIoC,EAAQrR,KAAKuQ,SAASe,KAAK,SAAUC,GAAK,OAAOA,EAAEC,oBAAsBvC,CAAkB,GAC/F,GAAIoC,EAAO,CAGP,IAFA,IAAId,EAAWc,EAAMI,qBACjBC,EAAc1R,KAAKuQ,SACdlK,EAAI,EAAGsL,EAAKpB,EAAS9O,OAAQ4E,EAAIsL,IAAMtL,EAAG,CAC/C,IAAIuL,EAAQrB,EAASlK,GACrB,GAAIuL,EAAMf,cAAgBnE,EAAM,CAC5B6D,EAAS7P,OAAO2F,EAAG,GACnBqG,EAAKmF,SAASC,YAAYF,GAC1BvL,IACAsL,IACA3R,KAAK6O,cACL,IAAIkD,EAAML,EAAYjR,QAAQmR,GAC1BG,GAAO,GACPL,EAAYhR,OAAOqR,EAAK,EAEhC,CACJ,CACI/R,KAAKgQ,wBACLhQ,KAAK+O,sBAAsBrC,EAAMuB,EAASgB,EAElD,CACJ,CACJ,EACAoB,EAAWnQ,UAAU+P,UAAY,SAAUhB,GACvC,GAA8B,OAA1BjP,KAAKyQ,iBACLjB,EAAUwC,gBAAgBhS,KAAKyQ,iBAAkBzQ,WAEhD,GAAIA,KAAK8O,aAAe9O,KAAK8O,YAAYsC,SAC1C5B,EAAUwC,gBAAgBhS,KAAK8O,YAAYS,MAAON,OAEjD,CACD,IAAIoC,EAAQrR,KAAKuQ,SAASe,KAAK,SAAUC,GAAK,OAAOA,EAAEC,oBAAsBvC,CAAkB,GAC/F,GAAIoC,EAAO,CAGP,IAFA,IAAId,EAAWc,EAAMI,qBACjBC,EAAc1R,KAAKuQ,SACdlK,EAAI,EAAGsL,EAAKpB,EAAS9O,OAAQ4E,EAAIsL,IAAMtL,EAAG,CAC/C,IAAIuL,EAAQrB,EAASlK,GACrBuL,EAAMf,YAAYgB,SAASC,YAAYF,GACvC5R,KAAK6O,cACL,IAAIkD,EAAML,EAAYjR,QAAQmR,GAC1BG,GAAO,GACPL,EAAYhR,OAAOqR,EAAK,EAEhC,CACAV,EAAMI,qBAAuB,GACzBzR,KAAKgQ,wBACLhQ,KAAK+O,sBAAsB,KAAMd,EAASgB,EAElD,CACJ,CACJ,EACAoB,EAAWnQ,UAAU8Q,YAAc,SAAUtE,EAAMpJ,EAAM2L,EAAkBzO,GACvE,GAAIyO,EAAkB,CAClB,IAAIoC,EAAQrR,KAAKuQ,SAASe,KAAK,SAAUC,GAAK,OAAOA,EAAEC,oBAAsBvC,CAAkB,GAC/F,GAAIoC,EAAO,CACP,QAAcjQ,IAAVZ,EAIA,IAHA,IAAI+P,EAAWc,EAAMI,qBACjBQ,GAAa,EACbC,OAAgB,EACX7L,EAAI,EAAGsL,EAAKpB,EAAS9O,OAAQ4E,EAAIsL,IAAMtL,EAAG,CAC/C,IAAI8L,EAAU5B,EAASlK,GACvB,GAAI8L,EAAQtB,cAAgBqB,IACxBD,IACAC,EAAWC,EAAQtB,YACfoB,GAAazR,GAAS0R,IAAaxF,GAEnC,OADA6D,EAAS7P,OAAO2F,EAAG,EAAG/C,GACf6O,CAGnB,CAGJ,OADAd,EAAMI,qBAAqBnR,KAAKgD,GACzB+N,CACX,CACJ,CACA,OAAOrR,KAAKwO,MAChB,EACA6B,EAAWnQ,UAAUkS,UAAY,SAAU7C,GACvCvP,KAAKyQ,iBAAmBlB,CAC5B,EACAc,EAAWnQ,UAAUgQ,YAAc,SAAUxD,EAAMuC,GAC/C,IAAIT,EAAS,KAAI6D,cAAc,UAC3BC,EAAStS,KAAKwO,OAAOyC,WACzBzC,EAAOgD,kBAAoBvC,EAC3BT,EAAOqC,YAAcnE,EACrB8B,EAAOiD,qBAAuB,GAC9Ba,EAAOpB,aAAa1C,EAAQxO,KAAKwO,QACjCxO,KAAKuQ,SAASjQ,KAAKkO,GACa,OAA5BxO,KAAKwQ,qBACLxQ,KAAKwQ,mBAAqB,IAE9BxQ,KAAKwQ,mBAAmBlQ,KAAKkO,EACjC,EACA6B,EAAWnQ,UAAU6O,sBAAwB,SAAUrC,EAAMsC,EAAOC,EAAkBzO,GAMlF,GALyB,OAArBR,KAAK8O,cACL9O,KAAK8O,YAAc9O,KAAK0O,gBAAgBQ,OAAOlP,KAAKmP,UAAUC,WAC9DpP,KAAK8O,YAAY9C,KAAKhM,KAAKmP,UAAUE,eAAgBrP,KAAKmP,UAAUG,iBACpEtP,KAAK8O,YAAYyD,kBAAkBvS,KAAKwO,SAExCxO,KAAK8O,YAAYsC,SAAU,CAC3B,IAAI7B,EAAQvP,KAAK8O,YAAYS,MACzBiB,EAAqBxQ,KAAKwQ,mBAC9B,GAA2B,OAAvBA,EACA,IAAK,IAAIjK,KAAYgJ,EAEjB,IADA,IAAIiD,EAAOjD,EAAMhJ,GACRF,EAAI,EAAGsL,EAAKnB,EAAmB/O,OAAQ4E,EAAIsL,IAAMtL,EAAG,CACzD,IAAImI,EAASgC,EAAmBnK,GAChCmM,EAAKtC,YAAY1B,EAAOqC,YAAarC,EAAOgD,kBAChD,CAGRxR,KAAKyS,cAAgBlD,EACrBC,EAAUoB,gBAAgBlE,EAAMsC,EAAOO,EAAON,EAAkBzO,EACpE,CACJ,EACA6P,EAAWnQ,UAAUiQ,QAAU,SAAUhB,GACrCnP,KAAKmP,UAAYA,CACrB,EACAkB,EAAWnQ,UAAU8L,KAAO,SAAUU,GAC9B1M,KAAK8O,aACL9O,KAAK8O,YAAY9C,KAAKU,EAAK2C,eAAgB3C,EAAK4C,gBAExD,EACAe,EAAWnQ,UAAUkQ,SAAW,WACxBpQ,KAAK8O,aACL9O,KAAK8O,YAAYsB,UAEzB,EACAC,EAAWnQ,UAAU2P,SAAW,WACxB7P,KAAK8O,aACL9O,KAAK8O,YAAYe,UAEzB,EACAQ,EAAWnQ,UAAU4P,OAAS,WACtB9P,KAAK8O,aACL9O,KAAK8O,YAAYgB,QAEzB,EACOO,CACX,CAlMiB,GAmMbb,EAAa,WACb,SAASA,IACT,CA2EA,OA1EAA,EAAUkD,YAAc,SAAUpP,GAC9B,YAA6BlC,IAAzBkC,EAAK6K,gBACEqB,EAAUmD,eAEdrP,EAAK6K,gBAAgBtD,KAChC,EACA2E,EAAUC,eAAiB,SAAU/C,EAAM6C,EAAON,EAAkBzO,EAAOoS,GACvE,IAAI5D,EACJ,GAAa,OAATtC,EACAsC,EAAQf,MAEP,CACD,IAAI4E,EAAanG,EAAKmF,SAASgB,WAC3BlB,EAAKkB,EAAWpR,OACpBuN,EAAQ,IAAI8D,MAAMnB,GAClB,IAAK,IAAItL,EAAI,EAAGA,EAAIsL,IAAMtL,EACtB2I,EAAM3I,GAAKwM,EAAWxM,EAE9B,CACAmJ,EAAUoB,gBAAgBlE,EAAMsC,EAAOO,EAAON,EAAkBzO,EAAOoS,EAC3E,EACApD,EAAU2B,iBAAmB,SAAUzE,EAAM6C,EAAON,GAChD,IAAK,IAAI1I,KAAYgJ,EACjBA,EAAMhJ,GAAUwJ,WAAWrD,EAAMuC,EAEzC,EACAO,EAAUwC,gBAAkB,SAAUzC,EAAON,GACzC,IAAK,IAAI1I,KAAYgJ,EACjBA,EAAMhJ,GAAU0J,UAAUhB,EAElC,EACAO,EAAUoB,gBAAkB,SAAUlE,EAAMsC,EAAOO,EAAON,EAAkBzO,EAAOoS,GAC/E,IAAK,IAAIvM,EAAI,EAAGsL,EAAK3C,EAAMvN,OAAQ4E,EAAIsL,IAAMtL,EAAG,CAC5C,IAAI0M,EAAc/D,EAAM3I,GACpB2M,EAAWD,EAAYC,SAC3B,GAAID,EAAYzC,0BAA2B,CAEvC,IAAK,IAAI/J,KADTwM,EAAYpE,SAASyD,UAAU7C,GACVA,EACjBA,EAAMhJ,GAAU2J,YAAYxD,EAAMqG,EAAYpE,UAElDK,EAAMtO,OAAO2F,EAAG,GAChBsL,IACAtL,GACJ,MACK,GAAiB,IAAb2M,GAA+B,IAAbA,GAAkBD,EAAYpE,oBAAoBJ,EACzE,GAAiB,IAAbyE,GAAkB9L,EAAiB6L,GACnC/D,EAAMtO,OAAO2F,EAAG,GAChBsL,IACAtL,QAEC,CACD,IAAIgL,EAAQ9B,EAAMqD,GAAuBpD,EAAUkD,YAAYK,IAC3D1B,IACAA,EAAM1B,QAAQjD,EAAMqG,EAAa9D,EAAkBzO,GACnDwO,EAAMtO,OAAO2F,EAAG,GAChBsL,IACAtL,IAER,MAGA2I,EAAMtO,OAAO2F,EAAG,GAChBsL,IACAtL,GAER,CACA,IAAK,IAAIE,KAAYgJ,EAAO,CACxB,IAAIiD,EAAOjD,EAAMhJ,GACbiM,EAAKxC,wBACLwC,EAAKzD,sBAAsBrC,EAAMsC,EAAOC,EAAkBzO,EAElE,CACJ,EACAgP,EAAUmD,eAAiB,0BACpBnD,CACX,CA9EgB,GAgFZyD,EAAkC,WAClC,SAASA,EAA+BnR,GACpC9B,KAAK8B,MAAQA,EACb9B,KAAK8B,MAAMoR,mBACf,CAKA,OAJAD,EAA+B/S,UAAUiT,KAAO,WAC5CnT,KAAK8B,MAAMoR,oBACXlT,KAAK8B,MAAMsR,yBACf,EACOH,CACX,CAVqC,GAWjCI,EAAwC,WACxC,SAASA,EAAqCvR,GAC1C9B,KAAK8B,MAAQA,EACb9B,KAAK8B,MAAMwR,gBAAkBtT,KAC7BA,KAAKuT,SAAWvT,KAAKwT,iBACzB,CAiBA,OAhBAH,EAAqCnT,UAAUuT,2BAA6B,WAExE,OADAzT,KAAK8B,MAAMsR,0BACJpT,KAAKuT,QAChB,EACAF,EAAqCnT,UAAUwT,QAAU,WACrD1T,KAAK2T,kBACT,EACAN,EAAqCnT,UAAUyT,iBAAmB,WAC9D,MAAM,IAAInL,MAAM,0BACpB,EACA6K,EAAqCnT,UAAUsT,gBAAkB,WAC7D,IAAII,EAAQ5T,KACZ,OAAO,IAAI6T,QAAQ,SAAUH,GACzBE,EAAMD,iBAAmBD,CAC7B,EACJ,EACOL,CACX,CAvB2C,GAwBvCS,EAA0B,WAC1B,SAASA,IACL9T,KAAKsT,gBAAkB,KACvBtT,KAAKkT,kBAAoB,CAC7B,CAmBA,OAlBAY,EAAuB5T,UAAU6T,WAAa,WAC1C,OAAgC,OAAzB/T,KAAKsT,gBACN,IAAID,EAAqCrT,MACzC,IACV,EACA8T,EAAuB5T,UAAU8T,OAAS,WACtC,OAAO,IAAIf,EAA+BjT,KAC9C,EACA8T,EAAuB5T,UAAUkT,wBAA0B,WACvD,GAAIpT,KAAKkT,mBAAqB,IAC1BlT,KAAKkT,kBAAoB,EACI,OAAzBlT,KAAKsT,iBAA0B,CAC/B,IAAIW,EAAQjU,KAAKsT,gBACjBtT,KAAKsT,gBAAkB,KACvBW,EAAMP,SACV,CAER,EACOI,CACX,CAxB6B,GA0BzBI,EAAQ,WACR,SAASA,EAAK9E,EAAWpL,EAAa6N,EAAUsC,EAAaC,EAAU7D,EAAUhB,GAsB7E,IAAK,IAAI8E,KArBTrU,KAAKoP,UAAYA,EACjBpP,KAAKgE,YAAcA,EACnBhE,KAAK0N,UAAY1J,EAAY0J,UAC7B1N,KAAK6R,SAAWA,EAChB7R,KAAKsU,WAAazC,EAASyC,WAC3BtU,KAAKuU,UAAY1C,EAAS0C,UAC1BvU,KAAKmU,YAAcA,EACnBnU,KAAKoU,SAAWA,EAChBpU,KAAKuQ,SAAWA,EAChBvQ,KAAKuP,MAAQA,EACbvP,KAAKoR,UAAW,EAChBpR,KAAKwU,WAAY,EACjBxU,KAAKyU,SAAU,EACfzU,KAAK0U,YAAa,EAClB1U,KAAKqP,eAAiB,KACtBrP,KAAKsP,gBAAkB,KACvBtP,KAAK2U,WAAa,KAClB3U,KAAK4U,eAAiB,KACtB5U,KAAK6U,uBAAoBzT,EACzBpB,KAAK8U,mBAAoB,EACzB9U,KAAK8O,YAAc,KACLS,EAAO,CACjBvP,KAAKoR,UAAW,EAChB,KACJ,CACJ,CAkJA,OAjJA8C,EAAKhU,UAAU6U,cAAgB,WAC3B/U,KAAKgE,YAAYgR,kBAAkBhV,KACvC,EACAkU,EAAKhU,UAAUiQ,QAAU,WACrB,IAAI9J,EACAsL,EACAwC,EAAcnU,KAAKmU,YACvB,IAAK9N,EAAI,EAAGsL,EAAKwC,EAAY1S,OAAQ4E,EAAIsL,IAAMtL,EAC3C8N,EAAY9N,GAAG8J,QAAQnQ,KAE/B,EACAkU,EAAKhU,UAAU8L,KAAO,SAAUqD,EAAgBC,EAAiB2F,GAC7D,IAAId,EACAC,EACA7D,EACAlK,EACAsL,EACJ,IAAIsD,IAAiBjV,KAAK8U,kBAA1B,CAGA,GAAI9U,KAAKyU,QAAS,CACd,GAAIzU,KAAKqP,iBAAmBA,EACxB,OAEJrP,KAAK8P,QACT,CAMA,IALA9P,KAAKyU,SAAU,EACfzU,KAAKqP,eAAiBA,EACtBrP,KAAKsP,gBAAkBA,IAAmB,QAAsBD,GAChErP,KAAK0N,UAAUwH,YAAY,aAAclV,MAEpCqG,EAAI,EAAGsL,GADZyC,EAAWpU,KAAKoU,UACU3S,OAAQ4E,EAAIsL,IAAMtL,EACxC+N,EAAS/N,GAAG2F,KAAKhM,MAOrB,IAL4B,OAAxBA,KAAK4U,iBACLvF,EAAerD,KAAKhM,KAAK4U,eAAevF,eAAgBrP,KAAK4U,eAAetF,iBAC5EtP,KAAK4U,eAAiB,MAGrBvO,EAAI,EAAGsL,GADZwC,EAAcnU,KAAKmU,aACU1S,OAAQ4E,EAAIsL,IAAMtL,EAC3C8N,EAAY9N,GAAG2F,KAAKhM,MAGxB,IAAKqG,EAAI,EAAGsL,GADZpB,EAAWvQ,KAAKuQ,UACU9O,OAAQ4E,EAAIsL,IAAMtL,EACxCkK,EAASlK,GAAG2F,KAAKqD,EAAgBC,GAAiB,GAElDtP,KAAKoR,UACL5B,EAAUC,eAAezP,KAAK8O,YAAa9O,KAAKuP,MA5BpD,CA8BJ,EACA2E,EAAKhU,UAAUiV,WAAa,SAAUtJ,GAClC7L,KAAKoU,SAAS9T,KAAKuL,GACf7L,KAAKyU,SACL5I,EAAQG,KAAKhM,KAErB,EACAkU,EAAKhU,UAAU4P,OAAS,WACpB,IAAIqE,EACAC,EACA7D,EACAlK,EACAsL,EACJ,GAAI3R,KAAKyU,QAAS,CAOd,IANAzU,KAAKyU,SAAU,EACfzU,KAAK0N,UAAUwH,YAAY,eAAgBlV,MACnB,OAApBA,KAAK2U,YACL3U,KAAK2U,WAAW7E,SAGfzJ,EAAI,EAAGsL,GADZyC,EAAWpU,KAAKoU,UACU3S,OAAQ4E,EAAIsL,IAAMtL,EACxC+N,EAAS/N,GAAGyJ,SAGhB,IAAKzJ,EAAI,EAAGsL,GADZwC,EAAcnU,KAAKmU,aACU1S,OAAQ4E,EAAIsL,IAAMtL,EAC3C8N,EAAY9N,GAAGyJ,SAGnB,IAAKzJ,EAAI,EAAGsL,GADZpB,EAAWvQ,KAAKuQ,UACU9O,OAAQ4E,EAAIsL,IAAMtL,EACxCkK,EAASlK,GAAGyJ,SAEhB9P,KAAKqP,eAAiB,KACtBrP,KAAKsP,gBAAkB,IAC3B,CACJ,EACA4E,EAAKhU,UAAUqS,kBAAoB,SAAU6C,GACzCA,EAAQnE,WAAWC,aAAalR,KAAK6R,SAAUuD,EACnD,EACAlB,EAAKhU,UAAUmV,cAAgB,SAAU/C,GACrCA,EAAOR,YAAY9R,KAAK6R,SAC5B,EACAqC,EAAKhU,UAAU0P,YAAc,WAKzB,IAJA,IAGI0F,EAHAzD,EAAW7R,KAAK6R,SAChBM,EAAUnS,KAAKsU,WACfiB,EAAMvV,KAAKuU,UAERpC,IACHmD,EAAOnD,EAAQqD,YACf3D,EAASC,YAAYK,GACjBA,IAAYoD,IAGhBpD,EAAUmD,CAElB,EACApB,EAAKhU,UAAUkQ,SAAW,WACtB,IAAI+D,EACA5D,EACAlK,EACAsL,EACJ,IAAI3R,KAAK0U,WAAT,CAQA,IALA1U,KAAK0U,YAAa,EACM,OAApB1U,KAAK2U,YACL3U,KAAK2U,WAAWvE,WAGf/J,EAAI,EAAGsL,GADZwC,EAAcnU,KAAKmU,aACU1S,OAAQ4E,EAAIsL,IAAMtL,EAC3C8N,EAAY9N,GAAG+J,WAGnB,IAAK/J,EAAI,EAAGsL,GADZpB,EAAWvQ,KAAKuQ,UACU9O,OAAQ4E,EAAIsL,IAAMtL,EACxCkK,EAASlK,GAAG+J,UAXhB,CAaJ,EACA8D,EAAKhU,UAAU2P,SAAW,WACtB,IAAIsE,EACA5D,EACAlK,EACAsL,EACJ,GAAI3R,KAAK0U,WAAY,CAMjB,IALA1U,KAAK0U,YAAa,EACM,OAApB1U,KAAK2U,YACL3U,KAAK2U,WAAW9E,WAGfxJ,EAAI,EAAGsL,GADZwC,EAAcnU,KAAKmU,aACU1S,OAAQ4E,EAAIsL,IAAMtL,EAC3C8N,EAAY9N,GAAGwJ,WAGnB,IAAKxJ,EAAI,EAAGsL,GADZpB,EAAWvQ,KAAKuQ,UACU9O,OAAQ4E,EAAIsL,IAAMtL,EACxCkK,EAASlK,GAAGwJ,UAEpB,CACJ,EACOqE,CACX,CA9KW,GAgLPuB,EAAY,WACZ,SAASA,IACT,CAuBA,OAtBAA,EAASvV,UAAUwV,MAAQ,SAAU3V,GACjC,OAAO8T,QAAQH,SAAQ,EAC3B,EACA+B,EAASvV,UAAUyV,MAAQ,SAAU5V,GACjC,OAAO8T,QAAQH,SAAQ,EAC3B,EACA+B,EAASvV,UAAU0V,YAAc,SAAU7V,EAAS8V,GAEhD,OADA9V,EAAQ+V,UAAUC,OAAOF,GAClBhC,QAAQH,SAAQ,EAC3B,EACA+B,EAASvV,UAAU8V,SAAW,SAAUjW,EAAS8V,GAE7C,OADA9V,EAAQ+V,UAAUG,IAAIJ,GACfhC,QAAQH,SAAQ,EAC3B,EACA+B,EAASvV,UAAUgW,QAAU,SAAUnW,EAAS8V,GAC5C,OAAOhC,QAAQH,SAAQ,EAC3B,EACA+B,EAASvV,UAAUiW,YAAc,SAAUC,GACvC,OAAOvC,QAAQH,SAAQ,EAC3B,EACA+B,EAASvV,UAAUmW,eAAiB,SAAUC,EAAYhM,GAAc,EACxEmL,EAASvV,UAAUqW,iBAAmB,SAAUD,GAAc,EACvDb,CACX,CA1Be,GAyCXe,EAAY,WACZ,SAASA,EAAShI,EAAQjL,EAAmBkT,QACnB,IAAlBA,IAAuBA,EAAWhB,EAAS1M,UAC/C/I,KAAKwO,OAASA,EACdxO,KAAKuD,kBAAoBA,EACzBvD,KAAKqP,eAAiB,KACtBrP,KAAKsP,gBAAkB,KACvBtP,KAAKyW,SAAWA,EAChBzW,KAAKuQ,SAAW,GAChBvQ,KAAKyU,SAAU,EACfzU,KAAK0U,YAAa,EAClB1U,KAAK0W,iBAAmB,KACxBlI,EAAOG,SAAW3O,KAClBwO,EAAO8B,2BAA4B,CACvC,CAgUA,OA/TAkG,EAAStW,UAAUyW,YAAc,SAAUjK,EAAMkK,QACtB,IAAnBA,IAAwBA,EAAY,SACxC,IAAI/B,EA9BZ,SAA8BnI,GAC1B,QAA+BtL,IAA3BsL,EAAKmI,kBACL,OAAOnI,EAAKmI,kBAGhB,IADA,IAAI1C,EAAUzF,EAAK4H,WACZnC,GAAgC,IAArBA,EAAQa,UACtBb,EAAUA,EAAQqD,YAEtB,OAAIrD,GAAgC,IAArBA,EAAQa,SACXtG,EAAKmI,kBAAoB1C,EAAQ2D,UAAUe,SAAS,cAAgB1E,EAAU,KAElFzF,EAAKmI,kBAAoB,IACrC,CAkBgCiC,CAAqBpK,GAC7C,GAA0B,OAAtBmI,EACA,OAAQ+B,GACJ,IAAK,QACD,OAAO5W,KAAKyW,SAASf,MAAMb,GAC/B,IAAK,QACD,OAAO7U,KAAKyW,SAASd,MAAMd,GAC/B,QACI,MAAM,IAAIrM,MAAM,gCAAkCoO,GAGlE,EACAJ,EAAStW,UAAU6W,4BAA8B,WAC7C,IAAIzE,EAAStS,KAAKwO,OAClBxO,KAAKuQ,SAASjQ,KAAK,CACfuR,SAAUS,EACVgC,WAAYhC,EAAOgC,WACnBC,UAAWjC,EAAOiC,UAClBQ,cAAe,WAAc,EAC7BnF,YAAa,WAET,IADA,IAAIoH,EACGA,EAAO1E,EAAOiC,WACjBjC,EAAO2E,YAAYD,EAE3B,EACA7G,QAAS,WAAc,EACvBnE,KAAM,WAAc,EACpB8D,OAAQ,WAAc,EACtBM,SAAU,WAAc,EACxBP,SAAU,WAAc,GAEhC,EACA2G,EAAStW,UAAU8L,KAAO,SAAUqD,EAAgBC,GAChD,IAAIjJ,EACAsL,EACApB,EACJ,GAAIvQ,KAAKyU,QAAS,CACd,GAAIzU,KAAKqP,iBAAmBA,EACxB,OAEJrP,KAAK8P,QACT,CAKA,IAJA9P,KAAKyU,SAAU,EACfzU,KAAKqP,eAAiBA,EAAiBA,GAAkBrP,KAAKqP,eAC9DrP,KAAKsP,gBAAkBA,EAAkBA,GAAmBtP,KAAKsP,gBAE5DjJ,EAAI,EAAGsL,GADZpB,EAAWvQ,KAAKuQ,UACU9O,OAAQ4E,EAAIsL,IAAMtL,EACxCkK,EAASlK,GAAG2F,KAAKqD,EAAgBC,GAAiB,EAE1D,EACAkH,EAAStW,UAAU4P,OAAS,WACxB,GAAI9P,KAAKyU,QAAS,CACd,IACI9C,EADAtL,OAAS,EAETkK,EAAWvQ,KAAKuQ,SAIpB,IAHAvQ,KAAKyU,SAAU,EACfzU,KAAKqP,eAAiB,KACtBrP,KAAKsP,gBAAkB,KAClBjJ,EAAI,EAAGsL,EAAKpB,EAAS9O,OAAQ4E,EAAIsL,IAAMtL,EACxCkK,EAASlK,GAAGyJ,QAEpB,CACJ,EACA0G,EAAStW,UAAU+V,IAAM,SAAUvJ,GAQ/B,GAPI1M,KAAKuD,kBACLmJ,EAAK2I,cAAcrV,KAAKwO,QAGxB9B,EAAK6F,kBAAkBvS,KAAKwO,QAEhCxO,KAAKuQ,SAASjQ,KAAKoM,GACf1M,KAAK0U,WAEL,OADAhI,EAAK0D,WACEpQ,KAAK2W,YAAYjK,EAAM,QAEtC,EACA8J,EAAStW,UAAUgX,OAAS,SAAU1W,EAAOkM,GACzC,IAAI6D,EAAWvQ,KAAKuQ,SAChB9O,EAAS8O,EAAS9O,OACtB,OAAe,IAAVjB,GAA0B,IAAXiB,GAAiBjB,GAASiB,EACnCzB,KAAKiW,IAAIvJ,IAEpBA,EAAK6F,kBAAkBhC,EAAS/P,GAAO8T,YACvC/D,EAAS7P,OAAOF,EAAO,EAAGkM,GACtB1M,KAAK0U,YACLhI,EAAK0D,WACEpQ,KAAK2W,YAAYjK,EAAM,eAFlC,EAIJ,EACA8J,EAAStW,UAAUiX,KAAO,SAAUC,EAAaC,GAC7C,GAAID,IAAgBC,EAApB,CAGA,IAAI9G,EAAWvQ,KAAKuQ,SAChB7D,EAAO6D,EAAS6G,GACpB1K,EAAKkD,cACLlD,EAAK6F,kBAAkBhC,EAAS8G,GAAa/C,YAC7C/D,EAAS7P,OAAO0W,EAAa,GAC7B7G,EAAS7P,OAAO2W,EAAa,EAAG3K,EANhC,CAOJ,EACA8J,EAAStW,UAAU6V,OAAS,SAAUrJ,EAAMqI,EAAeuC,GACvD,OAAOtX,KAAKuX,SAASvX,KAAKuQ,SAAS9P,QAAQiM,GAAOqI,EAAeuC,EACrE,EACAd,EAAStW,UAAUsX,WAAa,SAAUC,EAAe1C,EAAeuC,GACpE,IAGIjR,EAHAuN,EAAQ5T,KACRuQ,EAAWvQ,KAAKuQ,SAChBoB,EAAK8F,EAAchW,OAEnBiW,EAAa,GACjBD,EAAcE,QAAQ,SAAU/F,GAC5B,GAAI0F,EACA1F,EAAMhC,kBADV,CAIA,IAAIgI,EAAYhE,EAAM+C,YAAY/E,EAAO,SACrCgG,EACAF,EAAWpX,KAAKsX,EAAUC,KAAK,WAAc,OAAOjG,EAAMhC,aAAe,IAGzEgC,EAAMhC,aANV,CAQJ,GACA,IAAIkI,EAAe,WACf,GAAIlE,EAAMc,WACN,IAAKrO,EAAI,EAAGA,EAAIsL,IAAMtL,EAClBoR,EAAcpR,GAAGwJ,WAGzB,GAAIkF,EACA,IAAK1O,EAAI,EAAGA,EAAIsL,IAAMtL,EAClBoR,EAAcpR,GAAG0O,gBAGzB,IAAK1O,EAAI,EAAGA,EAAIsL,IAAMtL,EAAG,CACrB,IAAI7F,EAAQ+P,EAAS9P,QAAQgX,EAAcpR,IACvC7F,GAAS,GACT+P,EAAS7P,OAAOF,EAAO,EAE/B,CACJ,EACA,OAAIkX,EAAWjW,OAAS,EACboS,QAAQkE,IAAIL,GAAYG,KAAK,WAAc,OAAOC,GAAgB,GAEtEA,GACX,EACAtB,EAAStW,UAAUqX,SAAW,SAAU/W,EAAOuU,EAAeuC,GAC1D,IAAI1D,EAAQ5T,KACR0M,EAAO1M,KAAKuQ,SAAS/P,GACrBsX,EAAe,WAUf,OATAtX,EAAQoT,EAAMrD,SAAS9P,QAAQiM,GAC/BA,EAAKkD,cACLgE,EAAMrD,SAAS7P,OAAOF,EAAO,GACzBoT,EAAMc,YACNhI,EAAKmD,WAELkF,GACArI,EAAKqI,gBAEFrI,CACX,EACA,IAAK4K,EAAe,CAChB,IAAIM,EAAY5X,KAAK2W,YAAYjK,EAAM,SACvC,GAAIkL,EACA,OAAOA,EAAUC,KAAK,WAAc,OAAOC,GAAgB,EAEnE,CACA,OAAOA,GACX,EACAtB,EAAStW,UAAU+P,UAAY,SAAU8E,EAAeuC,GACpD,IAGIjR,EAHAuN,EAAQ5T,KACRuQ,EAAWvQ,KAAKuQ,SAChBoB,EAAKpB,EAAS9O,OAEdiW,EAAa,GACjBnH,EAASoH,QAAQ,SAAU/F,GACvB,GAAI0F,EACA1F,EAAMhC,kBADV,CAIA,IAAIgI,EAAYhE,EAAM+C,YAAY/E,EAAO,SACrCgG,EACAF,EAAWpX,KAAKsX,EAAUC,KAAK,WAAc,OAAOjG,EAAMhC,aAAe,IAGzEgC,EAAMhC,aANV,CAQJ,GACA,IAAIkI,EAAe,WACf,GAAIlE,EAAMc,WACN,IAAKrO,EAAI,EAAGA,EAAIsL,IAAMtL,EAClBkK,EAASlK,GAAGwJ,WAGpB,GAAIkF,EACA,IAAK1O,EAAI,EAAGA,EAAIsL,IAAMtL,EAAG,CACrB,IAAIuL,EAAQrB,EAASlK,GACjBuL,GACAA,EAAMmD,eAEd,CAEJnB,EAAMrD,SAAW,EACrB,EACA,OAAImH,EAAWjW,OAAS,EACboS,QAAQkE,IAAIL,GAAYG,KAAK,WAAc,OAAOC,GAAgB,GAEtEA,GACX,EACAtB,EAAStW,UAAUkQ,SAAW,WAC1B,IAAI/J,EACAsL,EACApB,EACAqB,EACJ,IAAI5R,KAAK0U,WAKT,IAFA1U,KAAK0U,YAAa,EAEbrO,EAAI,EAAGsL,GADZpB,EAAWvQ,KAAKuQ,UACU9O,OAAQ4E,EAAIsL,IAAMtL,GACxCuL,EAAQrB,EAASlK,IACX+J,WACNpQ,KAAK2W,YAAY/E,EAAO,QAEhC,EACA4E,EAAStW,UAAU2P,SAAW,WAC1B,IAAIxJ,EACAsL,EACApB,EACJ,GAAIvQ,KAAK0U,WAGL,IAFA1U,KAAK0U,YAAa,EAEbrO,EAAI,EAAGsL,GADZpB,EAAWvQ,KAAKuQ,UACU9O,OAAQ4E,EAAIsL,IAAMtL,EACxCkK,EAASlK,GAAGwJ,UAGxB,EACA2G,EAAStW,UAAUkS,UAAY,SAAU7C,GACrC,IAAIqE,EAAQ5T,KACZA,KAAKgY,eAAiBzI,EACtBvP,KAAKiW,IAAMjW,KAAKiY,eAChBjY,KAAKkX,OAASlX,KAAKkY,kBACnBlY,KAAKmX,KAAOnX,KAAKmY,gBACjBnY,KAAK+V,OAAS/V,KAAKoY,kBACnBpY,KAAKuX,SAAWvX,KAAKqY,oBACrBrY,KAAKwX,WAAaxX,KAAKsY,sBACvBtY,KAAKiQ,UAAYjQ,KAAKuY,qBACtBvY,KAAKuQ,SAASoH,QAAQ,SAAUjL,GAAQ,OAAO8C,EAAUC,eAAe/C,EAAM6C,EAAOqE,EAAQ,EACjG,EACA4C,EAAStW,UAAU+X,eAAiB,SAAUvL,GAC1C8C,EAAUC,eAAe/C,EAAM1M,KAAKgY,eAAgBhY,MACpDA,KAAKuQ,SAASjQ,KAAKoM,GACf1M,KAAK0U,YACLhI,EAAK0D,UAEb,EACAoG,EAAStW,UAAUgY,kBAAoB,SAAU1X,EAAOkM,GACrC,IAAVlM,IAAgBR,KAAKuQ,SAAS9O,QAAWjB,GAASR,KAAKuQ,SAAS9O,OACjEzB,KAAKiW,IAAIvJ,IAGT8C,EAAUC,eAAe/C,EAAM1M,KAAKgY,eAAgBhY,KAAMQ,GAC1DR,KAAKuQ,SAAS7P,OAAOF,EAAO,EAAGkM,GAC3B1M,KAAK0U,YACLhI,EAAK0D,WAGjB,EACAoG,EAAStW,UAAUiY,gBAAkB,SAAUf,EAAaC,GACxD,GAAID,IAAgBC,EAApB,CAGA,IAAI9G,EAAWvQ,KAAKuQ,SAChB7D,EAAO6D,EAAS6G,GACpB5H,EAAU2B,iBAAiBzE,EAAM1M,KAAKgY,eAAgBhY,MACtDwP,EAAUC,eAAe/C,EAAM1M,KAAKgY,eAAgBhY,KAAMqX,GAC1D9G,EAAS7P,OAAO0W,EAAa,GAC7B7G,EAAS7P,OAAO2W,EAAa,EAAG3K,EANhC,CAOJ,EACA8J,EAAStW,UAAUkY,kBAAoB,SAAU1L,EAAMqI,GACnDvF,EAAU2B,iBAAiBzE,EAAM1M,KAAKgY,eAAgBhY,MACtDA,KAAKuQ,SAAS7P,OAAOV,KAAKuQ,SAAS9P,QAAQiM,GAAO,GAC9C1M,KAAK0U,YACLhI,EAAKmD,WAELkF,GACArI,EAAKqI,eAEb,EACAyB,EAAStW,UAAUmY,oBAAsB,SAAU7X,EAAOuU,GACtD,IAAIrI,EAAO1M,KAAKuQ,SAAS/P,GACzBgP,EAAU2B,iBAAiBzE,EAAM1M,KAAKgY,eAAgBhY,MACtDA,KAAKuQ,SAAS7P,OAAOF,EAAO,GACxBR,KAAK0U,YACLhI,EAAKmD,WAELkF,GACArI,EAAKqI,eAEb,EACAyB,EAAStW,UAAUoY,sBAAwB,SAAUb,EAAe1C,GAChE,IAAInB,EAAQ5T,KACZyX,EAAcE,QAAQ,SAAUjL,GAAQ,OAAOkH,EAAMmC,OAAOrJ,EAAMqI,EAAgB,EACtF,EACAyB,EAAStW,UAAUqY,qBAAuB,SAAUxD,GAChDvF,EAAUwC,gBAAgBhS,KAAKgY,eAAgBhY,MAG/C,IAFA,IAAIuQ,EAAWvQ,KAAKuQ,SAChBoB,EAAKpB,EAAS9O,OACT4E,EAAI,EAAGA,EAAIsL,IAAMtL,EAClB0O,EACAxE,EAASlK,GAAG0O,gBAEP/U,KAAK0U,YACVnE,EAASlK,GAAGwJ,WAGpB7P,KAAKuQ,SAAW,EACpB,EACOiG,CACX,CA/Ue,GAiVXgC,EAAY,EAAAC,SAaZC,EAA2B,IAZP,WACpB,SAASC,IACT,CAQA,OAPAA,EAAiBzY,UAAUoJ,IAAM,SAAU8F,EAAWvN,GAClD,IAAI+W,EAAK/W,EAAIgX,eACb,OAAOD,KAAMxJ,EAAYA,EAAUwJ,GAAOxJ,EAAUwJ,GAAMxJ,EAAU0J,OAAOjX,EAC/E,EACmB8D,EAAW,CAC1B6S,GACDG,EAEP,CAXuB,IAavB,SAASI,EAAoBlX,GACzB,GAAIA,IAAQ,KAAIwM,QACZ,OAAOrO,KAAKD,QAEhB,GAAI8B,IAAQmX,EAAkB,CAC1B,GAAIhZ,KAAKiZ,iBACL,OAAOjZ,KAAKiZ,iBAEhB,IAAIC,EAAUlZ,KAAKkD,YAAYc,YAC3BG,EAAmBnE,KAAKmE,iBAK5B,OAJIA,IACA+U,EAAU/U,EAAiB+U,EAAQC,OAASD,GAEhDlZ,KAAKiZ,iBAAmB,IAAID,EAAiBhZ,KAAMkZ,EAAS/U,GACrDnE,KAAKiZ,gBAChB,CACA,OAAIpX,IAAQ2U,QACcpV,IAAlBpB,KAAK2O,WACL3O,KAAK2O,SAAW,IAAI6H,EAASxW,KAAKD,QAASC,KAAKkD,YAAYK,mBAC5DvD,KAAKD,QAAQuQ,0BAA4BtQ,KAAKkD,YAAY4B,QAC1D9E,KAAKuQ,SAASjQ,KAAKN,KAAK2O,WAErB3O,KAAK2O,UAEZ9M,IAAQ/B,EACDE,KAAKoZ,gBAAkBpZ,KAAKoZ,cAAgB,IAAItZ,EAAcE,KAAKD,UAE1E8B,IAAQiS,EACD9T,KAAKqZ,yBAA2BrZ,KAAKqZ,uBAAyBrZ,KAAKsS,OAAOhJ,IAAIzH,IAErFA,IAAQyX,GACDtZ,KAAKuZ,cAEZ1X,IAAQ0C,EACDvE,KAAKkD,YAETlD,KAAKwZ,SAAS3X,EACzB,CAmBA,SAAS2B,EAAasD,GAClB,OAAO9G,KAAKyZ,SAASjW,aAAasD,EACtC,CACA,SAAS4S,EAAa5S,GAClB,OAAO9G,KAAKyZ,SAASC,aAAa5S,EACtC,CACA,SAAS6S,EAAa7S,EAAM+D,GACxB7K,KAAKyZ,SAASE,aAAa7S,EAAM+D,EACrC,CAgBA,SAAS+O,EAAkBC,EAAY9Z,EAASmD,EAAaiR,EAAaC,EAAU7D,EAAUuJ,EAAa3V,EAAkBuJ,GACzH,IAEIqM,EACA1T,EACAsL,EACAQ,EACApJ,EANA9D,EAAuB/B,EAAY+B,qBACnCJ,EAAc3B,EAAY2B,YAM9B,GAAI3B,EAAYwB,kBAIZ,OAHA0P,EAAS9T,KAAK4C,EAAYwB,kBAAkBoH,cAAc/L,EAAQyV,cAClEzV,EAAQyV,YAAYrO,uBAAwB,OAC5CpH,EAAQkR,WAAWgG,YAAYlX,GAGnC,GAAImD,EAAYsB,WAAY,CACxB,IACIgO,EADAwH,EAAgB,KAAI3H,cAAc,QAWtC,OARIG,EADAtP,EAAY+W,gBACL,IAAI1L,EAAgByL,EAAe9W,EAAYqD,SAAUrD,EAAY+W,gBAAiB/W,EAAYsD,qBAGlG,IAAI6J,EAAW2J,EAAe9W,EAAYqD,SAAUrD,EAAYsD,qBAE3E,KAAI0T,YAAYF,EAAeja,GAC/B+Z,EAAY5W,EAAYqD,UAAYiM,OACpC2B,EAAY7T,KAAKkS,EAErB,CACA,GAAItP,EAAY0B,WAAhB,CACI,IAAKyB,EAAI,EAAGsL,EAAK9M,EAAYpD,OAAQ4E,EAAIsL,IAAMtL,EAC3C+N,EAAS9T,KAAKuE,EAAYwB,GAAGyF,iBAEjC/L,EAAQkR,WAAWgG,YAAYlX,EAEnC,KANA,CAOA,GAAIkF,EAAqBxD,OAMrB,IALKyB,EAAYK,oBACbxD,EApDZ,SAA+BA,EAASsF,GACpC,IAAImJ,EAAS,KAAI6D,cAAc,UAC/B,GAAIhN,EAAoB,CACpB,IAAIiP,EAAavU,EAAQuU,WACrBA,GAAqC,eAAvBA,EAAW6F,UACzB3L,EAAO4L,eAAiB9F,GAE5B9F,EAAOiL,SAAW1Z,EAClByO,EAAOhL,aAAeA,EACtBgL,EAAOkL,aAAeA,EACtBlL,EAAOmL,aAAeA,CAC1B,CAEA,OADA,KAAIO,YAAY1L,EAAQzO,GACjByO,CACX,CAsCsB6L,CAAsBta,EAASmD,EAAYmC,qBAEzDwU,EAAW3W,EAAYkC,YAAc2U,EAjF7C,SAAgCzH,EAAQvS,EAASmD,EAAaqN,EAAUpM,EAAkBuJ,GACtF,IACIxI,EACAmB,EAFA+I,EAAYkD,EAAOgI,cAUvB,IAPAlL,EAAUrP,QAAUA,EACpBqP,EAAUlM,YAAcA,EACxBkM,EAAUmB,SAAWA,EACrBnB,EAAUmK,cAAgB7L,EAC1B0B,EAAUjL,iBAAmBA,EAE7BkC,GADAnB,EAAYhC,EAAYgC,WACVzD,OACP4E,KACH+I,EAAUmL,WAAWzP,IAAI5F,EAAUmB,GAAIqS,GAI3C,OAFAtJ,EAAUoK,SAAWpK,EAAU9F,IAC/B8F,EAAU9F,IAAMyP,EACT3J,CACX,CAiEYoL,CAAuBX,EAAW3W,EAAYuB,kBAAmB1E,EAASmD,EAAaqN,EAAUpM,EAAkBuJ,GAClHrH,EAAI,EAAGsL,EAAK1M,EAAqBxD,OAAQ4E,EAAIsL,IAAMtL,EAEpD0C,GADAoJ,EAAUlN,EAAqBoB,IACZjD,KAAK8L,OAAO6K,EAAkB5H,EAASpS,EAASqU,GACnED,EAAY7T,KAAKyI,GAGzB,IAAK1C,EAAI,EAAGsL,EAAK9M,EAAYpD,OAAQ4E,EAAIsL,IAAMtL,EAC3C+N,EAAS9T,KAAKuE,EAAYwB,GAAGyF,cAAc/L,GAd/C,CAgBJ,CACA,SAAS0a,EAAoBC,EAAOvV,GAChC,IACIwV,EACAtU,EACA8L,EACAtQ,EACAgJ,EALAxH,EAAaqX,EAAME,MAAM,KAO7B,IADAzV,EAASA,GAAU,CAAC,EACfkB,EAAI,EAAGA,EAAIhD,EAAW5B,OAAQ4E,IAE/BsU,GADAxI,EAAU9O,EAAWgD,IACO5F,QAAQ,KACpCoB,EAAMsQ,EAAQ7E,UAAU,EAAGqN,GAAmBE,OAC9ChQ,EAAQsH,EAAQ7E,UAAUqN,EAAoB,GAAGE,OACjD1V,EAAOtD,GAAOgJ,EAElB,OAAO1F,CACX,CACA,SAAS2V,EAAoBtT,GACzB,IAAIuT,EAAS,GACb,IAAK,IAAIlZ,KAAO2F,EACZuT,GAAUlZ,EAAM,IAAM2F,EAAI3F,GAAO,IAErC,OAAOkZ,CACX,CA6CA,IAAI/B,EAAoB,WACpB,SAASA,EAAiBgC,EAAiBhX,EAAaG,GACpDnE,KAAKgb,gBAAkBA,EACvBhb,KAAKgE,YAAcA,EACnBhE,KAAKib,yBAA2B,CAAE9W,iBAAkBA,EACxD,CAsBA,OArBA6U,EAAiB9Y,UAAUgP,OAAS,WAChC,IAAIxC,EAAO1M,KAAKgE,YAAYkL,OAAOlP,KAAKgb,gBAAgBV,cAAeta,KAAKib,0BAE5E,OADAvO,EAAKoI,mBAAoB,EAClBpI,CACX,EACAlH,OAAOc,eAAe0S,EAAiB9Y,UAAW,YAAa,CAC3DoJ,IAAK,WACD,OAAOtJ,KAAKgE,YAAYkX,SAC5B,EACAzQ,YAAY,EACZD,cAAc,IAElBwO,EAAiB9Y,UAAUib,aAAe,SAAUC,EAAMC,GACtDrb,KAAKgE,YAAYmX,aAAaC,EAAMC,EACxC,EACArC,EAAiB9Y,UAAUob,cAAgB,WACvC,OAAOtb,KAAKgE,YAAYsX,eAC5B,EACAtC,EAAiB9Y,UAAU8U,kBAAoB,SAAUtI,GACrD1M,KAAKgE,YAAYgR,kBAAkBtI,EACvC,EACOsM,CACX,CA5BuB,GA6BnBuC,EAAe,WACf,SAASA,EAAYC,EAAUC,EAAc/N,GACzC1N,KAAKkb,WAAY,EACjBlb,KAAKwb,SAAWA,EAChBxb,KAAKyb,aAAeA,EACpBzb,KAAK0N,UAAYA,EACjB1N,KAAK0b,WAAa,EAClB1b,KAAK2b,MAAQ,IACjB,CA8EA,OA7EAJ,EAAYrb,UAAUib,aAAe,SAAUC,EAAMC,GAC7CD,IACa,MAATA,EACAA,EAAOQ,OAAOC,UAEO,iBAATT,IACZA,EAAOU,SAASV,EAAM,OAGN,IAApBpb,KAAK0b,WAAqBL,IAC1Brb,KAAK0b,UAAYE,OAAOR,IAExBpb,KAAK0b,UAAY,EACjB1b,KAAK2b,MAAQ,GAGb3b,KAAK2b,MAAQ,KAEjB3b,KAAKkb,UAAYlb,KAAK0b,UAAY,CACtC,EACAH,EAAYrb,UAAUob,cAAgB,WAClC,OAAsB,OAAftb,KAAK2b,OAAkB3b,KAAK2b,MAAMha,OAAiB,IAC9D,EACA4Z,EAAYrb,UAAU8U,kBAAoB,SAAUtI,GAC5CA,EAAKgI,YACLhI,EAAKmD,WAELnD,EAAK+H,SACL/H,EAAKoD,SAEU,OAAf9P,KAAK2b,OAAkB3b,KAAK2b,MAAMla,OAASzB,KAAK0b,YAChDhP,EAAK8H,WAAY,EACjBxU,KAAK2b,MAAMrb,KAAKoM,GAExB,EACA6O,EAAYrb,UAAUgP,OAAS,SAAUE,EAAW2M,EAAmBhc,GACnEgc,EAAoBA,GAAqB/Y,EAAoBD,OAC7D,IAAIiZ,EAAahc,KAAKsb,gBACtB,GAAmB,OAAfU,EACA,OAAOA,EAEX,IAUI3V,EACAsL,EACAjF,EACAuP,EACA/Y,EAdA2O,EAAWkK,EAAkB9Y,QAAUjD,KAAKwb,SAAWxb,KAAKwb,SAASU,WAAU,GAC/EC,EAAgBtK,EAASuK,iBAAiB,cAC1CX,EAAezb,KAAKyb,aACpB/N,EAAY1N,KAAK0N,UACjByG,EAAc,GACdC,EAAW,GACX7D,EAAW,GACXuJ,EAActU,OAAO0J,OAAO,MAC5B2K,EAAa,CAAEwC,KAAMjN,GACrBjL,EAAmB4X,EAAkB5X,iBAezC,IATAnE,KAAK0N,UAAUwH,YAAY,eAAgBlV,KAAMoP,EAAWyC,EAAUkK,GAClEhc,GAAyC,OAA9BC,KAAKsc,sBA3I5B,SAAmClN,EAAWrP,EAASmD,EAAaiR,EAAaC,EAAU7D,GACvF,IAIIlK,EACAsL,EACAQ,EACApJ,EACAwT,EARAtX,EAAuB/B,EAAY+B,qBACnCJ,EAAc3B,EAAY2B,YAC1BK,EAAYhC,EAAYgC,UACxBK,EAASrC,EAAYqC,OAOzB,IADAc,EAAInB,EAAUzD,OACP4E,KACH+I,EAAUmL,WAAWzP,IAAI5F,EAAUmB,GAAIqS,GAE3C,IAAK,IAAI7W,KAAO0D,EAEZ,GADAgX,EAAwBxc,EAAQ2Z,aAAa7X,IAEzC,GAAY,UAARA,EACA9B,EAAQ4Z,aAAa,QAAS4C,EAAwB,IAAMhX,EAAO1D,SAElE,GAAY,UAARA,EAAiB,CACtB,IAAI2a,EAAc/B,EAAoBlV,EAAO1D,IAC7C4Y,EAAoB8B,EAAuBC,GAC3Czc,EAAQ4Z,aAAa,QAASmB,EAAoB0B,GACtD,OAGAzc,EAAQ4Z,aAAa9X,EAAK0D,EAAO1D,IAGzC,GAAIoD,EAAqBxD,OACrB,IAAK4E,EAAI,EAAGsL,EAAK1M,EAAqBxD,OAAQ4E,EAAIsL,IAAMtL,GAEpD0C,GADAoJ,EAAUlN,EAAqBoB,IACZjD,KAAK8L,OAAOE,EAAW+C,EAASpS,EAASqU,IAC/CtF,aACTyB,EAASjQ,KAAKyI,EAAS+F,aAE3BqF,EAAY7T,KAAKyI,GAGzB,IAAK1C,EAAI,EAAGsL,EAAK9M,EAAYpD,OAAQ4E,EAAIsL,IAAMtL,EAC3C+N,EAAS9T,KAAKuE,EAAYwB,GAAGyF,cAAc/L,GAEnD,CAiGY0c,CAA0BrN,EAAWrP,EAASC,KAAKsc,qBAAsBnI,EAAaC,EAAU7D,GAEhGwL,EAAkB9Y,SAAW4O,EAASrO,aAAa,kBAEnDN,EAAcuY,GADdQ,EAAepK,GACyB6H,aAAa,iBACrDE,EAAkBC,EAAYoC,EAAc/Y,EAAaiR,EAAaC,EAAU7D,EAAUuJ,EAAa3V,EAAkBuJ,IAExHrH,EAAI,EAAGsL,EAAKwK,EAAc1a,OAAQ4E,EAAIsL,IAAMtL,EAE7CnD,EAAcuY,GADdQ,EAAeE,EAAc9V,IACWqT,aAAa,iBACrDE,EAAkBC,EAAYoC,EAAc/Y,EAAaiR,EAAaC,EAAU7D,EAAUuJ,EAAa3V,EAAkBuJ,GAO7H,OALAhB,EAAO,IAAIwH,EAAK9E,EAAWpP,KAAM6R,EAAUsC,EAAaC,EAAU7D,EAAUuJ,GACvEiC,EAAkBrY,qBACnBgJ,EAAKyD,UAETnQ,KAAK0N,UAAUwH,YAAY,cAAexI,GACnCA,CACX,EACO6O,CACX,CAvFkB,GAyFdmB,EAAiB,EAIjBC,EAAiB,EAIrB,SAASC,GAA0B7c,GAC/B,IAAI8K,EAAQ9K,EAAQ2Z,aAAa,SAC7BmD,KAJMF,GAAgBG,WAO1B,OAFA/c,EAAQ4Z,aAAa,QAAU9O,EAAQA,EAAQ,aAAe,aAC9D9K,EAAQ4Z,aAAa,eAAgBkD,GAC9BA,CACX,CAmBA,IAAIE,GAAoBvP,EAAgBtN,UAAU6N,qBAC9CiP,GAAgB,WAChB,SAASA,EAAaC,EAAiBvP,GACnC1N,KAAKid,gBAAkBA,EACvBjd,KAAK0N,UAAYA,CACrB,CAkXA,OAjXAsP,EAAa5O,OAAS,WAClB,MAAO,CAACZ,EAAiB8L,GAC7B,EACA0D,EAAa9c,UAAUgd,QAAU,SAAUC,EAAQzP,EAAW0P,GAI1D,IAAIC,EACAlE,EACAuC,EALJhO,EAAYA,GAAa1N,KAAK0N,UAC9B0P,EAAqBA,GAAsBza,EAAuBI,QAClEoa,EAA2B,iBAAXA,EAAsB,KAAIG,yBAAyBH,GAAUA,GAIlEE,SACPlE,EAAOgE,EAAOzD,aAAa,QAC3BgC,EAAYyB,EAAOzD,aAAa,cAChC2D,EAAU,KAAIE,UAAUJ,EAAOE,UAG/BA,EAAUF,EAEdC,EAAmBxa,gBAAkBwa,EAAmBxa,iBAAmB,KAAQ4a,UACnF9P,EAAUwH,YAAY,gBAAiBmI,EAAS3P,EAAW0P,GAC3D,IAAI3B,EAAe,CAAC,EACpBzb,KAAKyd,aAAaJ,EAAS3P,EAAW+N,EAAc0B,EAAQ,QAASC,EAAmBxa,iBACxF,IAAI0R,EAAa+I,EAAQ/I,WACzB,GAAIA,GAAsC,IAAxBA,EAAWtB,SAAgB,CACzC,IAAI0K,EAAWpJ,EAAWoF,aAAa,gBACvC,GAAIgE,EAAU,CACV,IAAIC,EAAMlC,EAAaiC,IACnBC,EAAInZ,YAAcmZ,EAAI7Y,SAAY6Y,EAAItY,qBAAuBsY,EAAItY,mBAAmB9B,oBACpF8Z,EAAQnM,aAAa,KAAImB,cAAc,QAASiC,EAExD,CACJ,CACA,IAAI4E,EAAU,IAAIqC,EAAY8B,EAAS5B,EAAc/N,GAOrD,OANAwL,EAAQoD,qBAAuBc,EAAmBva,iBAAmB7C,KAAK4d,kBAAkBT,EAAQzP,GAAa,KACjHwL,EAAQC,KAAOA,EACXuC,GACAxC,EAAQiC,aAAaO,GAEzBhO,EAAUwH,YAAY,eAAgBgE,GAC/BA,CACX,EACA8D,EAAa9c,UAAUud,aAAe,SAAUna,EAAMoK,EAAW+N,EAAcxK,EAAYxM,EAAkBoZ,GACzG,OAAQva,EAAK0P,UACT,KAAK,EACD,OAAOhT,KAAK8d,gBAAgBxa,EAAMoK,EAAW+N,EAAcxK,EAAYxM,EAAkBoZ,GAC7F,KAAK,EACD,IAAIlZ,EAAa+I,EAAUqQ,mBAAmB/d,KAAKid,iBAAiBjP,mBAAmBN,EAAWpK,EAAK0a,WACvG,GAAIrZ,EAAY,CACZ,IAAIsZ,EAAS,KAAIC,cAAc,aAC3BrB,EAAaD,GAA0BqB,GAI3C,KAHC3a,EAAK2N,YAAcA,GAAYC,aAAa+M,EAAQ3a,GACrDA,EAAK+D,YAAc,IACnBoU,EAAaoB,GAActY,EAAkBG,kBAAkBC,GACxDrB,EAAKkS,aAA6C,IAA9BlS,EAAKkS,YAAYxC,WACvC1P,EAAK2N,YAAcA,GAAYgG,YAAY3T,EAAKkS,YAEzD,MAEI,KAAOlS,EAAKkS,aAA6C,IAA9BlS,EAAKkS,YAAYxC,UACxC1P,EAAOA,EAAKkS,YAGpB,OAAOlS,EAAKkS,YAChB,KAAK,GAED,IADA,IAAI2I,EAAe7a,EAAKgR,WACjB6J,GACHA,EAAene,KAAKyd,aAAaU,EAAczQ,EAAW+N,EAAcnY,EAAMmB,EAAkBoZ,GAI5G,OAAOva,EAAKkS,WAChB,EACAwH,EAAa9c,UAAU0d,kBAAoB,SAAUta,EAAMoK,GACvD,IAGI0Q,EACAC,EACAnb,EACAmD,EACAsL,EACA2M,EACA1a,EACAgK,EACA7B,EACA3I,EAEAuB,EAdAwV,EAAU7W,EAAK6W,QAAQvT,cACvBvD,EAAaC,EAAKD,WAClB4Z,EAAkBvP,EAAUqQ,mBAAmB/d,KAAKid,iBAWpDpY,EAAc,GAEdI,EAAuB,GACvBM,EAAS,CAAC,EACVgZ,GAAY,EACZrZ,EAAY,GAChB,IAAKmB,EAAI,EAAGsL,EAAKtO,EAAW5B,OAAQ4E,EAAIsL,IAAMtL,EAAG,CAM7C,GAJAzC,GADA0a,EAAOjb,EAAWgD,IACFS,KAChB8G,EAAY0Q,EAAKzT,MACjBkB,EAAOkR,EAAgBxP,iBAAiBC,EAAWyM,EAASvW,EAAUgK,IACtExK,EAAOsK,EAAUgM,aAAa3N,EAAKnI,aAE/Bwa,EAAiB1Q,EAAU8Q,aAAazS,EAAKnI,aAEzCya,EAAWjb,EAAKC,WAAW+a,MAEvBrS,EAAK9B,mBAAqBoU,EAASpU,mBAC9B8B,EAAK0S,SAAY1S,EAAKpH,aACvBoH,EAAK0S,QAAUJ,EAASlT,WAAa,UAAY,MAEjDY,EAAK0S,SAA6B,YAAjB1S,EAAK0S,SAA0Brb,EAAKsb,iBAAiB,CACtE,IAAIA,EAAkBtb,EAAKsb,gBAC3B9a,EAAWmI,EAAKnI,SAAW8a,EAAgB/a,UAC3CoI,EAAK9B,mBAAqByU,EAAgBzU,kBAC9C,CAKZ,GADA/G,EAAc+Z,EAAgBpP,2BAA2BH,EAAWpK,EAAMyI,OAAM3K,EAAWgC,GAKvF,GAHIF,EAAYyb,cACZvb,EAAOsK,EAAUgM,aAAaxW,EAAYU,WAE1CV,EAAY0b,SACZ/Z,EAAYvE,KAAK4C,QAGjB,GAAIE,EAAM,CAGN,GAFAF,EAAYE,KAAOA,EACnBpD,KAAK6e,qBAAqB3b,EAAawK,GACnCtK,EAAK0b,aACL,MAAM,IAAItW,MAAM,kEAGhBvD,EAAqB3E,KAAK4C,EAElC,MAEI2B,EAAYvE,KAAK4C,EAAYG,WAAWH,EAAYU,gBAK5D,GAAIR,EAAM,CAGN,IAFAF,EAAcF,EAAoBW,UAAUC,EAAUR,IAC1CC,WAAWqK,EAAU8Q,aAAa5a,IAAagK,EACvDxK,EAAK0b,aACL,MAAM,IAAItW,MAAM,kEAGhBvD,EAAqB3E,KAAK4C,EAElC,KACsB,OAAbU,GAAkC,SAAbA,GAAoC,iBAAbA,IACjD2a,GAAY,EACZhZ,EAAO3B,GAAYgK,EAG/B,CACA,GAAI/I,EAAYpD,QAAUwD,EAAqBxD,QAAU8c,EAAW,CAChE,IAAKlY,EAAI,EAAGsL,EAAK1M,EAAqBxD,OAAQ4E,EAAIsL,IAAMtL,GACpDnD,EAAc+B,EAAqBoB,IACvBjD,KAAK8Z,QAAQld,KAAM0N,EAAWpK,EAAMJ,GAChDgC,EAAU5E,KAAK4C,EAAYE,KAAK+B,QAEpC,IAAKkB,EAAI,EAAGsL,EAAK9M,EAAYpD,OAAQ4E,EAAIsL,IAAMtL,OAEXjF,KADhCuD,EAAaE,EAAYwB,IACV0Y,cACXzb,EAAK0b,gBAAgBra,EAAWoa,cAGxC,OAAOxa,EAAkBe,UAAUJ,EAAWD,EAAsBJ,EAAaU,EACrF,CACA,OAAO,IACX,EACAyX,EAAa9c,UAAU4d,gBAAkB,SAAUxa,EAAMoK,EAAW+N,EAAcxK,EAAYxM,EAAkBoZ,GAC5G,IAGIlZ,EAIAI,EACAf,EACAZ,EACAiC,EACA4Z,EACA5Y,EACAsL,EACA2M,EACA1a,EACAgK,EACAxJ,EACAlB,EACA6I,EACAsS,EACAD,EAEAhZ,EAvBA+U,EAAU7W,EAAK6W,QAAQvT,cACvBvD,EAAaC,EAAKD,WAClBwB,EAAc,GAEdI,EAAuB,GACvBC,EAAY,GACZ+X,EAAkBvP,EAAUqQ,mBAAmB/d,KAAKid,iBAkBxD,GAAgB,SAAZ9C,EAIA,OAHI0D,IACAva,EA/NhB,SAAwB4b,EAAUxR,EAAWpK,EAAMmY,EAAchX,GAC7D,IAAI0a,EAAe,KAAIjB,cAAc,kBACrC,KAAIhE,YAAYiF,EAAc7b,GAC9B,IAAIuZ,EAAaD,GAA0BuC,GACvCjc,EAAcqB,EAAkBC,WAAWC,GAG/C,GAFAvB,EAAYqD,SAAWjD,EAAKoW,aAAa,SAAWlK,EAAUmD,eAC9DzP,EAAY+W,gBAAkB3W,EAAKoW,aAAa,QAC5CpW,EAAK8b,UAAUvE,OAAQ,CAGvB,IAFA,IAAIhJ,EAAW,KAAIwN,yBACfzN,OAAa,EACVA,EAAQtO,EAAKgR,YAChBzC,EAASC,YAAYF,GAEzB1O,EAAYsD,oBAAsB0Y,EAAShC,QAAQrL,EAAUnE,EACjE,CAEA,OADA+N,EAAaoB,GAAc3Z,EACpBic,CACX,CA8MuBG,CAAetf,KAAM0N,EAAWpK,EAAMmY,EAAchX,IAExDnB,EAAKkS,YAEX,GAAgB,aAAZ2E,EAAwB,CAC7B,KAAM,YAAa7W,GACf,MAAM,IAAIkF,MAAM,8CAAgDlF,EAAKic,aAAe,eAExFvb,EAAchE,KAAKkd,QAAQ5Z,EAAMoK,IACrByL,KAAO7V,EAAKoW,aAAa,OACzC,KACK,CAED,GADAtW,EAAOsK,EAAU8R,WAAWlc,EAAKoW,aAAa,eAAiBS,GAC/C,QAAZA,IAAsB/W,GAAQ6Z,EAAgBlP,uBAAyBgP,GAIvE,OAHAlY,EAAcoY,EAAgBlP,qBAAqBL,EAAWpK,GAE9DmY,EADamB,GAA0BtZ,IACZiB,EAAkBK,WAAWC,GACjDvB,EAAKkS,YAEZpS,IACAiC,EAAqBrC,EAAoBjD,QAAQuD,EAAMF,GACvDA,EAAKqc,kBAAkBzf,KAAM0N,EAAWpK,EAAMD,EAAYgC,GAC1DJ,EAAqB3E,KAAK+E,GAElC,CACA,IAAKgB,EAAI,EAAGsL,EAAKtO,EAAW5B,OAAQ4E,EAAIsL,IAAMtL,EAAG,CAU7C,GARAjC,EAAmBR,GADnB0a,EAAOjb,EAAWgD,IACiBS,KACnC8G,EAAY0Q,EAAKzT,MACjBkB,EAAOkR,EAAgBxP,iBAAiBC,EAAWyM,EAASvW,EAAUgK,GAClEiQ,GAAoC,SAAlB9R,EAAKnI,WACvBmI,EAAKnI,SAAWA,EAAW,WAG/Bqb,EAAkB,KADlB7b,EAAOsK,EAAUgM,aAAa3N,EAAKnI,WAI/B,IADAwa,EAAiB1Q,EAAU8Q,aAAazS,EAAKnI,aAEzCya,EAAWjb,EAAKC,WAAW+a,MAEvBrS,EAAK9B,mBAAqBoU,EAASpU,mBAC9B8B,EAAK0S,SAAY1S,EAAKpH,aACvBoH,EAAK0S,QAAUJ,EAASlT,WAAa,UAAY,MAEjDY,EAAK0S,SAA6B,YAAjB1S,EAAK0S,SAA0Brb,EAAKsb,iBAAiB,CACtE,IAAIA,EAAkBtb,EAAKsb,gBAC3B9a,EAAWmI,EAAKnI,SAAW8a,EAAgB/a,UAC3CoI,EAAK9B,mBAAqByU,EAAgBzU,kBAC9C,OAIH5E,IACL4Z,EAAkB5Z,EAAmBjC,KAAKC,WAAW0I,EAAKnI,aAEtDmI,EAAK9B,mBAAqBgV,EAAgBhV,oBASlD,GALI/G,EADA+b,EACchC,EAAgBpP,2BAA2BH,EAAWpK,EAAMyI,EAAM1G,GAGlE4X,EAAgBpP,2BAA2BH,EAAWpK,EAAMyI,OAAM3K,EAAWgC,GAM3F,GAHIF,EAAYyb,cACZvb,EAAOsK,EAAUgM,aAAaxW,EAAYU,WAE1CV,EAAY0b,SACZ/Z,EAAYvE,KAAK4C,QAGjB,GAAIE,EAAM,CAGN,GAFAF,EAAYE,KAAOA,EACnBpD,KAAK6e,qBAAqB3b,EAAawK,GACnCtK,EAAK0b,aAAc,CACnB5b,EAAYkB,iBAAmBA,EAC/BW,EAAqB7B,EACrB,KACJ,CAEI+B,EAAqB3E,KAAK4C,EAElC,MACS+b,EACL5Z,EAAmBhC,WAAW0I,EAAKnI,UAAU8b,eAAiBT,EAAgBnY,KAG9EjC,EAAYvE,KAAK4C,EAAYG,WAAWH,EAAYU,gBAK5D,GAAIR,EAAM,CAGN,IAFAF,EAAcF,EAAoBW,UAAUC,EAAUR,IAC1CC,WAAWqK,EAAU8Q,aAAa5a,IAAagK,EACvDxK,EAAK0b,aAAc,CACnB5b,EAAYkB,iBAAmBA,EAC/BW,EAAqB7B,EACrB,KACJ,CAEI+B,EAAqB3E,KAAK4C,EAElC,MACS+b,IACL5Z,EAAmBhC,WAAWO,GAAYgK,EAGtD,CACA,GAAI7I,EACAA,EAAmBf,YAAcA,EAGjCyX,EADamB,GADbtZ,EAAOyB,EAAmB3B,KAAK8Z,QAAQld,KAAM0N,EAAWpK,EAAMyB,EAAoBkM,KAEvD1M,EAAkBO,QAAQL,EAAkBM,OAEtE,CACD,IAAIV,GAAwB,EAC5B,GAAIQ,EAAYpD,QAAUwD,EAAqBxD,OAAQ,CAEnD,IADA2D,IAAaH,EAAqBxD,UAnWrCib,EAoWQrW,EAAI,EAAGsL,EAAK1M,EAAqBxD,OAAQ4E,EAAIsL,IAAMtL,GACpDnD,EAAc+B,EAAqBoB,IACvBjD,KAAK8Z,QAAQld,KAAM0N,EAAWpK,EAAMJ,EAAa+N,GAC7D/L,EAAU5E,KAAK4C,EAAYE,KAAK+B,QAChCd,EAAwBA,GAAyBnB,EAAYmB,sBAEjE,IAAKgC,EAAI,EAAGsL,EAAK9M,EAAYpD,OAAQ4E,EAAIsL,IAAMtL,OAEXjF,KADhCuD,EAAaE,EAAYwB,IACV0Y,cACXzb,EAAK0b,gBAAgBra,EAAWoa,cAIxCtD,EADamB,GAA0BtZ,IACZiB,EAAkBxB,OAAOqC,EAAYX,EAAkBS,EAAWD,EAAsBJ,EAAaQ,EACpI,CACA,GAAIhB,EACA,OAAOf,EAAKkS,YAGhB,IADA,IAAI2I,EAAe7a,EAAKgR,WACjB6J,GACHA,EAAene,KAAKyd,aAAaU,EAAczQ,EAAW+N,EAAcnY,EAAM8B,GAAcX,EAAkBoZ,EAEtH,CACA,OAAOva,EAAKkS,WAChB,EACAwH,EAAa9c,UAAU2e,qBAAuB,SAAU3b,EAAawK,GACjE,IAGI2Q,EACAxc,EACAgJ,EALAzH,EAAOF,EAAYE,KACnBQ,EAAWV,EAAYU,SACvBP,EAAaH,EAAYG,WAIzB+a,EAAiB1Q,EAAU8Q,aAAa5a,GAK5C,IAAK/B,KAJDuc,GAAkBxa,KAAYP,GAAc+a,IAAmBxa,IAC/DP,EAAW+a,GAAkB/a,EAAWO,UACjCP,EAAWO,IAEVP,EAEM,QADdwH,EAAQxH,EAAWxB,KACoB,iBAAVgJ,IACzBwT,EAAWjb,EAAKC,WAAWxB,GAEvBgJ,EAAM6U,oBADOte,IAAbid,EACuBA,EAASvX,KAGTjF,EAIvC,EACOmb,CACX,CAvXmB,GAyXf2C,GAA2B,WAC3B,SAASA,IACT,CAaA,OAZAA,EAAwBzf,UAAUuJ,WAAa,SAAU2F,EAAWjK,GAChEnF,KAAK+I,SAAWqG,EAAU9F,IAAInE,EAClC,EACAwa,EAAwBzf,UAAU0f,SAAW,SAAUC,EAAU/Y,GAC7D+Y,EAASC,wBAAwB9f,KAAK+I,SAC1C,EACA4W,EAAwBzf,UAAU6f,KAAO,SAAU3Q,EAAWjK,GAAU,EACxEwa,EAAwBK,WAAa,SAAUlZ,GAC3C,GAAIA,EAAKuG,SAAS,mBACd,OAAO,IAAIsS,CAEnB,EACOA,CACX,CAhB8B,GAwB1BM,GAAkB,WAClB,SAASA,EAAe1T,GACpBvM,KAAK4Y,GAAKrM,EACVvM,KAAKkgB,eAAiB,KACtBlgB,KAAKmgB,aAAe,KACpBngB,KAAK0N,UAAY,KACjB1N,KAAKqM,aAAe,KACpBrM,KAAKwJ,eAAgB,EACrBxJ,KAAKogB,SAAW,KAChBpgB,KAAKqgB,YAAc,IACvB,CAuDA,OAtDAJ,EAAe/f,UAAUuJ,WAAa,SAAU2F,GAC5C,IAAI+C,EAAUnS,KAAKmgB,aACfzS,EAAY1N,KAAK0N,UACjB4S,EAAKtgB,KAAKqM,aACd,IAAIrM,KAAKwJ,cAAT,CAGAxJ,KAAKwJ,eAAgB,OACLpI,IAAZ+Q,IACAA,EAAQoO,SAASlU,aAAeiU,EAChCnO,EAAQ1I,WAAW2F,IAEvB,IAAK,IAAI/I,EAAI,EAAGsL,EAAKjE,EAAUjM,OAAQ4E,EAAIsL,IAAMtL,GAC7C8L,EAAUzE,EAAUrH,IACZka,SAASlU,aAAeiU,EAChCnO,EAAQ1I,WAAW2F,EATvB,CAWJ,EACA6Q,EAAe/f,UAAU0f,SAAW,SAAUC,EAAU/Y,GACpD,IAAI0Z,EAAOxgB,KAAKmgB,aACZzS,EAAY1N,KAAK0N,eACRtM,IAATof,IACAA,EAAKZ,SAASC,EAAU/Y,GACxBA,EAAO,MAEX,IAAK,IAAIT,EAAI,EAAGsL,EAAKjE,EAAUjM,OAAQ4E,EAAIsL,IAAMtL,EAC7CqH,EAAUrH,GAAGuZ,SAASC,EAAU/Y,GAChCA,EAAO,IAEf,EACAmZ,EAAe/f,UAAU6f,KAAO,SAAU3Q,EAAWiR,GACjD,GAAsB,OAAlBrgB,KAAKogB,SACL,OAAOpgB,KAAKqgB,cAAgBA,EAAcxM,QAAQH,UAAY1T,KAAKogB,SAEvE,IAEIK,EAFAD,EAAOxgB,KAAKmgB,aACZzS,EAAY1N,KAAK0N,UAErB,QAAatM,IAATof,EAAoB,EACpBC,EAAQ,IAAI3N,MAAMpF,EAAUjM,OAAS,IAC/B,GAAK+e,EAAKT,KAAK3Q,EAAWiR,GAChC,IAAK,IAAIha,EAAI,EAAGsL,EAAKjE,EAAUjM,OAAQ4E,EAAIsL,IAAMtL,EAC7Coa,EAAMpa,EAAI,GAAKqH,EAAUrH,GAAG0Z,KAAK3Q,EAAWiR,EAEpD,MAGI,IADAI,EAAQ,IAAI3N,MAAMpF,EAAUjM,QACnB4E,EAAI,EAAGsL,EAAKjE,EAAUjM,OAAQ4E,EAAIsL,IAAMtL,EAC7Coa,EAAMpa,GAAKqH,EAAUrH,GAAG0Z,KAAK3Q,EAAWiR,GAKhD,OAFArgB,KAAKqgB,YAAcA,EACnBrgB,KAAKogB,SAAWvM,QAAQkE,IAAI0I,GACrBzgB,KAAKogB,QAChB,EACOH,CACX,CAlEqB,GAmEjBS,GAAuB,WACvB,SAASA,EAAoB7e,EAAK8e,EAAeC,GACxCA,IACDA,EAAmB,KAAStX,IAAI,KAASC,SAAUoX,OAE/CC,EAAmB,IAAIC,IACNlT,YAAc9G,EAAWhF,GAC1C,KAASiL,OAAO,KAASvD,SAAUqX,EAAkBD,IAGzDC,aAA4BC,QACSzf,IAAjCwf,EAAiBjT,YACjBiT,EAAiBjT,YAAc9G,EAAWhF,QAEFT,IAAnCwf,EAAiBE,cACtBF,EAAiBE,cAAgBja,EAAWhF,GAEJ,OAAnC+e,EAAiBE,eAA2D,OAAjCF,EAAiBjT,aACjEkT,GAAqBb,WAAWne,EAAK+e,GAGnCA,EAAiB9Z,OACvB8Z,EAAiB9Z,KAAOD,EAAWhF,IAEvC7B,KAAKugB,SAAWK,EAChB5gB,KAAK6K,MAAQ8V,CACjB,CAUA,OATAD,EAAoBxgB,UAAUuJ,WAAa,SAAU2F,GACjDpP,KAAKugB,SAAS9W,WAAW2F,EAAWpP,KAAK6K,MAC7C,EACA6V,EAAoBxgB,UAAU0f,SAAW,SAAUC,EAAU/Y,GACzD9G,KAAKugB,SAASX,SAASC,EAAU/Y,EACrC,EACA4Z,EAAoBxgB,UAAU6f,KAAO,SAAU3Q,EAAWiR,GACtD,OAAOrgB,KAAKugB,SAASR,KAAK3Q,EAAWpP,KAAK6K,MAAOwV,EACrD,EACOK,CACX,CArC0B,GAsCtBK,GAAkB,WAClB,SAASA,IACL/gB,KAAK2b,MAAQnW,OAAO0J,OAAO,KAC/B,CAgGA,OA/FA6R,EAAe7gB,UAAU8gB,YAAc,SAAUzU,GAC7C,OAAOvM,KAAK2b,MAAMpP,EACtB,EACAwU,EAAe7gB,UAAU+gB,QAAU,SAAU1U,EAAU2T,EAAgBgB,GACnE,IAAIf,EACAgB,EACAC,EACAR,EACA/e,EACA8e,EAEAU,EACAf,EACAgB,EAHA5T,EAAY,GAKhB,GADA4T,EAAiBthB,KAAK2b,MAAMpP,GAExB,OAAO+U,EAUX,IAAKzf,KARLyf,EAAiB,IAAIrB,GAAe1T,GACpCvM,KAAK2b,MAAMpP,GAAY+U,EACO,mBAAnBpB,IACPA,EAAiB,CAAE,QAAWA,IAE9BgB,IACAf,EAAe,IAAIO,GAAoBQ,EAAiBhB,EAAegB,KAE/DhB,EACRS,EAAgBT,EAAere,GAC3BA,IAAQqf,GAA4C,mBAAlBP,KAGtCC,EAAmB,KAAStX,IAAI,KAASC,SAAUoX,KAE3CC,aAA4BC,KAC5BvH,GAAc0G,WAAWW,EAAeC,GACD,OAAnCA,EAAiBE,eAA2D,OAAjCF,EAAiBjT,aAC5DkT,GAAqBb,WAAWne,EAAK+e,GAEF,OAAnCA,EAAiBE,eAA2D,OAAjCF,EAAiBjT,cAC5DiT,EAAiBjT,YAAc9G,EAAWhF,MAG7Cse,GAAgBS,aAA4BC,IAAyD,OAAjCD,EAAiBjT,YACtFwS,EAAe,IAAIO,GAAoB7e,EAAK8e,EAAeC,GAG3DlT,EAAUpN,KAAK,IAAIogB,GAAoB7e,EAAK8e,EAAeC,KAG1DvU,GAAakV,UAAUZ,GAC5BL,EAAKK,EAEAA,aAAyB,KAC9BL,EAAK,IAAIkB,GAA6BjV,EAAUoU,IAG5CU,EAAe/H,GAAc0G,WAAWW,MASnCU,EAAeR,GAAqBb,WAAWne,KARnB,OAA7Bwf,EAAa1T,aAAyBwS,EAItCzS,EAAUpN,KAAK,IAAIogB,GAAoB7e,EAAK8e,EAAeU,IAH3DlB,EAAe,IAAIO,GAAoB7e,EAAK8e,EAAeU,GAK/D,KAASvU,OAAO,KAASvD,SAAU8X,EAAcV,KAW5CU,EAAe,KAAuBrB,WAAWne,IACnD,KAAwBme,WAAWne,IACnC8d,GAAwBK,WAAWne,KACtC6L,EAAUpN,KAAK,IAAIogB,GAAoB7e,EAAK8e,EAAeU,IAC3D,KAASvU,OAAO,KAASvD,SAAU8X,EAAcV,IAE3CQ,IACNA,EAAgBR,EAChBS,EAAcvf,IAW1B,OAPKse,GAAgBgB,IACjBhB,EAAe,IAAIO,GAAoBU,EAAaD,IAExDG,EAAepB,eAAiBA,EAChCoB,EAAenB,aAAeA,EAC9BmB,EAAe5T,UAAYA,EAC3B4T,EAAejV,aAAeiU,EACvBgB,CACX,EACOP,CACX,CApGqB,GAsGjBU,GAAS,YAAqB,cAO9BC,GAAoB,WACpB,SAASA,EAAiBC,GACtB,IAAI/N,EAAQ5T,KACZ2hB,EAAQ9J,KAAK,SAAUtG,GAAK,OAAOqC,EAAM5P,YAAcuN,CAAG,EAC9D,CAoBA,OAnBAmQ,EAAiBxhB,UAAUgP,OAAS,SAAUE,EAAWC,EAAgB0M,EAAmBhc,GACxF,OAAOC,KAAKgE,YAAYkL,OAAOE,EAAWC,EAAgB0M,EAAmBhc,EACjF,EACAyF,OAAOc,eAAeob,EAAiBxhB,UAAW,YAAa,CAC3DoJ,IAAK,WACD,OAAOtJ,KAAKgE,YAAYkX,SAC5B,EACAzQ,YAAY,EACZD,cAAc,IAElBkX,EAAiBxhB,UAAUib,aAAe,SAAUC,EAAMC,GACtDrb,KAAKgE,YAAYmX,aAAaC,EAAMC,EACxC,EACAqG,EAAiBxhB,UAAUob,cAAgB,WACvC,OAAOtb,KAAKgE,YAAYsX,eAC5B,EACAoG,EAAiBxhB,UAAU8U,kBAAoB,SAAUtI,GACrD1M,KAAKgE,YAAYgR,kBAAkBtI,EACvC,EACOgV,CACX,CAzBuB,GA0BnBE,GAAiB,KACjBC,GAAc,WACd,SAASA,EAAWC,EAAQ1S,EAAW2S,EAAcC,EAAgBC,GACjEjiB,KAAK8hB,OAASA,EACd9hB,KAAKoP,UAAYA,EACjBpP,KAAK+hB,aAAeA,EACpB/hB,KAAKgiB,eAAiBA,EACtBhiB,KAAKiiB,aAAeA,EACpBjiB,KAAKkiB,WAAa,CAAC,EACI,OAAnBN,MACAA,GAAiB,IAAIf,IACNC,cAAgB,UAC/B,KAAShU,OAAO,KAASvD,SAAUqY,GAAgB1T,IAEvD0T,GAAenY,WAAW2F,EAAWlB,GACrC0T,GAAehC,SAASqC,EAC5B,CA+HA,OA9HAJ,EAAWzT,OAAS,WAChB,MAAO,CAAC,KAAQ,EAAA1E,UAAWsT,GAAc+D,GAAgBzH,GAC7D,EACAuI,EAAW3hB,UAAUiiB,kBAAoB,SAAUC,EAAWC,GAC1D,IAAIvb,EAAOsb,EAAUnb,QAAQ,IAAK,IAAM,mBACxCjH,KAAKkiB,WAAWE,GAAatb,EAC7B9G,KAAK8hB,OAAOQ,UAAUxb,EAAMub,EAChC,EACAR,EAAW3hB,UAAUqiB,gBAAkB,SAAUC,EAAoBpF,EAAoBiD,EAAalb,GAClG,IAAIyO,EAAQ5T,KAEZ,OADAqgB,EAAcA,GAAe,IAAI/d,EA3DzC,SAA6Bwf,EAAQU,GACjC,OAAIA,aAA8B,KACvB3O,QAAQH,QAAQ8O,GAEpBV,EAAOW,aAAaD,EAC/B,CAuDeE,CAAoB1iB,KAAK8hB,OAAQU,GAAoB3K,KAAK,SAAU8K,GACvE,IAAIlgB,EAAMkgB,EAAcC,QACxB,OAAID,EAAcE,QACTxC,EAAY3d,cAAcD,GAIA,OAA3BkgB,EAAcnH,SACPmH,EAAcE,QAElBhP,QAAQH,QAAQ,IAAIgO,GAAiBiB,EAAcE,WANtDxC,EAAY7d,cAAcC,GACnBkgB,EAAcE,UAO7BxC,EAAY7d,cAAcC,GAC1BkgB,EAAcE,QAAUjP,EAAMkP,sBAAsBH,EAAevF,EAAoBiD,EAAalb,GAAQ0S,KAAK,SAAUnK,GAEvH,GADAiV,EAAcjV,UAAYA,EACK,OAA3BiV,EAAcnH,SACd,OAAOmH,EAAczJ,QAAU,KAEnC,IAAIlV,EAAc4P,EAAMmO,aAAa7E,QAAQyF,EAAcnH,SAAU9N,EAAW0P,GAChF,OAAOuF,EAAczJ,QAAUlV,CACnC,GACO2e,EAAcE,QACzB,EACJ,EACAhB,EAAW3hB,UAAU4iB,sBAAwB,SAAUH,EAAevF,EAAoBiD,EAAalb,GACnG,IAEI4d,EACAC,EAHAtV,EAAY,IAAI4L,GAActZ,KAAKiiB,aAAcU,EAAcC,SAC/DrgB,EAAeogB,EAAcpgB,aAIjC,GADA6a,EAAqBA,GAAsBza,EAAuBI,OACtC,IAAxBR,EAAad,SAAiB2b,EAAmBta,mBACjD,OAAO+Q,QAAQH,QAAQhG,GAK3B,GAHAqV,EAAYxgB,EAAa0gB,IAAI,SAAU1R,GAAK,OAAOA,EAAE2R,GAAK,GAC1DF,EAAQzgB,EAAa0gB,IAAI,SAAU1R,GAAK,OAAOA,EAAEzK,IAAM,GACvD2a,GAAO0B,MAAM,2BAA2B9X,OAAOsX,EAAcC,SAAUG,GACnE5d,EAAQ,CACR,IAAIie,EAAoB,KAAS9Z,IAAIuY,EAAWwB,4BAA6Ble,GAC7E,GAAIie,EAAmB,CAEnB,IADA,IAAIE,EAAsBP,EAAUthB,OAC3B4E,EAAI,EAAGsL,EAAKyR,EAAkB3hB,OAAQ4E,EAAIsL,IAAMtL,EAAG,CACxD,IAAIkd,EAAMH,EAAkB/c,GACxBmd,EAA0B,mBAARD,EAChB,KAAOja,IAAIia,GAAKhX,UAChB,QAAegX,EAAIL,KAAOK,EAAKZ,EAAcC,UACd,IAAjCG,EAAUtiB,QAAQ+iB,KAClBT,EAAUziB,KAAKkjB,GACfR,EAAM1iB,KAAKijB,EAAIE,IAEvB,CACAhC,GAAO0B,MAAM,qCAAqC9X,OAAO+R,EAAmBta,oBAAqBigB,EAAU/b,MAAMsc,GACrH,CACJ,CACA,OAAOtjB,KAAK0jB,oBAAoBX,EAAWC,EAAOtV,EAAW0P,EAAoBiD,EACrF,EACAwB,EAAW3hB,UAAUyjB,wBAA0B,SAAUC,EAAcC,GACnE,IAAIjQ,EAAQ5T,KACZ,OAAOA,KAAK8hB,OAAOgC,WAAWF,GAAc/L,KAAK,SAAUkM,GACvD,IAAIC,EAAe,KAAO1a,IAAIya,GAAiBxX,SAC3C+U,EAAiB1N,EAAMoO,eAAef,QAAQ+C,EAAcD,EAAiBF,GACjF,IAAKvC,EAAenB,aAChB,MAAM,IAAI3X,MAAM,kCAAmC6C,OAAOuY,EAAc,OAG5E,OADAtC,EAAe7X,WAAWmK,EAAMxE,WACzBkS,EAAenB,YAC1B,EACJ,EACA0B,EAAW3hB,UAAUwjB,oBAAsB,SAAUO,EAAWjB,EAAOtV,EAAW0P,EAAoBiD,GAClG,IAAIzM,EAAQ5T,KAIZ,OAHAqgB,EAAcA,GAAe,IAAI/d,EACjC8a,EAAqBA,GAAsBza,EAAuBI,OAClEkhB,EAAYA,EAAUhB,IAAI,SAAU1R,GAAK,OAAOqC,EAAMsQ,mBAAmB3S,EAAI,GACtEvR,KAAK8hB,OAAOqC,eAAeF,GAAWpM,KAAK,SAAUuM,GACxD,IAAI/d,EACAsL,EACA0S,EACAL,EACA7R,EACAmS,EACAlV,EAAYwE,EAAMxE,UAClB4S,EAAiBpO,EAAMoO,eACvBuC,EAAc,IAAIzR,MAAMsR,EAAQ3iB,QACpC,IAAK4E,EAAI,EAAGsL,EAAKyS,EAAQ3iB,OAAQ4E,EAAIsL,IAAMtL,EACvC8L,EAAUiS,EAAQ/d,GAClB2d,EAAe,KAAO1a,IAAI6I,GAAS5F,UACnC8X,EAAWrC,EAAef,QAAQ+C,EAAc7R,IACvC1I,WAAW2F,GACpBiV,EAASzE,SAASlS,EAAWsV,EAAM3c,IACnCke,EAAYle,GAAKge,EAQrB,IANIjH,EAAmBta,qBACnBwhB,EAAmBtC,EAAehB,YAAY5D,EAAmBta,sBAE7DwhB,EAAiB1E,SAASlS,GAG7BrH,EAAI,EAAGsL,EAAK4S,EAAY9iB,OAAQ4E,EAAIsL,IAAMtL,EAC3Cke,EAAYle,GAAKke,EAAYle,GAAG0Z,KAAK3Q,EAAWiR,GAEpD,OAAOxM,QAAQkE,IAAIwM,GAAa1M,KAAK,WAAc,OAAOnK,CAAW,EACzE,EACJ,EACAmU,EAAW3hB,UAAUgkB,mBAAqB,SAAUtL,GAChD,IAAIpY,EAAQoY,EAAG4L,YAAY,KAC3B,IAAe,IAAXhkB,EAAc,CACd,IAAIikB,EAAM7L,EAAGtL,UAAU9M,GACnBkkB,EAAa1kB,KAAKkiB,WAAWuC,GACjC,YAAmBrjB,IAAfsjB,EACO9L,EAEJ5Y,KAAK8hB,OAAO6C,iBAAiB/L,EAAI8L,EAC5C,CACA,OAAO9L,CACX,EACAiJ,EAAWwB,4BAA8B,6BAClCxB,CACX,CA/IiB,GAiJb+C,GAAc,WACd,SAASA,EAAWvb,EAAUnG,EAAaa,EAAWqL,GAClDpP,KAAKqJ,SAAWA,EAChBrJ,KAAKkD,YAAcA,EACnBlD,KAAK+D,UAAYA,EACjB/D,KAAK0U,YAAa,EAClB1U,KAAK0M,KAAO,KACZ1M,KAAKyU,SAAU,EACfzU,KAAK6kB,MAAQ,KACb7kB,KAAKoP,UAAYA,EACjBpP,KAAKoZ,cAAgBhK,EAAUgK,eAAiB,KAChD,IAKI/S,EACAsL,EANApG,EAAiBlC,EAASM,gBAAgBC,2BAA2B7F,GACrE+gB,EAAczb,EAASyb,YACvBzhB,EAAaH,EAAYG,WACzBoI,EAAkBzL,KAAKyL,gBAAkB,GACzCnB,EAAajB,EAASiB,WAI1B,IADAjB,EAASQ,yBAAyB9F,EAAWwH,GACxClF,EAAI,EAAGsL,EAAKrH,EAAW7I,OAAQ4E,EAAIsL,IAAMtL,EAC1CiE,EAAWjE,GAAGiF,YAAYvH,EAAWwH,EAAgBlI,EAAYyhB,EAAarZ,EAEtF,CAmHA,OAlHAmZ,EAAW1kB,UAAUiQ,QAAU,SAAU4U,GACjC/kB,KAAKqJ,SAAS2b,gBACdhlB,KAAK+D,UAAUoM,QAAQ4U,EAAY/kB,KAAK0M,KAEhD,EACAkY,EAAW1kB,UAAU+kB,SAAW,SAAU3V,EAAiByV,GACvD/kB,KAAK0M,KAAK2C,eAAiBrP,KAAK+D,UAChC/D,KAAK0M,KAAK4C,gBAAkBA,IAAmB,QAAsBtP,KAAK+D,WAC1E/D,KAAK0M,KAAKoI,mBAAoB,EAC1B9U,KAAKqJ,SAAS2b,gBACdhlB,KAAK+D,UAAUoM,QAAQ4U,GAAc,KAAM/kB,KAAK0M,MAEpD1M,KAAKgM,KAAKhM,KAAK0M,KACnB,EACAkY,EAAW1kB,UAAU8L,KAAO,SAAU6Y,GAClC,IAEIxe,EACAsL,EACAJ,EACA7F,EACAhE,EAsBA4H,EA5BA4V,EAAqBllB,KAAKqJ,SAASyb,YACnCrZ,EAAkBzL,KAAKyL,gBAM3B,GAAIzL,KAAKyU,QAAS,CACd,GAAIzU,KAAK6kB,QAAUA,EACf,OAEJ7kB,KAAK8P,QACT,CAGA,IAFA9P,KAAKyU,SAAU,EACfzU,KAAK6kB,MAAQA,EACRxe,EAAI,EAAGsL,EAAKlG,EAAgBhK,OAAQ4E,EAAIsL,IAAMtL,EAG/CqB,GADAgE,GADA6F,EAAI9F,EAAgBpF,IACPqF,UACahE,eAC1BgE,EAAS7D,YAAa,EAClBqd,IACAxZ,EAAShE,eAAiB,MAE9B6J,EAAE1F,QAAQG,KAAK6Y,GACfnZ,EAASrD,OACTqD,EAAS7D,YAAa,EACtB6D,EAAShE,eAAiBA,EAGZ,OAAd1H,KAAK0M,MACDwY,IACAllB,KAAK0M,KAAKkI,eAAiBiQ,GAE3B7kB,KAAK+D,YAAc8gB,EAAMvV,gBAAgBD,eACzCC,EAAkBuV,EAAMvV,gBAEnBtP,KAAKkD,YAAYe,sBACtBqL,GAAkB,QAAsBtP,KAAK+D,UAAW8gB,EAAMvV,kBAG9DA,GAAkB,QAAsBtP,KAAK+D,YAC7BohB,wBAA0BN,EAAMvV,gBAEpDtP,KAAK0M,KAAKV,KAAKhM,KAAK+D,UAAWuL,IAE1B4V,IACL5V,EAAkBuV,EAAMvV,qBAC8BlO,IAAlDyjB,EAAMvV,gBAAgB6V,yBACnBnlB,KAAK+D,UAAUC,aAAehE,KAAK+D,UAAUC,YAAYiX,yBAAyB9W,oBACrFmL,EAAkB9J,OAAOwE,OAAO,CAAC,EAAG6a,EAAMvV,kBAC1B8V,sBAAwBP,EAAMvV,gBAAgB6V,yBAElEnlB,KAAK+D,UAAUiI,KAAK6Y,EAAMxV,eAAgBC,GAElD,EACAsV,EAAW1kB,UAAU4P,OAAS,WAC1B,GAAI9P,KAAKyU,QAAS,CACd,IAEI9C,EAFAlG,EAAkBzL,KAAKyL,gBACvBpF,OAAS,EAab,IAXArG,KAAKyU,SAAU,EACfzU,KAAK6kB,MAAQ,KACK,OAAd7kB,KAAK0M,MACL1M,KAAK0M,KAAKoD,SAEV9P,KAAKqJ,SAASgc,eACdrlB,KAAK+D,UAAU+L,SAEQ,OAAvB9P,KAAKoZ,eACLpZ,KAAKoZ,cAAcxX,aAElByE,EAAI,EAAGsL,EAAKlG,EAAgBhK,OAAQ4E,EAAIsL,IAAMtL,EAC/CoF,EAAgBpF,GAAGwF,QAAQiE,QAEnC,CACJ,EACA8U,EAAW1kB,UAAUkQ,SAAW,WACxBpQ,KAAK0U,aAGT1U,KAAK0U,YAAa,EACd1U,KAAKqJ,SAASic,iBACdtlB,KAAK+D,UAAUqM,WAED,OAAdpQ,KAAK0M,MACL1M,KAAK0M,KAAK0D,WAElB,EACAwU,EAAW1kB,UAAU2P,SAAW,WACxB7P,KAAK0U,aACL1U,KAAK0U,YAAa,EACA,OAAd1U,KAAK0M,MACL1M,KAAK0M,KAAKmD,WAEV7P,KAAKqJ,SAASkc,iBACdvlB,KAAK+D,UAAU8L,WAG3B,EACO+U,CACX,CA1IiB,GA4IbY,GAAiB,EAIrB,SAASC,KAAqB,OAAO,CAAM,CAC3C,SAASC,KAAwB,CACjC,IAAI7E,GAAwB,WACxB,SAASA,IACL7gB,KAAK2N,YAAc,KACnB3N,KAAK8gB,cAAgB,KACrB9gB,KAAK2lB,iCAA8BvkB,EACnCpB,KAAK8e,cAAe,EACpB9e,KAAK4C,iBAAkB,EACvB5C,KAAK4lB,iBAAmB,KACxB5lB,KAAKyf,kBAAoBiG,GACzB1lB,KAAK6lB,eAAiBJ,GACtBzlB,KAAK8lB,eAAgB,EACrB9lB,KAAK+lB,cAAgB,KACrB/lB,KAAKgmB,mBAAoB,EACzBhmB,KAAKyD,eAAgB,EACrBzD,KAAKsK,WAAa,GAClBtK,KAAKqD,WAAa,CAAC,EACnBrD,KAAKwJ,eAAgB,EACrBxJ,KAAK0e,gBAAkB,IAC3B,CAwTA,OAvTAmC,EAAqBb,WAAa,SAAUlZ,EAAMmf,GAC9C,IAAI5c,EASJ,OARIvC,EAAKuG,SAAS,sBACdhE,EAAW4c,GAAY,IAAIpF,GAClBC,cAAgBja,EAAWC,EAAKwG,UAAU,EAAGxG,EAAKrF,OAAS,MAEpEqF,EAAKuG,SAAS,oBACdhE,EAAW4c,GAAY,IAAIpF,GAClBlT,YAAc9G,EAAWC,EAAKwG,UAAU,EAAGxG,EAAKrF,OAAS,MAE/D4H,CACX,EACAwX,EAAqB3gB,UAAUgmB,gBAAkB,SAAU7c,GAC5B,OAAvBrJ,KAAK+lB,gBACL/lB,KAAK+lB,cAAgB,IAEzB/lB,KAAK+lB,cAAczlB,KAAK+I,EAC5B,EACAwX,EAAqB3gB,UAAUuJ,WAAa,SAAU2F,EAAWjK,GAC7D,IAIIkB,EACAsL,EACAQ,EANAgU,EAAQhhB,EAAOjF,UACfoK,EAAatK,KAAKsK,WAClBwW,EAAgB9gB,KAAK8gB,cACrB6E,EAA8B3lB,KAAK2lB,4BAIvC,IAAI3lB,KAAKwJ,cAeT,GAZAxJ,KAAKwJ,eAAgB,EACrBrE,EAAO0T,iBArDF2M,GAsDLxlB,KAAK2J,gBAAkByF,EAAU9F,IAAI,MACrCtJ,KAAKuH,UAAY6H,EAAU9F,IAAI,KAC/BtJ,KAAKmF,OAASA,EACdnF,KAAK8lB,cAAgB9lB,KAAK4C,iBAAmB,KAAQ4a,UACrDxd,KAAKglB,eAAkB,YAAamB,EACpCnmB,KAAK8kB,YAAe,SAAUqB,EAC9BnmB,KAAKqlB,cAAiB,WAAYc,EAClCnmB,KAAKslB,gBAAmB,aAAca,EACtCnmB,KAAKulB,gBAAmB,aAAcY,EACtCnmB,KAAKomB,SAAWpmB,KAAK2N,aAAe3N,KAAK8gB,cACnB,OAAlBA,EAUA,GAT0B,IAAtBxW,EAAW7I,QACX,IAAIqI,EAAiB,CACjBhD,KAAM,QACNqD,cAAe,iBAAkBgc,EAAQ,eAAiB,KAC1DxiB,UAAWmd,EACX7W,mBAAoB0b,IACrBtb,aAAalF,EAAQnF,MAE5BmS,EAAU7H,EAAW,GACK,IAAtBA,EAAW7I,QAAiC,UAAjB0Q,EAAQrL,KACnCqL,EAAQxG,UAAYwG,EAAQhH,WAAanL,KAAKgmB,kBAC9C7T,EAAQpH,SAAS5F,EAAQnF,UAExB,CACD,IAAKqG,EAAI,EAAGsL,EAAKrH,EAAW7I,OAAQ4E,EAAIsL,IAAMtL,EAE1C,GADAiE,EAAWjE,GAAG0E,SAAS5F,EAAQnF,MAC3BsK,EAAWjE,GAAGqY,gBAAiB,CAC/B,GAAI1e,KAAK0e,gBACL,MAAM,IAAIlW,MAAM,gFAEpBxI,KAAK0e,gBAAkBpU,EAAWjE,EACtC,EAEJ8L,EAAU,IAAIrI,EAAiB,CAC3BhD,KAAM,QACNqD,cAAe,iBAAkBgc,EAAQ,eAAiB,KAC1DxiB,UAAWmd,EACX7W,mBAAoB0b,KAEhBxa,YAAa,EACrBgH,EAAQ9H,aAAalF,EAAQnF,KACjC,KAEC,CACD,IAAKqG,EAAI,EAAGsL,EAAKrH,EAAW7I,OAAQ4E,EAAIsL,IAAMtL,EAC1CiE,EAAWjE,GAAG0E,SAAS5F,EAAQnF,MAEnCA,KAAKqmB,yBAAyBjX,EAAWjK,EAC7C,CACJ,EACA0b,EAAqB3gB,UAAU0f,SAAW,SAAUC,EAAU/Y,GAC1D,IAAI8M,EAAQ5T,KACe,OAAvBA,KAAK8gB,gBACLjB,EAASyG,kBAAkBxf,GAAQ9G,KAAK8gB,cAAe9gB,KAAMA,KAAK8gB,eAC9DhO,MAAMyT,QAAQvmB,KAAKwmB,UACnBxmB,KAAKwmB,QACA7O,QAAQ,SAAU8O,GACnB5G,EAASyG,kBAAkBG,EAAO7S,EAAOA,EAAMkN,cACnD,IAGiB,OAArB9gB,KAAK2N,aACLkS,EAAS6G,gBAAgB5f,GAAQ9G,KAAK2N,YAAa3N,KAE3D,EACA6gB,EAAqB3gB,UAAUsmB,QAAU,SAAUA,GAC/C,MAAM,IAAIhe,MAAM,0BACpB,EACAqY,EAAqB3gB,UAAU6f,KAAO,SAAU3Q,EAAWjK,EAAQkb,EAAahU,EAAcsa,GAC1F,IACIC,EADAhT,EAAQ5T,KAEZ,OAAyB,OAArBA,KAAK2N,aACLtB,EAAe+C,EAAU9F,IAAI2C,GAAaC,gBAAgBG,GAAgBrM,KAAKqM,cAAgBlH,GAC/FyhB,EAAU,IAAIjkB,EAAuB3C,KAAK4C,iBAAiB,GACtDyJ,EAAaE,WACdF,EAAaE,SAAW,KAAOjD,IAAInE,GAAQoH,UAExCF,EACFkW,gBAAgBnT,EAAU9F,IAAIuY,IAAa+E,EAASvG,EAAalb,GACjE0S,KAAK,SAAU7T,GAIhB,OAHK2iB,GAAkB/S,EAAM5P,cACzB4P,EAAM5P,YAAcA,GAEjBA,CACX,IAEG6P,QAAQH,QAAQ1T,KAC3B,EACA6gB,EAAqB3gB,UAAUgd,QAAU,SAAUgC,EAAUxR,EAAWpK,EAAMJ,EAAa+N,GACvF,GAAIjR,KAAK8e,cACL,IAAK5b,EAAYc,YAAa,CAC1B,IAAIwX,EAAW,KAAI0C,cAAc,YAC7BrM,EAAW,KAAIwN,yBACf3D,EAAYpY,EAAKoW,aAAa,cAC9BP,EAAO7V,EAAKoW,aAAa,QAC7BpW,EAAK0b,gBAAgB9b,EAAYkB,kBACjC,KAAI8V,YAAYsB,EAAUlY,EAAM2N,GAChCY,EAASC,YAAYxO,GACrBJ,EAAYc,YAAckb,EAAShC,QAAQrL,EAAUnE,GACjDyL,IACAjW,EAAYc,YAAYmV,KAAOA,EAC/B7V,EAAK0b,gBAAgB,SAErBtD,IACAxY,EAAYc,YAAYmX,aAAaO,GACrCpY,EAAK0b,gBAAgB,eAEzB1b,EAAOkY,CACX,OAEC,GAAyB,OAArBxb,KAAK2N,YAAsB,CAChC,IAAIxJ,EAAmB,CAAC,EACxB,GAAInE,KAAK6lB,eAAe3G,EAAUxR,EAAWpK,EAAMJ,IAAgBI,EAAKujB,gBAAiB,CAKrF,IAJA,IAAI1I,EAAe7a,EAAKgR,WACpB8F,EAAiBpa,KAAK8lB,cAAgB,KAAO,KAAI5H,cAAc,cAC/D1I,OAAmB,EACnBsR,OAAiB,EACd3I,GACH3I,EAAc2I,EAAa3I,YACE,aAAzB2I,EAAahE,UAA2B2M,EAAY3I,EAAazE,aAAa,kBAC9EvV,EAAiB2iB,GAAa5H,EAAShC,QAAQiB,EAAczQ,GAC7D,KAAIqZ,WAAW5I,EAAclN,GAC7B/N,EAAYiB,iBAAmBA,GAEP,OAAnBiW,IACyB,IAA1B+D,EAAanL,UAAkB9L,EAAiBiX,GAChD,KAAI4I,WAAW5I,EAAclN,GAG7BmJ,EAAetI,YAAYqM,IAGnCA,EAAe3I,EAEI,OAAnB4E,GAA2BA,EAAeyM,iBAC1CvjB,EAAKwO,YAAYsI,GAErBlX,EAAYmB,uBAAwB,CACxC,MAEInB,EAAYmB,uBAAwB,CAE5C,MACUrE,KAAK6lB,eAAe3G,EAAUxR,EAAWpK,EAAMJ,KACrDA,EAAYmB,uBAAwB,GAExC,OAAOf,CACX,EACAud,EAAqB3gB,UAAUgP,OAAS,SAAUE,EAAWlM,EAAanD,EAASqU,GAC/E,IAAI4S,EACAC,EAAK,KACT/jB,EAAcA,GAAeF,EAAoBD,OACjDhD,EAAUA,GAAW,KACrBqU,EAAWA,GAAY,KACE,OAArBpU,KAAK2N,aAAwB5N,IACzBC,KAAK8lB,eACLkB,EAAWjnB,EAAQmnB,aAAalnB,KAAK4lB,kBACrCxW,EAAU+X,iBAAiB,KAAIC,SAAUJ,KAGzCA,EAAWjnB,EACPC,KAAK4C,iBACLwM,EAAU+X,iBAAiB,KAAIC,SAAUJ,KAIrC,OAAZjnB,IACAA,EAAQknB,GAAKA,EAAKlnB,EAAQknB,IAAM,CAAC,GAErC,IAGIjjB,EAHAD,EAAYb,EAAYa,WAAaqL,EAAU9F,IAAItJ,KAAKmF,QACxDwP,EAAa,IAAIiQ,GAAW5kB,KAAMkD,EAAaa,EAAWqL,GAC1D2W,EAAgB/lB,KAAK+lB,cAEzB,GAAI/lB,KAAK8e,aACLmI,EAAGtS,WAAaA,OAEf,GAAyB,OAArB3U,KAAK2N,aAMV,GALA3J,EAAcd,EAAYc,aAAehE,KAAKgE,YAC9CoL,EAAUrL,UAAYA,EAClBC,IACA2Q,EAAWjI,KAAO1I,EAAYkL,OAAOE,EAAWlM,EAAanD,IAEjD,OAAZA,GAEA,GADAknB,EAAGtS,WAAaA,EACZA,EAAWjI,KAAM,CACjB,IAAK1M,KAAK8lB,gBAAgD,IAA9B/lB,EAAQ8S,WAAWpR,QAAgB1B,EAAQqa,gBAAiB,CACpF,IAAIA,EAAiBra,EAAQ8S,WAAW,IAAM9S,EAAQqa,eACtDzF,EAAWjI,KAAKoC,YAAc,CAAE+C,SAAUuI,GAC1CA,EAAenJ,YAAc,KAAI8V,WAAW3M,EAChD,CACA,GAAIlX,EAAYK,kBAAmB,CAC/B,GAAsB,OAAlBwiB,EACA,IAAK,IAAI1f,EAAI,EAAGsL,EAAKoU,EAActkB,OAAQ4E,EAAIsL,IAAMtL,EACjDsO,EAAWjI,KAAKyI,WAAW4Q,EAAc1f,GAAG6I,OAAOnP,EAASgE,EAAW4Q,IAG/EA,EAAWjI,KAAK2I,cAAc2R,EAClC,MAEIrS,EAAWjI,KAAK6F,kBAAkByU,EAE1C,MACK,GAAsB,OAAlBjB,EACL,IAAS1f,EAAI,EAAGsL,EAAKoU,EAActkB,OAAQ4E,EAAIsL,IAAMtL,EACjD+N,EAAS9T,KAAKylB,EAAc1f,GAAG6I,OAAOnP,EAASgE,EAAW4Q,SAIjE,GAAIA,EAAWjI,MAEhB,GADAiI,EAAWjI,KAAKiI,WAAaA,EACP,OAAlBoR,EACA,IAAS1f,EAAI,EAAGsL,EAAKoU,EAActkB,OAAQ4E,EAAIsL,IAAMtL,EACjDsO,EAAWjI,KAAKyI,WAAW4Q,EAAc1f,GAAG6I,OAAOhM,EAAYY,KAAMC,EAAW4Q,SAIvF,GAAsB,OAAlBoR,EACL,IAAS1f,EAAI,EAAGsL,EAAKoU,EAActkB,OAAQ4E,EAAIsL,IAAMtL,EACjD+N,EAAS9T,KAAKylB,EAAc1f,GAAG6I,OAAOhM,EAAYY,KAAMC,EAAW4Q,SAI1E,GAAsB,OAAlBoR,EACL,IAAS1f,EAAI,EAAGsL,EAAKoU,EAActkB,OAAQ4E,EAAIsL,IAAMtL,EACjD+N,EAAS9T,KAAKylB,EAAc1f,GAAG6I,OAAOnP,EAASgE,EAAW4Q,IASlE,OANW,OAAPsS,IACAA,EAAGjnB,KAAKomB,UAAYzR,GAEpBzR,EAAYQ,qBAAuBM,GACnC2Q,EAAWjI,KAAKyD,UAEbwE,CACX,EACAkM,EAAqB3gB,UAAU2J,yBAA2B,SAAUd,EAAUC,GAC1E,IAAIsB,EACAjE,EACAsL,EACAjG,EACJ,KAAI,0BAA2B1C,GAK/B,IAFAA,EAAOqe,uBAAwB,EAE1BhhB,EAAI,EAAGsL,GADZrH,EAAatK,KAAKsK,YACU7I,OAAQ4E,EAAIsL,IAAMtL,OAEzBjF,KADjBsK,EAAWpB,EAAWjE,GAAG4E,eAAelC,MAEpCC,EAAO0C,EAASjE,cAAgBiE,EAG5C,EACAmV,EAAqB3gB,UAAUmmB,yBAA2B,SAAUjX,EAAWjK,GAG3E,IAFA,IAAIkE,EACAie,EAAUniB,IACD,CACT,IAAIghB,EAAQ3gB,OAAO2D,eAAehE,EAAOjF,WAEzC,KADAiF,EAASghB,GAASA,EAAM/c,aAEpB,OAGJ,GADAC,EAAW,KAASke,OAAO,KAAShe,SAAUpE,GAE1C,KAER,CACAkE,EAASI,WAAW2F,EAAWjK,GAS/B,IARA,IAAIqiB,EAAU,SAAUnhB,EAAGsL,GACvB,IAAI8V,EAAOpe,EAASiB,WAAWjE,GAC/B,GAAIqhB,EAAOpd,WAAWqd,KAAK,SAAUC,GAAK,OAAOA,EAAE9gB,OAAS2gB,EAAK3gB,IAAM,GACnE,MAAO,WAEX,IAAIgD,EAAiB2d,GAAMpd,aAAaid,EAASI,EACrD,EACIA,EAAS1nB,KACJqG,EAAI,EAAGsL,EAAKtI,EAASiB,WAAW7I,OAAQ4E,EAAIsL,IAAMtL,EACvDmhB,EAAQnhB,EAEhB,EACOwa,CACX,CA3U2B,GA6U3B,SAASjB,GAAS5W,EAAQlC,EAAMyC,EAAUnG,GACtC,GAAK0D,EAAL,CAGA,IAAImf,EAAWjd,EAAOlC,GACtB,GAAImf,GACA,GAAIA,IAAa1c,EACb,MAAM,IAAIf,MAAM,yBAAyB6C,OAAOjI,EAAM,uDAAuDiI,OAAOvE,EAAM,WAIlIkC,EAAOlC,GAAQyC,CARf,CASJ,CACA,SAASse,GAAqB/gB,EAAM1D,GAChC,GAAI,QAAQgE,KAAKN,GAAO,CACpB,IAAIghB,EAAUjhB,EAAWC,GAIzB,OAHA,YACe,cACVihB,KAAK,IAAI1c,OAAOvE,EAAM,qBAAqBuE,OAAOjI,EAAM,qCAAqCiI,OAAOyc,EAAS,iFAC3GA,CACX,CACA,OAAOhhB,CACX,CACA,IAAIkhB,GAAiB,kBACjB1O,GAAiB,WACjB,SAASA,EAAchH,EAAQ2V,GAC3BjoB,KAAKid,gBAAkB,KACvBjd,KAAKsS,OAASA,GAAU,KACxBtS,KAAKkoB,UAA4B,OAAhBloB,KAAKsS,OACtBtS,KAAKioB,QAAUA,GAAW,GAC1BjoB,KAAKmoB,gBAAkB,CACnBC,gBAAiBpoB,KAAKqoB,kBAAkBrc,KAAKhM,MAC7CsoB,iBAAkBtoB,KAAKuoB,mBAAmBvc,KAAKhM,OAEnDA,KAAKqD,WAAamC,OAAO0J,OAAO,MAChClP,KAAKwoB,SAAWhjB,OAAO0J,OAAO,MAC9BlP,KAAKooB,gBAAkB5iB,OAAO0J,OAAO,MACrClP,KAAKsoB,iBAAmB9iB,OAAO0J,OAAO,MACtClP,KAAKyoB,aAAejjB,OAAO0J,OAAO,MAClClP,KAAKuF,OAASC,OAAO0J,OAAO,MAC5BlP,KAAK0oB,cAAgB1oB,KAAK2oB,aAAe3oB,KAAK4oB,aAAe5oB,KAAK6oB,YAAc7oB,KAAK8oB,WAAa9oB,KAAK+oB,cAAe,CAC1H,CAoNA,OAnNAzP,EAAc0G,WAAa,SAAU7a,EAAQ8gB,GACzC,IAAI1c,EACJ,GAAI0c,GAAY+B,MAAkB/B,EAC9B,OAAOA,EAEX,GAAI,cAAe9gB,EAAQ,CACvB,IAAI6jB,EAAS7jB,EAAO8jB,UACpB,GAAsB,iBAAXD,GACPzf,EAAW0c,GAAY,IAAIpF,IAClBmH,KAAkB,EACtBze,EAASoE,cACVpE,EAASoE,YAAcka,GAAqBmB,EAAQ,uBAGvD,CACqB,mBAAXA,IACPA,EAASA,EAAO3gB,KAAKlD,IAEH,iBAAX6jB,IACPA,EAAS,CAAEliB,KAAMkiB,IAGrB,IAAIE,GADJF,EAASxjB,OAAOwE,OAAO,CAAC,EAAGgf,IACD5lB,MAAQ,UAC9B+lB,EAASH,EAAOliB,KACpB,OAAQoiB,GACJ,IAAK,UACL,IAAK,aACD3f,EAAW0c,GAAY,IAAIpF,IAClBmH,KAAkB,EACN,YAAjBkB,EACK3f,EAASoE,cACVpE,EAASoE,YAAcwb,EACjBtB,GAAqBsB,EAAQ,kBAC7BtiB,EAAW1B,EAAO2B,OAIvByC,EAASuX,gBACVvX,EAASuX,cAAgBqI,EACnBtB,GAAqBsB,EAAQ,oBAC7BtiB,EAAW1B,EAAO2B,OAG5B,uBAAwBkiB,IACxBA,EAAOlK,aAAekK,EAAOI,0BACtBJ,EAAOI,oBAEd,uBAAwBJ,QAAmD5nB,IAAzCmI,EAASoc,8BAC3CqD,EAAOrD,4BAA8BqD,EAAO/e,0BACrC+e,EAAO/e,2BAEX+e,EAAOliB,KACdtB,OAAOwE,OAAOT,EAAUyf,GACxB,MACJ,IAAK,iBACDzf,EAAW,IAAI,MAAuB,QAAU4f,GAAUhkB,EAAO2B,OACjE,MACJ,IAAK,kBACDyC,EAAW,IAAI,MAAwB,QAAU4f,GAAUhkB,EAAO2B,OAClE,MACJ,IAAK,kBACDyC,EAAW,IAAIoW,GAG3B,CACA,GAAIpW,aAAoBsX,GAAsB,CAC1C,IAAIwI,EAA8B,iBAAXL,OAAsB5nB,EAAY4nB,EAAOK,UAC5DC,EAAe/f,EAASe,WAC5B,GAAIwI,MAAMyT,QAAQ8C,GACd,IAAK,IAAIhjB,EAAI,EAAGsL,EAAK0X,EAAU5nB,OAAQkQ,EAAKtL,IAAKA,EAAG,CAChD,IAAIohB,EAAO4B,EAAUhjB,GACrB,IAAKohB,GAAyB,iBAATA,IAAsBA,EAAK3gB,KAC5C,MAAM,IAAI0B,MAAM,iCAAkC6C,OAAOhF,EAAG,iBAAmBgF,OAAOlG,EAAO2B,KAAM,mEAIvG,IAFA,IAAIyiB,EAAU,IAAIzf,EAAiB2d,GAC/B+B,GAAU,EACLC,EAAI,EAAGC,EAAKJ,EAAa7nB,OAAQioB,EAAKD,IAAKA,EAChD,GAAIH,EAAaG,GAAG3iB,OAASyiB,EAAQziB,KAAM,CACvC0iB,GAAU,EACV,KACJ,CAEAA,GAGJD,EAAQlf,aAAalF,EAAQoE,EACjC,CAER,CACJ,CACA,OAAOA,CACX,EACA+P,EAAcpZ,UAAUypB,YAAc,SAAUniB,EAAKV,GACjD,GAAyB,mBAAdU,EAAIV,GAAsB,CAIjC,IAHA,IAAI8iB,EAAOpiB,EAAIV,GAAMkF,KAAKxE,GACtBqiB,EAAU,EACVC,OAAoB,OACkC1oB,IAAnDpB,KAAK8pB,EAAehjB,EAAO+iB,EAAQ/M,aACtC+M,IAEJ7pB,KAAK8G,IAAQ,EACb9G,KAAK8pB,GAAgBF,CACzB,CACJ,EACAtQ,EAAcpZ,UAAUgV,YAAc,SAAUpO,EAAMijB,EAAKC,EAAKC,EAAOC,GAInE,GAHIlqB,KAAKkoB,WACLloB,KAAKsS,OAAO4C,YAAYpO,EAAMijB,EAAKC,EAAKC,EAAOC,GAE/ClqB,KAAK8G,GAAO,CACZ9G,KAAK8G,EAAO,KAAKijB,EAAKC,EAAKC,EAAOC,GAClC,IAAIJ,EAAehjB,EAAO,IAC1B,GAAI9G,KAAK8pB,KACL9pB,KAAK8pB,GAAcC,EAAKC,EAAKC,EAAOC,GAEhClqB,KADJ8pB,EAAehjB,EAAO,MACE,CACpB9G,KAAK8pB,GAAcC,EAAKC,EAAKC,EAAOC,GAEpC,IADA,IAAIL,EAAU,OAC4CzoB,IAAnDpB,KAAK8pB,EAAehjB,EAAO+iB,EAAQ/M,aACtC9c,KAAK8pB,GAAcC,EAAKC,EAAKC,EAAOC,GACpCL,GAER,CAER,CACJ,EACAvQ,EAAcpZ,UAAU4f,wBAA0B,SAAUqK,GACxDnqB,KAAK2pB,YAAYQ,EAAO,iBACxBnqB,KAAK2pB,YAAYQ,EAAO,gBACxBnqB,KAAK2pB,YAAYQ,EAAO,gBACxBnqB,KAAK2pB,YAAYQ,EAAO,eACxBnqB,KAAK2pB,YAAYQ,EAAO,cACxBnqB,KAAK2pB,YAAYQ,EAAO,eAC5B,EACA7Q,EAAcpZ,UAAU6d,mBAAqB,SAAUqM,GACnD,OAAOpqB,KAAKid,kBAAoBjd,KAAKid,gBAAkBmN,EAC3D,EACA9Q,EAAcpZ,UAAUmqB,cAAgB,SAAUC,GAC9C,IAAIC,EAAiBvqB,KAAKsS,OAC1BtS,KAAKsS,OAASgY,GAAa,KAC3BtqB,KAAKkoB,UAA4B,OAAhBloB,KAAKsS,OACG,OAArBgY,EAAUhY,SACVgY,EAAUhY,OAASiY,EACnBD,EAAUpC,UAA+B,OAAnBqC,EAE9B,EACAjR,EAAcpZ,UAAUsqB,eAAiB,SAAUC,GAC/C,OAAO,QAAeA,EAAMzqB,KAAKioB,QACrC,EACA3O,EAAcpZ,UAAUwmB,gBAAkB,SAAUvM,EAAS9Q,GACzDuW,GAAS5f,KAAKwoB,SAAUrO,EAAS9Q,EAAU,aAC/C,EACAiQ,EAAcpZ,UAAUsf,WAAa,SAAUrF,GAC3C,OAAOna,KAAKwoB,SAASrO,KAAana,KAAKkoB,UAAYloB,KAAKsS,OAAOkN,WAAWrF,GAAW,KACzF,EACAb,EAAcpZ,UAAUse,aAAe,SAAU7a,GAC7C,OAAO3D,KAAKyoB,aAAa9kB,KAAe3D,KAAKkoB,UAAYloB,KAAKsS,OAAOkM,aAAa7a,GAAa,KACnG,EACA2V,EAAcpZ,UAAUomB,kBAAoB,SAAU3iB,EAAW0F,EAAU+U,GACvEpe,KAAKyoB,aAAa9kB,GAAaya,EAC/BwB,GAAS5f,KAAKqD,WAAYM,EAAW0F,EAAU,eACnD,EACAiQ,EAAcpZ,UAAUwZ,aAAe,SAAU/V,GAC7C,OAAO3D,KAAKqD,WAAWM,KAAe3D,KAAKkoB,UAAYloB,KAAKsS,OAAOoH,aAAa/V,GAAa,KACjG,EACA2V,EAAcpZ,UAAUwqB,uBAAyB,SAAU5jB,EAAM6jB,GAC7D/K,GAAS5f,KAAKooB,gBAAiBthB,EAAM6jB,EAAgB,mBACzD,EACArR,EAAcpZ,UAAUmoB,kBAAoB,SAAUvhB,GAClD,OAAO9G,KAAKooB,gBAAgBthB,KAAU9G,KAAKkoB,UAAYloB,KAAKsS,OAAO+V,kBAAkBvhB,GAAQ,KACjG,EACAwS,EAAcpZ,UAAU0qB,wBAA0B,SAAU9jB,EAAM+jB,GAC9DjL,GAAS5f,KAAKsoB,iBAAkBxhB,EAAM+jB,EAAiB,oBAC3D,EACAvR,EAAcpZ,UAAUqoB,mBAAqB,SAAUzhB,GACnD,OAAO9G,KAAKsoB,iBAAiBxhB,KAAU9G,KAAKkoB,UAAYloB,KAAKsS,OAAOiW,mBAAmBzhB,GAAQ,KACnG,EACAwS,EAAcpZ,UAAU4qB,cAAgB,SAAUhkB,EAAM+D,GACpD+U,GAAS5f,KAAKuF,OAAQuB,EAAM+D,EAAO,UACvC,EACAyO,EAAcpZ,UAAU8H,SAAW,SAAUlB,GACzC,OAAO9G,KAAKuF,OAAOuB,KAAU9G,KAAKkoB,UAAYloB,KAAKsS,OAAOtK,SAASlB,GAAQ,KAC/E,EACAwS,EAAcpZ,UAAU6qB,aAAe,SAAU3b,EAAW4b,GACxD,IAAIpK,EAAmB,KAAS2G,OAAO,KAAShe,SAAUyhB,GA0B1D,OAzBIpK,EACIA,aAA4BC,KAC5BvH,EAAc0G,WAAWgL,EAAMpK,GACQ,OAAnCA,EAAiBE,eAA2D,OAAjCF,EAAiBjT,aAC5DkT,GAAqBb,WAAWgL,EAAKlkB,KAAM8Z,GAER,OAAnCA,EAAiBE,eAA2D,OAAjCF,EAAiBjT,cAC5DiT,EAAiBjT,YAAc9G,EAAWmkB,EAAKlkB,UAKvD8Z,EAAmBtH,EAAc0G,WAAWgL,IACrCnK,GAAqBb,WAAWgL,EAAKlkB,OACrC,KAAuBkZ,WAAWgL,EAAKlkB,OACvC,KAAwBkZ,WAAWgL,EAAKlkB,OACxC6Y,GAAwBK,WAAWgL,EAAKlkB,UAE3C8Z,EAAmB,IAAIC,IACNlT,YAAc9G,EAAWmkB,EAAKlkB,OAEnD,KAASgG,OAAO,KAASvD,SAAUqX,EAAkBoK,IAEzDpK,EAAiBnX,WAAW2F,EAAW4b,GACvCpK,EAAiBhB,SAAS5f,UAAMoB,GACzBwf,CACX,EACOtH,CACX,CAtOoB,GAwOhBjN,GAAe,KAAS6C,OAAO,wBAAyB,CACxDzC,SAAU,SAAUtH,GAChB,MAAwC,mBAA3BA,EAAOod,iBACT,8KAGf,EACA0I,QAAS,SAAU9lB,GACwB,mBAA1BA,EAAOqH,iBAChBrH,EAAOqH,eAAiB,KAAS0e,KAEzC,IAEA9e,GAAwB,WACxB,SAASA,EAAqBqe,GAC1BzqB,KAAKyqB,KAAOA,EACZzqB,KAAKmrB,aAAe,IACxB,CAgBA,OAfA/e,EAAqBlM,UAAUqiB,gBAAkB,SAAU6I,EAAYhO,EAAoBiD,EAAalb,GAKpG,OAJ0B,OAAtBnF,KAAKmrB,cAAyBnrB,KAAKuM,WACnCvM,KAAKmrB,cAAe,QAAenrB,KAAKyqB,KAAMzqB,KAAKuM,WAEvD6Q,EAAmBta,mBAAqB9C,KAAKuM,SACtC6e,EAAW7I,gBAAgBviB,KAAKmrB,cAAgBnrB,KAAKyqB,KAAMrN,EAAoBiD,EAAalb,EACvG,EACAiH,EAAqBlM,UAAUsM,eAAiB,SAAU6e,GAC5B,OAAtBrrB,KAAKmrB,eACLnrB,KAAKmrB,cAAe,QAAenrB,KAAKyqB,KAAMY,GAEtD,EACuB1lB,EAAW,CAC9B0G,MACDD,EAEP,CArB2B,GAsBvBe,GAA4B,WAC5B,SAASA,EAAyBme,EAAate,GAC3ChN,KAAKuM,SAAWS,EAAOT,SACvBvM,KAAKioB,QAAUqD,EAAYle,uBAAuBJ,EACtD,CAQA,OAPAG,EAAyBjN,UAAUqiB,gBAAkB,SAAU6I,EAAYhO,EAAoBiD,EAAalb,GAExG,OADAiY,EAAmBta,mBAAqB9C,KAAKuM,SACtC6e,EAAW7I,gBAAgBviB,KAAKioB,QAAS7K,EAAoBiD,EAAalb,EACrF,EAC2BQ,EAAW,CAClC0G,MACDc,EAEP,CAb+B,GAc3BP,GAAkB,WAClB,SAASA,EAAerK,EAAcgpB,GAClCvrB,KAAKuC,aAAeA,GAAgB,KACpCvC,KAAKurB,kBAAoBA,GAAqB,EAClD,CA2BA,OA1BA3e,EAAe1M,UAAUqiB,gBAAkB,SAAU6I,EAAYhO,EAAoBiD,EAAalb,GAC9F,IAAIqmB,EAAQxrB,KAAKwrB,MACbjpB,EAAevC,KAAKuC,aACxB,GAAIipB,GAASA,EAAMC,eACf,OAAO5X,QAAQH,QAAQ,MAK3B,GAHA1T,KAAKwrB,MAAQA,EAAQ,IAAI,KAAsBxrB,KAAKuM,UAAYvM,KAAKurB,mBACrEC,EAAMjpB,aAAe,GACrBipB,EAAME,kBAAmB,EACJ,OAAjBnpB,EACA,IAAK,IAAI8D,EAAI,EAAGsL,EAAKpP,EAAad,OAAQ4E,EAAIsL,IAAMtL,EAAG,CACnD,IAAI8L,EAAU5P,EAAa8D,GACJ,iBAAZ8L,GAA2C,mBAAZA,EACtCqZ,EAAMhpB,cAAc2P,GAGpBqZ,EAAMhpB,cAAc2P,EAAQwZ,KAAMxZ,EAAQsR,GAElD,CAGJ,OADArG,EAAmBta,mBAAqB9C,KAAKuM,SACtC6e,EAAW7I,gBAAgBiJ,EAAOpO,EAAoBiD,EAAalb,EAC9E,EACiBQ,EAAW,CACxB0G,MACDO,EAEP,CAhCqB,GAiCjB4U,GAAgC,WAChC,SAASA,EAA6BjV,EAAUif,GAC5CxrB,KAAKuM,SAAWA,EAChBvM,KAAKwrB,MAAQA,CACjB,CAYA,OAXAhK,EAA6BthB,UAAUqiB,gBAAkB,SAAU6I,EAAYhO,EAAoBiD,EAAalb,GAC5G,IAAIqmB,EAAQxrB,KAAKwrB,MACjB,OAAIA,EAAMC,eACC5X,QAAQH,QAAQ8X,EAAMtS,UAEjCkE,EAAmBta,mBAAqB9C,KAAKuM,SACtC6e,EAAW7I,gBAAgBiJ,EAAOpO,EAAoBiD,EAAalb,GAC9E,EAC+BQ,EAAW,CACtC0G,MACDmV,EAEP,CAjBmC,GAkB/BoK,GAAsB,WACtB,SAASA,EAAmBC,EAAQtpB,EAAcgpB,GAC9CvrB,KAAK6rB,OAASA,EACd7rB,KAAKuC,aAAeA,GAAgB,KACpCvC,KAAKurB,kBAAoBA,GAAqB,EAClD,CA0BA,OAzBAK,EAAmB1rB,UAAUqiB,gBAAkB,SAAU6I,EAAYhO,EAAoBiD,EAAalb,GAClG,IAAIqmB,EAAQxrB,KAAKwrB,MACbjpB,EAAevC,KAAKuC,aACxB,GAAIipB,GAASA,EAAMC,eACf,OAAO5X,QAAQH,QAAQ8X,EAAMtS,SAIjC,GAFAlZ,KAAKwrB,MAAQA,EAAQ,IAAI,KAAsBxrB,KAAKuM,UAAYvM,KAAKurB,mBACrEC,EAAMhQ,SAAW,KAAI8B,yBAAyBtd,KAAK6rB,QAC9B,OAAjBtpB,EACA,IAAK,IAAI8D,EAAI,EAAGsL,EAAKpP,EAAad,OAAQ4E,EAAIsL,IAAMtL,EAAG,CACnD,IAAI8L,EAAU5P,EAAa8D,GACJ,iBAAZ8L,GAA2C,mBAAZA,EACtCqZ,EAAMhpB,cAAc2P,GAGpBqZ,EAAMhpB,cAAc2P,EAAQwZ,KAAMxZ,EAAQsR,GAElD,CAGJ,OADArG,EAAmBta,mBAAqB9C,KAAKuM,SACtC6e,EAAW7I,gBAAgBiJ,EAAOpO,EAAoBiD,EAAalb,EAC9E,EACqBQ,EAAW,CAC5B0G,MACDuf,EAEP,CAhCyB,GAiCrB/e,GAAsB,WACtB,SAASA,EAAmBmc,IACF,iBAAXA,GAAwBA,aAAkB,KAAI3a,SAA8B,aAAnB2a,EAAO7O,WACvE6O,EAAS,CACLxN,SAAUwN,IAGlBhpB,KAAKwb,SAAWwN,EAAOxN,SACvBxb,KAAKuC,aAAeymB,EAAOzmB,cAAgB,GAC3CvC,KAAKyrB,gBAAiB,EACtBzrB,KAAK6iB,QAAU,KACf7iB,KAAKuM,SAAW,WACpB,CAwDA,OAvDAM,EAAmB3M,UAAUqiB,gBAAkB,SAAU6I,EAAYhO,EAAoBiD,EAAalb,GAClG,IAAIyO,EAAQ5T,KACZ,GAAIA,KAAKyrB,eACL,OAAO5X,QAAQH,QAAQ1T,KAAKkZ,SAEhC,IAAI4S,EAAQ9rB,KAAKuC,aACbwpB,EAAwB,mBAAVD,EAAuBA,IAAUA,EAGnD,OAFAC,EAAOA,GAAc,GACrBA,EAAOjZ,MAAMyT,QAAQwF,GAAQA,EAAO,CAACA,GAC9BlY,QAAQkE,IAAIgU,GAAMlU,KAAK,SAAUtV,GACpC,IAIIgH,EAJA6F,EAAYgc,EAAWhc,UACvB6S,EAAemJ,EAAWnJ,aAC1BF,EAAeqJ,EAAWrJ,aAC1BxI,EAAgB,IAAID,GAAc2I,GAElC+J,EAAS,GACT7mB,GACAoU,EAAcwR,aAAa3b,EAAWjK,GAE1C,IAAK,IAAI8mB,EAAK,EAAGC,EAAiB3pB,EAAc0pB,EAAKC,EAAezqB,OAAQwqB,IAAM,CAC9E,IAAIE,EAAMD,EAAeD,GACzB,GAAmB,mBAARE,EAEsB,QAD7B5iB,EAAWgQ,EAAcwR,aAAa3b,EAAW+c,IACpCxe,aACTqe,EAAO1rB,KAAKiJ,OAGf,KAAI4iB,GAAsB,iBAARA,EAYnB,MAAM,IAAI3jB,MAAM,sDAAuD6C,cAAc8gB,EAAK,MAX1F,IAAK,IAAItqB,KAAOsqB,EAAK,CACjB,IAAIC,EAAWD,EAAItqB,GACK,mBAAbuqB,GAEsB,QAD7B7iB,EAAWgQ,EAAcwR,aAAa3b,EAAWgd,IACpCze,aACTqe,EAAO1rB,KAAKiJ,EAGxB,CAIJ,CACJ,CACA,OAAOsK,QAAQkE,IAAIiU,EAAO/I,IAAI,SAAUoJ,GAAM,OAAOA,EAAGtM,KAAK3Q,EAAWid,EAAGlnB,OAAS,IAAI0S,KAAK,WACzF,IAAIqB,EAA6B,OAAnBtF,EAAM4H,SACduG,EAAa7E,QAAQtJ,EAAM4H,SAAUjC,EAAe6D,GACpD,KAGN,OAFAxJ,EAAM6X,gBAAiB,EACvB7X,EAAMsF,QAAUA,EACTA,CACX,EACJ,EACJ,EACqBvT,EAAW,CAC5B0G,MACDQ,EAEP,CArEyB,GAuEzB,SAASkJ,GAAOpH,EAAU2d,GACtB,OAAOxZ,MAAMyT,QAAQ+F,GACf3d,EAAS6I,WAAW8U,GAAU,GAC9B3d,EAASoH,OAAOuW,GAAU,EACpC,CACA,IAAIC,GAAiB,CACjBC,OAAQ,SAAU7d,EAAU2d,EAAUG,GAClC,YAAqBrrB,IAAbkrB,EACFG,IACAA,IAAW5U,KAAK,WAAc,OAAO9B,GAAOpH,EAAU2d,EAAW,EAC3E,EACAI,KAAM,SAAU/d,EAAU2d,EAAUG,GAChC,YAAqBrrB,IAAbkrB,EACFG,IACA5Y,QAAQkE,IAAI,CAAChC,GAAOpH,EAAU2d,GAAWG,KACnD,EACAE,MAAO,SAAUhe,EAAU2d,EAAUG,GACjC,OAAO5Y,QAAQH,QAAQ/E,EAASsB,WAAU,IAAO4H,KAAK4U,EAC1D,GAGJ,SAASG,GAAqBnkB,GAC1B,OAAIA,EAAQokB,gBAAwD,mBAA/BpkB,EAAQ1E,UAAU+oB,SAC5CjZ,QAAQH,UAEZjL,EAAQ1E,UAAU+oB,SAASrkB,EAAQskB,QAAUlZ,QAAQH,SAChE,CACA,IAAIsZ,GAAqB,WACrB,SAASA,EAAkB5B,EAAYE,GACnCtrB,KAAKorB,WAAaA,EAClBprB,KAAKsrB,YAAcA,CACvB,CA+HA,OA9HA0B,EAAkB9sB,UAAU+sB,MAAQ,SAAUxkB,EAASiE,GACnD,IAAIwgB,EAAeX,GAAe9jB,EAAQ0kB,YAAcZ,GAAeI,MACnES,EAAgB3kB,EAAQkG,SAAS4B,SAASvJ,QAC9C,OAAOkmB,EAAazkB,EAAQkG,SAAUye,EAAe,WACjD,OAAOvZ,QAAQH,QAAQjL,EAAQkG,SAASsH,IAAIvJ,IAAOmL,KAAK,WAChDpP,EAAQ4kB,mBACR5kB,EAAQ4kB,kBAAkBvd,QAElC,EACJ,GAAG+H,KAAK,WACApP,EAAQ6kB,gCACR7kB,EAAQ6kB,+BAA+Bna,MAE/C,EACJ,EACA6Z,EAAkB9sB,UAAUqtB,yBAA2B,SAAU9kB,GAC7D,IAAImL,EAAQ5T,KACZ,OAAOA,KAAKwtB,iBAAiB/kB,GAASoP,KAAK,SAAUlD,GACjD,OAAIlM,EAAQglB,qCACDhlB,EAAQglB,qCACVha,6BACAoE,KAAK,WAEN,OADAlD,EAAWsQ,SAASxc,EAAQ6G,gBAAiB7G,EAAQsc,YAC9CnR,EAAMqZ,MAAMxkB,EAASkM,EAAWjI,KAC3C,GACKmL,KAAK,WAAc,OAAOlD,CAAY,IAE/CA,EAAWsQ,SAASxc,EAAQ6G,gBAAiB7G,EAAQsc,YAC9CnR,EAAMqZ,MAAMxkB,EAASkM,EAAWjI,MAAMmL,KAAK,WAAc,OAAOlD,CAAY,GACvF,EACJ,EACAqY,EAAkB9sB,UAAUstB,iBAAmB,SAAU/kB,GACrD,IACIilB,EACA3pB,EACA4pB,EACAC,EAJAha,EAAQ5T,KAKZ,OAAOA,KACF6tB,gBAAgBplB,GAChBoP,KAAK+U,IACL/U,KAAK,WACN6V,EAAiBjlB,EAAQilB,eACzB3pB,EAAY0E,EAAQ1E,UACpB4pB,EAAoBllB,EAAQklB,kBAC5BC,EAAID,EAAkBpN,SACtB,IAAIlU,EAAeuH,EAAM0X,YAAYpf,gBAAgBzD,EAAQiE,MAAQ3I,GAIrE,OAHI0E,EAAQ8Q,eACRlN,EAAaG,eAAe/D,EAAQ8Q,cAAc0O,SAE/C2F,EAAE7N,KAAK2N,EAAgBC,EAAkB9iB,MAAO,KAAMwB,GAAc,EAC/E,GAAGwL,KAAK,SAAU7T,GAAe,OAAO4pB,EAAE1e,OAAOwe,EAAgB1qB,EAAoBa,QAAQ4E,EAAQ3E,KAAMC,EAAWC,GAAe,EACzI,EACAgpB,EAAkB9sB,UAAU2tB,gBAAkB,SAAUplB,GACpD,IAAIilB,EAAiBjlB,EAAQilB,eAAkBjlB,EAAQilB,gBAAkBjlB,EAAQ2G,UAAUkL,cAC3F,GAAiC,iBAAtB7R,EAAQ1E,UAIf,OAHA0E,EAAQ1E,UAAY0E,EAAQ8Q,cACtB9Q,EAAQ8Q,cAAciR,eAAe/hB,EAAQ1E,WAC7C0E,EAAQ1E,UACP/D,KAAKorB,WAAWzH,wBAAwBlb,EAAQ1E,WAAW8T,KAAK,SAAU8V,GAO7E,OANAD,EAAe3C,aAAa4C,EAAkB9iB,OAC1CpC,EAAQ3E,MACR4pB,EAAevG,iBAAiB,KAAI9Y,QAAS5F,EAAQ3E,MAEzD2E,EAAQ1E,UAAY2pB,EAAe3pB,UAAY2pB,EAAepkB,IAAIqkB,EAAkB9iB,OACpFpC,EAAQklB,kBAAoBA,EACrBllB,CACX,GAEJ,IAAIS,EAAOT,EAAQ1E,UAAUqF,YACzB0kB,EAAuC,mBAAtBrlB,EAAQ1E,UACzB+pB,IACA5kB,EAAOT,EAAQ1E,UACf2pB,EAAe3C,aAAa7hB,IAEhC,IAAI0kB,EAAI,KAASG,eAAe,KAASxkB,SAAUsX,GAAsB3X,GAQzE,OAPA0kB,EAAEjgB,YAAcigB,EAAEjgB,aAAe,kBACjCigB,EAAEnkB,WAAWqkB,EAAUJ,EAAkBjlB,EAAQ2G,WAAase,EAAiBxkB,GAC/ET,EAAQklB,kBAAoB,CAAEpN,SAAUqN,EAAG/iB,MAAO3B,GAC9CT,EAAQ3E,MACR4pB,EAAevG,iBAAiB,KAAI9Y,QAAS5F,EAAQ3E,MAEzD4pB,EAAe3pB,UAAY0E,EAAQ1E,UAAY+pB,EAAUJ,EAAepkB,IAAIJ,GAAQT,EAAQ1E,UACrF8P,QAAQH,QAAQjL,EAC3B,EACAukB,EAAkB9sB,UAAU+qB,QAAU,SAAUxiB,GAC5C,IAAImL,EAAQ5T,KACZyI,EAAQilB,eAAiBjlB,EAAQilB,gBAAkBjlB,EAAQ2G,UAAUkL,cACrE7R,EAAQiE,KAAO1M,KAAKsrB,YAAYpf,gBAAgBzD,EAAQiE,MACxD,IAAIshB,EAAcvlB,EAAQilB,eAAepkB,IAAIwK,GACzC2Z,EAAuCO,EAAYja,aAOvD,OANI0Z,EACAhlB,EAAQglB,qCAAuCA,EAG/ChlB,EAAQ6kB,+BAAiCU,EAAYha,SAErDvL,EAAQ1E,UACD/D,KAAKutB,yBAAyB9kB,GAEhCA,EAAQiE,MACTjE,EAAQ8Q,eACR9Q,EAAQiE,KAAKF,eAAe/D,EAAQ8Q,cAAc0O,SAE/Cxf,EAAQiE,KAAK6V,gBAAgBviB,KAAKorB,WAAY,IAAIzoB,GAA0BkV,KAAK,SAAU7T,GAC9F,IAAI+W,EAAS/W,EAAYkL,OAAOzG,EAAQilB,gBAExC,OADA3S,EAAO/O,KAAKvD,EAAQ4G,eAAgB5G,EAAQ6G,iBACxC7G,EAAQglB,qCACDhlB,EAAQglB,qCAAqCha,6BAC/CoE,KAAK,WAAc,OAAOjE,EAAMqZ,MAAMxkB,EAASsS,EAAS,GACxDlD,KAAK,WAAc,OAAOkD,CAAQ,GAEpCnH,EAAMqZ,MAAMxkB,EAASsS,GAAQlD,KAAK,WAAc,OAAOkD,CAAQ,EAC1E,IAEKtS,EAAQkG,UACblG,EAAQkG,SAASsB,YACbxH,EAAQ6kB,gCACR7kB,EAAQ6kB,+BAA+Bna,OAEpCU,QAAQH,QAAQ,OAEpBG,QAAQH,QAAQ,KAC3B,EACoB/N,EAAW,EAC3B,IAAAyI,QAAOyT,GAAY5V,IACpB+gB,EAEP,CApIwB,GAsIpBiB,GAAiB,CACjBC,WAAY,wBACZC,YAAa,yBACbC,UAAW,uBACXC,aAAc,0BACdC,WAAY,wBACZC,YAAa,yBACbC,UAAW,uBACXC,aAAc,0BACdC,YAAa,yBACbC,iBAAkB,+BAClBC,kBAAmB,gCACnBC,gBAAiB,8BACjBC,mBAAoB,iCACpBC,cAAe,4BACfC,eAAgB,6BAChBC,aAAc,2BACdC,gBAAiB,8BACjBC,aAAc,0BACdC,cAAe,2BACfC,YAAa,yBACbC,eAAgB,4BAChBC,cAAe,2BACfC,aAAc,2BAqBlB,SAASjf,GAASkf,GACd,OAnBJ,SAAsCA,EAAkB1X,GACpD,OAAO,SAAU5S,EAAQtD,EAAKuI,GAC1B,IAAIslB,EAA8B,iBAAR7tB,EAAmBsD,EAAOiE,YAAcjE,EAC9Dc,EAAI,KAAS8nB,eAAe,KAASxkB,SAAUsX,GAAsB6O,GACzC,iBAArBD,IACPA,EAAmB,CACfE,SAAUF,EACV3oB,KAAMjF,IAGVuI,IACAA,EAAWQ,UAAW,EACtBR,EAAWI,cAAe,GAE9BilB,EAAiB1X,IAAMA,EACvB9R,EAAEigB,gBAAgB,IAAI0J,GAAcH,GACxC,CACJ,CAEWI,CAA6BJ,GAAkB,EAC1D,CAIA,IAAIG,GAAiB,WACjB,SAASA,EAAc5G,GACnBhpB,KAAK8G,KAAOkiB,EAAOliB,KACnB9G,KAAKmK,cAAgB6e,EAAO7e,eAAiBnK,KAAK8G,KAAO,UACzD9G,KAAK2vB,SAAW3G,EAAO2G,SACvB3vB,KAAK+X,IAAMiR,EAAOjR,GACtB,CAIA,OAHA6X,EAAc1vB,UAAUgP,OAAS,SAAU8X,EAAUjjB,EAAW4Q,GAC5D,OAAO,IAAImb,GAAoB9vB,KAAK2vB,SAAU3I,EAAUhnB,KAAK8G,KAAM/C,EAAW4Q,EAAY3U,KAAKmK,cAAenK,KAAK+X,IACvH,EACO6X,CACX,CAXoB,GAYhBG,GAAc,GAClB,SAASC,GAAcC,EAAkBC,EAAQC,GAC7C,IAAIC,EAAYH,EAAiB3mB,IAAI4mB,GAChCE,IACDA,EAAY,GACZH,EAAiBnlB,IAAIolB,EAAQE,IAEjCA,EAAU9vB,KAAK6vB,EACnB,CACA,SAASE,GAAcD,EAAW1kB,GAI9B,IAHA,IAAI4kB,EAAU5kB,EAAS4kB,QACnBC,EAAgBD,EAAQ7uB,OACxBwuB,EAAmB,IAAIO,IAClBnqB,EAAI,EAAGsL,EAAKye,EAAU3uB,OAAQ4E,EAAIsL,IAAMtL,EAAG,CAIhD,IAHA,IAAI8pB,EAASC,EAAU/pB,GACnBoqB,EAAQN,EAAOO,WACfC,EAAUR,EAAOS,aACZnH,EAAI,EAAGC,EAAKiH,EAAQlvB,OAAQgoB,EAAIC,IAAMD,EAE3C,GAAsB,KADlBnmB,EAAOqtB,EAAQlH,IACVzW,SACL,IAAK,IAAI6d,EAAI,EAAGA,EAAIN,IAAiBM,GAC7BX,EAASI,EAAQO,IACVC,SAASxtB,IAChB0sB,GAAcC,EAAkBC,EAAQC,GAKxD,IAAS1G,EAAI,EAAGC,EAAK+G,EAAMhvB,OAAQgoB,EAAIC,IAAMD,EAAG,CAC5C,IAAInmB,EACJ,GAAsB,KADlBA,EAAOmtB,EAAMhH,IACRzW,SACL,IAAS6d,EAAI,EAAGA,EAAIN,IAAiBM,EAAG,CACpC,IAAIX,KAASI,EAAQO,IACVE,MAAMztB,IACb0sB,GAAcC,EAAkBC,EAAQC,EAEhD,CAER,CACJ,CACAF,EAAiBtY,QAAQ,SAAUqZ,EAAiBd,GAC5CA,EAAOzb,SAAoC,OAAzByb,EAAO/lB,eACzB+lB,EAAOnsB,UAAUmsB,EAAO/lB,eAAe6mB,EAE/C,EACJ,CACA,IAAIlB,GAAuB,WACvB,SAASA,EAAoBH,EAAU3I,EAAU3I,EAAUta,EAAW4Q,EAAYxK,EAAe4N,GAC7F/X,KAAK2vB,SAAWA,EAChB3vB,KAAKgnB,SAAWA,EAChBhnB,KAAKqe,SAAWA,EAChBre,KAAK+D,UAAYA,EACjB/D,KAAK2U,WAAaA,EAClB3U,KAAKmK,cAAgBA,KAAiBpG,EAAYoG,EAAgB,KAClEnK,KAAK8lB,cAAgBnR,EAAWtL,SAASyc,cACzC9lB,KAAK+X,IAAMA,GACN/X,KAAK8lB,eAAiBnR,EAAWjI,MAAQiI,EAAWjI,KAAKoC,YAC1D9O,KAAK8O,YAAc6F,EAAWjI,KAAKoC,YAGnC9O,KAAK8O,YAAc,KAEvB9O,KAAKmd,OAAS,KACdnd,KAAKyU,SAAU,CACnB,CAqJA,OApJAqb,EAAoB5vB,UAAU+wB,QAAU,SAAUlxB,GAC9C,GAAIA,EAAQkxB,QAAQjxB,KAAK2vB,UAAW,CAChC,GAAyB,OAArB3vB,KAAK8O,YACL,OAAO,EAEX,IAAIA,EAAc9O,KAAK8O,YACnBoiB,EAAenxB,EAAQgR,eAC3B,GAAImgB,GAAgBA,EAAa1gB,mBAAoB,CAEjD,IADA,IAAI2gB,EAAUD,EAAa1gB,mBAClBnK,EAAI,EAAGsL,EAAKwf,EAAQ1vB,OAAQ4E,EAAIsL,IAAMtL,EAC3C,GAAI8qB,EAAQ9qB,GAAGwK,cAAgB/B,EAC3B,OAAO,EAGf,OAAO,CACX,CACA,OAAO/O,EAAQ8Q,cAAgB/B,CACnC,CACA,OAAO,CACX,EACAghB,EAAoB5vB,UAAU8L,KAAO,SAAUmR,GAC3C,GAAInd,KAAKyU,QAAS,CACd,GAAIzU,KAAKmd,SAAWA,EAChB,OAEJnd,KAAKmd,OAASA,CAClB,CACAnd,KAAKyU,SAAU,EACf,IAAIuS,EAAWhnB,KAAKgnB,SAChBjjB,EAAY/D,KAAK+D,UACjB2H,EAAWsb,EAASoK,kBACxB,IAAK1lB,EAAU,CACXA,EAAWsb,EAASoK,kBAAoB,KAAIC,uBAAuBhB,IACnE,IAAIzJ,EAAU,CACV0K,WAAW,EACXC,SAAUvxB,KAAK8lB,eAEnBpa,EAAS8lB,QAAQxK,EAAUJ,GAC3Blb,EAAS4kB,QAAU,EACvB,CAEA,GADA5kB,EAAS4kB,QAAQhwB,KAAKN,MAClBA,KAAK8lB,cAAe,CACpB,IAAI3T,EAAU6U,EAASyK,kBACvB,GAAIzxB,KAAK+X,IAAK,CACV,IAAI2Z,EAAQ3tB,EAAU/D,KAAKqe,UAO3B,IANKqT,EAIDA,EAAMhxB,OAAO,GAHbgxB,EAAQ3tB,EAAU/D,KAAKqe,UAAY,GAKhClM,GACCnS,KAAKixB,QAAQ9e,IACbuf,EAAMpxB,KAAK6R,EAAQ8U,IAAM9U,EAAQ8U,GAAGtS,WAAaxC,EAAQ8U,GAAGtS,WAAW5Q,UAAYoO,GAEvFA,EAAUA,EAAQwf,mBAEK,OAAvB3xB,KAAKmK,eACLnK,KAAK+D,UAAU/D,KAAKmK,eAAe4lB,GAE3C,MAEI,KAAO5d,GAAS,CACZ,GAAInS,KAAKixB,QAAQ9e,GAAU,CACvB,IAAItH,EAAQsH,EAAQ8U,IAAM9U,EAAQ8U,GAAGtS,WAAaxC,EAAQ8U,GAAGtS,WAAW5Q,UAAYoO,EACpFnS,KAAK+D,UAAU/D,KAAKqe,UAAYxT,EACL,OAAvB7K,KAAKmK,eACLnK,KAAK+D,UAAU/D,KAAKmK,eAAeU,GAEvC,KACJ,CACAsH,EAAUA,EAAQwf,kBACtB,CAER,CACJ,EACA7B,EAAoB5vB,UAAU4wB,SAAW,SAAU/wB,GAC/C,GAAIC,KAAKixB,QAAQlxB,GAAU,CACvB,IAAI8K,EAAQ9K,EAAQknB,IAAMlnB,EAAQknB,GAAGtS,WAAa5U,EAAQknB,GAAGtS,WAAW5Q,UAAYhE,EACpF,GAAIC,KAAK+X,IAAK,CACV,IAAI2Z,EAAS1xB,KAAK+D,UAAU/D,KAAKqe,YAAcre,KAAK+D,UAAU/D,KAAKqe,UAAY,IAC3E7d,EAAQkxB,EAAMjxB,QAAQoK,GAI1B,OAHe,IAAXrK,GACAkxB,EAAMhxB,OAAOF,EAAO,IAEjB,CACX,CACmBR,KAAK+D,UAAU/D,KAAKqe,YAClBxT,IACjB7K,KAAK+D,UAAU/D,KAAKqe,UAAY,KAC5Bre,KAAKyU,SAAkC,OAAvBzU,KAAKmK,eACrBnK,KAAK+D,UAAU/D,KAAKmK,eAAeU,GAG/C,CACA,OAAO,CACX,EACAilB,EAAoB5vB,UAAU6wB,MAAQ,SAAUhxB,GAC5C,GAAIC,KAAKixB,QAAQlxB,GAAU,CACvB,IAAI8K,EAAQ9K,EAAQknB,IAAMlnB,EAAQknB,GAAGtS,WAAa5U,EAAQknB,GAAGtS,WAAW5Q,UAAYhE,EACpF,GAAIC,KAAK+X,IAAK,CACV,IAAI2Z,EAAS1xB,KAAK+D,UAAU/D,KAAKqe,YAAcre,KAAK+D,UAAU/D,KAAKqe,UAAY,IAC/E,GAAsB,MAAlBre,KAAK2vB,SAEL,OADA+B,EAAMpxB,KAAKuK,IACJ,EAIX,IAFA,IAAIrK,EAAQ,EACRoxB,EAAO7xB,EAAQ8xB,uBACZD,GACC5xB,KAAKixB,QAAQW,IACbpxB,IAEJoxB,EAAOA,EAAKC,uBAGhB,OADAH,EAAMhxB,OAAOF,EAAO,EAAGqK,IAChB,CACX,CACA7K,KAAK+D,UAAU/D,KAAKqe,UAAYxT,EAC5B7K,KAAKyU,SAAkC,OAAvBzU,KAAKmK,eACrBnK,KAAK+D,UAAU/D,KAAKmK,eAAeU,EAE3C,CACA,OAAO,CACX,EACAilB,EAAoB5vB,UAAU4P,OAAS,WACnC,GAAK9P,KAAKyU,QAAV,CAGAzU,KAAKyU,SAAU,EACfzU,KAAKmd,OAAS,KACd,IAAI2U,EAAgB9xB,KAAKgnB,SAASoK,kBAClC,GAAIU,EAAe,CACf,IAAIxB,EAAUwB,EAAcxB,QAC5B,GAAIA,GAAWA,EAAQ7uB,OAAQ,CAC3B,IAAIsQ,EAAMue,EAAQ7vB,QAAQT,OACb,IAAT+R,GACAue,EAAQ5vB,OAAOqR,EAAK,GAED,IAAnBue,EAAQ7uB,SACRqwB,EAAcC,aACd/xB,KAAKgnB,SAASoK,kBAAoB,KAE1C,CACIpxB,KAAK8lB,gBACL9lB,KAAK+D,UAAU/D,KAAKqe,UAAY,KAExC,CAnBA,CAoBJ,EACOyR,CACX,CAxK0B,GAuL1B,SAASvmB,GAASyoB,GACd,OAAO,SAAU7sB,GAC8B,iBAArB6sB,GAAiCxsB,OAAO2D,eAAe6oB,KAAsBxsB,OAAOtF,UAEtGiF,EAAO8jB,UAAY+I,EAGnB,KAASllB,OAAO,KAASvD,SAAUyoB,EAAkB7sB,EAE7D,CACJ,CAYA,SAAS8sB,GAAcnrB,GACnB,OAAO,SAAU3B,GACL,KAAS4oB,eAAe,KAASxkB,SAAUsX,GAAsB1b,GACvEwI,YAAcka,GAAqB/gB,EAAM,iBAC/C,CACJ,CACA,SAASorB,GAAgBprB,EAAMmD,EAAoBuc,GAC/C,OAAO,SAAUrhB,GACb,IAAIc,EAAI,KAAS8nB,eAAe,KAASxkB,SAAUsX,GAAsB1b,GACzEc,EAAE6a,cAAgB+G,GAAqB/gB,EAAM,oBAC7Cb,EAAE0f,4BAA8B1b,EAChChE,EAAEugB,QAAUA,CAChB,CACJ,CACA,SAAS4C,GAAmBjkB,GACxB,IAAIgtB,EAAO,SAAUC,GACT,KAASrE,eAAe,KAASxkB,SAAUsX,GAAsBuR,GACvEtT,cAAe,CACrB,EACA,OAAO3Z,EAASgtB,EAAKhtB,GAAUgtB,CACnC,CACA,SAASE,GAASC,EAAsBzwB,EAAKuI,GACzC,IAAI+nB,EAAO,SAAUhtB,EAAQotB,EAAMC,GAC/B,IAAI9C,EAAe6C,EAAOptB,EAAOiE,YAAcjE,EAC3Cc,EAAI,KAAS8nB,eAAe,KAASxkB,SAAUsX,GAAsB6O,GAOzE,OALI6C,KACAD,EAAuBA,GAAwB,CAAC,GAC3BxrB,KAAOyrB,GAEzB,IAAIzoB,EAAiBwoB,GAChBjoB,aAAaqlB,EAAczpB,EAAGusB,EAC9C,EACA,IAAKF,EACD,OAAOH,EAEX,GAAItwB,EAAK,CACL,IAAIsD,EAASmtB,EAEb,OADAA,EAAuB,KAChBH,EAAKhtB,EAAQtD,EAAKuI,EAC7B,CACA,OAAO+nB,CACX,EA7E6B,WACzB,SAASM,IACT,CACAA,EAAsBvyB,UAAUuJ,WAAa,SAAU2F,EAAWjK,GAAU,EAC5EstB,EAAsBvyB,UAAU0f,SAAW,SAAUC,EAAU/Y,GAAQ,EACvE2rB,EAAsBvyB,UAAU6f,KAAO,SAAU3Q,EAAWjK,GACxD,IAAI6jB,EAAS,IAAI7jB,EACEiK,EAAU9F,IAAI,MACpBopB,sBAAsB1J,EACvC,CAEJ,CAX4B,GAqF5B,IAAI2J,GAA0B,CAAEC,KAAM,QACtC,SAASC,GAAaC,GAClB,IAAIlM,EAAqC,mBAApBkM,GAAmCA,EAElDA,EADAH,GAEFR,EAAO,SAAUC,GACjB,IAAInsB,EAAI,KAAS8nB,eAAe,KAASxkB,SAAUsX,GAAsBuR,GACzEnsB,EAAErD,iBAAkB,EACpBqD,EAAE2f,iBAAmBgB,CACzB,EACA,MAAkC,mBAApBkM,EAAiCX,EAAKW,GAAmBX,CAC3E,CAcA,SAASY,KAAwB,OAAO,CAAO,CAC/C,SAASlN,GAAemN,GACpB,OAAO,SAAUZ,GACL,KAASrE,eAAe,KAASxkB,SAAUsX,GAAsBuR,GACvEvM,eAAiBmN,EAAY,SAAU9T,EAAUxR,EAAWpK,EAAMJ,GAChE,IACI,OAAO8vB,EAAU9T,EAAUxR,EAAWpK,EAAMJ,EAChD,CACA,MAAO+vB,GAEH,OADA,YAAqB,cAAcA,MAAMA,IAClC,CACX,CACJ,EAAIF,EACR,CACJ,CAQA,SAASG,GAAgBjmB,GACrB,OAAO,SAAU9H,GACb,KAAS2H,OAAOb,EAAYc,wBAAyBE,EAAU9H,EACnE,CACJ,CACA,SAASguB,GAAQ1I,GACb,OAAOyI,GAAgB,IAAI9mB,GAAqBqe,GACpD,CACA,SAAS2I,GAAWvH,EAAQtpB,EAAcgpB,GACtC,OAAO2H,GAAgB,IAAItH,GAAmBC,EAAQtpB,EAAcgpB,GACxE,CACA,SAAS8H,GAAOC,EAAsB/H,GAClC,IAAIpmB,EACA5C,EACgC,mBAAzB+wB,EACPnuB,EAASmuB,GAGT/wB,EAAe+wB,EACfnuB,OAAS/D,GAEb,IAAI+wB,EAAO,SAAUC,GACjB,KAAStlB,OAAOb,EAAYc,wBAAyB,IAAIH,GAAerK,EAAcgpB,GAAoB6G,EAC9G,EACA,OAAOjtB,EAASgtB,EAAKhtB,GAAUgtB,CACnC,CAsBA,IAAIoB,GAAoB,WACpB,SAASA,EAAiBnkB,EAAW4S,EAAgBD,EAAcyR,GAC/DxzB,KAAKyzB,WAAarkB,EAClBpP,KAAK0zB,gBAAkB1R,EACvBhiB,KAAK2zB,cAAgB5R,EACrB/hB,KAAK4zB,mBAAqBJ,EAC1BpkB,EAAU+X,iBAAiB1R,EAAUA,EAAS1M,SAAW,IAAI0M,EACjE,CAyBA,OAxBA8d,EAAiBrzB,UAAU2zB,kBAAoB,SAAUpd,GACrDzW,KAAKyzB,WAAWK,WAAWre,GAC3BzV,KAAKyzB,WAAWtM,iBAAiB1R,EAAUA,EAAS1M,SAAW0N,EACnE,EACA8c,EAAiBrzB,UAAU+qB,QAAU,SAAUxiB,GAC3C,OAAOzI,KAAK4zB,mBAAmB3I,QAAQxiB,EAC3C,EACA8qB,EAAiBrzB,UAAU+C,QAAU,SAAUC,GACvCA,aAAuB,KAAImL,UAC3BnL,EAAc,CAAEnD,QAASmD,IAE7B,IAAI6wB,EAAuB,CAAEC,eAAgB,IACzCtmB,EAAYxK,EAAYwK,WAAa1N,KAAKyzB,WAAWnqB,IAAIgQ,IAC7DtZ,KAAK2zB,cAAclW,aAAava,EAAYnD,QAAS2N,EAAWqmB,EAAsB7wB,EAAYnD,QAAQkR,WAAY,QAAQ,GAC9H,IAAIiI,EAAU,IAAIqC,EAAYrY,EAAYnD,QAASg0B,EAAsBrmB,GACrE0B,EAAYlM,EAAYkM,WAAapP,KAAKyzB,WAAWnZ,cACrD5N,EAAOwM,EAAQhK,OAAOE,EAAWpM,EAAoBC,WAKzD,OAJAyJ,EAAKV,KAAK9I,EAAYmM,gBAAkB,CAAC,EAAGnM,EAAYoM,iBACxD5C,EAAK4H,WAAa5H,EAAK6H,UAAY7H,EAAKmF,SACxCnF,EAAKmF,SAAW,KAAIwN,yBACpB3S,EAAK0D,WACE1D,CACX,EACA6mB,EAAiBnlB,OAAS,CAAC,EAAA1E,UAAWqX,GAAgB/D,GAAcgQ,IAC7DuG,CACX,CAjCuB,E","sources":["webpack://iadviser/./node_modules/aurelia-templating/dist/native-modules/aurelia-templating.js"],"sourcesContent":["import { DOM, FEATURE, PLATFORM } from 'aurelia-pal';\nimport { TemplateRegistryEntry, Loader } from 'aurelia-loader';\nimport { metadata, Origin, protocol } from 'aurelia-metadata';\nimport { relativeToFile } from 'aurelia-path';\nimport * as LogManager from 'aurelia-logging';\nimport { subscriberCollection, bindingMode, createOverrideContext, ValueConverterResource, BindingBehaviorResource, ObserverLocator, camelCase, EventManager } from 'aurelia-binding';\nimport { Container, resolver, inject } from 'aurelia-dependency-injection';\nimport { TaskQueue } from 'aurelia-task-queue';\n\nvar ElementEvents = (function () {\r\n function ElementEvents(element) {\r\n this.element = element;\r\n this.subscriptions = {};\r\n }\r\n ElementEvents.prototype._enqueueHandler = function (handler) {\r\n this.subscriptions[handler.eventName] = this.subscriptions[handler.eventName] || [];\r\n this.subscriptions[handler.eventName].push(handler);\r\n };\r\n ElementEvents.prototype._dequeueHandler = function (handler) {\r\n var index;\r\n var subscriptions = this.subscriptions[handler.eventName];\r\n if (subscriptions) {\r\n index = subscriptions.indexOf(handler);\r\n if (index > -1) {\r\n subscriptions.splice(index, 1);\r\n }\r\n }\r\n return handler;\r\n };\r\n ElementEvents.prototype.publish = function (eventName, detail, bubbles, cancelable) {\r\n if (detail === void 0) { detail = {}; }\r\n if (bubbles === void 0) { bubbles = true; }\r\n if (cancelable === void 0) { cancelable = true; }\r\n var event = DOM.createCustomEvent(eventName, { cancelable: cancelable, bubbles: bubbles, detail: detail });\r\n this.element.dispatchEvent(event);\r\n };\r\n ElementEvents.prototype.subscribe = function (eventName, handler, captureOrOptions) {\r\n if (typeof handler === 'function') {\r\n if (captureOrOptions === undefined) {\r\n captureOrOptions = ElementEvents.defaultListenerOptions;\r\n }\r\n var eventHandler = new EventHandlerImpl(this, eventName, handler, captureOrOptions, false);\r\n return eventHandler;\r\n }\r\n return undefined;\r\n };\r\n ElementEvents.prototype.subscribeOnce = function (eventName, handler, captureOrOptions) {\r\n if (typeof handler === 'function') {\r\n if (captureOrOptions === undefined) {\r\n captureOrOptions = ElementEvents.defaultListenerOptions;\r\n }\r\n var eventHandler = new EventHandlerImpl(this, eventName, handler, captureOrOptions, true);\r\n return eventHandler;\r\n }\r\n return undefined;\r\n };\r\n ElementEvents.prototype.dispose = function (eventName) {\r\n if (eventName && typeof eventName === 'string') {\r\n var subscriptions = this.subscriptions[eventName];\r\n if (subscriptions) {\r\n while (subscriptions.length) {\r\n var subscription = subscriptions.pop();\r\n if (subscription) {\r\n subscription.dispose();\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n this.disposeAll();\r\n }\r\n };\r\n ElementEvents.prototype.disposeAll = function () {\r\n for (var key in this.subscriptions) {\r\n this.dispose(key);\r\n }\r\n };\r\n ElementEvents.defaultListenerOptions = true;\r\n return ElementEvents;\r\n}());\r\nvar EventHandlerImpl = (function () {\r\n function EventHandlerImpl(owner, eventName, handler, captureOrOptions, once) {\r\n this.owner = owner;\r\n this.eventName = eventName;\r\n this.handler = handler;\r\n this.capture = typeof captureOrOptions === 'boolean' ? captureOrOptions : captureOrOptions.capture;\r\n this.bubbles = !this.capture;\r\n this.captureOrOptions = captureOrOptions;\r\n this.once = once;\r\n owner.element.addEventListener(eventName, this, captureOrOptions);\r\n owner._enqueueHandler(this);\r\n }\r\n EventHandlerImpl.prototype.handleEvent = function (e) {\r\n var fn = this.handler;\r\n fn(e);\r\n if (this.once) {\r\n this.dispose();\r\n }\r\n };\r\n EventHandlerImpl.prototype.dispose = function () {\r\n this.owner.element.removeEventListener(this.eventName, this, this.captureOrOptions);\r\n this.owner._dequeueHandler(this);\r\n this.owner = this.handler = null;\r\n };\r\n return EventHandlerImpl;\r\n}());\n\nvar ResourceLoadContext = (function () {\r\n function ResourceLoadContext() {\r\n this.dependencies = {};\r\n }\r\n ResourceLoadContext.prototype.addDependency = function (url) {\r\n this.dependencies[url] = true;\r\n };\r\n ResourceLoadContext.prototype.hasDependency = function (url) {\r\n return url in this.dependencies;\r\n };\r\n return ResourceLoadContext;\r\n}());\r\nvar ViewCompileInstruction = (function () {\r\n function ViewCompileInstruction(targetShadowDOM, compileSurrogate) {\r\n if (targetShadowDOM === void 0) { targetShadowDOM = false; }\r\n if (compileSurrogate === void 0) { compileSurrogate = false; }\r\n this.targetShadowDOM = targetShadowDOM;\r\n this.compileSurrogate = compileSurrogate;\r\n this.associatedModuleId = null;\r\n }\r\n ViewCompileInstruction.normal = new ViewCompileInstruction();\r\n return ViewCompileInstruction;\r\n}());\r\nvar BehaviorInstruction = (function () {\r\n function BehaviorInstruction() {\r\n }\r\n BehaviorInstruction.enhance = function () {\r\n var instruction = new BehaviorInstruction();\r\n instruction.enhance = true;\r\n return instruction;\r\n };\r\n BehaviorInstruction.unitTest = function (type, attributes) {\r\n var instruction = new BehaviorInstruction();\r\n instruction.type = type;\r\n instruction.attributes = attributes || {};\r\n return instruction;\r\n };\r\n BehaviorInstruction.element = function (node, type) {\r\n var instruction = new BehaviorInstruction();\r\n instruction.type = type;\r\n instruction.attributes = {};\r\n instruction.anchorIsContainer = !(node.hasAttribute('containerless') || type.containerless);\r\n instruction.initiatedByBehavior = true;\r\n return instruction;\r\n };\r\n BehaviorInstruction.attribute = function (attrName, type) {\r\n var instruction = new BehaviorInstruction();\r\n instruction.attrName = attrName;\r\n instruction.type = type || null;\r\n instruction.attributes = {};\r\n return instruction;\r\n };\r\n BehaviorInstruction.dynamic = function (host, viewModel, viewFactory) {\r\n var instruction = new BehaviorInstruction();\r\n instruction.host = host;\r\n instruction.viewModel = viewModel;\r\n instruction.viewFactory = viewFactory;\r\n instruction.inheritBindingContext = true;\r\n return instruction;\r\n };\r\n BehaviorInstruction.normal = new BehaviorInstruction();\r\n return BehaviorInstruction;\r\n}());\r\nvar biProto = BehaviorInstruction.prototype;\r\nbiProto.initiatedByBehavior = false;\r\nbiProto.enhance = false;\r\nbiProto.partReplacements = null;\r\nbiProto.viewFactory = null;\r\nbiProto.originalAttrName = null;\r\nbiProto.skipContentProcessing = false;\r\nbiProto.contentFactory = null;\r\nbiProto.viewModel = null;\r\nbiProto.anchorIsContainer = false;\r\nbiProto.host = null;\r\nbiProto.attributes = null;\r\nbiProto.type = null;\r\nbiProto.attrName = null;\r\nbiProto.inheritBindingContext = false;\r\nvar TargetInstruction = (function () {\r\n function TargetInstruction() {\r\n }\r\n TargetInstruction.shadowSlot = function (parentInjectorId) {\r\n var instruction = new TargetInstruction();\r\n instruction.parentInjectorId = parentInjectorId;\r\n instruction.shadowSlot = true;\r\n return instruction;\r\n };\r\n TargetInstruction.contentExpression = function (expression) {\r\n var instruction = new TargetInstruction();\r\n instruction.contentExpression = expression;\r\n return instruction;\r\n };\r\n TargetInstruction.letElement = function (expressions) {\r\n var instruction = new TargetInstruction();\r\n instruction.expressions = expressions;\r\n instruction.letElement = true;\r\n return instruction;\r\n };\r\n TargetInstruction.lifting = function (parentInjectorId, liftingInstruction) {\r\n var instruction = new TargetInstruction();\r\n instruction.parentInjectorId = parentInjectorId;\r\n instruction.expressions = TargetInstruction.noExpressions;\r\n instruction.behaviorInstructions = [liftingInstruction];\r\n instruction.viewFactory = liftingInstruction.viewFactory;\r\n instruction.providers = [liftingInstruction.type.target];\r\n instruction.lifting = true;\r\n return instruction;\r\n };\r\n TargetInstruction.normal = function (injectorId, parentInjectorId, providers, behaviorInstructions, expressions, elementInstruction) {\r\n var instruction = new TargetInstruction();\r\n instruction.injectorId = injectorId;\r\n instruction.parentInjectorId = parentInjectorId;\r\n instruction.providers = providers;\r\n instruction.behaviorInstructions = behaviorInstructions;\r\n instruction.expressions = expressions;\r\n instruction.anchorIsContainer = elementInstruction ? elementInstruction.anchorIsContainer : true;\r\n instruction.elementInstruction = elementInstruction;\r\n return instruction;\r\n };\r\n TargetInstruction.surrogate = function (providers, behaviorInstructions, expressions, values) {\r\n var instruction = new TargetInstruction();\r\n instruction.expressions = expressions;\r\n instruction.behaviorInstructions = behaviorInstructions;\r\n instruction.providers = providers;\r\n instruction.values = values;\r\n return instruction;\r\n };\r\n TargetInstruction.noExpressions = Object.freeze([]);\r\n return TargetInstruction;\r\n}());\r\nvar tiProto = TargetInstruction.prototype;\r\ntiProto.injectorId = null;\r\ntiProto.parentInjectorId = null;\r\ntiProto.shadowSlot = false;\r\ntiProto.slotName = null;\r\ntiProto.slotFallbackFactory = null;\r\ntiProto.contentExpression = null;\r\ntiProto.letElement = false;\r\ntiProto.expressions = null;\r\ntiProto.expressions = null;\r\ntiProto.providers = null;\r\ntiProto.viewFactory = null;\r\ntiProto.anchorIsContainer = false;\r\ntiProto.elementInstruction = null;\r\ntiProto.lifting = false;\r\ntiProto.values = null;\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\n\nvar capitalMatcher = /([A-Z])/g;\r\nfunction addHyphenAndLower(char) {\r\n return '-' + char.toLowerCase();\r\n}\r\nfunction _hyphenate(name) {\r\n return (name.charAt(0).toLowerCase() + name.slice(1)).replace(capitalMatcher, addHyphenAndLower);\r\n}\r\nfunction _isAllWhitespace(node) {\r\n return !(node.auInterpolationTarget || (/[^\\t\\n\\r ]/.test(node.textContent)));\r\n}\n\nvar BehaviorPropertyObserver = (function () {\r\n function BehaviorPropertyObserver(taskQueue, obj, propertyName, selfSubscriber, initialValue) {\r\n this.taskQueue = taskQueue;\r\n this.obj = obj;\r\n this.propertyName = propertyName;\r\n this.notqueued = true;\r\n this.publishing = false;\r\n this.selfSubscriber = selfSubscriber;\r\n this.currentValue = this.oldValue = initialValue;\r\n }\r\n BehaviorPropertyObserver.prototype.getValue = function () {\r\n return this.currentValue;\r\n };\r\n BehaviorPropertyObserver.prototype.setValue = function (newValue) {\r\n var oldValue = this.currentValue;\r\n if (!Object.is(newValue, oldValue)) {\r\n this.oldValue = oldValue;\r\n this.currentValue = newValue;\r\n if (this.publishing && this.notqueued) {\r\n if (this.taskQueue.flushing) {\r\n this.call();\r\n }\r\n else {\r\n this.notqueued = false;\r\n this.taskQueue.queueMicroTask(this);\r\n }\r\n }\r\n }\r\n };\r\n BehaviorPropertyObserver.prototype.call = function () {\r\n var oldValue = this.oldValue;\r\n var newValue = this.currentValue;\r\n this.notqueued = true;\r\n if (Object.is(newValue, oldValue)) {\r\n return;\r\n }\r\n if (this.selfSubscriber) {\r\n this.selfSubscriber(newValue, oldValue);\r\n }\r\n this.callSubscribers(newValue, oldValue);\r\n this.oldValue = newValue;\r\n };\r\n BehaviorPropertyObserver.prototype.callSubscribers = function (newValue, oldValue) {\r\n throw new Error('Method not implemented.');\r\n };\r\n BehaviorPropertyObserver.prototype.subscribe = function (context, callable) {\r\n this.addSubscriber(context, callable);\r\n };\r\n BehaviorPropertyObserver.prototype.addSubscriber = function (context, callable) {\r\n throw new Error('Method not implemented.');\r\n };\r\n BehaviorPropertyObserver.prototype.unsubscribe = function (context, callable) {\r\n this.removeSubscriber(context, callable);\r\n };\r\n BehaviorPropertyObserver.prototype.removeSubscriber = function (context, callable) {\r\n throw new Error('Method not implemented.');\r\n };\r\n BehaviorPropertyObserver = __decorate([\r\n subscriberCollection()\r\n ], BehaviorPropertyObserver);\r\n return BehaviorPropertyObserver;\r\n}());\n\nfunction getObserver(instance, name) {\r\n var lookup = instance.__observers__;\r\n if (lookup === undefined) {\r\n var ctor = Object.getPrototypeOf(instance).constructor;\r\n var behavior = metadata.get(metadata.resource, ctor);\r\n if (!behavior.isInitialized) {\r\n behavior.initialize(Container.instance || new Container(), instance.constructor);\r\n }\r\n lookup = behavior.observerLocator.getOrCreateObserversLookup(instance);\r\n behavior._ensurePropertiesDefined(instance, lookup);\r\n }\r\n return lookup[name];\r\n}\r\nvar BindableProperty = (function () {\r\n function BindableProperty(nameOrConfig) {\r\n if (typeof nameOrConfig === 'string') {\r\n this.name = nameOrConfig;\r\n }\r\n else {\r\n Object.assign(this, nameOrConfig);\r\n }\r\n this.attribute = this.attribute || _hyphenate(this.name);\r\n var defaultBindingMode = this.defaultBindingMode;\r\n if (defaultBindingMode === null || defaultBindingMode === undefined) {\r\n this.defaultBindingMode = bindingMode.oneWay;\r\n }\r\n else if (typeof defaultBindingMode === 'string') {\r\n this.defaultBindingMode = bindingMode[defaultBindingMode] || bindingMode.oneWay;\r\n }\r\n this.changeHandler = this.changeHandler || null;\r\n this.owner = null;\r\n this.descriptor = null;\r\n }\r\n BindableProperty.prototype.registerWith = function (target, behavior, descriptor) {\r\n behavior.properties.push(this);\r\n behavior.attributes[this.attribute] = this;\r\n this.owner = behavior;\r\n if (descriptor) {\r\n this.descriptor = descriptor;\r\n return this._configureDescriptor(descriptor);\r\n }\r\n return undefined;\r\n };\r\n BindableProperty.prototype._configureDescriptor = function (descriptor) {\r\n var name = this.name;\r\n descriptor.configurable = true;\r\n descriptor.enumerable = true;\r\n if ('initializer' in descriptor) {\r\n this.defaultValue = descriptor.initializer;\r\n delete descriptor.initializer;\r\n delete descriptor.writable;\r\n }\r\n if ('value' in descriptor) {\r\n this.defaultValue = descriptor.value;\r\n delete descriptor.value;\r\n delete descriptor.writable;\r\n }\r\n descriptor.get = function () {\r\n return getObserver(this, name).getValue();\r\n };\r\n descriptor.set = function (value) {\r\n getObserver(this, name).setValue(value);\r\n };\r\n descriptor.get.getObserver = function (obj) {\r\n return getObserver(obj, name);\r\n };\r\n return descriptor;\r\n };\r\n BindableProperty.prototype.defineOn = function (target, behavior) {\r\n var name = this.name;\r\n var handlerName;\r\n if (this.changeHandler === null) {\r\n handlerName = name + 'Changed';\r\n if (handlerName in target.prototype) {\r\n this.changeHandler = handlerName;\r\n }\r\n }\r\n if (this.descriptor === null) {\r\n Object.defineProperty(target.prototype, name, this._configureDescriptor({}));\r\n }\r\n };\r\n BindableProperty.prototype.createObserver = function (viewModel) {\r\n var selfSubscriber = null;\r\n var defaultValue = this.defaultValue;\r\n var changeHandlerName = this.changeHandler;\r\n var name = this.name;\r\n var initialValue;\r\n if (this.hasOptions) {\r\n return undefined;\r\n }\r\n if (changeHandlerName in viewModel) {\r\n if ('propertyChanged' in viewModel) {\r\n selfSubscriber = function (newValue, oldValue) {\r\n viewModel[changeHandlerName](newValue, oldValue);\r\n viewModel.propertyChanged(name, newValue, oldValue);\r\n };\r\n }\r\n else {\r\n selfSubscriber = function (newValue, oldValue) { return viewModel[changeHandlerName](newValue, oldValue); };\r\n }\r\n }\r\n else if ('propertyChanged' in viewModel) {\r\n selfSubscriber = function (newValue, oldValue) { return viewModel.propertyChanged(name, newValue, oldValue); };\r\n }\r\n else if (changeHandlerName !== null) {\r\n throw new Error(\"Change handler \".concat(changeHandlerName, \" was specified but not declared on the class.\"));\r\n }\r\n if (defaultValue !== undefined) {\r\n initialValue = typeof defaultValue === 'function' ? defaultValue.call(viewModel) : defaultValue;\r\n }\r\n return new BehaviorPropertyObserver(this.owner.taskQueue, viewModel, this.name, selfSubscriber, initialValue);\r\n };\r\n BindableProperty.prototype._initialize = function (viewModel, observerLookup, attributes, behaviorHandlesBind, boundProperties) {\r\n var selfSubscriber;\r\n var observer;\r\n var attribute;\r\n var defaultValue = this.defaultValue;\r\n if (this.isDynamic) {\r\n for (var key in attributes) {\r\n this._createDynamicProperty(viewModel, observerLookup, behaviorHandlesBind, key, attributes[key], boundProperties);\r\n }\r\n }\r\n else if (!this.hasOptions) {\r\n observer = observerLookup[this.name];\r\n if (attributes !== null) {\r\n selfSubscriber = observer.selfSubscriber;\r\n attribute = attributes[this.attribute];\r\n if (behaviorHandlesBind) {\r\n observer.selfSubscriber = null;\r\n }\r\n if (typeof attribute === 'string') {\r\n viewModel[this.name] = attribute;\r\n observer.call();\r\n }\r\n else if (attribute) {\r\n boundProperties.push({ observer: observer, binding: attribute.createBinding(viewModel) });\r\n }\r\n else if (defaultValue !== undefined) {\r\n observer.call();\r\n }\r\n observer.selfSubscriber = selfSubscriber;\r\n }\r\n observer.publishing = true;\r\n }\r\n };\r\n BindableProperty.prototype._createDynamicProperty = function (viewModel, observerLookup, behaviorHandlesBind, name, attribute, boundProperties) {\r\n var changeHandlerName = name + 'Changed';\r\n var selfSubscriber = null;\r\n var observer;\r\n var info;\r\n if (changeHandlerName in viewModel) {\r\n if ('propertyChanged' in viewModel) {\r\n selfSubscriber = function (newValue, oldValue) {\r\n viewModel[changeHandlerName](newValue, oldValue);\r\n viewModel.propertyChanged(name, newValue, oldValue);\r\n };\r\n }\r\n else {\r\n selfSubscriber = function (newValue, oldValue) { return viewModel[changeHandlerName](newValue, oldValue); };\r\n }\r\n }\r\n else if ('propertyChanged' in viewModel) {\r\n selfSubscriber = function (newValue, oldValue) { return viewModel.propertyChanged(name, newValue, oldValue); };\r\n }\r\n observer = observerLookup[name] = new BehaviorPropertyObserver(this.owner.taskQueue, viewModel, name, selfSubscriber);\r\n Object.defineProperty(viewModel, name, {\r\n configurable: true,\r\n enumerable: true,\r\n get: observer.getValue.bind(observer),\r\n set: observer.setValue.bind(observer)\r\n });\r\n if (behaviorHandlesBind) {\r\n observer.selfSubscriber = null;\r\n }\r\n if (typeof attribute === 'string') {\r\n viewModel[name] = attribute;\r\n observer.call();\r\n }\r\n else if (attribute) {\r\n info = { observer: observer, binding: attribute.createBinding(viewModel) };\r\n boundProperties.push(info);\r\n }\r\n observer.publishing = true;\r\n observer.selfSubscriber = selfSubscriber;\r\n };\r\n return BindableProperty;\r\n}());\n\nvar ViewLocator = (function () {\r\n function ViewLocator() {\r\n }\r\n ViewLocator.prototype.getViewStrategy = function (value) {\r\n if (!value) {\r\n return null;\r\n }\r\n if (typeof value === 'object' && 'getViewStrategy' in value) {\r\n var origin_1 = Origin.get(value.constructor);\r\n value = value.getViewStrategy();\r\n if (typeof value === 'string') {\r\n value = new RelativeViewStrategy(value);\r\n }\r\n viewStrategy.assert(value);\r\n if (origin_1.moduleId) {\r\n value.makeRelativeTo(origin_1.moduleId);\r\n }\r\n return value;\r\n }\r\n if (typeof value === 'string') {\r\n value = new RelativeViewStrategy(value);\r\n }\r\n if (viewStrategy.validate(value)) {\r\n return value;\r\n }\r\n if (typeof value !== 'function') {\r\n value = value.constructor;\r\n }\r\n if ('$view' in value) {\r\n var c = value.$view;\r\n var view = void 0;\r\n c = typeof c === 'function' ? c.call(value) : c;\r\n if (c === null) {\r\n view = new NoViewStrategy();\r\n }\r\n else {\r\n view = c instanceof StaticViewStrategy ? c : new StaticViewStrategy(c);\r\n }\r\n metadata.define(ViewLocator.viewStrategyMetadataKey, view, value);\r\n return view;\r\n }\r\n var origin = Origin.get(value);\r\n var strategy = metadata.get(ViewLocator.viewStrategyMetadataKey, value);\r\n if (!strategy) {\r\n if (!origin.moduleId) {\r\n throw new Error('Cannot determine default view strategy for object.\\n' + value);\r\n }\r\n strategy = this.createFallbackViewStrategy(origin);\r\n }\r\n else if (origin.moduleId) {\r\n strategy.moduleId = origin.moduleId;\r\n }\r\n return strategy;\r\n };\r\n ViewLocator.prototype.createFallbackViewStrategy = function (origin) {\r\n return new ConventionalViewStrategy(this, origin);\r\n };\r\n ViewLocator.prototype.convertOriginToViewUrl = function (origin) {\r\n var moduleId = origin.moduleId;\r\n var id = (moduleId.endsWith('.js') || moduleId.endsWith('.ts')) ? moduleId.substring(0, moduleId.length - 3) : moduleId;\r\n return id + '.html';\r\n };\r\n ViewLocator.viewStrategyMetadataKey = 'aurelia:view-strategy';\r\n return ViewLocator;\r\n}());\n\nfunction mi(name) {\r\n throw new Error(\"BindingLanguage must implement \".concat(name, \"().\"));\r\n}\r\nvar BindingLanguage = (function () {\r\n function BindingLanguage() {\r\n }\r\n BindingLanguage.prototype.inspectAttribute = function (resources, elementName, attrName, attrValue) {\r\n mi('inspectAttribute');\r\n };\r\n BindingLanguage.prototype.createAttributeInstruction = function (resources, element, info, existingInstruction, context) {\r\n mi('createAttributeInstruction');\r\n };\r\n BindingLanguage.prototype.createLetExpressions = function (resources, element) {\r\n mi('createLetExpressions');\r\n };\r\n BindingLanguage.prototype.inspectTextContent = function (resources, value) {\r\n mi('inspectTextContent');\r\n };\r\n return BindingLanguage;\r\n}());\n\nvar noNodes = Object.freeze([]);\r\nvar SlotCustomAttribute = (function () {\r\n function SlotCustomAttribute(element) {\r\n this.element = element;\r\n this.element.auSlotAttribute = this;\r\n }\r\n SlotCustomAttribute.inject = function () {\r\n return [DOM.Element];\r\n };\r\n SlotCustomAttribute.prototype.valueChanged = function (newValue, oldValue) { };\r\n return SlotCustomAttribute;\r\n}());\r\nvar PassThroughSlot = (function () {\r\n function PassThroughSlot(anchor, name, destinationName, fallbackFactory) {\r\n this.anchor = anchor;\r\n this.anchor.viewSlot = this;\r\n this.name = name;\r\n this.destinationName = destinationName;\r\n this.fallbackFactory = fallbackFactory;\r\n this.destinationSlot = null;\r\n this.projections = 0;\r\n this.contentView = null;\r\n var attr = new SlotCustomAttribute(this.anchor);\r\n attr.value = this.destinationName;\r\n }\r\n Object.defineProperty(PassThroughSlot.prototype, \"needsFallbackRendering\", {\r\n get: function () {\r\n return this.fallbackFactory && this.projections === 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n PassThroughSlot.prototype.renderFallbackContent = function (view, nodes, projectionSource, index) {\r\n if (this.contentView === null) {\r\n this.contentView = this.fallbackFactory.create(this.ownerView.container);\r\n this.contentView.bind(this.ownerView.bindingContext, this.ownerView.overrideContext);\r\n var slots = Object.create(null);\r\n slots[this.destinationSlot.name] = this.destinationSlot;\r\n ShadowDOM.distributeView(this.contentView, slots, projectionSource, index, this.destinationSlot.name);\r\n }\r\n };\r\n PassThroughSlot.prototype.passThroughTo = function (destinationSlot) {\r\n this.destinationSlot = destinationSlot;\r\n };\r\n PassThroughSlot.prototype.addNode = function (view, node, projectionSource, index) {\r\n if (this.contentView !== null) {\r\n this.contentView.removeNodes();\r\n this.contentView.detached();\r\n this.contentView.unbind();\r\n this.contentView = null;\r\n }\r\n if (node.viewSlot instanceof PassThroughSlot) {\r\n node.viewSlot.passThroughTo(this);\r\n return;\r\n }\r\n this.projections++;\r\n this.destinationSlot.addNode(view, node, projectionSource, index);\r\n };\r\n PassThroughSlot.prototype.removeView = function (view, projectionSource) {\r\n this.projections--;\r\n this.destinationSlot.removeView(view, projectionSource);\r\n if (this.needsFallbackRendering) {\r\n this.renderFallbackContent(null, noNodes, projectionSource);\r\n }\r\n };\r\n PassThroughSlot.prototype.removeAll = function (projectionSource) {\r\n this.projections = 0;\r\n this.destinationSlot.removeAll(projectionSource);\r\n if (this.needsFallbackRendering) {\r\n this.renderFallbackContent(null, noNodes, projectionSource);\r\n }\r\n };\r\n PassThroughSlot.prototype.projectFrom = function (view, projectionSource) {\r\n this.destinationSlot.projectFrom(view, projectionSource);\r\n };\r\n PassThroughSlot.prototype.created = function (ownerView) {\r\n this.ownerView = ownerView;\r\n };\r\n PassThroughSlot.prototype.bind = function (view) {\r\n if (this.contentView) {\r\n this.contentView.bind(view.bindingContext, view.overrideContext);\r\n }\r\n };\r\n PassThroughSlot.prototype.attached = function () {\r\n if (this.contentView) {\r\n this.contentView.attached();\r\n }\r\n };\r\n PassThroughSlot.prototype.detached = function () {\r\n if (this.contentView) {\r\n this.contentView.detached();\r\n }\r\n };\r\n PassThroughSlot.prototype.unbind = function () {\r\n if (this.contentView) {\r\n this.contentView.unbind();\r\n }\r\n };\r\n return PassThroughSlot;\r\n}());\r\nvar ShadowSlot = (function () {\r\n function ShadowSlot(anchor, name, fallbackFactory) {\r\n this.anchor = anchor;\r\n this.anchor.isContentProjectionSource = true;\r\n this.anchor.viewSlot = this;\r\n this.name = name;\r\n this.fallbackFactory = fallbackFactory;\r\n this.contentView = null;\r\n this.projections = 0;\r\n this.children = [];\r\n this.projectFromAnchors = null;\r\n this.destinationSlots = null;\r\n }\r\n Object.defineProperty(ShadowSlot.prototype, \"needsFallbackRendering\", {\r\n get: function () {\r\n return this.fallbackFactory && this.projections === 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ShadowSlot.prototype.addNode = function (view, node, projectionSource, index, destination) {\r\n var $node = node;\r\n if (this.contentView !== null) {\r\n this.contentView.removeNodes();\r\n this.contentView.detached();\r\n this.contentView.unbind();\r\n this.contentView = null;\r\n }\r\n if ($node.viewSlot instanceof PassThroughSlot) {\r\n $node.viewSlot.passThroughTo(this);\r\n return;\r\n }\r\n if (this.destinationSlots !== null) {\r\n ShadowDOM.distributeNodes(view, [$node], this.destinationSlots, this, index);\r\n }\r\n else {\r\n $node.auOwnerView = view;\r\n $node.auProjectionSource = projectionSource;\r\n $node.auAssignedSlot = this;\r\n var anchor = this._findAnchor(view, $node, projectionSource, index);\r\n var parent_1 = anchor.parentNode;\r\n parent_1.insertBefore($node, anchor);\r\n this.children.push($node);\r\n this.projections++;\r\n }\r\n };\r\n ShadowSlot.prototype.removeView = function (view, projectionSource) {\r\n if (this.destinationSlots !== null) {\r\n ShadowDOM.undistributeView(view, this.destinationSlots, this);\r\n }\r\n else if (this.contentView && this.contentView.hasSlots) {\r\n ShadowDOM.undistributeView(view, this.contentView.slots, projectionSource);\r\n }\r\n else {\r\n var found = this.children.find(function (x) { return x.auSlotProjectFrom === projectionSource; });\r\n if (found) {\r\n var children = found.auProjectionChildren;\r\n var ownChildren = this.children;\r\n for (var i = 0, ii = children.length; i < ii; ++i) {\r\n var child = children[i];\r\n if (child.auOwnerView === view) {\r\n children.splice(i, 1);\r\n view.fragment.appendChild(child);\r\n i--;\r\n ii--;\r\n this.projections--;\r\n var idx = ownChildren.indexOf(child);\r\n if (idx > -1) {\r\n ownChildren.splice(idx, 1);\r\n }\r\n }\r\n }\r\n if (this.needsFallbackRendering) {\r\n this.renderFallbackContent(view, noNodes, projectionSource);\r\n }\r\n }\r\n }\r\n };\r\n ShadowSlot.prototype.removeAll = function (projectionSource) {\r\n if (this.destinationSlots !== null) {\r\n ShadowDOM.undistributeAll(this.destinationSlots, this);\r\n }\r\n else if (this.contentView && this.contentView.hasSlots) {\r\n ShadowDOM.undistributeAll(this.contentView.slots, projectionSource);\r\n }\r\n else {\r\n var found = this.children.find(function (x) { return x.auSlotProjectFrom === projectionSource; });\r\n if (found) {\r\n var children = found.auProjectionChildren;\r\n var ownChildren = this.children;\r\n for (var i = 0, ii = children.length; i < ii; ++i) {\r\n var child = children[i];\r\n child.auOwnerView.fragment.appendChild(child);\r\n this.projections--;\r\n var idx = ownChildren.indexOf(child);\r\n if (idx > -1) {\r\n ownChildren.splice(idx, 1);\r\n }\r\n }\r\n found.auProjectionChildren = [];\r\n if (this.needsFallbackRendering) {\r\n this.renderFallbackContent(null, noNodes, projectionSource);\r\n }\r\n }\r\n }\r\n };\r\n ShadowSlot.prototype._findAnchor = function (view, node, projectionSource, index) {\r\n if (projectionSource) {\r\n var found = this.children.find(function (x) { return x.auSlotProjectFrom === projectionSource; });\r\n if (found) {\r\n if (index !== undefined) {\r\n var children = found.auProjectionChildren;\r\n var viewIndex = -1;\r\n var lastView = void 0;\r\n for (var i = 0, ii = children.length; i < ii; ++i) {\r\n var current = children[i];\r\n if (current.auOwnerView !== lastView) {\r\n viewIndex++;\r\n lastView = current.auOwnerView;\r\n if (viewIndex >= index && lastView !== view) {\r\n children.splice(i, 0, node);\r\n return current;\r\n }\r\n }\r\n }\r\n }\r\n found.auProjectionChildren.push(node);\r\n return found;\r\n }\r\n }\r\n return this.anchor;\r\n };\r\n ShadowSlot.prototype.projectTo = function (slots) {\r\n this.destinationSlots = slots;\r\n };\r\n ShadowSlot.prototype.projectFrom = function (view, projectionSource) {\r\n var anchor = DOM.createComment('anchor');\r\n var parent = this.anchor.parentNode;\r\n anchor.auSlotProjectFrom = projectionSource;\r\n anchor.auOwnerView = view;\r\n anchor.auProjectionChildren = [];\r\n parent.insertBefore(anchor, this.anchor);\r\n this.children.push(anchor);\r\n if (this.projectFromAnchors === null) {\r\n this.projectFromAnchors = [];\r\n }\r\n this.projectFromAnchors.push(anchor);\r\n };\r\n ShadowSlot.prototype.renderFallbackContent = function (view, nodes, projectionSource, index) {\r\n if (this.contentView === null) {\r\n this.contentView = this.fallbackFactory.create(this.ownerView.container);\r\n this.contentView.bind(this.ownerView.bindingContext, this.ownerView.overrideContext);\r\n this.contentView.insertNodesBefore(this.anchor);\r\n }\r\n if (this.contentView.hasSlots) {\r\n var slots = this.contentView.slots;\r\n var projectFromAnchors = this.projectFromAnchors;\r\n if (projectFromAnchors !== null) {\r\n for (var slotName in slots) {\r\n var slot = slots[slotName];\r\n for (var i = 0, ii = projectFromAnchors.length; i < ii; ++i) {\r\n var anchor = projectFromAnchors[i];\r\n slot.projectFrom(anchor.auOwnerView, anchor.auSlotProjectFrom);\r\n }\r\n }\r\n }\r\n this.fallbackSlots = slots;\r\n ShadowDOM.distributeNodes(view, nodes, slots, projectionSource, index);\r\n }\r\n };\r\n ShadowSlot.prototype.created = function (ownerView) {\r\n this.ownerView = ownerView;\r\n };\r\n ShadowSlot.prototype.bind = function (view) {\r\n if (this.contentView) {\r\n this.contentView.bind(view.bindingContext, view.overrideContext);\r\n }\r\n };\r\n ShadowSlot.prototype.attached = function () {\r\n if (this.contentView) {\r\n this.contentView.attached();\r\n }\r\n };\r\n ShadowSlot.prototype.detached = function () {\r\n if (this.contentView) {\r\n this.contentView.detached();\r\n }\r\n };\r\n ShadowSlot.prototype.unbind = function () {\r\n if (this.contentView) {\r\n this.contentView.unbind();\r\n }\r\n };\r\n return ShadowSlot;\r\n}());\r\nvar ShadowDOM = (function () {\r\n function ShadowDOM() {\r\n }\r\n ShadowDOM.getSlotName = function (node) {\r\n if (node.auSlotAttribute === undefined) {\r\n return ShadowDOM.defaultSlotKey;\r\n }\r\n return node.auSlotAttribute.value;\r\n };\r\n ShadowDOM.distributeView = function (view, slots, projectionSource, index, destinationOverride) {\r\n var nodes;\r\n if (view === null) {\r\n nodes = noNodes;\r\n }\r\n else {\r\n var childNodes = view.fragment.childNodes;\r\n var ii = childNodes.length;\r\n nodes = new Array(ii);\r\n for (var i = 0; i < ii; ++i) {\r\n nodes[i] = childNodes[i];\r\n }\r\n }\r\n ShadowDOM.distributeNodes(view, nodes, slots, projectionSource, index, destinationOverride);\r\n };\r\n ShadowDOM.undistributeView = function (view, slots, projectionSource) {\r\n for (var slotName in slots) {\r\n slots[slotName].removeView(view, projectionSource);\r\n }\r\n };\r\n ShadowDOM.undistributeAll = function (slots, projectionSource) {\r\n for (var slotName in slots) {\r\n slots[slotName].removeAll(projectionSource);\r\n }\r\n };\r\n ShadowDOM.distributeNodes = function (view, nodes, slots, projectionSource, index, destinationOverride) {\r\n for (var i = 0, ii = nodes.length; i < ii; ++i) {\r\n var currentNode = nodes[i];\r\n var nodeType = currentNode.nodeType;\r\n if (currentNode.isContentProjectionSource) {\r\n currentNode.viewSlot.projectTo(slots);\r\n for (var slotName in slots) {\r\n slots[slotName].projectFrom(view, currentNode.viewSlot);\r\n }\r\n nodes.splice(i, 1);\r\n ii--;\r\n i--;\r\n }\r\n else if (nodeType === 1 || nodeType === 3 || currentNode.viewSlot instanceof PassThroughSlot) {\r\n if (nodeType === 3 && _isAllWhitespace(currentNode)) {\r\n nodes.splice(i, 1);\r\n ii--;\r\n i--;\r\n }\r\n else {\r\n var found = slots[destinationOverride || ShadowDOM.getSlotName(currentNode)];\r\n if (found) {\r\n found.addNode(view, currentNode, projectionSource, index);\r\n nodes.splice(i, 1);\r\n ii--;\r\n i--;\r\n }\r\n }\r\n }\r\n else {\r\n nodes.splice(i, 1);\r\n ii--;\r\n i--;\r\n }\r\n }\r\n for (var slotName in slots) {\r\n var slot = slots[slotName];\r\n if (slot.needsFallbackRendering) {\r\n slot.renderFallbackContent(view, nodes, projectionSource, index);\r\n }\r\n }\r\n };\r\n ShadowDOM.defaultSlotKey = '__au-default-slot-key__';\r\n return ShadowDOM;\r\n}());\n\nvar CompositionTransactionNotifier = (function () {\r\n function CompositionTransactionNotifier(owner) {\r\n this.owner = owner;\r\n this.owner._compositionCount++;\r\n }\r\n CompositionTransactionNotifier.prototype.done = function () {\r\n this.owner._compositionCount--;\r\n this.owner._tryCompleteTransaction();\r\n };\r\n return CompositionTransactionNotifier;\r\n}());\r\nvar CompositionTransactionOwnershipToken = (function () {\r\n function CompositionTransactionOwnershipToken(owner) {\r\n this.owner = owner;\r\n this.owner._ownershipToken = this;\r\n this.thenable = this._createThenable();\r\n }\r\n CompositionTransactionOwnershipToken.prototype.waitForCompositionComplete = function () {\r\n this.owner._tryCompleteTransaction();\r\n return this.thenable;\r\n };\r\n CompositionTransactionOwnershipToken.prototype.resolve = function () {\r\n this._resolveCallback();\r\n };\r\n CompositionTransactionOwnershipToken.prototype._resolveCallback = function () {\r\n throw new Error(\"Method not implemented.\");\r\n };\r\n CompositionTransactionOwnershipToken.prototype._createThenable = function () {\r\n var _this = this;\r\n return new Promise(function (resolve) {\r\n _this._resolveCallback = resolve;\r\n });\r\n };\r\n return CompositionTransactionOwnershipToken;\r\n}());\r\nvar CompositionTransaction = (function () {\r\n function CompositionTransaction() {\r\n this._ownershipToken = null;\r\n this._compositionCount = 0;\r\n }\r\n CompositionTransaction.prototype.tryCapture = function () {\r\n return this._ownershipToken === null\r\n ? new CompositionTransactionOwnershipToken(this)\r\n : null;\r\n };\r\n CompositionTransaction.prototype.enlist = function () {\r\n return new CompositionTransactionNotifier(this);\r\n };\r\n CompositionTransaction.prototype._tryCompleteTransaction = function () {\r\n if (this._compositionCount <= 0) {\r\n this._compositionCount = 0;\r\n if (this._ownershipToken !== null) {\r\n var token = this._ownershipToken;\r\n this._ownershipToken = null;\r\n token.resolve();\r\n }\r\n }\r\n };\r\n return CompositionTransaction;\r\n}());\n\nvar View = (function () {\r\n function View(container, viewFactory, fragment, controllers, bindings, children, slots) {\r\n this.container = container;\r\n this.viewFactory = viewFactory;\r\n this.resources = viewFactory.resources;\r\n this.fragment = fragment;\r\n this.firstChild = fragment.firstChild;\r\n this.lastChild = fragment.lastChild;\r\n this.controllers = controllers;\r\n this.bindings = bindings;\r\n this.children = children;\r\n this.slots = slots;\r\n this.hasSlots = false;\r\n this.fromCache = false;\r\n this.isBound = false;\r\n this.isAttached = false;\r\n this.bindingContext = null;\r\n this.overrideContext = null;\r\n this.controller = null;\r\n this.viewModelScope = null;\r\n this.animatableElement = undefined;\r\n this._isUserControlled = false;\r\n this.contentView = null;\r\n for (var _ in slots) {\r\n this.hasSlots = true;\r\n break;\r\n }\r\n }\r\n View.prototype.returnToCache = function () {\r\n this.viewFactory.returnViewToCache(this);\r\n };\r\n View.prototype.created = function () {\r\n var i;\r\n var ii;\r\n var controllers = this.controllers;\r\n for (i = 0, ii = controllers.length; i < ii; ++i) {\r\n controllers[i].created(this);\r\n }\r\n };\r\n View.prototype.bind = function (bindingContext, overrideContext, _systemUpdate) {\r\n var controllers;\r\n var bindings;\r\n var children;\r\n var i;\r\n var ii;\r\n if (_systemUpdate && this._isUserControlled) {\r\n return;\r\n }\r\n if (this.isBound) {\r\n if (this.bindingContext === bindingContext) {\r\n return;\r\n }\r\n this.unbind();\r\n }\r\n this.isBound = true;\r\n this.bindingContext = bindingContext;\r\n this.overrideContext = overrideContext || createOverrideContext(bindingContext);\r\n this.resources._invokeHook('beforeBind', this);\r\n bindings = this.bindings;\r\n for (i = 0, ii = bindings.length; i < ii; ++i) {\r\n bindings[i].bind(this);\r\n }\r\n if (this.viewModelScope !== null) {\r\n bindingContext.bind(this.viewModelScope.bindingContext, this.viewModelScope.overrideContext);\r\n this.viewModelScope = null;\r\n }\r\n controllers = this.controllers;\r\n for (i = 0, ii = controllers.length; i < ii; ++i) {\r\n controllers[i].bind(this);\r\n }\r\n children = this.children;\r\n for (i = 0, ii = children.length; i < ii; ++i) {\r\n children[i].bind(bindingContext, overrideContext, true);\r\n }\r\n if (this.hasSlots) {\r\n ShadowDOM.distributeView(this.contentView, this.slots);\r\n }\r\n };\r\n View.prototype.addBinding = function (binding) {\r\n this.bindings.push(binding);\r\n if (this.isBound) {\r\n binding.bind(this);\r\n }\r\n };\r\n View.prototype.unbind = function () {\r\n var controllers;\r\n var bindings;\r\n var children;\r\n var i;\r\n var ii;\r\n if (this.isBound) {\r\n this.isBound = false;\r\n this.resources._invokeHook('beforeUnbind', this);\r\n if (this.controller !== null) {\r\n this.controller.unbind();\r\n }\r\n bindings = this.bindings;\r\n for (i = 0, ii = bindings.length; i < ii; ++i) {\r\n bindings[i].unbind();\r\n }\r\n controllers = this.controllers;\r\n for (i = 0, ii = controllers.length; i < ii; ++i) {\r\n controllers[i].unbind();\r\n }\r\n children = this.children;\r\n for (i = 0, ii = children.length; i < ii; ++i) {\r\n children[i].unbind();\r\n }\r\n this.bindingContext = null;\r\n this.overrideContext = null;\r\n }\r\n };\r\n View.prototype.insertNodesBefore = function (refNode) {\r\n refNode.parentNode.insertBefore(this.fragment, refNode);\r\n };\r\n View.prototype.appendNodesTo = function (parent) {\r\n parent.appendChild(this.fragment);\r\n };\r\n View.prototype.removeNodes = function () {\r\n var fragment = this.fragment;\r\n var current = this.firstChild;\r\n var end = this.lastChild;\r\n var next;\r\n while (current) {\r\n next = current.nextSibling;\r\n fragment.appendChild(current);\r\n if (current === end) {\r\n break;\r\n }\r\n current = next;\r\n }\r\n };\r\n View.prototype.attached = function () {\r\n var controllers;\r\n var children;\r\n var i;\r\n var ii;\r\n if (this.isAttached) {\r\n return;\r\n }\r\n this.isAttached = true;\r\n if (this.controller !== null) {\r\n this.controller.attached();\r\n }\r\n controllers = this.controllers;\r\n for (i = 0, ii = controllers.length; i < ii; ++i) {\r\n controllers[i].attached();\r\n }\r\n children = this.children;\r\n for (i = 0, ii = children.length; i < ii; ++i) {\r\n children[i].attached();\r\n }\r\n };\r\n View.prototype.detached = function () {\r\n var controllers;\r\n var children;\r\n var i;\r\n var ii;\r\n if (this.isAttached) {\r\n this.isAttached = false;\r\n if (this.controller !== null) {\r\n this.controller.detached();\r\n }\r\n controllers = this.controllers;\r\n for (i = 0, ii = controllers.length; i < ii; ++i) {\r\n controllers[i].detached();\r\n }\r\n children = this.children;\r\n for (i = 0, ii = children.length; i < ii; ++i) {\r\n children[i].detached();\r\n }\r\n }\r\n };\r\n return View;\r\n}());\n\nvar Animator = (function () {\r\n function Animator() {\r\n }\r\n Animator.prototype.enter = function (element) {\r\n return Promise.resolve(false);\r\n };\r\n Animator.prototype.leave = function (element) {\r\n return Promise.resolve(false);\r\n };\r\n Animator.prototype.removeClass = function (element, className) {\r\n element.classList.remove(className);\r\n return Promise.resolve(false);\r\n };\r\n Animator.prototype.addClass = function (element, className) {\r\n element.classList.add(className);\r\n return Promise.resolve(false);\r\n };\r\n Animator.prototype.animate = function (element, className) {\r\n return Promise.resolve(false);\r\n };\r\n Animator.prototype.runSequence = function (animations) {\r\n return Promise.resolve(false);\r\n };\r\n Animator.prototype.registerEffect = function (effectName, properties) { };\r\n Animator.prototype.unregisterEffect = function (effectName) { };\r\n return Animator;\r\n}());\n\nfunction getAnimatableElement(view) {\r\n if (view.animatableElement !== undefined) {\r\n return view.animatableElement;\r\n }\r\n var current = view.firstChild;\r\n while (current && current.nodeType !== 1) {\r\n current = current.nextSibling;\r\n }\r\n if (current && current.nodeType === 1) {\r\n return (view.animatableElement = current.classList.contains('au-animate') ? current : null);\r\n }\r\n return (view.animatableElement = null);\r\n}\r\nvar ViewSlot = (function () {\r\n function ViewSlot(anchor, anchorIsContainer, animator) {\r\n if (animator === void 0) { animator = Animator.instance; }\r\n this.anchor = anchor;\r\n this.anchorIsContainer = anchorIsContainer;\r\n this.bindingContext = null;\r\n this.overrideContext = null;\r\n this.animator = animator;\r\n this.children = [];\r\n this.isBound = false;\r\n this.isAttached = false;\r\n this.contentSelectors = null;\r\n anchor.viewSlot = this;\r\n anchor.isContentProjectionSource = false;\r\n }\r\n ViewSlot.prototype.animateView = function (view, direction) {\r\n if (direction === void 0) { direction = 'enter'; }\r\n var animatableElement = getAnimatableElement(view);\r\n if (animatableElement !== null) {\r\n switch (direction) {\r\n case 'enter':\r\n return this.animator.enter(animatableElement);\r\n case 'leave':\r\n return this.animator.leave(animatableElement);\r\n default:\r\n throw new Error('Invalid animation direction: ' + direction);\r\n }\r\n }\r\n };\r\n ViewSlot.prototype.transformChildNodesIntoView = function () {\r\n var parent = this.anchor;\r\n this.children.push({\r\n fragment: parent,\r\n firstChild: parent.firstChild,\r\n lastChild: parent.lastChild,\r\n returnToCache: function () { },\r\n removeNodes: function () {\r\n var last;\r\n while (last = parent.lastChild) {\r\n parent.removeChild(last);\r\n }\r\n },\r\n created: function () { },\r\n bind: function () { },\r\n unbind: function () { },\r\n attached: function () { },\r\n detached: function () { }\r\n });\r\n };\r\n ViewSlot.prototype.bind = function (bindingContext, overrideContext) {\r\n var i;\r\n var ii;\r\n var children;\r\n if (this.isBound) {\r\n if (this.bindingContext === bindingContext) {\r\n return;\r\n }\r\n this.unbind();\r\n }\r\n this.isBound = true;\r\n this.bindingContext = bindingContext = bindingContext || this.bindingContext;\r\n this.overrideContext = overrideContext = overrideContext || this.overrideContext;\r\n children = this.children;\r\n for (i = 0, ii = children.length; i < ii; ++i) {\r\n children[i].bind(bindingContext, overrideContext, true);\r\n }\r\n };\r\n ViewSlot.prototype.unbind = function () {\r\n if (this.isBound) {\r\n var i = void 0;\r\n var ii = void 0;\r\n var children = this.children;\r\n this.isBound = false;\r\n this.bindingContext = null;\r\n this.overrideContext = null;\r\n for (i = 0, ii = children.length; i < ii; ++i) {\r\n children[i].unbind();\r\n }\r\n }\r\n };\r\n ViewSlot.prototype.add = function (view) {\r\n if (this.anchorIsContainer) {\r\n view.appendNodesTo(this.anchor);\r\n }\r\n else {\r\n view.insertNodesBefore(this.anchor);\r\n }\r\n this.children.push(view);\r\n if (this.isAttached) {\r\n view.attached();\r\n return this.animateView(view, 'enter');\r\n }\r\n };\r\n ViewSlot.prototype.insert = function (index, view) {\r\n var children = this.children;\r\n var length = children.length;\r\n if ((index === 0 && length === 0) || index >= length) {\r\n return this.add(view);\r\n }\r\n view.insertNodesBefore(children[index].firstChild);\r\n children.splice(index, 0, view);\r\n if (this.isAttached) {\r\n view.attached();\r\n return this.animateView(view, 'enter');\r\n }\r\n };\r\n ViewSlot.prototype.move = function (sourceIndex, targetIndex) {\r\n if (sourceIndex === targetIndex) {\r\n return;\r\n }\r\n var children = this.children;\r\n var view = children[sourceIndex];\r\n view.removeNodes();\r\n view.insertNodesBefore(children[targetIndex].firstChild);\r\n children.splice(sourceIndex, 1);\r\n children.splice(targetIndex, 0, view);\r\n };\r\n ViewSlot.prototype.remove = function (view, returnToCache, skipAnimation) {\r\n return this.removeAt(this.children.indexOf(view), returnToCache, skipAnimation);\r\n };\r\n ViewSlot.prototype.removeMany = function (viewsToRemove, returnToCache, skipAnimation) {\r\n var _this = this;\r\n var children = this.children;\r\n var ii = viewsToRemove.length;\r\n var i;\r\n var rmPromises = [];\r\n viewsToRemove.forEach(function (child) {\r\n if (skipAnimation) {\r\n child.removeNodes();\r\n return;\r\n }\r\n var animation = _this.animateView(child, 'leave');\r\n if (animation) {\r\n rmPromises.push(animation.then(function () { return child.removeNodes(); }));\r\n }\r\n else {\r\n child.removeNodes();\r\n }\r\n });\r\n var removeAction = function () {\r\n if (_this.isAttached) {\r\n for (i = 0; i < ii; ++i) {\r\n viewsToRemove[i].detached();\r\n }\r\n }\r\n if (returnToCache) {\r\n for (i = 0; i < ii; ++i) {\r\n viewsToRemove[i].returnToCache();\r\n }\r\n }\r\n for (i = 0; i < ii; ++i) {\r\n var index = children.indexOf(viewsToRemove[i]);\r\n if (index >= 0) {\r\n children.splice(index, 1);\r\n }\r\n }\r\n };\r\n if (rmPromises.length > 0) {\r\n return Promise.all(rmPromises).then(function () { return removeAction(); });\r\n }\r\n return removeAction();\r\n };\r\n ViewSlot.prototype.removeAt = function (index, returnToCache, skipAnimation) {\r\n var _this = this;\r\n var view = this.children[index];\r\n var removeAction = function () {\r\n index = _this.children.indexOf(view);\r\n view.removeNodes();\r\n _this.children.splice(index, 1);\r\n if (_this.isAttached) {\r\n view.detached();\r\n }\r\n if (returnToCache) {\r\n view.returnToCache();\r\n }\r\n return view;\r\n };\r\n if (!skipAnimation) {\r\n var animation = this.animateView(view, 'leave');\r\n if (animation) {\r\n return animation.then(function () { return removeAction(); });\r\n }\r\n }\r\n return removeAction();\r\n };\r\n ViewSlot.prototype.removeAll = function (returnToCache, skipAnimation) {\r\n var _this = this;\r\n var children = this.children;\r\n var ii = children.length;\r\n var i;\r\n var rmPromises = [];\r\n children.forEach(function (child) {\r\n if (skipAnimation) {\r\n child.removeNodes();\r\n return;\r\n }\r\n var animation = _this.animateView(child, 'leave');\r\n if (animation) {\r\n rmPromises.push(animation.then(function () { return child.removeNodes(); }));\r\n }\r\n else {\r\n child.removeNodes();\r\n }\r\n });\r\n var removeAction = function () {\r\n if (_this.isAttached) {\r\n for (i = 0; i < ii; ++i) {\r\n children[i].detached();\r\n }\r\n }\r\n if (returnToCache) {\r\n for (i = 0; i < ii; ++i) {\r\n var child = children[i];\r\n if (child) {\r\n child.returnToCache();\r\n }\r\n }\r\n }\r\n _this.children = [];\r\n };\r\n if (rmPromises.length > 0) {\r\n return Promise.all(rmPromises).then(function () { return removeAction(); });\r\n }\r\n return removeAction();\r\n };\r\n ViewSlot.prototype.attached = function () {\r\n var i;\r\n var ii;\r\n var children;\r\n var child;\r\n if (this.isAttached) {\r\n return;\r\n }\r\n this.isAttached = true;\r\n children = this.children;\r\n for (i = 0, ii = children.length; i < ii; ++i) {\r\n child = children[i];\r\n child.attached();\r\n this.animateView(child, 'enter');\r\n }\r\n };\r\n ViewSlot.prototype.detached = function () {\r\n var i;\r\n var ii;\r\n var children;\r\n if (this.isAttached) {\r\n this.isAttached = false;\r\n children = this.children;\r\n for (i = 0, ii = children.length; i < ii; ++i) {\r\n children[i].detached();\r\n }\r\n }\r\n };\r\n ViewSlot.prototype.projectTo = function (slots) {\r\n var _this = this;\r\n this.projectToSlots = slots;\r\n this.add = this._projectionAdd;\r\n this.insert = this._projectionInsert;\r\n this.move = this._projectionMove;\r\n this.remove = this._projectionRemove;\r\n this.removeAt = this._projectionRemoveAt;\r\n this.removeMany = this._projectionRemoveMany;\r\n this.removeAll = this._projectionRemoveAll;\r\n this.children.forEach(function (view) { return ShadowDOM.distributeView(view, slots, _this); });\r\n };\r\n ViewSlot.prototype._projectionAdd = function (view) {\r\n ShadowDOM.distributeView(view, this.projectToSlots, this);\r\n this.children.push(view);\r\n if (this.isAttached) {\r\n view.attached();\r\n }\r\n };\r\n ViewSlot.prototype._projectionInsert = function (index, view) {\r\n if ((index === 0 && !this.children.length) || index >= this.children.length) {\r\n this.add(view);\r\n }\r\n else {\r\n ShadowDOM.distributeView(view, this.projectToSlots, this, index);\r\n this.children.splice(index, 0, view);\r\n if (this.isAttached) {\r\n view.attached();\r\n }\r\n }\r\n };\r\n ViewSlot.prototype._projectionMove = function (sourceIndex, targetIndex) {\r\n if (sourceIndex === targetIndex) {\r\n return;\r\n }\r\n var children = this.children;\r\n var view = children[sourceIndex];\r\n ShadowDOM.undistributeView(view, this.projectToSlots, this);\r\n ShadowDOM.distributeView(view, this.projectToSlots, this, targetIndex);\r\n children.splice(sourceIndex, 1);\r\n children.splice(targetIndex, 0, view);\r\n };\r\n ViewSlot.prototype._projectionRemove = function (view, returnToCache) {\r\n ShadowDOM.undistributeView(view, this.projectToSlots, this);\r\n this.children.splice(this.children.indexOf(view), 1);\r\n if (this.isAttached) {\r\n view.detached();\r\n }\r\n if (returnToCache) {\r\n view.returnToCache();\r\n }\r\n };\r\n ViewSlot.prototype._projectionRemoveAt = function (index, returnToCache) {\r\n var view = this.children[index];\r\n ShadowDOM.undistributeView(view, this.projectToSlots, this);\r\n this.children.splice(index, 1);\r\n if (this.isAttached) {\r\n view.detached();\r\n }\r\n if (returnToCache) {\r\n view.returnToCache();\r\n }\r\n };\r\n ViewSlot.prototype._projectionRemoveMany = function (viewsToRemove, returnToCache) {\r\n var _this = this;\r\n viewsToRemove.forEach(function (view) { return _this.remove(view, returnToCache); });\r\n };\r\n ViewSlot.prototype._projectionRemoveAll = function (returnToCache) {\r\n ShadowDOM.undistributeAll(this.projectToSlots, this);\r\n var children = this.children;\r\n var ii = children.length;\r\n for (var i = 0; i < ii; ++i) {\r\n if (returnToCache) {\r\n children[i].returnToCache();\r\n }\r\n else if (this.isAttached) {\r\n children[i].detached();\r\n }\r\n }\r\n this.children = [];\r\n };\r\n return ViewSlot;\r\n}());\n\nvar $resolver = resolver;\r\nvar ProviderResolver = (function () {\r\n function ProviderResolver() {\r\n }\r\n ProviderResolver.prototype.get = function (container, key) {\r\n var id = key.__providerId__;\r\n return id in container ? container[id] : (container[id] = container.invoke(key));\r\n };\r\n ProviderResolver = __decorate([\r\n $resolver\r\n ], ProviderResolver);\r\n return ProviderResolver;\r\n}());\r\nvar providerResolverInstance = new ProviderResolver();\r\nfunction elementContainerGet(key) {\r\n if (key === DOM.Element) {\r\n return this.element;\r\n }\r\n if (key === BoundViewFactory) {\r\n if (this.boundViewFactory) {\r\n return this.boundViewFactory;\r\n }\r\n var factory = this.instruction.viewFactory;\r\n var partReplacements = this.partReplacements;\r\n if (partReplacements) {\r\n factory = partReplacements[factory.part] || factory;\r\n }\r\n this.boundViewFactory = new BoundViewFactory(this, factory, partReplacements);\r\n return this.boundViewFactory;\r\n }\r\n if (key === ViewSlot) {\r\n if (this.viewSlot === undefined) {\r\n this.viewSlot = new ViewSlot(this.element, this.instruction.anchorIsContainer);\r\n this.element.isContentProjectionSource = this.instruction.lifting;\r\n this.children.push(this.viewSlot);\r\n }\r\n return this.viewSlot;\r\n }\r\n if (key === ElementEvents) {\r\n return this.elementEvents || (this.elementEvents = new ElementEvents(this.element));\r\n }\r\n if (key === CompositionTransaction) {\r\n return this.compositionTransaction || (this.compositionTransaction = this.parent.get(key));\r\n }\r\n if (key === ViewResources) {\r\n return this.viewResources;\r\n }\r\n if (key === TargetInstruction) {\r\n return this.instruction;\r\n }\r\n return this.superGet(key);\r\n}\r\nfunction createElementContainer(parent, element, instruction, children, partReplacements, resources) {\r\n var container = parent.createChild();\r\n var providers;\r\n var i;\r\n container.element = element;\r\n container.instruction = instruction;\r\n container.children = children;\r\n container.viewResources = resources;\r\n container.partReplacements = partReplacements;\r\n providers = instruction.providers;\r\n i = providers.length;\r\n while (i--) {\r\n container._resolvers.set(providers[i], providerResolverInstance);\r\n }\r\n container.superGet = container.get;\r\n container.get = elementContainerGet;\r\n return container;\r\n}\r\nfunction hasAttribute(name) {\r\n return this._element.hasAttribute(name);\r\n}\r\nfunction getAttribute(name) {\r\n return this._element.getAttribute(name);\r\n}\r\nfunction setAttribute(name, value) {\r\n this._element.setAttribute(name, value);\r\n}\r\nfunction makeElementIntoAnchor(element, elementInstruction) {\r\n var anchor = DOM.createComment('anchor');\r\n if (elementInstruction) {\r\n var firstChild = element.firstChild;\r\n if (firstChild && firstChild.tagName === 'AU-CONTENT') {\r\n anchor.contentElement = firstChild;\r\n }\r\n anchor._element = element;\r\n anchor.hasAttribute = hasAttribute;\r\n anchor.getAttribute = getAttribute;\r\n anchor.setAttribute = setAttribute;\r\n }\r\n DOM.replaceNode(anchor, element);\r\n return anchor;\r\n}\r\nfunction applyInstructions(containers, element, instruction, controllers, bindings, children, shadowSlots, partReplacements, resources) {\r\n var behaviorInstructions = instruction.behaviorInstructions;\r\n var expressions = instruction.expressions;\r\n var elementContainer;\r\n var i;\r\n var ii;\r\n var current;\r\n var instance;\r\n if (instruction.contentExpression) {\r\n bindings.push(instruction.contentExpression.createBinding(element.nextSibling));\r\n element.nextSibling.auInterpolationTarget = true;\r\n element.parentNode.removeChild(element);\r\n return;\r\n }\r\n if (instruction.shadowSlot) {\r\n var commentAnchor = DOM.createComment('slot');\r\n var slot = void 0;\r\n if (instruction.slotDestination) {\r\n slot = new PassThroughSlot(commentAnchor, instruction.slotName, instruction.slotDestination, instruction.slotFallbackFactory);\r\n }\r\n else {\r\n slot = new ShadowSlot(commentAnchor, instruction.slotName, instruction.slotFallbackFactory);\r\n }\r\n DOM.replaceNode(commentAnchor, element);\r\n shadowSlots[instruction.slotName] = slot;\r\n controllers.push(slot);\r\n return;\r\n }\r\n if (instruction.letElement) {\r\n for (i = 0, ii = expressions.length; i < ii; ++i) {\r\n bindings.push(expressions[i].createBinding());\r\n }\r\n element.parentNode.removeChild(element);\r\n return;\r\n }\r\n if (behaviorInstructions.length) {\r\n if (!instruction.anchorIsContainer) {\r\n element = makeElementIntoAnchor(element, instruction.elementInstruction);\r\n }\r\n containers[instruction.injectorId] = elementContainer =\r\n createElementContainer(containers[instruction.parentInjectorId], element, instruction, children, partReplacements, resources);\r\n for (i = 0, ii = behaviorInstructions.length; i < ii; ++i) {\r\n current = behaviorInstructions[i];\r\n instance = current.type.create(elementContainer, current, element, bindings);\r\n controllers.push(instance);\r\n }\r\n }\r\n for (i = 0, ii = expressions.length; i < ii; ++i) {\r\n bindings.push(expressions[i].createBinding(element));\r\n }\r\n}\r\nfunction styleStringToObject(style, target) {\r\n var attributes = style.split(';');\r\n var firstIndexOfColon;\r\n var i;\r\n var current;\r\n var key;\r\n var value;\r\n target = target || {};\r\n for (i = 0; i < attributes.length; i++) {\r\n current = attributes[i];\r\n firstIndexOfColon = current.indexOf(':');\r\n key = current.substring(0, firstIndexOfColon).trim();\r\n value = current.substring(firstIndexOfColon + 1).trim();\r\n target[key] = value;\r\n }\r\n return target;\r\n}\r\nfunction styleObjectToString(obj) {\r\n var result = '';\r\n for (var key in obj) {\r\n result += key + ':' + obj[key] + ';';\r\n }\r\n return result;\r\n}\r\nfunction applySurrogateInstruction(container, element, instruction, controllers, bindings, children) {\r\n var behaviorInstructions = instruction.behaviorInstructions;\r\n var expressions = instruction.expressions;\r\n var providers = instruction.providers;\r\n var values = instruction.values;\r\n var i;\r\n var ii;\r\n var current;\r\n var instance;\r\n var currentAttributeValue;\r\n i = providers.length;\r\n while (i--) {\r\n container._resolvers.set(providers[i], providerResolverInstance);\r\n }\r\n for (var key in values) {\r\n currentAttributeValue = element.getAttribute(key);\r\n if (currentAttributeValue) {\r\n if (key === 'class') {\r\n element.setAttribute('class', currentAttributeValue + ' ' + values[key]);\r\n }\r\n else if (key === 'style') {\r\n var styleObject = styleStringToObject(values[key]);\r\n styleStringToObject(currentAttributeValue, styleObject);\r\n element.setAttribute('style', styleObjectToString(styleObject));\r\n }\r\n }\r\n else {\r\n element.setAttribute(key, values[key]);\r\n }\r\n }\r\n if (behaviorInstructions.length) {\r\n for (i = 0, ii = behaviorInstructions.length; i < ii; ++i) {\r\n current = behaviorInstructions[i];\r\n instance = current.type.create(container, current, element, bindings);\r\n if (instance.contentView) {\r\n children.push(instance.contentView);\r\n }\r\n controllers.push(instance);\r\n }\r\n }\r\n for (i = 0, ii = expressions.length; i < ii; ++i) {\r\n bindings.push(expressions[i].createBinding(element));\r\n }\r\n}\r\nvar BoundViewFactory = (function () {\r\n function BoundViewFactory(parentContainer, viewFactory, partReplacements) {\r\n this.parentContainer = parentContainer;\r\n this.viewFactory = viewFactory;\r\n this.factoryCreateInstruction = { partReplacements: partReplacements };\r\n }\r\n BoundViewFactory.prototype.create = function () {\r\n var view = this.viewFactory.create(this.parentContainer.createChild(), this.factoryCreateInstruction);\r\n view._isUserControlled = true;\r\n return view;\r\n };\r\n Object.defineProperty(BoundViewFactory.prototype, \"isCaching\", {\r\n get: function () {\r\n return this.viewFactory.isCaching;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n BoundViewFactory.prototype.setCacheSize = function (size, doNotOverrideIfAlreadySet) {\r\n this.viewFactory.setCacheSize(size, doNotOverrideIfAlreadySet);\r\n };\r\n BoundViewFactory.prototype.getCachedView = function () {\r\n return this.viewFactory.getCachedView();\r\n };\r\n BoundViewFactory.prototype.returnViewToCache = function (view) {\r\n this.viewFactory.returnViewToCache(view);\r\n };\r\n return BoundViewFactory;\r\n}());\r\nvar ViewFactory = (function () {\r\n function ViewFactory(template, instructions, resources) {\r\n this.isCaching = false;\r\n this.template = template;\r\n this.instructions = instructions;\r\n this.resources = resources;\r\n this.cacheSize = -1;\r\n this.cache = null;\r\n }\r\n ViewFactory.prototype.setCacheSize = function (size, doNotOverrideIfAlreadySet) {\r\n if (size) {\r\n if (size === '*') {\r\n size = Number.MAX_VALUE;\r\n }\r\n else if (typeof size === 'string') {\r\n size = parseInt(size, 10);\r\n }\r\n }\r\n if (this.cacheSize === -1 || !doNotOverrideIfAlreadySet) {\r\n this.cacheSize = Number(size);\r\n }\r\n if (this.cacheSize > 0) {\r\n this.cache = [];\r\n }\r\n else {\r\n this.cache = null;\r\n }\r\n this.isCaching = this.cacheSize > 0;\r\n };\r\n ViewFactory.prototype.getCachedView = function () {\r\n return this.cache !== null ? (this.cache.pop() || null) : null;\r\n };\r\n ViewFactory.prototype.returnViewToCache = function (view) {\r\n if (view.isAttached) {\r\n view.detached();\r\n }\r\n if (view.isBound) {\r\n view.unbind();\r\n }\r\n if (this.cache !== null && this.cache.length < this.cacheSize) {\r\n view.fromCache = true;\r\n this.cache.push(view);\r\n }\r\n };\r\n ViewFactory.prototype.create = function (container, createInstruction, element) {\r\n createInstruction = createInstruction || BehaviorInstruction.normal;\r\n var cachedView = this.getCachedView();\r\n if (cachedView !== null) {\r\n return cachedView;\r\n }\r\n var fragment = createInstruction.enhance ? this.template : this.template.cloneNode(true);\r\n var instructables = fragment.querySelectorAll('.au-target');\r\n var instructions = this.instructions;\r\n var resources = this.resources;\r\n var controllers = [];\r\n var bindings = [];\r\n var children = [];\r\n var shadowSlots = Object.create(null);\r\n var containers = { root: container };\r\n var partReplacements = createInstruction.partReplacements;\r\n var i;\r\n var ii;\r\n var view;\r\n var instructable;\r\n var instruction;\r\n this.resources._invokeHook('beforeCreate', this, container, fragment, createInstruction);\r\n if (element && this.surrogateInstruction !== null) {\r\n applySurrogateInstruction(container, element, this.surrogateInstruction, controllers, bindings, children);\r\n }\r\n if (createInstruction.enhance && fragment.hasAttribute('au-target-id')) {\r\n instructable = fragment;\r\n instruction = instructions[instructable.getAttribute('au-target-id')];\r\n applyInstructions(containers, instructable, instruction, controllers, bindings, children, shadowSlots, partReplacements, resources);\r\n }\r\n for (i = 0, ii = instructables.length; i < ii; ++i) {\r\n instructable = instructables[i];\r\n instruction = instructions[instructable.getAttribute('au-target-id')];\r\n applyInstructions(containers, instructable, instruction, controllers, bindings, children, shadowSlots, partReplacements, resources);\r\n }\r\n view = new View(container, this, fragment, controllers, bindings, children, shadowSlots);\r\n if (!createInstruction.initiatedByBehavior) {\r\n view.created();\r\n }\r\n this.resources._invokeHook('afterCreate', view);\r\n return view;\r\n };\r\n return ViewFactory;\r\n}());\n\nvar nextInjectorId = 0;\r\nfunction getNextInjectorId() {\r\n return ++nextInjectorId;\r\n}\r\nvar lastAUTargetID = 0;\r\nfunction getNextAUTargetID() {\r\n return (++lastAUTargetID).toString();\r\n}\r\nfunction makeIntoInstructionTarget(element) {\r\n var value = element.getAttribute('class');\r\n var auTargetID = getNextAUTargetID();\r\n element.setAttribute('class', (value ? value + ' au-target' : 'au-target'));\r\n element.setAttribute('au-target-id', auTargetID);\r\n return auTargetID;\r\n}\r\nfunction makeShadowSlot(compiler, resources, node, instructions, parentInjectorId) {\r\n var auShadowSlot = DOM.createElement('au-shadow-slot');\r\n DOM.replaceNode(auShadowSlot, node);\r\n var auTargetID = makeIntoInstructionTarget(auShadowSlot);\r\n var instruction = TargetInstruction.shadowSlot(parentInjectorId);\r\n instruction.slotName = node.getAttribute('name') || ShadowDOM.defaultSlotKey;\r\n instruction.slotDestination = node.getAttribute('slot');\r\n if (node.innerHTML.trim()) {\r\n var fragment = DOM.createDocumentFragment();\r\n var child = void 0;\r\n while (child = node.firstChild) {\r\n fragment.appendChild(child);\r\n }\r\n instruction.slotFallbackFactory = compiler.compile(fragment, resources);\r\n }\r\n instructions[auTargetID] = instruction;\r\n return auShadowSlot;\r\n}\r\nvar defaultLetHandler = BindingLanguage.prototype.createLetExpressions;\r\nvar ViewCompiler = (function () {\r\n function ViewCompiler(bindingLanguage, resources) {\r\n this.bindingLanguage = bindingLanguage;\r\n this.resources = resources;\r\n }\r\n ViewCompiler.inject = function () {\r\n return [BindingLanguage, ViewResources];\r\n };\r\n ViewCompiler.prototype.compile = function (source, resources, compileInstruction) {\r\n resources = resources || this.resources;\r\n compileInstruction = compileInstruction || ViewCompileInstruction.normal;\r\n source = typeof source === 'string' ? DOM.createTemplateFromMarkup(source) : source;\r\n var content;\r\n var part;\r\n var cacheSize;\r\n if (source.content) {\r\n part = source.getAttribute('part');\r\n cacheSize = source.getAttribute('view-cache');\r\n content = DOM.adoptNode(source.content);\r\n }\r\n else {\r\n content = source;\r\n }\r\n compileInstruction.targetShadowDOM = compileInstruction.targetShadowDOM && FEATURE.shadowDOM;\r\n resources._invokeHook('beforeCompile', content, resources, compileInstruction);\r\n var instructions = {};\r\n this._compileNode(content, resources, instructions, source, 'root', !compileInstruction.targetShadowDOM);\r\n var firstChild = content.firstChild;\r\n if (firstChild && firstChild.nodeType === 1) {\r\n var targetId = firstChild.getAttribute('au-target-id');\r\n if (targetId) {\r\n var ins = instructions[targetId];\r\n if (ins.shadowSlot || ins.lifting || (ins.elementInstruction && !ins.elementInstruction.anchorIsContainer)) {\r\n content.insertBefore(DOM.createComment('view'), firstChild);\r\n }\r\n }\r\n }\r\n var factory = new ViewFactory(content, instructions, resources);\r\n factory.surrogateInstruction = compileInstruction.compileSurrogate ? this._compileSurrogate(source, resources) : null;\r\n factory.part = part;\r\n if (cacheSize) {\r\n factory.setCacheSize(cacheSize);\r\n }\r\n resources._invokeHook('afterCompile', factory);\r\n return factory;\r\n };\r\n ViewCompiler.prototype._compileNode = function (node, resources, instructions, parentNode, parentInjectorId, targetLightDOM) {\r\n switch (node.nodeType) {\r\n case 1:\r\n return this._compileElement(node, resources, instructions, parentNode, parentInjectorId, targetLightDOM);\r\n case 3:\r\n var expression = resources.getBindingLanguage(this.bindingLanguage).inspectTextContent(resources, node.wholeText);\r\n if (expression) {\r\n var marker = DOM.createElement('au-marker');\r\n var auTargetID = makeIntoInstructionTarget(marker);\r\n (node.parentNode || parentNode).insertBefore(marker, node);\r\n node.textContent = ' ';\r\n instructions[auTargetID] = TargetInstruction.contentExpression(expression);\r\n while (node.nextSibling && node.nextSibling.nodeType === 3) {\r\n (node.parentNode || parentNode).removeChild(node.nextSibling);\r\n }\r\n }\r\n else {\r\n while (node.nextSibling && node.nextSibling.nodeType === 3) {\r\n node = node.nextSibling;\r\n }\r\n }\r\n return node.nextSibling;\r\n case 11:\r\n var currentChild = node.firstChild;\r\n while (currentChild) {\r\n currentChild = this._compileNode(currentChild, resources, instructions, node, parentInjectorId, targetLightDOM);\r\n }\r\n break;\r\n }\r\n return node.nextSibling;\r\n };\r\n ViewCompiler.prototype._compileSurrogate = function (node, resources) {\r\n var tagName = node.tagName.toLowerCase();\r\n var attributes = node.attributes;\r\n var bindingLanguage = resources.getBindingLanguage(this.bindingLanguage);\r\n var knownAttribute;\r\n var property;\r\n var instruction;\r\n var i;\r\n var ii;\r\n var attr;\r\n var attrName;\r\n var attrValue;\r\n var info;\r\n var type;\r\n var expressions = [];\r\n var expression;\r\n var behaviorInstructions = [];\r\n var values = {};\r\n var hasValues = false;\r\n var providers = [];\r\n for (i = 0, ii = attributes.length; i < ii; ++i) {\r\n attr = attributes[i];\r\n attrName = attr.name;\r\n attrValue = attr.value;\r\n info = bindingLanguage.inspectAttribute(resources, tagName, attrName, attrValue);\r\n type = resources.getAttribute(info.attrName);\r\n if (type) {\r\n knownAttribute = resources.mapAttribute(info.attrName);\r\n if (knownAttribute) {\r\n property = type.attributes[knownAttribute];\r\n if (property) {\r\n info.defaultBindingMode = property.defaultBindingMode;\r\n if (!info.command && !info.expression) {\r\n info.command = property.hasOptions ? 'options' : null;\r\n }\r\n if (info.command && (info.command !== 'options') && type.primaryProperty) {\r\n var primaryProperty = type.primaryProperty;\r\n attrName = info.attrName = primaryProperty.attribute;\r\n info.defaultBindingMode = primaryProperty.defaultBindingMode;\r\n }\r\n }\r\n }\r\n }\r\n instruction = bindingLanguage.createAttributeInstruction(resources, node, info, undefined, type);\r\n if (instruction) {\r\n if (instruction.alteredAttr) {\r\n type = resources.getAttribute(instruction.attrName);\r\n }\r\n if (instruction.discrete) {\r\n expressions.push(instruction);\r\n }\r\n else {\r\n if (type) {\r\n instruction.type = type;\r\n this._configureProperties(instruction, resources);\r\n if (type.liftsContent) {\r\n throw new Error('You cannot place a template controller on a surrogate element.');\r\n }\r\n else {\r\n behaviorInstructions.push(instruction);\r\n }\r\n }\r\n else {\r\n expressions.push(instruction.attributes[instruction.attrName]);\r\n }\r\n }\r\n }\r\n else {\r\n if (type) {\r\n instruction = BehaviorInstruction.attribute(attrName, type);\r\n instruction.attributes[resources.mapAttribute(attrName)] = attrValue;\r\n if (type.liftsContent) {\r\n throw new Error('You cannot place a template controller on a surrogate element.');\r\n }\r\n else {\r\n behaviorInstructions.push(instruction);\r\n }\r\n }\r\n else if (attrName !== 'id' && attrName !== 'part' && attrName !== 'replace-part') {\r\n hasValues = true;\r\n values[attrName] = attrValue;\r\n }\r\n }\r\n }\r\n if (expressions.length || behaviorInstructions.length || hasValues) {\r\n for (i = 0, ii = behaviorInstructions.length; i < ii; ++i) {\r\n instruction = behaviorInstructions[i];\r\n instruction.type.compile(this, resources, node, instruction);\r\n providers.push(instruction.type.target);\r\n }\r\n for (i = 0, ii = expressions.length; i < ii; ++i) {\r\n expression = expressions[i];\r\n if (expression.attrToRemove !== undefined) {\r\n node.removeAttribute(expression.attrToRemove);\r\n }\r\n }\r\n return TargetInstruction.surrogate(providers, behaviorInstructions, expressions, values);\r\n }\r\n return null;\r\n };\r\n ViewCompiler.prototype._compileElement = function (node, resources, instructions, parentNode, parentInjectorId, targetLightDOM) {\r\n var tagName = node.tagName.toLowerCase();\r\n var attributes = node.attributes;\r\n var expressions = [];\r\n var expression;\r\n var behaviorInstructions = [];\r\n var providers = [];\r\n var bindingLanguage = resources.getBindingLanguage(this.bindingLanguage);\r\n var liftingInstruction;\r\n var viewFactory;\r\n var type;\r\n var elementInstruction;\r\n var elementProperty;\r\n var i;\r\n var ii;\r\n var attr;\r\n var attrName;\r\n var attrValue;\r\n var originalAttrName;\r\n var instruction;\r\n var info;\r\n var property;\r\n var knownAttribute;\r\n var auTargetID;\r\n var injectorId;\r\n if (tagName === 'slot') {\r\n if (targetLightDOM) {\r\n node = makeShadowSlot(this, resources, node, instructions, parentInjectorId);\r\n }\r\n return node.nextSibling;\r\n }\r\n else if (tagName === 'template') {\r\n if (!('content' in node)) {\r\n throw new Error('You cannot place a template element within ' + node.namespaceURI + ' namespace');\r\n }\r\n viewFactory = this.compile(node, resources);\r\n viewFactory.part = node.getAttribute('part');\r\n }\r\n else {\r\n type = resources.getElement(node.getAttribute('as-element') || tagName);\r\n if (tagName === 'let' && !type && bindingLanguage.createLetExpressions !== defaultLetHandler) {\r\n expressions = bindingLanguage.createLetExpressions(resources, node);\r\n auTargetID = makeIntoInstructionTarget(node);\r\n instructions[auTargetID] = TargetInstruction.letElement(expressions);\r\n return node.nextSibling;\r\n }\r\n if (type) {\r\n elementInstruction = BehaviorInstruction.element(node, type);\r\n type.processAttributes(this, resources, node, attributes, elementInstruction);\r\n behaviorInstructions.push(elementInstruction);\r\n }\r\n }\r\n for (i = 0, ii = attributes.length; i < ii; ++i) {\r\n attr = attributes[i];\r\n originalAttrName = attrName = attr.name;\r\n attrValue = attr.value;\r\n info = bindingLanguage.inspectAttribute(resources, tagName, attrName, attrValue);\r\n if (targetLightDOM && info.attrName === 'slot') {\r\n info.attrName = attrName = 'au-slot';\r\n }\r\n type = resources.getAttribute(info.attrName);\r\n elementProperty = null;\r\n if (type) {\r\n knownAttribute = resources.mapAttribute(info.attrName);\r\n if (knownAttribute) {\r\n property = type.attributes[knownAttribute];\r\n if (property) {\r\n info.defaultBindingMode = property.defaultBindingMode;\r\n if (!info.command && !info.expression) {\r\n info.command = property.hasOptions ? 'options' : null;\r\n }\r\n if (info.command && (info.command !== 'options') && type.primaryProperty) {\r\n var primaryProperty = type.primaryProperty;\r\n attrName = info.attrName = primaryProperty.attribute;\r\n info.defaultBindingMode = primaryProperty.defaultBindingMode;\r\n }\r\n }\r\n }\r\n }\r\n else if (elementInstruction) {\r\n elementProperty = elementInstruction.type.attributes[info.attrName];\r\n if (elementProperty) {\r\n info.defaultBindingMode = elementProperty.defaultBindingMode;\r\n }\r\n }\r\n if (elementProperty) {\r\n instruction = bindingLanguage.createAttributeInstruction(resources, node, info, elementInstruction);\r\n }\r\n else {\r\n instruction = bindingLanguage.createAttributeInstruction(resources, node, info, undefined, type);\r\n }\r\n if (instruction) {\r\n if (instruction.alteredAttr) {\r\n type = resources.getAttribute(instruction.attrName);\r\n }\r\n if (instruction.discrete) {\r\n expressions.push(instruction);\r\n }\r\n else {\r\n if (type) {\r\n instruction.type = type;\r\n this._configureProperties(instruction, resources);\r\n if (type.liftsContent) {\r\n instruction.originalAttrName = originalAttrName;\r\n liftingInstruction = instruction;\r\n break;\r\n }\r\n else {\r\n behaviorInstructions.push(instruction);\r\n }\r\n }\r\n else if (elementProperty) {\r\n elementInstruction.attributes[info.attrName].targetProperty = elementProperty.name;\r\n }\r\n else {\r\n expressions.push(instruction.attributes[instruction.attrName]);\r\n }\r\n }\r\n }\r\n else {\r\n if (type) {\r\n instruction = BehaviorInstruction.attribute(attrName, type);\r\n instruction.attributes[resources.mapAttribute(attrName)] = attrValue;\r\n if (type.liftsContent) {\r\n instruction.originalAttrName = originalAttrName;\r\n liftingInstruction = instruction;\r\n break;\r\n }\r\n else {\r\n behaviorInstructions.push(instruction);\r\n }\r\n }\r\n else if (elementProperty) {\r\n elementInstruction.attributes[attrName] = attrValue;\r\n }\r\n }\r\n }\r\n if (liftingInstruction) {\r\n liftingInstruction.viewFactory = viewFactory;\r\n node = liftingInstruction.type.compile(this, resources, node, liftingInstruction, parentNode);\r\n auTargetID = makeIntoInstructionTarget(node);\r\n instructions[auTargetID] = TargetInstruction.lifting(parentInjectorId, liftingInstruction);\r\n }\r\n else {\r\n var skipContentProcessing = false;\r\n if (expressions.length || behaviorInstructions.length) {\r\n injectorId = behaviorInstructions.length ? getNextInjectorId() : false;\r\n for (i = 0, ii = behaviorInstructions.length; i < ii; ++i) {\r\n instruction = behaviorInstructions[i];\r\n instruction.type.compile(this, resources, node, instruction, parentNode);\r\n providers.push(instruction.type.target);\r\n skipContentProcessing = skipContentProcessing || instruction.skipContentProcessing;\r\n }\r\n for (i = 0, ii = expressions.length; i < ii; ++i) {\r\n expression = expressions[i];\r\n if (expression.attrToRemove !== undefined) {\r\n node.removeAttribute(expression.attrToRemove);\r\n }\r\n }\r\n auTargetID = makeIntoInstructionTarget(node);\r\n instructions[auTargetID] = TargetInstruction.normal(injectorId, parentInjectorId, providers, behaviorInstructions, expressions, elementInstruction);\r\n }\r\n if (skipContentProcessing) {\r\n return node.nextSibling;\r\n }\r\n var currentChild = node.firstChild;\r\n while (currentChild) {\r\n currentChild = this._compileNode(currentChild, resources, instructions, node, injectorId || parentInjectorId, targetLightDOM);\r\n }\r\n }\r\n return node.nextSibling;\r\n };\r\n ViewCompiler.prototype._configureProperties = function (instruction, resources) {\r\n var type = instruction.type;\r\n var attrName = instruction.attrName;\r\n var attributes = instruction.attributes;\r\n var property;\r\n var key;\r\n var value;\r\n var knownAttribute = resources.mapAttribute(attrName);\r\n if (knownAttribute && attrName in attributes && knownAttribute !== attrName) {\r\n attributes[knownAttribute] = attributes[attrName];\r\n delete attributes[attrName];\r\n }\r\n for (key in attributes) {\r\n value = attributes[key];\r\n if (value !== null && typeof value === 'object') {\r\n property = type.attributes[key];\r\n if (property !== undefined) {\r\n value.targetProperty = property.name;\r\n }\r\n else {\r\n value.targetProperty = key;\r\n }\r\n }\r\n }\r\n };\r\n return ViewCompiler;\r\n}());\n\nvar ViewEngineHooksResource = (function () {\r\n function ViewEngineHooksResource() {\r\n }\r\n ViewEngineHooksResource.prototype.initialize = function (container, target) {\r\n this.instance = container.get(target);\r\n };\r\n ViewEngineHooksResource.prototype.register = function (registry, name) {\r\n registry.registerViewEngineHooks(this.instance);\r\n };\r\n ViewEngineHooksResource.prototype.load = function (container, target) { };\r\n ViewEngineHooksResource.convention = function (name) {\r\n if (name.endsWith('ViewEngineHooks')) {\r\n return new ViewEngineHooksResource();\r\n }\r\n };\r\n return ViewEngineHooksResource;\r\n}());\r\nfunction viewEngineHooks(target) {\r\n var deco = function (t) {\r\n metadata.define(metadata.resource, new ViewEngineHooksResource(), t);\r\n };\r\n return target ? deco(target) : deco;\r\n}\n\nvar ResourceModule = (function () {\r\n function ResourceModule(moduleId) {\r\n this.id = moduleId;\r\n this.moduleInstance = null;\r\n this.mainResource = null;\r\n this.resources = null;\r\n this.viewStrategy = null;\r\n this.isInitialized = false;\r\n this.onLoaded = null;\r\n this.loadContext = null;\r\n }\r\n ResourceModule.prototype.initialize = function (container) {\r\n var current = this.mainResource;\r\n var resources = this.resources;\r\n var vs = this.viewStrategy;\r\n if (this.isInitialized) {\r\n return;\r\n }\r\n this.isInitialized = true;\r\n if (current !== undefined) {\r\n current.metadata.viewStrategy = vs;\r\n current.initialize(container);\r\n }\r\n for (var i = 0, ii = resources.length; i < ii; ++i) {\r\n current = resources[i];\r\n current.metadata.viewStrategy = vs;\r\n current.initialize(container);\r\n }\r\n };\r\n ResourceModule.prototype.register = function (registry, name) {\r\n var main = this.mainResource;\r\n var resources = this.resources;\r\n if (main !== undefined) {\r\n main.register(registry, name);\r\n name = null;\r\n }\r\n for (var i = 0, ii = resources.length; i < ii; ++i) {\r\n resources[i].register(registry, name);\r\n name = null;\r\n }\r\n };\r\n ResourceModule.prototype.load = function (container, loadContext) {\r\n if (this.onLoaded !== null) {\r\n return this.loadContext === loadContext ? Promise.resolve() : this.onLoaded;\r\n }\r\n var main = this.mainResource;\r\n var resources = this.resources;\r\n var loads;\r\n if (main !== undefined) {\r\n loads = new Array(resources.length + 1);\r\n loads[0] = main.load(container, loadContext);\r\n for (var i = 0, ii = resources.length; i < ii; ++i) {\r\n loads[i + 1] = resources[i].load(container, loadContext);\r\n }\r\n }\r\n else {\r\n loads = new Array(resources.length);\r\n for (var i = 0, ii = resources.length; i < ii; ++i) {\r\n loads[i] = resources[i].load(container, loadContext);\r\n }\r\n }\r\n this.loadContext = loadContext;\r\n this.onLoaded = Promise.all(loads);\r\n return this.onLoaded;\r\n };\r\n return ResourceModule;\r\n}());\r\nvar ResourceDescription = (function () {\r\n function ResourceDescription(key, exportedValue, resourceTypeMeta) {\r\n if (!resourceTypeMeta) {\r\n resourceTypeMeta = metadata.get(metadata.resource, exportedValue);\r\n if (!resourceTypeMeta) {\r\n resourceTypeMeta = new HtmlBehaviorResource();\r\n resourceTypeMeta.elementName = _hyphenate(key);\r\n metadata.define(metadata.resource, resourceTypeMeta, exportedValue);\r\n }\r\n }\r\n if (resourceTypeMeta instanceof HtmlBehaviorResource) {\r\n if (resourceTypeMeta.elementName === undefined) {\r\n resourceTypeMeta.elementName = _hyphenate(key);\r\n }\r\n else if (resourceTypeMeta.attributeName === undefined) {\r\n resourceTypeMeta.attributeName = _hyphenate(key);\r\n }\r\n else if (resourceTypeMeta.attributeName === null && resourceTypeMeta.elementName === null) {\r\n HtmlBehaviorResource.convention(key, resourceTypeMeta);\r\n }\r\n }\r\n else if (!resourceTypeMeta.name) {\r\n resourceTypeMeta.name = _hyphenate(key);\r\n }\r\n this.metadata = resourceTypeMeta;\r\n this.value = exportedValue;\r\n }\r\n ResourceDescription.prototype.initialize = function (container) {\r\n this.metadata.initialize(container, this.value);\r\n };\r\n ResourceDescription.prototype.register = function (registry, name) {\r\n this.metadata.register(registry, name);\r\n };\r\n ResourceDescription.prototype.load = function (container, loadContext) {\r\n return this.metadata.load(container, this.value, loadContext);\r\n };\r\n return ResourceDescription;\r\n}());\r\nvar ModuleAnalyzer = (function () {\r\n function ModuleAnalyzer() {\r\n this.cache = Object.create(null);\r\n }\r\n ModuleAnalyzer.prototype.getAnalysis = function (moduleId) {\r\n return this.cache[moduleId];\r\n };\r\n ModuleAnalyzer.prototype.analyze = function (moduleId, moduleInstance, mainResourceKey) {\r\n var mainResource;\r\n var fallbackValue;\r\n var fallbackKey;\r\n var resourceTypeMeta;\r\n var key;\r\n var exportedValue;\r\n var resources = [];\r\n var conventional;\r\n var vs;\r\n var resourceModule;\r\n resourceModule = this.cache[moduleId];\r\n if (resourceModule) {\r\n return resourceModule;\r\n }\r\n resourceModule = new ResourceModule(moduleId);\r\n this.cache[moduleId] = resourceModule;\r\n if (typeof moduleInstance === 'function') {\r\n moduleInstance = { 'default': moduleInstance };\r\n }\r\n if (mainResourceKey) {\r\n mainResource = new ResourceDescription(mainResourceKey, moduleInstance[mainResourceKey]);\r\n }\r\n for (key in moduleInstance) {\r\n exportedValue = moduleInstance[key];\r\n if (key === mainResourceKey || typeof exportedValue !== 'function') {\r\n continue;\r\n }\r\n resourceTypeMeta = metadata.get(metadata.resource, exportedValue);\r\n if (resourceTypeMeta) {\r\n if (resourceTypeMeta instanceof HtmlBehaviorResource) {\r\n ViewResources.convention(exportedValue, resourceTypeMeta);\r\n if (resourceTypeMeta.attributeName === null && resourceTypeMeta.elementName === null) {\r\n HtmlBehaviorResource.convention(key, resourceTypeMeta);\r\n }\r\n if (resourceTypeMeta.attributeName === null && resourceTypeMeta.elementName === null) {\r\n resourceTypeMeta.elementName = _hyphenate(key);\r\n }\r\n }\r\n if (!mainResource && resourceTypeMeta instanceof HtmlBehaviorResource && resourceTypeMeta.elementName !== null) {\r\n mainResource = new ResourceDescription(key, exportedValue, resourceTypeMeta);\r\n }\r\n else {\r\n resources.push(new ResourceDescription(key, exportedValue, resourceTypeMeta));\r\n }\r\n }\r\n else if (viewStrategy.decorates(exportedValue)) {\r\n vs = exportedValue;\r\n }\r\n else if (exportedValue instanceof TemplateRegistryEntry) {\r\n vs = new TemplateRegistryViewStrategy(moduleId, exportedValue);\r\n }\r\n else {\r\n if (conventional = ViewResources.convention(exportedValue)) {\r\n if (conventional.elementName !== null && !mainResource) {\r\n mainResource = new ResourceDescription(key, exportedValue, conventional);\r\n }\r\n else {\r\n resources.push(new ResourceDescription(key, exportedValue, conventional));\r\n }\r\n metadata.define(metadata.resource, conventional, exportedValue);\r\n }\r\n else if (conventional = HtmlBehaviorResource.convention(key)) {\r\n if (conventional.elementName !== null && !mainResource) {\r\n mainResource = new ResourceDescription(key, exportedValue, conventional);\r\n }\r\n else {\r\n resources.push(new ResourceDescription(key, exportedValue, conventional));\r\n }\r\n metadata.define(metadata.resource, conventional, exportedValue);\r\n }\r\n else if (conventional = ValueConverterResource.convention(key)\r\n || BindingBehaviorResource.convention(key)\r\n || ViewEngineHooksResource.convention(key)) {\r\n resources.push(new ResourceDescription(key, exportedValue, conventional));\r\n metadata.define(metadata.resource, conventional, exportedValue);\r\n }\r\n else if (!fallbackValue) {\r\n fallbackValue = exportedValue;\r\n fallbackKey = key;\r\n }\r\n }\r\n }\r\n if (!mainResource && fallbackValue) {\r\n mainResource = new ResourceDescription(fallbackKey, fallbackValue);\r\n }\r\n resourceModule.moduleInstance = moduleInstance;\r\n resourceModule.mainResource = mainResource;\r\n resourceModule.resources = resources;\r\n resourceModule.viewStrategy = vs;\r\n return resourceModule;\r\n };\r\n return ModuleAnalyzer;\r\n}());\n\nvar logger = LogManager.getLogger('templating');\r\nfunction ensureRegistryEntry(loader, urlOrRegistryEntry) {\r\n if (urlOrRegistryEntry instanceof TemplateRegistryEntry) {\r\n return Promise.resolve(urlOrRegistryEntry);\r\n }\r\n return loader.loadTemplate(urlOrRegistryEntry);\r\n}\r\nvar ProxyViewFactory = (function () {\r\n function ProxyViewFactory(promise) {\r\n var _this = this;\r\n promise.then(function (x) { return _this.viewFactory = x; });\r\n }\r\n ProxyViewFactory.prototype.create = function (container, bindingContext, createInstruction, element) {\r\n return this.viewFactory.create(container, bindingContext, createInstruction, element);\r\n };\r\n Object.defineProperty(ProxyViewFactory.prototype, \"isCaching\", {\r\n get: function () {\r\n return this.viewFactory.isCaching;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ProxyViewFactory.prototype.setCacheSize = function (size, doNotOverrideIfAlreadySet) {\r\n this.viewFactory.setCacheSize(size, doNotOverrideIfAlreadySet);\r\n };\r\n ProxyViewFactory.prototype.getCachedView = function () {\r\n return this.viewFactory.getCachedView();\r\n };\r\n ProxyViewFactory.prototype.returnViewToCache = function (view) {\r\n this.viewFactory.returnViewToCache(view);\r\n };\r\n return ProxyViewFactory;\r\n}());\r\nvar auSlotBehavior = null;\r\nvar ViewEngine = (function () {\r\n function ViewEngine(loader, container, viewCompiler, moduleAnalyzer, appResources) {\r\n this.loader = loader;\r\n this.container = container;\r\n this.viewCompiler = viewCompiler;\r\n this.moduleAnalyzer = moduleAnalyzer;\r\n this.appResources = appResources;\r\n this._pluginMap = {};\r\n if (auSlotBehavior === null) {\r\n auSlotBehavior = new HtmlBehaviorResource();\r\n auSlotBehavior.attributeName = 'au-slot';\r\n metadata.define(metadata.resource, auSlotBehavior, SlotCustomAttribute);\r\n }\r\n auSlotBehavior.initialize(container, SlotCustomAttribute);\r\n auSlotBehavior.register(appResources);\r\n }\r\n ViewEngine.inject = function () {\r\n return [Loader, Container, ViewCompiler, ModuleAnalyzer, ViewResources];\r\n };\r\n ViewEngine.prototype.addResourcePlugin = function (extension, implementation) {\r\n var name = extension.replace('.', '') + '-resource-plugin';\r\n this._pluginMap[extension] = name;\r\n this.loader.addPlugin(name, implementation);\r\n };\r\n ViewEngine.prototype.loadViewFactory = function (urlOrRegistryEntry, compileInstruction, loadContext, target) {\r\n var _this = this;\r\n loadContext = loadContext || new ResourceLoadContext();\r\n return ensureRegistryEntry(this.loader, urlOrRegistryEntry).then(function (registryEntry) {\r\n var url = registryEntry.address;\r\n if (registryEntry.onReady) {\r\n if (!loadContext.hasDependency(url)) {\r\n loadContext.addDependency(url);\r\n return registryEntry.onReady;\r\n }\r\n if (registryEntry.template === null) {\r\n return registryEntry.onReady;\r\n }\r\n return Promise.resolve(new ProxyViewFactory(registryEntry.onReady));\r\n }\r\n loadContext.addDependency(url);\r\n registryEntry.onReady = _this.loadTemplateResources(registryEntry, compileInstruction, loadContext, target).then(function (resources) {\r\n registryEntry.resources = resources;\r\n if (registryEntry.template === null) {\r\n return registryEntry.factory = null;\r\n }\r\n var viewFactory = _this.viewCompiler.compile(registryEntry.template, resources, compileInstruction);\r\n return registryEntry.factory = viewFactory;\r\n });\r\n return registryEntry.onReady;\r\n });\r\n };\r\n ViewEngine.prototype.loadTemplateResources = function (registryEntry, compileInstruction, loadContext, target) {\r\n var resources = new ViewResources(this.appResources, registryEntry.address);\r\n var dependencies = registryEntry.dependencies;\r\n var importIds;\r\n var names;\r\n compileInstruction = compileInstruction || ViewCompileInstruction.normal;\r\n if (dependencies.length === 0 && !compileInstruction.associatedModuleId) {\r\n return Promise.resolve(resources);\r\n }\r\n importIds = dependencies.map(function (x) { return x.src; });\r\n names = dependencies.map(function (x) { return x.name; });\r\n logger.debug(\"importing resources for \".concat(registryEntry.address), importIds);\r\n if (target) {\r\n var viewModelRequires = metadata.get(ViewEngine.viewModelRequireMetadataKey, target);\r\n if (viewModelRequires) {\r\n var templateImportCount = importIds.length;\r\n for (var i = 0, ii = viewModelRequires.length; i < ii; ++i) {\r\n var req = viewModelRequires[i];\r\n var importId = typeof req === 'function'\r\n ? Origin.get(req).moduleId\r\n : relativeToFile(req.src || req, registryEntry.address);\r\n if (importIds.indexOf(importId) === -1) {\r\n importIds.push(importId);\r\n names.push(req.as);\r\n }\r\n }\r\n logger.debug(\"importing ViewModel resources for \".concat(compileInstruction.associatedModuleId), importIds.slice(templateImportCount));\r\n }\r\n }\r\n return this.importViewResources(importIds, names, resources, compileInstruction, loadContext);\r\n };\r\n ViewEngine.prototype.importViewModelResource = function (moduleImport, moduleMember) {\r\n var _this = this;\r\n return this.loader.loadModule(moduleImport).then(function (viewModelModule) {\r\n var normalizedId = Origin.get(viewModelModule).moduleId;\r\n var resourceModule = _this.moduleAnalyzer.analyze(normalizedId, viewModelModule, moduleMember);\r\n if (!resourceModule.mainResource) {\r\n throw new Error(\"No view model found in module \\\"\".concat(moduleImport, \"\\\".\"));\r\n }\r\n resourceModule.initialize(_this.container);\r\n return resourceModule.mainResource;\r\n });\r\n };\r\n ViewEngine.prototype.importViewResources = function (moduleIds, names, resources, compileInstruction, loadContext) {\r\n var _this = this;\r\n loadContext = loadContext || new ResourceLoadContext();\r\n compileInstruction = compileInstruction || ViewCompileInstruction.normal;\r\n moduleIds = moduleIds.map(function (x) { return _this._applyLoaderPlugin(x); });\r\n return this.loader.loadAllModules(moduleIds).then(function (imports) {\r\n var i;\r\n var ii;\r\n var analysis;\r\n var normalizedId;\r\n var current;\r\n var associatedModule;\r\n var container = _this.container;\r\n var moduleAnalyzer = _this.moduleAnalyzer;\r\n var allAnalysis = new Array(imports.length);\r\n for (i = 0, ii = imports.length; i < ii; ++i) {\r\n current = imports[i];\r\n normalizedId = Origin.get(current).moduleId;\r\n analysis = moduleAnalyzer.analyze(normalizedId, current);\r\n analysis.initialize(container);\r\n analysis.register(resources, names[i]);\r\n allAnalysis[i] = analysis;\r\n }\r\n if (compileInstruction.associatedModuleId) {\r\n associatedModule = moduleAnalyzer.getAnalysis(compileInstruction.associatedModuleId);\r\n if (associatedModule) {\r\n associatedModule.register(resources);\r\n }\r\n }\r\n for (i = 0, ii = allAnalysis.length; i < ii; ++i) {\r\n allAnalysis[i] = allAnalysis[i].load(container, loadContext);\r\n }\r\n return Promise.all(allAnalysis).then(function () { return resources; });\r\n });\r\n };\r\n ViewEngine.prototype._applyLoaderPlugin = function (id) {\r\n var index = id.lastIndexOf('.');\r\n if (index !== -1) {\r\n var ext = id.substring(index);\r\n var pluginName = this._pluginMap[ext];\r\n if (pluginName === undefined) {\r\n return id;\r\n }\r\n return this.loader.applyPluginToUrl(id, pluginName);\r\n }\r\n return id;\r\n };\r\n ViewEngine.viewModelRequireMetadataKey = 'aurelia:view-model-require';\r\n return ViewEngine;\r\n}());\n\nvar Controller = (function () {\r\n function Controller(behavior, instruction, viewModel, container) {\r\n this.behavior = behavior;\r\n this.instruction = instruction;\r\n this.viewModel = viewModel;\r\n this.isAttached = false;\r\n this.view = null;\r\n this.isBound = false;\r\n this.scope = null;\r\n this.container = container;\r\n this.elementEvents = container.elementEvents || null;\r\n var observerLookup = behavior.observerLocator.getOrCreateObserversLookup(viewModel);\r\n var handlesBind = behavior.handlesBind;\r\n var attributes = instruction.attributes;\r\n var boundProperties = this.boundProperties = [];\r\n var properties = behavior.properties;\r\n var i;\r\n var ii;\r\n behavior._ensurePropertiesDefined(viewModel, observerLookup);\r\n for (i = 0, ii = properties.length; i < ii; ++i) {\r\n properties[i]._initialize(viewModel, observerLookup, attributes, handlesBind, boundProperties);\r\n }\r\n }\r\n Controller.prototype.created = function (owningView) {\r\n if (this.behavior.handlesCreated) {\r\n this.viewModel.created(owningView, this.view);\r\n }\r\n };\r\n Controller.prototype.automate = function (overrideContext, owningView) {\r\n this.view.bindingContext = this.viewModel;\r\n this.view.overrideContext = overrideContext || createOverrideContext(this.viewModel);\r\n this.view._isUserControlled = true;\r\n if (this.behavior.handlesCreated) {\r\n this.viewModel.created(owningView || null, this.view);\r\n }\r\n this.bind(this.view);\r\n };\r\n Controller.prototype.bind = function (scope) {\r\n var skipSelfSubscriber = this.behavior.handlesBind;\r\n var boundProperties = this.boundProperties;\r\n var i;\r\n var ii;\r\n var x;\r\n var observer;\r\n var selfSubscriber;\r\n if (this.isBound) {\r\n if (this.scope === scope) {\r\n return;\r\n }\r\n this.unbind();\r\n }\r\n this.isBound = true;\r\n this.scope = scope;\r\n for (i = 0, ii = boundProperties.length; i < ii; ++i) {\r\n x = boundProperties[i];\r\n observer = x.observer;\r\n selfSubscriber = observer.selfSubscriber;\r\n observer.publishing = false;\r\n if (skipSelfSubscriber) {\r\n observer.selfSubscriber = null;\r\n }\r\n x.binding.bind(scope);\r\n observer.call();\r\n observer.publishing = true;\r\n observer.selfSubscriber = selfSubscriber;\r\n }\r\n var overrideContext;\r\n if (this.view !== null) {\r\n if (skipSelfSubscriber) {\r\n this.view.viewModelScope = scope;\r\n }\r\n if (this.viewModel === scope.overrideContext.bindingContext) {\r\n overrideContext = scope.overrideContext;\r\n }\r\n else if (this.instruction.inheritBindingContext) {\r\n overrideContext = createOverrideContext(this.viewModel, scope.overrideContext);\r\n }\r\n else {\r\n overrideContext = createOverrideContext(this.viewModel);\r\n overrideContext.__parentOverrideContext = scope.overrideContext;\r\n }\r\n this.view.bind(this.viewModel, overrideContext);\r\n }\r\n else if (skipSelfSubscriber) {\r\n overrideContext = scope.overrideContext;\r\n if (scope.overrideContext.__parentOverrideContext !== undefined\r\n && this.viewModel.viewFactory && this.viewModel.viewFactory.factoryCreateInstruction.partReplacements) {\r\n overrideContext = Object.assign({}, scope.overrideContext);\r\n overrideContext.parentOverrideContext = scope.overrideContext.__parentOverrideContext;\r\n }\r\n this.viewModel.bind(scope.bindingContext, overrideContext);\r\n }\r\n };\r\n Controller.prototype.unbind = function () {\r\n if (this.isBound) {\r\n var boundProperties = this.boundProperties;\r\n var i = void 0;\r\n var ii = void 0;\r\n this.isBound = false;\r\n this.scope = null;\r\n if (this.view !== null) {\r\n this.view.unbind();\r\n }\r\n if (this.behavior.handlesUnbind) {\r\n this.viewModel.unbind();\r\n }\r\n if (this.elementEvents !== null) {\r\n this.elementEvents.disposeAll();\r\n }\r\n for (i = 0, ii = boundProperties.length; i < ii; ++i) {\r\n boundProperties[i].binding.unbind();\r\n }\r\n }\r\n };\r\n Controller.prototype.attached = function () {\r\n if (this.isAttached) {\r\n return;\r\n }\r\n this.isAttached = true;\r\n if (this.behavior.handlesAttached) {\r\n this.viewModel.attached();\r\n }\r\n if (this.view !== null) {\r\n this.view.attached();\r\n }\r\n };\r\n Controller.prototype.detached = function () {\r\n if (this.isAttached) {\r\n this.isAttached = false;\r\n if (this.view !== null) {\r\n this.view.detached();\r\n }\r\n if (this.behavior.handlesDetached) {\r\n this.viewModel.detached();\r\n }\r\n }\r\n };\r\n return Controller;\r\n}());\n\nvar lastProviderId = 0;\r\nfunction nextProviderId() {\r\n return ++lastProviderId;\r\n}\r\nfunction doProcessContent() { return true; }\r\nfunction doProcessAttributes() { }\r\nvar HtmlBehaviorResource = (function () {\r\n function HtmlBehaviorResource() {\r\n this.elementName = null;\r\n this.attributeName = null;\r\n this.attributeDefaultBindingMode = undefined;\r\n this.liftsContent = false;\r\n this.targetShadowDOM = false;\r\n this.shadowDOMOptions = null;\r\n this.processAttributes = doProcessAttributes;\r\n this.processContent = doProcessContent;\r\n this.usesShadowDOM = false;\r\n this.childBindings = null;\r\n this.hasDynamicOptions = false;\r\n this.containerless = false;\r\n this.properties = [];\r\n this.attributes = {};\r\n this.isInitialized = false;\r\n this.primaryProperty = null;\r\n }\r\n HtmlBehaviorResource.convention = function (name, existing) {\r\n var behavior;\r\n if (name.endsWith('CustomAttribute')) {\r\n behavior = existing || new HtmlBehaviorResource();\r\n behavior.attributeName = _hyphenate(name.substring(0, name.length - 15));\r\n }\r\n if (name.endsWith('CustomElement')) {\r\n behavior = existing || new HtmlBehaviorResource();\r\n behavior.elementName = _hyphenate(name.substring(0, name.length - 13));\r\n }\r\n return behavior;\r\n };\r\n HtmlBehaviorResource.prototype.addChildBinding = function (behavior) {\r\n if (this.childBindings === null) {\r\n this.childBindings = [];\r\n }\r\n this.childBindings.push(behavior);\r\n };\r\n HtmlBehaviorResource.prototype.initialize = function (container, target) {\r\n var proto = target.prototype;\r\n var properties = this.properties;\r\n var attributeName = this.attributeName;\r\n var attributeDefaultBindingMode = this.attributeDefaultBindingMode;\r\n var i;\r\n var ii;\r\n var current;\r\n if (this.isInitialized) {\r\n return;\r\n }\r\n this.isInitialized = true;\r\n target.__providerId__ = nextProviderId();\r\n this.observerLocator = container.get(ObserverLocator);\r\n this.taskQueue = container.get(TaskQueue);\r\n this.target = target;\r\n this.usesShadowDOM = this.targetShadowDOM && FEATURE.shadowDOM;\r\n this.handlesCreated = ('created' in proto);\r\n this.handlesBind = ('bind' in proto);\r\n this.handlesUnbind = ('unbind' in proto);\r\n this.handlesAttached = ('attached' in proto);\r\n this.handlesDetached = ('detached' in proto);\r\n this.htmlName = this.elementName || this.attributeName;\r\n if (attributeName !== null) {\r\n if (properties.length === 0) {\r\n new BindableProperty({\r\n name: 'value',\r\n changeHandler: 'valueChanged' in proto ? 'valueChanged' : null,\r\n attribute: attributeName,\r\n defaultBindingMode: attributeDefaultBindingMode\r\n }).registerWith(target, this);\r\n }\r\n current = properties[0];\r\n if (properties.length === 1 && current.name === 'value') {\r\n current.isDynamic = current.hasOptions = this.hasDynamicOptions;\r\n current.defineOn(target, this);\r\n }\r\n else {\r\n for (i = 0, ii = properties.length; i < ii; ++i) {\r\n properties[i].defineOn(target, this);\r\n if (properties[i].primaryProperty) {\r\n if (this.primaryProperty) {\r\n throw new Error('Only one bindable property on a custom element can be defined as the default');\r\n }\r\n this.primaryProperty = properties[i];\r\n }\r\n }\r\n current = new BindableProperty({\r\n name: 'value',\r\n changeHandler: 'valueChanged' in proto ? 'valueChanged' : null,\r\n attribute: attributeName,\r\n defaultBindingMode: attributeDefaultBindingMode\r\n });\r\n current.hasOptions = true;\r\n current.registerWith(target, this);\r\n }\r\n }\r\n else {\r\n for (i = 0, ii = properties.length; i < ii; ++i) {\r\n properties[i].defineOn(target, this);\r\n }\r\n this._copyInheritedProperties(container, target);\r\n }\r\n };\r\n HtmlBehaviorResource.prototype.register = function (registry, name) {\r\n var _this = this;\r\n if (this.attributeName !== null) {\r\n registry.registerAttribute(name || this.attributeName, this, this.attributeName);\r\n if (Array.isArray(this.aliases)) {\r\n this.aliases\r\n .forEach(function (alias) {\r\n registry.registerAttribute(alias, _this, _this.attributeName);\r\n });\r\n }\r\n }\r\n if (this.elementName !== null) {\r\n registry.registerElement(name || this.elementName, this);\r\n }\r\n };\r\n HtmlBehaviorResource.prototype.aliases = function (aliases) {\r\n throw new Error('Method not implemented.');\r\n };\r\n HtmlBehaviorResource.prototype.load = function (container, target, loadContext, viewStrategy, transientView) {\r\n var _this = this;\r\n var options;\r\n if (this.elementName !== null) {\r\n viewStrategy = container.get(ViewLocator).getViewStrategy(viewStrategy || this.viewStrategy || target);\r\n options = new ViewCompileInstruction(this.targetShadowDOM, true);\r\n if (!viewStrategy.moduleId) {\r\n viewStrategy.moduleId = Origin.get(target).moduleId;\r\n }\r\n return viewStrategy\r\n .loadViewFactory(container.get(ViewEngine), options, loadContext, target)\r\n .then(function (viewFactory) {\r\n if (!transientView || !_this.viewFactory) {\r\n _this.viewFactory = viewFactory;\r\n }\r\n return viewFactory;\r\n });\r\n }\r\n return Promise.resolve(this);\r\n };\r\n HtmlBehaviorResource.prototype.compile = function (compiler, resources, node, instruction, parentNode) {\r\n if (this.liftsContent) {\r\n if (!instruction.viewFactory) {\r\n var template = DOM.createElement('template');\r\n var fragment = DOM.createDocumentFragment();\r\n var cacheSize = node.getAttribute('view-cache');\r\n var part = node.getAttribute('part');\r\n node.removeAttribute(instruction.originalAttrName);\r\n DOM.replaceNode(template, node, parentNode);\r\n fragment.appendChild(node);\r\n instruction.viewFactory = compiler.compile(fragment, resources);\r\n if (part) {\r\n instruction.viewFactory.part = part;\r\n node.removeAttribute('part');\r\n }\r\n if (cacheSize) {\r\n instruction.viewFactory.setCacheSize(cacheSize);\r\n node.removeAttribute('view-cache');\r\n }\r\n node = template;\r\n }\r\n }\r\n else if (this.elementName !== null) {\r\n var partReplacements = {};\r\n if (this.processContent(compiler, resources, node, instruction) && node.hasChildNodes()) {\r\n var currentChild = node.firstChild;\r\n var contentElement = this.usesShadowDOM ? null : DOM.createElement('au-content');\r\n var nextSibling = void 0;\r\n var toReplace = void 0;\r\n while (currentChild) {\r\n nextSibling = currentChild.nextSibling;\r\n if (currentChild.tagName === 'TEMPLATE' && (toReplace = currentChild.getAttribute('replace-part'))) {\r\n partReplacements[toReplace] = compiler.compile(currentChild, resources);\r\n DOM.removeNode(currentChild, parentNode);\r\n instruction.partReplacements = partReplacements;\r\n }\r\n else if (contentElement !== null) {\r\n if (currentChild.nodeType === 3 && _isAllWhitespace(currentChild)) {\r\n DOM.removeNode(currentChild, parentNode);\r\n }\r\n else {\r\n contentElement.appendChild(currentChild);\r\n }\r\n }\r\n currentChild = nextSibling;\r\n }\r\n if (contentElement !== null && contentElement.hasChildNodes()) {\r\n node.appendChild(contentElement);\r\n }\r\n instruction.skipContentProcessing = false;\r\n }\r\n else {\r\n instruction.skipContentProcessing = true;\r\n }\r\n }\r\n else if (!this.processContent(compiler, resources, node, instruction)) {\r\n instruction.skipContentProcessing = true;\r\n }\r\n return node;\r\n };\r\n HtmlBehaviorResource.prototype.create = function (container, instruction, element, bindings) {\r\n var viewHost;\r\n var au = null;\r\n instruction = instruction || BehaviorInstruction.normal;\r\n element = element || null;\r\n bindings = bindings || null;\r\n if (this.elementName !== null && element) {\r\n if (this.usesShadowDOM) {\r\n viewHost = element.attachShadow(this.shadowDOMOptions);\r\n container.registerInstance(DOM.boundary, viewHost);\r\n }\r\n else {\r\n viewHost = element;\r\n if (this.targetShadowDOM) {\r\n container.registerInstance(DOM.boundary, viewHost);\r\n }\r\n }\r\n }\r\n if (element !== null) {\r\n element.au = au = element.au || {};\r\n }\r\n var viewModel = instruction.viewModel || container.get(this.target);\r\n var controller = new Controller(this, instruction, viewModel, container);\r\n var childBindings = this.childBindings;\r\n var viewFactory;\r\n if (this.liftsContent) {\r\n au.controller = controller;\r\n }\r\n else if (this.elementName !== null) {\r\n viewFactory = instruction.viewFactory || this.viewFactory;\r\n container.viewModel = viewModel;\r\n if (viewFactory) {\r\n controller.view = viewFactory.create(container, instruction, element);\r\n }\r\n if (element !== null) {\r\n au.controller = controller;\r\n if (controller.view) {\r\n if (!this.usesShadowDOM && (element.childNodes.length === 1 || element.contentElement)) {\r\n var contentElement = element.childNodes[0] || element.contentElement;\r\n controller.view.contentView = { fragment: contentElement };\r\n contentElement.parentNode && DOM.removeNode(contentElement);\r\n }\r\n if (instruction.anchorIsContainer) {\r\n if (childBindings !== null) {\r\n for (var i = 0, ii = childBindings.length; i < ii; ++i) {\r\n controller.view.addBinding(childBindings[i].create(element, viewModel, controller));\r\n }\r\n }\r\n controller.view.appendNodesTo(viewHost);\r\n }\r\n else {\r\n controller.view.insertNodesBefore(viewHost);\r\n }\r\n }\r\n else if (childBindings !== null) {\r\n for (var i = 0, ii = childBindings.length; i < ii; ++i) {\r\n bindings.push(childBindings[i].create(element, viewModel, controller));\r\n }\r\n }\r\n }\r\n else if (controller.view) {\r\n controller.view.controller = controller;\r\n if (childBindings !== null) {\r\n for (var i = 0, ii = childBindings.length; i < ii; ++i) {\r\n controller.view.addBinding(childBindings[i].create(instruction.host, viewModel, controller));\r\n }\r\n }\r\n }\r\n else if (childBindings !== null) {\r\n for (var i = 0, ii = childBindings.length; i < ii; ++i) {\r\n bindings.push(childBindings[i].create(instruction.host, viewModel, controller));\r\n }\r\n }\r\n }\r\n else if (childBindings !== null) {\r\n for (var i = 0, ii = childBindings.length; i < ii; ++i) {\r\n bindings.push(childBindings[i].create(element, viewModel, controller));\r\n }\r\n }\r\n if (au !== null) {\r\n au[this.htmlName] = controller;\r\n }\r\n if (instruction.initiatedByBehavior && viewFactory) {\r\n controller.view.created();\r\n }\r\n return controller;\r\n };\r\n HtmlBehaviorResource.prototype._ensurePropertiesDefined = function (instance, lookup) {\r\n var properties;\r\n var i;\r\n var ii;\r\n var observer;\r\n if ('__propertiesDefined__' in lookup) {\r\n return;\r\n }\r\n lookup.__propertiesDefined__ = true;\r\n properties = this.properties;\r\n for (i = 0, ii = properties.length; i < ii; ++i) {\r\n observer = properties[i].createObserver(instance);\r\n if (observer !== undefined) {\r\n lookup[observer.propertyName] = observer;\r\n }\r\n }\r\n };\r\n HtmlBehaviorResource.prototype._copyInheritedProperties = function (container, target) {\r\n var behavior;\r\n var derived = target;\r\n while (true) {\r\n var proto = Object.getPrototypeOf(target.prototype);\r\n target = proto && proto.constructor;\r\n if (!target) {\r\n return;\r\n }\r\n behavior = metadata.getOwn(metadata.resource, target);\r\n if (behavior) {\r\n break;\r\n }\r\n }\r\n behavior.initialize(container, target);\r\n var _loop_1 = function (i, ii) {\r\n var prop = behavior.properties[i];\r\n if (this_1.properties.some(function (p) { return p.name === prop.name; })) {\r\n return \"continue\";\r\n }\r\n new BindableProperty(prop).registerWith(derived, this_1);\r\n };\r\n var this_1 = this;\r\n for (var i = 0, ii = behavior.properties.length; i < ii; ++i) {\r\n _loop_1(i);\r\n }\r\n };\r\n return HtmlBehaviorResource;\r\n}());\n\nfunction register(lookup, name, resource, type) {\r\n if (!name) {\r\n return;\r\n }\r\n var existing = lookup[name];\r\n if (existing) {\r\n if (existing !== resource) {\r\n throw new Error(\"Attempted to register \".concat(type, \" when one with the same name already exists. Name: \").concat(name, \".\"));\r\n }\r\n return;\r\n }\r\n lookup[name] = resource;\r\n}\r\nfunction validateBehaviorName(name, type) {\r\n if (/[A-Z]/.test(name)) {\r\n var newName = _hyphenate(name);\r\n LogManager\r\n .getLogger('templating')\r\n .warn(\"'\".concat(name, \"' is not a valid \").concat(type, \" name and has been converted to '\").concat(newName, \"'. Upper-case letters are not allowed because the DOM is not case-sensitive.\"));\r\n return newName;\r\n }\r\n return name;\r\n}\r\nvar conventionMark = '__au_resource__';\r\nvar ViewResources = (function () {\r\n function ViewResources(parent, viewUrl) {\r\n this.bindingLanguage = null;\r\n this.parent = parent || null;\r\n this.hasParent = this.parent !== null;\r\n this.viewUrl = viewUrl || '';\r\n this.lookupFunctions = {\r\n valueConverters: this.getValueConverter.bind(this),\r\n bindingBehaviors: this.getBindingBehavior.bind(this)\r\n };\r\n this.attributes = Object.create(null);\r\n this.elements = Object.create(null);\r\n this.valueConverters = Object.create(null);\r\n this.bindingBehaviors = Object.create(null);\r\n this.attributeMap = Object.create(null);\r\n this.values = Object.create(null);\r\n this.beforeCompile = this.afterCompile = this.beforeCreate = this.afterCreate = this.beforeBind = this.beforeUnbind = false;\r\n }\r\n ViewResources.convention = function (target, existing) {\r\n var resource;\r\n if (existing && conventionMark in existing) {\r\n return existing;\r\n }\r\n if ('$resource' in target) {\r\n var config = target.$resource;\r\n if (typeof config === 'string') {\r\n resource = existing || new HtmlBehaviorResource();\r\n resource[conventionMark] = true;\r\n if (!resource.elementName) {\r\n resource.elementName = validateBehaviorName(config, 'custom element');\r\n }\r\n }\r\n else {\r\n if (typeof config === 'function') {\r\n config = config.call(target);\r\n }\r\n if (typeof config === 'string') {\r\n config = { name: config };\r\n }\r\n config = Object.assign({}, config);\r\n var resourceType = config.type || 'element';\r\n var name_1 = config.name;\r\n switch (resourceType) {\r\n case 'element':\r\n case 'attribute':\r\n resource = existing || new HtmlBehaviorResource();\r\n resource[conventionMark] = true;\r\n if (resourceType === 'element') {\r\n if (!resource.elementName) {\r\n resource.elementName = name_1\r\n ? validateBehaviorName(name_1, 'custom element')\r\n : _hyphenate(target.name);\r\n }\r\n }\r\n else {\r\n if (!resource.attributeName) {\r\n resource.attributeName = name_1\r\n ? validateBehaviorName(name_1, 'custom attribute')\r\n : _hyphenate(target.name);\r\n }\r\n }\r\n if ('templateController' in config) {\r\n config.liftsContent = config.templateController;\r\n delete config.templateController;\r\n }\r\n if ('defaultBindingMode' in config && resource.attributeDefaultBindingMode !== undefined) {\r\n config.attributeDefaultBindingMode = config.defaultBindingMode;\r\n delete config.defaultBindingMode;\r\n }\r\n delete config.name;\r\n Object.assign(resource, config);\r\n break;\r\n case 'valueConverter':\r\n resource = new ValueConverterResource(camelCase(name_1 || target.name));\r\n break;\r\n case 'bindingBehavior':\r\n resource = new BindingBehaviorResource(camelCase(name_1 || target.name));\r\n break;\r\n case 'viewEngineHooks':\r\n resource = new ViewEngineHooksResource();\r\n break;\r\n }\r\n }\r\n if (resource instanceof HtmlBehaviorResource) {\r\n var bindables = typeof config === 'string' ? undefined : config.bindables;\r\n var currentProps = resource.properties;\r\n if (Array.isArray(bindables)) {\r\n for (var i = 0, ii = bindables.length; ii > i; ++i) {\r\n var prop = bindables[i];\r\n if (!prop || (typeof prop !== 'string' && !prop.name)) {\r\n throw new Error(\"Invalid bindable property at \\\"\".concat(i, \"\\\" for class \\\"\").concat(target.name, \"\\\". Expected either a string or an object with \\\"name\\\" property.\"));\r\n }\r\n var newProp = new BindableProperty(prop);\r\n var existed = false;\r\n for (var j = 0, jj = currentProps.length; jj > j; ++j) {\r\n if (currentProps[j].name === newProp.name) {\r\n existed = true;\r\n break;\r\n }\r\n }\r\n if (existed) {\r\n continue;\r\n }\r\n newProp.registerWith(target, resource);\r\n }\r\n }\r\n }\r\n }\r\n return resource;\r\n };\r\n ViewResources.prototype._tryAddHook = function (obj, name) {\r\n if (typeof obj[name] === 'function') {\r\n var func = obj[name].bind(obj);\r\n var counter = 1;\r\n var callbackName = void 0;\r\n while (this[callbackName = name + counter.toString()] !== undefined) {\r\n counter++;\r\n }\r\n this[name] = true;\r\n this[callbackName] = func;\r\n }\r\n };\r\n ViewResources.prototype._invokeHook = function (name, one, two, three, four) {\r\n if (this.hasParent) {\r\n this.parent._invokeHook(name, one, two, three, four);\r\n }\r\n if (this[name]) {\r\n this[name + '1'](one, two, three, four);\r\n var callbackName = name + '2';\r\n if (this[callbackName]) {\r\n this[callbackName](one, two, three, four);\r\n callbackName = name + '3';\r\n if (this[callbackName]) {\r\n this[callbackName](one, two, three, four);\r\n var counter = 4;\r\n while (this[callbackName = name + counter.toString()] !== undefined) {\r\n this[callbackName](one, two, three, four);\r\n counter++;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n ViewResources.prototype.registerViewEngineHooks = function (hooks) {\r\n this._tryAddHook(hooks, 'beforeCompile');\r\n this._tryAddHook(hooks, 'afterCompile');\r\n this._tryAddHook(hooks, 'beforeCreate');\r\n this._tryAddHook(hooks, 'afterCreate');\r\n this._tryAddHook(hooks, 'beforeBind');\r\n this._tryAddHook(hooks, 'beforeUnbind');\r\n };\r\n ViewResources.prototype.getBindingLanguage = function (bindingLanguageFallback) {\r\n return this.bindingLanguage || (this.bindingLanguage = bindingLanguageFallback);\r\n };\r\n ViewResources.prototype.patchInParent = function (newParent) {\r\n var originalParent = this.parent;\r\n this.parent = newParent || null;\r\n this.hasParent = this.parent !== null;\r\n if (newParent.parent === null) {\r\n newParent.parent = originalParent;\r\n newParent.hasParent = originalParent !== null;\r\n }\r\n };\r\n ViewResources.prototype.relativeToView = function (path) {\r\n return relativeToFile(path, this.viewUrl);\r\n };\r\n ViewResources.prototype.registerElement = function (tagName, behavior) {\r\n register(this.elements, tagName, behavior, 'an Element');\r\n };\r\n ViewResources.prototype.getElement = function (tagName) {\r\n return this.elements[tagName] || (this.hasParent ? this.parent.getElement(tagName) : null);\r\n };\r\n ViewResources.prototype.mapAttribute = function (attribute) {\r\n return this.attributeMap[attribute] || (this.hasParent ? this.parent.mapAttribute(attribute) : null);\r\n };\r\n ViewResources.prototype.registerAttribute = function (attribute, behavior, knownAttribute) {\r\n this.attributeMap[attribute] = knownAttribute;\r\n register(this.attributes, attribute, behavior, 'an Attribute');\r\n };\r\n ViewResources.prototype.getAttribute = function (attribute) {\r\n return this.attributes[attribute] || (this.hasParent ? this.parent.getAttribute(attribute) : null);\r\n };\r\n ViewResources.prototype.registerValueConverter = function (name, valueConverter) {\r\n register(this.valueConverters, name, valueConverter, 'a ValueConverter');\r\n };\r\n ViewResources.prototype.getValueConverter = function (name) {\r\n return this.valueConverters[name] || (this.hasParent ? this.parent.getValueConverter(name) : null);\r\n };\r\n ViewResources.prototype.registerBindingBehavior = function (name, bindingBehavior) {\r\n register(this.bindingBehaviors, name, bindingBehavior, 'a BindingBehavior');\r\n };\r\n ViewResources.prototype.getBindingBehavior = function (name) {\r\n return this.bindingBehaviors[name] || (this.hasParent ? this.parent.getBindingBehavior(name) : null);\r\n };\r\n ViewResources.prototype.registerValue = function (name, value) {\r\n register(this.values, name, value, 'a value');\r\n };\r\n ViewResources.prototype.getValue = function (name) {\r\n return this.values[name] || (this.hasParent ? this.parent.getValue(name) : null);\r\n };\r\n ViewResources.prototype.autoRegister = function (container, impl) {\r\n var resourceTypeMeta = metadata.getOwn(metadata.resource, impl);\r\n if (resourceTypeMeta) {\r\n if (resourceTypeMeta instanceof HtmlBehaviorResource) {\r\n ViewResources.convention(impl, resourceTypeMeta);\r\n if (resourceTypeMeta.attributeName === null && resourceTypeMeta.elementName === null) {\r\n HtmlBehaviorResource.convention(impl.name, resourceTypeMeta);\r\n }\r\n if (resourceTypeMeta.attributeName === null && resourceTypeMeta.elementName === null) {\r\n resourceTypeMeta.elementName = _hyphenate(impl.name);\r\n }\r\n }\r\n }\r\n else {\r\n resourceTypeMeta = ViewResources.convention(impl)\r\n || HtmlBehaviorResource.convention(impl.name)\r\n || ValueConverterResource.convention(impl.name)\r\n || BindingBehaviorResource.convention(impl.name)\r\n || ViewEngineHooksResource.convention(impl.name);\r\n if (!resourceTypeMeta) {\r\n resourceTypeMeta = new HtmlBehaviorResource();\r\n resourceTypeMeta.elementName = _hyphenate(impl.name);\r\n }\r\n metadata.define(metadata.resource, resourceTypeMeta, impl);\r\n }\r\n resourceTypeMeta.initialize(container, impl);\r\n resourceTypeMeta.register(this, undefined);\r\n return resourceTypeMeta;\r\n };\r\n return ViewResources;\r\n}());\n\nvar viewStrategy = protocol.create('aurelia:view-strategy', {\r\n validate: function (target) {\r\n if (!(typeof target.loadViewFactory === 'function')) {\r\n return 'View strategies must implement: loadViewFactory(viewEngine: ViewEngine, compileInstruction: ViewCompileInstruction, loadContext?: ResourceLoadContext): Promise';\r\n }\r\n return true;\r\n },\r\n compose: function (target) {\r\n if (!(typeof target.makeRelativeTo === 'function')) {\r\n target.makeRelativeTo = PLATFORM.noop;\r\n }\r\n }\r\n});\r\nvar RelativeViewStrategy = (function () {\r\n function RelativeViewStrategy(path) {\r\n this.path = path;\r\n this.absolutePath = null;\r\n }\r\n RelativeViewStrategy.prototype.loadViewFactory = function (viewEngine, compileInstruction, loadContext, target) {\r\n if (this.absolutePath === null && this.moduleId) {\r\n this.absolutePath = relativeToFile(this.path, this.moduleId);\r\n }\r\n compileInstruction.associatedModuleId = this.moduleId;\r\n return viewEngine.loadViewFactory(this.absolutePath || this.path, compileInstruction, loadContext, target);\r\n };\r\n RelativeViewStrategy.prototype.makeRelativeTo = function (file) {\r\n if (this.absolutePath === null) {\r\n this.absolutePath = relativeToFile(this.path, file);\r\n }\r\n };\r\n RelativeViewStrategy = __decorate([\r\n viewStrategy()\r\n ], RelativeViewStrategy);\r\n return RelativeViewStrategy;\r\n}());\r\nvar ConventionalViewStrategy = (function () {\r\n function ConventionalViewStrategy(viewLocator, origin) {\r\n this.moduleId = origin.moduleId;\r\n this.viewUrl = viewLocator.convertOriginToViewUrl(origin);\r\n }\r\n ConventionalViewStrategy.prototype.loadViewFactory = function (viewEngine, compileInstruction, loadContext, target) {\r\n compileInstruction.associatedModuleId = this.moduleId;\r\n return viewEngine.loadViewFactory(this.viewUrl, compileInstruction, loadContext, target);\r\n };\r\n ConventionalViewStrategy = __decorate([\r\n viewStrategy()\r\n ], ConventionalViewStrategy);\r\n return ConventionalViewStrategy;\r\n}());\r\nvar NoViewStrategy = (function () {\r\n function NoViewStrategy(dependencies, dependencyBaseUrl) {\r\n this.dependencies = dependencies || null;\r\n this.dependencyBaseUrl = dependencyBaseUrl || '';\r\n }\r\n NoViewStrategy.prototype.loadViewFactory = function (viewEngine, compileInstruction, loadContext, target) {\r\n var entry = this.entry;\r\n var dependencies = this.dependencies;\r\n if (entry && entry.factoryIsReady) {\r\n return Promise.resolve(null);\r\n }\r\n this.entry = entry = new TemplateRegistryEntry(this.moduleId || this.dependencyBaseUrl);\r\n entry.dependencies = [];\r\n entry.templateIsLoaded = true;\r\n if (dependencies !== null) {\r\n for (var i = 0, ii = dependencies.length; i < ii; ++i) {\r\n var current = dependencies[i];\r\n if (typeof current === 'string' || typeof current === 'function') {\r\n entry.addDependency(current);\r\n }\r\n else {\r\n entry.addDependency(current.from, current.as);\r\n }\r\n }\r\n }\r\n compileInstruction.associatedModuleId = this.moduleId;\r\n return viewEngine.loadViewFactory(entry, compileInstruction, loadContext, target);\r\n };\r\n NoViewStrategy = __decorate([\r\n viewStrategy()\r\n ], NoViewStrategy);\r\n return NoViewStrategy;\r\n}());\r\nvar TemplateRegistryViewStrategy = (function () {\r\n function TemplateRegistryViewStrategy(moduleId, entry) {\r\n this.moduleId = moduleId;\r\n this.entry = entry;\r\n }\r\n TemplateRegistryViewStrategy.prototype.loadViewFactory = function (viewEngine, compileInstruction, loadContext, target) {\r\n var entry = this.entry;\r\n if (entry.factoryIsReady) {\r\n return Promise.resolve(entry.factory);\r\n }\r\n compileInstruction.associatedModuleId = this.moduleId;\r\n return viewEngine.loadViewFactory(entry, compileInstruction, loadContext, target);\r\n };\r\n TemplateRegistryViewStrategy = __decorate([\r\n viewStrategy()\r\n ], TemplateRegistryViewStrategy);\r\n return TemplateRegistryViewStrategy;\r\n}());\r\nvar InlineViewStrategy = (function () {\r\n function InlineViewStrategy(markup, dependencies, dependencyBaseUrl) {\r\n this.markup = markup;\r\n this.dependencies = dependencies || null;\r\n this.dependencyBaseUrl = dependencyBaseUrl || '';\r\n }\r\n InlineViewStrategy.prototype.loadViewFactory = function (viewEngine, compileInstruction, loadContext, target) {\r\n var entry = this.entry;\r\n var dependencies = this.dependencies;\r\n if (entry && entry.factoryIsReady) {\r\n return Promise.resolve(entry.factory);\r\n }\r\n this.entry = entry = new TemplateRegistryEntry(this.moduleId || this.dependencyBaseUrl);\r\n entry.template = DOM.createTemplateFromMarkup(this.markup);\r\n if (dependencies !== null) {\r\n for (var i = 0, ii = dependencies.length; i < ii; ++i) {\r\n var current = dependencies[i];\r\n if (typeof current === 'string' || typeof current === 'function') {\r\n entry.addDependency(current);\r\n }\r\n else {\r\n entry.addDependency(current.from, current.as);\r\n }\r\n }\r\n }\r\n compileInstruction.associatedModuleId = this.moduleId;\r\n return viewEngine.loadViewFactory(entry, compileInstruction, loadContext, target);\r\n };\r\n InlineViewStrategy = __decorate([\r\n viewStrategy()\r\n ], InlineViewStrategy);\r\n return InlineViewStrategy;\r\n}());\r\nvar StaticViewStrategy = (function () {\r\n function StaticViewStrategy(config) {\r\n if (typeof config === 'string' || (config instanceof DOM.Element && config.tagName === 'TEMPLATE')) {\r\n config = {\r\n template: config\r\n };\r\n }\r\n this.template = config.template;\r\n this.dependencies = config.dependencies || [];\r\n this.factoryIsReady = false;\r\n this.onReady = null;\r\n this.moduleId = 'undefined';\r\n }\r\n StaticViewStrategy.prototype.loadViewFactory = function (viewEngine, compileInstruction, loadContext, target) {\r\n var _this = this;\r\n if (this.factoryIsReady) {\r\n return Promise.resolve(this.factory);\r\n }\r\n var $deps = this.dependencies;\r\n var deps = typeof $deps === 'function' ? $deps() : $deps;\r\n deps = deps ? deps : [];\r\n deps = Array.isArray(deps) ? deps : [deps];\r\n return Promise.all(deps).then(function (dependencies) {\r\n var container = viewEngine.container;\r\n var appResources = viewEngine.appResources;\r\n var viewCompiler = viewEngine.viewCompiler;\r\n var viewResources = new ViewResources(appResources);\r\n var resource;\r\n var elDeps = [];\r\n if (target) {\r\n viewResources.autoRegister(container, target);\r\n }\r\n for (var _i = 0, dependencies_1 = dependencies; _i < dependencies_1.length; _i++) {\r\n var dep = dependencies_1[_i];\r\n if (typeof dep === 'function') {\r\n resource = viewResources.autoRegister(container, dep);\r\n if (resource.elementName !== null) {\r\n elDeps.push(resource);\r\n }\r\n }\r\n else if (dep && typeof dep === 'object') {\r\n for (var key in dep) {\r\n var exported = dep[key];\r\n if (typeof exported === 'function') {\r\n resource = viewResources.autoRegister(container, exported);\r\n if (resource.elementName !== null) {\r\n elDeps.push(resource);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n throw new Error(\"dependency neither function nor object. Received: \\\"\".concat(typeof dep, \"\\\"\"));\r\n }\r\n }\r\n return Promise.all(elDeps.map(function (el) { return el.load(container, el.target); })).then(function () {\r\n var factory = _this.template !== null\r\n ? viewCompiler.compile(_this.template, viewResources, compileInstruction)\r\n : null;\r\n _this.factoryIsReady = true;\r\n _this.factory = factory;\r\n return factory;\r\n });\r\n });\r\n };\r\n StaticViewStrategy = __decorate([\r\n viewStrategy()\r\n ], StaticViewStrategy);\r\n return StaticViewStrategy;\r\n}());\n\nfunction remove(viewSlot, previous) {\r\n return Array.isArray(previous)\r\n ? viewSlot.removeMany(previous, true)\r\n : viewSlot.remove(previous, true);\r\n}\r\nvar SwapStrategies = {\r\n before: function (viewSlot, previous, callback) {\r\n return (previous === undefined)\r\n ? callback()\r\n : callback().then(function () { return remove(viewSlot, previous); });\r\n },\r\n with: function (viewSlot, previous, callback) {\r\n return (previous === undefined)\r\n ? callback()\r\n : Promise.all([remove(viewSlot, previous), callback()]);\r\n },\r\n after: function (viewSlot, previous, callback) {\r\n return Promise.resolve(viewSlot.removeAll(true)).then(callback);\r\n }\r\n};\n\nfunction tryActivateViewModel(context) {\r\n if (context.skipActivation || typeof context.viewModel.activate !== 'function') {\r\n return Promise.resolve();\r\n }\r\n return context.viewModel.activate(context.model) || Promise.resolve();\r\n}\r\nvar CompositionEngine = (function () {\r\n function CompositionEngine(viewEngine, viewLocator) {\r\n this.viewEngine = viewEngine;\r\n this.viewLocator = viewLocator;\r\n }\r\n CompositionEngine.prototype._swap = function (context, view) {\r\n var swapStrategy = SwapStrategies[context.swapOrder] || SwapStrategies.after;\r\n var previousViews = context.viewSlot.children.slice();\r\n return swapStrategy(context.viewSlot, previousViews, function () {\r\n return Promise.resolve(context.viewSlot.add(view)).then(function () {\r\n if (context.currentController) {\r\n context.currentController.unbind();\r\n }\r\n });\r\n }).then(function () {\r\n if (context.compositionTransactionNotifier) {\r\n context.compositionTransactionNotifier.done();\r\n }\r\n });\r\n };\r\n CompositionEngine.prototype._createControllerAndSwap = function (context) {\r\n var _this = this;\r\n return this.createController(context).then(function (controller) {\r\n if (context.compositionTransactionOwnershipToken) {\r\n return context.compositionTransactionOwnershipToken\r\n .waitForCompositionComplete()\r\n .then(function () {\r\n controller.automate(context.overrideContext, context.owningView);\r\n return _this._swap(context, controller.view);\r\n })\r\n .then(function () { return controller; });\r\n }\r\n controller.automate(context.overrideContext, context.owningView);\r\n return _this._swap(context, controller.view).then(function () { return controller; });\r\n });\r\n };\r\n CompositionEngine.prototype.createController = function (context) {\r\n var _this = this;\r\n var childContainer;\r\n var viewModel;\r\n var viewModelResource;\r\n var m;\r\n return this\r\n .ensureViewModel(context)\r\n .then(tryActivateViewModel)\r\n .then(function () {\r\n childContainer = context.childContainer;\r\n viewModel = context.viewModel;\r\n viewModelResource = context.viewModelResource;\r\n m = viewModelResource.metadata;\r\n var viewStrategy = _this.viewLocator.getViewStrategy(context.view || viewModel);\r\n if (context.viewResources) {\r\n viewStrategy.makeRelativeTo(context.viewResources.viewUrl);\r\n }\r\n return m.load(childContainer, viewModelResource.value, null, viewStrategy, true);\r\n }).then(function (viewFactory) { return m.create(childContainer, BehaviorInstruction.dynamic(context.host, viewModel, viewFactory)); });\r\n };\r\n CompositionEngine.prototype.ensureViewModel = function (context) {\r\n var childContainer = context.childContainer = (context.childContainer || context.container.createChild());\r\n if (typeof context.viewModel === 'string') {\r\n context.viewModel = context.viewResources\r\n ? context.viewResources.relativeToView(context.viewModel)\r\n : context.viewModel;\r\n return this.viewEngine.importViewModelResource(context.viewModel).then(function (viewModelResource) {\r\n childContainer.autoRegister(viewModelResource.value);\r\n if (context.host) {\r\n childContainer.registerInstance(DOM.Element, context.host);\r\n }\r\n context.viewModel = childContainer.viewModel = childContainer.get(viewModelResource.value);\r\n context.viewModelResource = viewModelResource;\r\n return context;\r\n });\r\n }\r\n var ctor = context.viewModel.constructor;\r\n var isClass = typeof context.viewModel === 'function';\r\n if (isClass) {\r\n ctor = context.viewModel;\r\n childContainer.autoRegister(ctor);\r\n }\r\n var m = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, ctor);\r\n m.elementName = m.elementName || 'dynamic-element';\r\n m.initialize(isClass ? childContainer : (context.container || childContainer), ctor);\r\n context.viewModelResource = { metadata: m, value: ctor };\r\n if (context.host) {\r\n childContainer.registerInstance(DOM.Element, context.host);\r\n }\r\n childContainer.viewModel = context.viewModel = isClass ? childContainer.get(ctor) : context.viewModel;\r\n return Promise.resolve(context);\r\n };\r\n CompositionEngine.prototype.compose = function (context) {\r\n var _this = this;\r\n context.childContainer = context.childContainer || context.container.createChild();\r\n context.view = this.viewLocator.getViewStrategy(context.view);\r\n var transaction = context.childContainer.get(CompositionTransaction);\r\n var compositionTransactionOwnershipToken = transaction.tryCapture();\r\n if (compositionTransactionOwnershipToken) {\r\n context.compositionTransactionOwnershipToken = compositionTransactionOwnershipToken;\r\n }\r\n else {\r\n context.compositionTransactionNotifier = transaction.enlist();\r\n }\r\n if (context.viewModel) {\r\n return this._createControllerAndSwap(context);\r\n }\r\n else if (context.view) {\r\n if (context.viewResources) {\r\n context.view.makeRelativeTo(context.viewResources.viewUrl);\r\n }\r\n return context.view.loadViewFactory(this.viewEngine, new ViewCompileInstruction()).then(function (viewFactory) {\r\n var result = viewFactory.create(context.childContainer);\r\n result.bind(context.bindingContext, context.overrideContext);\r\n if (context.compositionTransactionOwnershipToken) {\r\n return context.compositionTransactionOwnershipToken.waitForCompositionComplete()\r\n .then(function () { return _this._swap(context, result); })\r\n .then(function () { return result; });\r\n }\r\n return _this._swap(context, result).then(function () { return result; });\r\n });\r\n }\r\n else if (context.viewSlot) {\r\n context.viewSlot.removeAll();\r\n if (context.compositionTransactionNotifier) {\r\n context.compositionTransactionNotifier.done();\r\n }\r\n return Promise.resolve(null);\r\n }\r\n return Promise.resolve(null);\r\n };\r\n CompositionEngine = __decorate([\r\n inject(ViewEngine, ViewLocator)\r\n ], CompositionEngine);\r\n return CompositionEngine;\r\n}());\n\nvar animationEvent = {\r\n enterBegin: 'animation:enter:begin',\r\n enterActive: 'animation:enter:active',\r\n enterDone: 'animation:enter:done',\r\n enterTimeout: 'animation:enter:timeout',\r\n leaveBegin: 'animation:leave:begin',\r\n leaveActive: 'animation:leave:active',\r\n leaveDone: 'animation:leave:done',\r\n leaveTimeout: 'animation:leave:timeout',\r\n staggerNext: 'animation:stagger:next',\r\n removeClassBegin: 'animation:remove-class:begin',\r\n removeClassActive: 'animation:remove-class:active',\r\n removeClassDone: 'animation:remove-class:done',\r\n removeClassTimeout: 'animation:remove-class:timeout',\r\n addClassBegin: 'animation:add-class:begin',\r\n addClassActive: 'animation:add-class:active',\r\n addClassDone: 'animation:add-class:done',\r\n addClassTimeout: 'animation:add-class:timeout',\r\n animateBegin: 'animation:animate:begin',\r\n animateActive: 'animation:animate:active',\r\n animateDone: 'animation:animate:done',\r\n animateTimeout: 'animation:animate:timeout',\r\n sequenceBegin: 'animation:sequence:begin',\r\n sequenceDone: 'animation:sequence:done'\r\n};\n\nfunction createChildObserverDecorator(selectorOrConfig, all) {\r\n return function (target, key, descriptor) {\r\n var actualTarget = typeof key === 'string' ? target.constructor : target;\r\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, actualTarget);\r\n if (typeof selectorOrConfig === 'string') {\r\n selectorOrConfig = {\r\n selector: selectorOrConfig,\r\n name: key\r\n };\r\n }\r\n if (descriptor) {\r\n descriptor.writable = true;\r\n descriptor.configurable = true;\r\n }\r\n selectorOrConfig.all = all;\r\n r.addChildBinding(new ChildObserver(selectorOrConfig));\r\n };\r\n}\r\nfunction children(selectorOrConfig) {\r\n return createChildObserverDecorator(selectorOrConfig, true);\r\n}\r\nfunction child(selectorOrConfig) {\r\n return createChildObserverDecorator(selectorOrConfig, false);\r\n}\r\nvar ChildObserver = (function () {\r\n function ChildObserver(config) {\r\n this.name = config.name;\r\n this.changeHandler = config.changeHandler || this.name + 'Changed';\r\n this.selector = config.selector;\r\n this.all = config.all;\r\n }\r\n ChildObserver.prototype.create = function (viewHost, viewModel, controller) {\r\n return new ChildObserverBinder(this.selector, viewHost, this.name, viewModel, controller, this.changeHandler, this.all);\r\n };\r\n return ChildObserver;\r\n}());\r\nvar noMutations = [];\r\nfunction trackMutation(groupedMutations, binder, record) {\r\n var mutations = groupedMutations.get(binder);\r\n if (!mutations) {\r\n mutations = [];\r\n groupedMutations.set(binder, mutations);\r\n }\r\n mutations.push(record);\r\n}\r\nfunction onChildChange(mutations, observer) {\r\n var binders = observer.binders;\r\n var bindersLength = binders.length;\r\n var groupedMutations = new Map();\r\n for (var i = 0, ii = mutations.length; i < ii; ++i) {\r\n var record = mutations[i];\r\n var added = record.addedNodes;\r\n var removed = record.removedNodes;\r\n for (var j = 0, jj = removed.length; j < jj; ++j) {\r\n var node = removed[j];\r\n if (node.nodeType === 1) {\r\n for (var k = 0; k < bindersLength; ++k) {\r\n var binder = binders[k];\r\n if (binder.onRemove(node)) {\r\n trackMutation(groupedMutations, binder, record);\r\n }\r\n }\r\n }\r\n }\r\n for (var j = 0, jj = added.length; j < jj; ++j) {\r\n var node = added[j];\r\n if (node.nodeType === 1) {\r\n for (var k = 0; k < bindersLength; ++k) {\r\n var binder = binders[k];\r\n if (binder.onAdd(node)) {\r\n trackMutation(groupedMutations, binder, record);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n groupedMutations.forEach(function (mutationRecords, binder) {\r\n if (binder.isBound && binder.changeHandler !== null) {\r\n binder.viewModel[binder.changeHandler](mutationRecords);\r\n }\r\n });\r\n}\r\nvar ChildObserverBinder = (function () {\r\n function ChildObserverBinder(selector, viewHost, property, viewModel, controller, changeHandler, all) {\r\n this.selector = selector;\r\n this.viewHost = viewHost;\r\n this.property = property;\r\n this.viewModel = viewModel;\r\n this.controller = controller;\r\n this.changeHandler = changeHandler in viewModel ? changeHandler : null;\r\n this.usesShadowDOM = controller.behavior.usesShadowDOM;\r\n this.all = all;\r\n if (!this.usesShadowDOM && controller.view && controller.view.contentView) {\r\n this.contentView = controller.view.contentView;\r\n }\r\n else {\r\n this.contentView = null;\r\n }\r\n this.source = null;\r\n this.isBound = false;\r\n }\r\n ChildObserverBinder.prototype.matches = function (element) {\r\n if (element.matches(this.selector)) {\r\n if (this.contentView === null) {\r\n return true;\r\n }\r\n var contentView = this.contentView;\r\n var assignedSlot = element.auAssignedSlot;\r\n if (assignedSlot && assignedSlot.projectFromAnchors) {\r\n var anchors = assignedSlot.projectFromAnchors;\r\n for (var i = 0, ii = anchors.length; i < ii; ++i) {\r\n if (anchors[i].auOwnerView === contentView) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n return element.auOwnerView === contentView;\r\n }\r\n return false;\r\n };\r\n ChildObserverBinder.prototype.bind = function (source) {\r\n if (this.isBound) {\r\n if (this.source === source) {\r\n return;\r\n }\r\n this.source = source;\r\n }\r\n this.isBound = true;\r\n var viewHost = this.viewHost;\r\n var viewModel = this.viewModel;\r\n var observer = viewHost.__childObserver__;\r\n if (!observer) {\r\n observer = viewHost.__childObserver__ = DOM.createMutationObserver(onChildChange);\r\n var options = {\r\n childList: true,\r\n subtree: !this.usesShadowDOM\r\n };\r\n observer.observe(viewHost, options);\r\n observer.binders = [];\r\n }\r\n observer.binders.push(this);\r\n if (this.usesShadowDOM) {\r\n var current = viewHost.firstElementChild;\r\n if (this.all) {\r\n var items = viewModel[this.property];\r\n if (!items) {\r\n items = viewModel[this.property] = [];\r\n }\r\n else {\r\n items.splice(0);\r\n }\r\n while (current) {\r\n if (this.matches(current)) {\r\n items.push(current.au && current.au.controller ? current.au.controller.viewModel : current);\r\n }\r\n current = current.nextElementSibling;\r\n }\r\n if (this.changeHandler !== null) {\r\n this.viewModel[this.changeHandler](noMutations);\r\n }\r\n }\r\n else {\r\n while (current) {\r\n if (this.matches(current)) {\r\n var value = current.au && current.au.controller ? current.au.controller.viewModel : current;\r\n this.viewModel[this.property] = value;\r\n if (this.changeHandler !== null) {\r\n this.viewModel[this.changeHandler](value);\r\n }\r\n break;\r\n }\r\n current = current.nextElementSibling;\r\n }\r\n }\r\n }\r\n };\r\n ChildObserverBinder.prototype.onRemove = function (element) {\r\n if (this.matches(element)) {\r\n var value = element.au && element.au.controller ? element.au.controller.viewModel : element;\r\n if (this.all) {\r\n var items = (this.viewModel[this.property] || (this.viewModel[this.property] = []));\r\n var index = items.indexOf(value);\r\n if (index !== -1) {\r\n items.splice(index, 1);\r\n }\r\n return true;\r\n }\r\n var currentValue = this.viewModel[this.property];\r\n if (currentValue === value) {\r\n this.viewModel[this.property] = null;\r\n if (this.isBound && this.changeHandler !== null) {\r\n this.viewModel[this.changeHandler](value);\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n ChildObserverBinder.prototype.onAdd = function (element) {\r\n if (this.matches(element)) {\r\n var value = element.au && element.au.controller ? element.au.controller.viewModel : element;\r\n if (this.all) {\r\n var items = (this.viewModel[this.property] || (this.viewModel[this.property] = []));\r\n if (this.selector === '*') {\r\n items.push(value);\r\n return true;\r\n }\r\n var index = 0;\r\n var prev = element.previousElementSibling;\r\n while (prev) {\r\n if (this.matches(prev)) {\r\n index++;\r\n }\r\n prev = prev.previousElementSibling;\r\n }\r\n items.splice(index, 0, value);\r\n return true;\r\n }\r\n this.viewModel[this.property] = value;\r\n if (this.isBound && this.changeHandler !== null) {\r\n this.viewModel[this.changeHandler](value);\r\n }\r\n }\r\n return false;\r\n };\r\n ChildObserverBinder.prototype.unbind = function () {\r\n if (!this.isBound) {\r\n return;\r\n }\r\n this.isBound = false;\r\n this.source = null;\r\n var childObserver = this.viewHost.__childObserver__;\r\n if (childObserver) {\r\n var binders = childObserver.binders;\r\n if (binders && binders.length) {\r\n var idx = binders.indexOf(this);\r\n if (idx !== -1) {\r\n binders.splice(idx, 1);\r\n }\r\n if (binders.length === 0) {\r\n childObserver.disconnect();\r\n this.viewHost.__childObserver__ = null;\r\n }\r\n }\r\n if (this.usesShadowDOM) {\r\n this.viewModel[this.property] = null;\r\n }\r\n }\r\n };\r\n return ChildObserverBinder;\r\n}());\n\nvar ElementConfigResource = (function () {\r\n function ElementConfigResource() {\r\n }\r\n ElementConfigResource.prototype.initialize = function (container, target) { };\r\n ElementConfigResource.prototype.register = function (registry, name) { };\r\n ElementConfigResource.prototype.load = function (container, target) {\r\n var config = new target();\r\n var eventManager = container.get(EventManager);\r\n eventManager.registerElementConfig(config);\r\n };\r\n return ElementConfigResource;\r\n}());\n\nfunction resource(instanceOrConfig) {\r\n return function (target) {\r\n var isConfig = typeof instanceOrConfig === 'string' || Object.getPrototypeOf(instanceOrConfig) === Object.prototype;\r\n if (isConfig) {\r\n target.$resource = instanceOrConfig;\r\n }\r\n else {\r\n metadata.define(metadata.resource, instanceOrConfig, target);\r\n }\r\n };\r\n}\r\nfunction behavior(override) {\r\n return function (target) {\r\n if (override instanceof HtmlBehaviorResource) {\r\n metadata.define(metadata.resource, override, target);\r\n }\r\n else {\r\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, target);\r\n Object.assign(r, override);\r\n }\r\n };\r\n}\r\nfunction customElement(name) {\r\n return function (target) {\r\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, target);\r\n r.elementName = validateBehaviorName(name, 'custom element');\r\n };\r\n}\r\nfunction customAttribute(name, defaultBindingMode, aliases) {\r\n return function (target) {\r\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, target);\r\n r.attributeName = validateBehaviorName(name, 'custom attribute');\r\n r.attributeDefaultBindingMode = defaultBindingMode;\r\n r.aliases = aliases;\r\n };\r\n}\r\nfunction templateController(target) {\r\n var deco = function (t) {\r\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, t);\r\n r.liftsContent = true;\r\n };\r\n return target ? deco(target) : deco;\r\n}\r\nfunction bindable(nameOrConfigOrTarget, key, descriptor) {\r\n var deco = function (target, key2, descriptor2) {\r\n var actualTarget = key2 ? target.constructor : target;\r\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, actualTarget);\r\n var prop;\r\n if (key2) {\r\n nameOrConfigOrTarget = nameOrConfigOrTarget || {};\r\n nameOrConfigOrTarget.name = key2;\r\n }\r\n prop = new BindableProperty(nameOrConfigOrTarget);\r\n return prop.registerWith(actualTarget, r, descriptor2);\r\n };\r\n if (!nameOrConfigOrTarget) {\r\n return deco;\r\n }\r\n if (key) {\r\n var target = nameOrConfigOrTarget;\r\n nameOrConfigOrTarget = null;\r\n return deco(target, key, descriptor);\r\n }\r\n return deco;\r\n}\r\nfunction dynamicOptions(target) {\r\n var deco = function (t) {\r\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, t);\r\n r.hasDynamicOptions = true;\r\n };\r\n return target ? deco(target) : deco;\r\n}\r\nvar defaultShadowDOMOptions = { mode: 'open' };\r\nfunction useShadowDOM(targetOrOptions) {\r\n var options = typeof targetOrOptions === 'function' || !targetOrOptions\r\n ? defaultShadowDOMOptions\r\n : targetOrOptions;\r\n var deco = function (t) {\r\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, t);\r\n r.targetShadowDOM = true;\r\n r.shadowDOMOptions = options;\r\n };\r\n return typeof targetOrOptions === 'function' ? deco(targetOrOptions) : deco;\r\n}\r\nfunction processAttributes(processor) {\r\n return function (t) {\r\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, t);\r\n r.processAttributes = function (compiler, resources, node, attributes, elementInstruction) {\r\n try {\r\n processor(compiler, resources, node, attributes, elementInstruction);\r\n }\r\n catch (error) {\r\n LogManager.getLogger('templating').error(error);\r\n }\r\n };\r\n };\r\n}\r\nfunction doNotProcessContent() { return false; }\r\nfunction processContent(processor) {\r\n return function (t) {\r\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, t);\r\n r.processContent = processor ? function (compiler, resources, node, instruction) {\r\n try {\r\n return processor(compiler, resources, node, instruction);\r\n }\r\n catch (error) {\r\n LogManager.getLogger('templating').error(error);\r\n return false;\r\n }\r\n } : doNotProcessContent;\r\n };\r\n}\r\nfunction containerless(target) {\r\n var deco = function (t) {\r\n var r = metadata.getOrCreateOwn(metadata.resource, HtmlBehaviorResource, t);\r\n r.containerless = true;\r\n };\r\n return target ? deco(target) : deco;\r\n}\r\nfunction useViewStrategy(strategy) {\r\n return function (target) {\r\n metadata.define(ViewLocator.viewStrategyMetadataKey, strategy, target);\r\n };\r\n}\r\nfunction useView(path) {\r\n return useViewStrategy(new RelativeViewStrategy(path));\r\n}\r\nfunction inlineView(markup, dependencies, dependencyBaseUrl) {\r\n return useViewStrategy(new InlineViewStrategy(markup, dependencies, dependencyBaseUrl));\r\n}\r\nfunction noView(targetOrDependencies, dependencyBaseUrl) {\r\n var target;\r\n var dependencies;\r\n if (typeof targetOrDependencies === 'function') {\r\n target = targetOrDependencies;\r\n }\r\n else {\r\n dependencies = targetOrDependencies;\r\n target = undefined;\r\n }\r\n var deco = function (t) {\r\n metadata.define(ViewLocator.viewStrategyMetadataKey, new NoViewStrategy(dependencies, dependencyBaseUrl), t);\r\n };\r\n return target ? deco(target) : deco;\r\n}\r\nfunction view(templateOrConfig) {\r\n return function (target) {\r\n target.$view = templateOrConfig;\r\n };\r\n}\r\nfunction elementConfig(target) {\r\n var deco = function (t) {\r\n metadata.define(metadata.resource, new ElementConfigResource(), t);\r\n };\r\n return target ? deco(target) : deco;\r\n}\r\nfunction viewResources() {\r\n var resources = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n resources[_i] = arguments[_i];\r\n }\r\n return function (target) {\r\n metadata.define(ViewEngine.viewModelRequireMetadataKey, resources, target);\r\n };\r\n}\n\nvar TemplatingEngine = (function () {\r\n function TemplatingEngine(container, moduleAnalyzer, viewCompiler, compositionEngine) {\r\n this._container = container;\r\n this._moduleAnalyzer = moduleAnalyzer;\r\n this._viewCompiler = viewCompiler;\r\n this._compositionEngine = compositionEngine;\r\n container.registerInstance(Animator, Animator.instance = new Animator());\r\n }\r\n TemplatingEngine.prototype.configureAnimator = function (animator) {\r\n this._container.unregister(Animator);\r\n this._container.registerInstance(Animator, Animator.instance = animator);\r\n };\r\n TemplatingEngine.prototype.compose = function (context) {\r\n return this._compositionEngine.compose(context);\r\n };\r\n TemplatingEngine.prototype.enhance = function (instruction) {\r\n if (instruction instanceof DOM.Element) {\r\n instruction = { element: instruction };\r\n }\r\n var compilerInstructions = { letExpressions: [] };\r\n var resources = instruction.resources || this._container.get(ViewResources);\r\n this._viewCompiler._compileNode(instruction.element, resources, compilerInstructions, instruction.element.parentNode, 'root', true);\r\n var factory = new ViewFactory(instruction.element, compilerInstructions, resources);\r\n var container = instruction.container || this._container.createChild();\r\n var view = factory.create(container, BehaviorInstruction.enhance());\r\n view.bind(instruction.bindingContext || {}, instruction.overrideContext);\r\n view.firstChild = view.lastChild = view.fragment;\r\n view.fragment = DOM.createDocumentFragment();\r\n view.attached();\r\n return view;\r\n };\r\n TemplatingEngine.inject = [Container, ModuleAnalyzer, ViewCompiler, CompositionEngine];\r\n return TemplatingEngine;\r\n}());\n\nexport { Animator, BehaviorInstruction, BehaviorPropertyObserver, BindableProperty, BindingLanguage, BoundViewFactory, CompositionEngine, CompositionTransaction, CompositionTransactionNotifier, CompositionTransactionOwnershipToken, Controller, ConventionalViewStrategy, ElementConfigResource, ElementEvents, HtmlBehaviorResource, InlineViewStrategy, ModuleAnalyzer, NoViewStrategy, PassThroughSlot, RelativeViewStrategy, ResourceDescription, ResourceLoadContext, ResourceModule, ShadowDOM, ShadowSlot, SlotCustomAttribute, StaticViewStrategy, SwapStrategies, TargetInstruction, TemplateRegistryViewStrategy, TemplatingEngine, View, ViewCompileInstruction, ViewCompiler, ViewEngine, ViewEngineHooksResource, ViewFactory, ViewLocator, ViewResources, ViewSlot, _hyphenate, _isAllWhitespace, animationEvent, behavior, bindable, child, children, containerless, customAttribute, customElement, dynamicOptions, elementConfig, inlineView, noView, processAttributes, processContent, resource, templateController, useShadowDOM, useView, useViewStrategy, validateBehaviorName, view, viewEngineHooks, viewResources, viewStrategy };\n//# sourceMappingURL=aurelia-templating.js.map\n"],"names":["ElementEvents","element","this","subscriptions","prototype","_enqueueHandler","handler","eventName","push","_dequeueHandler","index","indexOf","splice","publish","detail","bubbles","cancelable","event","createCustomEvent","dispatchEvent","subscribe","captureOrOptions","undefined","defaultListenerOptions","EventHandlerImpl","subscribeOnce","dispose","length","subscription","pop","disposeAll","key","owner","once","capture","addEventListener","handleEvent","e","fn","removeEventListener","ResourceLoadContext","dependencies","addDependency","url","hasDependency","ViewCompileInstruction","targetShadowDOM","compileSurrogate","associatedModuleId","normal","BehaviorInstruction","enhance","instruction","unitTest","type","attributes","node","anchorIsContainer","hasAttribute","containerless","initiatedByBehavior","attribute","attrName","dynamic","host","viewModel","viewFactory","inheritBindingContext","biProto","partReplacements","originalAttrName","skipContentProcessing","contentFactory","TargetInstruction","shadowSlot","parentInjectorId","contentExpression","expression","letElement","expressions","lifting","liftingInstruction","noExpressions","behaviorInstructions","providers","target","injectorId","elementInstruction","surrogate","values","Object","freeze","tiProto","__decorate","decorators","desc","d","c","arguments","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","slotName","slotFallbackFactory","capitalMatcher","addHyphenAndLower","char","toLowerCase","_hyphenate","name","charAt","slice","replace","_isAllWhitespace","auInterpolationTarget","test","textContent","BehaviorPropertyObserver","taskQueue","obj","propertyName","selfSubscriber","initialValue","notqueued","publishing","currentValue","oldValue","getValue","setValue","newValue","is","flushing","call","queueMicroTask","callSubscribers","Error","context","callable","addSubscriber","unsubscribe","removeSubscriber","getObserver","instance","lookup","__observers__","ctor","getPrototypeOf","constructor","behavior","get","resource","isInitialized","initialize","Container","observerLocator","getOrCreateObserversLookup","_ensurePropertiesDefined","BindableProperty","nameOrConfig","assign","defaultBindingMode","oneWay","changeHandler","descriptor","registerWith","properties","_configureDescriptor","configurable","enumerable","defaultValue","initializer","writable","value","set","defineOn","handlerName","createObserver","changeHandlerName","hasOptions","propertyChanged","concat","_initialize","observerLookup","behaviorHandlesBind","boundProperties","observer","isDynamic","_createDynamicProperty","binding","createBinding","info","bind","ViewLocator","getViewStrategy","origin_1","RelativeViewStrategy","viewStrategy","assert","moduleId","makeRelativeTo","validate","view","$view","NoViewStrategy","StaticViewStrategy","define","viewStrategyMetadataKey","origin","strategy","createFallbackViewStrategy","ConventionalViewStrategy","convertOriginToViewUrl","endsWith","substring","mi","BindingLanguage","inspectAttribute","resources","elementName","attrValue","createAttributeInstruction","existingInstruction","createLetExpressions","inspectTextContent","noNodes","SlotCustomAttribute","auSlotAttribute","inject","Element","valueChanged","PassThroughSlot","anchor","destinationName","fallbackFactory","viewSlot","destinationSlot","projections","contentView","renderFallbackContent","nodes","projectionSource","create","ownerView","container","bindingContext","overrideContext","slots","ShadowDOM","distributeView","passThroughTo","addNode","removeNodes","detached","unbind","removeView","needsFallbackRendering","removeAll","projectFrom","created","attached","ShadowSlot","isContentProjectionSource","children","projectFromAnchors","destinationSlots","destination","$node","distributeNodes","auOwnerView","auProjectionSource","auAssignedSlot","_findAnchor","parentNode","insertBefore","undistributeView","hasSlots","found","find","x","auSlotProjectFrom","auProjectionChildren","ownChildren","ii","child","fragment","appendChild","idx","undistributeAll","viewIndex","lastView","current","projectTo","createComment","parent","insertNodesBefore","slot","fallbackSlots","getSlotName","defaultSlotKey","destinationOverride","childNodes","Array","currentNode","nodeType","CompositionTransactionNotifier","_compositionCount","done","_tryCompleteTransaction","CompositionTransactionOwnershipToken","_ownershipToken","thenable","_createThenable","waitForCompositionComplete","resolve","_resolveCallback","_this","Promise","CompositionTransaction","tryCapture","enlist","token","View","controllers","bindings","_","firstChild","lastChild","fromCache","isBound","isAttached","controller","viewModelScope","animatableElement","_isUserControlled","returnToCache","returnViewToCache","_systemUpdate","_invokeHook","addBinding","refNode","appendNodesTo","next","end","nextSibling","Animator","enter","leave","removeClass","className","classList","remove","addClass","add","animate","runSequence","animations","registerEffect","effectName","unregisterEffect","ViewSlot","animator","contentSelectors","animateView","direction","contains","getAnimatableElement","transformChildNodesIntoView","last","removeChild","insert","move","sourceIndex","targetIndex","skipAnimation","removeAt","removeMany","viewsToRemove","rmPromises","forEach","animation","then","removeAction","all","projectToSlots","_projectionAdd","_projectionInsert","_projectionMove","_projectionRemove","_projectionRemoveAt","_projectionRemoveMany","_projectionRemoveAll","$resolver","resolver","providerResolverInstance","ProviderResolver","id","__providerId__","invoke","elementContainerGet","BoundViewFactory","boundViewFactory","factory","part","elementEvents","compositionTransaction","ViewResources","viewResources","superGet","_element","getAttribute","setAttribute","applyInstructions","containers","shadowSlots","elementContainer","commentAnchor","slotDestination","replaceNode","tagName","contentElement","makeElementIntoAnchor","createChild","_resolvers","createElementContainer","styleStringToObject","style","firstIndexOfColon","split","trim","styleObjectToString","result","parentContainer","factoryCreateInstruction","isCaching","setCacheSize","size","doNotOverrideIfAlreadySet","getCachedView","ViewFactory","template","instructions","cacheSize","cache","Number","MAX_VALUE","parseInt","createInstruction","cachedView","instructable","cloneNode","instructables","querySelectorAll","root","surrogateInstruction","currentAttributeValue","styleObject","applySurrogateInstruction","nextInjectorId","lastAUTargetID","makeIntoInstructionTarget","auTargetID","toString","defaultLetHandler","ViewCompiler","bindingLanguage","compile","source","compileInstruction","content","createTemplateFromMarkup","adoptNode","shadowDOM","_compileNode","targetId","ins","_compileSurrogate","targetLightDOM","_compileElement","getBindingLanguage","wholeText","marker","createElement","currentChild","knownAttribute","property","attr","hasValues","mapAttribute","command","primaryProperty","alteredAttr","discrete","_configureProperties","liftsContent","attrToRemove","removeAttribute","elementProperty","compiler","auShadowSlot","innerHTML","createDocumentFragment","makeShadowSlot","namespaceURI","getElement","processAttributes","targetProperty","ViewEngineHooksResource","register","registry","registerViewEngineHooks","load","convention","ResourceModule","moduleInstance","mainResource","onLoaded","loadContext","vs","metadata","main","loads","ResourceDescription","exportedValue","resourceTypeMeta","HtmlBehaviorResource","attributeName","ModuleAnalyzer","getAnalysis","analyze","mainResourceKey","fallbackValue","fallbackKey","conventional","resourceModule","decorates","TemplateRegistryViewStrategy","logger","ProxyViewFactory","promise","auSlotBehavior","ViewEngine","loader","viewCompiler","moduleAnalyzer","appResources","_pluginMap","addResourcePlugin","extension","implementation","addPlugin","loadViewFactory","urlOrRegistryEntry","loadTemplate","ensureRegistryEntry","registryEntry","address","onReady","loadTemplateResources","importIds","names","map","src","debug","viewModelRequires","viewModelRequireMetadataKey","templateImportCount","req","importId","as","importViewResources","importViewModelResource","moduleImport","moduleMember","loadModule","viewModelModule","normalizedId","moduleIds","_applyLoaderPlugin","loadAllModules","imports","analysis","associatedModule","allAnalysis","lastIndexOf","ext","pluginName","applyPluginToUrl","Controller","scope","handlesBind","owningView","handlesCreated","automate","skipSelfSubscriber","__parentOverrideContext","parentOverrideContext","handlesUnbind","handlesAttached","handlesDetached","lastProviderId","doProcessContent","doProcessAttributes","attributeDefaultBindingMode","shadowDOMOptions","processContent","usesShadowDOM","childBindings","hasDynamicOptions","existing","addChildBinding","proto","htmlName","_copyInheritedProperties","registerAttribute","isArray","aliases","alias","registerElement","transientView","options","hasChildNodes","toReplace","removeNode","viewHost","au","attachShadow","registerInstance","boundary","__propertiesDefined__","derived","getOwn","_loop_1","prop","this_1","some","p","validateBehaviorName","newName","warn","conventionMark","viewUrl","hasParent","lookupFunctions","valueConverters","getValueConverter","bindingBehaviors","getBindingBehavior","elements","attributeMap","beforeCompile","afterCompile","beforeCreate","afterCreate","beforeBind","beforeUnbind","config","$resource","resourceType","name_1","templateController","bindables","currentProps","newProp","existed","j","jj","_tryAddHook","func","counter","callbackName","one","two","three","four","hooks","bindingLanguageFallback","patchInParent","newParent","originalParent","relativeToView","path","registerValueConverter","valueConverter","registerBindingBehavior","bindingBehavior","registerValue","autoRegister","impl","compose","noop","absolutePath","viewEngine","file","viewLocator","dependencyBaseUrl","entry","factoryIsReady","templateIsLoaded","from","InlineViewStrategy","markup","$deps","deps","elDeps","_i","dependencies_1","dep","exported","el","previous","SwapStrategies","before","callback","with","after","tryActivateViewModel","skipActivation","activate","model","CompositionEngine","_swap","swapStrategy","swapOrder","previousViews","currentController","compositionTransactionNotifier","_createControllerAndSwap","createController","compositionTransactionOwnershipToken","childContainer","viewModelResource","m","ensureViewModel","isClass","getOrCreateOwn","transaction","animationEvent","enterBegin","enterActive","enterDone","enterTimeout","leaveBegin","leaveActive","leaveDone","leaveTimeout","staggerNext","removeClassBegin","removeClassActive","removeClassDone","removeClassTimeout","addClassBegin","addClassActive","addClassDone","addClassTimeout","animateBegin","animateActive","animateDone","animateTimeout","sequenceBegin","sequenceDone","selectorOrConfig","actualTarget","selector","ChildObserver","createChildObserverDecorator","ChildObserverBinder","noMutations","trackMutation","groupedMutations","binder","record","mutations","onChildChange","binders","bindersLength","Map","added","addedNodes","removed","removedNodes","k","onRemove","onAdd","mutationRecords","matches","assignedSlot","anchors","__childObserver__","createMutationObserver","childList","subtree","observe","firstElementChild","items","nextElementSibling","prev","previousElementSibling","childObserver","disconnect","instanceOrConfig","customElement","customAttribute","deco","t","bindable","nameOrConfigOrTarget","key2","descriptor2","ElementConfigResource","registerElementConfig","defaultShadowDOMOptions","mode","useShadowDOM","targetOrOptions","doNotProcessContent","processor","error","useViewStrategy","useView","inlineView","noView","targetOrDependencies","TemplatingEngine","compositionEngine","_container","_moduleAnalyzer","_viewCompiler","_compositionEngine","configureAnimator","unregister","compilerInstructions","letExpressions"],"sourceRoot":""}